(57)【要約】  フレーム間予測を行う動画圧縮方式で圧縮されたビデオストリームを記憶装置から読み出し、デコード済のフレームを参照画像としてデコード処理に利用するデコード方法は、ビデオストリームから抽出された動きベクトル情報に基づいて参照画像を演算し、参照画像に基づいて予測画像を生成し、参照画像の処理単位内の各領域の読み出しサイクル、記憶装置のアクセス毎のオーバーヘッド、又は、記憶装置をアクセスするのに用いるバスの占有時間に基づいて参照画像の形状を決定する。
2008117440.tif 000002
【特許請求の範囲】
【請求項１】
フレーム間予測を行う動画圧縮方式で圧縮されたビデオストリームを記憶装置から読み出し、デコード済のフレームを参照画像としてデコード処理に利用するデコード方法であって、
該ビデオストリームから抽出された動きベクトル情報に基づいて該参照画像を演算し、
該参照画像に基づいて予測画像を生成し、
該参照画像の処理単位内の各領域の読み出しサイクル、該記憶装置のアクセス毎のオーバーヘッド、又は、該記憶装置をアクセスするのに用いるバスの占有時間に基づいて該参照画像の形状を決定する
ことを特徴とするデコード方法。
【請求項２】
該参照画像の該形状を決定するときに、該参照画像の処理単位内の各領域について領域を統合して読み出すか否かを判定し、統合して読み出すと判定されたときには統合する領域を該記憶装置から同時に読み出し、
該領域を統合して読み出すか否かを判定するときに、該各領域の読み出しサイクル、該記憶装置のアクセス毎のオーバーヘッド、又は、該バスの占有時間に基づいて判定を行うことを特徴とする請求項１記載のデコード方法。
【請求項３】
該記憶装置から読み出した統合された領域を統合データ記憶部に格納し、
前記動きベクトル情報に基づいて前記参照画像を演算するときに、該統合データ記憶部に格納済みの結合された領域を該参照画像のデータの一部として流用可能な場合には、該格納済みの結合された領域を該統合データ記憶部から読み出すことを特徴とする請求項１又は２記載のデコード方法。
【請求項４】
該動画圧縮方式はMPEG-1、MPEG-2、MPEG-4、H.264、VC-1のいずれかであることを特徴とする請求項１〜３のいずれか１項に記載のデコード方法。
【請求項５】
該参照画像の該処理単位は、矩形のマクロブロック１乃至３個であることを特徴とする請求項１〜４のいずれか１項に記載のデコード方法。
【請求項６】
該記憶装置はＳＤＲＡＭであることを特徴とする、請求項１〜５のいずれか１項に記載のデコード方法。
【請求項７】
フレーム間予測を行う動画圧縮方式で圧縮されたビデオストリームを記憶装置から読み出し、デコード済のフレームを参照画像としてデコード処理に利用するデコード装置であって、
該ビデオストリームから抽出された動きベクトル情報に基づいて該参照画像を演算する演算部と、
該参照画像に基づいて予測画像を生成する生成部と、
該参照画像の処理単位内の各領域の読み出しサイクル、該記憶装置のアクセス毎のオーバーヘッド、又は、該記憶装置をアクセスするのに用いるバスの占有時間に基づいて該参照画像の形状を決定する決定部と
を備えることを特徴とするデコード装置。
【請求項８】
該決定部は、該参照画像の処理単位内の各領域について領域を統合して読み出すか否かを判定し、統合して読み出すと判定されたときには統合する領域を該記憶装置から同時に読み出す統合判定部を有し、
該統合判定部は、該各領域の読み出しサイクル、該該記憶装置のアクセス毎のオーバーヘッド、又は、該バスの占有時間に基づいて判定を行うことを特徴とする請求項７記載のデコード装置。
【請求項９】
該記憶装置から読み出した統合された領域を統合データ記憶部に格納する格納部を更に含み、
該演算部は、該統合データ記憶部に格納済み統合された領域を該参照画像のデータの一部として流用可能な場合には、該統合された領域を該統合データ記憶部から読み出すことを特徴とする請求項７又は８記載のデコード装置。
【請求項１０】
該動画圧縮方式はMPEG-1、MPEG-2、MPEG-4、H.264、VC-1のいずれかであることを特徴とする請求項７又は８記載のデコード装置。
【請求項１１】
該参照画像の該処理単位は、矩形のマクロブロック１乃至３個であることを特徴とする請求項７〜１０のいずれか１項に記載のデコード装置。
【請求項１２】
該記憶装置はＳＤＲＡＭであることを特徴とする請求項７〜１１のいずれか１項に記載のデコード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デコード方法及びデコード装置に係り、特にフレーム間予測を行う動画圧縮方式で圧縮された画像データを伸張するデコード方法及びデコード装置に関する。
【背景技術】
【０００２】
通常、動画においては、時間的に近い画像同士は画像情報が似ているため、時間的に近い画像を現在の処理領域の元画像として使用することができる。MPEG-2、MPEG-4、H.264等の規格に代表されるフレーム間予測を行う動画圧縮方式では、このような考え方を採用している。【０００３】
フレーム間予測を行う動画圧縮方式で圧縮されたデータを伸張するデコード装置では、通常は一度デコードされた画像データは外部記憶装置に格納され、別のフレームを処理するときに必要な領域、即ち、参照画像の画像データを外部記憶装置から読み出して使用する。【０００４】
ところが、H.264等の近年の圧縮方式では、参照画像の読み出し単位が極小化し、外部記憶装置からの参照画像の読み出し回数及び全体としての読み出し画像データの量も増大している。例えば、H.264ではMPEG-2と比べると読み出し回数が最大で１６倍、全体としての読み出し画像データの量が最大で５倍になる。【０００５】
外部記憶装置へのアクセスを低減する方法として、復号化済みのマクロブロックの隅に位置するブロックの動きベクトルに応じて、検出方法を選択し、選択された方法により動きベクトルを検出し、動きベクトルに基づいて動き補償対象ブロックの予測画像を生成するものがある（特許文献１を参照）。
【特許文献１】特開２００４−１９４２８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
H.264等の近年の圧縮方式では、高精細な画像を扱うため、外部記憶装置からの参照画像の読み出し回数及び読み出し画像データの量が増大しており、規格の要求性能を満たすために、外部記憶装置へのアクセスを制御するメモリコントローラや制御部の動作周波数を増加、或いは、外部記憶装置の動作周波数を増加したり数を増やす等の対策が必要である。このため、デコード装置の回路規模が増大し、これに伴い製造コスト及び消費電力が増大してしまうという問題があった。【０００７】
本発明は、メモリへのアクセス回数及びアクセスされるデータ量を低減し、回路の規模を小さく抑え、製造コストと消費電力を低減することが可能なデコード方法及びデコード装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題は、フレーム間予測を行う動画圧縮方式で圧縮されたビデオストリームを記憶装置から読み出し、デコード済のフレームを参照画像としてデコード処理に利用するデコード方法であって、該ビデオストリームから抽出された動きベクトル情報に基づいて該参照画像を演算し、該参照画像に基づいて予測画像を生成し、該参照画像の処理単位内の各領域の読み出しサイクル、該記憶装置のアクセス毎のオーバーヘッド、又は、該記憶装置をアクセスするのに用いるバスの占有時間に基づいて該参照画像の形状を決定することを特徴とするデコード方法により達成できる。【０００９】
上記の課題は、フレーム間予測を行う動画圧縮方式で圧縮されたビデオストリームを記憶装置から読み出し、デコード済のフレームを参照画像としてデコード処理に利用するデコード装置であって、該ビデオストリームから抽出された動きベクトル情報に基づいて該参照画像を演算する演算部と、該参照画像に基づいて予測画像を生成する生成部と、該参照画像の処理単位内の各領域の読み出しサイクル、該記憶装置のアクセス毎のオーバーヘッド、又は該記憶装置をアクセスするのに用いるバスの占有時間に基づいて該参照画像の形状を決定する決定部とを備えることを特徴とするデコード装置により達成できる。
【発明の効果】
【００１０】
本発明によれば、メモリへのアクセス回数及びアクセスされるデータ量を低減し、回路の規模を小さく抑え、製造コストと消費電力を低減することが可能なデコード方法及びデコード装置を実現できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例におけるデコード装置の構成を示すブロック図である。
【図２】読み出し領域の統合を説明する図である。
【図３】ＤＤＲ−ＳＤＲＡＭのアクセスタイミングを説明するタイミングチャートである。
【図４】ブロックを個別に読み出したときと、統合して読み出したときのバスの占有時間を説明する図である。
【図５】既に統合データ記憶部に格納されている領域と、フレーム間予測部内の現在の処理で必要な領域を示す図である。
【図６】図５に示すデータの再利用を説明する図である。
【図７】統合データの再利用を説明するブロック図である。
【図８】統合データの再利用を説明するブロック図である。
【図９】統合データの再利用を説明するブロック図であある。
【図１０】統合データの再利用を説明するブロック図である。
【図１１】実施例における統合読み出し制御を説明するフローチャートである。
【図１２】統合判定処理を説明するフローチャートである。
【図１３】データ読み出し範囲判定処理を説明するフローチャートである。
【図１４】コピー処理を説明するフローチャートである。
【図１５】リクエスト処理を説明するフローチャートである。
【図１６】データを流用しない場合の読み出し制御を説明するフローチャートである。
【図１７】データを流用しない場合のリクエスト処理を説明するフローチャートである。
【符号の説明】
【００１２】
１      デコード装置
１１      ストリーム入力部
１２      デコード処理部
１３      表示制御部
１４      ＳＤＲＡＭ
２１      エントロピーデコーダ
２２      係数デコーダ
２３      フレーム間予測部
２４      画像生成部
２５      読み出し予測画像解析部
２６      統合データ記憶部
２７      メモリコントローラ
３０      外部記憶装置
【発明を実施するための最良の形態】
【００１３】
本発明は、フレーム間予測を行う動画圧縮方式で圧縮され記憶装置に格納されたビデオストリームを読み出し、動き予測を利用してエンコードされたフレームをデコードする際には、それ以前にデコードしたフレームを参照画像としてデコード処理に利用する。ビデオストリームから抽出された動きベクトル情報に基づいて参照画像を演算し、記憶装置から読み出した参照画像のデータに基づいて予測画像を生成し、各領域の読み出しサイクル、又は、記憶装置のアクセス毎のオーバーヘッド、又は、記憶装置をアクセスするのに用いるバスの占有時間に基づいて参照画像の形状を決定する。【００１４】
上記参照画像の決定は、参照画像のデータを読み出す際に、データの処理単位内の各領域について他の領域のデータと統合して読み出すか否かを判定し、統合して読み出すと判定されたときには統合する領域のデータを記憶装置から同時に読み出す統合判定を含んでも良い。この場合、統合判定は、各領域の読み出しサイクル、又は、記憶装置のアクセス毎のオーバーヘッド、又は、バスの占有時間に基づいてこの判定を行う。【００１５】
以下に、本発明のデコード方法及びデコード装置の各実施例を図面と共に説明する。
【実施例】
【００１６】
図１は、本発明の一実施例におけるデコード装置の構成を示すブロック図である。デコード装置１は、図１に示す如く接続されたストリーム入力部１１、デコード処理部１２、表示制御部１３及びメモリ制御部（以下、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）制御部と言う）１４を有する。デコード処理部１２は、エントロピーデコーダ（又は、ストリーム解析部）２１、係数デコーダ２２、フレーム間予測部２３、画像生成部２４、読み出し予測画像解析部２５、統合データ記憶部２６及びメモリコントローラ２７を有する。デコード装置１は、例えば１チップで構成される半導体装置、或いは、複数のチップからなるマルチチップモジュール（ＭＣＭ）で構成される半導体装置である。【００１７】
外部記憶装置３０は、デコード装置１のＳＤＲＡＭ制御部１４に接続されている。本実施例では、外部記憶装置３０はＳＤＲＡＭで構成されており、デコード装置１とは別体である。しかし、デコード装置１と外部記憶装置３０は単一のモジュールを構成するものであっても良いことは言うまでもない。【００１８】
デコード装置１は、MPEG-1、MPEG-2、MPEG-4、H.264、VC-1等の規格に代表されるフレーム間予測を行う動画圧縮方式で圧縮された動画像のビデオストリームを伸張（復号）する。デコード装置１は、例えばビデオプレーヤ／レコーダやビデオカメラ等のビデオ再生機能を備えた装置に搭載される。【００１９】
ストリーム入力部１１に入力されたビデオストリームは、ＳＤＲＡＭ制御部１４を介して一旦外部記憶装置３０に格納される。デコード処理部１２は、外部記憶装置３０からビデオストリームを読み出してデコード処理を行い、デコード画像を外部記憶装置３０に再び格納する。又、デコード処理部１２は、動き予測を利用してエンコードされたフレームをデコードする際には、それ以前にデコードしたフレームのデータを外部記憶装置３０から読み込み、そのフレームを参照画像としてデコード処理に利用する。表示制御部１３は、外部記憶装置３０に格納されたデコード画像を表示順に読み出し、図示しないビデオインタフェース回路等に表示用画像信号として出力する。これにより、表示用画像信号が、図示しない表示装置の画面上に表示される。【００２０】
デコード処理部１２において、エントロピーデコーダ２１は、外部記憶装置３００に格納されたビデオストリームを、外部記憶装置３０に対するインタフェースとして機能するＳＤＲＡＭ制御部１４を介して読み込み、動きベクトル、ＤＣＴ（Discrete Cosine Transform）係数等のデコード処理に必要な各種情報を抽出する。本実施例は、デコード処理部１２内に読み出し予測画像解析部２５及び統合データ記憶部２６が設けられている点に特に特徴がある。【００２１】
フレーム間予測部２３は、ビデオストリームから抽出された動きベクトル等の情報に基づいて参照画像を演算し、参照画像のデータを外部記憶装置３０から読み出し、読み出したデータに基づいて予測画像を生成する。後述するように、参照画像のデータの読み出しの際には、データの処理単位内の各領域について他の領域のデータと統合して読み出した方が良いか否かを読み出し予測画像解析部２５で判定し、統合した方が外部記憶装置３０をアクセスするのに用いるバス（即ち、デコード装置１と外部記憶装置３０を接続するバス）の占有時間が短くなり良いと判定されたときには統合する領域のデータを外部記憶装置３０から同時に読み出す。統合データ記憶部２６には、外部記憶装置３０から読み出した統合された領域のデータ、即ち、統合データが格納される。既に統合データ記憶部２６に格納された統合データを参照画像のデータの一部として流用可能な場合には、統合データ記憶部２６から読み出して再利用する。本明細書では、このような読み出し制御を「統合読み出し制御」と呼ぶものとする。【００２２】
係数デコーダ２２は、エントロピーデコーダ２１により抽出された係数情報を用いて逆量子化及び逆ＤＣＴ変換の演算を行い、予測誤差を復元する。画像生成部２４は、フレーム間予測部２３により生成された予測画像のデータに係数デコーダ２２で復元された予測誤差を加算してデコード画像を生成し、外部記憶装置３０に格納する。【００２３】
通常、参照画像が細分化されたとしても、同一矩形の領域（マクロブロック）、或いは、隣接マクロブロックにおいては近い部分を参照画像として読み出してくることが多い。そこで、読み出し予測画像解析部２５において、隣接する複数の領域をまとめて、１つの読み出し領域として統合する。その統合された領域を外部記憶装置３０からまとめて読み出し、統合データ記憶部２６に格納する。後に、フレーム間予測の演算をする際に、フレーム間予測部２３で必要な部分だけを統合データ記憶部２６から読み出し、外部記憶装置３０からも必要に応じてデータを読み出して、フレーム間予測部２３でフレーム間予測を行う。【００２４】
本実施例では、フレーム間予測部２３は、ビデオストリームから抽出された動きベクトル情報に基づいて参照画像を演算する演算手段と、参照画像のデータを外部記憶装置３０から読み出し、読み出したデータに基づいて予測画像を生成する手段を含む。又、後述するように、読み出し予測画像解析部２５は、各領域の読み出しサイクル、又は、外部記憶装置３０のアクセス毎のオーバーヘッド、又は、外部記憶装置３０をアクセスするのに用いるバスの占有時間に基づいて参照画像の形状を決定する決定手段を含む。この決定手段は、参照画像のデータを読み出す際に、データの処理単位内の各領域について他の領域のデータと統合して読み出すか否かを判定し、統合して読み出すと判定されたときには統合する領域のデータを外部記憶装置３０から同時に読み出す統合判定手段を有する。【００２５】
図２は、読み出し領域の統合を説明する図である。図２は、１マクロブロック当たりの読み出しリクエスト（要求）のある領域（ブロック）Ｂが７個の場合を示す。この場合、読み出し予測画像解析部２５は、（ａ）で示す７個のブロックＢのうち、左側の隣接する２個のブロックＢを（ｂ）のハッチングで示す領域を含むように１つの読み出し領域ＩＲに統合し、右側の隣接する５個のブロックＢを（ｂ）のハッチングで示す領域を含むように１つの読み出し領域ＩＲに統合する。又、（ｂ）に示す２個の統合された読み出し領域ＩＲは、統合データ記憶部２６に格納される。従って、フレーム間予測部２３でフレーム間予測の演算をする際には、（ｃ）に示す統合データ記憶部２６内の統合された読み出し領域ＩＲのうち、必要な部分（ブロックＢ）だけを読み出し予測画像解析部２５を介して読み出して使用する。【００２６】
次に、読み出し予測画像解析部２５で行う演算を説明する前に、外部記憶装置３０として使用し得る一般的なＤＤＲ−ＳＤＲＡＭのアクセスタイミングを、図３と共に説明する。図３は、ＤＤＲ−ＳＤＲＡＭのアクセスタイミングを説明するタイミングチャートであり、ＤＤＲ−ＳＤＲＡＭに入力されるクロック、アドレス指定及びデータ出力を示す。【００２７】
外部記憶装置３０にＤＤＲ−ＳＤＲＡＭが使用されている場合、先ず最初のサイクルでアクセスするＤＤＲ−ＳＤＲＡＭの行アドレス（Adr）が指定され、次のサイクルで列アドレス（Adr）が指定されることで、これらの２つのサイクルでアクセスするべきＤＤＲ−ＳＤＲＡＭ内のアクセス領域が確定する。これに対し、図３の例では２．５サイクル後からデータが出力される。ＤＤＲ−ＳＤＲＡＭでは、クロックの立ち上がりと立ち下がりの両エッジでデータが出力されるため、４ワード分のデータの読み出しは２サイクルで完了する。つまり、アドレス発行時点から４ワード分のデータを読むのに、２＋２＋２．５＋（４／２）＝６．５サイクルの時間が必要である。又、クロックの立下りでデータの読み出しが完了しても次の立ち上がりエッジで次のアドレスを指定することはできないので、実質的には２サイクルで終る読み出しのために、＋５サイクルのオーバーヘッドが付加されることになる。【００２８】
このようなＤＤＲ−ＳＤＲＡＭのアクセス準備期間に加え、読み出し予測画像解析部２５からの読み出しリクエストがＤＤＲ−ＳＤＲＡＭに到達するまでの間にはいくつかの回路ブロックが介在するため、更にオーバーヘッドが増加する。ここでは、説明の便宜上、この増加分のオーバーヘッドが＋4サイクルであると仮定する。従って、この場合のオーバーヘッドは合計で９サイクルとなる。尚、この場合の合計のオーバーヘッドは、使用するＤＤＲ−ＳＤＲＡＭの種類やハードウェアの構成により変化するので、ハードウェア固有の値となる可能性が高いものの、上記９サイクルは一例にすぎない。【００２９】
２つのブロックBiとBjをＤＤＲ−ＳＤＲＡＭから読み出す際のバスの占有時間は、データ読み出しサイクル等の関数を次のように定義すると、
Biのデータ読み出しサイクル (＝ Biのワード数／２) ＝ ReadCycle(Bi)
Bjのデータ読み出しサイクル (＝ Bjのワード数／２) ＝ ReadCycle(Bj)
ＳＤＲＡＭアクセス毎のオーバーヘッド ＝ Overhead
BiとBjを１つの矩形領域として統合する ＝ merge(Bi,Bj)
BiとBjを個別に読み出したときのバスの占有時間は次のようになり、
ReadCycle(Bi) + ReadCycle(Bj) + Overhead×2
BiとBjを統合して読み出したときのバスの占有時間は次のようになる。【００３０】
ReadCycle(merge(Bi,Bj)) + Overhead
図４は、ブロックBiとBjを個別に読み出したときのバスの占有時間と、統合して読み出したときのバスの占有時間を説明する図である。図４では、ReadCycle(Bi)＝４、ReadCycle(Bj)＝４、Overhead＝９、ReadCycle(merge(Bi,Bj))＝９であるものとする。図４に示す例の場合、ブロックBiとBjを個別に読み出したときのバスの占有時間（アクセス時間）は４＋４＋９×２＝２６サイクルとなり、ブロックBiとBjを統合して読み出したときのバスの占有時間（アクセス時間）は１０＋０＝１９サイクルとなり、この場合はブロックBiとBjを統合して読み出した方がバスの占有時間が短いことが分かる。【００３１】
このように、オーバーヘッド分を考慮することにより、ＤＤＲ−ＳＤＲＡＭから読み出すデータ量が増加したとしても、隣接ブロックを統合して読み出した方が効率的であることが分かる。【００３２】
次に、隣接ブロックを統合した統合データを再利用することにより、アクセス量を更に減少する手法、即ち、統合読み出し制御について説明する。【００３３】
先ず、統合データ記憶部２６に格納された統合データの再利用について、図５乃至図１０と共に説明する。ここでは説明の便宜上、１マクロブロック毎に統合読み出しを行うアルゴリズムを採用した場合の例を説明する。本実施例では、１マクロブロックの処理を１単位としているが、例えば２マクロブロックを１単位とする等、処理単位を変更しても同様の手法で演算が可能であることは言うまでもない。【００３４】
図５は、既に統合データ記憶部２６に格納されている領域Ｐと、フレーム間予測部２３内の現在の処理で必要な領域Ｂｉを示す図である。図５中、領域Ｐは太い実線で示し、領域Ｂｉは太い一点鎖線で示す。本実施例では、図５のような場合、一部のデータは既に外部記憶装置３０から読み出されているので再利用する。【００３５】
図６は、図５に示すデータの再利用を説明する図である。図６中、Ｐは既に過去のマクロブロックの処理で読み込んだ画像保持領域、Ｂｉは統合処理の結果、現在のマクロブロック処理において必要とされる現必要領域、Ｃｉは上記２つの領域Ｐ，Ｂｉが重なる部分、即ち、流用可能な流用領域、Ｒｉは新たに外部記憶装置３０から読み出す必要がある新規読込領域を示す。【００３６】
図７乃至図１０は、統合データの再利用を説明するブロック図であり、図１と同一部分には同一符号を付し、その説明は省略する。図７乃至図１０中、２６Ａは統合データ記憶部２６内の偶数番目のマクロブロックを格納する統合データ記憶領域、２６Ｂは統合データ記憶部２６内の奇数番目のマクロブロックを格納する統合データ記憶領域を示す。【００３７】
統合データを再利用するために、統合データ記憶部２６は、図７に示すように２つの統合データ記憶領域２６Ａ，２６Ｂに分かれており、一方の統合データ記憶領域２６Ａに偶数番目マクロブロックデータを格納し、他方の統合データ記憶領域２６Ｂに奇数番目マクロブロックデータを格納する。尚、統合データ記憶領域２６Ａ，２６Ｂは、物理的に別体の記憶部により構成されていても良いことは言うまでもない。【００３８】
１番目のマクロブロックを処理する時点では、その前のマクロブロックのデータは無いのでデータの再利用はできないため、図８に破線の矢印Dinで示すように１番目のマクロブロックの全てのデータを外部記憶装置３０から読み出して統合データ記憶領域２６Ａに格納するデータ入力を行う。【００３９】
次のマクロブロックを処理する時点では、前のマクロブロックのデータの再利用が可能な場合には、図９に破線の矢印Dcopyで示すように前のマクロブロックのデータを統合データ記憶領域２６Ａから統合データ記憶領域２６Ｂにコピーするデータコピーを行う。【００４０】
又、新たに読み出すマクロブロックのデータに関しては、図１０に破線の矢印Dinで示すように外部記憶装置３０から読み出して統合データ記憶領域２６Ｂに格納するデータ入力を行う必要がある。【００４１】
上記の如き動作を、１マクロブロック毎に繰り返すことにより、続くマクロブロックを処理する際にも、前のマクロブロックで使用したデータを再利用することが可能となる。【００４２】
図１１は、上記一連の処理、即ち、本実施例における統合読み出し制御を説明するフローチャートである。図１１において、ステップＳ１は、フレーム間予測部２３により、１マクロブロック分の動きベクトル夫々に対する参照画像（即ち、統合前の領域）を演算する。ステップＳ２は、読み出し予測画像解析部２５により、１マクロブロック内の各ブロックについて他のブロックのデータと統合した方が良いか否かを判定する統合判定処理を行う。ステップＳ３は、読み出し予測画像解析部２５により、統合判定処理の結果に基づいて外部記憶装置３０及び統合データ記憶部２６からのデータの読み出し範囲を判定するデータ読み出し範囲判定処理を行う。ステップＳ４は、読み出し予測画像解析部２５により、データ読み出し範囲判定処理に基づいて統合データ記憶部２６からデータをコピーするコピー処理を行う。ステップＳ５は、読み出し予測画像解析部２５により、データ読み出し範囲判定処理に基づいて統合データ記憶部２６からのデータをリクエストするリクエスト処理を行い、処理は終了する。このようにして、１マクロブロック中の、夫々の動きベクトルに対する参照画像を求め、統合判定処理、データ読み出し範囲判定処理、コピー処理及びリクエスト処理を行う。【００４３】
図１２は、ステップＳ２の統合判定処理を説明するフローチャートである。図１２においてステップＳ２０１は統合判定の対象ブロック数をＮ（Ｎは１以上の整数）に設定し、ステップＳ２０２はｉをｉ＝１に設定する。統合判定の対象ブロック数Ｎは、１マクロブロック中の動きベクトル数と等しい。ステップＳ２０３は現必要領域（ブロック）Biがヌル（Null）であるか否かを判定する。ステップＳ２０３の判定結果がＹＥＳであると、ステップＳ２０４はｊをｊ＝１に設定する。ステップＳ２０５はｉ＝ｊ、且つ、現必要ブロックBiがNullであり、ブロックBiとBjの参照画像が同一であるか否かを判定する。ステップＳ２０５の判定結果がＹＥＳであると、ステップＳ２０６は個別読み出し時のアクセス時間が統合読み出し時のアクセス時間より長いか否かを判定する。つまり、ステップＳ２０６は、｛ReadCycle(Bi) + ReadCycle(Bj) + Overhead×2｝>｛ReadCycle(merge(Bi,Bj)) + Overhead｝であるか否かを判定する。【００４４】
ステップＳ２０６の判定結果がＮＯであると、ステップＳ２０７は現必要ブロックBiをBi=merge(Bi,Bj)に設定すると共に、ブロックBjをBj=NULLに設定し、処理はステップＳ２０８へ進む。他方、ステップＳ２０５の判定結果がＮＯ、或いは、ステップＳ２０６の判定結果がＹＥＳであると、処理はステップＳ２０８へ進む。ステップＳ２０８はｊをｊ＝ｊ＋１に設定し、ステップＳ２０９はｊ>Ｎであるか否かを判定する。ステップＳ２０９の判定結果がＮＯであると処理はステップＳ２０５へ戻り、ＹＥＳであると処置はステップＳ２１０へ進む。ステップＳ２１０はｉをｉ＝ｉ＋１に設定し、ステップＳ２１１はｉ＝Ｎであるか否かを判定する。ステップＳ２１１の判定結果がＮＯであると処理はステップＳ２０３へ戻り、ＹＥＳであると処理は終了する。【００４５】
このようにして、１マクロブロック内の各ブロックについて他のブロックのデータと統合した方が良いか否かを判定し、統合した方がデコード装置１と外部記憶装置３０間のバスの占有時間が短くなり良いと判定されたときには統合するブロックのデータを同時に読み出す。又、ブロックのデータを個別に読み出すか、或いは、統合して読み出すかの判定を繰り返すことにより、最終的にどのような形状で参照画像を読み出すか、即ち、参照画像の取得範囲を決定する。【００４６】
図１３は、ステップＳ３のデータ読み出し範囲判定処理を説明するフローチャートである。図１３において、ステップＳ３０１はｉをｉ＝１に設定し、ステップＳ３０２は現必要領域（ブロック）Bi＝Nullであるか否かを判定する。ステップＳ３０２の判定結果がＹＥＳであると、ステップＳ３０３は現必要ブロックBiの参照画像データを前のマクロブロックで使用しているか否かを判定する。ステップＳ３０３の判定結果がＹＥＳであると、ステップＳ３０４は新規読込領域Riを新規読込領域Ri＝現必要領域Bi−画像保持領域Pに設定し、処理はステップＳ３０５へ進む。他方、ステップＳ３０２又はＳ３０３の判定結果がＮＯであると、処理は後述するステップＳ３１０へ進む。【００４７】
ステップＳ３０５は、新規読込領域Ri＝現必要領域Biであるか否かを判定し、判定結果がＮＯであると、ステップＳ３０６は新規読込領域Riは矩形であるか否かを判定する。ステップＳ３０６の判定結果がＮＯであると、データを再利用しないので、ステップＳ３０７で新規読込領域RiをRi=Biに設定すると共に流用領域CiをCi=Nullに設定し、処理はステップＳ３１０へ進む。ステップＳ３０６の判定結果がＹＥＳであると、データを再利用するので、ステップＳ３０８で流用領域CiをCi=Bi-Riに設定し、処理はステップＳ３１０へ進む。ステップＳ３０５の判定結果がＹＥＳであると、再利用できる領域はないため、ステップＳ３０９で流用領域CiをCi=Nullに設定し、処理はステップＳ３１０へ進む。【００４８】
ステップＳ３１０はｉをｉ＝ｉ＋１に設定し、ステップＳ３１１はｉ＝Ｎであるか否かを判定する。ステップＳ３１１の判定結果がＮＯであると処理はステップＳ３０２へ戻り、ＹＥＳであると処理は終了する。【００４９】
このようにして、流用領域Ciと新規読込領域Riを決定し、統合データ記憶部２６からのデータのコピーと外部記憶装置３０からのデータの読み出しを行う。【００５０】
このように、データ読み出し範囲判定処理は、統合判定処理後の読み出しブロックの単位で行われる。前のマクロブロック処理時に使用されたデータを再利用できない場合には、コピー処理は行われず流用領域Ci= NULLに設定される。又、データを再利用可能な場合であっても、新規読込領域Riが矩形でないときには、複数回の読み出しリクエストを発生する必要があり、処理が複雑になる。このため、本実施例では、新規読込領域Riが矩形ではない場合には、新規読込領域Ri＝現必要領域Biとし、データの流用は行わない。尚、新規読込領域Riは矩形に限定されるものではない。【００５１】
図１４は、ステップＳ４のコピー処理を説明するフローチャートである。図１４において、ステップＳ４０１はｉをｉ＝１に設定し、ステップＳ４０２は流用領域CiがCi=Nullであるか否かを判定する。ステップＳ４０２の判定結果がＮＯであると、ステップＳ４０３は流用領域Ciを統合データ記憶部２６からコピーし、処理はステップＳ４０４へ進む。ステップＳ４０２の判定結果がＹＥＳであると、処理はステップＳ４０４へ進む。ステップＳ４０４はｉをｉ＝ｉ＋１に設定し、ステップＳ４０５はｉ＝Ｎであるか否かを判定する。ステップＳ４０５の判定結果がＮＯであると処理はステップＳ４０２へ戻り、ＹＥＳであると処理は終了する。【００５２】
このようにして、流用領域Ciを、１つずつ前のマクロブロックのデータを格納している統合データ記憶部２６からコピーする。【００５３】
図１５は、ステップＳ５のリクエスト処理を説明するフローチャートである。図１５において、ステップＳ５０１はｉをｉ＝１に設定し、ステップＳ５０２は新規読込領域RiがRi=Nullであるか否かを判定する。ステップＳ５０２の判定結果がＮＯであると、ステップＳ５０３は新規読込領域Riを外部記憶装置３０へリクエストし、処理はステップＳ５０４へ進む。ステップＳ５０２の判定結果がＹＥＳであると、処理はステップＳ５０４へ進む。ステップＳ５０４はｉをｉ＝ｉ＋１に設定し、ステップＳ５０５はｉ＝Ｎであるか否かを判定する。ステップＳ５０５の判定結果がＮＯであると処理はステップＳ５０２へ戻り、ＹＥＳであると処理は終了する。【００５４】
このようにして、統合されてNULLとなったブロック以外に対して順番にリクエストを立てることで、新規読込領域Riを１つずつ前のマクロブロックのデータを格納している外部記憶装置３０へリクエストしてコピーする。【００５５】
図１６は、データを流用しない場合の読み出し制御を説明するフローチャートである。図１６において、ステップＳ１１及びＳ１２の処理は、図１１に示すステップＳ１及びＳ２の処理と同じであり、その説明は省略する。ステップＳ１３のリクエスト処理は、図１７に示す如きステップからなる。【００５６】
図１７は、データを流用しない場合のステップＳ１３のリクエスト処理を説明するフローチャートである。図１７において、ステップＳ１３０１はｉをｉ＝１に設定し、ステップＳ１３０２は現必要領域BiがBi=Nullであるか否かを判定する。ステップＳ１３０２の判定結果がＮＯであると、ステップＳ１３０３は現必要領域Biを外部記憶装置３０へリクエストしてコピーし、処理はステップＳ１３０４へ進む。ステップＳ１３０２の判定結果がＹＥＳであると、処理はステップＳ１３０４へ進む。ステップＳ１３０４はｉをｉ＝ｉ＋１に設定し、ステップＳ１３０５はｉ＝Ｎであるか否かを判定する。ステップＳ１３０５の判定結果がＮＯであると処理はステップＳ１３０２へ戻り、ＹＥＳであると処理は終了する。【００５７】
上記の如く、本実施例では、１マクロブロック内の各ブロックについて他のブロックのデータと統合した方が良いか否かを統合判定処理により判定し、統合した方がバスの占有時間が短くなり良いと判定されたときには統合するブロックのデータを同時に読み出す。このようにデータを同時に読み出す際、統合データ記憶部２６に既に格納されているデータを利用可能な場合には、外部記憶装置３０から再度読み出すことなく、統合データ記憶部２６内のデータを再利用する。尚、この判定は１マクロブロック内に限定されるものではなく、数マクロブロック、或いは、１画像全体のベクトルに対して適応的に設定しても良い。ただし、対象マクロブロック同士が時間的に離れていると統合してもバスの占有時間が短くなる可能性は低くなり、上記演算自体も煩雑になるため、１マクロブロックか２〜３マクロブロック、多くとも１０マクロブロック以下のベクトルに対して上記演算を行うことが望ましい。【００５８】
又、統合判定処理は、ブロックの読み出しサイクル、又は、外部記憶装置３０のアクセス毎のオーバーヘッド、又は、バス占有時間を考慮して判定するものであれば、図１２に示す処理に限定されるものではない。同様に、データ読み出し範囲判定処理、コピー処理及びリクエスト処理も、図１３乃至図１５に示す処理に限定されるものではない。
【産業上の利用可能性】
【００５９】
本発明は、例えばビデオプレーヤ／レコーダやビデオカメラ等のビデオ再生機能を備えた装置に搭載された、MPEG-1、MPEG-2、MPEG-4、H.264、VC-1等の規格に代表されるフレーム間予測を行う動画圧縮方式で圧縮された動画像のビデオストリームを伸張（復号）するデコード装置に適用可能である。【００６０】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【図１】
2008117440.tif 000003
【図２】
2008117440.tif 000004
【図３】
2008117440.tif 000005
【図４】
2008117440.tif 000006
【図５】
2008117440.tif 000007
【図６】
2008117440.tif 000008
【図７】
2008117440.tif 000009
【図８】
2008117440.tif 000010
【図９】
2008117440.tif 000011
【図１０】
2008117440.tif 000012
【図１１】
2008117440.tif 000013
【図１２】
2008117440.tif 000014
【図１３】
2008117440.tif 000015
【図１４】
2008117440.tif 000016
【図１５】
2008117440.tif 000017
【図１６】
2008117440.tif 000018
【図１７】
2008117440.tif 000019
【手続補正書】
【提出日】平成21年3月18日(2009.3.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フレーム間予測を行う動画圧縮方式で圧縮されたビデオストリームを記憶装置から読み出し、デコード済のフレームを参照画像としてデコード処理に利用するデコード方法であって、
該ビデオストリームから抽出された動きベクトル情報に基づいて該参照画像を演算し、
該参照画像に基づいて予測画像を生成し、
該参照画像の処理単位内の各領域の読み出しサイクル、該記憶装置のアクセス毎のオーバーヘッド、又は、該記憶装置をアクセスするのに用いるバスの占有時間に基づいて該参照画像の形状を決定する
ことを特徴とするデコード方法。
【請求項２】
該参照画像の該形状を決定するときに、該参照画像の処理単位内の各領域について領域を統合して読み出すか否かを判定し、統合して読み出すと判定されたときには統合する領域を該記憶装置から同時に読み出し、
該領域を統合して読み出すか否かを判定するときに、該各領域の読み出しサイクル、該記憶装置のアクセス毎のオーバーヘッド、又は、該バスの占有時間に基づいて判定を行うことを特徴とする請求項１記載のデコード方法。
【請求項３】
該記憶装置から読み出した統合された領域を統合データ記憶部に格納し、
前記動きベクトル情報に基づいて前記参照画像を演算するときに、該統合データ記憶部に格納済みの結合された領域を該参照画像のデータの一部として流用可能な場合には、該格納済みの結合された領域を該統合データ記憶部から読み出すことを特徴とする請求項１又は２記載のデコード方法。
【請求項４】
該動画圧縮方式はMPEG-1、MPEG-2、MPEG-4、H.264、VC-1のいずれかであることを特徴とする請求項１〜３のいずれか１項に記載のデコード方法。
【請求項５】
該参照画像の該処理単位は、矩形のマクロブロック１乃至３個であることを特徴とする請求項１〜４のいずれか１項に記載のデコード方法。
【請求項６】
フレーム間予測を行う動画圧縮方式で圧縮されたビデオストリームを記憶装置から読み出し、デコード済のフレームを参照画像としてデコード処理に利用するデコード装置であって、
該ビデオストリームから抽出された動きベクトル情報に基づいて該参照画像を演算する演算部と、
該参照画像に基づいて予測画像を生成する生成部と、
該参照画像の処理単位内の各領域の読み出しサイクル、該記憶装置のアクセス毎のオーバーヘッド、又は、該記憶装置をアクセスするのに用いるバスの占有時間に基づいて該参照画像の形状を決定する決定部と
を備えることを特徴とするデコード装置。
【請求項７】
該決定部は、該参照画像の処理単位内の各領域について領域を統合して読み出すか否かを判定し、統合して読み出すと判定されたときには統合する領域を該記憶装置から同時に読み出す統合判定部を有し、
該統合判定部は、該各領域の読み出しサイクル、該該記憶装置のアクセス毎のオーバーヘッド、又は、該バスの占有時間に基づいて判定を行うことを特徴とする請求項６記載のデコード装置。
【請求項８】
該記憶装置から読み出した統合された領域を統合データ記憶部に格納する格納部を更に含み、
該演算部は、該統合データ記憶部に格納済み統合された領域を該参照画像のデータの一部として流用可能な場合には、該統合された領域を該統合データ記憶部から読み出すことを特徴とする請求項６又は７記載のデコード装置。
【請求項９】
該動画圧縮方式はMPEG-1、MPEG-2、MPEG-4、H.264、VC-1のいずれかであることを特徴とする請求項６又は７記載のデコード装置。
【請求項１０】
該参照画像の該処理単位は、矩形のマクロブロック１乃至３個であることを特徴とする請求項６〜９のいずれか１項に記載のデコード装置。
【国際調査報告】
2008117440.tif 000020
2008117440.tif 000021
2008117440.tif 000022
2008117440.tif 000023