特許第6023596号(P6023596)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立情報通信エンジニアリングの特許一覧

<>
  • 特許6023596-画像符号化装置 図000002
  • 特許6023596-画像符号化装置 図000003
  • 特許6023596-画像符号化装置 図000004
  • 特許6023596-画像符号化装置 図000005
  • 特許6023596-画像符号化装置 図000006
  • 特許6023596-画像符号化装置 図000007
  • 特許6023596-画像符号化装置 図000008
  • 特許6023596-画像符号化装置 図000009
  • 特許6023596-画像符号化装置 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6023596
(24)【登録日】2016年10月14日
(45)【発行日】2016年11月9日
(54)【発明の名称】画像符号化装置
(51)【国際特許分類】
   H04N 19/127 20140101AFI20161027BHJP
   H04N 19/156 20140101ALI20161027BHJP
   H04N 19/172 20140101ALI20161027BHJP
   H04N 19/426 20140101ALI20161027BHJP
   H04N 19/436 20140101ALI20161027BHJP
   H04N 19/91 20140101ALI20161027BHJP
【FI】
   H04N19/127
   H04N19/156
   H04N19/172
   H04N19/426 300
   H04N19/436
   H04N19/91
【請求項の数】5
【全頁数】16
(21)【出願番号】特願2013-10807(P2013-10807)
(22)【出願日】2013年1月24日
(65)【公開番号】特開2014-143572(P2014-143572A)
(43)【公開日】2014年8月7日
【審査請求日】2015年4月30日
(73)【特許権者】
【識別番号】000233295
【氏名又は名称】株式会社日立情報通信エンジニアリング
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜特許業務法人
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール特許業務法人
(72)【発明者】
【氏名】海野 恭平
(72)【発明者】
【氏名】小味 弘典
(72)【発明者】
【氏名】谷田部 祐介
(72)【発明者】
【氏名】岡田 光弘
(72)【発明者】
【氏名】小島 弘
(72)【発明者】
【氏名】柏原 義昌
(72)【発明者】
【氏名】柳原 利一
【審査官】 坂東 大五郎
(56)【参考文献】
【文献】 国際公開第2011/080851(WO,A1)
【文献】 特開2000−295616(JP,A)
【文献】 特開2011−015322(JP,A)
【文献】 特開2012−195701(JP,A)
【文献】 特開2009−260977(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00−19/98
(57)【特許請求の範囲】
【請求項1】
画像データを符号化処理する画像符号化装置において、
前記画像データからシンタックス要素を生成するシンタックス要素生成部と、
前記シンタックス要素から中間データを生成する中間データ生成部と、
前記中間データをエントロピー符号化してビットストリームを生成する複数のエントロピー符号化部と、
前記符号化された複数のビットストリームを1つのビットストリームに多重化する多重化部と、
前記中間データ生成部から出力される前記中間データをメモリに書き込み、該メモリから前記中間データを読み出して前記複数のエントロピー符号化部のいずれかへ供給する符号化制御部と、
前記中間データ生成部から前記メモリに書き込む前記中間データを圧縮処理し、前記メモリから読み出して前記複数のエントロピー符号化部のいずれかへ供給する前記中間データを伸張処理する圧縮伸張部と、を備え、
前記符号化制御部は、前記各エントロピー符号化部の処理状況に応じて、フレーム単位でエントロピー符号化を行なうエントロピー符号化部を決定し、該決定したエントロピー符号化部に該当するフレームの中間データを前記メモリから読み出して供給し、
前記決定したエントロピー符号化部では、該当するフレームの全ての中間データについてエントロピー符号化を行い、他のエントロピー符号化部では当該フレームの中間データのエントロピー符号化を行わないものであって、
前記符号化制御部は、前記各エントロピー符号化部へ出力するフレームが何番目に入力されたフレームであるかを示す符号化順序情報と、次に出力するフレームがいずれのエントロピー符号化部で処理されるかを示す符号化割り当て情報を含む多重化制御情報を生成して、前記多重化部に通知し、
前記多重化部は、前記符号化制御部から受け取った前記多重化制御情報に従い、前記ビットストリームをフレーム単位に区別して前記メモリに書き込み、また前記メモリに分かれて書き込まれた前記ビットストリームをフレーム単位で順番に読み出すことで、元の順序のビットストリームに変換することを特徴とする画像符号化装置。
【請求項2】
請求項1記載の画像符号化装置において、
前記決定したエントロピー符号化部では、該当するフレームの中間データのエントロピー符号化を完了するまでは、他のフレームの中間データのエントロピー符号化を行わないことを特徴とする画像符号化装置。
【請求項3】
請求項1記載の画像符号化装置において、
前記符号化制御部は、前記各エントロピー符号化部の中で、先行するフレームのエントロピー符号化が最も早く終了したエントロピー符号化部に、次のフレームのエントロピー符号化を割り当てることを特徴とする画像符号化装置。
【請求項4】
請求項1記載の画像符号化装置において、
前記符号化処理部は、前記中間データ生成部において1フレーム内の先頭の1マクロブロック分の中間データが生成された時点で、該中間データを前記エントロピー符号化部に供給してエントロピー符号化を開始させることを特徴とする画像符号化装置。
【請求項5】
画像データを符号化処理する画像符号化装置において、
前記画像データからシンタックス要素を生成するシンタックス要素生成部と、
前記シンタックス要素を符号化してビットストリームを生成する複数の符号化部と、
前記符号化された複数のビットストリームを1つのビットストリームに多重化する多重化部と、
前記シンタックス要素生成部から出力される前記シンタックス要素をメモリに書き込み、該メモリから前記シンタックス要素を読み出して前記複数の符号化部のいずれかへ供給する符号化制御部と、
前記シンタックス要素生成部から前記メモリに書き込む前記シンタックス要素を圧縮処理し、前記メモリから読み出して前記複数の符号化部のいずれかへ供給する前記シンタックス要素を伸張処理する圧縮伸張部と、を備え、
前記符号化制御部は、前記各符号化部の処理状況に応じて、フレーム単位で符号化を行なう符号化部を決定し、該決定した符号化部に該当するフレームのシンタックス要素を前記メモリから読み出して供給し、
前記決定した符号化部では、該当するフレームの全てのシンタックス要素について符号化を行い、他の符号化部では当該フレームのシンタックス要素の符号化は行わないものであって、
前記符号化制御部は、前記各符号化部へ出力するフレームが何番目に入力されたフレームであるかを示す符号化順序情報と、次に出力するフレームがいずれの符号化部で処理されるかを示す符号化割り当て情報を含む多重化制御情報を生成して、前記多重化部に通知し、
前記多重化部は、前記符号化制御部から受け取った前記多重化制御情報に従い、前記ビットストリームをフレーム単位に区別して前記メモリに書き込み、また前記メモリに分かれて書き込まれた前記ビットストリームをフレーム単位で順番に読み出すことで、元の順序のビットストリームに変換することを特徴とする画像符号化装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画質劣化を抑え効率的に画像データを符号化する画像符号化装置に関する。
【背景技術】
【0002】
画像符号化処理の高速化に対応するため、複数の符号化装置を並列に動作させる構成が提案されている。特許文献1には、入力映像信号を1画面当たり複数のブロックに分割し、N個(ただしNは2以上の自然数)の符号化装置にて各ブロックの同一ピクセル位置の映像信号をそれぞれ別々に、かつ、同時に符号化して出力する構成が開示されている。特許文献2には、符号化対象データを複数の部分データに分割し、分割された複数の部分データを複数の符号化手段に振り分けるものであって、振り分けられた部分データに対する符号化が終了した符号化手段に対して、さらに次の部分データを順次振り分ける構成が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平9−238334号公報
【特許文献2】特開平11−346366号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
前記特許文献1では、1画面を複数のブロックに分割し、各ブロックの同一ピクセル位置からなるN個の映像信号を生成して、それぞれN個の符号化装置で符号化している。これにより各符号化画像データの相関性が高く、復号時の画像歪が目立ちにくくなると述べている。しかしながら、画面分割に伴う画面内の境界部分での画質劣化は避けられない。
【0005】
また前記特許文献2では、符号化を並列処理する処理単位(部分データ)として、1フレーム内のM個(例えばM=5)のマクロブロックをシャフリングして形成したビデオセグメントを用いている。この場合、ビデオセグメント間のデータ依存関係が生じないので、並列処理が有利と述べている。しかしこの場合も、画面分割に伴う画面内の境界部分での画質劣化は避けられない。
【0006】
本発明はこの課題を鑑みて、画面内の境界部分の画質劣化がなく高ビットレートの符号化処理を実現する画像符号化装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明の画像符号化装置は、画像データからシンタックス要素を生成するシンタックス要素生成部と、シンタックス要素から中間データを生成する中間データ生成部と、中間データをエントロピー符号化してビットストリームを生成する複数のエントロピー符号化部と、符号化された複数のビットストリームを1つのビットストリームに多重化する多重化部と、中間データ生成部から出力される中間データをメモリに書き込み、メモリから中間データを読み出して複数のエントロピー符号化部のいずれかへ供給する符号化制御部とを備える。符号化制御部は、各エントロピー符号化部の処理状況に応じて、フレーム単位でエントロピー符号化を行なうエントロピー符号化部を決定し、決定したエントロピー符号化部に該当するフレームの中間データをメモリから読み出して供給する。決定したエントロピー符号化部では、該当するフレームの全ての中間データについてエントロピー符号化を行い、他のエントロピー符号化部では当該フレームの中間データのエントロピー符号化を行わないようにする。
【0008】
また本発明の画像符号化装置は、画像データからシンタックス要素を生成するシンタックス要素生成部と、シンタックス要素を符号化してビットストリームを生成する複数の符号化部と、符号化された複数のビットストリームを1つのビットストリームに多重化する多重化部と、シンタックス要素生成部から出力されるシンタックス要素をメモリに書き込み該メモリからシンタックス要素を読み出して複数の符号化部のいずれかへ供給する符号化制御部とを備える。符号化制御部は、各符号化部の処理状況に応じて、フレーム単位で符号化を行なう符号化部を決定し、決定した符号化部に該当するフレームのシンタックス要素をメモリから読み出して供給する。決定した符号化部では、該当するフレームの全てのシンタックス要素について符号化を行い、他の符号化部では当該フレームのシンタックス要素の符号化は行わないようにする。
【発明の効果】
【0009】
本発明によれば、画面内の境界部分の画質劣化がなく高ビットレートの符号化処理を実現する画像符号化装置を提供することができる。
【図面の簡単な説明】
【0010】
図1】実施例1に係る画像符号化装置の構成を示す図である。
図2】CABAC処理を説明する図である。
図3】メモリ108のメモリマッピングを示す図である。
図4】多重化制御情報400の例を示す図である。
図5】実施例1の符号化処理動作のタイミングを示す図である。
図6】メモリ108へのデータ読み書きタイミングを示す図である。
図7】中間データの符号化割り当ての決定法を示すフローチャートである。
図8】実施例2における符号化処理動作のタイミングを示す図である。
図9】実施例3に係る画像符号化装置の構成を示す図である。
【発明を実施するための形態】
【0011】
以下の実施例では、Full HDサイズ(1920x1080画素)で30fpsの画像を、ITU-T Rec. H.264 | ISO/IEC 14496-10 Advanced Video Coding(以下H.264)のCABAC(Context-based Adaptive Binary Arithmetic Coding)方式に従い、80Mbpsのビットレートで符号化処理する例を示す。また、符号化処理を行なう際のピクチャ構成は、Iフレーム、Pフレーム、Bフレームの3種類を全て用いることとする。
【実施例1】
【0012】
図1は、実施例1に係る画像符号化装置の構成を示す図である。画像符号化装置1は、画像入力部101、シンタックス要素生成部102、中間データ生成部103、符号化制御部104、第1エントロピー符号化部105、第2エントロピー符号化部106、多重化部107、メモリ108、バス109より構成され、画像入力部101から符号化対象画像データを入力し、多重化部107から符号化後のビットストリームを出力する。本実施例では符号化の並列処理を行うため、2個のエントロピー符号化部105,106を設けている。また破線200はCABAC処理を行う構成部分で、中間データ生成部103、符号化制御部104、第1エントロピー符号化部105、第2エントロピー符号化部106が相当する。
【0013】
図2は、本実施例で用いるCABAC(コンテキスト適応型2値算術符号化)処理を説明する図である。CABAC処理部200は、機能的に2値化部201、コンテキスト計算部202、及び2値算術符号化部203で構成される。
【0014】
2値化部201は、H.264で規定されているシンタックス要素(ヘッダ情報、動きベクトル、量子化後の直交変換係数等)を入力とし、規格で決められた方法で2値化処理を施し、2値化データを出力する。コンテキスト計算部202は、前記2値化データを1bit処理する毎に確率モデルを更新する。2値算術符号化部203では、コンテキスト計算部202で計算した確率モデルに基づいて、入力された2値化データを1bit毎に2値算術符号化してビットストリームを出力する。このように、CABAC処理は2値化データを1bit処理する毎に確率モデルを更新しながら符号化を行なうため、入力データを理論限界まで圧縮して符号化することが可能となる。
【0015】
符号化対象画像のピクチャ構成は、Iフレーム、Pフレーム、Bフレームからなる。Iフレームは、画像の空間方向の相関を利用し、同一フレーム内の既に符号化が終了した領域の復号画像を使用して予測符号化を行なうフレームである。P,Bフレームは画像の時間方向の相関も利用し、既に符号化が終了した時間的に過去または未来のフレームの復号画像を使用して予測符号化を行なうフレームであり、同時に参照可能なフレーム数が1つのものをPフレーム、2つのものをBフレームと呼ぶ。一般的に、IフレームよりP,Bフレームの方が符号化効率が良い。そのため、Iフレーム、Pフレーム、Bフレームを全て使用して符号化する場合には、フレームの種類によって発生する符号量にばらつきが生じる。
【0016】
図3は、メモリ108のメモリマッピングを示す図である。メモリ108には例えばSDRAMを採用する。メモリ108は複数のバッファ301〜305を有し、符号化処理に伴う各種データを記憶する。
【0017】
以下、画像符号化装置1の各部の動作を、図1図3を参照して説明する。
画像入力部101は符号化対象の画像データを入力し、バス109経由でメモリ108内の符号化対象画像用バッファ301に書き込む。
【0018】
シンタックス要素生成部102は、入力した画像データについて、16×16画素サイズのマクロブロック(以下MB)毎に予測符号化や離散コサイン変換、量子化等の処理を行なう。そして、ヘッダ情報、動きベクトル、量子化後の変換係数等のH.264で規定されたシンタックス要素を生成する。その際予測符号化処理に必要な画像データは、符号化対象画像については符号化対象画像用バッファ301、参照画像である復号画像については復号画像用バッファ302からそれぞれ読み出して使用する。また、生成したシンタックス要素に基づいて当該MBの復号画像を作成し、復号画像用バッファ302に書き込む。生成されたシンタックス要素は、中間データ生成部103へ出力される。
【0019】
中間データ生成部103は図2の2値化部201に相当し、CABACで規定されている方法でシンタックス要素を2値化し、符号化中間データ(以下、単に中間データと呼ぶ)を生成する。生成された中間データは符号化制御部104へ出力される。
【0020】
符号化制御部104は、中間データ生成部103から出力される中間データを、フレーム単位で、第1エントロピー符号化部105または第2エントロピー符号化部106のいずれかへ出力する。その際、中間データをバス109経由でメモリ108内の中間データ用バッファ303へ一旦書き込んでおき、次のフレームの符号化処理を行うエントロピー符号化部を決定し、バッファ303から該当フレームの中間データを読み出して前記決定したエントロピー符号化部へ出力する。後述するように、本実施例では、次のフレームの符号化処理を行うエントロピー符号化部に、符号化処理が早く終了しているエントロピー符号化部を割り当てる。
【0021】
また符号化制御部104は、エントロピー符号化部105,106へ出力するフレームに関する多重化制御情報を生成して、多重化部107に通知する。この多重化制御情報には、次に出力するフレームが符号化制御部104へ何番目に入力されたフレームであるか(符号化順序情報)と、次に出力するフレームがいずれのエントロピー符号化部で処理されるか(符号化割り当て情報)が含まれる。なお、次フレームに対するエントロピー符号化部の決定手法と多重化制御情報の具体例については後述する。
【0022】
第1エントロピー符号化部105と第2エントロピー符号化部106はいずれも同一の構成であり、図2のコンテキスト計算部202と2値算術符号化部203に相当する。ここでは、符号化制御部104から出力される中間データ(2値化データ)に対し、確率モデルに基づいてエントロピー符号化(2値算術符号化)を行い、それぞれ第1及び第2ビットストリームを生成して多重化部107へ出力する。本実施例では、各エントロピー符号化部105,106は共に最大50Mbpsの符号化処理能力を有し、両者を並列処理させることで目標とする80Mbpsのビットレートを実現する。
【0023】
多重化部107は、第1及び第2エントロピー符号化部105,106で符号化された第1及び第2ビットストリームを1つのビットストリームに多重化処理する。そのために、エントロピー符号化部105,106から出力される第1及び第2ビットストリームを、バス109を経由して、メモリ108の第1及び第2ビットストリーム用バッファ304,305に書き込む。また、バッファ304,305から第1及び第2ビットストリームを読み出して、多重化処理を行う。その際、符号化制御部104から受け取った多重化制御情報に従い、ビットストリームをフレーム単位に区別してバッファ304,305に書き込み、またフレーム単位で順番に読み出しを行う。
【0024】
図4は、符号化制御部104から多重化部107に送る多重化制御情報400の例を示す図である。多重化制御情報400は符号化順序情報401と符号化割り当て情報402からなり、それぞれ1バイト(全2バイト)で記述している。符号化順序情報401は、符号化制御部104に前記中間データが1フレーム分入力される毎にインクリメントされる値である。また、符号化割り当て情報402は、第1エントロピー符号化部105を使う場合は「0」、第2エントロピー符号化部106を使う場合は「1」を与えている。多重化部107では、多重化制御情報400を参照することで、バッファ304,305に分かれて書き込まれた第1及び第2ビットストリームをフレーム順に読み出し、元の順序のビットストリームに変換することができる。
【0025】
次に、本実施例における符号化処理を具体例で説明する。
図5は、実施例1の符号化処理動作のタイミングを示す図である。ここでは、シンタックス要素生成部102、第1及び第2エントロピー符号化部105,106、多重化部107の処理タイミングを示す。横軸は時間軸で1フレーム処理期間Tを単位として表示している。1フレーム処理期間Tとは、符号化対象画像を実時間で符号化する場合に1フレームの処理に割り当て可能な時間であり、例えばフレームレートが30fpsの画像の場合、T=約0.033secとなる。F0,F1・・・はフレーム番号を示し、そのピクチャ構成は、F0はIフレーム、F1,F4はPフレーム、F2,F3,F5,F6はBフレームとして符号化するものとする。
【0026】
シンタックス要素生成部102では、1フレーム処理期間T内に各フレームのシンタックス要素を順次生成する。シンタックス要素生成部102での処理時間は符号化対象画像の画素数に依存し、各フレームの処理時間は一定となる。なお、1フレーム当たりの符号量について、Iフレームでは5.7Mbits、Pフレームでは3.8Mbits、Bフレームでは1.9Mbitsとなるようにレート制御を行う。各フレームのシンタックス要素は中間データ生成部103へ出力され、中間データに変換される。
【0027】
第1エントロピー符号化部105と第2エントロピー符号化部106は、各フレームの中間データのエントロピー符号化(以下、単に符号化という)を行いビットストリームに変換する。その際符号化制御部104は、次のフレームの符号化を符号化処理が早く終わったエントロピー符号化部に割り当てる。
【0028】
また、第1及び第2エントロピー符号化部105,106での符号化処理時間は、各フレームの符号量の大小に依存する。エントロピー符号化部105,106の処理能力はいずれも最大50Mbpsであり、1フレーム処理期間Tに最大で約1.7Mbitsを処理できる。よって、各フレームの符号化に要する時間は、Iフレーム(5.7Mbits)では約3.4T、Pフレーム(3.8Mbits)では約2.3T、Bフレーム(1.9Mbits)では約1.1Tとなる。
【0029】
符号化処理において、割り当てられたエントロピー符号化部では、割り当てられたフレームの全ての中間データについて符号化処理を行い、他のエントロピー符号化部では当該フレームの中間データの処理は一切行わないようにする。また、それぞれのエントロピー符号化部では、割り当てられたフレームの中間データの符号化処理を完了するまでは、他のフレームの中間データの符号化処理を行わないようにする。すなわち、1つのフレームの中間データが、2つのエントロピー符号化部に渡って処理されることはなく、また、1つのフレームの中間データの処理が途中で休止し、他のフレームの処理に切り替わることはない。
【0030】
その結果、各フレームF0,F1・・・の中間データは、各エントロピー符号化部105,106にて次のように符号化処理される。
フレームF0は時間t1のタイミングで第1エントロピー符号化部105に供給され、時間t1から符号化処理が行われる。フレームF0はIフレームであるから、符号化処理時間は約3.4Tとなる。フレームF0の符号化後のビットストリームは、メモリ108の第1のビットストリーム用バッファ304に書き込まれる。
【0031】
フレームF1は時間t2のタイミングで符号化処理中でない第2エントロピー符号化部106に供給され、時間t2から符号化処理が行われる。フレームF1はPフレームであるから、符号化処理時間は約2.3Tとなる。フレームF1の符号化後のビットストリームは、メモリ108の第2ビットストリーム用バッファ305に書き込まれる。
【0032】
フレームF2は時間t3のタイミングで供給されるが、2つのエントロピー符号化部105,106はいずれも符号化処理中であり、いずれかの処理が終了するまで待機する。この例では、フレームF1を処理している第2エントロピー符号化部106が時間t4を超えたところで先に処理を終了するので、フレームF2は第2エントロピー符号化部106に供給される。その結果、第2エントロピー符号化部106ではフレームF1に引き続きフレームF2の処理を行う。フレームF2はBフレームであるから、符号化処理時間は約1.1Tとなる。フレームF2の符号化後のビットストリームは、メモリ108の第2のビットストリーム用バッファ305に書き込まれる。
【0033】
フレームF3は時間t4のタイミングで供給されるが、先行するフレームF2が処理待ち状態であるためF2の処理が開始するまで待機する。そしてF2の処理が開始した後、先に処理が終了する第1エントロピー符号化部105に供給される。その結果、第1エントロピー符号化部105では、フレームF0に引き続きフレームF3の処理を行う。
以後のフレームF4,F5・・・についても同様で、符号化処理が早く終わったエントロピー符号化部に供給することで、各フレームの符号化を連続して実行する。
【0034】
多重化部107では、先頭フレームF0のビットストリームが生成された後の、時間t5のタイミングから多重化処理を開始する。図4の多重化制御情報400に基づき、メモリ108のバッファ304及びバッファ305からフレーム順にビットストリームを読み出し、多重化ビットストリームに変換して出力する。
【0035】
図6は、メモリ108へのデータ読み書きタイミングを示す図である。縦軸はメモリアドレス、横軸は時間軸であり、ここではフレームF0とF1についての中間データとビットストリームの読み書きを示している。メモリアドレスのうち、下段領域(32〜48MB)は中間データ用バッファ303、中段領域(48〜64MB)は第1ビットストリーム用バッファ304、上段領域(64MB〜)は第2ビットストリーム用バッファ305である。
【0036】
まず、中間データの書き込みから説明する。符号化制御部104は、中間データ生成部103から出力されるフレームF0,F1の中間データをバッファ303にアドレスを連続させて書き込む(実線で示す)。書き込みタイミングは、フレームF0は時間t0から、フレームF1は時間t1から開始し、それぞれ1フレーム処理時間Tかけて行う。中間データの量はフレームF0とF1で異なるため、書き込み速度(グラフの傾き)は異なっている。このとき符号化制御部104は、1フレームの書き込みが終わる毎に符号化順序情報と終端のアドレスを記憶している。
【0037】
中間データの読み出しでは、符号化制御部104は、バッファ303からフレームF0とF1の中間データを読み出す(破線で示す)。その際、前記書き込み時に記憶している各フレームの符号化順序情報と終端のアドレスをもとに、中間データを符号化処理順序に、かつ1フレーム単位で読み出す。読み出した中間データは、フレームF0は第1エントロピー符号化部105へ、フレームF1は第2エントロピー符号化部106へ出力する。本実施例では、エントロピー符号化部105,106における中間データのバッファ容量が少ない場合を想定し、読み出しタイミングはエントロピー符号化部105,106での符号化開始に合わせ、フレームF0は時間t1から、フレームF1は時間t2から開始する。また読み出し速度(グラフの傾き)は、エントロピー符号化部105,106の処理速度に合わせ、一定としている。そのため、フレームF0,F1の読み出し時間は、それぞれの中間データの量に応じて異なる。もし、エントロピー符号化部105,106が十分なバッファ容量を備える場合には、1フレーム分を連続で読み出してバッファに蓄えてから符号化処理を行なっても良い。
【0038】
次にビットストリームの書き込みを説明する。多重化部107は、第1エントロピー符号化部105から出力されるフレームF0のビットストリームをバッファ304に、第2エントロピー符号化部106から出力されるフレームF1のビットストリームを、バッファ305に書き込む(一点鎖線で示す)。書き込みタイミングは、それぞれのエントロピー符号化部105,106での符号化処理に同期し、フレームF0は時間t1からフレームF1は時間t2から開始する。多重化部107は符号化制御部104から受け取った多重化制御情報(符号化順序情報)に基づき、書き込むビットストリームが何番目に出力するフレームであるかを記憶し、またバッファ304,305のどこに書き込んだか(先頭アドレス情報)と各フレームのサイズ情報を記憶しておく。
【0039】
ビットストリームの読み出しでは、多重化部107は、バッファ304からフレームF0のビットストリームを、続いてバッファ305からフレームF1のビットストリームを読み出す(点線で示す)。読み出しのタイミングは、符号化制御部104から受け取った多重化制御情報(符号化順序情報)に従い、書き込み時に記憶している各フレームの先頭アドレス情報を参照し、当該フレームのサイズ分の読み出し処理を行う。図では、時間t5からフレームF0の読み出しを開始し、それが終了すると引き続きフレームF1の読み出しを開始する。これにより、符号化制御部104へ中間データが入力された順序でビットストリームを多重化して、規格に準拠したビットストリームを出力することができる。
【0040】
次に、符号化制御部104において、各フレームの中間データを第1エントロピー符号化部105と第2エントロピー符号化部106のいずれで符号化するかを決定する手法を説明する。
【0041】
図7は、中間データの符号化割り当ての決定法を示すフローチャートである。
S701において、メモリ108の中間データ用バッファ303に格納されている中間データの中で、まだエントロピー符号化部105,106でエントロピー符号化処理を開始していないフレームの中間データ(未符号化フレームデータ)の有無を判定する。ここでは、シンタックス要素生成部102での処理が1フレーム分終了した時点で、初めて未符号化フレームデータと認める。すなわち、シンタックス要素生成部102で処理中のフレームのデータが存在しても、未符号化フレームデータとは認めない。
S701の判定で未符号化フレームデータなし(No)と判定された場合は、未符号化フレームデータ有りと判定されるまで、ループ処理を繰り返す。一方、未符号化フレームデータ有り(Yes)と判定された場合はS702へ進む。
【0042】
S702では、第1エントロピー符号化部105が他のフレームデータについて符号化処理中であるか否かを判定する。処理中である(Yes)場合はS704へ、処理中でない(No)場合はS703へ進む。
S703では、未符号化フレームデータの符号化処理を第1エントロピー符号化部105で行なうことに決定する。そして、該当フレームの多重化制御情報を多重化部107へ通知した後、未符号化フレームデータをメモリ108から読み出し、第1エントロピー符号化部105へ出力する。
【0043】
S704では、第2エントロピー符号化部106が他のフレームデータについて符号化処理中であるか否かを判定する。処理中である(Yes)場合はS702に戻り、S702またはS704のいずれかの判定が処理中でない(No)となるまでループ処理する。S704の判定が処理中でない(No)場合はS705へ進む。
S705では、未符号化フレームデータの符号化処理を第2エントロピー符号化部106で行なうことに決定する。そして、該当フレームの多重化制御情報を多重化部107へ通知した後、未符号化フレームデータをメモリ108から読み出し、第2エントロピー符号化部106へ出力する。
【0044】
S706では、符号化割り当てのシーケンスを終了するか否かを判定する。終了しない場合は、S701に戻り前記処理を繰り返す。
【0045】
上記フローチャートによれば、未符号化フレームデータがある場合、符号化処理が早く終わったエントロピー符号化部を用いて次のフレームの符号化処理を連続的に実行することが可能となる。これより、第1及び第2エントロピー符号化部105,106の休止期間を最小とし、処理パフォーマンスを最大限に活かすことが可能となる。
【0046】
これを従来の手法と比較する。例えば前記特許文献1のように、1フレームをN個の領域に分割し、それぞれの領域に対して符号化装置が予め割り当てられている場合を考える。この場合、各領域で符号化難易度が異なると、符号化装置毎の発生符号量がばらついてくる。よって、実時間処理を保証するためには、各符号化装置の処理能力を目標ビットレートの1/Nより高い値に設定しておく必要がある。これに対し本実施例の方法では、各エントロピー符号化部の処理状況に応じて、次のフレームの符号化を行うエントロピー符号化部を割り当てている。よって、フレーム毎に符号量が異なっていても各エントロピー符号化部はほぼ100%の稼働率で動作するため、エントロピー符号化部に課される処理能力は最小限のビットレートの値で十分である。
【0047】
実施例1の変形例として以下が可能である。
上記例では2個のエントロピー符号化部105,106を備える構成としたが、エントロピー符号化部の数は3個以上でも同様に動作し、1個のエントロピー符号化部での処理負担をさらに軽減することができる。この場合にも符号化制御部104は、各エントロピー符号化部の処理状況に応じて、フレーム単位で次に符号化処理を行なうエントロピー符号化部を決定する。
【0048】
符号化方式としてH.264のCABACを採用したが、これに限らず、符号化する度に確率テーブルを変更するようなコンテキスト適応型エントロピー符号化方式(CAVLC)を採用することもできる。
符号化処理中のデータを記憶するメモリ108としてSDRAMを使用したが、バッファの一部をSRAMにして、バス109を経由せずにSRAMにデータをバッファリングする構成としても良い。
【0049】
ピクチャ構成はI、P、Bフレームの全てを用いるものとしたが、Iフレームのみ、IフレームとPフレームのみといったように、他のピクチャ構成でも良い。
メモリ108の中間データ用バッファ303には中間データをそのまま記録したが、各処理部とバス109の間に圧縮伸張部を設け、圧縮処理した圧縮データをメモリ108に記録し、メモリ108から読出した圧縮データを伸張処理してもよい。その場合、メモリ108の記憶容量とバス109のバンド幅を削減できる。
【0050】
実施例1によれば、目標とする符号化処理能力(ビットレート)を分担する複数のエントロピー符号化部を設け、符号化制御部は各エントロピー符号化部の処理状況に応じて、フレーム毎に次の符号化処理を行うエントロピー符号化部を決定するようにした。その際、決定したエントロピー符号化部では、該当するフレームの全ての中間データについてエントロピー符号化を行い、他のエントロピー符号化部では当該フレームの中間データのエントロピー符号化を一切行わないようにした。これより、1画面(1フレーム)を複数の領域に分割することがないので、画面内の境界部分において画質劣化が原理的に発生せず、かつ高ビットレートでの符号化処理を実現できる。
【0051】
特に符号化制御部は、複数のエントロピー符号化部のうち早く符号化処理を終了したエントロピー符号化部に対し次の符号化処理を行なわせるようにした。これより、各エントロピー符号化部の処理休止期間が最小になり、各エントロピー符号化部の処理パフォーマンスを最大限利用して効率的な符号化処理を実現できる。
【実施例2】
【0052】
実施例1では、第1及び第2エントロピー符号化部105,106は、シンタックス要素生成部102(及び中間データ生成部103)にて1フレーム分のデータ生成を終了した後に、そのフレームのエントロピー符号化を開始するものとした。すなわち図7のS701の判定において、符号化制御部104は、シンタックス要素生成部102が1フレーム分の処理を終了した時点で未符号化フレームデータ有りと認識するものとした。
【0053】
これに対し実施例2では、シンタックス要素生成部102(及び中間データ生成部103)が1フレーム内で符号化に必要な最小限のデータを生成した時点で、第1または第2エントロピー符号化部105,106がそのフレームのエントロピー符号化を開始するようにした。具体的には、フレーム先頭の1MB(マクロブロック)分の処理が終了した時点で、そのフレームの符号化を開始する。図7のS701の判定も、フレーム先頭の1MBが生成された時点で、未符号化フレームと認識するようにした。これにより、符号化対象画像データが入力し多重化ビットストリームを出力するまでの遅延時間を短縮することができる。
【0054】
図8は、実施例2における符号化処理動作のタイミングを示す図である。シンタックス要素生成部102における1MB分の処理時間をTMBとする。
シンタックス要素生成部102がフレームF0の処理を開始して先頭の1MB分を終了したとき、すなわち時間t0からTMB経過後、符号化制御部104はバッファ303に未符号化フレームF0が蓄積されたと判定して、第1エントロピー符号化部105へフレームF0の中間データの出力を開始する。これを受けて、第1エントロピー符号化部105はフレームF0について符号化を開始する。
【0055】
同様に、シンタックス要素生成部102がフレームF1について先頭の1MB分を終了したとき、すなわち時間t1からTMB経過後、符号化制御部104は第2エントロピー符号化部106へフレームF1の中間データの出力を開始する。これを受けて、第2エントロピー符号化部106はフレームF1について符号化を開始する。
【0056】
フレームF5,F7についても、それぞれ時間t5,t7からTMB経過後に符号化を開始するが、他のフレームF2,F3,F4,F6の場合は、先行するフレームの符号化処理が終了するのを待って第1または第2エントロピー符号化部105,106にて符号化を開始する。
【0057】
また多重化部107においては、第1エントロピー符号化部105によりフレームF0の符号化処理が開始してからTMB経過後に、フレームF0から順に多重化ビットストリームの出力を開始する。但し、各フレームの多重化ビットストリームの出力が終了するのは、各フレームの符号化処理が終了した後になる。
【0058】
実施例2によれば、前記実施例1(図5)と比較し、各処理部の処理タイミングを早めることで、符号化対象画像データの入力タイミングに対し多重化ビットストリームの出力タイミングの遅延時間を短縮することができる。
【実施例3】
【0059】
前記実施例1,2において、符号化制御部104は、中間データ生成部103により2値化処理後の中間データをメモリ108に書き込み、これを読み出して第1及び第2エントロピー符号化部105,106に出力する構成とした。これに対し実施例3では、メモリ108には2値化処理前のシンタックス要素を書き込み、これを読み出して符号化処理を行う構成とした。
【0060】
図9は、実施例3に係る画像符号化装置の構成を示す図である。画像符号化装置2では、実施例1(図1)における中間データ生成部103を削除し、符号化制御部114、第1符号化部115、第2符号化部116を設けている。他の処理部は図1と共通であり同一の符号を付している。破線200はCABAC処理を行う構成部分で、実施例3では第1符号化部115と第2符号化部116が対応し、その内部は図2の構成となっている。
【0061】
この場合、シンタックス要素生成部102で生成されたシンタックス要素が符号化制御部114へ入力される。符号化制御部114は図1の符号化制御部104と同様に動作するが、メモリ108のバッファ303へ読み書きするデータは中間データではなくシンタックス要素となる。符号化制御部114は、フレーム毎に次のシンタックス要素を符号化する符号化部を決定し、シンタックス要素を出力する。第1及び第2符号化部115,116では、符号化制御部114から供給されるシンタックス要素に符号化処理(CABAC処理)を施し、第1及び第2ビットストリームを出力する。他の処理部の動作は実施例1と同様であり、説明を省略する。
【0062】
実施例3においても、2個の符号化部115,116を用意し、符号化制御部114において各符号化部115,116の処理状況に応じて、フレーム毎に次の符号化処理を行う符号化部を決定する。これより、画面内の境界部分において画質劣化が原理的に発生せず、かつ高ビットレートで効率的な符号化処理を実現できる。
【0063】
なお、実施例3の構成においては、第1及び第2符号化部115,116での符号化方式はCABAC処理に限定せずCAVLCなどの他の方式も適用でき、また実施例1で述べた各種の変形が可能であることは言うまでもない。
【符号の説明】
【0064】
1,2:画像符号化装置、
101:画像入力部、
102:シンタックス要素生成部、
103:中間データ生成部、
104:符号化制御部、
105:第1エントロピー符号化部、
106:第2エントロピー符号化部、
107:多重化部、
108:メモリ、
109:バス、
114:符号化制御部、
115:第1符号化部、
116:第2符号化部、
200:CABAC処理部、
201:2値化部、
202:コンテキスト計算部、
203:2値算術符号化部、
301:符号化対象画像用バッファ、
302:復号画像用バッファ、
303:中間データ用バッファ、
304:第1ビットストリーム用バッファ、
305:第2ビットストリーム用バッファ、
400:多重化制御情報、
401:符号化順序情報、
402:符号化割り当て情報。
図1
図2
図3
図4
図5
図6
図7
図8
図9