【解決手段】メモリ制御部は、デコードブロック生成部30が生成したデコードブロックの画像データを、コーデック処理部2でのコーデック処理に適合した第1のアドレスフォーマットで第1の記憶領域4Bに書き込むとともに、表示処理部での表示処理に適合した第2のアドレスフォーマットで第2の記憶領域4Aに書き込む。
前記デコードブロック生成部が生成したデコードブロックのYUVフォーマットを、当該デコードブロックが前記第2の記憶領域に書き込まれる前に、前記表示部に適合するYUVフォーマットに変換するフォーマット変換部をさらに備える、請求項1〜7のいずれか一つに記載の画像処理装置。
前記表示処理部は、前記第2の記憶領域から読み出したデコード画像のYUVフォーマットを、前記表示部に適合するYUVフォーマットに変換するフォーマット変換部を有する、請求項1〜7のいずれか一つに記載の画像処理装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した背景技術に係るデコーダによると、デコードブロックは、コーデックフォーマットを用いてDRAMに書き込まれる。一方、デコード画像を表示装置に表示する場合には、画像内の水平方向にアドレスが連続するアドレスフォーマット(ラスタフォーマット)を用いた画像データが必要であるため、コーデックフォーマットのデコード画像をそのまま使用することができない。従って、コーデックフォーマットをラスタフォーマットに変換するフォーマット変換回路を実装する必要がある。フォーマット変換回路は、DRAMから読み出したコーデックフォーマットのデコード画像を、ラスタフォーマットのデコード画像に変換して、変換後のデコード画像をDRAMに書き込む。従って、フォーマット変換に伴ってDRAMへのリードアクセス及びライトアクセスが発生するため、表示の遅延時間が長くなるとともに、DRAMの消費電力が増大する。また、上述の通り、DRAMへのアクセスを極力回避してバス帯域を削減することも要求されている。
【0006】
本発明はかかる事情に鑑みて成されたものであり、表示用のフォーマット変換を省略することによって遅延時間の短縮、消費電力の低減、及びバス帯域の削減を実現することが可能な画像処理装置を得ることを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の態様に係る画像処理装置は、第1の記憶領域及び第2の記憶領域を有する画像記憶部と、前記画像記憶部に対する画像データの読み出し及び書き込みを制御する第1の制御部と、デコーダを有するコーデック処理部と、表示部において画像を表示するための画像データを処理する表示処理部と、を備え、前記コーデック処理部は、入力された符号化データを復号することによってデコードブロックを生成するデコードブロック生成部を有し、前記第1の制御部は、前記デコードブロック生成部が生成したデコードブロックの画像データを、前記コーデック処理部でのコーデック処理に適合した第1のアドレスフォーマットで前記第1の記憶領域に書き込むとともに、前記表示処理部での表示処理に適合した第2のアドレスフォーマットで前記第2の記憶領域に書き込むことを特徴とするものである。
【0008】
第1の態様に係る画像処理装置によれば、第1の制御部は、デコードブロック生成部が生成したデコードブロックの画像データを、コーデック処理部でのコーデック処理に適合した第1のアドレスフォーマットで第1の記憶領域に書き込むとともに、表示処理部での表示処理に適合した第2のアドレスフォーマットで第2の記憶領域に書き込む。これにより、表示処理部は、第2の記憶領域から読み出した第2のアドレスフォーマットのデコード画像に基づいて、表示部において画像を表示することができる。従って、画像記憶部から読み出したコーデックフォーマットのデコード画像をラスタフォーマットのデコード画像に変換するフォーマット変換回路の実装を省略することができる。その結果、フォーマット変換回路から画像記憶部へのアクセスが不要となるため、遅延時間の短縮、消費電力の低減、及びバス帯域の削減を実現することが可能となる。
【0009】
本発明の第2の態様に係る画像処理装置は、第1の態様に係る画像処理装置において特に、前記表示処理部は、前記第2の記憶領域から読み出したデコード画像に基づいて、前記表示部において画像を表示し、前記表示処理部は、前記デコードブロック生成部から前記第2の記憶領域への所定数のライン分のデコードブロックの書き込みが完了した時点で、前記第2の記憶領域からの画像データの読み出しを開始することを特徴とするものである。
【0010】
第2の態様に係る画像処理装置によれば、表示処理部は、デコードブロック生成部から第2の記憶領域への所定数のライン分のデコードブロックの書き込みが完了した時点で、第2の記憶領域からの画像データの読み出しを開始する。従って、表示処理部が第2の記憶領域から画像データの読み出しを開始する時点では、第2の記憶領域内に十分な画像データが蓄積されているため、表示部において動画像を途切れなく表示することが可能となる。しかも、第2の記憶領域として、1フレーム分の画像データを蓄積可能な領域を画像記憶部内に確保する必要がないため、表示用の第2の記憶領域を設定することに伴う画像記憶部の記憶領域の減少を、最小限に抑制することが可能となる。
【0011】
本発明の第3の態様に係る画像処理装置は、第2の態様に係る画像処理装置において特に、前記コーデック処理部の動作を制御する第2の制御部をさらに備え、前記第2の制御部は、前記表示処理部によって画像データが読み出されている前記第2の記憶領域内の位置と、前記デコードブロック生成部から画像データが書き込まれている前記第2の記憶領域内の位置とのアドレス差が所定のしきい値以下となった場合には、前記コーデック処理部の動作クロックを停止することを特徴とするものである。
【0012】
第3の態様に係る画像処理装置によれば、第2の制御部は、表示処理部によって画像データが読み出されている第2の記憶領域内の位置と、デコードブロック生成部から画像データが書き込まれている第2の記憶領域内の位置とのアドレス差が所定のしきい値以下となった場合には、コーデック処理部の動作クロックを停止する。従って、画像記憶部に対する読み出し速度が書き込み速度よりも遅い場合であっても、第2の制御部がコーデック処理部の動作クロックを停止することにより、読み出しが未完了の領域に次の画像データが書き込まれる事態を回避することが可能となる。しかも、動作クロックを停止することによって、コーデック処理部における消費電力を低減することが可能となる。
【0013】
本発明の第4の態様に係る画像処理装置は、第2の態様に係る画像処理装置において特に、前記コーデック処理部の動作を制御する第2の制御部をさらに備え、前記第2の制御部は、前記表示処理部によって画像データが読み出されている前記第2の記憶領域内の位置と、前記デコードブロック生成部から画像データが書き込まれている前記第2の記憶領域内の位置とのアドレス差が所定のしきい値以下となった場合には、前記コーデック処理部におけるブロック処理の開始信号を停止することを特徴とするものである。
【0014】
第4の態様に係る画像処理装置によれば、第2の制御部は、表示処理部によって画像データが読み出されている第2の記憶領域内の位置と、デコードブロック生成部から画像データが書き込まれている第2の記憶領域内の位置とのアドレス差が所定のしきい値以下となった場合には、コーデック処理部におけるブロック処理の開始信号を停止する。従って、画像記憶部に対する読み出し速度が書き込み速度よりも遅い場合であっても、第2の制御部がコーデック処理部におけるブロック処理の開始信号を停止することにより、読み出しが未完了の領域に次の画像データが書き込まれる事態を回避することが可能となる。しかも、動作クロックは停止せず、ブロック処理の開始信号を停止することによって、動作再開時のバグの発生を回避することが可能となる。
【0015】
本発明の第5の態様に係る画像処理装置は、第1〜第4のいずれか一つの態様に係る画像処理装置において特に、前記コーデック処理部は、前記第2の記憶領域に書き込まれる複数のデコードブロックを保持するデコードブロック保持部をさらに有し、前記デコードブロック生成部は、画像内で行方向に並ぶN個(Nは複数)の処理対象ブロックに対応してN個のデコードブロックを順に生成し、当該N個のデコードブロックを行方向に並べて前記デコードブロック保持部に書き込み、前記デコードブロック保持部は、N個のデコードブロックに跨がる行単位でのバースト転送によって、自身が保持しているN個のデコードブロックを前記第2の記憶領域に書き込み、前記画像記憶部は、前記第2の記憶領域に保持しているデコード画像を、行単位でのバースト転送によって前記表示処理部に転送することを特徴とするものである。
【0016】
第5の態様に係る画像処理装置によれば、デコードブロック生成部は、順に生成したN個のデコードブロックを行方向に並べてデコードブロック保持部に書き込む。また、デコードブロック保持部は、N個のデコードブロックに跨がる行単位でのバースト転送によって、自身が保持しているN個のデコードブロックを第2の記憶領域に書き込む。つまり、デコードブロック保持部へのデコードブロックの格納まではブロック単位での処理を行い、デコードブロック保持部から第2の記憶領域へのデコードブロックの書き込みは、ラスタフォーマットを用いたメモリアクセスによって行う。このように、単純なラスタフォーマットを用いたメモリアクセスを行うことにより、デコードブロックを第2の記憶領域へ簡易に書き込むことが可能となる。しかも、行方向に並ぶ複数N個のデコードブロックを対象としてラスタフォーマットでのバースト転送を行うため、効率的なバースト転送を行うことが可能となる。また、画像記憶部は、第2の記憶領域に保持しているデコード画像を、行単位でのバースト転送によって表示処理部に転送する。このように、ラスタフォーマットのデコード画像を第2の記憶領域に格納しておくことにより、表示部において画像を表示するために必要なラスタフォーマットの画像データを、画像記憶部から表示処理部に簡易に転送することが可能となる。
【0017】
本発明の第6の態様に係る画像処理装置は、第5の態様に係る画像処理装置において特に、前記画像記憶部は複数のメモリバンクを有し、前記デコードブロック保持部は、保持しているN個のデコードブロック内の第1の行に属する画素データを、前記画像記憶部の第1のメモリバンクに書き込み、第1の行に隣接する第2の行に属する画素データを、前記第1のメモリバンクとは異なる第2のメモリバンクに書き込むことを特徴とするものである。
【0018】
第6の態様に係る画像処理装置によれば、デコードブロック保持部は、保持しているN個のデコードブロック内の第1の行に属する画素データを、画像記憶部の第1のメモリバンクに書き込み、第1の行に隣接する第2の行に属する画素データを、第1のメモリバンクとは異なる第2のメモリバンクに書き込む。このように、隣接する行の画素データを異なるメモリバンクに書き込むことにより、第1の行に属する画素データの書き込みが完了すると同時に、第2の行に属する画素データの書き込みを開始することができる。その結果、同一のメモリバンクに連続してアクセスする際に必要となる待ち時間の発生を回避できるため、書き込みの所要時間を短縮することが可能となる。
【0019】
本発明の第7の態様に係る画像処理装置は、第5又は第6の態様に係る画像処理装置において特に、前記デコードブロック保持部は、N+1個のデコードブロックを保持し、第1乃至第Nのブロック期間において、前記デコードブロック生成部は、第1乃至第Nのデコードブロックを前記デコードブロック保持部に順に書き込み、第N+1のブロック期間において、前記デコードブロック生成部は、第N+1のデコードブロックを前記デコードブロック保持部に書き込み、前記デコードブロック保持部は、第1乃至第Nのデコードブロックを前記第2の記憶領域に書き込むことを特徴とするものである。
【0020】
第7の態様に係る画像処理装置によれば、第1乃至第Nのブロック期間において、デコードブロック生成部は、第1乃至第Nのデコードブロックをデコードブロック保持部に順に書き込む。そして、第N+1のブロック期間において、デコードブロック生成部は、第N+1のデコードブロックをデコードブロック保持部に書き込み、デコードブロック保持部は、第1乃至第Nのデコードブロックを画像記憶部に書き込む。従って、デコードブロック保持部に対するデコードブロックの書き込み及び読み出しを、同時に行うことが可能となる。しかも、デコードブロック保持部に必要な記憶容量は、N+1個のデコードブロックを保持できる記憶容量で足りるため、2N個のデコードブロックを保持するデコードブロック保持部を実装する場合と比較して、必要な記憶容量を削減することが可能となる。
【0021】
本発明の第8の態様に係る画像処理装置は、第1〜第7のいずれか一つの態様に係る画像処理装置において特に、前記デコードブロック生成部が生成したデコードブロックのYUVフォーマットを、当該デコードブロックが前記第2の記憶領域に書き込まれる前に、前記表示部に適合するYUVフォーマットに変換するフォーマット変換部をさらに備えることを特徴とするものである。
【0022】
第8の態様に係る画像処理装置によれば、フォーマット変換部は、デコードブロック生成部が生成したデコードブロックのYUVフォーマット(例えばYUV420)を、当該デコードブロックが第2の記憶領域に書き込まれる前に、表示部に適合するYUVフォーマット(例えばYUV422)に変換する。従って、デコードブロック生成部が生成したデコードブロックのYUVフォーマットが、表示部に適合するYUVフォーマットとは異なる場合であっても、YUVフォーマットを変換することにより、表示部において画像を表示することが可能となる。
【0023】
本発明の第9の態様に係る画像処理装置は、第1〜第7のいずれか一つの態様に係る画像処理装置において特に、前記表示処理部は、前記第2の記憶領域から読み出したデコード画像のYUVフォーマットを、前記表示部に適合するYUVフォーマットに変換するフォーマット変換部を有することを特徴とするものである。
【0024】
第9の態様に係る画像処理装置によれば、フォーマット変換部は、第2の記憶領域から読み出したデコード画像のYUVフォーマット(例えばYUV420)を、表示部に適合するYUVフォーマット(例えばYUV422)に変換する。従って、第2の記憶領域が保持しているデコード画像のYUVフォーマットが、表示部に適合するYUVフォーマットとは異なる場合であっても、YUVフォーマットを変換することにより、表示部において画像を表示することが可能となる。しかも、第2の記憶領域にはフォーマット変換前のデコード画像を格納すれば良いため、第2の記憶領域に必要な記憶容量を削減することが可能となる。
【発明の効果】
【0025】
本発明によれば、表示用のフォーマット変換を省略することによって遅延時間の短縮、消費電力の低減、及びバス帯域の削減を実現することが可能となる。
【発明を実施するための形態】
【0027】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0028】
図1は、本発明の実施の形態に係る画像処理装置1の構成を簡略化して示す図である。
図1の接続関係で示すように、画像処理装置1は、コーデック処理部2、コーデック制御部3、画像記憶部4、メモリ制御部5、表示処理部6、表示部7、バス8、及びフォーマット変換部9を備えて構成されている。画像記憶部4は、例えばDRAMによって構成されている。本実施の形態の例において、コーデック処理部2が処理する画像データのYUVフォーマットはYUV420であり、表示処理部6が表示部7での画像の表示処理に使用する画像データのYUVフォーマットはYUV422である。フォーマット変換部9は、コーデック処理部2から転送されたYUV420フォーマットの画像データを、表示部7に適合するYUV422フォーマットの画像データに変換する。
【0029】
図2は、画像記憶部4の記憶空間を示す図である。画像記憶部4は、表示用の画像データが格納される記憶領域4Aと、コーデック処理用のデコード画像が記憶される記憶領域4Bとを有している。入力画像の画素数が例えば1920列×1080行である場合には、一例として、1920列×64行分の画像データを格納可能な領域が記憶領域4Aとして確保され、1フレームに相当する1920列×1080行分の画像データを格納可能な領域が記憶領域4Bとして確保される。
【0030】
図3は、コーデック処理部2が有するH.264のデコーダの構成を簡略化して示す図である。
図3の接続関係で示すように、コーデック処理部2は、エントロピー復号部20、逆量子化部21、逆DCT変換部22、動き補償部23、デブロッキングフィルタ24、SRAM25〜27、及び動き探索部28を備えて構成されている。動き補償部23とデブロッキングフィルタ24とによって、デコードブロック生成部30が構成される。
【0031】
以下、本実施の形態に係る画像処理装置1の動作について説明する。
【0032】
図3を参照して、復号対象である入力マクロブロックの符号化データD10は、エントロピー復号部20に入力される。
【0033】
エントロピー復号部20は、符号化データD10に対してCABAC又はCAVLC等を用いてエントロピー復号を行うことにより、復号後の画像データD11を逆量子化部21に入力する。
【0034】
逆量子化部21は、画像データD11に対して逆量子化を行うことにより、逆量子化後の画像データD12を逆DCT変換部22に入力する。
【0035】
逆DCT変換部22は、画像データD12に対して逆DCT変換を行うことにより、入力マクロブロックの予測誤差に相当する逆DCT変換後の画像データD13を動き補償部23に入力する。
【0036】
また、参照画像の画像データD14が記憶領域4Bから読み出されてSRAM27に格納され、SRAM27は参照画像を保持する。
【0037】
動き探索部28は、SRAM27が保持している参照画像に基づいて動き探索を行うことにより、入力マクロブロックの予測ブロックを生成する。予測ブロックの画像データD15は、動き補償部23に入力される。
【0038】
動き補償部23は、予測誤差の画像データD13と予測ブロックの画像データD15とに基づいて入力マクロブロックを復元することにより、デコードブロックを生成する。デコードブロックは、マクロブロックと同等の16列×16行の画素によって構成されている。デコードブロックの画像データD16は、デブロッキングフィルタ24に入力される。
【0039】
デブロッキングフィルタ24は、画像データD16に対して所定のデブロッキングフィルタ処理を行い、その処理後の画像データD17をSRAM25に格納する。つまり、デコードブロック生成部30は、予測誤差(画像データD13)と予測ブロック(画像データD15)とに基づいてデコードブロックを生成し、生成したデコードブロックの画像データD17をSRAM25に格納する。
【0040】
図1に示したメモリ制御部5は、SRAM25に格納されているデコードブロックの画像データD17を、コーデック処理部2でのコーデック処理に適合したアドレスフォーマット(矩形領域内の各行間でアドレスが連続するアドレスフォーマット。以下「コーデックフォーマット」と称す)を用いたメモリアクセスによって、記憶領域4Bに書き込む。入力画像に含まれる全てのマクロブロックに関するデコードブロックの画像データD17が記憶領域4Bに書き込まれることにより、記憶領域4Bはコーデック処理用のデコード画像を保持する。コーデック処理用のデコード画像は、次の入力画像に対する処理において参照画像として使用される。
【0041】
図4は、SRAM25の構成を示す図である。また
図5は、
図4に対応して、SRAM25に対するデコードブロックの書き込み及び読み出しのタイミングを示す図である。
【0042】
図4を参照して、SRAM25は、それぞれにデコードブロックを1個ずつ格納可能な、合計2個の記憶領域F1,F2を有する。
【0043】
図5を参照して、まず、マクロブロック期間T1において、デコードブロックDB1が記憶領域F1に書き込まれる。次に、マクロブロック期間T2において、デコードブロックDB1がコーデックフォーマットのバースト転送によって記憶領域F1から読み出されるとともに、デコードブロックDB2が記憶領域F2に書き込まれる。次に、マクロブロック期間T3において、デコードブロックDB2がコーデックフォーマットのバースト転送によって記憶領域F2から読み出されるとともに、デコードブロックDB3が記憶領域F1に書き込まれる。以降は同様に、記憶領域F1に対する読み出し及び記憶領域F2に対する書き込みと、記憶領域F1に対する書き込み及び記憶領域F2に対する読み出しとが交互に繰り返される。
【0044】
また、デコードブロック生成部30から出力された画像データD17は、フォーマット変換部9に入力される。フォーマット変換部9は、YUV420フォーマットの画像データD17を、表示部7に適合するYUV422フォーマットの画像データD18に変換し、そのフォーマット変換後の画像データD18をSRAM26に格納する。
【0045】
図6は、SRAM26へのデコードブロックの書き込み処理を示す図である。デコードブロック生成部30は、入力画像内で行方向に並ぶ複数N個(この例ではN=4)の入力マクロブロックMB1〜MB4に対応して、4個のデコードブロックDB1〜DB4を順に生成する。そして、YUVフォーマットを変換した後、当該4個のデコードブロックDB1〜DB4を行方向に並べてSRAM26に書き込む。具体的には以下の通りである。
【0046】
まず、
図6の(A)に示すように、第1のマクロブロック期間においてデコードブロック生成部30は、入力マクロブロックMB1に対応してデコードブロックDB1を生成する。そして、デコードブロックDB1をSRAM26に書き込む。
【0047】
次に、
図6の(B)に示すように、第2のマクロブロック期間においてデコードブロック生成部30は、入力マクロブロックMB1に並ぶ入力マクロブロックMB2に対応して、デコードブロックDB2を生成する。そして、デコードブロックDB2をデコードブロックDB1に並べてSRAM26に書き込む。
【0048】
次に、
図6の(C)に示すように、第3のマクロブロック期間においてデコードブロック生成部30は、入力マクロブロックMB2に並ぶ入力マクロブロックMB3に対応して、デコードブロックDB3を生成する。そして、デコードブロックDB3をデコードブロックDB2に並べてSRAM26に書き込む。
【0049】
次に、
図6の(D)に示すように、第4のマクロブロック期間においてデコードブロック生成部30は、入力マクロブロックMB3に並ぶ入力マクロブロックMB4に対応して、デコードブロックDB4を生成する。そして、デコードブロックDB4をデコードブロックDB3に並べてSRAM26に書き込む。
【0050】
図7,8は、SRAM26から記憶領域4Aにデコードブロックを転送する処理を示す図である。
図1に示したメモリ制御部5は、SRAM26に格納されているデコードブロックの画像データD18を、ラスタフォーマットを用いたメモリアクセスによって記憶領域4Aに書き込む。つまり、SRAM26が保持している4個のデコードブロックDB1〜DB4に跨がる行単位(64列×1行)でのバースト転送を、列方向に16回繰り返すことによって、デコードブロックDB1〜DB4が記憶領域4Aに書き込まれる。記憶領域4Aにはデコードブロックが4ブロック単位で順に書き込まれ、本実施の形態の例では、記憶領域4Aは表示用のデコード画像として最大で120×4個のデコードブロックを同時に保持可能である。
【0051】
また、画像記憶部4は複数(この例では8個)のメモリバンクBK1〜BK8を有しており、隣接する行の画素データは異なるメモリバンクに書き込まれる。
図8を参照して、まず、第0行に属する64列×1行の画素データR0が画像記憶部4のメモリバンクBK1に書き込まれ、次に、第1行に属する画素データR1がメモリバンクBK2に書き込まれ、次に、第2行に属する画素データR2がメモリバンクBK3に書き込まれる。以下同様に、第3行〜第7行に属する画素データR3〜R7が、それぞれメモリバンクBK4〜BK8に順に書き込まれる。さらに、第8行〜第15行に属する画素データR8〜R15が、それぞれメモリバンクBK1〜BK8に順に書き込まれる。
【0052】
また、本実施の形態の例では、デコードブロック生成部30が生成するデコードブロックのYUVフォーマットはYUV420であるため、偶数行に属する画素データには輝度データのみが含まれ、奇数行に属する画素データには輝度データ及び色差データが含まれる。具体的には、偶数行に関しては1画素あたり1個の輝度データが含まれ、奇数行に関しては1画素あたり1個の輝度データと1個の色差データとが含まれる。つまり、奇数行のデータ量は偶数行のデータ量の2倍となる。従って、奇数行のデータ転送におけるバースト長を、偶数行のバースト転送におけるバースト長の2倍に設定することにより、偶数行に関しては1回のバースト転送によって1行分の輝度データが記憶領域4Aに書き込まれ、奇数行に関しては1回のバースト転送によって1行分の輝度データ及び色差データが記憶領域4Aに書き込まれる。なお、上記とは逆に、偶数行に属する画素データには輝度データ及び色差データが含まれ、奇数行に属する画素データには輝度データのみが含まれていてもよい。この場合には、偶数行のデータ転送におけるバースト長を、奇数行のバースト転送におけるバースト長の2倍に設定することにより、奇数行に関しては1回のバースト転送によって1行分の輝度データが画像記憶部4に書き込まれ、偶数行に関しては1回のバースト転送によって1行分の輝度データ及び色差データが画像記憶部4に書き込まれる。
【0053】
なお、デコードブロック生成部30が生成するデコードブロックのYUVフォーマットはYUV422であってもよく、この場合には偶数行と奇数行とでデータ量は等しいため、データ転送におけるバースト長は偶数行と奇数行とで共通となる。
【0054】
図9は、SRAM26の構成に関する第1の例を示す図である。また
図10は、
図9に対応して、SRAM26に対するデコードブロックの書き込み及び読み出しのタイミングを示す図である。
【0055】
図9を参照して、SRAM26は、それぞれにデコードブロックを1個ずつ格納可能な、合計N+1個(この例では5個)の記憶領域X1〜X5を有する。
【0056】
図10を参照して、まず、マクロブロック期間T1〜T4において、デコードブロックDB1〜DB4が記憶領域X1〜X4にそれぞれ書き込まれる。次に、マクロブロック期間T5において、デコードブロックDB1〜DB4がラスタフォーマットのバースト転送によって記憶領域X1〜X4から読み出されるとともに、デコードブロックDB5が記憶領域X5に書き込まれる。以降は同様に、マクロブロック期間T6〜T8において、デコードブロックDB6〜DB8が記憶領域X1〜X3にそれぞれ書き込まれ、マクロブロック期間T9において、デコードブロックDB5,DB6,DB7,DB8がラスタフォーマットのバースト転送によって記憶領域X5,X1,X2,X3から読み出されるとともに、デコードブロックDB9が記憶領域X4に書き込まれる。
【0057】
図11は、SRAM26の構成に関する第2の例を示す図である。また
図12は、
図11に対応して、SRAM26に対するデコードブロックの書き込み及び読み出しのタイミングを示す図である。
【0058】
図11を参照して、SRAM26は、それぞれにデコードブロックを1個ずつ格納可能な、合計2N個(この例では8個)の記憶領域X1〜X8を有する。
【0059】
図12を参照して、まず、マクロブロック期間T1〜T4において、デコードブロックDB1〜DB4が記憶領域X1〜X4にそれぞれ書き込まれる。次に、マクロブロック期間T5において、デコードブロックDB1〜DB4がラスタフォーマットのバースト転送によって記憶領域X1〜X4から読み出されるとともに、デコードブロックDB5が記憶領域X5に書き込まれる。以降は同様に、マクロブロック期間T6〜T8において、デコードブロックLDB6〜LDB8が記憶領域X6〜X8にそれぞれ書き込まれ、マクロブロック期間T9において、デコードブロックDB5〜DB8がラスタフォーマットのバースト転送によって記憶領域X5〜X8から読み出されるとともに、デコードブロックDB9が記憶領域X1に書き込まれる。
【0060】
図1を参照して、表示処理部6は、記憶領域4Aから表示用のデコード画像を読み出し、当該デコード画像に基づいて表示部7に画像を表示する。本実施の形態の例では、64行分の画像データを格納可能な領域が記憶領域4Aとして確保されている。表示処理部6は、デコードブロック生成部30から記憶領域4Aへの所定数のライン分(例えば32行分)のデコードブロックの書き込みが完了した時点で、記憶領域4Aから表示処理部6への画像データの転送を開始する。
【0061】
図13は、記憶領域4Aから表示処理部6に画像データを転送する処理を示す図である。記憶領域4Aから表示処理部6への画像データの転送は、画像の左端から右端に跨がる1行単位でのラスタフォーマットを用いたデータ転送によって行われる。
【0062】
まず、
図13の(A)に示すように、画像の左上角を起点として、記憶領域4Aが保持している4個のローカルデコードブロックに跨がる行単位でのバースト転送を行うことによって、64列×1行分の画像データが表示処理部6へ転送される。
【0063】
次に、
図13の(B)及び(C)に示すように、画像の1行目に関して同様のデータ転送を右方向に進めることによって、画像データが64列×1行分ずつ表示処理部6へ転送される。
【0064】
1行目に関するデータ転送が完了すると、次に、
図13の(D)に示すように、画像の2行目の左端から順に同様のデータ転送を右方向に進めることによって、画像データが64列×1行分ずつ表示処理部6へ転送される。以降は同様のデータ転送が繰り返されることによって、記憶領域4Aから表示処理部6に1フレーム分の画像データが転送される。
【0065】
また、
図1に示したメモリ制御部5は、デコードブロック生成部30から画像データが書き込まれている記憶領域4A内の位置を、ライトポインタによって管理するとともに、表示処理部6へのデータ転送のために画像データが読み出されている記憶領域4A内の位置を、リードポインタによって管理している。メモリ制御部5は、リードポインタとライトポインタとのアドレス差が所定のしきい値Th(例えば16ライン分に相当するアドレス差)以下となった場合には、その旨の通知信号をコーデック制御部3に送信する。当該通知信号を受信したコーデック制御部3は、デコードブロック生成部30から記憶領域4Aへの画像データの書き込みを一時的に停止する。
【0066】
停止制御の第1の例として、コーデック制御部3は、コーデック処理部2の動作クロックを停止する。動作クロックは、コーデック処理部2内の各回路を同期制御するための信号である。動作クロックを停止することによってコーデック処理部2内の全ての回路の動作が停止されるため、デコードブロック生成部30から記憶領域4Aへの画像データの書き込みも停止される。
【0067】
停止制御の第2の例として、コーデック制御部3は、コーデック処理部2におけるマクロブロック処理の開始信号(マクロブロックスタート信号)を停止する。マクロブロックスタート信号は、あるマクロブロックに対するデコード処理が完了した時点で、次のマクロブロックに対するデコード処理を開始させるための信号である。マクロブロックスタート信号を停止することによって次のマクロブロックに対するデコード処理の開始が待機されるため、デコードブロック生成部30から記憶領域4Aへの画像データの書き込みも停止される。
【0068】
記憶領域4Aへの画像データの書き込みが停止している間に記憶領域4Aから表示処理部6へのデータ転送が進行し、リードポインタとライトポインタとのアドレス差がしきい値Thを超えた場合には、メモリ制御部5は、その旨の通知信号をコーデック制御部3に送信する。当該通知信号を受信したコーデック制御部3は、デコードブロック生成部30から記憶領域4Aへの画像データの書き込みを再開する。
【0069】
このように本実施の形態に係る画像処理装置1によれば、メモリ制御部5(第1の制御部)は、デコードブロック生成部30が生成したデコードブロックの画像データを、コーデック処理部2でのコーデック処理に適合した第1のアドレスフォーマット(コーデックフォーマット)で記憶領域4B(第1の記憶領域)に書き込むとともに、表示処理部6での表示処理に適合した第2のアドレスフォーマット(ラスタフォーマット)で記憶領域4A(第2の記憶領域)に書き込む。これにより、表示処理部6は、記憶領域4Aから読み出したラスタフォーマットのデコード画像に基づいて、表示部7において画像を表示することができる。従って、画像記憶部4から読み出したコーデックフォーマットのデコード画像をラスタフォーマットのデコード画像に変換するフォーマット変換回路の実装を省略することができる。その結果、フォーマット変換回路から画像記憶部4へのアクセスが不要となるため、遅延時間の短縮、消費電力の低減、及びバス帯域の削減を実現することが可能となる。
【0070】
また、本実施の形態に係る画像処理装置1によれば、表示処理部6は、デコードブロック生成部30から記憶領域4Aへの所定数のライン分のデコードブロックの書き込みが完了した時点で、記憶領域4Aからの画像データの読み出しを開始する。従って、表示処理部6が記憶領域4Aから画像データの読み出しを開始する時点では、記憶領域4A内に十分な画像データが蓄積されているため、表示部7において動画像を途切れなく表示することが可能となる。しかも、記憶領域4Aとして、1フレーム分の画像データを蓄積可能な領域を画像記憶部4内に確保する必要がないため、表示用の記憶領域4Aを設定することに伴う画像記憶部4の記憶領域の減少を、最小限に抑制することが可能となる。
【0071】
また、本実施の形態に係る画像処理装置1によれば、コーデック制御部3(第2の制御部)は、表示処理部6によって画像データが読み出されている記憶領域4A内の位置と、デコードブロック生成部30から画像データが書き込まれている記憶領域4A内の位置とのアドレス差が所定のしきい値Th以下となった場合には、コーデック処理部2の動作クロックを停止する。従って、画像記憶部4に対する読み出し速度が書き込み速度よりも遅い場合であっても、コーデック制御部3がコーデック処理部2の動作クロックを停止することにより、読み出しが未完了の領域に次の画像データが書き込まれる事態を回避することが可能となる。しかも、動作クロックを停止することによって、コーデック処理部2における消費電力を低減することが可能となる。
【0072】
また、本実施の形態に係る画像処理装置1によれば、コーデック制御部3は、表示処理部6によって画像データが読み出されている記憶領域4A内の位置と、デコードブロック生成部30から画像データが書き込まれている記憶領域4A内の位置とのアドレス差が所定のしきい値Th以下となった場合には、コーデック処理部2におけるブロック処理の開始信号を停止する。従って、画像記憶部4に対する読み出し速度が書き込み速度よりも遅い場合であっても、コーデック制御部3がコーデック処理部2におけるブロック処理の開始信号を停止することにより、読み出しが未完了の領域に次の画像データが書き込まれる事態を回避することが可能となる。しかも、動作クロックは停止せず、ブロック処理の開始信号を停止することによって、動作再開時のバグの発生を回避することが可能となる。
【0073】
また、本実施の形態に係る画像処理装置1によれば、デコードブロック生成部30は、順に生成したN個のデコードブロックを行方向に並べてSRAM26(デコードブロック保持部)に書き込む。また、SRAM26は、N個のデコードブロックに跨がる行単位でのバースト転送によって、自身が保持しているN個のデコードブロックを記憶領域4Aに書き込む。つまり、SRAM26へのデコードブロックの格納まではブロック単位での処理を行い、SRAM26から記憶領域4Aへのデコードブロックの書き込みは、ラスタフォーマットを用いたメモリアクセスによって行う。このように、単純なラスタフォーマットを用いたメモリアクセスを行うことにより、デコードブロックを記憶領域4Aへ簡易に書き込むことが可能となる。しかも、行方向に並ぶ複数N個のデコードブロックを対象としてラスタフォーマットでのバースト転送を行うため、効率的なバースト転送を行うことが可能となる。また、画像記憶部4は、記憶領域4Aに保持しているデコード画像を、行単位でのバースト転送によって表示処理部6に転送する。このように、ラスタフォーマットのデコード画像を記憶領域4Aに格納しておくことにより、表示部7において画像を表示するために必要なラスタフォーマットの画像データを、画像記憶部4から表示処理部6に簡易に転送することが可能となる。
【0074】
また、本実施の形態に係る画像処理装置1によれば、SRAM26は、保持しているN個のデコードブロック内の第1の行に属する画素データを、画像記憶部4の第1のメモリバンクに書き込み、第1の行に隣接する第2の行に属する画素データを、第1のメモリバンクとは異なる第2のメモリバンクに書き込む。このように、隣接する行の画素データを異なるメモリバンクに書き込むことにより、第1の行に属する画素データの書き込みが完了すると同時に、第2の行に属する画素データの書き込みを開始することができる。その結果、同一のメモリバンクに連続してアクセスする際に必要となる待ち時間の発生を回避できるため、書き込みの所要時間を短縮することが可能となる。
【0075】
また、
図9,10に示した例によれば、第1乃至第Nのブロック期間において、デコードブロック生成部30は、第1乃至第NのデコードブロックをSRAM26に順に書き込む。そして、第N+1のブロック期間において、デコードブロック生成部30は、第N+1のデコードブロックをSRAM26に書き込み、SRAM26は、第1乃至第Nのデコードブロックを画像記憶部4に書き込む。従って、SRAM26に対するデコードブロックの書き込み及び読み出しを、同時に行うことが可能となる。しかも、SRAM26に必要な記憶容量は、N+1個のデコードブロックを保持できる記憶容量で足りるため、2N個のデコードブロックを保持するSRAM26を実装する
図11,12に示した例と比較して、必要な記憶容量を削減することが可能となる。
【0076】
また、本実施の形態に係る画像処理装置1によれば、フォーマット変換部9は、デコードブロック生成部30が生成したデコードブロックのYUVフォーマット(例えばYUV420)を、当該デコードブロックが記憶領域4Aに書き込まれる前に、表示部7に適合するYUVフォーマット(例えばYUV422)に変換する。従って、デコードブロック生成部30が生成したデコードブロックのYUVフォーマットが、表示部7に適合するYUVフォーマットとは異なる場合であっても、YUVフォーマットを変換することにより、表示部7において画像を表示することが可能となる。
【0077】
<変形例1>
上記実施の形態では、デコーダが生成するデコード画像を表示部7で表示する例について説明したが、エンコーダが生成するローカルデコード画像を表示部7で表示してもよい。
【0078】
<変形例2>
上記実施の形態では、デコードブロック生成部30が生成したデコードブロックに対して、フォーマット変換部9がYUV420からYUV422へのフォーマット変換を行い、フォーマット変換後のデコードブロックを記憶領域4Aに書き込む例について説明した。この例とは異なり、フォーマット変換部9によるフォーマット変換を省略し、YUV420のデコードブロックを記憶領域4Aに書き込んでもよい。
【0079】
図14は、本変形例に係る表示処理部6の構成を簡略化して示す図である。表示処理部6は、SRAM41及びフォーマット変換部42を備えて構成されている。記憶領域4Aから読み出されたデコード画像の画像データD30は、SRAM41を介してフォーマット変換部42に入力される。フォーマット変換部42は、デコード画像のYUVフォーマットをYUV420からYUV422に変換し、その変換後の画像データD31を表示部7に入力する。
【0080】
本変形例に係る画像処理装置1によれば、フォーマット変換部42は、記憶領域4Aから読み出したデコード画像のYUVフォーマット(例えばYUV420)を、表示部7に適合するYUVフォーマット(例えばYUV422)に変換する。従って、記憶領域4Aが保持しているデコード画像のYUVフォーマットが、表示部7に適合するYUVフォーマットとは異なる場合であっても、YUVフォーマットを変換することにより、表示部7において画像を表示することが可能となる。しかも、記憶領域4Aにはフォーマット変換前のデコード画像を格納すれば良いため、記憶領域4Aに必要な記憶容量を削減することが可能となる。