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

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

▶ 株式会社メガチップスの特許一覧

<>
  • 特許6203515-画像処理装置 図000002
  • 特許6203515-画像処理装置 図000003
  • 特許6203515-画像処理装置 図000004
  • 特許6203515-画像処理装置 図000005
  • 特許6203515-画像処理装置 図000006
  • 特許6203515-画像処理装置 図000007
  • 特許6203515-画像処理装置 図000008
  • 特許6203515-画像処理装置 図000009
  • 特許6203515-画像処理装置 図000010
  • 特許6203515-画像処理装置 図000011
  • 特許6203515-画像処理装置 図000012
  • 特許6203515-画像処理装置 図000013
  • 特許6203515-画像処理装置 図000014
  • 特許6203515-画像処理装置 図000015
  • 特許6203515-画像処理装置 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6203515
(24)【登録日】2017年9月8日
(45)【発行日】2017年9月27日
(54)【発明の名称】画像処理装置
(51)【国際特許分類】
   H04N 19/42 20140101AFI20170914BHJP
【FI】
   H04N19/42
【請求項の数】10
【全頁数】26
(21)【出願番号】特願2013-75270(P2013-75270)
(22)【出願日】2013年3月29日
(65)【公開番号】特開2014-200038(P2014-200038A)
(43)【公開日】2014年10月23日
【審査請求日】2016年2月18日
(73)【特許権者】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100136353
【弁理士】
【氏名又は名称】高尾 建吾
(72)【発明者】
【氏名】齋藤 和宏
【審査官】 長谷川 素直
(56)【参考文献】
【文献】 特開2007−019902(JP,A)
【文献】 特開2001−128170(JP,A)
【文献】 特開平10−136379(JP,A)
【文献】 特開2012−227602(JP,A)
【文献】 特開2005−318411(JP,A)
【文献】 特開2005−079621(JP,A)
【文献】 特開2009−153020(JP,A)
【文献】 特開平11−027667(JP,A)
【文献】 米国特許出願公開第2011/0075943(US,A1)
【文献】 特開2011−077837(JP,A)
【文献】 国際公開第2008/038513(WO,A1)
【文献】 特開2009−071802(JP,A)
【文献】 特開2010−272993(JP,A)
【文献】 特開2001−238190(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00−19/98
H04N 1/41−1/419
H04N 7/18
H04N 5/225
H04N 5/232
(57)【特許請求の範囲】
【請求項1】
画像処理の処理対象であるピクチャを記憶する記憶部と、
ピクチャに対する画像処理をソフトウェア処理によって実行するソフトウェア処理部と、
ピクチャに対する画像処理をハードウェア処理によって実行するハードウェア処理部と、
を備え、
前記ソフトウェア処理部は、前記ハードウェア処理部の動作モードとして、画像処理装置の最大処理能力に基づいて規定される垂直同期期間内に、入力ピクチャを様々にエンコードすることにより、ピクチャサイズ及びフレームレートの少なくとも一方が異なる複数の出力ピクチャを生成するモードであるマルチモードを設定可能であり、
前記ハードウェア処理部の動作モードがマルチモードに設定された場合には、
前記ソフトウェア処理部は、各垂直同期期間内に生成すべき複数の出力ピクチャに関する複数の設定情報を、前記ハードウェア処理部が入力ピクチャのエンコードを開始する前に前記ハードウェア処理部に一括して通知し、
前記ハードウェア処理部は、各垂直同期期間において、前記ソフトウェア処理部から通知された複数の設定情報に基づいて、複数の出力ピクチャに関するエンコードを、ピクチャ毎の完了通知を省略して連続して実行し、各垂直同期期間内に生成すべき複数の出力ピクチャに関するエンコードが全て完了することにより、エンコードの完了通知を前記ソフトウェア処理部に割り込み通知する、画像処理装置。
【請求項2】
前記ソフトウェア処理部は、画像処理装置で処理可能な最大ピクチャサイズ及び当該最大ピクチャサイズに対応するフレームレートと、出力ピクチャの用途とに基づいて、複数の出力ピクチャの各々のピクチャサイズ及びフレームレートを設定する、請求項1に記載の画像処理装置。
【請求項3】
連続する複数の垂直同期期間の各々において生成すべき出力ピクチャは、出力ピクチャのフレームレートに応じて異なり、
前記ソフトウェア処理部は、複数の出力ピクチャのうち、各垂直同期期間において生成すべき出力ピクチャを特定する情報を、前記設定情報に含めて前記ハードウェア処理部に通知する、請求項1又は2に記載の画像処理装置。
【請求項4】
前記ハードウェア処理部は、
入力ピクチャを符号化する符号化回路と、
前記符号化回路によって符号化されたピクチャをNAL化するNAL化回路と、
前記符号化回路及び前記NAL化回路を制御する制御回路と、
を有し、
前記ソフトウェア処理部から前記ハードウェア処理部に通知された前記設定情報は、前記NAL化回路及び前記制御回路に入力される、請求項1〜3のいずれか一つに記載の画像処理装置。
【請求項5】
前記NAL化回路に入力される設定情報には、各出力ピクチャのNAL化に使用するヘッダ情報が含まれる、請求項4に記載の画像処理装置。
【請求項6】
前記ソフトウェア処理部はさらに、前記ハードウェア処理部の動作モードとして、入力ピクチャをエンコードすることにより、画像処理装置で処理可能な最大ピクチャサイズ及び当該最大ピクチャサイズに対応するフレームレートと比較して、ピクチャサイズが小さくフレームレートが高い出力ピクチャを生成するモードである高速モードを設定可能であり、
前記ハードウェア処理部の動作モードが高速モードに設定された場合には、
前記ソフトウェア処理部は、出力ピクチャに関する設定情報を、前記ハードウェア処理部が入力ピクチャのエンコードを開始する前に前記ハードウェア処理部に通知し、
前記ハードウェア処理部は、前記ソフトウェア処理部から通知された設定情報に基づいて、出力ピクチャに関するエンコードを、ピクチャ毎の完了通知を省略して連続して実行し、指定数の出力ピクチャに関するエンコードが全て完了することにより、エンコードの完了通知を前記ソフトウェア処理部に割り込み通知する、請求項1に記載の画像処理装置。
【請求項7】
前記ソフトウェア処理部は、画像処理装置で処理可能な最大ピクチャサイズ及び当該最大ピクチャサイズに対応するフレームレートと、出力ピクチャのピクチャサイズと、前記ハードウェア処理部の最大クロック周波数とに基づいて、出力ピクチャの最大フレームレートを設定する、請求項6に記載の画像処理装置。
【請求項8】
前記ソフトウェア処理部は、連続したエンコードが実行される出力ピクチャの指定数に関する情報を、前記設定情報に含めて前記ハードウェア処理部に通知する、請求項6又は7に記載の画像処理装置。
【請求項9】
前記ハードウェア処理部は、
入力ピクチャを符号化する符号化回路と、
前記符号化回路によって符号化されたピクチャをNAL化するNAL化回路と、
前記符号化回路及び前記NAL化回路を制御する制御回路と、
を有し、
前記ソフトウェア処理部から前記ハードウェア処理部に通知された前記設定情報は、前記NAL化回路及び前記制御回路に入力される、請求項6〜8のいずれか一つに記載の画像処理装置。
【請求項10】
前記NAL化回路に入力される設定情報には、出力ピクチャのNAL化に使用するヘッダ情報が含まれる、請求項9に記載の画像処理装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置に関し、特に、H.264圧縮符号化方式におけるリアルタイムエンコーダに関する。
【背景技術】
【0002】
背景技術に係る映像記録装置が、下記特許文献1に開示されている。当該映像記録装置において、映像入力部から入力された複数の映像データは、フレームバッファに格納される。符号化処理部は、映像データの符号化処理を実行する。エンコーダ制御部は、フレームバッファに格納されている複数の映像データの各々に関して、符号化処理の割り当て時間を設定する。そして、符号化処理部の現在の処理対象の映像データに関して設定された割り当て時間が経過すると、処理対象の映像データを次の映像データに切り替える。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−272993号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
H.264リアルタイムエンコーダにおいては、CPU等を用いたソフトウェア処理によってヘッダ処理を行い、ハードウェアアクセラレータ等を用いたハードウェア処理によってマクロブロック処理を行う構成が一般的である。その理由は、ヘッダ処理に関しては、様々なプロファイルやアプリケーションに柔軟に対応できるようにソフトウェア処理を行うのが有効であり、マクロブロック処理に関しては、演算量は膨大であるが定型処理の繰り返しが多いためにハードウェア処理を行うのが有効だからである。
【0005】
しかし、ソフトウェア処理とハードウェア処理との協働によってエンコードを行う場合には、1ピクチャの処理が完了する度に、CPUからハードウェアアクセラレータへのコマンド発行や、ハードウェアアクセラレータからCPUへの処理完了通知(割り込み通知)が発生する。従って、CPUとハードウェアアクセラレータとの間でのコマンド発行及び割り込み通知が頻発し、その結果、CPUの処理負荷が増大するとともに、待機時間が長くなるために全体としてエンコードの所要時間が長期化する。
【0006】
本発明は係る事情に鑑みて成されたものであり、1ピクチャ毎にコマンド発行及び割り込み通知を行う場合と比較すると、ソフトウェア処理部の処理負荷を軽減できるとともに、エンコードの所要時間を短縮することが可能な、画像処理装置を得ることを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の態様に係る画像処理装置は、画像処理の処理対象であるピクチャを記憶する記憶部と、ピクチャに対する画像処理をソフトウェア処理によって実行するソフトウェア処理部と、ピクチャに対する画像処理をハードウェア処理によって実行するハードウェア処理部と、を備え、前記ソフトウェア処理部は、前記ハードウェア処理部の動作モードとして、画像処理装置の最大処理能力に基づいて規定される垂直同期期間内に、入力ピクチャを様々にエンコードすることにより、ピクチャサイズ及びフレームレートの少なくとも一方が異なる複数の出力ピクチャを生成するモードであるマルチモードを設定可能であり、前記ハードウェア処理部の動作モードがマルチモードに設定された場合には、前記ソフトウェア処理部は、各垂直同期期間内に生成すべき複数の出力ピクチャに関する複数の設定情報を、前記ハードウェア処理部が入力ピクチャのエンコードを開始する前に前記ハードウェア処理部に一括して通知し、前記ハードウェア処理部は、各垂直同期期間において、前記ソフトウェア処理部から通知された複数の設定情報に基づいて、複数の出力ピクチャに関するエンコードを、ピクチャ毎の完了通知を省略して連続して実行し、各垂直同期期間内に生成すべき複数の出力ピクチャに関するエンコードが全て完了することにより、エンコードの完了通知を前記ソフトウェア処理部に割り込み通知することを特徴とするものである。
【0008】
第1の態様に係る画像処理装置によれば、ハードウェア処理部の動作モードがマルチモードに設定された場合には、ソフトウェア処理部は、各垂直同期期間内に生成すべき複数の出力ピクチャに関する複数の設定情報を、ハードウェア処理部が入力ピクチャのエンコードを開始する前にハードウェア処理部に一括して通知する。また、ハードウェア処理部は、各垂直同期期間において、ソフトウェア処理部から通知された複数の設定情報に基づいて、複数の出力ピクチャに関するエンコードを、ピクチャ毎の完了通知を省略して連続して実行する。そして、各垂直同期期間内に生成すべき複数の出力ピクチャに関するエンコードが全て完了することにより、エンコードの完了通知をソフトウェア処理部に割り込み通知する。その結果、ピクチャサイズやフレームレートが異なる複数シーケンスの出力ピクチャに関するマルチエンコードを実行するにあたって、ソフトウェア処理部とハードウェア処理部との間で1ピクチャ毎にコマンド発行及び割り込み通知を行う場合と比較すると、ソフトウェア処理部の処理負荷を軽減できるとともに、エンコード処理の所要時間を短縮することが可能となる。
【0009】
本発明の第2の態様に係る画像処理装置は、第1の態様に係る画像処理装置において特に、前記ソフトウェア処理部は、画像処理装置で処理可能な最大ピクチャサイズ及び当該最大ピクチャサイズに対応するフレームレートと、出力ピクチャの用途とに基づいて、複数の出力ピクチャの各々のピクチャサイズ及びフレームレートを設定することを特徴とするものである。
【0010】
第2の態様に係る画像処理装置によれば、ソフトウェア処理部は、画像処理装置で処理可能な最大ピクチャサイズ及び当該最大ピクチャサイズに対応するフレームレートと、出力ピクチャの用途とに基づいて、複数の出力ピクチャの各々のピクチャサイズ及びフレームレートを設定する。従って、画像処理装置の最大処理能力を有効に活用しつつ、マルチエンコードを適切に実行することが可能となる。
【0011】
本発明の第3の態様に係る画像処理装置は、第1又は第2の態様に係る画像処理装置において特に、連続する複数の垂直同期期間の各々において生成すべき出力ピクチャは、出力ピクチャのフレームレートに応じて異なり、前記ソフトウェア処理部は、複数の出力ピクチャのうち、各垂直同期期間において生成すべき出力ピクチャを特定する情報を、前記設定情報に含めて前記ハードウェア処理部に通知することを特徴とするものである。
【0012】
第3の態様に係る画像処理装置によれば、ソフトウェア処理部は、複数の出力ピクチャのうち、各垂直同期期間において生成すべき出力ピクチャを特定する情報を、設定情報に含めてハードウェア処理部に通知する。従って、ハードウェア処理部は、複数の出力ピクチャのうち各垂直同期期間において生成すべき出力ピクチャを、設定情報に基づいて適切に処理することが可能となる。
【0013】
本発明の第4の態様に係る画像処理装置は、第1〜第3のいずれか一つの態様に係る画像処理装置において特に、前記ハードウェア処理部は、入力ピクチャを符号化する符号化回路と、前記符号化回路によって符号化されたピクチャをNAL化するNAL化回路と、前記符号化回路及び前記NAL化回路を制御する制御回路と、を有し、前記ソフトウェア処理部から前記ハードウェア処理部に通知された前記設定情報は、前記NAL化回路及び前記制御回路に入力されることを特徴とするものである。
【0014】
第4の態様に係る画像処理装置によれば、ソフトウェア処理部からハードウェア処理部に通知された設定情報は、NAL化回路及び制御回路に入力される。このように、マルチエンコードを実行するにあたって必要となる設定情報をNAL化回路及び制御回路に入力することにより、ハードウェア処理部においてマルチエンコードを適切に実行することが可能となる。
【0015】
本発明の第5の態様に係る画像処理装置は、第4の態様に係る画像処理装置において特に、前記NAL化回路に入力される設定情報には、各出力ピクチャのNAL化に使用するヘッダ情報が含まれることを特徴とするものである。
【0016】
第5の態様に係る画像処理装置によれば、NAL化回路に入力される設定情報には、各出力ピクチャのNAL化に使用するヘッダ情報が含まれる。このように、各出力ピクチャのNAL化を行うにあたって必要となるヘッダ情報をNAL化回路に入力することにより、NAL化回路において各出力ピクチャのNAL化を適切に実行することが可能となる。
【0017】
本発明の第6の態様に係る画像処理装置は、第1の態様に係る画像処理装置において特に、前記ソフトウェア処理部はさらに、前記ハードウェア処理部の動作モードとして、入力ピクチャをエンコードすることにより、画像処理装置で処理可能な最大ピクチャサイズ及び当該最大ピクチャサイズに対応するフレームレートと比較して、ピクチャサイズが小さくフレームレートが高い出力ピクチャを生成するモードである高速モードを設定可能であり、前記ハードウェア処理部の動作モードが高速モードに設定された場合には、前記ソフトウェア処理部は、出力ピクチャに関する設定情報を、前記ハードウェア処理部が入力ピクチャのエンコードを開始する前に前記ハードウェア処理部に通知し、前記ハードウェア処理部は、前記ソフトウェア処理部から通知された設定情報に基づいて、出力ピクチャに関するエンコードを、ピクチャ毎の完了通知を省略して連続して実行し、指定数の出力ピクチャに関するエンコードが全て完了することにより、エンコードの完了通知を前記ソフトウェア処理部に割り込み通知することを特徴とするものである。
【0018】
第6の態様に係る画像処理装置によれば、ハードウェア処理部の動作モードが高速モードに設定された場合には、ソフトウェア処理部は、出力ピクチャに関する設定情報を、ハードウェア処理部が入力ピクチャのエンコードを開始する前にハードウェア処理部に通知し、ハードウェア処理部は、ソフトウェア処理部から通知された設定情報に基づいて、出力ピクチャに関するエンコードを、ピクチャ毎の完了通知を省略して連続して実行し、指定数の出力ピクチャに関するエンコードが全て完了することにより、エンコードの完了通知をソフトウェア処理部に割り込み通知する。その結果、ピクチャサイズが小さくフレームレートが高い出力ピクチャを生成するモードである高速モードを実行するにあたって、ソフトウェア処理部とハードウェア処理部との間で1ピクチャ毎にコマンド発行及び割り込み通知を行う場合と比較すると、ソフトウェア処理部の処理負荷を軽減できるとともに、エンコード処理の所要時間を短縮することが可能となる。
【0019】
本発明の第7の態様に係る画像処理装置は、第6の態様に係る画像処理装置において特に、前記ソフトウェア処理部は、画像処理装置で処理可能な最大ピクチャサイズ及び当該最大ピクチャサイズに対応するフレームレートと、出力ピクチャのピクチャサイズと、前記ハードウェア処理部の最大クロック周波数とに基づいて、出力ピクチャの最大フレームレートを設定することを特徴とするものである。
【0020】
第7の態様に係る画像処理装置によれば、ソフトウェア処理部は、画像処理装置で処理可能な最大ピクチャサイズ及び当該最大ピクチャサイズに対応するフレームレートと、出力ピクチャのピクチャサイズと、ハードウェア処理部の最大クロック周波数とに基づいて、出力ピクチャの最大フレームレートを設定する。従って、画像処理装置の最大処理能力を有効に活用しつつ、高速エンコードを適切に実行することが可能となる。
【0021】
本発明の第8の態様に係る画像処理装置は、第6又は第7の態様に係る画像処理装置において特に、前記ソフトウェア処理部は、連続したエンコードが実行される出力ピクチャの指定数に関する情報を、前記設定情報に含めて前記ハードウェア処理部に通知することを特徴とするものである。
【0022】
第8の態様に係る画像処理装置によれば、ソフトウェア処理部は、連続したエンコードが実行される出力ピクチャの指定数に関する情報を、設定情報に含めてハードウェア処理部に通知する。従って、ハードウェア処理部は、高速エンコードにおいて連続したエンコードによって生成すべき指定数の出力ピクチャを、設定情報に基づいて適切に処理することが可能となる。
【0023】
本発明の第9の態様に係る画像処理装置は、第6〜第8のいずれか一つの態様に係る画像処理装置において特に、前記ハードウェア処理部は、入力ピクチャを符号化する符号化回路と、前記符号化回路によって符号化されたピクチャをNAL化するNAL化回路と、前記符号化回路及び前記NAL化回路を制御する制御回路と、を有し、前記ソフトウェア処理部から前記ハードウェア処理部に通知された前記設定情報は、前記NAL化回路及び前記制御回路に入力されることを特徴とするものである。
【0024】
第9の態様に係る画像処理装置によれば、ソフトウェア処理部からハードウェア処理部に通知された設定情報は、NAL化回路及び制御回路に入力される。このように、高速エンコードを実行するにあたって必要となる設定情報をNAL化回路及び制御回路に入力することにより、ハードウェア処理部において高速エンコードを適切に実行することが可能となる。
【0025】
本発明の第10の態様に係る画像処理装置は、第9の態様に係る画像処理装置において特に、前記NAL化回路に入力される設定情報には、出力ピクチャのNAL化に使用するヘッダ情報が含まれることを特徴とするものである。
【0026】
第10の態様に係る画像処理装置によれば、NAL化回路に入力される設定情報には、出力ピクチャのNAL化に使用するヘッダ情報が含まれる。このように、出力ピクチャのNAL化を行うにあたって必要となるヘッダ情報をNAL化回路に入力することにより、NAL化回路において出力ピクチャのNAL化を適切に実行することが可能となる。
【発明の効果】
【0027】
本発明によれば、ピクチャサイズやフレームレートが異なる複数シーケンスの出力ピクチャに関するマルチエンコードを実行するにあたって、ソフトウェア処理部とハードウェア処理部との間で1ピクチャ毎にコマンド発行及び割り込み通知を行う場合と比較すると、ソフトウェア処理部の処理負荷を軽減できるとともに、エンコードの所要時間を短縮することが可能となる。
【図面の簡単な説明】
【0028】
図1】本発明の実施の形態に係るカメラシステムの全体構成を示す図である。
図2】画像処理装置の構成を簡略化して示す図である。
図3】ハードウェア処理部の構成を示す図である。
図4】通常モードにおける画像処理装置の処理フローを示すフローチャートである。
図5】通常モードにおける画像処理装置の制御シーケンスを示す図である。
図6】画像処理装置が生成する複数シーケンスの一例を示す図である。
図7】シーケンスのピクチャサイズ及びフレームレートの第1の設定例を示す図である。
図8】シーケンスのピクチャサイズ及びフレームレートの第2の設定例を示す図である。
図9】シーケンスのピクチャサイズ及びフレームレートの第3の設定例を示す図である。
図10】マルチモードにおいて、同一の所定単位期間内にエンコードされるシーケンスの関係を示す図である。
図11】通常モードで複数シーケンスを生成した場合の完了通知回数を示す図である。
図12】マルチモードにおける画像処理装置の制御シーケンスを示す図である。
図13】ピクチャサイズとフレームレートとの関係を示す図である。
図14】高速モードにおける画像処理装置の処理フローを示すフローチャートである。
図15】高速モードにおける画像処理装置の制御シーケンスを示す図である。
【発明を実施するための形態】
【0029】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0030】
図1は、本発明の実施の形態に係るカメラシステム1の全体構成を示す図である。カメラシステム1は、複数のカメラ3(3A〜3C)と、カメラ3に接続されたリアルタイムエンコーダ等の画像処理装置2と、画像処理装置2に接続されたモニタ4及びハードディスク等の記録装置5と、通信ネットワーク6を介して画像処理装置2に接続されたモニタ7とを備えて構成されている。例えば、特定の施設を警備するための監視カメラシステムの用途でカメラシステム1を利用する場合には、カメラ3は監視対象エリア内に設置され、画像処理装置2、モニタ4、及び記録装置5は施設の警備室内に設置され、モニタ7は遠隔の警備会社内に設置される。
【0031】
画像処理装置2は、カメラ3によって撮影された画像に対してH.264圧縮符号化方式でエンコードを行う。当該画像は、記録装置5に記録されるとともに、リアルタイムでモニタ4に表示される。また、当該画像は、通信ネットワーク6を介して警備会社に送信され、警備会社内のモニタ7に表示される。
【0032】
図2は、画像処理装置2の構成を簡略化して示す図である。画像処理装置2は、画像処理の処理対象であるピクチャを記憶するDDRメモリ等の記憶部13と、ピクチャに対する画像処理をソフトウェア処理によって実行するCPU等のソフトウェア処理部11と、ピクチャに対する画像処理をハードウェア処理によって実行するハードウェアアクセラレータ等のハードウェア処理部12とを備えて構成されている。記憶部13、ソフトウェア処理部11、及びハードウェア処理部12は、システムバス14を介して相互に接続されている。また、ソフトウェア処理部11及びハードウェア処理部12は、レジスタバス15を介して相互に接続されている。
【0033】
ソフトウェア処理部11は、画像のエンコードに用いる各種の情報をハードウェア処理部12に通知する。ハードウェア処理部12は、ソフトウェア処理部11からの指示により、記憶部13から画像を読み出して当該画像のエンコードを行う。そして、エンコードが完了すると、エンコードの完了通知をソフトウェア処理部11に通知する。
【0034】
図3は、ハードウェア処理部12の構成を示す図である。図3の接続関係で示すように、ハードウェア処理部12は、DMAR21と、DMAインタフェース22と、エンコード制御回路23と、動き探索回路24と、動き補償回路25と、直交変換・量子化・逆量子化回路26と、CABAC/CAVLC符号化回路等のエントロピ符号化回路27と、NAL符号化回路28と、DMAW29と、NAL復号回路30と、CABAC/CAVLC復号回路等のエントロピ復号回路31と、デブロッキングフィルタ回路等のフィルタ回路32と、デコードシーケンサ33と、デコード制御回路34と、CPUインタフェース35と、割り込み制御回路36とを備えて構成されている。
【0035】
DMAR21及びDMAW29は、システムバス14を介して記憶部13に接続されている。CPUインタフェース35及び割り込み制御回路36は、レジスタバス15を介してソフトウェア処理部11に接続されている。また、図示を省略したが、DMAR21及びDMAW29はレジスタバス15を介してソフトウェア処理部11に接続されており、CPUインタフェース35はシステムバス14を介してソフトウェア処理部11に接続されている。
【0036】
図3では簡略化のため接続関係の図示を省略したが、CPUインタフェース35は、DMAR21、DMAW29、エンコード制御回路23、NAL符号化回路28、エントロピ符号化回路27、及びデコードシーケンサ33に接続されている。また、割り込み制御回路36は、エンコード制御回路23及びデコードシーケンサ33に接続されている。また、デコードシーケンサ33は、エンコード制御回路23及び割り込み制御回路36に接続されている。また、デコード制御回路34は、NAL復号回路30、エントロピ復号回路31、動き補償回路25、直交変換・量子化・逆量子化回路26、及びフィルタ回路32に接続されており、デコード時にこれらの回路を制御する。また、エンコード制御回路23は、割り込み制御回路36、動き探索回路24、動き補償回路25、直交変換・量子化・逆量子化回路26、フィルタ回路32、NAL符号化回路28、及びエントロピ符号化回路27に接続されており、エンコード時にこれらの回路を制御する。
【0037】
エンコード時には、処理対象の画像データが、DMAR21、DMAインタフェース22、エンコード制御回路23、動き探索回路24、動き補償回路25、直交変換・量子化・逆量子化回路26、エントロピ符号化回路27、NAL符号化回路28、及びDMAW29を経由することによって、パイプライン処理による画像のエンコードが行われる。
【0038】
デコード時には、処理対象の画像データが、DMAR21、NAL復号回路30、エントロピ復号回路31、直交変換・量子化・逆量子化回路26、動き補償回路25、フィルタ回路32、DMAインタフェース22、及びDMAW29を経由することによって、パイプライン処理による画像のデコードが行われる。
【0039】
本実施の形態に係る画像処理装置2では、ソフトウェア処理部11による設定によって、ハードウェア処理部12(特にNAL符号化回路28)の符号化動作モードとして、通常モード、マルチモード、及び高速モードの3つの動作モードを任意に切り替えることが可能である。
【0040】
通常モードは、ソフトウェア処理部11からの1回の指示でハードウェア処理部12が1ピクチャのエンコードを行い、1ピクチャのエンコードが完了する毎に、ハードウェア処理部12からソフトウェア処理部11にエンコードの完了通知が通知される動作モードである。
【0041】
マルチモードは、ソフトウェア処理部11からの1回の指示で、ハードウェア処理部12がピクチャサイズやフレームレートが異なる複数シーケンスの複数ピクチャのエンコードを行い、当該複数ピクチャのエンコードが全て完了すると、ハードウェア処理部12からソフトウェア処理部11にエンコードの完了通知が通知される動作モードである。
【0042】
高速モードは、ソフトウェア処理部11からの1回の指示で、ハードウェア処理部12が通常モードより高いフレームレートで1シーケンスの複数ピクチャのエンコードを行い、当該複数ピクチャのエンコードが全て完了すると、ハードウェア処理部12からソフトウェア処理部11にエンコードの完了通知が通知される動作モードである。
【0043】
以下、各動作モードについて順に説明する。
【0044】
<通常モード>
図4は、通常モードにおける画像処理装置2の処理フローを示すフローチャートである。
【0045】
まずステップP01においてソフトウェア処理部11は、ハードウェア処理部12の外部の回路に関する設定を行う。例えば、図示しないDMAコントローラに関連する初期設定や、割り込み及びクロック制御に関する初期設定を行う。
【0046】
次にステップP02においてソフトウェア処理部11は、ハードウェア処理部12に対してストリームバッファの初期設定を行う。例えば、NAL符号化回路28内のストリームバッファの動作モードとして、リングバッファモード及びリニアバッファモードの一方を設定する。
【0047】
次にステップP03においてソフトウェア処理部11は、ハードウェア処理部12に対してシーケンスパラメータの設定を行う。例えば、ピクチャサイズ、レート制御関連パラメータ、量子化マトリクス、エントロピ符号化モード、及びNALヘッダ情報に関する設定を行う。
【0048】
次にステップP04においてソフトウェア処理部11は、今回の処理対象のピクチャが、処理すべき最後のピクチャであるか否かを判定する。
【0049】
最後のピクチャでない場合、次にステップP05においてソフトウェア処理部11は、ハードウェア処理部12に対して画像バッファの設定を行う。例えば、キャプチャ画像バッファ、ローカルデコード画像バッファ、及び参照画像バッファに関する設定を行う。
【0050】
次にステップP06においてソフトウェア処理部11は、ハードウェア処理部12への入力ピクチャとなるキャプチャ画像を、記憶部13内に準備する。
【0051】
次にステップP07においてソフトウェア処理部11は、ハードウェア処理部12に対してピクチャパラメータの設定を行う。例えば、ピクチャの基本情報、デブロッキングフィルタ関連、動き探索関連、及びエントロピ符号化関連の設定を行う。
【0052】
次にステップP08においてソフトウェア処理部11は、記憶部13からハードウェア処理部12へのキャプチャ画像及び参照画像の転送の開始を指示する。
【0053】
次にステップP09においてソフトウェア処理部11は、ハードウェア処理部12に対して、次のピクチャのエンコードで使用する量子化マトリクスに関する設定を行う。
【0054】
次にステップP10においてソフトウェア処理部11は、ハードウェア処理部12に対してマクロブロック処理の開始を指示する。
【0055】
次にステップP11においてソフトウェア処理部11は、ハードウェア処理部12に対して、NAL化に必要なヘッダ情報のパラメータ設定を行う。例えば、ヘッダデータの有効ビット長、及びヘッダの開始バイト位置に関する設定を行う。ハードウェア処理部12を通常モードで動作させる場合には、1ピクチャのエンコードで使用するヘッダ情報を設定する。
【0056】
次にステップP12においてソフトウェア処理部11は、ハードウェア処理部12に対してヘッダ情報のNAL化の開始を指示する。
【0057】
次にステップP13,P14においてソフトウェア処理部11は、エンコードの完了通知がハードウェア処理部12から送られてくるまで待機する。エンコードの完了通知は、割り込み通知としてハードウェア処理部12からソフトウェア処理部11に入力される。
【0058】
完了通知を受領すると、次にステップP15においてソフトウェア処理部11は、NALエラーの解析を行う。例えば、ストリームバッファのバッファフルエラーの発生の有無を解析する。
【0059】
NALエラーが発生している場合、次にステップP24においてソフトウェア処理部11は、所定のエラー処理によってエンコードを終了する。あるいは、バッファサイズを拡大してステップP04以降の処理をやり直しても良い。
【0060】
NALエラーが発生していない場合、次にステップP16においてソフトウェア処理部11は、cabac_zero_word(CZW)及び/又はフィラーデータの挿入の要否を判定する。例えば、その時点でのストリームの発生符号量に関する情報をハードウェア処理部12から取得することにより、当該発生符号量に基づいてCZW及び/又はフィラーデータの挿入の要否を判定する。
【0061】
CZW及び/又はフィラーデータの挿入が必要である場合、次にステップP17においてソフトウェア処理部11は、ハードウェア処理部12に対して、NAL化に必要なCZW及び/又はフィラーデータのパラメータ設定を行う。例えば、挿入するCZW及び/又はフィラーデータのサイズを設定する。
【0062】
次にステップP18においてソフトウェア処理部11は、ハードウェア処理部12に対して、CZW及び/又はフィラーデータのNAL化の開始を指示する。
【0063】
次にステップP19,P20においてソフトウェア処理部11は、エンコードの完了通知がハードウェア処理部12から送られてくるまで待機する。エンコードの完了通知は、割り込み通知としてハードウェア処理部12からソフトウェア処理部11に入力される。
【0064】
完了通知を受領すると、次にステップP21においてソフトウェア処理部11は、NALエラーの解析を行う。例えば、ストリームバッファのバッファフルエラーの発生の有無を解析する。
【0065】
NALエラーが発生している場合、次にステップP24においてソフトウェア処理部11は、所定のエラー処理によってエンコードを終了する。あるいは、バッファサイズを拡大してステップP04以降の処理をやり直しても良い。
【0066】
NALエラーが発生していない場合、次にステップP22においてソフトウェア処理部11は、エンコードの完了後にハードウェア処理部12から記憶部13に書き込まれたNAL化ストリームを、記憶部13から出力する。
【0067】
次にステップP23においてソフトウェア処理部11は、エンコードピクチャ用のカウンタ値を1だけインクリメントした後、ステップP04の判定を行う。これにより、予め設定された所定数のピクチャのエンコードが完了するまで、上記の処理が繰り返される。そして、最後のピクチャのエンコードが完了すると、処理が終了する。
【0068】
図5は、通常モードにおける画像処理装置2の制御シーケンスを示す図である。
【0069】
まずソフトウェア処理部11は、各種レジスタの設定情報を初期化するためのリセット信号S01を、エンコード制御回路23に入力する。
【0070】
次にNAL符号化回路28は、ウエイト設定信号S02をエントロピ符号化回路27に入力する。
【0071】
次にソフトウェア処理部11は、上記ステップP03,P05,P07で述べた設定情報等を含む初期設定信号S03を、エンコード制御回路23に入力する。
【0072】
次にソフトウェア処理部11は、上記ステップP02で述べたストリームバッファの初期設定信号S04を、NAL符号化回路28に入力する。
【0073】
次にソフトウェア処理部11は、上記ステップP08で述べた記憶部13からハードウェア処理部12への画像転送を開始させるコマンドS05を、エンコード制御回路23に入力する。
【0074】
次にソフトウェア処理部11は、上記ステップP09で述べた量子化マトリクスの設定信号S06を、エンコード制御回路23に入力する。
【0075】
次にソフトウェア処理部11は、上記ステップP10で述べたマクロブロック処理を開始させるコマンドS07を、エンコード制御回路23に入力する。
【0076】
次にエンコード制御回路23は、マクロブロックのエントロピ符号化を開始させる信号S08を、エントロピ符号化回路27に入力する。これにより、エントロピ符号化回路27は、当該マクロブロックのエントロピ符号化を開始する。
【0077】
次にソフトウェア処理部11は、上記ステップP11で述べたヘッダ情報の設定信号S09を、NAL符号化回路28に入力する。
【0078】
次にソフトウェア処理部11は、上記ステップP12で述べたヘッダ情報のNAL化を開始させるコマンドS10を、NAL符号化回路28に入力する。
【0079】
次にNAL符号化回路28は、NAL符号化回路28のクロック開始信号S11を、エンコード制御回路23に入力する。これにより、上記ステップP12で述べたNAL符号化回路28によるNAL化処理が開始される。
【0080】
ヘッダ情報のNAL化が完了すると、次にNAL符号化回路28は、ヘッダ情報のNAL化完了信号S12を、ソフトウェア処理部11に入力する。また、NAL符号化回路28は、ウエイト解除信号S13をエントロピ符号化回路27に入力する。これにより、エントロピ符号化回路27からNAL符号化回路28にマクロブロックのデータが入力され、NAL符号化回路28は当該マクロブロックのデータに関してNAL化を行う。
【0081】
次にエントロピ符号化回路27は、マクロブロックのエントロピ符号化の完了信号S14を、エンコード制御回路23に入力する。
【0082】
次にエンコード制御回路23は、次のマクロブロックのエントロピ符号化を開始させる信号S15を、エントロピ符号化回路27に入力する。当該マクロブロックのエントロピ符号化が完了すると、次にエントロピ符号化回路27は、マクロブロックのエントロピ符号化の完了信号S16をエンコード制御回路23に入力する。図中のループL02で示すように、エンコード制御回路23は、ピクチャ内の全てのマクロブロックに関するエントロピ符号化が完了するまで、同様の処理を繰り返す。
【0083】
次にエンコード制御回路23は、最後のマクロブロックのエントロピ符号化を開始させる信号S17を、エントロピ符号化回路27に入力する。当該マクロブロックのエントロピ符号化が完了すると、次にエントロピ符号化回路27は、マクロブロックのエントロピ符号化の完了信号S18をエンコード制御回路23に入力する。また、エントロピ符号化回路27は、ピクチャ内の最後のマクロブロックであることを示す信号S19を、NAL符号化回路28に入力する。
【0084】
次にNAL符号化回路28は、最後のマクロブロックのスライスデータに関するNAL化が完了すると、NAL符号化回路28のクロック停止信号S20を、エンコード制御回路23に入力する。また、NAL符号化回路28は、ウエイト設定信号S21をエントロピ符号化回路27に入力する。
【0085】
次にNAL符号化回路28は、1ピクチャ分のスライスデータのNAL化が完了したことを示すNAL化完了信号S22を、エンコード制御回路23に入力する。
【0086】
次にエンコード制御回路23は、上記ステップP13で述べたエンコードの完了通知S23を、ソフトウェア処理部11に入力する。
【0087】
上記ステップP16〜P21で述べたようにCZW及び/又はフィラーデータの挿入が必要である場合には、次にソフトウェア処理部11は、上記ステップP18で述べたCZW及び/又はフィラーデータのNAL化を開始させるコマンドS24を、NAL符号化回路28に入力する。
【0088】
次にNAL符号化回路28は、NAL符号化回路28のクロック開始信号S25を、エンコード制御回路23に入力する。これにより、上記ステップP18で述べたNAL符号化回路28によるNAL化処理が開始される。
【0089】
CZW及び/又はフィラーデータのNAL化が完了すると、次にNAL符号化回路28は、CZW及び/又はフィラーデータのNAL化完了信号S26を、ソフトウェア処理部11に入力する。
【0090】
次にNAL符号化回路28は、NAL符号化回路28のクロック停止信号S27を、エンコード制御回路23に入力する。
【0091】
図中のループL01で示すように、処理対象である全てのピクチャに関するNAL化が完了するまで、上記と同様の処理が繰り返し実行される。
【0092】
<マルチモード>
図1を参照して、画像処理装置2から出力された画像は、記録装置5への記録やモニタ4,7への表示等の様々な用途に利用される。そこでマルチモードでは、カメラ3によって撮影された画像(つまり画像処理装置2への入力ピクチャ)を画像処理装置2が同一時間で並行にリアルタイムエンコードすることにより、用途に応じてピクチャサイズやフレームレートが異なる複数のシーケンス(つまり画像処理装置2からの出力ピクチャ)を画像処理装置2から出力する。
【0093】
本実施の形態の例において、画像処理装置2は、最大処理能力(最大演算能力)としてピクチャサイズが1920×1080でフレームレートが103fpsの画像を処理可能であるものとする。この場合、画像処理装置2は1秒あたり840480個のマクロブロックを処理可能である。画像処理装置2は、この最大処理能力を複数シーケンスの生成に分配することによって、複数シーケンスのリアルタイムエンコードを実現する。
【0094】
図6は、画像処理装置2が生成する複数シーケンスの一例を示す図である。ピクチャサイズが1920×1080でフレームレートが103fpsの最大処理能力を分配することにより、画像処理装置2は、記録装置5への記録用途として、ピクチャサイズが1920×1080でフレームレートが30fps、ピクチャサイズが640×480でフレームレートが30fps、及びピクチャサイズが320×240でフレームレートが30fpsの3個のシーケンスと、高レートでの配信用途(例えばモニタ4への表示用途)として、ピクチャサイズが1920×1080でフレームレートが30fps、ピクチャサイズが640×480でフレームレートが30fps、及びピクチャサイズが320×240でフレームレートが30fpsの3個のシーケンスと、低レートでの配信用途(例えばモニタ7への表示用途)として、ピクチャサイズが1920×1080でフレームレートが10fps、ピクチャサイズが640×480でフレームレートが10fps、及びピクチャサイズが320×240でフレームレートが10fpsの3個のシーケンスとの、合計9個のシーケンスを生成することが可能である。
【0095】
各シーケンスのピクチャサイズ及びフレームレートは、ソフトウェア処理部11によって設定される。ソフトウェア処理部11は、画像処理装置2の最大処理能力と、ユーザによって指定されたシーケンスの用途とに基づいて、複数シーケンスに分配された処理能力の合計が画像処理装置2の最大処理能力以下となるように、各シーケンスのピクチャサイズ及びフレームレートを設定する。
【0096】
図7は、シーケンスのピクチャサイズ及びフレームレートの第1の設定例を示す図である。記録装置5への記録用途として、ピクチャサイズが1920×1080、640×360、320×180でフレームレートがいずれも30fpsの3個のシーケンスSEQ00〜SEQ02と、高レートでの配信用途として、ピクチャサイズが1920×1080、640×360、320×180でフレームレートがいずれも15fpsの3個のシーケンスSEQ10〜SEQ12と、低レートでの配信用途として、ピクチャサイズが1920×1080、640×360、320×180でフレームレートがいずれも10fpsの3個のシーケンスSEQ20〜SEQ22とが設定されている。
【0097】
図8は、シーケンスのピクチャサイズ及びフレームレートの第2の設定例を示す図である。記録装置5への記録用途として、ピクチャサイズが1920×1080、640×360、320×180でフレームレートがいずれも30fpsの3個のシーケンスSEQ00〜SEQ02と、高レートでの配信用途として、ピクチャサイズが1920×1080、320×180、320×180でフレームレートがいずれも30fpsの3個のシーケンスSEQ10〜SEQ12と、低レートでの配信用途として、ピクチャサイズが1920×1080、640×360、320×180でフレームレートがいずれも10fpsの3個のシーケンスSEQ20〜SEQ22とが設定されている。
【0098】
図9は、シーケンスのピクチャサイズ及びフレームレートの第3の設定例を示す図である。記録装置5への記録用途として、ピクチャサイズが1920×1080、640×360、320×180でフレームレートがいずれも30fpsの3個のシーケンスSEQ00〜SEQ02と、高レートでの配信用途として、ピクチャサイズが1280×720、320×180、320×180でフレームレートがいずれも30fpsの3個のシーケンスSEQ10〜SEQ12と、低レートでの配信用途として、ピクチャサイズが1280×720、640×360、320×180でフレームレートがいずれも30fpsの3個のシーケンスSEQ20〜SEQ22とが設定されている。
【0099】
このようにマルチモードでは、画像処理装置2の最大処理能力を分配することによって、複数シーケンスSEQ00〜SEQ02,SEQ10〜SEQ12,SEQ20〜SEQ22を生成するためのエンコードが並行して行われる。
【0100】
図10は、マルチモードにおいて、同一の所定単位期間内にエンコードされるシーケンスの関係を示す図である。所定単位期間は、マルチエンコードで扱う複数シーケンスのうち最高フレームレートのシーケンスに関する、ピクチャ毎のエンコード間隔(垂直同期期間)である。ここでは図7に示した第1の設定例が採用された場合を想定しており、最高フレームレートが30fpsであるため、垂直同期期間V1〜V9は33msである。
【0101】
シーケンスSEQ00〜SEQ02はフレームレートが30fpsであるため、垂直同期期間V1〜V9の全てにおいてエンコードが行われる。シーケンスSEQ10〜SEQ12はフレームレートが15fpsであるため、垂直同期期間V1,V3,V5,V7,V9においてエンコードが行われる。シーケンスSEQ20〜SEQ22はフレームレートが10fpsであるため、垂直同期期間V1,V4,V7においてエンコードが行われる。その結果、垂直同期期間V1では9個、垂直同期期間V2では3個、垂直同期期間V3では6個、垂直同期期間V4では6個、垂直同期期間V5では6個、垂直同期期間V6では3個、垂直同期期間V7では9個、垂直同期期間V8では3個、垂直同期期間V9では6個のピクチャのエンコードが行われる。
【0102】
上述の通常モードによると、1ピクチャの処理が完了する度に、ソフトウェア処理部11からハードウェア処理部12へのコマンドS05,S07,S10、及び、ハードウェア処理部12からソフトウェア処理部11へのエンコードの完了通知S23が発生する。従って、各垂直同期期間V1〜V9において、エンコードするピクチャ数に等しい数のコマンドS05,S07,S10及び完了通知S23がそれぞれ発生する。そこでマルチモードでは、各垂直同期期間V1〜V9においてはハードウェア処理部12内で複数のピクチャを連続して処理し、ピクチャ毎のコマンドS05,S07,S10及び完了通知S23を省略する。これにより、図10に示すように各垂直同期期間V1〜V9における完了通知S23の回数はいずれも1回となり、割り込み通知の発生回数を抑制することができる。
【0103】
図11は、図10との比較のために、通常モードで複数シーケンスを生成した場合の完了通知回数を示す図である。通常モードによると、垂直同期期間V1では9回、垂直同期期間V2では3回、垂直同期期間V3では6回、垂直同期期間V4では6回、垂直同期期間V5では6回、垂直同期期間V6では3回、垂直同期期間V7では9回、垂直同期期間V8では3回、垂直同期期間V9では6回の完了通知S23が発生する。
【0104】
図12は、マルチモードにおける画像処理装置2の制御シーケンスを示す図である。
【0105】
まずソフトウェア処理部11は、各種レジスタの設定情報を初期化するためのリセット信号S01を、エンコード制御回路23に入力する。
【0106】
次にNAL符号化回路28は、ウエイト設定信号S02をエントロピ符号化回路27に入力する。
【0107】
次にソフトウェア処理部11は、上記ステップP03,P05,P07で述べた設定情報等を含む初期設定信号S03を、エンコード制御回路23に入力する。マルチモードでは、各垂直同期期間においてエンコードする複数のシーケンスを特定するための情報が、初期設定信号S03に含まれる。また、マルチモードでは、NAL符号化回路28内のストリームバッファの動作モードとして、リニアバッファモードが設定される。
【0108】
次にソフトウェア処理部11は、上記ステップP02で述べたストリームバッファの初期設定信号S04を、NAL符号化回路28に入力する。
【0109】
次にソフトウェア処理部11は、上記ステップP08で述べた記憶部13からハードウェア処理部12への画像転送を開始させるコマンドS05を、エンコード制御回路23に入力する。マルチモードでは、各垂直同期間においてエンコードする全てのキャプチャ画像が、記憶部13内に準備されている。
【0110】
次にソフトウェア処理部11は、上記ステップP09で述べた量子化マトリクスの設定信号S06を、エンコード制御回路23に入力する。
【0111】
次にソフトウェア処理部11は、NAL符号化回路28がマルチモードとして動作すべきことを指示する設定信号S30を、NAL符号化回路28に入力する。
【0112】
次にソフトウェア処理部11は、上記ステップP10で述べたマクロブロック処理を開始させるコマンドS07を、エンコード制御回路23に入力する。
【0113】
次にエンコード制御回路23は、マクロブロックのエントロピ符号化を開始させる信号S08を、エントロピ符号化回路27に入力する。これにより、エントロピ符号化回路27は、当該マクロブロックのエントロピ符号化を開始する。
【0114】
次にソフトウェア処理部11は、上記ステップP11で述べたヘッダ情報の設定信号S09を、NAL符号化回路28に入力する。マルチモードでは、各垂直同期間においてエンコードする全てのピクチャに関するヘッダ情報が、一括してNAL符号化回路28に入力される。
【0115】
次にソフトウェア処理部11は、上記ステップP12で述べたヘッダ情報のNAL化を開始させるコマンドS10を、NAL符号化回路28に入力する。
【0116】
次にNAL符号化回路28は、NAL符号化回路28のクロック開始信号S11を、エンコード制御回路23に入力する。これにより、上記ステップP12で述べたNAL符号化回路28によるNAL化処理が開始される。
【0117】
ヘッダ情報のNAL化が完了すると、次にNAL符号化回路28は、ヘッダ情報のNAL化完了信号S12を、ソフトウェア処理部11に入力する。マルチモードでは、各垂直同期間においてエンコードする最後のピクチャに関するヘッダ情報のNAL化が完了した場合にのみ、NAL化完了信号S12がソフトウェア処理部11に入力される。
【0118】
また、NAL符号化回路28は、ウエイト解除信号S13をエントロピ符号化回路27に入力する。これにより、エントロピ符号化回路27からNAL符号化回路28にマクロブロックのデータが入力され、NAL符号化回路28は当該マクロブロックのデータに関してNAL化を行う。
【0119】
次にエントロピ符号化回路27は、マクロブロックのエントロピ符号化の完了信号S14を、エンコード制御回路23に入力する。
【0120】
次にエンコード制御回路23は、次のマクロブロックのエントロピ符号化を開始させる信号S15を、エントロピ符号化回路27に入力する。当該マクロブロックのエントロピ符号化が完了すると、次にエントロピ符号化回路27は、マクロブロックのエントロピ符号化の完了信号S16をエンコード制御回路23に入力する。図中のループL02で示すように、エンコード制御回路23は、ピクチャ内の全てのマクロブロックに関するエントロピ符号化が完了するまで、同様の処理を繰り返す。
【0121】
次にエンコード制御回路23は、最後のマクロブロックのエントロピ符号化を開始させる信号S17を、エントロピ符号化回路27に入力する。当該マクロブロックのエントロピ符号化が完了すると、次にエントロピ符号化回路27は、マクロブロックのエントロピ符号化の完了信号S18をエンコード制御回路23に入力する。また、エントロピ符号化回路27は、ピクチャ内の最後のマクロブロックであることを示す信号S19を、NAL符号化回路28に入力する。
【0122】
次にNAL符号化回路28は、最後のマクロブロックのスライスデータに関するNAL化が完了すると、NAL符号化回路28のクロック停止信号S20を、エンコード制御回路23に入力する。マルチモードでは、各垂直同期間においてエンコードする最後のピクチャに関するスライスデータのNAL化が完了した場合にのみ、クロック停止信号S20がソフトウェア処理部11に入力される。
【0123】
また、NAL符号化回路28は、ウエイト設定信号S21をエントロピ符号化回路27に入力する。
【0124】
また、NAL符号化回路28は、1ピクチャ分のスライスデータのNAL化が完了したことを示すNAL化完了信号S22を、エンコード制御回路23に入力する。
【0125】
次にエンコード制御回路23は、次のピクチャのエントロピ符号化を開始し、当該ピクチャのスライスデータのNAL化が完了すると、NAL化完了信号S22がNAL符号化回路28からエンコード制御回路23に再び入力される。図中のループL03で示すように、エンコード制御回路23は、各垂直同期間においてエンコードする全てのピクチャに関するスライスデータのNAL化が完了するまで、同様の処理を繰り返す。
【0126】
次にエンコード制御回路23は、上記ステップP13で述べたエンコードの完了通知S23を、ソフトウェア処理部11に入力する。
【0127】
上記ステップP16〜P21で述べたようにCZW及び/又はフィラーデータの挿入が必要である場合には、次にソフトウェア処理部11は、上記ステップP18で述べたCZW及び/又はフィラーデータのNAL化を開始させるコマンドS24を、NAL符号化回路28に入力する。
【0128】
次にNAL符号化回路28は、NAL符号化回路28のクロック開始信号S25を、エンコード制御回路23に入力する。これにより、上記ステップP18で述べたNAL符号化回路28によるNAL化処理が開始される。
【0129】
CZW及び/又はフィラーデータのNAL化が完了すると、次にNAL符号化回路28は、CZW及び/又はフィラーデータのNAL化完了信号S26を、ソフトウェア処理部11に入力する。図中のループL04で示すように、NAL符号化回路28は、各垂直同期間においてエンコードする全てのピクチャに関するCZW及び/又はフィラーデータのNAL化が完了するまで、同様の処理を繰り返す。
【0130】
次にNAL符号化回路28は、NAL符号化回路28のクロック停止信号S27を、エンコード制御回路23に入力する。マルチモードでは、各垂直同期間においてエンコードする最後のピクチャに関するCZW及び/又はフィラーデータのNAL化が完了した場合にのみ、クロック停止信号S27がソフトウェア処理部11に入力される。
【0131】
なお、図12の例では、各垂直同期間においてエンコードする全てのピクチャに関するスライスデータのNAL化が完了した後に、当該全てのピクチャに関するCZW及び/又はフィラーデータをまとめてNAL化する例について述べた。この例に限らず、各垂直同期間においてエンコードする各ピクチャに関するスライスデータのNAL化が完了した後に、当該ピクチャに関するCZW及び/又はフィラーデータをNAL化することもできる。
【0132】
図中のループL01で示すように、処理対象である全てのピクチャに関するNAL化が完了するまで、上記と同様の処理が繰り返し実行される。
【0133】
このように、ハードウェア処理部12の動作モードがマルチモードに設定された場合には、ソフトウェア処理部11は、複数の出力ピクチャに関する複数の設定情報(各垂直同期間においてエンコードする全てのピクチャに関するヘッダ情報等)を、ハードウェア処理部12が入力ピクチャのエンコードを開始する前にハードウェア処理部12に一括して通知する。また、ハードウェア処理部12は、ソフトウェア処理部11から通知された複数の設定情報に基づいて、複数の出力ピクチャに関するエンコードを、ピクチャ毎の完了通知を省略して連続して実行する。そして、複数の出力ピクチャに関するエンコードが全て完了することにより、エンコードの完了通知S23をソフトウェア処理部11に割り込み通知する。その結果、ピクチャサイズやフレームレートが異なる複数シーケンスの出力ピクチャに関するマルチエンコードを実行するにあたって、ソフトウェア処理部11とハードウェア処理部12との間で1ピクチャ毎にコマンド発行及び割り込み通知を行う場合と比較すると、ソフトウェア処理部11の処理負荷を軽減できるとともに、エンコード処理の所要時間を短縮することが可能となる。
【0134】
また、ソフトウェア処理部11は、画像処理装置2で処理可能な最大ピクチャサイズ及び当該最大ピクチャサイズに対応するフレームレートと、出力ピクチャの用途とに基づいて、複数の出力ピクチャの各々のピクチャサイズ及びフレームレートを設定する。従って、画像処理装置2の最大処理能力を有効に活用しつつ、マルチエンコードを適切に実行することが可能となる。
【0135】
また、ソフトウェア処理部11は、複数の出力ピクチャのうち、各所定単位期間において生成すべき出力ピクチャを特定する情報を、初期設定信号S03(設定情報)に含めてハードウェア処理部12に通知する。従って、ハードウェア処理部12は、複数の出力ピクチャのうち各所定単位期間において生成すべき出力ピクチャを、初期設定信号S03に基づいて適切に処理することが可能となる。
【0136】
また、ソフトウェア処理部11からハードウェア処理部12に通知された設定情報は、NAL符号化回路28(NAL化回路)及びエンコード制御回路23(制御回路)に入力される。このように、マルチエンコードを実行するにあたって必要となる設定情報をNAL符号化回路28及びエンコード制御回路23に入力することにより、ハードウェア処理部12においてマルチエンコードを適切に実行することが可能となる。
【0137】
<高速モード>
上記と同様に、画像処理装置2は、最大処理能力としてピクチャサイズが1920×1080でフレームレートが103fpsの画像を処理可能であるものとする。また、1マクロブロックのエンコードに必要な処理クロック数が330サイクルであるものとする。この場合、ピクチャサイズが1920×1080でフレームレートが103fpsの画像を処理するのに必要なハードウェア処理部12のクロック周波数は、278MHzである。
【0138】
そこで高速モードでは、ハードウェア処理部12のクロック周波数の上限値を278MHzとして、ピクチャサイズを1920×1080よりも下げることにより、103fpsより高いフレームレートの画像を扱えるようにする。
【0139】
図13は、ピクチャサイズとフレームレートとの関係を示す図である。例えば、ピクチャサイズが640×480でフレームレートが160fpsの画像を処理するのに必要なクロック周波数は、上限値278MHz以下の63.4MHzであるため、画像処理装置2の処理能力の範囲内で当該画像を処理することが可能である。クロック周波数の値に代えて×印を記した項目は、クロック周波数が上限値278MHzを超える領域に相当する。
【0140】
図13によると、ピクチャサイズが1920×1080であれば最大フレームレートは103fpsであり、ピクチャサイズが854×480であれば最大フレームレートは400fpsであり、ピクチャサイズが640×480であれば最大フレームレートは400fpsであり、ピクチャサイズが640×360であれば最大フレームレートは800fpsであり、ピクチャサイズが352×288であれば最大フレームレートは1500fpsであり、ピクチャサイズが320×240であれば最大フレームレートは1500fpsであり、ピクチャサイズが320×180であれば最大フレームレートは3000fpsであり、ピクチャサイズが176×144であれば最大フレームレートは6000fpsであり、ピクチャサイズが160×128であれば最大フレームレートは8000fpsであることが分かる。
【0141】
各ピクチャサイズに対する最大フレームレートは、ソフトウェア処理部11によって設定される。ソフトウェア処理部11は、画像処理装置2で処理可能な最大ピクチャサイズ(1920×1080)及び当該最大ピクチャサイズに対応するフレームレート(103fps)と、出力ピクチャのピクチャサイズと、ハードウェア処理部12のクロック周波数の上限値(278MHz)とに基づいて、出力ピクチャの最大フレームレートを設定する。
【0142】
上述の通常モードによると、1ピクチャの処理が完了する度に、ソフトウェア処理部11からハードウェア処理部12へのコマンドS05,S07,S10、及び、ハードウェア処理部12からソフトウェア処理部11へのエンコードの完了通知S23が発生する。従って、高フレームレートの画像を扱う場合には、フレームレートに比例してコマンドS05,S07,S10及び完了通知S23の発生回数が増加する。そこで高速モードでは、指定数(例えばGOP15の場合は255個、GOP30の場合は240個)のピクチャを連続して処理し、これら指定数のピクチャ内では、ピクチャ毎のコマンドS05,S07,S10及び完了通知S23を省略する。これにより、割り込み通知の発生回数を抑制することができる。
【0143】
図14は、高速モードにおける画像処理装置2の処理フローを示すフローチャートである。図4に示した通常モードとの相違点は、処理負荷を軽減するためにステップP16〜P21のCZW及び/又はフィラーデータの挿入処理を省略したことである。その他については図4と同様であるため、重複した説明は省略する。
【0144】
図15は、高速モードにおける画像処理装置2の制御シーケンスを示す図である。
【0145】
まずソフトウェア処理部11は、各種レジスタの設定情報を初期化するためのリセット信号S01を、エンコード制御回路23に入力する。
【0146】
次にNAL符号化回路28は、ウエイト設定信号S02をエントロピ符号化回路27に入力する。
【0147】
次にソフトウェア処理部11は、上記ステップP03,P05,P07で述べた設定情報等を含む初期設定信号S03を、エンコード制御回路23に入力する。高速モードでは、連続エンコードを行う指定数に関する情報が、初期設定信号S03に含まれる。
【0148】
次にソフトウェア処理部11は、上記ステップP02で述べたストリームバッファの初期設定信号S04を、NAL符号化回路28に入力する。
【0149】
次にソフトウェア処理部11は、上記ステップP08で述べた記憶部13からハードウェア処理部12への画像転送を開始させるコマンドS05を、エンコード制御回路23に入力する。高速モードでは、連続エンコードする指定数の全てのキャプチャ画像が、記憶部13内に準備されている。
【0150】
次にソフトウェア処理部11は、上記ステップP09で述べた量子化マトリクスの設定信号S06を、エンコード制御回路23に入力する。
【0151】
次にソフトウェア処理部11は、NAL符号化回路28が高速モードとして動作すべきことを指示する設定信号S40を、NAL符号化回路28に入力する。
【0152】
次にソフトウェア処理部11は、上記ステップP10で述べたマクロブロック処理を開始させるコマンドS07を、エンコード制御回路23に入力する。
【0153】
次にエンコード制御回路23は、マクロブロックのエントロピ符号化を開始させる信号S08を、エントロピ符号化回路27に入力する。これにより、エントロピ符号化回路27は、当該マクロブロックのエントロピ符号化を開始する。
【0154】
次にソフトウェア処理部11は、上記ステップP11で述べたヘッダ情報の設定信号S09を、NAL符号化回路28に入力する。高速モードでは、連続エンコードする指定数の全てのピクチャに関するヘッダ情報が、一括してNAL符号化回路28に入力される。
【0155】
次にソフトウェア処理部11は、上記ステップP12で述べたヘッダ情報のNAL化を開始させるコマンドS10を、NAL符号化回路28に入力する。
【0156】
次にNAL符号化回路28は、NAL符号化回路28のクロック開始信号S11を、エンコード制御回路23に入力する。これにより、上記ステップP12で述べたNAL符号化回路28によるNAL化処理が開始される。
【0157】
ヘッダ情報のNAL化が完了すると、次にNAL符号化回路28は、ヘッダ情報のNAL化完了信号S12を、ソフトウェア処理部11に入力する。高速モードでは、連続エンコードする指定数の全てのピクチャに関するヘッダ情報のNAL化が完了した場合にのみ、NAL化完了信号S12がソフトウェア処理部11に入力される。
【0158】
また、NAL符号化回路28は、ウエイト解除信号S13をエントロピ符号化回路27に入力する。これにより、エントロピ符号化回路27からNAL符号化回路28にマクロブロックのデータが入力され、NAL符号化回路28は当該マクロブロックのデータに関してNAL化を行う。
【0159】
次にエントロピ符号化回路27は、マクロブロックのエントロピ符号化の完了信号S14を、エンコード制御回路23に入力する。
【0160】
次にエンコード制御回路23は、次のマクロブロックのエントロピ符号化を開始させる信号S15を、エントロピ符号化回路27に入力する。当該マクロブロックのエントロピ符号化が完了すると、次にエントロピ符号化回路27は、マクロブロックのエントロピ符号化の完了信号S16をエンコード制御回路23に入力する。図中のループL02で示すように、エンコード制御回路23は、ピクチャ内の全てのマクロブロックに関するエントロピ符号化が完了するまで、同様の処理を繰り返す。
【0161】
次にエンコード制御回路23は、最後のマクロブロックのエントロピ符号化を開始させる信号S17を、エントロピ符号化回路27に入力する。当該マクロブロックのエントロピ符号化が完了すると、次にエントロピ符号化回路27は、マクロブロックのエントロピ符号化の完了信号S18をエンコード制御回路23に入力する。また、エントロピ符号化回路27は、ピクチャ内の最後のマクロブロックであることを示す信号S19を、NAL符号化回路28に入力する。
【0162】
次にNAL符号化回路28は、最後のマクロブロックのスライスデータに関するNAL化が完了すると、NAL符号化回路28のクロック停止信号S20を、エンコード制御回路23に入力する。高速モードでは、連続エンコードする最後のピクチャに関するスライスデータのNAL化が完了した場合にのみ、クロック停止信号S20がソフトウェア処理部11に入力される。
【0163】
また、NAL符号化回路28は、ウエイト設定信号S21をエントロピ符号化回路27に入力する。
【0164】
また、NAL符号化回路28は、1ピクチャ分のスライスデータのNAL化が完了したことを示すNAL化完了信号S22を、エンコード制御回路23に入力する。
【0165】
次にエンコード制御回路23は、次のピクチャのエントロピ符号化を開始し、当該ピクチャのスライスデータのNAL化が完了すると、NAL化完了信号S22がNAL符号化回路28からエンコード制御回路23に再び入力される。図中のループL03で示すように、エンコード制御回路23は、連続エンコードする指定数の全てのピクチャに関するスライスデータのNAL化が完了するまで、同様の処理を繰り返す。
【0166】
次にエンコード制御回路23は、上記ステップP13で述べたエンコードの完了通知S23を、ソフトウェア処理部11に入力する。
【0167】
図中のループL01で示すように、処理対象である全てのピクチャに関するNAL化が完了するまで、上記と同様の処理が繰り返し実行される。
【0168】
このように、ハードウェア処理部12の動作モードが高速モードに設定された場合には、ソフトウェア処理部11は、出力ピクチャに関する設定情報(指定数等)を、ハードウェア処理部12が入力ピクチャのエンコードを開始する前にハードウェア処理部12に通知し、ハードウェア処理部12は、ソフトウェア処理部11から通知された設定情報に基づいて、出力ピクチャに関するエンコードを、ピクチャ毎の完了通知を省略して連続して実行し、指定数の出力ピクチャに関するエンコードが全て完了することにより、エンコードの完了通知S23をソフトウェア処理部11に割り込み通知する。その結果、ピクチャサイズが小さくフレームレートが高い出力ピクチャを生成するモードである高速モードを実行するにあたって、ソフトウェア処理部11とハードウェア処理部12との間で1ピクチャ毎にコマンド発行及び割り込み通知を行う場合と比較すると、ソフトウェア処理部11の処理負荷を軽減できるとともに、エンコード処理の所要時間を短縮することが可能となる。
【0169】
また、ソフトウェア処理部11は、画像処理装置2で処理可能な最大ピクチャサイズ及び当該最大ピクチャサイズに対応するフレームレートと、出力ピクチャのピクチャサイズと、ハードウェア処理部12の最大クロック周波数とに基づいて、出力ピクチャの最大フレームレートを設定する。従って、画像処理装置2の最大処理能力を有効に活用しつつ、高速エンコードを適切に実行することが可能となる。
【0170】
また、ソフトウェア処理部11は、連続したエンコードが実行される出力ピクチャの指定数に関する情報を、初期設定信号S03(設定情報)に含めてハードウェア処理部12に通知する。従って、ハードウェア処理部12は、高速エンコードにおいて連続したエンコードによって生成すべき指定数の出力ピクチャを、設定情報に基づいて適切に処理することが可能となる。
【0171】
また、ソフトウェア処理部11からハードウェア処理部12に通知された設定情報は、NAL符号化回路28(NAL化回路)及びエンコード制御回路23(制御回路)に入力される。このように、高速エンコードを実行するにあたって必要となる設定情報をNAL符号化回路28及びエンコード制御回路23に入力することにより、ハードウェア処理部において高速エンコードを適切に実行することが可能となる。
【0172】
また、NAL符号化回路28に入力される設定情報S09には、出力ピクチャのNAL化に使用するヘッダ情報が含まれる。このように、出力ピクチャのNAL化を行うにあたって必要となるヘッダ情報をNAL符号化回路28に入力することにより、NAL符号化回路28において出力ピクチャのNAL化を適切に実行することが可能となる。
【符号の説明】
【0173】
2 画像処理装置
11 ソフトウェア処理部
12 ハードウェア処理部
13 記憶部
23 エンコード制御回路
27 エントロピ符号化回路
28 NAL符号化回路
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15