JPWO2008129855A1 - 画像データ復号化装置、画像データ復号化方法 - Google Patents

画像データ復号化装置、画像データ復号化方法 Download PDF

Info

Publication number
JPWO2008129855A1
JPWO2008129855A1 JP2009510786A JP2009510786A JPWO2008129855A1 JP WO2008129855 A1 JPWO2008129855 A1 JP WO2008129855A1 JP 2009510786 A JP2009510786 A JP 2009510786A JP 2009510786 A JP2009510786 A JP 2009510786A JP WO2008129855 A1 JPWO2008129855 A1 JP WO2008129855A1
Authority
JP
Japan
Prior art keywords
code
image data
coefficient
value
decoding
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.)
Withdrawn
Application number
JP2009510786A
Other languages
English (en)
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2008129855A1 publication Critical patent/JPWO2008129855A1/ja
Withdrawn 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/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

当該画像データ復号化装置に入力された画像データを取得して、取得した画像データを復号化する復号化部を備える画像データ復号化装置において、バンド幅を小さくする。画像のビットストリームを復号化する復号化装置(100)であって、当該復号化装置(100)に入力されたビットストリームを、当該ビットストリームが符号化された第1の符号化規則よりも最大の符号長が短い第2の符号化規則で符号化されたビットストリームへ変換する符号変換部(101)と、符号変換部(101)により前記変換がされた後のビットストリームを取得して、取得したビットストリームを復号化する画像デコーダ(103)とを備える。

Description

本発明は、ビットストリームの伝送に必要なバンド幅を削減するためにデータ変換を行う画像復号化技術に関するもので、より具体的には圧縮された画像データの最大符号長を小さくするためにデータ変換を行う画像復号化方法及び復号化装置に関するものである。
近年、動画像データにおいて高圧縮を実現するためにH.264規格(非特許文献1)やVC−1規格(非特許文献2)が画像符号化技術として採用されてきている。これらの技術においては、圧縮された画像データ(以後、ビットストリームと記述)はいったんバッファに蓄えられる。蓄えられたビットストリームは、画像復号のリアルタイム性を保持するため、ある制限時間内で画像デコーダに転送される。近年、画像の高精細化や複数画像の同時伝送のため、この制限時間が短くなりつつあり、その結果、ビットストリームを制限時間内で画像デコーダに転送するために必要となるバンド幅(転送データ量÷転送時間)が増加している。
さらに、H.264規格やVC−1規格では、画像を複数のブロックに分割して符号化するが、各ブロック(以後、マクロブロックと記述)の符号化結果が0ビットから数1000ビットという広い範囲になりうる。このため、ビットストリームを制限時間内で画像デコーダに転送するには、マクロブロックの符号化結果が最大のビット量となる場合を想定する必要があり、ビットストリームを画像デコーダに転送するのに大きなバンド幅が必要となっている。
以上のように、近年、ビットストリームを画像デコーダに転送するためのバンド幅が無視できないほどに大きくなっている。しかし、H.264規格やVC−1規格においては、ビットストリームを画像デコーダに転送する方法は実装上の問題として何も制約されていないため、ビットストリームを画像デコーダに転送するためのバンド幅が画像復号装置の構成において課題となっている。
この課題を解決するには、ビットストリームを画像デコーダに転送するためのバンド幅を削減する必要がある。このバンド幅は前述のようにマクロブロック符号化結果の最大ビット量で決定されるため、マクロブロック符号化結果の最大ビット量が与えられたバンド幅で転送可能なビット量を超えないようにマクロブロック符号化結果のビット量を削減すればよい。
一方、特許文献1では、マクロブロック符号化結果のビット量を削減する手法を示している。特許文献1の手法は、MPEG−2規格で符号化されたマクロブロック内の各符号(符号化手法を示すモード符号、動きベクトル符号、DCT係数を示す符号など)をより圧縮率が高い符号に変換することでマクロブロック符号化結果のビット量を削減する。しかし、特許文献1の手法は、マクロブロック符号化結果の平均的なビット量の削減を目的としているため、マクロブロック符号化結果の最大ビット量が削減される保障はない。
図1は、特許文献1の符号変換における、変換前の符号の符号化規則を示す図である。
図2は、特許文献1の符号変換における、変換後の符号の符号化規則を示す図である。
具体的には、特許文献1において、図1の符号を図2の符号のように変換しているが、符号の最大ビット数、つまり、図1の表の最下段の符号のビット数、図2の表の最下段の符号のビット数は、どちらも6ビットで、互いに同一である。
H.264 ISO/IEC14496−10規格,ITU−T H.264規格 SMPTE 421M−2006 Television − VC−1 Compressed Video Bitstream Format and Decoding Process 特開2005−94693号公報
しかしながら、前記従来の構成のようなマクロブロックのビット量を削減する手法では、マクロブロック符号化結果の最大ビット量ではなく、マクロブロック符号化結果の平均的なビット量の削減だけが課題とされているため、マクロブロック符号化結果の最大ビット量を削減することができない。
また、非特許文献1などの画像符号化規格で示される範囲でリアルタイムに画像をデコードする画像デコーダを構成すると、ビットストリームを画像デコーダに転送するためのバンド幅がマクロブロック符号化結果の最大ビット量によって決まる。前記非特許文献1などの画像符号化規格では、マクロブロック符号化結果のビット量が0ビットから数1000ビットの範囲でマクロブロック毎に変動する。この結果、リアルタイムの画像デコードを行う場合に、ビットストリームを画像デコーダへ転送するためのバンド幅が大きくなり、ビットストリームを蓄えるバッファの高性能化などによる画像デコーダのコストが増加するという問題がある。
このように、画像データを復号化する画像データ復号化装置であって、当該復号化装置に入力された画像データを取得して、取得した画像データを復号化する復号化部を備える復号化装置が従来よりある。しかし、規格に係る技術が考えられた当時には、画像の高精細化や、画像の同時伝送のために、画像データを転送するためのバンド幅が無視できないほどに大きくなるとは見通されていなかった。他方、規格を実装した画像データ復号化装置を実際に作っていくうちに、マクロブロック符号化結果の最大ビット量が大きくなり、必要なバス幅が大きくなってしまう問題が生じることが分かった。
ここで、例えば、H.264規格のCABAC符号では、符号化結果のビットストリームが算術符号で圧縮されている。CABAC符号で用いられている算術符号は、復号が逐次処理とならざるを得ないため、画像デコーダの処理性能に見合った復号性能を得るのが困難である。そこで、CABAC符号に対応する復号化装置は、算術符号の復号結果を規格のCPBに相当するバッファに蓄え、画像デコーダは算術符号を復号した結果をデコードするように構成される。しかし、この構成では、算術符号の圧縮を復元した結果を画像デコーダに転送することになるため、マクロブロックの最大ビット量が約5000ビットと大きく、バッファから画像デコーダに復号結果を転送するのに必要なバンド幅が非常に大きくなる。例えば、このように、マクロブロック符号化結果の最大ビット量が大きくなり、必要なバス幅が大きくなってしまう問題が生じる。
このような課題は、画像データを復号化する画像データ復号化装置に共通する課題である。
そこで、本発明は、この課題を解決するものであり、マクロブロック符号化結果の最大ビット量を削減することができる復号化装置を提供することを目的とする。
前記従来の課題を解決するために、本発明における画像データ復号化装置は、次の構成を採る。
本発明の画像データ復号化装置は、画像データを復号化する画像データ復号化装置であって、当該復号化装置に入力された画像データを、当該画像データが符号化された第1の符号化規則より最大の符号長が短い第2の符号化規則で符号化された画像データへ変換する符号変換手段と、前記符号変換手段により前記変換がされた後の前記画像データを取得して、取得した画像データを復号化する復号化手段と、を備えることを特徴とする画像データ復号化装置である。
また、本発明のコンピュータプログラムは、画像データを画像データ復号化装置に復号化させるためのコンピュータプログラムであって、当該画像データ復号化装置に入力された画像データを、当該画像データが符号化された第1の符号化規則より最大の符号長が短い第2の符号化規則で符号化された画像データへ変換する符号変換機能と、前記符号変換ステップにより前記変換がされた後の前記画像データを取得して、取得した画像データを復号化する復号化機能とを前記画像データ復号化装置に実現させるためのコンピュータプログラムである。
なお、請求項3における、バンド幅情報により特定されて、前記画像データが転送される「バンド幅」は、バスには画像データ以外のその他のデータも転送される場合には、バンド幅全体から、その他のデータに関する部分を除いた、画像データの転送に関するバンド幅であるものとする。「バンド幅情報」は、例えば、画像データの目標ビット量や、画像データに含まれる送信単位の目標ビット量であるものとしてもよい。また、前記削減手段は、画像データの前記送信単位のなかに、予め定められたAC係数が含まれない場合にのみ、DC係数を削除するものとしてもよい。
他方、本発明の画像データ復号化装置は、次のようにしてもよい。すなわち、本発明の画像データ復号化装置は、第1の符号化規則で符号化された画像データに対して、前記第1の符号化規則よりも最大符号長が短い第2の符号化規則に変換するデータ変換手段と、前記変換手段により変換された画像データを復号する画像デコード手段とを備える画像データ復号化装置であってもよい。
この画像データ復号化装置であれば、画像デコーダへ入力するストリームのバンド幅が、マクロブロックの符号化結果の最大ビット量で決まることを利用し、入力ビットストリームに対してマクロブロックの最大ビット量が減少するような符号の変換、もしくは、マクロブロックの最大ビット量が減少するような情報量の削減を適用し、さらに、適用した符号の変換や情報量の削減に対応するように画像デコーダを構成することで、画像デコーダへ入力するストリームのバンド幅を削減できて、画像デコーダへ入力するストリームのバンド幅を削減する復号化装置を提供することができる。
なお、前記データ変換手段は、動きベクトル情報と係数値とを別々に符号変換するものとしてもよい。
また、前記データ変換手段から出力される画像データを記憶するバッファと、前記バッファに対するバンド幅を取得する取得手段をさらに備え、前記バッファへの送信単位において前記画像データの最大データ長が、前記取得手段により取得されたバンド幅を超える場合には、前記データ変換手段によりデータ変換を行うものとしてもよい。
また、前記データ変換手段から出力される画像データを記憶するバッファと、前記バッファに対するバンド幅を取得する取得手段と、前記バッファから出力される画像データに対するバンド幅を取得し、取得したバンド幅に基づいて目標値を設定し、前記符号変換された画像データのビット数を送信単位毎にカウントし、カウントしたビット数が前記目標値を超えた場合にデータ削減指示を出すビット数制御手段と、前記削減指示を受けた場合に、前記符号変換された画像データのビット数を削減する削減手段をさらに備えるものとしてもよい。
また、前記削減手段は、輝度AC、色差AC、輝度DC、色差DCの順でビット数を削減するものとしてもよい。
また、前記第1の符号化規則は不等長符号へ符号化する符号化規則であり、前記第2の符号化規則は不等長符号と等長符号とを切り替えて符号化し、前記第2の符号化規則の最大符号長は等長符号の符号長とする符号化規則であるものとしてもよい。
また、画像データを復号する復号化方法であって、第1の符号化規則で符号化された画像データに対して、前記第1の符号化規則よりも最大符号長が短い第2の符号化規則に変換するデータ変換ステップと、前記変換手段により変換された画像データを復号する画像デコードステップと備える復号化方法を構成してもよい。
また、画像データを復号する復号化装置に用いられる集積回路であって、第1の符号化規則で符号化された画像データに対して、前記第1の符号化規則よりも最大符号長が短い第2の符号化規則に変換するデータ変換手段と、前記変換手段により変換された画像データを復号する画像デコード手段とを備える集積回路を構成してもよい。
本発明は、画像デコーダへのバンド幅を削減するため、符号長の最大ビット数を削減するような変換手段を設けることにより、ビットストリームをバッファに蓄える前に、ビットストリームをマクロブロックの最大ビット量が減少するように構成された符号に変換し、変換後のビットストリームを変換後のビットストリームに対応した画像デコーダで復号するものである。これにより、マクロブロック符号化結果の最大ビット量が減少するため、リアルタイムの画像デコードのために必要となるビットストリームを画像デコーダに転送するバンド幅を小さくすることができる。また、ビットストリームを蓄えるバッファの高性能化などが不要となるため、より低いコストで画像デコーダを実現することができる。
図1は、特許文献1の符号変換における、変換前の符号の符号化規則を示す図である。 図2は、特許文献1の符号変換における、変換後の符号の符号化規則を示す図である。 図3は、本発明の構成図である。 図4は、符号変換部の構成図である。 図5は、符号変換部の動作を示すフローチャートである。 図6は、符号変換前の動きベクトルの符号化(CAVLC)を示す図である。 図7は、符号変換後の動きベクトルの符号化(CAVLC)を示す図である。 図8は、符号変換前の係数値の符号化(CAVLC)を示す図である。 図9は、符号変換後の係数値の符号化(CAVLC)を示す図である。 図10は、実施の形態2の構成図である。 図11は、係数削減部の構成図である。 図12は、係数削減部の動作を示すフローチャートである。 図13は、係数削除の動作を示すフローチャートである。 図14は、実施の形態3の構成図である。 図15は、符号変換前の動きベクトルの符号化(CABAC)を示す図である。 図16は、符号変換後の動きベクトルの符号化(CABAC)を示す図である。 図17は、符号変換前の係数値の符号化(CABAC)を示す図である。 図18は、符号変換後の係数値の符号化(CABAC)を示す図である。 図19は、符号変換前の参照画像インデックスと量子化パラメータの符号化(CABAC)を示す図である。 図20は、符号変換後の参照画像インデックスと量子化パラメータの符号化(CABAC)を示す図である。 図21は、実施の形態4に係る復号化装置100Cを示す図である。
符号の説明
100 復号化装置
101 符号変換部
102 バッファ
103 画像デコーダ
104 フレームメモリ
201 ビットストリーム復号部
202 ビットストリーム生成部
203 ストリーム符号変換部
204 動きベクトル符号変換部
205 係数値符号変換部
100A 復号化装置
801 係数削減部
901 ビットストリーム復号部
902 削減部
903 ビットストリーム生成部
904 ビット量計測部
905 係数削減制御部
100B 復号化装置
1201 算術符号デコーダ
1202 符号変換部
1203 係数削減部
100C 復号化装置
1301 変換後最大符号長特定部
1304 切替部
1303 規則種類表示フラグ付与部
以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
図3は、本発明の実施の形態1における復号化装置100の構成図である。以下、図3を用いて復号化装置100の動作について説明する。
図3に示す復号化装置100は、符号の変換を行う符号変換部101、符号変換部101の出力を蓄えるバッファ102、バッファからビットストリームを読み出して画像を復号する画像デコーダ103、画像デコーダ103によるデコード結果の画像を蓄えるフレームメモリ104から構成される。
符号変換部101は、H.264規格によって符号化されたビットストリームを復号化装置100の外部から読み込み、その読み込んだビットストリームを後述する符号変換手順(図4〜図9の説明を参照)で処理し、処理結果をビットストリームとしてバッファ102に出力する。
バッファ102は、H.264規格が要求するCPB(Coded Picture Buffer)として機能し、符号変換部101から出力されたビットストリームをメモリなどの記憶装置に蓄え、画像デコーダ103からの読み出し要求に応じて蓄えられたビットストリームを出力する。
画像デコーダ103は、符号変換部101が出力する形式のビットストリームを取得し、取得したビットストリームを復号して、復号結果の画像を出力する。なお、この画像デコーダ103は、H.264規格に適合したデコーダの可変長符号復号部を、符号変換部101の出力するビットストリームが復号できるように変更したものである。この結果、画像を正しくデコードするために、符号変換部101で行う変換は、画像符号化規格の可変長符号化以外の規定に影響を与えないようにされる。なお、このような、画像デコーダ103および符号変換部101は、一例であり、何らかの限定をするものではない。
フレームメモリ104は、画像デコーダ103が出力する復号結果の画像をメモリなどの記憶装置に蓄える。フレームメモリ104が蓄えた画像は、画像デコード時の参照画像や復号結果出力時のバッファなどに用いる。
図4は、実施の形態1における符号変換部101の構成図である。図4に示す符号変換部101は、H.264規格で符号化されたビットストリームを、マクロブロックの最大ビット量が削減するように構成された符号に変換する。
ビットストリーム復号部201は、画像符号化規格で符号化されたビットストリームを復号し、ストリーム符号変換部203(ストリーム符号変換部群203x)が変換を行わない場合は入力ビットストリームをそのままビットストリーム生成部202へ、変換を行う場合は入力ビットストリームをストリーム符号変換部203(ストリーム符号変換部群203x)へ送る。
ビットストリーム生成部202は、ビットストリーム復号部201とストリーム符号変換部203から出力されたビットストリームを結合し、画像デコーダ103が復号可能なビットストリームとして出力する。
ストリーム符号変換部203は、ビットストリーム復号部201が出力した符号を最大ビット量が削減するように構成された符号に変換し、変換した結果の各符号を、ビットストリームとしてビットストリーム生成部202に出力する。ストリーム符号変換部群203xは、ストリーム符号変換部203として、動きベクトル符号変換部204、係数値符号変換部205を備え、つまり、ストリーム符号変換部群203xが備える複数のストリーム符号変換部203のうちには、動きベクトル符号変換部204と係数値符号変換部205とが含まれる。これらの詳細は後ほど説明する。
以後、H.264規格のCAVLC(Context Adaptive Variable Length Coding)符号における符号変換の手順を説明する。
CAVLC符号に対する本発明の適用では、符号変換部101は、マクロブロックに対応するビットストリーム(規格ではmacroblock_layer()と記載)が含むパラメータのうち、動きベクトル(以後、mvdと記述)と係数値(以後、levelと記述)だけを最大符号長が小さくなる符号に変換し、その他は変換を行わずに出力する。この実施例でmvdとlevelだけを変換する理由は、ビット量が最大となるマクロブロックではビットの多くがmvdとlevelの符号化に使われるからである。
図5は、この実施例におけるビットストリーム復号部201(図4)の動作を示すフローチャートである。
ビットストリーム復号部201は、入力されたビットストリームを規格に従って、復号する(ステップS301)。次に、ビットストリーム復号部201は、先のステップS301における復号結果を、動きベクトルに対応するmvd_l0とmvd_l1、係数値に対応するlevel_prefixとlevel_suffix、その他に分類する(ステップS302)。また、ビットストリーム復号部201は、ステップS302での分類の結果に基づいて、動きベクトルと係数値以外をそのままビットストリーム生成部202に出力し(図4参照、ステップS303)、動きベクトルを動きベクトル符号変換部204(図4の上段側のストリーム符号変換部203)に出力し(ステップS304)、係数値を係数値符号変換部205(図4の下段側のストリーム符号変換部203)に出力する(ステップS305)。
なお、ビットストリーム復号部201が、そのままビットストリーム生成部202にステップS303で出力を行う、上述した、動きベクトルと係数値以外のその他は、例えば、1ビットのデータや、固定長符号で符号化されたデータが多い。このようなその他の部分までは符号変換がされないことにより、復号化装置100であれば、装置の構成を簡単にできる。そして、復号化装置100であれば、逆に、2ビット以上のデータであり、かつ、可変長符号で符号化されたデータである動きベクトルと係数値は符号変換を行い、構成を簡単にしつつバス幅を十分に小さくできる。
図6は、動きベクトル符号変換部204による符号変換(図5のステップS304)がされる前の、動きベクトルの符号化規則を示す図である。
動きベクトル符号変換部204は、入力された動きベクトルを符号変換する(図5のステップS304)。次に動きベクトルの符号変換について説明する。H.264規格のCAVLC符号では、mvd_l0とmvd_l1が図6に示すようなExp−Golomb符号で符号化されている。規格においてmvd_l0とmvd_l1の値は−16384〜16383に制限されるため、この符号化におけるmvd_l0とmvd_l1の最大符号長は31ビットとなる。規格上、mvd_l0とmvd_l1は最大で32回出現するため、最大ビット量は992ビットとなる。そのため、mvd_l0とmvd_l1における最大符号長の短縮はマクロブロックの最大ビット量削減に有効である。
図7は、動きベクトル符号変換部204(図4)による符号変換(図5のステップS304)がされた後の、動きベクトルの符号化規則を示す図である。図7に、mvd_l0とmvd_l1の最大ビット量を削減するように構成した符号の一例を示す。
この符号は、mvd_l0とmvd_l1の値が15ビットの符号付き固定長符号で表現できることを利用し、元のExp−Golomb符号で15ビット以上が必要となる絶対値128以上を固定長符号、その他をExp−Golomb符号としている。この場合、変換後のビットストリームの復号に符号化手法が固定長符号とExp−Golomb符号のどちらであるかの判定が必要となるため、固定長符号であれば0、Exp−Golomb符号であれば1を符号の先頭に付加している。この符号変換により、mvd_l0とmvd_l1の最大符号長が31ビットから16ビットまで削減され、マクロブロックの最大ビット量が992ビットから512ビットまで削減される。一方、この符号変換では、絶対値が127以下の場合に符号長が1ビット大きくなっている。一般に、mvd_l0とmvd_l1の絶対値は小さいことが多いため、この変換によって平均的なマクロブロックのビット数は増加してしまう。しかし、mvd_l0とmvd_l1の絶対値が小さいマクロブロックでは、マクロブロック全体のビット量が最大ビット量より大幅に小さくなることが多いため、絶対値127以下で符号長が1ビット増加したことによるマクロブロック最大ビット量の増加は無視できる。
図8は、係数値符号変換部205(図4)による符号変換(図5のステップS305)がされる前の、係数値の符号化規則を示す図である。
図9は、係数値符号変換部205(図4)による符号変換(図5のステップS305)がされた後の、係数値の符号化規則を示す図である。
係数値符号変換部205は、係数値を符号変換する(ステップS305)。次に、係数値の符号変換について説明する。H.264規格のCAVLC符号では、図8に示すように係数値をlevel_prefixとlevel_suffixという2個の符号であらわす。なお、規格上は直前に符号化した係数値に応じてlevel_suffixの長さが異なる7種類のテーブルを切り替えるが、ここで説明する符号変換は同じ考え方で全テーブルに適用できるので、以後、図8に示すsuffix_length=0のテーブルについて説明する。
規格において係数値の範囲は−131072〜131071と制限されているため、係数値は18ビットの符号付き固定長符号で表現できる。そこで、図8においてlevel_prefixとlevel_suffixの符号長が合計で18を超える係数値8〜−129039より下段の符号だけを18ビット固定長符号にし、その他の符号は元の符号をそのまま用いる。この場合、動きベクトルの場合と同様、変換後のビットストリームの復号時に符号化手法を固定長符号と元の符号から選択する必要がある。そこで、固定長符号の場合は符号の前に1、元の符号の場合は符号の前に0を付加する。係数値にこの変換を適用した結果を図9に示す。この図に示すように、変換の結果、係数値の最大符号長が38ビットから19ビットまで減少し、マクロブロックの最大ビット量を大幅に削減できる。一方、この符号変換により、係数の絶対値が7以下において符号長が1ビット大きくなる。一般に係数の絶対値は小さいことが多いため、変換によってマクロブロックの平均ビット数は増加してしまう。しかし、係数の絶対値が小さいマクロブロックでは、マクロブロック全体のビット量が最大ビット量より小さくなるため、符号長が1ビット増加したことによるマクロブロックの最大ビット量の増加は無視できる。
復号化装置100は、図5の処理を終了するまで、繰り返し、以上説明した図5の処理を繰り返し実行する(ステップS306)。
このように、復号化装置100は、画像データ(ビットストリーム、マクロブロック)を復号化する復号化装置100であって、当該復号化装置100に入力された画像データを、当該画像データが符号化された符号化規則(図6、図8)よりも最大の符号長が短い別の符号化規則(図7、図9)で符号化された画像データへ変換する符号変換部101と(図3)、符号変換部101により前記変換がされた後の画像データを取得して、取得した画像データを復号化する画像デコーダ103と(図3)を備える。
そして、画像データは、動きベクトルと、係数値とを含み、符号変換部101は、画像データに含まれる、図6の符号化規則により符号化された動きベクトルを、図6の符号化規則よりも最大の符号長が短い図7の符号化規則で符号化された動きベクトルに変換する動きベクトル符号変換部204と(図4)、画像データに含まれる、図8の符号化規則により符号化された係数値を、図8の符号化規則よりも最大の符号長が短い図9の符号化規則で符号化された係数値に変換する係数値符号変換部205と(図4)を備え、動きベクトル符号変換部204と係数値符号変換部205とによる変換を画像データに施す。
なお、このように、請求の範囲の記載における「符号変換手段」は、画像データがn個(n≧2)の部分に分かれ、各部分が互いに異なる種類の符号化規則により符号化される場合において、k番目の部分が第k種類の第1の符号化規則で符号化された画像データを(1≦k≦n)、k番目の部分が第k種類の第2の符号化規則で符号化された画像データに変換し(1≦k≦n)、かつ、第k種類の第1の符号化規則の最大の符号長よりも同じ第k種類の第2の符号化規則の最大の符号長の方が短いものとしてもよい。なお、この場合において、画像データは、n個の上記部分のみからなるものではなく、n個の上記部分と他の部分とにより構成されるものであってもよい。
また、復号化装置100は、前記符号変換部101により変換がされた後の画像データを記憶するバッファ102を更に備え、画像デコーダ103は、バッファ102に記憶された画像データを取得して、取得した画像データを復号化し、バッファ102と当該バッファ102の外部との間で画像データを転送するバスBを更に備え、前記符号化規則とは、図6〜図9に示されるように、値と、当該値を表す符号との対応関係であり、符号は、1ビットのデータが複数個並んだビット列であり、前記最大の符号長は、符号化規則が値を対応付ける各符号のうちで、前記ビット列が最長である符号の当該ビット列のビットの個数であり、符号変換部101は、画像データに含まれる各符号を、それぞれ、当該符号に図6や図8の符号化規則が対応付ける値に対して図7や図9の符号化規則が対応付ける符号へ変換する。
また、図7の符号化規則は、平均の符号長が図6の符号化規則よりも長く、図9の符号化規則は、平均の符号長が図8の符号化規則よりも長い。
また、図7の符号化規則が対応付けをする各符号は、図6の符号化規則が予め定められた切替サイズ(15ビット)以下の短い符号に対応付ける各値(図6における0〜−127の各値)に対応付けられる短符号長側符号(図7における0〜−127の各値の符号)と、図6の符号化規則が切替サイズ(15ビット)より長い符号に対応付ける各値(図6における128〜−16384)に対応付けられる長符号長側符号(図7における128〜−16384の各値の符号)とを含む。
ここで、上述の切替サイズ(15ビット)は、図6の符号化規則が対応付けをする全ての値(0〜−16384)を、等長符号により符号化する場合に、その等長符号に必要となる最低のビット数である。この等長符号の符号長(15ビット)は、上述した、対応付けをする全ての値(0〜−16384)の個数をxとして、2を底としたxの対数値(log(x))により求められる。
そして、図7の符号化規則が対応付けをする符号は、上記短符号長側符号も、上記長符号長側符号も、いずれの場合でも、符号の冒頭における1ビットのデータであり、当該符号が短符号長側符号か長符号長側符号かを示す識別ビット(0又は1)と、2ビット目以降の本体部とを備える。
例えば、図7のmvd値1に対応する符号「1_010」は、識別ビットとして「1」をもち、本体部として「010」を持つ。
識別ビットは、その識別ビットが含まれる符号が、上述した短符号長側符号(図7における値0〜−127の符号)である場合には、値1を有し、その識別ビットが含まれる符号が長符号長側符号である場合には、値0を有する。
他方、本体部は、その本体部を有する符号が、短符号長側符号である場合は、その短符号長側符号が示す値に対して図6の符号化規則が対応付ける符号と同じ符号である。例えば、図7における値1に対応付けられる短符号長符号「1_010」における本体部「010」は、図6において同じ値1に対応付けられる「010」と同じである。
そして、本体部は、その本体部を有する符号が長符号長側符号である場合には、上記した切替サイズの大きさの等長符号である。例えば、図7において、値128に対応する長符号長符号「0_00…01000…0」の本体部「00…01000…0」は、15ビットの等長符号であり、かつ、値128を示すものである。ここで、長符号長側符号の本体部(「00…01000…0」)は、その長符号長側符号が示す値(128)を示す等長符号である。
こうして、図7の符号化規則は、図6の符号化規則が切替サイズ以下の小さい符号(「010」等)に対応付ける各値を、それぞれ、当該符号と同じ符号が少なくとも一部に含まれる短符号長側符号(「0_010」等)に対応付けると共に、当該切替サイズよりも大きい符号に対応付ける各値(128等)を、それぞれ、いずれも前記切替サイズ(15ビットのサイズ)を有し、互いに等長である予め定められた等長符号(「00…01000…0」等)が含まれる長符号長側符号(「0_00…01000…0」)へと対応付ける。
同じようにして、図9の符号化規則は、図8の符号化規則が切替サイズ18以下の小さい符号に対応付ける各値(1〜−7)を、それぞれ、当該符号(例えば値2に対応付けられた「001」)と同じ符号が少なくとも一部に含まれる短符号長符号(例えば図9における「0_001」)に対応付けると共に、当該切替サイズよりも大きい符号に対応付ける各値(8〜―129039)を、それぞれ、いずれも前記切替サイズ(18ビットのサイズ)を有し、互いに等長である予め定められた等長符号が含まれる符号(図9に示される「1_xxxxxxxxxxxxxxxxxx」)に対応付ける。そして、前記切替サイズは、図8の符号化規則が対応付けをする全ての値(1〜―129039)を、等長符号により符号化する場合に必要なビットの最低個数18であり、前記等長符号は、当該最低個数のビットつまり18個のビットよりなる等長の符号であり、図9の符号化規則の符号は、図8の符号化規則と同じ符号、または、当該等長符号の何れか一方を含む本体部(「1_xxxxxxxxxxxxxxxxxx」における「xxxxxxxxxxxxxxxxxx」)と、当該符号が前記第1の符号化規則の符号と同じ符号が含まれるか、または、前記等長符号が含まれるかを識別する識別ビット(「1_xxxxxxxxxxxxxxxxxx」における「1」)とを備える。
なお、復号化装置100は、例えば、上記符号変換部101、バッファ102、バスB、画像デコーダ103、フレームメモリ104が、当該復号化装置100の有する集積回路(LSI)上に実現された復号化装置であってもよい。
なお、符号変換部101は、例えば、図6や図8に示される、変換前の符号を入力符号とし、図7や図9に示される、変換後の符号を出力符号とする、入力符号に対応した出力符号を出力する回路として構成される。このような、回路として構成される場合、符号変換部101は、図6および図8により示される、入力符号と、その入力符号のmvd値と同じmvd値の出力符号との対応関係に基づいた回路構成をとるものとしてもよい。
このように、本実施例の符号変換により、マクロブロックの最大ビット量が削減されるため、マクロブロックの最大ビット量から決まるビットストリームをデコーダに転送するバンド幅も削減できる。なお、本実施例における画像デコーダ103は、規格が規定する画像復号処理のうち、動きベクトルと係数値に対応する可変長符号復号部を図7と図9の符号に対応するよう変更したものである。
このような復号化装置100であれば、入力された画像データが、符号変換部101によって、最大の符号長が短い図7の符号化規則の画像データに変換されて、最大の符号長が短い符号化規則で符号化された画像データが復号化装置100内で転送されるようにでき、復号化装置100におけるバス幅を小さくすることができる。
ここまで、本発明の実施の形態1について説明したが、本実施の形態は、最大符号長を削減するように符号を変換するという本質を維持した範囲で様々な変形が可能である。変形の例としては、H.264以外のVC−1やMPEG−2などの画像符号化規格への適用が考えられる。H.264以外の画像符号化規格においても動きベクトルと係数値がマクロブロックの最大ビット量の多くを占めるため、各々の符号を最大符号長が減少するような符号に変換することで、本実施の形態と同様な効果を得ることができる。
なお、図3に示す各機能ブロックは典型的には集積回路であるLSIとして実現される。図3の破線は、LSIの典型的な構成を示し、符号変換部101と画像デコーダ103をLSIとして集積し、バッファ102とフレームメモリ104をDRAMなどのメモリLSIとして集積することを示している。ただし、集積化の手法については、この例に限定するものではなく、各機能が個別に1チップ化されてもよいし、一部またはすべてを含むように1チップ化されてもよい。さらには、LSIに置き換わる集積回路化の技術があれば、当然、その技術を用いて集積化を行ってもよい。
また、実施の形態1における復号化装置にさらに、バッファに対するバンド幅を取得する取得部を設け、入力したビットストリームの処理単位ごとのビット数が、取得されたバンド幅を超えた場合にのみ、符号変換を行うようにしてもよい。その際、変換前のストリームか変換後のストリームかを識別する識別子をストリームに付与することが好ましい(図21および図21の説明を参照)。
(実施の形態2)
図10は、本発明の実施の形態2に係る復号化装置100Aの構成図である。以下、図10を用いて、本発明の実施の形態2に係る本復号化装置100Aのについて詳しく説明する。
図10に示す復号化装置100Aは、実施の形態1で示した復号化装置100の符号変換部101とバッファ102の間に係数削減部801を追加した構成となっている。図10のうち、係数削減部801以外は、実施の形態1と同じ構成であり、その機能も同一なので、同じ符号を付しその説明を省略する。
係数削減部801は、符号変換部101が出力するビットストリームを読み込み、読み込んだビットストリームに含まれる各マクロブロックについて、それぞれ、そのマクロブロックに含まれる直交変換(DCTなど)適用結果の係数値を削除することで、マクロブロックのビット量を削減し、マクロブロックのビット量を指定した値に近づける。実施の形態2では、実施の形態1で示したような符号変換を行ってもマクロブロックのビット量が目標より多い場合に係数削減を実施する。実施の形態2では、ビットストリームのデコーダへの転送に割り当て可能なバンド幅から求めたマクロブロックの最大ビット量を目標ビット量として設定する。このため、実施の形態2では、ビットストリームの転送に必要なバンド幅が想定した値で収まるようにマクロブロックのビット量を削減することができる。なお、目標ビット量は、バスBのバス幅に対応した、適切にバスBでの転送ができるビット量が選ばれる。
なお、請求の範囲における「バンド幅情報」は、この実施の形態2において、上記目標ビット量によって、一例が示される。
図11は、実施の形態2における係数削減部801の構成図である。ビットストリーム復号部901は、復号化装置100Aに入力された入力ビットストリームを、係数と係数以外の部分に分け、係数部分は削減部902、係数以外の部分はビットストリーム生成部903に送る。また、ビットストリーム復号部901は、入力ビットストリームを複製してビット量計測部904に送る。削減部902は、係数削減制御部905から入力されるコマンドにしたがって、ビットストリーム復号部901から入力された係数部分のビットストリームから係数の削除を行い、その結果から係数部分のビットストリームを再構成して出力する。ビットストリーム生成部903は、ビットストリーム復号部901と削減部902から入力されるビットストリームを結合し、ビットストリームとして出力する。ビット量計測部904は、入力ビットストリームを復号し、マクロブロックのビット量や係数部に含まれる係数値とそのビット量などを出力する。係数削減制御部905は、係数削減部801の外部から入力される目標ビット量とビット量計測部904から入力されるマクロブロックのビット量との差分を求め、求められた差分の値と、ビット量計測部904から入力される係数部に含まれる係数値およびそのビット量とから、係数削除の有無と、削除する係数値を判断し、削減部902に対するコマンドを生成する。また、係数削減制御部905は、複数のマクロブロックをまたいだ目標ビット量制御などに用いるため、係数削減後のマクロブロックビット量と目標ビット量との差分を求め、係数削減制御部905の内部に保持する。なお、上記した、係数削減部801の外部から入力される目標ビット量は、例えば、係数削減部801の外部にある目標ビット量記憶部に記憶されたものが、係数削減部801に入力されてもよいし、係数削減部801の外部にある目標ビット量算出部により算出された目標ビット量が入力されるものとしてもよい。
以後、係数削減部801の動作を説明する。
図12は、係数削減部801のマクロブロックに対する動作をフローチャートで示したものである。係数削減部801は、はじめにマクロブロックのビット量と目標ビット量とを比較する(ステップS1001)。ステップS1001の比較によって、もし、マクロブロックのビット量が目標ビット量より少ないと判定されれば、係数削減部801は、係数削減部801に入力されたビットストリームをそのまま出力する(ステップS1006、ステップS1001:達成)。他方、ステップS1001の比較において、マクロブロックのビット量が目標ビット量より多いと判定された場合には(ステップS1001:未達)、ビットストリーム復号部901が、ビットストリームを復号する(ステップS1002)。次に、係数削減部801は、ステップS1002での復号結果が係数に対応するresidualであるかを調べ、復号結果がresidualでない場合(ステップS1003:その他)、ステップS1002で復号した部分のビットストリームをそのまま出力し(ステップS1004)、ステップS1002に戻る。他方、ステップS1002での復号結果がresidualである場合は係数削除ステップS1005に進み(ステップS1003:residual)、マクロブロックが終了した場合は処理を終了する(ステップS1003:マクロブロック終了)。削減部902は、ステップS1003の判定により復号結果がresidualであると判定されると(ステップS1003:reidual)、係数の削除によるビット量の削減を行う(ステップS1005)。なお、削減部902は、ビットストリームが続く限り、図12で示したマクロブロックの処理を繰り返し実施する。
図13は、削減部902が行う図12のステップS1005の係数削除の動作をフローチャートで示したものである。削減部902の基本的な動作規則は以下のようになっている。以後、図13の詳細について説明する。なお、図13のステップは全て削減部902が行なう。
(1)AC係数(直交変換適用結果のうち高周波成分)から削除し、AC係数がなくなった場合にだけ、DC係数(直交変換適用結果のうち直流成分)を削除する。
(2)AC係数、DC係数の削除は、輝度係数の削除と色差係数の削除を交互に行う。
(3)1係数の削除毎にビット量の判定を行い、目標に到達した時点で終了する。
(4)値が0でない係数について、係数の削除を行う。
削減部902は、図12のステップS1005の処理、つまり、図13の処理を行うに際して、はじめに、係数復号ステップS1101で、全係数の復号を行う。このステップS1101により、輝度AC係数、輝度DC係数、色差AC係数、色差DC係数が係数として復号される。
次にAC係数有無判定ステップS1102で、削減部902は、先にステップS1101で復号されたAC係数に、非0の値が存在するかを調べ、存在しない場合はDC係数判定ステップS1107に進み(ステップS1102:無)、存在する場合は輝度AC係数削除ステップS1103に進む(ステップS1102:有)。
輝度AC係数削除ステップS1103では、削減部902は、先にステップS1101で復号された輝度AC係数の非0の係数のうち、最も高周波数に対応する係数で値が最大のもの1個を削除し、削除後のマクロブロックのビット量を求める。
その後、目標ビット量判定ステップS1104で、削減部902は、ステップS1103で求められたマクロブロックのビット量が目標に到達したかを調べ、到達していない場合は、色差AC係数削除ステップS1105に進み(ステップS1104:未達)、到達した場合は係数符号化ステップS1112へ進む(ステップS1104:達成)。
色差AC係数削除ステップS1105では、削減部902は、先にステップS1005で復号された色差AC係数の非0の係数のうち、最も高周波数に対応する係数で値が最大のもの1個を削除し、削除後のマクロブロックのビット量を求める。
その後、目標ビット量判定ステップS1106で、削減部902は、ステップS1105で求められたマクロブロックのビット量が目標に到達したかを調べ、到達していない場合は再度AC係数の削除を行うためにAC係数有無判定ステップS1102に進み(ステップS1106:達成)、到達した場合は係数符号化ステップS1112へ進む(ステップS1106:未達)。
DC係数判定ステップS1107では、削減部902は、先にステップS1101で復号されたDC係数に非0の値が存在するかを調べ、存在しない場合は係数符号化ステップS1112に進み(ステップS1107:無)、存在する場合は輝度DC係数削除ステップS1108へ進む(ステップS1107:有)。
輝度DC係数削除ステップS1108では、削減部902は、先にステップS1101で復号された輝度DC係数の非0係数のうち値が最大のもの1個を削除し、削除後のマクロブロックのビット量を求める。
その後、目標ビット量判定ステップS1109で、ステップS1108で求められたマクロブロックのビット量が目標に到達したかを調べ、到達していない場合は色差DC係数削除ステップS1110に進み(ステップS1109:未達)、到達した場合は係数符号化ステップS1112に進む(ステップS1109:達成)。
色差DC係数削除ステップS1110では、先にステップS1101で復号された色差DC係数の非0係数のうち値が最大のもの1個を削除する。
その後、目標ビット量判定ステップS1111で、マクロブロックのビット量が目標に到達したかを調べ、到達していない場合はDC係数判定ステップS1107に進み(ステップS1111:未達)、さらに多くの係数を削除し、到達している場合にはステップS1112に進む(ステップS1111:達成)。
目標に到達した場合は係数符号化ステップS1112に進む。最後に係数符号化ステップS1112では、削減部902は、上記した削減処理を行った後の輝度AC係数、輝度DC係数、色差AC係数、色差DC係数を符号化し、結果をビットストリームとして出力する。符号化は、符号変換部101で行う符号変換を適用した後の形式を出力するように構成する。
以上のようにして、バッファ102と当該バッファ102の外部との間でビットストリームが転送されるバンド幅に応じて選択された目標ビット量を取得する係数削減部801(係数削減制御部905、図11参照)と、符号変換部101により変換がされた後のビットストリームに含まれるマクロブロックのビット量が、取得された前述の目標ビット量を超えるか否かを判定する削減部902とを備え(図13のステップS1104、S1106、S1109、S1111参照)、その削減部902が、データ長が目標ビット量を超えると判定されれば(ステップS1104:未達、など)、当該判定がされた前記マクロブロックのビット数を削減する復号化装置100Aが構成される。
そして、このような復号化装置100Aにおいて、削減部902は、ビットストリームのマクロブロックのなかに、AC係数、DC係数のうちでAC係数が含まれない場合に(図13のステップS1102:無)、DC係数を削除する。
また、削減部902は、輝度係数が削除されたマクロブロック(ステップS1103、S1108)のビット量が、目標ビット量に到達しているか否かを判定し(ステップS1104、S1109)、輝度係数を削除したマクロブロックのビット量が目標ビット量に到達していないと判定された場合にのみ(ステップS1104:未達、ステップS1109:未達)、当該マクロブロックの色差係数を削除する(ステップS1105、ステップS1110)。
こうして、削減部902は、輝度AC、色差AC、輝度DC、色差DCの4種類の係数のうちで、この順序で低くなる削除の優先順位に基づいて、マクロブロックに含まれる種類の係数のうちで、優先度が最も高いものを削除して、マクロブロックのビット量を削減する。
以上の手順で係数を削除しても、マクロブロックのビット量が目標ビット量より大きい場合がある。その場合、係数削減制御部905が目標ビット量との差分を保持していることを利用し、後続マクロブロックに対する目標ビット量をその差分だけ削減する。つまり、係数削減制御部905は、その場合、後続マクロブロックについて処理を行う際の目標ビット量を、上記した差分だけ小さくする。この操作により、目標ビット量に到達しなかったマクロブロックによるバンド幅の増加を小さくすることができる。
このように、本実施の形態2では、マクロブロックのビット量をマクロブロック単位に増減させることができる。これを用いて、動き補償を行うマクロブロックの目標ビット量を小さくし、その結果削減されたストリーム転送のバンド幅を参照画像転送に用いることで画像デコード全体のバンド幅を削減するといった応用も可能である。
続いて、本実施の形態をH.264規格のCAVLC(Context Adaptive Variable Length Coding)符号に対して適用する手法を説明する。まず,係数復号ステップS1101(図13)で輝度DC係数、輝度AC係数、色差DC係数、色差AC係数を再構成する手法を説明する。規格上、直交変換後の係数は、residual_blockとして符号化されており、以下の5種類がある。
(1)Intra16x16DCLevel
輝度DC係数(ブロックサイズ16x16、係数16個)
(2)Intra16x16ACLevel
輝度AC係数(ブロックサイズ16x16、係数15個を16組)
(3)LumaLevel
輝度係数(ブロックサイズ4x4もしくは8x8、係数16個を16組)
(4)ChromaDCLevel
色差DC係数(4:2:0フォーマットでは、係数4個を2組)
(5)ChromaACLevel
色差AC係数(4:2:0フォーマットでは、係数15個を8組)
再構成する係数のうち、色差DC係数と色差AC係数については、そのままで再構成した結果として使用できる。一方、輝度DC係数と色差AC係数は、マクロブロックの直交変換ブロックサイズによって、以下の3通りから選択して使用する。
(1)ブロックサイズ16x16の場合
輝度DC係数はIntra16x16DCLevelを使用。
輝度AC係数はIntra16x16ACLevelを使用。
(2)ブロックサイズ8x8の場合
輝度DC係数はLumaLevel[i][0](i=0、4、8、12)を使用。
輝度AC係数は上記以外のLumaLevelを使用。
(3)ブロックサイズ4x4の場合
輝度DC係数はLumaLevel[i][0](0≦i≦15)を使用。
輝度AC係数は上記以外のLumaLevelを使用。
以上の手順により、輝度DC係数、輝度AC係数、色差DC係数、色差AC係数を再構成することができる。以後の係数削除については、係数削除ステップS1005の説明に記載の手法をそのまま適用できる。係数削除を適用した結果の再符号化においては、係数値を符号化する際のLevel_PrefixとLevel_Suffixを図9のようにする。これにより、実施の形態1と同じ画像デコーダ103で正しい画像を復号することができる。
ここまで、本発明の実施の形態2について説明したが、実施の形態2は係数削除によりマクロブロックのビット数を削減するという特徴を維持したままで様々な変形が可能である。具体的な変形例として、MPEG−2やVC−1といった動画像符号化規格に対する適用や係数削除だけでなく係数値の変更をビット量削減に利用する手法などが考えられる。
なお、図10に示す各機能ブロックは典型的には集積回路であるLSIとして実現される。図10の破線は、LSIの典型的な構成を示し、符号変換部101と係数削減部801、画像デコーダ103をLSIとして集積し、バッファ102とフレームメモリ104をDRAMなどのメモリLSIとして集積することを示している。ただし、集積化の手法については、この例に限定するものではなく、各機能が個別に1チップ化されてもよいし、一部またはすべてを含むように1チップ化されてもよい。さらには、LSIに置き換わる集積回路化の技術があれば、当然、その技術を用いて集積化を行ってもよい。
(実施の形態3)
図14は、本発明の実施の形態3における復号化装置100Bの構成図である。以下、図14を用いて実施の形態3における復号化装置100Bの動作について説明する。
図14に示す復号化装置100Bは、実施の形態2に示した復号化装置100Aのビットストリーム入力に算術符号デコーダ1201を追加したものである。図14のうち、算術符号デコーダ1201、符号変換部1202、係数削減部1203以外の部分については、実施の形態2のものと同じ機能であるため、同じ構成要素のものには同じ符号を付し、その説明を省略する。
算術符号デコーダ1201は、H.264規格のCABAC(Context Adaptive Binary Arithmatic Coding)符号で符号化されたビットストリームを算術復号し、復号結果をビットストリームとして出力する。
ここで、H.264規格のCABAC符号では、符号化結果のビットストリームが算術符号で圧縮されている。CABAC符号で用いられている算術符号は、復号が逐次処理とならざるを得ないため、画像デコーダの処理性能に見合った復号性能を得るのが困難である。そこで、CABAC符号に対応する復号化装置は、算術符号の復号結果を規格のCPBに相当するバッファ102に蓄え、画像デコーダは算術符号を復号した結果をデコードするように構成される。しかし、この構成では、算術符号の圧縮を復元した結果を画像デコーダに転送することになるため、マクロブロックの最大ビット量が約5000ビットと大きく、バッファ102から画像デコーダに復号結果を転送するのに必要なバンド幅が非常に大きくなる。実施の形態3は、この問題を解決するため、算術符号の復号結果で多くを占める部分に、実施の形態1で説明した符号変換や実施の形態2で説明した係数値の変換を適用する。
以後、H.264規格のCABAC符号への適用における図14の符号変換部1202と係数削減部1203の処理内容について説明する。
まず、符号変換部1202で行う符号変換について説明する。符号変換部1202では、動きベクトル(mvd_l0、mvd_l1)と係数値(coeff_abs_level_minus1、coeff_sign_flag)に加え、参照画像インデックス(ref_idx_l0、ref_idx_l1)と量子化パラメータ(mb_qp_delta)に符号変換を適用する。以後、各要素に対する符号変換について説明する。
図15は、動きベクトル(mvd_l0、mvd_l1)の変換前の符号である。図15以降の図にあるxは、その符号が示す値の正負を示す符号ビットであり、0が正、1が負を示す。この符号を最大符号長が短くなるように変換した符号を図16に示す。規格上、動きベクトルの値は、−16384〜16383に制限されるため、動きベクトルは15ビットの固定長符号で表現できる。
そこで、図16の符号では、元の符号が15ビットを超える絶対値で17以上の値は固定長符号、それ以外は元の符号で符号化する。この符号化では、復号時に符号化が固定長符号化と元の符号のどちらであるかを判定する必要があるので、符号化を判定するための1ビットを符号の前に付加する。付加される1ビットは、この実施の形態3における、変換後の符号の識別ビットである。これにより、最大符号長が34ビットから16ビットまで削減される。一方、元の符号をそのまま用いる絶対値が16以下の値については、符号化を判定するためのビット追加により、符号長が1ビット長くなってしまう。しかし、本発明の削減対象であるビットストリームをデコーダに転送するためのバンド幅は、マクロブロックの最大ビット数で決まり、その最大ビット数となるマクロブロックでは、動きベクトルをあらわすビット量が多く、絶対値が17以上の値であることが多いため、絶対値が16以下の値に対する符号長の増加は特に問題とならない。
なお、図16の符号化規則の場合、長符号長側符号は、絶対値が17以上である各値の符号であり、短符号長符号は、絶対値が17未満である各値の符号であり、切替サイズは14ビットである(図15における値0〜±16の符号のビット数を参照)。
図17は、係数値(coeff_abs_level_minus1、coeff_sign_flag)の変換前の符号である。規格上、係数値は−131072〜131071に制限されるため、係数値は18ビットの固定長符号で表現できる。そこで、動きベクトルと同様な考え方で符号を変換すると、図18のようになり、絶対値が18以上の値を固定長符号とする。この符号変換により、最大符号長が48ビットから19ビットまで削減できる一方、絶対値が17以下の値では符号長が1ビット長くなってしまう。しかし、動きベクトルと同様、係数値についても、最大ビット数となるマクロブロックでは絶対値が18以上になることが多いため、絶対値が17以下の値に対する符号長が増加しても特に問題とならない。
図19は、参照画像インデックス(ref_idx_l0、ref_idx_l1)と量子化パラメータ(mb_qp_delta)の変換前の符号である。変換前の符号は、算術符号の圧縮率を高めるため、0が出現するまでの1の数で値を表すUnary Binarizationとなっており、最大符号長だけでなく、平均符号長も大きい。そこで、参照画像インデックスと量子化パラメータについては、最大符号長と平均符号長の双方が短くなるExp−Golomb符号で値を符号化する。
図20は、変換後の符号であり、最大符号長は53ビットから11ビットまで削減できる。この変換は値に応じて符号を切り替える方式、つまり、変換後の符号が、長符号長符号と短符号長符号とに分かれる方式ではないので、符号化を判定するためのビット(例えば、上述した各識別ビット)は不要であるが、参照画像インデックスの1と4、量子化パラメータの1と−2において符号長が1ビット長くなる。しかし、最大ビット数となるマクロブロックでは、動きベクトルや係数値がビット数の多くを占めており、それらについては前述の変換によって大幅にビット数が削減されるため、参照画像インデックスや量子化パラメータにおけるビット数の増加は特に問題とならない。
このように、上述の説明では、変換後の符号が、長符号長符号と短符号長符号とに分かれる方式を詳しく説明したが(図7、図9、図16、図18参照)、このような長符号長符号と短符号長符号とに分かれる方式に限定されず、そのような方式以外の他の方式が用いられてもよく、例えば、上記図19、図20で説明した方式は、そのような他の方式の1つである。
以上、実施の形態3における符号変換部1202について説明した。ここで示した符号変換により、マクロブロックの最大ビット量は約5000ビットから約3500ビットまで削減できる。なお、ここで示した符号変換はあくまで一例であり、符号変換によって最大符号長を削減するという本質を維持したまま、様々な変形が可能である。具体的には、元の符号をそのまま出力せずにExp−Golomb符号などに変換する手法などがある。
次に、実施の形態3における係数削減部1203について説明する。実施の形態3における係数削減部1203は、実施の形態2で説明した係数削減部1203と同様に構成されるので、構成に関する説明は省略する。
続いてH.264規格のCABACにおける係数削減の手順を説明する。H.264規格のCABAC符号では、ブロックサイズが8x8の直交変換における輝度DC係数と輝度AC係数の扱いが実施の形態2で示したH.264規格のCAVLC符号とは異なっている。そこで、ブロックサイズが8x8の場合、輝度DC係数はLumaLevel8x8[0][0](0≦i≦3)を使用し、輝度AC係数は上記以外のLumaLevel8x8を使用する。この点を除き、係数削減部1203の動作は、実施の形態2で説明したH.264規格のCAVLC符号の場合と同じである。
実施の形態3においても、係数削除後のマクロブロックのビット量が目標ビット量より大きくなることがある。この場合、この実施の形態3の係数削減部1203が有する係数削減制御部905が、目標ビット量との差分を出力することを利用し、後続するマクロブロックに対する目標ビット量をその差分だけ減少させるなどの制御を行うことができる。
このように、本実施の形態3では、ストリームを画像デコーダに転送するためのバンド幅をマクロブロック単位に増減させることができる。これを用いて、動き補償を行うマクロブロックの目標ビット量を小さくして削減されたストリーム転送のバンド幅を参照画像転送に使用し、画像デコードに必要な全体のバンド幅を削減するといった制御も可能である。
以上、H.264規格のCABAC符号で符号化されたビットストリームを例に実施の形態3について説明した。ここに示した係数削除の手法は、あくまで一例であり、係数などの削除によりマクロブロックの符号長を削減するという本構成の特徴を維持したまま、様々な変形が可能である。変形の例としては、係数を削除するのではなく値を小さくするような手法などが考えられる。
なお、図14に示す各機能ブロックは典型的には集積回路であるLSIとして実現される。図14の破線は、LSIの典型的な構成を示し、算術符号デコーダ1201と符号変換部1202、係数削減部1203、画像デコーダ103をLSIとして集積し、バッファ102とフレームメモリ104をDRAMなどのメモリLSIとして集積することを示している。ただし、集積化の手法については、この例に限定するものではなく、各機能が個別に1チップ化されてもよいし、一部またはすべてを含むように1チップ化されてもよい。さらには、LSIに置き換わる集積回路化の技術があれば、当然、その技術を用いて集積化を行ってもよい。
ここで、符号変換部1202は、図16に示される符号化規則の符号に、符号を変換する。
図16の符号化規則において、例えば、値が±17つまり絶対値が17である場合、その値に対応する符号は「1_00000000000001_x」である。ここで、この符号の本体部は、「00000000000001_x」であり、等長符号値±1を示す等長符号である。つまり、mvd値の絶対値が17で、等長符号値の絶対値が1で、互いに異なる。
このように、図16の符号化規則は、各mvd値に対して、それぞれ、そのmvd値とは異なる等長符号値を有する等長符号の長符号長符号を対応付ける。図16の符号化規則は、このような、値と、その値に対応付けられる長符号長符号の等長符号値との値対応関係を含む。つまり、図16の符号化規則は、値と長符号長符号との対応関係をもつことにより、値と、その長符号長符号における等長符号値とを値対応関係をもつ。図16の符号化規則においては、かかる値対応関係は、mvd値に対して、そのmvd値の絶対値から16を引いた絶対値の等長符号値を対応付ける。このため、上記のように、値が±17の場合には、その値に対応する符号は、17−16=1の絶対値の等長符号値±1の等長符号となる。
このようにしてあるので、広い範囲の等長符号値を表すための長いビットの等長符号を用いなくとも、例えば、長符号長符号で表すmvd値の個数に対応する最小限度のビットの等長符号など、少ないビットの等長符号で、mvd値を記録できる。
なお、この点に関しては、図18の符号化規則においても同様であり、図18の符号化規則においては、長符号長符号に対応する符号は、その符号の係数値の絶対値から17を減じた絶対値の等長符号値を有する等長符号である。
なお、この実施の形態3においては、図16、図18に示される符号の本体部は、2の補数の方式によって、等長符号値を示すのではなく、上述のように、その等長符号値の正負を示す符号ビットと、その等長符号値の絶対値を示す絶対値等長符号とによって構成される。このため、本体部が示す等長符号値の最小値の絶対値と、最大値の絶対値とは互いに同一である。例えば、本体部がmビットであれば、絶対値等長符号は、m−1ビットになり、2の(m−1)乗をLとして、本体部は−(L−1)〜+(L−1)を示し、互いに同一のその絶対値はこのL−1である。他方、符号化規則が本体部と識別ビットにより対応付ける値の最小値の絶対値と最大値の絶対値が互いに同一である場合は多いので、上述のよう符号ビットを用いる本体部を用いることにより、上記値対応関係が簡単になる。ひいては、上記値対応関係を処理する符号変換部1202を簡単な構成にできる。
(実施の形態4)
実施の形態4として、実施の形態3(図14等参照)の変形例を説明する。なお、実施の形態3と同じ点については、この実施の形態4で、説明を繰り返さない。
図21は、実施の形態4に係る復号化装置100Cを示す図である。
復号化装置100Cは、変換後最大符号長特定部1301と、規則種類表示フラグ付与部1303と、切替部1304とを備える。
変換後最大符号長特定部1301は、符号変換部1202が符号を変換した後のマクロブロックに含まれる符号の符号長のうちで、最大の符号長を特定する。変換後最大符号長特定部1301は、より具体的には、3種類の最大の符号長を特定し、すなわち、動きベクトルの符号(図15参照)のうちでの最大の符号長(以下、動きベクトル符号最大符号長)と、そのマクロブロックに含まれる係数値の符号(図17参照)の符号長のうちでの最大(以下、係数値符号最大符号長)と、参照画像インデックスと量子化パラメータとの符号(図18参照)のうちでの最大の符号長(以下、第3の最大符号長)とを特定する。なお、変換後最大符号長特定部1301は、例えば、変換前の動きベクトルの符号のうちでmvd値の絶対値が最大のものを特定することによって、特定された変換前の符号に対応する変換後の符号の符号長を、動きベクトル符号最大符号長と特定する。
切替部1304は、変換後最大符号長特定部1301により特定された動きベクトル最大符号長が予め定められた動きベクトル閾長さを越える場合にのみ、変換後最大符号長特定部1301がその動きベクトル最大符号長を特定したマクロブロックに含まれる動きベクトルの符号変換を符号変換部1202に行わせる。
また、切替部1304は、変換後最大符号長特定部1301により特定された係数値符号最大符号長が予め定められた係数値閾長さを越える場合にのみ、そのマクロブロックに含まれる係数値の符号変換を符号変換部1202に行わせる。
また、符号変換部1202は、変換後最大符号長特定部1301により特定された第3の最大符号長が予め定められた第3の閾長さを越える場合にのみ、そのマクロブロックに含まれる参照画像インデックス等の符号変換を符号変換部1202に行わせる。
なお、切替部1304は、動きベクトル等を、符号変換部1202を介して、規則種類表示フラグ付与部1303に入力させるか、又は、符号変換部1202を介さずに直接に規則種類表示フラグ付与部1303に入力させるかを切り替えることにより、このような切替を行う(図21参照)。なお、かかる切替部1304の構成は一例であり、切替部1304は、他の構成を採ってもよい。
規則種類表示フラグ付与部1303は、切替部1304または符号変換部1202が規則種類表示フラグ付与部1303に入力するマクロブロックに対して、符号変換部1202が符号変換をしたか否かを示す規則種類表示フラグを付与する。規則種類表示フラグは、動きベクトルの符号変換がされたか否かを示す動きベクトルフラグと、係数値が符号変換されたか否かを示す係数値フラグと、参照画像インデックス等が符号変換されたか否かを示す第3のフラグとが含まれる。規則種類表示フラグ付与部1303は、これら3つの規則種類表示フラグをマクロブロックに付与する。このとき、例えば、マクロブロックは、3つの規則種類表示フラグのサイズの分だけ3ビット大きくなるものとしてもよいし、付与される前から予め3つの規則種類表示フラグのサイズがマクロブロック内部に存在していて、大きくなることはないものとしてもよい。
この実施の形態4においては、画像デコーダ103(図14)は、規則種類表示フラグに基づいて、その規則種類表示フラグが含まれるマクロブロックを符号化した符号化規則を特定する。画像デコーダ103は、動きベクトルフラグが符号変換をしたことを示す場合には、そのマクロブロックの動きベクトルの符号化規則が、図16の符号化規則であることを特定し、符号変換をしていないことを示す場合には、図15の符号化規則であることを特定する。また、画像デコーダ103は、同様にして、係数値および、参照画像インデックス等の符号化規則も特定する。そして、画像デコーダ103は、特定された動きベクトル、係数値、参照画像インデックス等の各符号化規則に対応する復号の処理を行う。
以上、いくつかの実施の形態を例に本発明における実施の形態を説明した。本発明は、ここに記載した実施の形態だけでなく、符号変換や係数値などの情報削除によってマクロブロックの最大ビット数を削減するといった本質を維持したまま、様々な変形が可能である。たとえば、上記で説明したH.264規格の画像復号装置だけでなく、MPEG−2規格やVC−1規格などに対応した画像復号装置にも同様に適用が可能である。また、符号の変換や係数の削除を独立した回路で行うだけではなく、ストリームから音声と映像を分離する処理を行うデマルチプレクスなどと同時に行うように構成することも可能である。
本発明に係る復号化装置は、第1の符号化規則で符号化された符号に対して、最大符号長を小さくする第2の符号化規則に変換する変換手段を有し、テレビ、パーソナルコンピュータ、DVDレコーダーなどに有用である。
【0004】
処理性能に見合った復号性能を得るのが困難である。そこで、CABAC符号に対応する復号化装置は、算術符号の復号結果を規格のCPBに相当するバッファに蓄え、画像デコーダは算術符号を復号した結果をデコードするように構成される。しかし、この構成では、算術符号の圧縮を復元した結果を画像デコーダに転送することになるため、マクロブロックの最大ビット量が約5000ビットと大きく、バッファから画像デコーダに復号結果を転送するのに必要なバンド幅が非常に大きくなる。例えば、このように、マクロブロック符号化結果の最大ビット量が大きくなり、必要なバス幅が大きくなってしまう問題が生じる。
[0014]
このような課題は、画像データを復号化する画像データ復号化装置に共通する課題である。
[0015]
そこで、本発明は、この課題を解決するものであり、マクロブロック符号化結果の最大ビット量を削減することができる復号化装置を提供することを目的とする。
課題を解決するための手段
[0016]
前記従来の課題を解決するために、本発明における画像データ復号化装置は、次の構成を採る。
[0017]
本発明の画像データ復号化装置は、画像データを復号化する画像データ復号化装置であって、当該復号化装置に入力された画像データを、当該画像データが符号化された第1の符号化規則より最大の符号長が短い第2の符号化規則で符号化された画像データへ変換する符号変換手段と、前記符号変換手段により変換がされた後の画像データを記憶するバッファと、前記バッファから、前記符号変換手段により前記変換がされた後の前記画像データを取得して、取得した画像データを復号化する復号化手段と、を備えることを特徴とする画像データ復号化装置である。
[0018]
また、本発明のコンピュータプログラムは、画像データを画像データ復号化装置に復号化させるためのコンピュータプログラムであって、当該画像データ復号化装置に入力された画像データを、当該画像データが符号化された第1の符号化規則より最大の符号長が短い第2の符号化規則で符号化された
【0005】
画像データへ変換する符号変換機能と、前記符号変換手段により変換がされた後の画像データをバッファに記憶する記憶機能と、前記バッファから、前記符号変換機能により前記変換がされた後の前記画像データを取得して、取得した画像データを復号化する復号化機能とを前記画像データ復号化装置に実現させるためのコンピュータプログラムである。
[0019]
なお、請求項3における、バンド幅情報により特定されて、前記画像データが転送される「バンド幅」は、バスには画像データ以外のその他のデータも転送される場合には、バンド幅全体から、その他のデータに関する部分を除いた、画像データの転送に関するバンド幅であるものとする。「バンド幅情報」は、例えば、画像データの目標ビット量や、画像データに含まれる送信単位の目標ビット量であるものとしてもよい。また、前記削減手段は、画像データの前記送信単位のなかに、予め定められたAC係数が含まれない場合にのみ、DC係数を削除するものとしてもよい。
[0020]
他方、本発明の画像データ復号化装置は、次のようにしてもよい。すなわち、本発明の画像データ復号化装置は、第1の符号化規則で符号化された画像データに対して、前記第1の符号化規則よりも最大符号長が短い第2の符号化規則に変換するデータ変換手段と、前記変換手段により変換された画像データを復号する画像デコード手段とを備える画像データ復号化装置であってもよい。
[0021]
この画像データ復号化装置であれば、画像デコーダへ入力するストリームのバンド幅が、マクロブロックの符号化結果の最大ビット量で決まることを利用し、入力ビットストリームに対してマクロブロックの最大ビット量が減少するような符号の変換、もしくは、マクロブロックの最大ビット量が減少するような情報量の削減を適用し、さらに、適用した符号の変換や情報量の削減に対応するように画像デコーダを構成することで、画像デコーダへ入力するストリームのバンド幅を削減できて、画像デコーダへ入力するストリームのバンド幅を削減する復号化装置を提供することができる。
[0022]
なお、前記データ変換手段は、動きベクトル情報と係数値とを別々に符号変換するものとしてもよい。
本発明は、ビットストリームの伝送に必要なバンド幅を削減するためにデータ変換を行う画像復号化技術に関するもので、より具体的には圧縮された画像データの最大符号長を小さくするためにデータ変換を行う画像復号化方法及び復号化装置に関するものである。
近年、動画像データにおいて高圧縮を実現するためにH.264規格(非特許文献1)やVC−1規格(非特許文献2)が画像符号化技術として採用されてきている。これらの技術においては、圧縮された画像データ(以後、ビットストリームと記述)はいったんバッファに蓄えられる。蓄えられたビットストリームは、画像復号のリアルタイム性を保持するため、ある制限時間内で画像デコーダに転送される。近年、画像の高精細化や複数画像の同時伝送のため、この制限時間が短くなりつつあり、その結果、ビットストリームを制限時間内で画像デコーダに転送するために必要となるバンド幅(転送データ量÷転送時間)が増加している。
さらに、H.264規格やVC−1規格では、画像を複数のブロックに分割して符号化するが、各ブロック(以後、マクロブロックと記述)の符号化結果が0ビットから数1000ビットという広い範囲になりうる。このため、ビットストリームを制限時間内で画像デコーダに転送するには、マクロブロックの符号化結果が最大のビット量となる場合を想定する必要があり、ビットストリームを画像デコーダに転送するのに大きなバンド幅が必要となっている。
以上のように、近年、ビットストリームを画像デコーダに転送するためのバンド幅が無視できないほどに大きくなっている。しかし、H.264規格やVC−1規格においては、ビットストリームを画像デコーダに転送する方法は実装上の問題として何も制約されていないため、ビットストリームを画像デコーダに転送するためのバンド幅が画像復号装置の構成において課題となっている。
この課題を解決するには、ビットストリームを画像デコーダに転送するためのバンド幅を削減する必要がある。このバンド幅は前述のようにマクロブロック符号化結果の最大ビット量で決定されるため、マクロブロック符号化結果の最大ビット量が与えられたバンド幅で転送可能なビット量を超えないようにマクロブロック符号化結果のビット量を削減すればよい。
一方、特許文献1では、マクロブロック符号化結果のビット量を削減する手法を示している。特許文献1の手法は、MPEG−2規格で符号化されたマクロブロック内の各符号(符号化手法を示すモード符号、動きベクトル符号、DCT係数を示す符号など)をより圧縮率が高い符号に変換することでマクロブロック符号化結果のビット量を削減する。しかし、特許文献1の手法は、マクロブロック符号化結果の平均的なビット量の削減を目的としているため、マクロブロック符号化結果の最大ビット量が削減される保障はない。
図1は、特許文献1の符号変換における、変換前の符号の符号化規則を示す図である。
図2は、特許文献1の符号変換における、変換後の符号の符号化規則を示す図である。
具体的には、特許文献1において、図1の符号を図2の符号のように変換しているが、符号の最大ビット数、つまり、図1の表の最下段の符号のビット数、図2の表の最下段の符号のビット数は、どちらも6ビットで、互いに同一である。
H.264 ISO/IEC14496−10規格,ITU−T H.264規格 SMPTE 421M−2006 Television − VC−1 Compressed Video Bitstream Format and Decoding Process
特開2005−94693号公報
しかしながら、前記従来の構成のようなマクロブロックのビット量を削減する手法では、マクロブロック符号化結果の最大ビット量ではなく、マクロブロック符号化結果の平均的なビット量の削減だけが課題とされているため、マクロブロック符号化結果の最大ビット量を削減することができない。
また、非特許文献1などの画像符号化規格で示される範囲でリアルタイムに画像をデコードする画像デコーダを構成すると、ビットストリームを画像デコーダに転送するためのバンド幅がマクロブロック符号化結果の最大ビット量によって決まる。前記非特許文献1などの画像符号化規格では、マクロブロック符号化結果のビット量が0ビットから数1000ビットの範囲でマクロブロック毎に変動する。この結果、リアルタイムの画像デコードを行う場合に、ビットストリームを画像デコーダへ転送するためのバンド幅が大きくなり、ビットストリームを蓄えるバッファの高性能化などによる画像デコーダのコストが増加するという問題がある。
このように、画像データを復号化する画像データ復号化装置であって、当該復号化装置に入力された画像データを取得して、取得した画像データを復号化する復号化部を備える復号化装置が従来よりある。しかし、規格に係る技術が考えられた当時には、画像の高精細化や、画像の同時伝送のために、画像データを転送するためのバンド幅が無視できないほどに大きくなるとは見通されていなかった。他方、規格を実装した画像データ復号化装置を実際に作っていくうちに、マクロブロック符号化結果の最大ビット量が大きくなり、必要なバス幅が大きくなってしまう問題が生じることが分かった。
ここで、例えば、H.264規格のCABAC符号では、符号化結果のビットストリームが算術符号で圧縮されている。CABAC符号で用いられている算術符号は、復号が逐次処理とならざるを得ないため、画像デコーダの処理性能に見合った復号性能を得るのが困難である。そこで、CABAC符号に対応する復号化装置は、算術符号の復号結果を規格のCPBに相当するバッファに蓄え、画像デコーダは算術符号を復号した結果をデコードするように構成される。しかし、この構成では、算術符号の圧縮を復元した結果を画像デコーダに転送することになるため、マクロブロックの最大ビット量が約5000ビットと大きく、バッファから画像デコーダに復号結果を転送するのに必要なバンド幅が非常に大きくなる。例えば、このように、マクロブロック符号化結果の最大ビット量が大きくなり、必要なバス幅が大きくなってしまう問題が生じる。
このような課題は、画像データを復号化する画像データ復号化装置に共通する課題である。
そこで、本発明は、この課題を解決するものであり、マクロブロック符号化結果の最大ビット量を削減することができる復号化装置を提供することを目的とする。
前記従来の課題を解決するために、本発明における画像データ復号化装置は、次の構成を採る。
本発明の画像データ復号化装置は、画像データを復号化する画像データ復号化装置であって、当該復号化装置に入力された画像データを、当該画像データが符号化された第1の符号化規則より最大の符号長が短い第2の符号化規則で符号化された画像データへ変換する符号変換手段と、前記符号変換手段により変換がされた後の画像データを記憶するバッファと、前記バッファから、前記符号変換手段により前記変換がされた後の前記画像データを取得して、取得した画像データを復号化する復号化手段と、を備えることを特徴とする画像データ復号化装置である。
また、本発明のコンピュータプログラムは、画像データを画像データ復号化装置に復号化させるためのコンピュータプログラムであって、当該画像データ復号化装置に入力された画像データを、当該画像データが符号化された第1の符号化規則より最大の符号長が短い第2の符号化規則で符号化された画像データへ変換する符号変換機能と、前記符号変換手段により変換がされた後の画像データをバッファに記憶する記憶機能と、前記バッファから、前記符号変換機能により前記変換がされた後の前記画像データを取得して、取得した画像データを復号化する復号化機能とを前記画像データ復号化装置に実現させるためのコンピュータプログラムである。
なお、請求項3における、バンド幅情報により特定されて、前記画像データが転送される「バンド幅」は、バスには画像データ以外のその他のデータも転送される場合には、バンド幅全体から、その他のデータに関する部分を除いた、画像データの転送に関するバンド幅であるものとする。「バンド幅情報」は、例えば、画像データの目標ビット量や、画像データに含まれる送信単位の目標ビット量であるものとしてもよい。また、前記削減手段は、画像データの前記送信単位のなかに、予め定められたAC係数が含まれない場合にのみ、DC係数を削除するものとしてもよい。
他方、本発明の画像データ復号化装置は、次のようにしてもよい。すなわち、本発明の画像データ復号化装置は、第1の符号化規則で符号化された画像データに対して、前記第1の符号化規則よりも最大符号長が短い第2の符号化規則に変換するデータ変換手段と、前記変換手段により変換された画像データを復号する画像デコード手段とを備える画像データ復号化装置であってもよい。
この画像データ復号化装置であれば、画像デコーダへ入力するストリームのバンド幅が、マクロブロックの符号化結果の最大ビット量で決まることを利用し、入力ビットストリームに対してマクロブロックの最大ビット量が減少するような符号の変換、もしくは、マクロブロックの最大ビット量が減少するような情報量の削減を適用し、さらに、適用した符号の変換や情報量の削減に対応するように画像デコーダを構成することで、画像デコーダへ入力するストリームのバンド幅を削減できて、画像デコーダへ入力するストリームのバンド幅を削減する復号化装置を提供することができる。
なお、前記データ変換手段は、動きベクトル情報と係数値とを別々に符号変換するものとしてもよい。
また、前記データ変換手段から出力される画像データを記憶するバッファと、前記バッファに対するバンド幅を取得する取得手段をさらに備え、前記バッファへの送信単位において前記画像データの最大データ長が、前記取得手段により取得されたバンド幅を超える場合には、前記データ変換手段によりデータ変換を行うものとしてもよい。
また、前記データ変換手段から出力される画像データを記憶するバッファと、前記バッファに対するバンド幅を取得する取得手段と、前記バッファから出力される画像データに対するバンド幅を取得し、取得したバンド幅に基づいて目標値を設定し、前記符号変換された画像データのビット数を送信単位毎にカウントし、カウントしたビット数が前記目標値を超えた場合にデータ削減指示を出すビット数制御手段と、前記削減指示を受けた場合に、前記符号変換された画像データのビット数を削減する削減手段をさらに備えるものとしてもよい。
また、前記削減手段は、輝度AC、色差AC、輝度DC、色差DCの順でビット数を削減するものとしてもよい。
また、前記第1の符号化規則は不等長符号へ符号化する符号化規則であり、前記第2の符号化規則は不等長符号と等長符号とを切り替えて符号化し、前記第2の符号化規則の最大符号長は等長符号の符号長とする符号化規則であるものとしてもよい。
また、画像データを復号する復号化方法であって、第1の符号化規則で符号化された画像データに対して、前記第1の符号化規則よりも最大符号長が短い第2の符号化規則に変換するデータ変換ステップと、前記変換手段により変換された画像データを復号する画像デコードステップとを備える復号化方法を構成してもよい。
また、画像データを復号する復号化装置に用いられる集積回路であって、第1の符号化規則で符号化された画像データに対して、前記第1の符号化規則よりも最大符号長が短い第2の符号化規則に変換するデータ変換手段と、前記変換手段により変換された画像データを復号する画像デコード手段とを備える集積回路を構成してもよい。
本発明は、画像デコーダへのバンド幅を削減するため、符号長の最大ビット数を削減するような変換手段を設けることにより、ビットストリームをバッファに蓄える前に、ビットストリームをマクロブロックの最大ビット量が減少するように構成された符号に変換し、変換後のビットストリームを変換後のビットストリームに対応した画像デコーダで復号するものである。これにより、マクロブロック符号化結果の最大ビット量が減少するため、リアルタイムの画像デコードのために必要となるビットストリームを画像デコーダに転送するバンド幅を小さくすることができる。また、ビットストリームを蓄えるバッファの高性能化などが不要となるため、より低いコストで画像デコーダを実現することができる。
図1は、特許文献1の符号変換における、変換前の符号の符号化規則を示す図である。 図2は、特許文献1の符号変換における、変換後の符号の符号化規則を示す図である。 図3は、本発明の構成図である。 図4は、符号変換部の構成図である。 図5は、符号変換部の動作を示すフローチャートである。 図6は、符号変換前の動きベクトルの符号化(CAVLC)を示す図である。 図7は、符号変換後の動きベクトルの符号化(CAVLC)を示す図である。 図8は、符号変換前の係数値の符号化(CAVLC)を示す図である。 図9は、符号変換後の係数値の符号化(CAVLC)を示す図である。 図10は、実施の形態2の構成図である。 図11は、係数削減部の構成図である。 図12は、係数削減部の動作を示すフローチャートである。 図13は、係数削除の動作を示すフローチャートである。 図14は、実施の形態3の構成図である。 図15は、符号変換前の動きベクトルの符号化(CABAC)を示す図である。 図16は、符号変換後の動きベクトルの符号化(CABAC)を示す図である。 図17は、符号変換前の係数値の符号化(CABAC)を示す図である。 図18は、符号変換後の係数値の符号化(CABAC)を示す図である。 図19は、符号変換前の参照画像インデックスと量子化パラメータの符号化(CABAC)を示す図である。 図20は、符号変換後の参照画像インデックスと量子化パラメータの符号化(CABAC)を示す図である。 図21は、実施の形態4に係る復号化装置100Cを示す図である。
以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
図3は、本発明の実施の形態1における復号化装置100の構成図である。以下、図3を用いて復号化装置100の動作について説明する。
図3に示す復号化装置100は、符号の変換を行う符号変換部101、符号変換部101の出力を蓄えるバッファ102、バッファからビットストリームを読み出して画像を復号する画像デコーダ103、画像デコーダ103によるデコード結果の画像を蓄えるフレームメモリ104から構成される。
符号変換部101は、H.264規格によって符号化されたビットストリームを復号化装置100の外部から読み込み、その読み込んだビットストリームを後述する符号変換手順(図4〜図9の説明を参照)で処理し、処理結果をビットストリームとしてバッファ102に出力する。
バッファ102は、H.264規格が要求するCPB(Coded Picture Buffer)として機能し、符号変換部101から出力されたビットストリームをメモリなどの記憶装置に蓄え、画像デコーダ103からの読み出し要求に応じて蓄えられたビットストリームを出力する。
画像デコーダ103は、符号変換部101が出力する形式のビットストリームを取得し、取得したビットストリームを復号して、復号結果の画像を出力する。なお、この画像デコーダ103は、H.264規格に適合したデコーダの可変長符号復号部を、符号変換部101の出力するビットストリームが復号できるように変更したものである。この結果、画像を正しくデコードするために、符号変換部101で行う変換は、画像符号化規格の可変長符号化以外の規定に影響を与えないようにされる。なお、このような、画像デコーダ103および符号変換部101は、一例であり、何らかの限定をするものではない。
フレームメモリ104は、画像デコーダ103が出力する復号結果の画像をメモリなどの記憶装置に蓄える。フレームメモリ104が蓄えた画像は、画像デコード時の参照画像や復号結果出力時のバッファなどに用いる。
図4は、実施の形態1における符号変換部101の構成図である。図4に示す符号変換部101は、H.264規格で符号化されたビットストリームを、マクロブロックの最大ビット量が削減するように構成された符号に変換する。
ビットストリーム復号部201は、画像符号化規格で符号化されたビットストリームを復号し、ストリーム符号変換部203(ストリーム符号変換部群203x)が変換を行わない場合は入力ビットストリームをそのままビットストリーム生成部202へ、変換を行う場合は入力ビットストリームをストリーム符号変換部203(ストリーム符号変換部群203x)へ送る。
ビットストリーム生成部202は、ビットストリーム復号部201とストリーム符号変換部203から出力されたビットストリームを結合し、画像デコーダ103が復号可能なビットストリームとして出力する。
ストリーム符号変換部203は、ビットストリーム復号部201が出力した符号を最大ビット量が削減するように構成された符号に変換し、変換した結果の各符号を、ビットストリームとしてビットストリーム生成部202に出力する。ストリーム符号変換部群203xは、ストリーム符号変換部203として、動きベクトル符号変換部204、係数値符号変換部205を備え、つまり、ストリーム符号変換部群203xが備える複数のストリーム符号変換部203のうちには、動きベクトル符号変換部204と係数値符号変換部205とが含まれる。これらの詳細は後ほど説明する。
以後、H.264規格のCAVLC(Context Adaptive Variable Length Coding)符号における符号変換の手順を説明する。
CAVLC符号に対する本発明の適用では、符号変換部101は、マクロブロックに対応するビットストリーム(規格ではmacroblock_layer()と記載)が含むパラメータのうち、動きベクトル(以後、mvdと記述)と係数値(以後、levelと記述)だけを最大符号長が小さくなる符号に変換し、その他は変換を行わずに出力する。この実施例でmvdとlevelだけを変換する理由は、ビット量が最大となるマクロブロックではビットの多くがmvdとlevelの符号化に使われるからである。
図5は、この実施例におけるビットストリーム復号部201(図4)の動作を示すフローチャートである。
ビットストリーム復号部201は、入力されたビットストリームを規格に従って、復号する(ステップS301)。次に、ビットストリーム復号部201は、先のステップS301における復号結果を、動きベクトルに対応するmvd_l0とmvd_l1、係数値に対応するlevel_prefixとlevel_suffix、その他に分類する(ステップS302)。また、ビットストリーム復号部201は、ステップS302での分類の結果に基づいて、動きベクトルと係数値以外をそのままビットストリーム生成部202に出力し(図4参照、ステップS303)、動きベクトルを動きベクトル符号変換部204(図4の上段側のストリーム符号変換部203)に出力し(ステップS304)、係数値を係数値符号変換部205(図4の下段側のストリーム符号変換部203)に出力する(ステップS305)。
なお、ビットストリーム復号部201が、そのままビットストリーム生成部202にステップS303で出力を行う、上述した、動きベクトルと係数値以外のその他は、例えば、1ビットのデータや、固定長符号で符号化されたデータが多い。このようなその他の部分までは符号変換がされないことにより、復号化装置100であれば、装置の構成を簡単にできる。そして、復号化装置100であれば、逆に、2ビット以上のデータであり、かつ、可変長符号で符号化されたデータである動きベクトルと係数値は符号変換を行い、構成を簡単にしつつバス幅を十分に小さくできる。
図6は、動きベクトル符号変換部204による符号変換(図5のステップS304)がされる前の、動きベクトルの符号化規則を示す図である。
動きベクトル符号変換部204は、入力された動きベクトルを符号変換する(図5のステップS304)。次に動きベクトルの符号変換について説明する。H.264規格のCAVLC符号では、mvd_l0とmvd_l1が図6に示すようなExp−Golomb符号で符号化されている。規格においてmvd_l0とmvd_l1の値は−16384〜16383に制限されるため、この符号化におけるmvd_l0とmvd_l1の最大符号長は31ビットとなる。規格上、mvd_l0とmvd_l1は最大で32回出現するため、最大ビット量は992ビットとなる。そのため、mvd_l0とmvd_l1における最大符号長の短縮はマクロブロックの最大ビット量削減に有効である。
図7は、動きベクトル符号変換部204(図4)による符号変換(図5のステップS304)がされた後の、動きベクトルの符号化規則を示す図である。図7に、mvd_l0とmvd_l1の最大ビット量を削減するように構成した符号の一例を示す。
この符号は、mvd_l0とmvd_l1の値が15ビットの符号付き固定長符号で表現できることを利用し、元のExp−Golomb符号で15ビット以上が必要となる絶対値128以上を固定長符号、その他をExp−Golomb符号としている。この場合、変換後のビットストリームの復号に符号化手法が固定長符号とExp−Golomb符号のどちらであるかの判定が必要となるため、固定長符号であれば0、Exp−Golomb符号であれば1を符号の先頭に付加している。この符号変換により、mvd_l0とmvd_l1の最大符号長が31ビットから16ビットまで削減され、マクロブロックの最大ビット量が992ビットから512ビットまで削減される。一方、この符号変換では、絶対値が127以下の場合に符号長が1ビット大きくなっている。一般に、mvd_l0とmvd_l1の絶対値は小さいことが多いため、この変換によって平均的なマクロブロックのビット数は増加してしまう。しかし、mvd_l0とmvd_l1の絶対値が小さいマクロブロックでは、マクロブロック全体のビット量が最大ビット量より大幅に小さくなることが多いため、絶対値127以下で符号長が1ビット増加したことによるマクロブロック最大ビット量の増加は無視できる。
図8は、係数値符号変換部205(図4)による符号変換(図5のステップS305)がされる前の、係数値の符号化規則を示す図である。
図9は、係数値符号変換部205(図4)による符号変換(図5のステップS305)がされた後の、係数値の符号化規則を示す図である。
係数値符号変換部205は、係数値を符号変換する(ステップS305)。次に、係数値の符号変換について説明する。H.264規格のCAVLC符号では、図8に示すように係数値をlevel_prefixとlevel_suffixという2個の符号であらわす。なお、規格上は直前に符号化した係数値に応じてlevel_suffixの長さが異なる7種類のテーブルを切り替えるが、ここで説明する符号変換は同じ考え方で全テーブルに適用できるので、以後、図8に示すsuffix_length=0のテーブルについて説明する。
規格において係数値の範囲は−131072〜131071と制限されているため、係数値は18ビットの符号付き固定長符号で表現できる。そこで、図8においてlevel_prefixとlevel_suffixの符号長が合計で18を超える係数値8〜−129039より下段の符号だけを18ビット固定長符号にし、その他の符号は元の符号をそのまま用いる。この場合、動きベクトルの場合と同様、変換後のビットストリームの復号時に符号化手法を固定長符号と元の符号から選択する必要がある。そこで、固定長符号の場合は符号の前に1、元の符号の場合は符号の前に0を付加する。係数値にこの変換を適用した結果を図9に示す。この図に示すように、変換の結果、係数値の最大符号長が38ビットから19ビットまで減少し、マクロブロックの最大ビット量を大幅に削減できる。一方、この符号変換により、係数の絶対値が7以下において符号長が1ビット大きくなる。一般に係数の絶対値は小さいことが多いため、変換によってマクロブロックの平均ビット数は増加してしまう。しかし、係数の絶対値が小さいマクロブロックでは、マクロブロック全体のビット量が最大ビット量より小さくなるため、符号長が1ビット増加したことによるマクロブロックの最大ビット量の増加は無視できる。
復号化装置100は、図5の処理を終了するまで、繰り返し、以上説明した図5の処理を繰り返し実行する(ステップS306)。
このように、復号化装置100は、画像データ(ビットストリーム、マクロブロック)を復号化する復号化装置100であって、当該復号化装置100に入力された画像データを、当該画像データが符号化された符号化規則(図6、図8)よりも最大の符号長が短い別の符号化規則(図7、図9)で符号化された画像データへ変換する符号変換部101と(図3)、符号変換部101により前記変換がされた後の画像データを取得して、取得した画像データを復号化する画像デコーダ103と(図3)を備える。
そして、画像データは、動きベクトルと、係数値とを含み、符号変換部101は、画像データに含まれる、図6の符号化規則により符号化された動きベクトルを、図6の符号化規則よりも最大の符号長が短い図7の符号化規則で符号化された動きベクトルに変換する動きベクトル符号変換部204と(図4)、画像データに含まれる、図8の符号化規則により符号化された係数値を、図8の符号化規則よりも最大の符号長が短い図9の符号化規則で符号化された係数値に変換する係数値符号変換部205と(図4)を備え、動きベクトル符号変換部204と係数値符号変換部205とによる変換を画像データに施す。
なお、このように、請求の範囲の記載における「符号変換手段」は、画像データがn個(n≧2)の部分に分かれ、各部分が互いに異なる種類の符号化規則により符号化される場合において、k番目の部分が第k種類の第1の符号化規則で符号化された画像データを(1≦k≦n)、k番目の部分が第k種類の第2の符号化規則で符号化された画像データに変換し(1≦k≦n)、かつ、第k種類の第1の符号化規則の最大の符号長よりも同じ第k種類の第2の符号化規則の最大の符号長の方が短いものとしてもよい。なお、この場合において、画像データは、n個の上記部分のみからなるものではなく、n個の上記部分と他の部分とにより構成されるものであってもよい。
また、復号化装置100は、前記符号変換部101により変換がされた後の画像データを記憶するバッファ102を更に備え、画像デコーダ103は、バッファ102に記憶された画像データを取得して、取得した画像データを復号化し、バッファ102と当該バッファ102の外部との間で画像データを転送するバスBを更に備え、前記符号化規則とは、図6〜図9に示されるように、値と、当該値を表す符号との対応関係であり、符号は、1ビットのデータが複数個並んだビット列であり、前記最大の符号長は、符号化規則が値を対応付ける各符号のうちで、前記ビット列が最長である符号の当該ビット列のビットの個数であり、符号変換部101は、画像データに含まれる各符号を、それぞれ、当該符号に図6や図8の符号化規則が対応付ける値に対して図7や図9の符号化規則が対応付ける符号へ変換する。
また、図7の符号化規則は、平均の符号長が図6の符号化規則よりも長く、図9の符号化規則は、平均の符号長が図8の符号化規則よりも長い。
また、図7の符号化規則が対応付けをする各符号は、図6の符号化規則が予め定められた切替サイズ(15ビット)以下の短い符号に対応付ける各値(図6における0〜−127の各値)に対応付けられる短符号長側符号(図7における0〜−127の各値の符号)と、図6の符号化規則が切替サイズ(15ビット)より長い符号に対応付ける各値(図6における128〜−16384)に対応付けられる長符号長側符号(図7における128〜−16384の各値の符号)とを含む。
ここで、上述の切替サイズ(15ビット)は、図6の符号化規則が対応付けをする全ての値(0〜−16384)を、等長符号により符号化する場合に、その等長符号に必要となる最低のビット数である。この等長符号の符号長(15ビット)は、上述した、対応付けをする全ての値(0〜−16384)の個数をxとして、2を底としたxの対数値(log(x))により求められる。
そして、図7の符号化規則が対応付けをする符号は、上記短符号長側符号も、上記長符号長側符号も、いずれの場合でも、符号の冒頭における1ビットのデータであり、当該符号が短符号長側符号か長符号長側符号かを示す識別ビット(0又は1)と、2ビット目以降の本体部とを備える。
例えば、図7のmvd値1に対応する符号「1_010」は、識別ビットとして「1」をもち、本体部として「010」を持つ。
識別ビットは、その識別ビットが含まれる符号が、上述した短符号長側符号(図7における値0〜−127の符号)である場合には、値1を有し、その識別ビットが含まれる符号が長符号長側符号である場合には、値0を有する。
他方、本体部は、その本体部を有する符号が、短符号長側符号である場合は、その短符号長側符号が示す値に対して図6の符号化規則が対応付ける符号と同じ符号である。例えば、図7における値1に対応付けられる短符号長符号「1_010」における本体部「010」は、図6において同じ値1に対応付けられる「010」と同じである。
そして、本体部は、その本体部を有する符号が長符号長側符号である場合には、上記した切替サイズの大きさの等長符号である。例えば、図7において、値128に対応する長符号長符号「0_00…01000…0」の本体部「00…01000…0」は、15ビットの等長符号であり、かつ、値128を示すものである。ここで、長符号長側符号の本体部(「00…01000…0」)は、その長符号長側符号が示す値(128)を示す等長符号である。
こうして、図7の符号化規則は、図6の符号化規則が切替サイズ以下の小さい符号(「010」等)に対応付ける各値を、それぞれ、当該符号と同じ符号が少なくとも一部に含まれる短符号長側符号(「0_010」等)に対応付けると共に、当該切替サイズよりも大きい符号に対応付ける各値(128等)を、それぞれ、いずれも前記切替サイズ(15ビットのサイズ)を有し、互いに等長である予め定められた等長符号(「00…01000…0」等)が含まれる長符号長側符号(「0_00…01000…0」)へと対応付ける。
同じようにして、図9の符号化規則は、図8の符号化規則が切替サイズ18以下の小さい符号に対応付ける各値(1〜−7)を、それぞれ、当該符号(例えば値2に対応付けられた「001」)と同じ符号が少なくとも一部に含まれる短符号長符号(例えば図9における「0_001」)に対応付けると共に、当該切替サイズよりも大きい符号に対応付ける各値(8〜−129039)を、それぞれ、いずれも前記切替サイズ(18ビットのサイズ)を有し、互いに等長である予め定められた等長符号が含まれる符号(図9に示される「1_xxxxxxxxxxxxxxxxxx」)に対応付ける。そして、前記切替サイズは、図8の符号化規則が対応付けをする全ての値(1〜−129039)を、等長符号により符号化する場合に必要なビットの最低個数18であり、前記等長符号は、当該最低個数のビットつまり18個のビットよりなる等長の符号であり、図9の符号化規則の符号は、図8の符号化規則と同じ符号、または、当該等長符号の何れか一方を含む本体部(「1_xxxxxxxxxxxxxxxxxx」における「xxxxxxxxxxxxxxxxxx」)と、当該符号が前記第1の符号化規則の符号と同じ符号が含まれるか、または、前記等長符号が含まれるかを識別する識別ビット(「1_xxxxxxxxxxxxxxxxxx」における「1」)とを備える。
なお、復号化装置100は、例えば、上記符号変換部101、バッファ102、バスB、画像デコーダ103、フレームメモリ104が、当該復号化装置100の有する集積回路(LSI)上に実現された復号化装置であってもよい。
なお、符号変換部101は、例えば、図6や図8に示される、変換前の符号を入力符号とし、図7や図9に示される、変換後の符号を出力符号とする、入力符号に対応した出力符号を出力する回路として構成される。このような、回路として構成される場合、符号変換部101は、図6および図8により示される、入力符号と、その入力符号のmvd値と同じmvd値の出力符号との対応関係に基づいた回路構成をとるものとしてもよい。
このように、本実施例の符号変換により、マクロブロックの最大ビット量が削減されるため、マクロブロックの最大ビット量から決まるビットストリームをデコーダに転送するバンド幅も削減できる。なお、本実施例における画像デコーダ103は、規格が規定する画像復号処理のうち、動きベクトルと係数値に対応する可変長符号復号部を図7と図9の符号に対応するよう変更したものである。
このような復号化装置100であれば、入力された画像データが、符号変換部101によって、最大の符号長が短い図7の符号化規則の画像データに変換されて、最大の符号長が短い符号化規則で符号化された画像データが復号化装置100内で転送されるようにでき、復号化装置100におけるバス幅を小さくすることができる。
ここまで、本発明の実施の形態1について説明したが、本実施の形態は、最大符号長を削減するように符号を変換するという本質を維持した範囲で様々な変形が可能である。変形の例としては、H.264以外のVC−1やMPEG−2などの画像符号化規格への適用が考えられる。H.264以外の画像符号化規格においても動きベクトルと係数値がマクロブロックの最大ビット量の多くを占めるため、各々の符号を最大符号長が減少するような符号に変換することで、本実施の形態と同様な効果を得ることができる。
なお、図3に示す各機能ブロックは典型的には集積回路であるLSIとして実現される。図3の破線は、LSIの典型的な構成を示し、符号変換部101と画像デコーダ103をLSIとして集積し、バッファ102とフレームメモリ104をDRAMなどのメモリLSIとして集積することを示している。ただし、集積化の手法については、この例に限定するものではなく、各機能が個別に1チップ化されてもよいし、一部またはすべてを含むように1チップ化されてもよい。さらには、LSIに置き換わる集積回路化の技術があれば、当然、その技術を用いて集積化を行ってもよい。
また、実施の形態1における復号化装置にさらに、バッファに対するバンド幅を取得する取得部を設け、入力したビットストリームの処理単位ごとのビット数が、取得されたバンド幅を超えた場合にのみ、符号変換を行うようにしてもよい。その際、変換前のストリームか変換後のストリームかを識別する識別子をストリームに付与することが好ましい(図21および図21の説明を参照)。
(実施の形態2)
図10は、本発明の実施の形態2に係る復号化装置100Aの構成図である。以下、図10を用いて、本発明の実施の形態2に係る本復号化装置100Aについて詳しく説明する。
図10に示す復号化装置100Aは、実施の形態1で示した復号化装置100の符号変換部101とバッファ102の間に係数削減部801を追加した構成となっている。図10のうち、係数削減部801以外は、実施の形態1と同じ構成であり、その機能も同一なので、同じ符号を付しその説明を省略する。
係数削減部801は、符号変換部101が出力するビットストリームを読み込み、読み込んだビットストリームに含まれる各マクロブロックについて、それぞれ、そのマクロブロックに含まれる直交変換(DCTなど)適用結果の係数値を削除することで、マクロブロックのビット量を削減し、マクロブロックのビット量を指定した値に近づける。実施の形態2では、実施の形態1で示したような符号変換を行ってもマクロブロックのビット量が目標より多い場合に係数削減を実施する。実施の形態2では、ビットストリームのデコーダへの転送に割り当て可能なバンド幅から求めたマクロブロックの最大ビット量を目標ビット量として設定する。このため、実施の形態2では、ビットストリームの転送に必要なバンド幅が想定した値で収まるようにマクロブロックのビット量を削減することができる。なお、目標ビット量は、バスBのバス幅に対応した、適切にバスBでの転送ができるビット量が選ばれる。
なお、請求の範囲における「バンド幅情報」は、この実施の形態2において、上記目標ビット量によって、一例が示される。
図11は、実施の形態2における係数削減部801の構成図である。ビットストリーム復号部901は、復号化装置100Aに入力された入力ビットストリームを、係数と係数以外の部分に分け、係数部分は削減部902、係数以外の部分はビットストリーム生成部903に送る。また、ビットストリーム復号部901は、入力ビットストリームを複製してビット量計測部904に送る。削減部902は、係数削減制御部905から入力されるコマンドにしたがって、ビットストリーム復号部901から入力された係数部分のビットストリームから係数の削除を行い、その結果から係数部分のビットストリームを再構成して出力する。ビットストリーム生成部903は、ビットストリーム復号部901と削減部902から入力されるビットストリームを結合し、ビットストリームとして出力する。ビット量計測部904は、入力ビットストリームを復号し、マクロブロックのビット量や係数部に含まれる係数値とそのビット量などを出力する。係数削減制御部905は、係数削減部801の外部から入力される目標ビット量とビット量計測部904から入力されるマクロブロックのビット量との差分を求め、求められた差分の値と、ビット量計測部904から入力される係数部に含まれる係数値およびそのビット量とから、係数削除の有無と、削除する係数値を判断し、削減部902に対するコマンドを生成する。また、係数削減制御部905は、複数のマクロブロックをまたいだ目標ビット量制御などに用いるため、係数削減後のマクロブロックビット量と目標ビット量との差分を求め、係数削減制御部905の内部に保持する。なお、上記した、係数削減部801の外部から入力される目標ビット量は、例えば、係数削減部801の外部にある目標ビット量記憶部に記憶されたものが、係数削減部801に入力されてもよいし、係数削減部801の外部にある目標ビット量算出部により算出された目標ビット量が入力されるものとしてもよい。
以後、係数削減部801の動作を説明する。
図12は、係数削減部801のマクロブロックに対する動作をフローチャートで示したものである。係数削減部801は、はじめにマクロブロックのビット量と目標ビット量とを比較する(ステップS1001)。ステップS1001の比較によって、もし、マクロブロックのビット量が目標ビット量より少ないと判定されれば、係数削減部801は、係数削減部801に入力されたビットストリームをそのまま出力する(ステップS1006、ステップS1001:達成)。他方、ステップS1001の比較において、マクロブロックのビット量が目標ビット量より多いと判定された場合には(ステップS1001:未達)、ビットストリーム復号部901が、ビットストリームを復号する(ステップS1002)。次に、係数削減部801は、ステップS1002での復号結果が係数に対応するresidualであるかを調べ、復号結果がresidualでない場合(ステップS1003:その他)、ステップS1002で復号した部分のビットストリームをそのまま出力し(ステップS1004)、ステップS1002に戻る。他方、ステップS1002での復号結果がresidualである場合は係数削除ステップS1005に進み(ステップS1003:residual)、マクロブロックが終了した場合は処理を終了する(ステップS1003:マクロブロック終了)。削減部902は、ステップS1003の判定により復号結果がresidualであると判定されると(ステップS1003:reidual)、係数の削除によるビット量の削減を行う(ステップS1005)。なお、削減部902は、ビットストリームが続く限り、図12で示したマクロブロックの処理を繰り返し実施する。
図13は、削減部902が行う図12のステップS1005の係数削除の動作をフローチャートで示したものである。削減部902の基本的な動作規則は以下のようになっている。以後、図13の詳細について説明する。なお、図13のステップは全て削減部902が行なう。
(1)AC係数(直交変換適用結果のうち高周波成分)から削除し、AC係数がなくなった場合にだけ、DC係数(直交変換適用結果のうち直流成分)を削除する。
(2)AC係数、DC係数の削除は、輝度係数の削除と色差係数の削除を交互に行う。
(3)1係数の削除毎にビット量の判定を行い、目標に到達した時点で終了する。
(4)値が0でない係数について、係数の削除を行う。
削減部902は、図12のステップS1005の処理、つまり、図13の処理を行うに際して、はじめに、係数復号ステップS1101で、全係数の復号を行う。このステップS1101により、輝度AC係数、輝度DC係数、色差AC係数、色差DC係数が係数として復号される。
次にAC係数有無判定ステップS1102で、削減部902は、先にステップS1101で復号されたAC係数に、非0の値が存在するかを調べ、存在しない場合はDC係数判定ステップS1107に進み(ステップS1102:無)、存在する場合は輝度AC係数削除ステップS1103に進む(ステップS1102:有)。
輝度AC係数削除ステップS1103では、削減部902は、先にステップS1101で復号された輝度AC係数の非0の係数のうち、最も高周波数に対応する係数で値が最大のもの1個を削除し、削除後のマクロブロックのビット量を求める。
その後、目標ビット量判定ステップS1104で、削減部902は、ステップS1103で求められたマクロブロックのビット量が目標に到達したかを調べ、到達していない場合は、色差AC係数削除ステップS1105に進み(ステップS1104:未達)、到達した場合は係数符号化ステップS1112へ進む(ステップS1104:達成)。
色差AC係数削除ステップS1105では、削減部902は、先にステップS1005で復号された色差AC係数の非0の係数のうち、最も高周波数に対応する係数で値が最大のもの1個を削除し、削除後のマクロブロックのビット量を求める。
その後、目標ビット量判定ステップS1106で、削減部902は、ステップS1105で求められたマクロブロックのビット量が目標に到達したかを調べ、到達していない場合は再度AC係数の削除を行うためにAC係数有無判定ステップS1102に進み(ステップS1106:達成)、到達した場合は係数符号化ステップS1112へ進む(ステップS1106:未達)。
DC係数判定ステップS1107では、削減部902は、先にステップS1101で復号されたDC係数に非0の値が存在するかを調べ、存在しない場合は係数符号化ステップS1112に進み(ステップS1107:無)、存在する場合は輝度DC係数削除ステップS1108へ進む(ステップS1107:有)。
輝度DC係数削除ステップS1108では、削減部902は、先にステップS1101で復号された輝度DC係数の非0係数のうち値が最大のもの1個を削除し、削除後のマクロブロックのビット量を求める。
その後、目標ビット量判定ステップS1109で、ステップS1108で求められたマクロブロックのビット量が目標に到達したかを調べ、到達していない場合は色差DC係数削除ステップS1110に進み(ステップS1109:未達)、到達した場合は係数符号化ステップS1112に進む(ステップS1109:達成)。
色差DC係数削除ステップS1110では、先にステップS1101で復号された色差DC係数の非0係数のうち値が最大のもの1個を削除する。
その後、目標ビット量判定ステップS1111で、マクロブロックのビット量が目標に到達したかを調べ、到達していない場合はDC係数判定ステップS1107に進み(ステップS1111:未達)、さらに多くの係数を削除し、到達している場合にはステップS1112に進む(ステップS1111:達成)。
目標に到達した場合は係数符号化ステップS1112に進む。最後に係数符号化ステップS1112では、削減部902は、上記した削減処理を行った後の輝度AC係数、輝度DC係数、色差AC係数、色差DC係数を符号化し、結果をビットストリームとして出力する。符号化は、符号変換部101で行う符号変換を適用した後の形式を出力するように構成する。
以上のようにして、バッファ102と当該バッファ102の外部との間でビットストリームが転送されるバンド幅に応じて選択された目標ビット量を取得する係数削減部801(係数削減制御部905、図11参照)と、符号変換部101により変換がされた後のビットストリームに含まれるマクロブロックのビット量が、取得された前述の目標ビット量を超えるか否かを判定する削減部902とを備え(図13のステップS1104、S1106、S1109、S1111参照)、その削減部902が、データ長が目標ビット量を超えると判定されれば(ステップS1104:未達、など)、当該判定がされた前記マクロブロックのビット数を削減する復号化装置100Aが構成される。
そして、このような復号化装置100Aにおいて、削減部902は、ビットストリームのマクロブロックのなかに、AC係数、DC係数のうちでAC係数が含まれない場合に(図13のステップS1102:無)、DC係数を削除する。
また、削減部902は、輝度係数が削除されたマクロブロック(ステップS1103、S1108)のビット量が、目標ビット量に到達しているか否かを判定し(ステップS1104、S1109)、輝度係数を削除したマクロブロックのビット量が目標ビット量に到達していないと判定された場合にのみ(ステップS1104:未達、ステップS1109:未達)、当該マクロブロックの色差係数を削除する(ステップS1105、ステップS1110)。
こうして、削減部902は、輝度AC、色差AC、輝度DC、色差DCの4種類の係数のうちで、この順序で低くなる削除の優先順位に基づいて、マクロブロックに含まれる種類の係数のうちで、優先度が最も高いものを削除して、マクロブロックのビット量を削減する。
以上の手順で係数を削除しても、マクロブロックのビット量が目標ビット量より大きい場合がある。その場合、係数削減制御部905が目標ビット量との差分を保持していることを利用し、後続マクロブロックに対する目標ビット量をその差分だけ削減する。つまり、係数削減制御部905は、その場合、後続マクロブロックについて処理を行う際の目標ビット量を、上記した差分だけ小さくする。この操作により、目標ビット量に到達しなかったマクロブロックによるバンド幅の増加を小さくすることができる。
このように、本実施の形態2では、マクロブロックのビット量をマクロブロック単位に増減させることができる。これを用いて、動き補償を行うマクロブロックの目標ビット量を小さくし、その結果削減されたストリーム転送のバンド幅を参照画像転送に用いることで画像デコード全体のバンド幅を削減するといった応用も可能である。
続いて、本実施の形態をH.264規格のCAVLC(Context Adaptive Variable Length Coding)符号に対して適用する手法を説明する。まず、係数復号ステップS1101(図13)で輝度DC係数、輝度AC係数、色差DC係数、色差AC係数を再構成する手法を説明する。規格上、直交変換後の係数は、residual_blockとして符号化されており、以下の5種類がある。
(1)Intra16x16DCLevel
輝度DC係数(ブロックサイズ16x16、係数16個)
(2)Intra16x16ACLevel
輝度AC係数(ブロックサイズ16x16、係数15個を16組)
(3)LumaLevel
輝度係数(ブロックサイズ4x4もしくは8x8、係数16個を16組)
(4)ChromaDCLevel
色差DC係数(4:2:0フォーマットでは、係数4個を2組)
(5)ChromaACLevel
色差AC係数(4:2:0フォーマットでは、係数15個を8組)
再構成する係数のうち、色差DC係数と色差AC係数については、そのままで再構成した結果として使用できる。一方、輝度DC係数と色差AC係数は、マクロブロックの直交変換ブロックサイズによって、以下の3通りから選択して使用する。
(1)ブロックサイズ16x16の場合
輝度DC係数はIntra16x16DCLevelを使用。
輝度AC係数はIntra16x16ACLevelを使用。
(2)ブロックサイズ8x8の場合
輝度DC係数はLumaLevel[i][0](i=0、4、8、12)を使用。
輝度AC係数は上記以外のLumaLevelを使用。
(3)ブロックサイズ4x4の場合
輝度DC係数はLumaLevel[i][0](0≦i≦15)を使用。
輝度AC係数は上記以外のLumaLevelを使用。
以上の手順により、輝度DC係数、輝度AC係数、色差DC係数、色差AC係数を再構成することができる。以後の係数削除については、係数削除ステップS1005の説明に記載の手法をそのまま適用できる。係数削除を適用した結果の再符号化においては、係数値を符号化する際のLevel_PrefixとLevel_Suffixを図9のようにする。これにより、実施の形態1と同じ画像デコーダ103で正しい画像を復号することができる。
ここまで、本発明の実施の形態2について説明したが、実施の形態2は係数削除によりマクロブロックのビット数を削減するという特徴を維持したままで様々な変形が可能である。具体的な変形例として、MPEG−2やVC−1といった動画像符号化規格に対する適用や係数削除だけでなく係数値の変更をビット量削減に利用する手法などが考えられる。
なお、図10に示す各機能ブロックは典型的には集積回路であるLSIとして実現される。図10の破線は、LSIの典型的な構成を示し、符号変換部101と係数削減部801、画像デコーダ103をLSIとして集積し、バッファ102とフレームメモリ104をDRAMなどのメモリLSIとして集積することを示している。ただし、集積化の手法については、この例に限定するものではなく、各機能が個別に1チップ化されてもよいし、一部またはすべてを含むように1チップ化されてもよい。さらには、LSIに置き換わる集積回路化の技術があれば、当然、その技術を用いて集積化を行ってもよい。
(実施の形態3)
図14は、本発明の実施の形態3における復号化装置100Bの構成図である。以下、図14を用いて実施の形態3における復号化装置100Bの動作について説明する。
図14に示す復号化装置100Bは、実施の形態2に示した復号化装置100Aのビットストリーム入力に算術符号デコーダ1201を追加したものである。図14のうち、算術符号デコーダ1201、符号変換部1202、係数削減部1203以外の部分については、実施の形態2のものと同じ機能であるため、同じ構成要素のものには同じ符号を付し、その説明を省略する。
算術符号デコーダ1201は、H.264規格のCABAC(Context Adaptive Binary Arithmatic Coding)符号で符号化されたビットストリームを算術復号し、復号結果をビットストリームとして出力する。
ここで、H.264規格のCABAC符号では、符号化結果のビットストリームが算術符号で圧縮されている。CABAC符号で用いられている算術符号は、復号が逐次処理とならざるを得ないため、画像デコーダの処理性能に見合った復号性能を得るのが困難である。そこで、CABAC符号に対応する復号化装置は、算術符号の復号結果を規格のCPBに相当するバッファ102に蓄え、画像デコーダは算術符号を復号した結果をデコードするように構成される。しかし、この構成では、算術符号の圧縮を復元した結果を画像デコーダに転送することになるため、マクロブロックの最大ビット量が約5000ビットと大きく、バッファ102から画像デコーダに復号結果を転送するのに必要なバンド幅が非常に大きくなる。実施の形態3は、この問題を解決するため、算術符号の復号結果で多くを占める部分に、実施の形態1で説明した符号変換や実施の形態2で説明した係数値の変換を適用する。
以後、H.264規格のCABAC符号への適用における図14の符号変換部1202と係数削減部1203の処理内容について説明する。
まず、符号変換部1202で行う符号変換について説明する。符号変換部1202では、動きベクトル(mvd_l0、mvd_l1)と係数値(coeff_abs_level_minus1、coeff_sign_flag)に加え、参照画像インデックス(ref_idx_l0、ref_idx_l1)と量子化パラメータ(mb_qp_delta)に符号変換を適用する。以後、各要素に対する符号変換について説明する。
図15は、動きベクトル(mvd_l0、mvd_l1)の変換前の符号である。図15以降の図にあるxは、その符号が示す値の正負を示す符号ビットであり、0が正、1が負を示す。この符号を最大符号長が短くなるように変換した符号を図16に示す。規格上、動きベクトルの値は、−16384〜16383に制限されるため、動きベクトルは15ビットの固定長符号で表現できる。
そこで、図16の符号では、元の符号が15ビットを超える絶対値で17以上の値は固定長符号、それ以外は元の符号で符号化する。この符号化では、復号時に符号化が固定長符号化と元の符号のどちらであるかを判定する必要があるので、符号化を判定するための1ビットを符号の前に付加する。付加される1ビットは、この実施の形態3における、変換後の符号の識別ビットである。これにより、最大符号長が34ビットから16ビットまで削減される。一方、元の符号をそのまま用いる絶対値が16以下の値については、符号化を判定するためのビット追加により、符号長が1ビット長くなってしまう。しかし、本発明の削減対象であるビットストリームをデコーダに転送するためのバンド幅は、マクロブロックの最大ビット数で決まり、その最大ビット数となるマクロブロックでは、動きベクトルをあらわすビット量が多く、絶対値が17以上の値であることが多いため、絶対値が16以下の値に対する符号長の増加は特に問題とならない。
なお、図16の符号化規則の場合、長符号長側符号は、絶対値が17以上である各値の符号であり、短符号長符号は、絶対値が17未満である各値の符号であり、切替サイズは14ビットである(図15における値0〜±16の符号のビット数を参照)。
図17は、係数値(coeff_abs_level_minus1、coeff_sign_flag)の変換前の符号である。規格上、係数値は−131072〜131071に制限されるため、係数値は18ビットの固定長符号で表現できる。そこで、動きベクトルと同様な考え方で符号を変換すると、図18のようになり、絶対値が18以上の値を固定長符号とする。この符号変換により、最大符号長が48ビットから19ビットまで削減できる一方、絶対値が17以下の値では符号長が1ビット長くなってしまう。しかし、動きベクトルと同様、係数値についても、最大ビット数となるマクロブロックでは絶対値が18以上になることが多いため、絶対値が17以下の値に対する符号長が増加しても特に問題とならない。
図19は、参照画像インデックス(ref_idx_l0、ref_idx_l1)と量子化パラメータ(mb_qp_delta)の変換前の符号である。変換前の符号は、算術符号の圧縮率を高めるため、0が出現するまでの1の数で値を表すUnary Binarizationとなっており、最大符号長だけでなく、平均符号長も大きい。そこで、参照画像インデックスと量子化パラメータについては、最大符号長と平均符号長の双方が短くなるExp−Golomb符号で値を符号化する。
図20は、変換後の符号であり、最大符号長は53ビットから11ビットまで削減できる。この変換は値に応じて符号を切り替える方式、つまり、変換後の符号が、長符号長符号と短符号長符号とに分かれる方式ではないので、符号化を判定するためのビット(例えば、上述した各識別ビット)は不要であるが、参照画像インデックスの1と4、量子化パラメータの1と−2において符号長が1ビット長くなる。しかし、最大ビット数となるマクロブロックでは、動きベクトルや係数値がビット数の多くを占めており、それらについては前述の変換によって大幅にビット数が削減されるため、参照画像インデックスや量子化パラメータにおけるビット数の増加は特に問題とならない。
このように、上述の説明では、変換後の符号が、長符号長符号と短符号長符号とに分かれる方式を詳しく説明したが(図7、図9、図16、図18参照)、このような長符号長符号と短符号長符号とに分かれる方式に限定されず、そのような方式以外の他の方式が用いられてもよく、例えば、上記図19、図20で説明した方式は、そのような他の方式の1つである。
以上、実施の形態3における符号変換部1202について説明した。ここで示した符号変換により、マクロブロックの最大ビット量は約5000ビットから約3500ビットまで削減できる。なお、ここで示した符号変換はあくまで一例であり、符号変換によって最大符号長を削減するという本質を維持したまま、様々な変形が可能である。具体的には、元の符号をそのまま出力せずにExp−Golomb符号などに変換する手法などがある。
次に、実施の形態3における係数削減部1203について説明する。実施の形態3における係数削減部1203は、実施の形態2で説明した係数削減部1203と同様に構成されるので、構成に関する説明は省略する。
続いてH.264規格のCABACにおける係数削減の手順を説明する。H.264規格のCABAC符号では、ブロックサイズが8x8の直交変換における輝度DC係数と輝度AC係数の扱いが実施の形態2で示したH.264規格のCAVLC符号とは異なっている。そこで、ブロックサイズが8x8の場合、輝度DC係数はLumaLevel8x8[0][0](0≦i≦3)を使用し、輝度AC係数は上記以外のLumaLevel8x8を使用する。この点を除き、係数削減部1203の動作は、実施の形態2で説明したH.264規格のCAVLC符号の場合と同じである。
実施の形態3においても、係数削除後のマクロブロックのビット量が目標ビット量より大きくなることがある。この場合、この実施の形態3の係数削減部1203が有する係数削減制御部905が、目標ビット量との差分を出力することを利用し、後続するマクロブロックに対する目標ビット量をその差分だけ減少させるなどの制御を行うことができる。
このように、本実施の形態3では、ストリームを画像デコーダに転送するためのバンド幅をマクロブロック単位に増減させることができる。これを用いて、動き補償を行うマクロブロックの目標ビット量を小さくして削減されたストリーム転送のバンド幅を参照画像転送に使用し、画像デコードに必要な全体のバンド幅を削減するといった制御も可能である。
以上、H.264規格のCABAC符号で符号化されたビットストリームを例に実施の形態3について説明した。ここに示した係数削除の手法は、あくまで一例であり、係数などの削除によりマクロブロックの符号長を削減するという本構成の特徴を維持したまま、様々な変形が可能である。変形の例としては、係数を削除するのではなく値を小さくするような手法などが考えられる。
なお、図14に示す各機能ブロックは典型的には集積回路であるLSIとして実現される。図14の破線は、LSIの典型的な構成を示し、算術符号デコーダ1201と符号変換部1202、係数削減部1203、画像デコーダ103をLSIとして集積し、バッファ102とフレームメモリ104をDRAMなどのメモリLSIとして集積することを示している。ただし、集積化の手法については、この例に限定するものではなく、各機能が個別に1チップ化されてもよいし、一部またはすべてを含むように1チップ化されてもよい。さらには、LSIに置き換わる集積回路化の技術があれば、当然、その技術を用いて集積化を行ってもよい。
ここで、符号変換部1202は、図16に示される符号化規則の符号に、符号を変換する。
図16の符号化規則において、例えば、値が±17つまり絶対値が17である場合、その値に対応する符号は「1_00000000000001_x」である。ここで、この符号の本体部は、「00000000000001_x」であり、等長符号値±1を示す等長符号である。つまり、mvd値の絶対値が17で、等長符号値の絶対値が1で、互いに異なる。
このように、図16の符号化規則は、各mvd値に対して、それぞれ、そのmvd値とは異なる等長符号値を有する等長符号の長符号長符号を対応付ける。図16の符号化規則は、このような、値と、その値に対応付けられる長符号長符号の等長符号値との値対応関係を含む。つまり、図16の符号化規則は、値と長符号長符号との対応関係をもつことにより、値と、その長符号長符号における等長符号値とを値対応関係をもつ。図16の符号化規則においては、かかる値対応関係は、mvd値に対して、そのmvd値の絶対値から16を引いた絶対値の等長符号値を対応付ける。このため、上記のように、値が±17の場合には、その値に対応する符号は、17−16=1の絶対値の等長符号値±1の等長符号となる。
このようにしてあるので、広い範囲の等長符号値を表すための長いビットの等長符号を用いなくとも、例えば、長符号長符号で表すmvd値の個数に対応する最小限度のビットの等長符号など、少ないビットの等長符号で、mvd値を記録できる。
なお、この点に関しては、図18の符号化規則においても同様であり、図18の符号化規則においては、長符号長符号に対応する符号は、その符号の係数値の絶対値から17を減じた絶対値の等長符号値を有する等長符号である。
なお、この実施の形態3においては、図16、図18に示される符号の本体部は、2の補数の方式によって、等長符号値を示すのではなく、上述のように、その等長符号値の正負を示す符号ビットと、その等長符号値の絶対値を示す絶対値等長符号とによって構成される。このため、本体部が示す等長符号値の最小値の絶対値と、最大値の絶対値とは互いに同一である。例えば、本体部がmビットであれば、絶対値等長符号は、m−1ビットになり、2の(m−1)乗をLとして、本体部は−(L−1)〜+(L−1)を示し、互いに同一のその絶対値はこのL−1である。他方、符号化規則が本体部と識別ビットにより対応付ける値の最小値の絶対値と最大値の絶対値が互いに同一である場合は多いので、上述のよう符号ビットを用いる本体部を用いることにより、上記値対応関係が簡単になる。ひいては、上記値対応関係を処理する符号変換部1202を簡単な構成にできる。
(実施の形態4)
実施の形態4として、実施の形態3(図14等参照)の変形例を説明する。なお、実施の形態3と同じ点については、この実施の形態4で、説明を繰り返さない。
図21は、実施の形態4に係る復号化装置100Cを示す図である。
復号化装置100Cは、変換後最大符号長特定部1301と、規則種類表示フラグ付与部1303と、切替部1304とを備える。
変換後最大符号長特定部1301は、符号変換部1202が符号を変換した後のマクロブロックに含まれる符号の符号長のうちで、最大の符号長を特定する。変換後最大符号長特定部1301は、より具体的には、3種類の最大の符号長を特定し、すなわち、動きベクトルの符号(図15参照)のうちでの最大の符号長(以下、動きベクトル符号最大符号長)と、そのマクロブロックに含まれる係数値の符号(図17参照)の符号長のうちでの最大(以下、係数値符号最大符号長)と、参照画像インデックスと量子化パラメータとの符号(図18参照)のうちでの最大の符号長(以下、第3の最大符号長)とを特定する。なお、変換後最大符号長特定部1301は、例えば、変換前の動きベクトルの符号のうちでmvd値の絶対値が最大のものを特定することによって、特定された変換前の符号に対応する変換後の符号の符号長を、動きベクトル符号最大符号長と特定する。
切替部1304は、変換後最大符号長特定部1301により特定された動きベクトル最大符号長が予め定められた動きベクトル閾長さを越える場合にのみ、変換後最大符号長特定部1301がその動きベクトル最大符号長を特定したマクロブロックに含まれる動きベクトルの符号変換を符号変換部1202に行わせる。
また、切替部1304は、変換後最大符号長特定部1301により特定された係数値符号最大符号長が予め定められた係数値閾長さを越える場合にのみ、そのマクロブロックに含まれる係数値の符号変換を符号変換部1202に行わせる。
また、符号変換部1202は、変換後最大符号長特定部1301により特定された第3の最大符号長が予め定められた第3の閾長さを越える場合にのみ、そのマクロブロックに含まれる参照画像インデックス等の符号変換を符号変換部1202に行わせる。
なお、切替部1304は、動きベクトル等を、符号変換部1202を介して、規則種類表示フラグ付与部1303に入力させるか、又は、符号変換部1202を介さずに直接に規則種類表示フラグ付与部1303に入力させるかを切り替えることにより、このような切替を行う(図21参照)。なお、かかる切替部1304の構成は一例であり、切替部1304は、他の構成を採ってもよい。
規則種類表示フラグ付与部1303は、切替部1304または符号変換部1202が規則種類表示フラグ付与部1303に入力するマクロブロックに対して、符号変換部1202が符号変換をしたか否かを示す規則種類表示フラグを付与する。規則種類表示フラグは、動きベクトルの符号変換がされたか否かを示す動きベクトルフラグと、係数値が符号変換されたか否かを示す係数値フラグと、参照画像インデックス等が符号変換されたか否かを示す第3のフラグとが含まれる。規則種類表示フラグ付与部1303は、これら3つの規則種類表示フラグをマクロブロックに付与する。このとき、例えば、マクロブロックは、3つの規則種類表示フラグのサイズの分だけ3ビット大きくなるものとしてもよいし、付与される前から予め3つの規則種類表示フラグのサイズがマクロブロック内部に存在していて、大きくなることはないものとしてもよい。
この実施の形態4においては、画像デコーダ103(図14)は、規則種類表示フラグに基づいて、その規則種類表示フラグが含まれるマクロブロックを符号化した符号化規則を特定する。画像デコーダ103は、動きベクトルフラグが符号変換をしたことを示す場合には、そのマクロブロックの動きベクトルの符号化規則が、図16の符号化規則であることを特定し、符号変換をしていないことを示す場合には、図15の符号化規則であることを特定する。また、画像デコーダ103は、同様にして、係数値および、参照画像インデックス等の符号化規則も特定する。そして、画像デコーダ103は、特定された動きベクトル、係数値、参照画像インデックス等の各符号化規則に対応する復号の処理を行う。
以上、いくつかの実施の形態を例に本発明における実施の形態を説明した。本発明は、ここに記載した実施の形態だけでなく、符号変換や係数値などの情報削除によってマクロブロックの最大ビット数を削減するといった本質を維持したまま、様々な変形が可能である。たとえば、上記で説明したH.264規格の画像復号装置だけでなく、MPEG−2規格やVC−1規格などに対応した画像復号装置にも同様に適用が可能である。また、符号の変換や係数の削除を独立した回路で行うだけではなく、ストリームから音声と映像を分離する処理を行うデマルチプレクスなどと同時に行うように構成することも可能である。
本発明に係る復号化装置は、第1の符号化規則で符号化された符号に対して、最大符号長を小さくする第2の符号化規則に変換する変換手段を有し、テレビ、パーソナルコンピュータ、DVDレコーダーなどに有用である。
100 復号化装置
101 符号変換部
102 バッファ
103 画像デコーダ
104 フレームメモリ
201 ビットストリーム復号部
202 ビットストリーム生成部
203 ストリーム符号変換部
204 動きベクトル符号変換部
205 係数値符号変換部
100A 復号化装置
801 係数削減部
901 ビットストリーム復号部
902 削減部
903 ビットストリーム生成部
904 ビット量計測部
905 係数削減制御部
100B 復号化装置
1201 算術符号デコーダ
1202 符号変換部
1203 係数削減部
100C 復号化装置
1301 変換後最大符号長特定部
1304 切替部
1303 規則種類表示フラグ付与部

Claims (16)

  1. 画像データを復号化する画像データ復号化装置であって、
    当該画像データ復号化装置に入力された画像データを、当該画像データが符号化された第1の符号化規則よりも最大の符号長が短い第2の符号化規則で符号化された画像データへ変換する符号変換手段と、
    前記符号変換手段により前記変換がされた後の前記画像データを取得して、取得した画像データを復号化する復号化手段と
    を備えることを特徴とする画像データ復号化装置。
  2. 前記画像データは、動きベクトルと、係数値とを含み、
    前記符号変換手段は、
    画像データに含まれる、前記第3の符号化規則により符号化された動きベクトルを、前記第3の符号化規則よりも最大の符号長が短い第4の符号化規則で符号化された動きベクトルに変換する動きベクトル符号変換手段と、
    画像データに含まれる、前記第5の符号化規則により符号化された係数値を、前記第5の符号化規則よりも最大の符号長が短い第6の符号化規則で符号化された係数値に変換する係数値符号変換手段とを備え、
    前記動きベクトル符号変換手段と前記係数値符号変換手段とによる変換を画像データに施すことを特徴とする請求項1記載の画像データ復号化装置。
  3. 前記符号変換手段により変換がされた後の画像データを記憶するバッファを更に備え、
    前記復号化手段は、前記バッファに記憶された画像データを復号化し、
    前記バッファと当該バッファの外部との間で前記画像データが転送されるバンド幅を特定するバンド幅情報を取得するバンド幅情報取得手段を更に備え、
    前記符号変換手段は、前記画像データに含まれる、当該画像データの前記転送における各送信単位のうちで、データ長が最大の送信単位のデータ長が、前記バンド幅情報により特定されるバンド幅を超える場合に、当該画像データの前記変換を行うことを特徴とする請求項1記載の画像データ復号化装置。
  4. 前記符号変換手段により変換がされた後の画像データを記憶するバッファを更に備え、
    前記復号化手段は、前記バッファに記憶された画像データを復号化し、
    前記バッファと当該バッファの外部との間で前記画像データが転送されるバンド幅を特定するバンド幅情報を取得するバンド幅情報取得手段と、
    前記符号変換手段により変換がされた後の画像データに含まれる、当該画像データの前記転送での送信単位のデータ長が、前記バンド幅情報により特定されるバンド幅を超えるか否かを判定する判定手段と、
    前記判定手段により、データ長が前記バンド幅を超えると判定されれば、当該判定がされた前記送信単位のビット数を削減する削減手段とを更に備えることを特徴とする請求項1記載の画像データ復号化装置。
  5. 前記削減手段は、画像データの前記送信単位のなかに、AC係数、DC係数のうちでAC係数が含まれない場合にのみ、DC係数を削除することを特徴とする請求項4記載の画像データ復号化装置。
  6. 前記判定手段は、前記削減手段により輝度係数が削除された前記送信単位のデータ長が、前記バンド幅情報により特定されるバンド幅を超えるか否かを判定し、
    前記削減手段は、輝度係数を削除した前記送信単位のデータ長が前記バンド幅を超えると判定された場合にのみ、当該送信単位の色差係数を削除することを特徴とする請求項4記載の画像データ復号化装置。
  7. 前記第1の符号化規則は、当該第1の符号化規則が値を対応付ける各符号の大きさが不等長であり、
    前記第2の符号化規則は、前記第1の符号化規則が予め定められたサイズ以下の小さい符号に対応付ける各値を、それぞれ、当該符号と同じ符号が少なくとも一部に含まれる符号に対応付けると共に、当該サイズよりも大きい符号に対応付ける各値を、それぞれ、いずれも前記予め定められたサイズを有し、互いに等長である予め定められた等長符号が含まれる符号へと対応付けることを特徴とする請求項1記載の画像データ復号化装置。
  8. 前記サイズは、前記第1の符号化規則が対応付けをする全ての値を、等長符号により符号化する場合に必要なビットの最低個数であり、
    前記等長符号は、当該最低個数のビットよりなる等長の符号であり、
    前記第2の符号化規則の符号は、前記第1の符号化規則の符号と同じ符号、または、当該等長符号のうちの何れか一方を含む本体部と、当該本体部が前記第1の符号化規則の符号と同じ符号が含まれるか、または、前記等長符号が含まれるかを識別する1ビットの識別ビットとを備えることを特徴とする請求項7記載の画像データ復号化装置。
  9. 前記第2の符号化規則は、前記第1の符号化規則の符号が示す値と、前記等長符号が示す等長符号値との値対応関係が含まれ、
    前記符号変換手段は、前記第1の符号化規則の符号を前記等長符号を含む符号に変換する場合には、前記第1の符号化規則の符号が示す値に対して前記値対応関係が対応付ける等長符号値の前記等長符号の符号を、含まれる等長符号として選択する
    ことを特徴とする請求項8記載の画像データ復号化装置。
  10. 前記値対応関係は、前記第1の符号化規則の各値を、それぞれ、当該値の絶対値から予め定められた減数を減じた絶対値を有する等長符号値の前記等長符号に対応付ける
    ことを特徴とする請求項9記載の画像データ復号化装置。
  11. 前記変換の前の画像データに基づいて、前記変換の後の画像データの最大の符号長を特定する最大符号長特定手段を更に備え、
    前記符号変換手段は、前記最大符号長特定手段により特定された前記最大の符号長が予め定められた大きさを超える場合に前記変換を行い、
    前記復号化手段に取得される画像データに対して、前記符号変換手段による前記変換がされたか否かを示す変換有無表示フラグを付加するフラグ付加手段を更に備える
    ことを特徴とする請求項1記載の画像データ復号化装置。
  12. 前記第2の符号化規則は、平均の符号長が前記第1の符号化規則よりも長いことを特徴とする請求項1記載の画像データ復号化装置。
  13. 前記画像データは、H.264規格による画像データであり、
    前記符号変換手段により前記変換がされる前の画像データにH.264規格の算術復号を行う算術復号手段を更に備えることを特徴とする請求項1記載の画像データ復号化装置。
  14. 前記符号変換手段により変換がされた後の画像データを記憶するバッファを更に備え、
    前記復号化手段は、前記バッファに記憶された画像データを取得して、取得した画像データを復号化し、
    前記バッファと当該バッファの外部との間で前記画像データを転送するバスを更に備え、
    前記符号化規則は、値と、当該値を表す符号との対応関係であり、
    前記符号は、1ビットのデータが複数個並んだビット列であり、
    前記最大の符号長は、符号化規則が値を対応付ける各符号のうちで、前記ビット列が最長である符号の当該ビット列のビットの個数であり、
    前記符号変換手段は、画像データに含まれる各符号を、それぞれ、当該符号に前記第1の符号化規則が対応付ける値に対して前記第2の符号化規則が対応付ける符号へ変換する
    ことを特徴とする請求項1記載の画像データ復号化装置。
  15. 画像データを画像データ復号化装置によって復号化する画像データ復号化方法であって、
    当該画像データ復号化装置に入力された画像データを、当該画像データが符号化された第1の符号化規則よりも最大の符号長が短い第2の符号化規則で符号化された画像データへ変換する符号変換工程と、
    前記符号変換工程により前記変換がされた後の前記画像データを取得して、取得した画像データを復号化する復号化工程と
    を備えることを特徴とする画像データ復号化方法。
  16. 画像データを復号化する集積回路であって、
    当該集積回路に入力された画像データを、当該画像データが符号化された第1の符号化規則よりも最大の符号長が短い第2の符号化規則で符号化された画像データへ変換する符号変換手段と、
    前記符号変換手段により前記変換がされた後の前記画像データを取得して、取得した画像データを復号化する復号化手段と
    を備えることを特徴とする集積回路。
JP2009510786A 2007-04-11 2008-04-03 画像データ復号化装置、画像データ復号化方法 Withdrawn JPWO2008129855A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007103627 2007-04-11
JP2007103627 2007-04-11
PCT/JP2008/000858 WO2008129855A1 (ja) 2007-04-11 2008-04-03 画像データ復号化装置、画像データ復号化方法

Publications (1)

Publication Number Publication Date
JPWO2008129855A1 true JPWO2008129855A1 (ja) 2010-07-22

Family

ID=39875386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009510786A Withdrawn JPWO2008129855A1 (ja) 2007-04-11 2008-04-03 画像データ復号化装置、画像データ復号化方法

Country Status (3)

Country Link
US (1) US20100150242A1 (ja)
JP (1) JPWO2008129855A1 (ja)
WO (1) WO2008129855A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4819940B2 (ja) * 2009-12-04 2011-11-24 株式会社日立国際電気 動画像符号化装置
JP5020391B2 (ja) * 2010-02-22 2012-09-05 パナソニック株式会社 復号化装置及び復号化方法
US8855188B2 (en) * 2010-07-15 2014-10-07 Sharp Laboratories Of America, Inc. Method of parallel video coding based on mapping
US8837577B2 (en) * 2010-07-15 2014-09-16 Sharp Laboratories Of America, Inc. Method of parallel video coding based upon prediction type
JP2012124838A (ja) * 2010-12-10 2012-06-28 Sony Corp 画像復号化装置と画像復号化方法および画像符号化装置と画像符号化方法並びにプログラム
US9762899B2 (en) * 2011-10-04 2017-09-12 Texas Instruments Incorporated Virtual memory access bandwidth verification (VMBV) in video coding
US9774879B2 (en) 2013-08-16 2017-09-26 Sony Corporation Intra-block copying enhancements for HEVC in-range-extension (RExt)
US9930348B2 (en) * 2014-03-14 2018-03-27 Qualcomm Incorporated Coefficient level coding in a video coding process
US10142629B2 (en) * 2015-12-28 2018-11-27 Mediatek Inc. Method and apparatus for entropy coding in image compression
CN118381906A (zh) * 2018-03-21 2024-07-23 Lx 半导体科技有限公司 图像编码/解码方法、存储介质以及图像数据的发送方法
EP4000263A4 (en) 2019-08-15 2022-09-07 ByteDance Inc. ENTROPIC CODING FOR VANE ESCAPE SYMBOL
EP4032275A4 (en) * 2019-09-19 2022-11-30 ByteDance Inc. DERIVING QUANTIZE PARAMETERS FOR PALETTE MODE
US11949909B2 (en) * 2020-12-29 2024-04-02 Qualcomm Incorporated Global motion estimation using road and ground object labels for geometry-based point cloud compression

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006051796A1 (en) * 2004-11-09 2006-05-18 Matsushita Electric Industrial Co., Ltd. Two step arithmetic decoding with conversion into an intermediate format

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05103209A (ja) * 1991-10-04 1993-04-23 Toshiba Corp 圧縮符号化データの復号装置
JP2500582B2 (ja) * 1993-03-17 1996-05-29 日本電気株式会社 動画像信号の多重化伝送方法とその装置
JP2003047006A (ja) * 2001-08-01 2003-02-14 Matsushita Electric Ind Co Ltd 圧縮データ量削減方法
US7099387B2 (en) * 2002-03-22 2006-08-29 Realnetorks, Inc. Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses
JP4240283B2 (ja) * 2002-10-10 2009-03-18 ソニー株式会社 復号装置及び復号方法
JP2005094693A (ja) * 2003-09-19 2005-04-07 Toshiba Corp 動画像データ処理装置および動画像データ処理方法
JP4271134B2 (ja) * 2004-12-10 2009-06-03 株式会社東芝 可変長符号化デコーダおよびデコード方法
JP4540585B2 (ja) * 2005-10-20 2010-09-08 パナソニック株式会社 符号化装置及び復号化装置
JP2008042497A (ja) * 2006-08-04 2008-02-21 Seiko Epson Corp デコード装置、情報再生装置及び電子機器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006051796A1 (en) * 2004-11-09 2006-05-18 Matsushita Electric Industrial Co., Ltd. Two step arithmetic decoding with conversion into an intermediate format

Also Published As

Publication number Publication date
US20100150242A1 (en) 2010-06-17
WO2008129855A1 (ja) 2008-10-30

Similar Documents

Publication Publication Date Title
JPWO2008129855A1 (ja) 画像データ復号化装置、画像データ復号化方法
US11750841B2 (en) Methods and apparatuses for coding transform blocks
US20240121420A1 (en) Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US9510011B2 (en) Video encoding device, video decoding device, video encoding method, video decoding method, and program
JP5474546B2 (ja) 低減された解像度の分割の方法及び装置
JP4313771B2 (ja) 画像および/またはビデオ符号器と復号器における変換係数を符号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体
KR102028527B1 (ko) 영상 디코딩 방법 및 이를 이용하는 장치
JP6730187B2 (ja) データ符号化及び復号化
KR102615301B1 (ko) 영상 정보 전송 방법 및 장치와 이를 이용한 복호화 방법 및 장치
KR101660605B1 (ko) 변환 계수들에 대한 이진 코드워드들을 결정하는 방법
TWI750624B (zh) 編解碼變換係數的方法及裝置
JP2017123668A (ja) コンピュータ可読媒体
KR20070006445A (ko) 하이브리드 엔트로피 부호화, 복호화 방법 및 장치
US20140286417A1 (en) Data encoding and decoding
JP2022511883A (ja) ビデオ符号化用の方法及び装置
TW201517600A (zh) 資料編碼和解碼
JP2000324494A (ja) 動画像符号化装置
JP2022539311A (ja) ピクチャのサブセクション用の独立したcabac
JP2022517787A (ja) 動画符号化方法、動画符号化機器及びコンピュータプログラム
CN116325723B (zh) 用于视频解码的方法、计算机设备及介质
US20110026595A1 (en) Video encoding/decoding apparatus
WO2023272533A1 (zh) 编解码方法、编码器、解码器以及存储介质
CN117044204A (zh) 用于多符号算术译码的方法、设备和存储介质
KR20220163419A (ko) 레지듀얼 코딩에 대한 영상 디코딩 방법 및 그 장치
CN117319687A (zh) 系数编解码方法、编码器、解码器以及计算机存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130405

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20130524