JP2008294669A - 画像符号化装置 - Google Patents

画像符号化装置 Download PDF

Info

Publication number
JP2008294669A
JP2008294669A JP2007137029A JP2007137029A JP2008294669A JP 2008294669 A JP2008294669 A JP 2008294669A JP 2007137029 A JP2007137029 A JP 2007137029A JP 2007137029 A JP2007137029 A JP 2007137029A JP 2008294669 A JP2008294669 A JP 2008294669A
Authority
JP
Japan
Prior art keywords
unit
encoding
data
processing
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007137029A
Other languages
English (en)
Inventor
Hideji Michinaka
Hiromitsu Nakayama
Akihiro Ogami
Takaya Ogawa
Yoshinori Shigeta
Tatsuhiro Suzumura
Satoshi Takegawa
Masashi Uehashi
Kiwamu Watanabe
雅志 上橋
啓満 中山
晃弘 大上
貴也 小川
究 渡辺
智 竹川
良則 繁田
秀治 道中
竜広 鈴村
Original Assignee
Toshiba 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 Toshiba Corp, 株式会社東芝 filed Critical Toshiba Corp
Priority to JP2007137029A priority Critical patent/JP2008294669A/ja
Publication of JP2008294669A publication Critical patent/JP2008294669A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]

Abstract

【課題】少ないバッファメモリ容量にて画像の算術符号化処理を破綻させることなく行える画像符号化装置を提供することである。
【解決手段】画像符号化装置10は、可変長符号化部104と、算術符号化部142と、共有のバッファメモリ112とを備える。可変長符号化部104は、画像データを入力し、可変長符号化した2値化符号列を出力する。算術符号化部142は、可変長符号化部104から出力される符号列を算術符号化する。共有のバッファメモリ112は、可変長符号化部104及び算術符号化部142の間でデータの授受を行う。
【選択図】図1

Description

本発明は、画像データの算術符号化に至る一連の符号化処理を行う画像符号化装置に関する。

「ITU-T Recommendation H.264/ISO/IEC 14496-10 AVC」では、MPEG2などと異なり算術符号化という新しいエントロピー符号化方式が採用されている。算術符号化は、シンボル系列の出現確率に応じて確率数直線を区分分割し、分割された区間内の位置を示す2進小数値をその系列に対する符号とするものであり、符号列を算術演算により逐次的に構成していく符号化である。

H.264/AVC(Advanced Video Coding)においてエントロピー符号化の一つとして用いられている算術符号の符号化処理は、1つのビットの符号化処理が完了しないと、それに続く次の符号化処理を開始することができないため、並列化が困難である。
従来のMPEG2などの動画像符号化装置は、符号化処理を行う幾つかのハードウェア(DCT部、量子化部、可変長符号化部、動き補償部など)が1つのCPUに接続し、パイプラインを構成し、ブロック単位でパイプライン動作で処理していた。

しかしながら、H.264/AVCに準拠した動画像符号化装置においては、符号化処理を行うハードウェアとしては、算術符号化処理部、動き予測部、予測モード判定部、デブロッキングフィルタ部などが必要とされる。このようなハードウェア構成の場合は、動き予測部、予測モード判定部、デブロッキングフィルタ部などでの各処理はマクロブロック単位で行われる。

しかし、このようなH.264/AVCの装置では、動作周波数を算術符号化処理部以外のハードウェアに合わせると、算術符号の符号化処理が1つのマクロブロック処理用に割り当てられた時間内に終了しない場合があり、パイプライン処理が破綻してしまい目標とする性能を達成できない場合があった。

従来はこの問題を解決するために、CPUモジュール全体の周波数を上げて目標とする性能を満たす設計をする必要があった。しかし、算術符号化処理部の処理性能を上げて算術符号化処理部以外のハードウェアの処理時間と同等な処理時間とするように設計するには、高性能なCPUを用いる等、回路規模を非常に大きくすることが必要であった。

例えば特許文献1には、H.264/AVCに準拠した算術符号化・復号の処理プロセスの具体的な実現方法として、高速処理可能な算術符号化・復号化装置が提案されている。しかしながら、この算術符号化・復号化装置は、算術符号化・復号化処理についてのみ述べられており、算術符号化処理以前及びその復号化処理以降に続く別の一連の符号化処理及び復号化処理については述べられてなく、特に別の一連の符号化処理及び復号化処理を所定のデータ単位(即ちマクロブロック単位)でパイプライン処理する例については全く記載されていない。
特開2005−130099号公報

そこで、本発明は上記の問題に鑑み、少ないバッファメモリ容量にて画像の算術符号化処理を破綻させることなく行える画像符号化装置を提供することを目的とするものである。

本願発明の一態様によれば、画像データを入力し、可変長符号化した2値化符号列を出力する可変長符号化部と、前記可変長符号化部から出力される前記符号列を算術符号化する算術符号化部と、前記可変長符号化部及び前記算術符号化部の間でデータの授受を行う共有のバッファメモリと、を具備したことを特徴とする画像符号化装置が提供される。

また、本願発明のもう1つの態様によれば、画像データを入力し、可変長符号化した2値化符号列を出力する可変長符号化処理部を備え、該可変長符号化処理部は複数の別の符号化処理部と共にパイプライン動作を行う第1の符号化処理手段と、前記第1の符号化処理手段で可変長符号化した画像データを、一時記憶するバッファメモリと、前記バッファメモリから読み出した可変長符号化された画像データを算術符号化する算術符号化部を備えた第2の符号化処理手段と、を具備したことを特徴とする画像符号化装置が提供される。

本発明によれば、少ないバッファメモリ容量にて画像の算術符号化処理を破綻させることなく行える画像符号化装置を提供できる。

発明の実施の形態について図面を参照して説明する。
図1乃至図7で本発明の実施形態を説明する前に、図8を参照してH.264/AVCに準拠した画像符号化装置の一般的な構成例を説明する。以降、動画像符号化装置について説明する。

ここでは、動き補償予測を用いた、画像信号の予測符号化について説明する。伝送した過去の信号からこれから送信する信号の値を予測し、実際の信号値と予測値との予測誤差をエントロピー符号化(例えば算術符号化)して伝送する。時間方向の相関を用いたフレーム間予測では、画面上の動いている部分は静止している部分に比べて予測誤差が増加することを利用し、現フレームと前のフレームとを比較して移動した物体の画像の動きベクトルを検出し、検出した動きベクトルに応じて移動させた画像を予測値とする動き補償予測を行う。

図8に示す画像符号化装置20は、符号化処理を行う複数(図では4つ)のハードウェア152〜155が1つのCPU151に接続し、パイプラインを構成している。CPU151は、制御信号線181でDMA(Direct Memory Access)コントローラ161に接続する一方、制御信号線182で4つのハードウェア152〜155に接続している。4つのハードウェアは、動き予測部152,予測モード判定部153、算術符号化処理部154、デブロッキングフィルタ部155である。これらハードウェア152〜155は、CPU151の制御信号線182と、DMAコントローラ161に接続したデータ転送線172との間に、入出力メモリ156〜160を介在して並列に接続されている。データ転送線171は、DMAコントローラ161とバッファメモリであるDRAM(Dynamic Random Access Memory)162とを接続している。

動き予測部152は、現フレームと前フレームとを比較して動いている物体の動きベクトルを検出し、検出した動きベクトルに応じて前フレームを移動した画像を予測値とする機能を有する。
予測モード判定部153は、現フレームの画像と、動き予測部152で前フレームを動き補償して得られかつブロッキング歪みを除いた予測画像との差分を求め、予測誤差として出力する機能や、DCT及び量子化を行って出力する機能のほか、予測値としてどのマクロブロックタイプ(例えばBタイプかPタイプか)を使うのかを決定する機能を含む。

算術符号化処理部154は、予測モード判定部153からの予測誤差をDCT及び量子化した値を算術符号化して出力する機能を有する。算術符号化処理部154は、入力した量子化データを可変長符号化してから算術符号化することによって符号量の圧縮率をさらに上げるようになっている。

デブロッキングフィルタ部155は、予測モード判定部153での動き補償した予測画像を入力し、その画像のブロッキング歪みを除去して出力するためのフィルタであって、ブロッキング歪みを除去した予測画像を予測モード判定部153へ供給する機能を有している。

CPU151は、4つのハードウェア152〜155の起動及び終了を含む動作を監視し制御する一方、DMAコントローラ161を制御する機能を有している。
DMAコントローラ161は、CPUを介さずに各ハードウェア152〜155とDRAM162との間で直接データ転送を行わせる機能を有する。
DRAM162は、図示しない画像生成手段から供給されたデジタルの画像データを保持している。画像生成手段は、DVDなどの蓄積媒体に記録された画像データを記録再生する記録再生装置などで構成される。

このような構成の画像符号化装置では、符号化処理を行う幾つかのハードウェアが1つのCPU151に接続し、パイプラインを構成している。4つのハードウェア152〜155のうち、動き予測部152,予測モード判定部153、デブロッキングフィルタ部155の各処理は、マクロブロック単位で行われる。しかし、算術符号化処理部154での処理は、その特徴上、2値化したデータを1ビットごとに確率を決めて処理していかなければならず処理時間を見積もることが難しく、マクロブロック処理用の時間を超えることもある。従って、算術符号化処理部154の処理は、マクロブロック単位よりも大きな単位(即ち、スライス、ピクチャ、或いは、所定時間(例えば1秒)単位など)で行うことが望ましい。

言い換えると、動作周波数を算術符号化処理部以外のハードウェアに合わせると、算術符号の符号化処理が1つのマクロブロック処理用に割り当てられた時間内に終了しない場合があり、パイプライン処理が破綻してしまい目標とする性能を達成できない場合がある。この問題を解決するために、CPUモジュール全体の周波数を上げて目標とする性能を満たす設計をする必要があった。

このような図8の構成に対して、図9のように算術符号化処理部のハードウェアと算術符号化処理以前の処理のハードウェアとの2つの処理単位に分けた構成とすることにより、後者のハードウェアの中で必要以上に周波数を上げることなく、マクロブロック単位のパイプラインを構成でき、処理を行うことができる。
図9は図8における算術符号化処理部のハードウェアとそれ以外のマクロブロック単位の処理を行うハードウェアとを分けた構成を示している。

図9において、画像符号化装置30は、第1の符号化処理装置150と、第2の符号化処理装置190と、バッファメモリであるDRAM162とを備えている。

第1の符号化処理装置150は、図8の構成から算術符号化処理部154と出力メモリ159を除いた構成となっている。つまり、第1の符号化処理装置150は、図8に示す算術符号化処理部154による算術符号化処理を除いた算術符号化処理以前の処理を行う、動き予測部152と、予測モード判定部153と、デブロッキングフィルタ部155と、制御信号線181及び182と、データ転送線171及び172と、入出力メモリ156〜158及び160とを備えたハードウェア(CPUモジュール)となっている。

第2の符号化処理装置190は、第1の符号化処理装置150の処理後に行う算術符号化処理を行う算術符号化処理部192(図8の算術符号化処理部154に同じ)と、入力メモリ193及び出力メモリ194と、CPU191と、DMAコントローラ195と、CPU191に接続した制御信号線183及び184と、DMAコントローラ161に接続したデータ転送線173及び174とを備えたハードウェア(CPUモジュール)となっている。算術符号化処理部192は、入力した量子化データを可変長符号化してから算術符号化することによって符号量の圧縮率をさらに上げるようになっている。

CPU191は、制御信号線183でDMAコントローラ195に接続する一方、制御信号線184で算術符号化処理部192に接続している。

算術符号化処理部192は、CPU191の制御信号線184と、DMAコントローラ195に接続したデータ転送線174との間に、入力メモリ193及び出力メモリ194を介在して接続されている。データ転送線173は、DMAコントローラ195とバッファメモリであるDRAM162とを接続している。

図9のような装置においては、図示しない画像生成手段から供給された画像データは予めDRAM162に格納され、第1の符号化処理装置150内のDMAコントローラ161及び入力メモリ156を経由して動き予測部152へ転送される。動き予測部152では、動いている物体の動きベクトルを検出し、検出した動きベクトルに応じて前フレーム画像を移動した画像を予測値として求める。この予測値は予測モード判定部153に入力される。一方、デブロッキングフィルタ部155は、予測モード判定部153での動き補償した予測画像を入力し、ブロッキング歪みを除去した予測画像を生成して予測モード判定部153へ供給する。予測モード判定部153では、現フレームの画像と、動き予測部152で前フレーム画像を動き補償して得られかつブロッキング歪みを除いた予測画像との差分を算出し、算出した予測誤差にDCT及び量子化を行って出力する。このとき、例えば、予測モード判定部153への入力信号を0〜255(8ビット)の範囲とすると、予測誤差として出力れる差分信号は−255〜+255の範囲となり、その範囲は2倍になる。つまり、データ量(符号量)が増大する場合がある。

予測モード判定部153で算出した予測誤差に基づく量子化値はDRAM162に一旦書き込まれ、その後にDRAM162から読み出されて第2の符号化処理装置190へ転送される。転送されたデータは、第2の符号化処理装置190内のDMAコントローラ195及び入力メモリ193を経由して算術符号化処理部192へ入力されて、算術符号化処理が行われる。その算術符号化処理されたデータは、出力メモリ194を経由してDRAM162に記憶された後、DRAM162から読み出されて図示しないデコーダへ送出される。

図9のような装置では、算術符号化処理部192を含むモジュール190と算術符号化処理以前の処理を行うモジュール150とで実行処理単位を2つに分けてそれぞれ独立にすることにより、後者のモジュール150の中で必要以上に周波数を上げることなく、マクロブロック単位のパイプライン処理を行えると共に、前者のモジュール190では算術符号化処理をそれに相応した動作周波数で処理することができる。

しかしながら、図9の装置では、第1のモジュール150で生成した予測誤差に対応したデータをバッファメモリであるDRAM162に一時記憶することになり、2つのCPUモジュール150及び190間のバッファメモリで受け渡すデータ量がピクチャ1枚のデータ量の2倍となる場合があり、膨大なメモリ空間を必要とするという問題点がある。

そこで、以下に説明する本発明の実施形態では、図8又は図9に示した算術符号化処理部154又は192を可変長符号化部としてのbinValストリーム生成部と算術符号化部とに分けることにより、少ない容量のバッファメモリにて画像の符号化処理を破綻させることなく行えるようにする。。

[第1の実施形態]
図1は本発明の第1の実施形態の画像符号化装置を示すブロック図である。本実施形態では、動画像符号化装置について説明する。
図1に示す画像符号化装置10は、第1の符号化処理手段としての第1の符号化処理装置100と、第2の符号化処理手段としての第2の符号化処理装置140と、バッファメモリとしてのDRAM112とを備えている。

第1の符号化処理装置100は、CPU101と、動き予測部102と、予測モード判定部103と、可変長符号化部としてのbinValストリーム生成部104と、デブロッキングフィルタ部105と、入力メモリ106と、入出力メモリ107,108及び110と、出力メモリ109と、DMAコントローラ111と、CPU101に接続した制御信号線131及び132と、DMAコントローラ111に接続したデータ転送線121及び122とを備え、算術符号化以前の複数の処理(動き予測部、予測モード判定部、binValストリーム生成部、及びデブロッキングフィルタ部の各処理)をマクロブロック単位でパイプライン動作で行うハードウェア(CPUモジュール)となっている。なお、binValストリームは、算術符号化処理の過程における中間データであり、例えばH.264/AVCに準拠した可変長の2値化符号列である。なお、「binVal」は、バイナリーバリュー(即ち2値)を意味する。

CPU101は、プログラムやデータを格納するメモリ101-1を備え、制御信号線131及び132を介して、動き予測部102、予測モード判定部103、binValストリーム生成部104、デブロッキングフィルタ部105及びDMAコントローラ111を制御する。

動き予測部102は、動いている物体の動きベクトルを検出し、検出した動きベクトルに応じて前フレーム画像を移動した画像を予測値として求め、次段の予測モード判定部153に供給する。
デブロッキングフィルタ部105は、予測モード判定部153での動き補償した予測画像を入力し、ブロッキング歪みを除去した予測画像を生成して予測モード判定部153へ供給する。

予測モード判定部103は、現フレームの画像と、動き予測部102で前フレーム画像を動き補償して得られかつブロッキング歪みを除いた予測画像との差分を算出し、算出した予測誤差にDCT及び量子化を行って出力する。また、予測モード判定部103は、予測値としてどのマクロブロックタイプ(例えばBタイプかPタイプか)を使うのかを決定する機能を有している。

可変長符号化部としてのbinValストリーム生成部104は、予測モード判定部103からの予測誤差に基づく量子化値をbinValストリームデータ(可変長の2値化符号列)へ変換する機能を有している。変換されたbinValストリームデータは、出力メモリ109を経由してDRAM112へ一旦格納される。このbinValストリームデータは、図9で述べた予測モード判定部からの予測誤差に基づくデータ(可変長符号化が行われていないデータ)に比べてデータ量(符号量)は減少している。

DRAM112は、第1の符号化処理装置100と第2の符号化処理装置140がデータの授受(受け渡し)を行うための共有のバッファメモリである。DRAM112に対しては、符号化処理を行う過程において、図示しない画像生成装置から入力されるデジタルの画像データの書き込み及びそのデータの第1の符号化処理装置100への読み出しと、第1の符号化処理装置100内のbinValストリーム生成部104で生成されたbinValストリームデータ(可変長の2値化符号列)の書き込み及びそのデータの第2の符号化処理装置140への読み出しと、第2の符号化処理装置140内の算術符号化部142で算術符号化された画像データの書き込み及びそのデータの図示しないデコーダへの読み出しと、が行われる。

第2の符号化処理装置140は、CPU141と、算術符号化部142と、入力メモリ143及び出力メモリ144と、DMAコントローラ145と、CPU141に接続した制御信号線133及び134と、DMAコントローラ145に接続したデータ転送線123及び124とを備え、第1の符号化処理装置100からDRAM112に一時書き込まれたbinValストリームの可変長符号化された画像データを読み出して算術符号化部142に入力し、この画像データに対してマクロブロック単位よりも大きな単位(即ち、スライス、ピクチャ、或いは、予め決められた時間(例えば1秒)単位など)で算術符号化を行い、再びDRAM112へ書き戻す。

CPU141は、プログラムやデータを格納するメモリ141-1を備え、制御信号線133,134を介して、算術符号化部142及びDMAコントローラ145を制御する。

算術符号化部142は、DRAM112から出力されるbinValストリームデータを入力メモリ143を介して入力し、算術演算によるエントロピー符号化を行う。算術符号化によって符号量が減少された画像データは一時DRAM112に格納された後、伝送路(図示せず)を介して図示しないデコーダへ出力される。

上記の構成において、図示しない画像生成手段から供給された画像データが予めDRAM112に格納され、第1の符号化処理装置100内の入力メモリ106を経由して動き予測部102に入力されマクロブロック単位で動きベクトルが検出されかつ動きベクトルを用いて予測画像が生成され、入出力メモリ107を経由して予測モード判定部103へ転送する。予測モード判定部103は、動き予測部102から予測画像を取得し、予測画像と現フレーム画像とを用いて予測誤差を算出し、入出力メモリ108を経由してbinValストリーム生成部104へ転送する一方、取得した予測画像を入出力メモリ110を介してデブロッキングフィルタ部105へ転送しデブロッキングフィルタリング(ブロック歪み軽減)して再び予測モード判定部103へフィードバックする。binValストリーム生成部104は、予測誤差に基づいた量子化値を入力しこれを可変長符号化してbinValストリーム(可変長の2値化符号列)を生成し、出力メモリ109を介してDRAM112に一時格納する。予め決められた時間が経過すると、DRAM112はDMAコントローラ145の制御によって、DRAM112内のbinValストリームデータを入力メモリ143を経由して第2の符号化処理装置140内の算術符号化部142へ転送する。

算術符号化部142の算術符号化処理は、予め決められた時間(例えば1秒間)ごとにその時間内に行われて、その算術符号化されたデータがDRAM112に記憶され、その後に図示しないデコーダへ送出される。なお、デコーダへは、予測誤差に基づいた算術符号化データのほかに動きベクトルに基づいた算術符号化データも送信される。

算術符号化処理部を2つに分ける意義は、binValストリーム生成部104では他の処理と同様にマクロブロック単位で処理を行い、算術符号化部142ではビットストリームの1枚のピクチャ単位とかそれを幾つかに分けたスライス単位で処理を行うことによって処理の平均化が図ることができる。

例えば、1マクロブロックのビット量が少ない場合は1マクロブロック当たり50サイクル(言い換えれば動作クロックが50クロック分)とか100サイクルで処理が終了することもあるが、1マクロブロックのビット量が多い場合はその2〜3倍或いは2000サイクルといった長時間の処理となる場合がある。

算術符号化処理における前段の処理であるbinValストリーム(可変長の2値化符号列)処理を算術符号化処理から分離してやることによって、残りの後段の処理である算術符号化を時間を掛けて(例えば1ピクチャ分溜めてから)処理を行うことができる。これに対して、算術符号化以外の他の処理については、Iピクチャ、Pピクチャ及びBピクチャのいずれの場合であっても同じ処理時間で1マクロブロックの処理を行わなければならないという前提がある。

算術符号化だけ別のモジュールとして1ピクチャ或いは1スライス単位で処理することによって、例えばIピクチャだけビット量が多くて時間がかかってもPピクチャやBピクチャが早く処理が終了することによって、1ピクチャ或いは1スライス全体のストリームで見ると処理時間が平均化されて、他の処理との時間的なバランス(調整)を取ることができる。

図2はbinValストリーム生成部104の構成を示すブロック図である。
図2において、binValストリーム生成部104は、可変長符号化部201と、状態保持部202と、出力バッファメモリ(以下単に出力バッファという)203と、を備えている。

可変長符号化部201は、可変長符号化テーブルを多数備えている。
状態保持部202は、入力メモリ108(図1の入出力メモリ108に同じ)へデータが格納されると、入力メモリ108のどこにデータが格納されているかが分かっているので、その格納位置への読み込み要求を出してデータを取りに行く。言い換えれば、状態保持部202は、入力メモリ108に対してその中に格納されている動きベクトル及び予測誤差のデータを順次読み出す指示を出す。そして、どのデータが読み出されているかによって(例えば動きベクトルのデータかそれとも予測誤差のデータかによって)、可変長符号化部201内の多数の可変長符号化テーブルの内のどれを使うかというテーブル選択指示を出す。状態保持部202は、可変長符号化部201がbinValストリーム(可変長の2値化符号列)のどのシンボルを符号化しているかをカウントしている。どの可変長符号化テーブルを用いたらよいかは、binValストリームの2値化符号列から分かる。入力メモリ108から読み出されたデータがこの可変長符号化テーブルの符号と一致するとこのような意味となるから次はこのような別の可変長符号化テーブルを使用するというように、ストリームの可変長符号化が進行していく。

図3は算術符号化部142の構成を示すブロック図である。
図3において、算術符号化部142は、入力バッファメモリ(以下単に入力バッファという)301と、算術符号化部302と、出力バッファ303と、入力比較部304と、状態保持部305と、確率情報保持部306と、を備えている。

状態保持部305は、入力されているデータの状態を保持するもので、文法上、どういう意味の符号列のものを符号化しているかの状態(1番目のデータ,2番目のデータ,…の状態、つまり、動きベクトルのデータか予測誤差のデータかを示す状態)を保持している。
入力比較部304は、算術符号化を開始したか否かの判定をして、開始した段階で、このデータは何か(動きベクトルか予測誤差か)を判定し状態保持部305に保持する。

確率情報保持部306は、算術符号化部302がデータを確率情報を用いて算術符号化するので、次のデータの確率はどうなのかを知るためにある。確率情報保持部306は、データの次のビットを符号化するときに利用されるもので、確率の分かったものを算術符号化部302に入れて、次のビットの確率を計算している。つまり、確率情報保持部306は、状態保持部305でのデータの状態と、既に符号化したデータの結果によって、次のデータの符号化の確率を計算する。
算術符号化部142では、binValストリームデータを入力し、1ビットずつ符号化していくと、算術符号化されたデータが出力される。

次に、図2のbinValストリーム生成部104での処理、図3の算術符号化部142での処理を、それぞれ図4のフローチャート、図5のフローチャートを参照して説明する。CPU101,CPU141のそれぞれの制御に基づく処理フローである。

以下に、図4を参照して、binValストリーム生成部104での処理を説明する。
(1)状態保持部202は、入力メモリ108より取り込んだデータを可変長符号化部201へ入力する。状態保持部202は、可変長符号化部201内の複数の可変長符号化テーブルから、入力データの読み込み状態(動きベクトルのデータか予測誤差のデータかの状態)に基づき適宜の可変長符号化テーブルを選択する(ステップS1)。

(2)可変長符号化部201において、選択された可変長符化テーブルを用いて入力データの可変長符号への符号化を行い、出力バッファ203に格納する(ステップS2)。
(3)可変長符化の終わったデータは出力バッファ203に保存される。そして、出力バッファ203がデータで満たされたか否かを判定し(ステップS3)、データが満たされたならば出力メモリ109にデータを出力する。このデータをbinValストリームとする(ステップS4)。

(4)入力データの状態が例えば動きベクトルのデータを終了し次の予測誤差のデータになったら、状態保持部202の状態を更新する。そして、1つのデータの可変長符化が終了状態か否かを判定し、終了状態でなければステップS1に戻り、次のデータのbinValストリーム生成処理を行う(ステップS5)。
(5)状態保持部202の状態が終了状態であれば、binValストリーム生成の処理を終了し、データをDRAM112へ書き込む(ステップS6)。

以下に、図5を参照して、算術符号化部142での処理を説明する。
(1)DRAM112に書き込まれているbinValストリームデータを読み出す(ステップS11)。
(2)入力メモリ143より取り込んだデータを入力バッファ301に一時保存する。入力バッファ301が空であるか否か判定し(ステップS12)、空であると、入力メモリ143よりbinValストリームデータを取り込み、取り込んだデータを入力バッファ301に一度保持する(ステップS13)。

(3)入力比較部304は、入力データを入力状態の遷移テーブルを用いて比較し、現在のデータの状態(動きベクトルのデータか予測誤差のデータかの状態)を判定する(ステップS14)。
(4)現在のデータの状態により、符号化するデータの確率情報を確率情報保持部306で決定し、算術符号化部302に入力する(ステップS15)。
(5)算術符号化部302では、入力バッファ301からのデータ、及び確率情報により算術符号への符号化を行い、出力バッファ303へ算術符号化されたデータを出力する(ステップS16)。

(6)出力バッファ303がデータで満たされたか否かを判定し(ステップS17)、データが満たされたならば出力メモリ144にデータを出力する(ステップS18)。
(7)入力データの状態が例えば動きベクトルのデータを終了し次の予測誤差のデータになったら、状態保持部305の状態を更新する。そして、1つのデータの算術符号化が終了状態か否かを判定し、終了状態であれば、算術符号化の処理を終了し、終了状態でなければ、次のデータの算術符号化を行う(ステップS19)。算術符号化の処理を終了した後は、DRAM112へ書き出す(ステップS20)。

図6はBスライス時のマクロブロックタイプの2値化変換テーブル(正確には、2値化用可変長符号化テーブル)を示し、図7はBスライス時のサブマクロブロックタイプの2値化変換テーブルを示している。
図6及び図7に示すようなBスライス時のマクロブロックタイプ、及びサブマクロブロックタイプの2値化変換テーブルが、H.264の規格書に定義されている。

図1におけるbinValストリーム生成部104の入力のマイクロブロックタイプ値(一部)が以下のようであった場合、
22(B_8x8) 3(B_Bi_8x8) 2(B_L1_8x8) 1(B_L0_8x8) 3(B_Bi_8x8)
binValストリーム生成部104中では、規格書に定義されている各符号列(シンタックス)の出現順及び図6及び図7の2値化変換テーブルを用いて以下のように復号を行う。

binValストリーム生成部の入力 算術符号化前
のマイクロブロックタイプ値 の2値列
22(B_8x8) → 111111
3(B_Bi_8x8) → 11000
2(B_L1_8x8) → 101
1(B_L0_8x8) → 100
3(B_Bi_8x8) → 11000
上記の場合、binValストリーム生成部104の出力は、以下のようになる。

1111111100010110011000
次に、以上述べた第1の実施形態の特徴及び効果について説明する。
(1)第1の符号化処理装置100と第2の符号化処理装置140との共有のバッファメモリであるDRAM112に、第1の符号化処理装置100で可変長符号化した中間データであるbinValストリームが書き込まれた後に、その書き込まれたデータが第2の符号化処理装置140に転送されて、算術符号化行われる。すなわち、DRAM112は、一時的に中間データを保存し、次の算術符号化の処理のために保持しておく機能を有し、画像符号化装置全体を通して共有のバッファメモリとして使用される。ここで、図9の構成例では、予測モード判定部103の後段にbinValストリーム生成部104が設けられていなかったので、予測モード判定部103から出力される差分信号である予測誤差のデータ量(符号量)が増大する場合があった。しかし、本発明に係る図1の構成では、予測モード判定部103から出力される予測誤差の信号は、後段のbinValストリーム生成部104に転送されて可変長の2値化信号にされるので、符号量が増大する虞はなく符号量はむしろ減少するので、DRAM112の容量は少なくて済むことになる。

(2)第1の符号化処理装置100は、パイプライン処理を並列的に順次行う複数のハードウェアを備え、DRAM112に一時記憶されている画像データをマクロブロック単位で読み出して、順次ハードウェア102〜105でマクロブロック単位でそれぞれの符号化処理を行うので、並列的処理による高速化が可能となる。

(3)算術符号化処理を、算術符号化部142とbinValストリーム生成部104とに分けることにより、少ない容量のバッファメモリにて動画像の符号化処理を破綻させることなく行うことができる。binValストリーム生成部104による可変長符号化処理は、パイプライン処理側である第1の符号化処理装置100に配置してbinValストリームをマクロブロック単位でパイプライン処理で行うことが可能である。従って、算術符号化処理の一部を高速化することができる。

(4)第1の符号化処理装置100のbinValストリーム生成部104はマクロブロック単位で可変長の2値化符号生成処理を行い、DRAM112に書き込まれる。DRAM112では、予め決められた時間(例えば1秒)経過するごとに第2の符号化処理装置140へ転送していく。第2の符号化処理装置140に転送される際には、H.264/AVCで定義されている例えばスライス単位で転送される。第2の符号化処理装置140では、スライス単位で処理(内部的には1ビット単位で)して算術符号化を行っていき、スライス単位でDRAM112に算術符号化データを格納処理していく。H.264/AVCでは、1秒間にどれくらいのデータ量を処理しなければならないかが、規格上決められている。スライス単位の処理時間をt1、H.264/AVCで予め決められた処理時間をt2とすれば、t1≦t2の関係となる。

(5)(4)のことから、第2の符号化処理装置140は算術符号化処理の時間が長くかかる場合が多く、処理時間を短くし、例えばマクロブロック単位の高速処理とするためには、回路規模が非常に大きくなる。これは、算術符号化の処理時間は、ばらつきが大きく、かなり高いパフォーマンスのハードウェアを構築しなければならないからである。しかし、第1の符号化処理装置100でマクロブロック単位のパイプライン処理によって、算術符号化以前の符号化処理を行った後に、DRAM112に一旦蓄えてから次段の第2の符号化処理装置140にデータ転送して、算術符号化に移行することができるので、算術符号化ハードウェア140として処理能力の低いものを使っても、換言すれば算術符号化ハードウェア140の動作周波数を格別高くない周波数とすることが可能であり、処理速度として非常な高速なものを用意しなくても動作させることができる。

(6)算術符号化の処理単位を2つに分けることにより、算術符号化部142を含む装置140と算術符号化以前のbinValストリーム生成を含む符号化処理を行う装置100の実行単位を独立にすることにより、後者の装置100の中で必要以上に周波数を上げる(これは、例えば、2つの処理単位に分けて独立にしなかった場合に、仮に前者の装置140の周波数を高くして処理能力向上を図った場合の処置として後者の装置100の周波数も上げざるを得ないことを意味している)ことなく、マクロブロック単位のパイプラインを構成でき、符号化処理を行うことができる。

(7)算術符号化以前の処理を行う第1のCPUモジュール(100)と可変長符号化処理を含む第2のCPUモジュール(140)で分け、かつ第1,第2のCPUモジュール間で共有のバッファメモリ(112)を有することにより、第1のCPUモジュールで処理したデータをバッファメモリで保持し、この保持したデータを直ぐに第2のCPUモジュールでの処理に使用することができ、各CPUモジュールごとにバッファメモリを設けるのに比べて、バッファメモリ上に保持するテンポラリのデータ量を削減できる。

尚、以上述べた本発明の実施形態では、画像符号化装置は動画像の符号化を行うものであったが、本発明は動画像の符号化に限らず、静止画像の符号化についても適用することが可能である。また、本発明の実施形態では、データを処理する際の単位としてマクロブロック単位について説明しているが、本発明はマクロブロック単位に限らず、ブロック単位などであってもよい。

本発明の第1の実施形態の画像符号化装置を示すブロック図。 図1におけるbinValストリーム生成部の構成を示すブロック図。 図1における算術符号化部の構成を示すブロック図。 図2のbinValストリーム生成部での処理のフローチャート。 図3の算術符号化部での処理のフローチャート。 Bスライス時のマクロブロックタイプの2値化変換テーブルを示す図。 Bスライス時のサブマクロブロックタイプの2値化変換テーブルを示す図。 H.264/AVCに準拠した画像符号化装置の一般的な構成例を示すブロック図。 図8の装置を改善した画像符号化装置の構成例を示すブロック図。

符号の説明

10…画像符号化装置
100…第1の符号化処理装置(第1の符号化処理手段)
102…算術符号化部
104…binValストリーム生成部(可変長符号化部)
112…DRAM(バッファメモリ)
140…第2の符号化処理装置(第2の符号化処理手段)

Claims (5)

  1. 画像データを入力し、可変長符号化した2値化符号列を出力する可変長符号化部と、
    前記可変長符号化部から出力される前記符号列を算術符号化する算術符号化部と、
    前記可変長符号化部及び前記算術符号化部の間でデータの授受を行う共有のバッファメモリと、
    を具備したことを特徴とする画像符号化装置。
  2. 画像データを入力し、可変長符号化した2値化符号列を出力する可変長符号化処理部を備え、該可変長符号化処理部は複数の別の符号化処理部と共にパイプライン動作を行う第1の符号化処理手段と、
    前記第1の符号化処理手段で可変長符号化した画像データを、一時記憶するバッファメモリと、
    前記バッファメモリから読み出した可変長符号化された画像データを算術符号化する算術符号化部を備えた第2の符号化処理手段と、
    を具備したことを特徴とする画像符号化装置。
  3. 前記可変長符号化部は、現在の入力状態に応じて可変長符号化テーブルを選択して可変長符号化を行うことを特徴とする請求項1又は2に記載の画像符号化装置。
  4. 前記算術符号化部は、前記可変長符号化部からの入力データの状態を判定する手段を備え、その判定結果に応じて確率情報を選択的に切り替えて算術符号化を行うことを特徴とする請求項1乃至3のいずれか1つに記載の画像符号化装置。
  5. 前記算術符号化部の入力データがH.264/AVC方式でのスライス単位又はピクチャ単位であることを特徴とする請求項4に記載の画像符号化装置。
JP2007137029A 2007-05-23 2007-05-23 画像符号化装置 Pending JP2008294669A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007137029A JP2008294669A (ja) 2007-05-23 2007-05-23 画像符号化装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2007137029A JP2008294669A (ja) 2007-05-23 2007-05-23 画像符号化装置
US12/123,793 US7586426B2 (en) 2007-05-23 2008-05-20 Image coding apparatus and method thereof

Publications (1)

Publication Number Publication Date
JP2008294669A true JP2008294669A (ja) 2008-12-04

Family

ID=40071901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007137029A Pending JP2008294669A (ja) 2007-05-23 2007-05-23 画像符号化装置

Country Status (2)

Country Link
US (1) US7586426B2 (ja)
JP (1) JP2008294669A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012048401A (ja) * 2010-08-25 2012-03-08 Canon Inc 画像処理装置及び画像処理方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4612831B2 (ja) * 2004-11-15 2011-01-12 キヤノン株式会社 可変長符号化装置及び可変長符号化方法
US8854382B2 (en) * 2010-12-10 2014-10-07 Vixs Systems, Inc. Multi-function encoder and decoder devices, and methods thereof
CN104424498B (zh) * 2013-09-10 2019-03-15 北京意锐新创科技有限公司 一种高速变换二维码编码的方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003318740A (ja) * 2002-04-23 2003-11-07 Matsushita Electric Ind Co Ltd 可変長符号化方法および可変長復号化方法
WO2005041420A1 (ja) * 2003-10-29 2005-05-06 Nec Corporation 算術符号の復号器または符号化器と逆2値化変換器または2値化変換器との間に中間バッファが挿入された復号装置または符号化装置
JP2005295526A (ja) * 2004-03-11 2005-10-20 Matsushita Electric Ind Co Ltd 画像符号化方法、画像符号化装置および画像符号化プログラム
JP2005347780A (ja) * 2002-04-25 2005-12-15 Mitsubishi Electric Corp デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
JP2006279333A (ja) * 2005-03-28 2006-10-12 Victor Co Of Japan Ltd 算術符号化装置及び算術符号化方法
JP2007020141A (ja) * 2005-06-08 2007-01-25 Matsushita Electric Ind Co Ltd 画像符号化装置
JP2007259323A (ja) * 2006-03-24 2007-10-04 Toshiba Corp 画像復号化装置
JP2008022383A (ja) * 2006-07-13 2008-01-31 Matsushita Electric Ind Co Ltd 画像符号化装置
JP2008141531A (ja) * 2006-12-01 2008-06-19 Canon Inc 画像符号化装置及び画像符号化方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1113671A3 (en) * 1999-12-28 2007-04-11 Matsushita Electric Industrial Co., Ltd. Image decoding apparatus and image coding apparatus
JP2005130099A (ja) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd 算術復号装置、算術符号化装置、算術符号化・復号装置、携帯端末装置、動画像撮影装置、及び、動画像記録・再生装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003318740A (ja) * 2002-04-23 2003-11-07 Matsushita Electric Ind Co Ltd 可変長符号化方法および可変長復号化方法
JP2005347780A (ja) * 2002-04-25 2005-12-15 Mitsubishi Electric Corp デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
WO2005041420A1 (ja) * 2003-10-29 2005-05-06 Nec Corporation 算術符号の復号器または符号化器と逆2値化変換器または2値化変換器との間に中間バッファが挿入された復号装置または符号化装置
JP2005295526A (ja) * 2004-03-11 2005-10-20 Matsushita Electric Ind Co Ltd 画像符号化方法、画像符号化装置および画像符号化プログラム
JP2006279333A (ja) * 2005-03-28 2006-10-12 Victor Co Of Japan Ltd 算術符号化装置及び算術符号化方法
JP2007020141A (ja) * 2005-06-08 2007-01-25 Matsushita Electric Ind Co Ltd 画像符号化装置
JP2007259323A (ja) * 2006-03-24 2007-10-04 Toshiba Corp 画像復号化装置
JP2008022383A (ja) * 2006-07-13 2008-01-31 Matsushita Electric Ind Co Ltd 画像符号化装置
JP2008141531A (ja) * 2006-12-01 2008-06-19 Canon Inc 画像符号化装置及び画像符号化方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012048401A (ja) * 2010-08-25 2012-03-08 Canon Inc 画像処理装置及び画像処理方法

Also Published As

Publication number Publication date
US7586426B2 (en) 2009-09-08
US20080291062A1 (en) 2008-11-27

Similar Documents

Publication Publication Date Title
US9979978B2 (en) Image encoding apparatus, method of image encoding, and recording medium, image decoding apparatus, method of image decoding, and recording medium
JP2017143570A (ja) 装置、符号化装置、復号装置、方法、及びプログラム
JP6222305B2 (ja) 画像処理装置、画像処理方法、プログラム及び記録媒体
US20190349600A1 (en) Image Coding Method for Decoding a Difference Motion Vector from a Bitstream
US9743088B2 (en) Video encoder and video encoding method
US9699456B2 (en) Buffering prediction data in video coding
US8798155B2 (en) Method and apparatus for H.264 to MPEG-2 video transcoding
US20140205005A1 (en) Method and apparatus for mpeg-2 to h.264 video transcoding
US9363510B2 (en) Scan-based sliding window in context derivation for transform coefficient coding
US9247248B2 (en) Mode searching and early termination of a video picture and fast compression of variable length symbols
ES2489816B2 (es) Método para gestionar una lista de imágenes de referencia, y aparato que lo usa
KR100272817B1 (ko) 동화상 복호화 장치
JP2014535225A (ja) イントラモードビデオコーディング
USRE47728E1 (en) Image coding method, image coding apparatus, image decoding method and image decoding apparatus
CN101933331B (zh) 视频编码装置、视频编码方法、视频解码方法
JP5400888B2 (ja) 並列処理を用いた復号システムおよび方法
US8208540B2 (en) Video bitstream transcoding method and apparatus
JP4769717B2 (ja) 画像復号化方法
US7209059B2 (en) Decoding method and encoding method
EP3697087A1 (en) Method for picture segmentation using columns
DE69816342T2 (de) Prädiktives Bilddekodierungsverfahren
JP4828925B2 (ja) 符号化装置
TWI499275B (zh) 用於視頻傳輸的方法和系統
US7769088B2 (en) Context adaptive binary arithmetic code decoding engine
KR100232992B1 (ko) 동화상 디코딩 회로

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110117

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110222