(57)【要約】【課題】データと誤り制御符号とをメモリに格納する場合におけるメモリアクセス量を抑制する。【解決手段】データ処理装置１は、メモリ６への記憶対象のデータである所定のデータ長の第１のデータに所定の圧縮処理を行い第２のデータを生成するデータ圧縮部２と、前記第１のデータ又は前記第２のデータに対する誤り制御符号を生成するコード生成部３と、データ圧縮部２により生成された前記第２のデータと、コード生成部３により生成された誤り制御符号とを結合して第３のデータを生成する結合部４と、結合部４により生成された前記第３のデータを前記所定のデータ長単位でメモリ６に転送する転送部５とを有する。【選択図】図２
2019080291.tif 000002
【特許請求の範囲】
【請求項１】
メモリへの記憶対象のデータである所定のデータ長の第１のデータに所定の圧縮処理を行い第２のデータを生成するデータ圧縮部と、
前記第１のデータ又は前記第２のデータに対する誤り制御符号を生成する第１のコード生成部と、
前記データ圧縮部により生成された前記第２のデータと、前記第１のコード生成部により生成された誤り制御符号とを結合して第３のデータを生成する結合部と、
前記結合部により生成された前記第３のデータを前記所定のデータ長単位で前記メモリに転送する転送部と
を有するデータ処理装置。
【請求項２】
前記第１のデータの利用用途に応じて、前記誤り制御符号の種類を指定する種類指定部をさらに有し、
前記第１のコード生成部は、前記種類指定部により指定された種類の前記誤り制御符号を生成する
請求項１に記載のデータ処理装置。
【請求項３】
前記第１のデータは、画像データであり、
前記種類指定部は、前記第１のデータが、インター予測のために他のピクチャに参照されるピクチャであるか否かに応じて、前記誤り制御符号の種類を指定する
請求項２に記載のデータ処理装置。
【請求項４】
前記種類指定部は、
前記第１のデータが他のピクチャに参照されるピクチャである場合、第１種の誤り制御符号を指定し、
前記第１のデータが他のピクチャに参照されるピクチャでない場合、第２種の誤り制御符号を指定し、
前記第１種の誤り制御符号は、前記第２種の誤り制御符号よりも、符号長が長い
請求項３に記載のデータ処理装置。
【請求項５】
前記種類指定部は、前記第１のデータを用いる処理の重要度に応じて、前記誤り制御符号の種類を指定する
請求項２に記載のデータ処理装置。
【請求項６】
前記種類指定部は、
前記処理の重要度が第１の重要度である場合、第１種の誤り制御符号を指定し、
前記処理の重要度が前記第１の重要度よりも低い第２の重要度である場合、第２種の誤り制御符号を指定し、
前記第１種の誤り制御符号は、前記第２種の誤り制御符号よりも、符号長が長い
請求項５に記載のデータ処理装置。
【請求項７】
前記第１のデータは、車両に設けられた複数のカメラのうちのいずれかのカメラにより撮像された映像データであり、
前記データ処理装置は、前記第１のデータが前記複数のカメラのうちのいずれにより撮像された映像データであるか否かに応じて、前記誤り制御符号の種類を指定する種類指定部をさらに有し、
前記第１のコード生成部は、前記種類指定部により指定された種類の前記誤り制御符号を生成する
請求項１に記載のデータ処理装置。
【請求項８】
前記第１のデータは、画像データであり、
前記所定の圧縮処理は、ロスレス圧縮であり、
前記誤り制御符号は、符号長が４ビットである
請求項１に記載のデータ処理装置。
【請求項９】
前記メモリから取得された前記第３のデータを用いて、前記所定の圧縮処理に対応する伸長処理を行うデータ伸長部と、
前記メモリから取得された前記第３のデータに含まれる前記誤り制御符号を用いて誤りの検出又は訂正を行う検出部と
をさらに有する請求項１に記載のデータ処理装置。
【請求項１０】
符号化対象の画像からビットストリームを生成する所定の動画コーデック処理を行うコーデック部をさらに有し、
前記第１のデータは、前記所定の動画コーデック処理において予測画像の生成に用いられる画像データである
請求項１に記載のデータ処理装置。
【請求項１１】
前記ビットストリームに対する誤り制御符号を生成する第２のコード生成部をさらに有し、
前記転送部は、前記ビットストリームと前記第２のコード生成部が生成した前記誤り制御符号とをそれぞれ前記メモリに転送する
請求項１０に記載のデータ処理装置。
【請求項１２】
前記第２のデータのデータ長と前記第１のコード生成部が生成した誤り制御符号の符号長の合計が前記所定のデータ長以下であるか否かを判定する判定部をさらに有し、
前記判定部により前記合計が前記所定のデータ長を超えると判定された場合、前記結合部は結合を行わず、前記転送部は前記第１のデータ又は前記第２のデータと前記誤り制御符号とをそれぞれ前記メモリに転送する
請求項１に記載のデータ処理装置。
【請求項１３】
メモリへの記憶対象のデータである所定のデータ長の第１のデータに所定の圧縮処理を行い第２のデータを生成し、
前記第１のデータ又は前記第２のデータに対する誤り制御符号を生成し、
前記第２のデータと、前記誤り制御符号とを結合して第３のデータを生成し、
前記第３のデータを前記所定のデータ長単位で前記メモリに転送する
データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置及びデータ処理方法に関し、例えば誤り制御符号をメモリに記憶させる技術に関する。
【背景技術】
【０００２】
データに発生するエラーを検知又は訂正するための技術である誤り検出符号又は誤り訂正符号が知られている。以下、誤り検出符号及び誤り訂正符号をまとめて、誤り制御符号と称す。データをメモリに格納する場合、格納されたデータの読み出し時にエラーの発生を確認することができるように、データと、このデータについての誤り制御符号とをメモリに格納する。
【０００３】
特許文献１は、これに関連する技術について開示している。特許文献１は、メモリの記憶領域を効率的に利用する信号処理装置として、供給された固定長のデータから固定長の誤り訂正符号を生成して付加するエラー訂正部と、エラー訂正部により拡張されたデータ幅のデータを格納するメモリと、メモリに格納されたデータを読みだして、誤り訂正符号に基づいてエラー訂正するエラー訂正部とを有する信号処理装置について開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−６１００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データとこのデータに対する誤り制御符号とをメモリに格納する場合、データのみならず誤り制御符号もメモリに転送する必要があるため、データのみを転送する場合に比べメモリアクセス量が増大する。したがって、データと誤り制御符号とをメモリに格納する場合におけるメモリアクセス量の抑制が求められている。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、データ処理装置は、データ圧縮部により生成されたデータと、コード生成部により生成された誤り制御符号とを結合したデータを生成する結合部と、結合されたデータを所定のデータ長単位でメモリに転送する転送部とを有する。
【発明の効果】
【０００８】
前記一実施の形態によれば、データと誤り制御符号とをメモリに格納する場合におけるメモリアクセス量を抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】比較例にかかるデータ処理装置の構成を示すブロック図である。
【図２】実施の形態の概要にかかるデータ処理装置の構成の一例を示すブロック図である。
【図３】結合部による結合の様子を模式的に示す図である。
【図４】実施の形態にかかるデータ処理装置の構成の一例を示すブロック図である。
【図５】実施の形態１にかかるデータ処理装置のより詳細な構成をＶｉｄｅｏコーデックシステムに着目して示したブロック図である。
【図６】実施の形態１にかかるデータ処理装置において、Ｖｉｄｅｏコーデックコアから出力された画像データがＤＤＲメモリに書き込まれる際の動作の流れの一例を示すフローチャートである。
【図７】実施の形態１にかかるデータ処理装置において、データコード格納領域に格納されたデータが読み出される際の動作の流れの一例を示すフローチャートである。
【図８】実施の形態１を動画のエンコード処理に適用した場合のＶｉｄｅｏコーデックシステムの構成の一例を示すブロック図である。
【図９】実施の形態１を動画のデコード処理に適用した場合のＶｉｄｅｏコーデックシステムの構成の一例を示すブロック図である。
【図１０】実施の形態３にかかるデータ処理装置のより詳細な構成をＶｉｄｅｏコーデックシステムに着目して示したブロック図である。
【図１１】実施の形態３にかかるデータ処理装置において、Ｖｉｄｅｏコーデックコアから出力された画像データがＤＤＲメモリに書き込まれる際の動作の流れの一例を示すフローチャートである。
【図１２】実施の形態３にかかるデータ処理装置において、データコード格納領域に格納されたデータが読み出される際の動作の流れの一例を示すフローチャートである。
【図１３】実施の形態４にかかるデータ処理装置のより詳細な構成をＶｉｄｅｏコーデックシステムに着目して示したブロック図である。
【図１４】実施の形態４にかかるデータ処理装置において、Ｖｉｄｅｏコーデックコアから出力された画像データがＤＤＲメモリに書き込まれる際の動作の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１１】
＜事前の検討＞
実施の形態の説明をする前に、発明者が事前に検討した内容について説明する。
図１は、比較例にかかるデータ処理装置９の構成を示すブロック図である。データ処理装置９は、Ｖｉｄｅｏコーデックシステム２００と、バスシステム５００と、ＤＤＲ（Ｄｏｕｂｌｅ ＤＡＴＡ Ｒａｔｅ）メモリ７００と、ＤＤＲメモリコントローラ６００とを有し、動画のコーデック処理を行う装置である。
【００１２】
Ｖｉｄｅｏコーデックシステム２００は、コーデック処理に際し、外部メモリであるＤＤＲメモリ７００にデータを格納する。また、Ｖｉｄｅｏコーデックシステム２００は、コーデック処理に際し、ＤＤＲメモリ７００に格納されたデータを読み出す。なお、ＤＤＲメモリ７００に対するアクセスは、ＤＤＲメモリコントローラ６００により制御される。
【００１３】
ＤＤＲメモリ７００に格納されたデータには、エラー（すなわち、データ化け）が発生することがある。このため、比較例にかかるデータ処理装置９では、エラーを検出又は訂正するために、誤り制御符号に関する処理を行う機構として、バスシステム５００は、誤り制御符号生成部５０１と誤り検出／誤り訂正部５０２とを有している。
【００１４】
誤り制御符号生成部５０１は、誤り制御符号をライトデータから生成し、ライトデータの格納領域とは別の領域に格納する。具体的には、ライトデータは、ＤＤＲメモリ７００のデータ格納領域７０３に格納され、誤り制御符号生成部５０１により生成された誤り制御符号は、ＤＤＲメモリ７００のコード格納領域７０２に格納される。データ格納領域７０３に格納されたデータが読み出されるときは、このデータに対応する誤り制御符号がコード格納領域７０２から読み出され、誤り検出／誤り訂正部５０２によってエラーの検出又は訂正が行われる。なお、比較例かかるデータ処理装置９において、誤り制御符号は、Ｈａｍｍｉｎｇ符号を用いており、その符号長は、８バイトのデータに対して１バイトの符号長である。
【００１５】
コーデック処理では、画像データの転送と、それ以外のデータ（より具体的には、ビットストリームなど）の転送という２種類のメモリアクセスがある。このうち、画像データの転送量がコーデック処理の全転送量の約８５％を占める。そのため、転送時に消費されるメモリ帯域を削減するために、比較例にかかるデータ処理装置９では、画像データに対して可逆圧縮を適用している。すなわち、Ｖｉｄｅｏコーデックシステム２００は、ロスレス圧縮部２９０と、ロスレス伸長部２９１とを有する。
【００１６】
ロスレス圧縮部２９０は、Ｖｉｄｅｏコーデックシステム２００のＶｉｄｅｏコーデックコア２１０のライトインタフェース（ライトＩ／Ｆ）２１１から出力された画像データに対しロスレス圧縮を行う。なお、Ｖｉｄｅｏコーデックコア２１０は、エンコード処理又はデコード処理を行う構成部である。
図１に示すように、ロスレス圧縮部２９０により圧縮された画像データと、画像データ以外のデータ（ビットストリームなど）は、セレクタ２９２を介して誤り制御符号生成部５０１に入力される。したがって、ロスレス圧縮部２９０により圧縮された画像データも、画像データ以外のデータも、いずれも誤り制御符号生成部５０１により誤り制御符号が生成される。そして、圧縮された画像データ、及び、画像データ以外のデータは、データ格納領域７０３に記憶され、生成された誤り制御符号は、コード格納領域７０２に格納される。このように、比較例にかかるデータ処理装置９では、Ｖｉｄｅｏコーデックコアから出力される２種類のデータを区別せず誤り制御符号を生成し、ＤＤＲメモリ７００に格納する。
【００１７】
また、ロスレス伸長部２９１は、誤り検出／誤り訂正部５０２から出力された圧縮された画像データに対し伸長処理を行い、画像データを復元する。そして、図１に示すように、誤り検出／誤り訂正部５０２から出力された画像データ以外のデータ、及びロスレス伸長部２９１から出力された画像データは、セレクタ２９３を介して、Ｖｉｄｅｏコーデックコア２１０のリードインタフェース（リードＩ／Ｆ）２１２に入力され、Ｖｉｄｅｏコーデックコア２１０の処理に用いられる。
【００１８】
ＤＤＲメモリ７００のアクセス効率を考えると、１回あたりのアクセスは、連続するアドレスに対する、ある程度の長さを有するアクセスであることが望ましい。これは、１アクセスあたりのデータ長が短すぎると、アクセス処理に付随する処理（例えば、メモリバンクの切替のための処理）をアクセス処理の実行中に並列させることが難しく、アクセス効率が悪くなってしまうためである。しかし、画像データのアクセスの観点では、１回のアクセスによりアクセスするデータのデータ長が大きすぎると、不必要なデータを読み込むことになりメモリ帯域の総量が増大してしまう。このため、ＤＤＲメモリ７００には、１アクセスあたりのデータ長として最適な値が存在する。例えば、動画のコーデック処理では、ＤＤＲメモリ７００のアクセス効率とメモリ帯域の総量とを考慮した最適値として、１アクセスあたり２５６バイトのデータにアクセスしている。すなわち、ライトＩ／Ｆ２１１は、２５６バイト毎のデータを出力する。
【００１９】
ＤＤＲメモリ７００には最小のアクセス単位があり、例えばＤＤＲメモリ７００が、３２ｂｉｔのインタフェースを有するＬＰＤＤＲ４（Low Power DDR４）である場合、最小のアクセス単位は６４バイト（３２ｂｉｔ×１６バースト)である。これは、６４バイト未満のいかなるアクセスでも、必ず６４バイト単位の転送量が発生することを意味する。これに対し、２５６バイトのデータに対応する誤り制御符号の符号長は３２バイトである。したがって、画像データは可逆圧縮が適用されるため、転送データ長は２５６バイトより小さくなることがあるが、この画像データに対応する誤り制御符号については、必ず６４バイトの転送が発生する。
【００２０】
上述の通り、コーデック処理では、画像データの転送と、それ以外のデータ（ビットストリーム）の転送という２種類のメモリアクセスがある。画像データは、１３×１３画素や９×９画素といった矩形領域単位で、ランダムな順にアクセスされることが多い。これに対し、それ以外のデータはアドレス順にアクセスされることが多い。
【００２１】
このため、画像以外のデータの誤り制御符号については、キャッシュメモリ等を設けることにより、ＤＤＲメモリ７００から一度読み出した誤り制御符号を再利用することが可能である。具体的には、次のような再利用が可能である。誤り制御符号の１回の読み出しにおいて、読み出し対象のデータ（データＤ１）の誤り制御符号（コードＣ１）と、読み出し対象ではないデータ（データＤ２）の誤り制御符号（コードＣ２）とを読み出し、２つの誤り制御符号（コードＣ１、Ｃ２）をキャッシュメモリに記憶しておく。その後、データＤ２が読み出し対象となり、データＤ２の読み出しアクセスが発生した場合、コードＣ２についてはＤＤＲメモリ７００から読み出す必要はなく、キャッシュメモリから読み出せばよい。
【００２２】
しかしながら、画像データはランダムな順にアクセスされるため、６４バイトの誤り制御符号（すなわち、２つ（＝６４バイト／３２バイト）の誤り制御符号）をキャッシュメモリ等に蓄えても、再利用される前に、キャッシュメモリから誤り制御符号が追い出されてしまうため、再利用される確率は低い。そのためワーストケースでは、１回のデータアクセス（２５６バイト以下）毎に、６４バイトの誤り制御符号の転送が発生する。
【００２３】
ここで、比較例にかかるデータ処理装置９における転送量について検討する。下記の式（１）は、圧縮なしかつ誤り制御符号の付加なしの転送量を１００％としたときの、圧縮ありかつ誤り制御符号の付加ありの転送量の相対値Ｖを示す式である。なお、式１において、Ｒは、ロスレス圧縮による平均圧縮率を示している。Ｒは、０から１の範囲のいずれかの値であり、１の場合、データが全く圧縮されないことを示す。また、式１においては、ＤＤＲメモリ７００に転送される画像データの割合を８５％とし、ＤＤＲメモリ７００に転送されるそれ以外のデータの割合を１５％としている。さらに、画像以外のデータの転送は、アドレス順で行われるため、キャッシュメモリを用いることで誤り制御符号の再利用が有効になると仮定した。つまり、画像以外のデータの誤り制御符号の転送は、実質的に３２バイトの転送で行われると仮定した。
【００２４】
相対値Ｖ＝（８５％×（２５６×Ｒ＋６４）＋１５％×(２５６＋３２)）／（８５％×２５６＋１５％×２５６）    ・・・（１）
【００２５】
Ｒを０．１から１．０まで０．１毎に変化させたときの転送量の相対値Ｖを下記表に示す。
【００２６】
【表１】
2019080291.tif 000003
【００２７】
表１から次のことが分かる。ロスレス圧縮により３０％の画像データ量が削減できても、誤り制御符号を付加すると、相対値Ｖは９８％となってしまい、ほぼ圧縮前と等しい転送帯域を必要とする。また、ロスレス圧縮により５０％の画像データ量が削減できても、誤り制御符号を付加すると、全体的データ量は約２０％の削減にとどまってしまう。そして、ロスレス圧縮による画像データの削減量が３０％より少なくなると、圧縮前よりもから転送帯域が増えてしまう。例えば、ロスレス圧縮による削減が０の場合は、２３％の転送帯域の増加となる。
【００２８】
このように、ロスレス圧縮を適用して転送帯域を削減しても、誤り制御符号を付加すると、それによる転送帯域の増加により、ロスレス圧縮による帯域削減効果を打ち消してしまう。よって、データと誤り制御符号とをメモリに格納する場合におけるメモリアクセス量を抑制することが期待されている。
【００２９】
＜実施の形態の概要＞
次に、実施の形態の概要について説明する。
図２は、実施の形態の概要にかかるデータ処理装置１の構成の一例を示すブロック図である。図２に示すように、データ処理装置１は、データ圧縮部２と、コード生成部３と、結合部４と、転送部５とを有し、外部のメモリ６にアクセスを行う。なお、図２に示す例においては、メモリ６は、データ処理装置１の外部に設けられているが、データ処理装置１がメモリ６を有してもよい。例えば、メモリ６は、ＤＤＲメモリであるが、これに限られない。
【００３０】
データ圧縮部２は、メモリ６への記憶対象のデータである所定のデータ長の第１のデータに所定の圧縮処理を行い第２のデータを生成する。なお、第１のデータは、例えば、画像データであるが、これに限らず、任意の種類のデータである。また、所定の圧縮処理は、例えば、ロスレス圧縮であるが、これに限らず、任意の圧縮処理である。
【００３１】
コード生成部３は、上記第１のデータ又は上記第２のデータ（すなわち第１のデータを圧縮したデータ）に対する誤り制御符号を生成する。コード生成部３は、所定の任意の誤り制御符号を生成する。
【００３２】
結合部４は、データ圧縮部２により生成された第２のデータと、コード生成部３により生成された誤り制御符号とを結合して第３のデータを生成する。
転送部５は、結合部４により生成された第３のデータを上述の所定のデータ長単位でメモリ６に転送する。これにより、所定のデータ長単位のアクセスにより、第２のデータ及び誤り制御符号をメモリ６に記憶することができる。したがって、読み出し時においても、所定のデータ長単位のアクセスにより、第２のデータ及び誤り制御符号をメモリ６から取得することができる。
【００３３】
図３は、結合部４による結合の様子を模式的に示す図である。ここでは、所定のデータ長が２５６バイトであるものとする。すなわち、第１のデータが２５６バイトのデータであるとする。第１のデータは、データ圧縮部２の圧縮処理により２５６バイト以下のデータ長の第２のデータとなる。したがって、２５６バイト単位でメモリ６にアクセスする場合、図３に示すように帯域に隙間が生じうる。結合部４による結合により、この隙間を用いて誤り制御符号を圧縮データ（第２のデータ）と同時に転送することができる。したがって、誤り制御符号の転送に伴うメモリアクセス量の増加が抑えられる。
【００３４】
＜実施の形態１＞
次に、実施の形態１について説明する。図４は、実施の形態にかかるデータ処理装置１０の構成の一例を示すブロック図である。データ処理装置１０は、ＣＰＵ（Central Processing Unit）１００、Ｖｉｄｅｏコーデックシステム２００、グラフィックシステム３００、映像入出力システム４００、バスシステム５００、ＤＤＲメモリコントローラ６００、及びＤＤＲメモリ７００を有する。データ処理装置１０は、例えばＬＳＩ（large scale integrated circuit）により構成されている。なお、図４に示した例では、データ処理装置１０は、Ｖｉｄｅｏコーデックシステム２００、グラフィックシステム３００、映像入出力システム４００といったサブシステムを含むが、必要に応じて他のサブシステムを含んでもよい。
【００３５】
ＣＰＵ１００、Ｖｉｄｅｏコーデックシステム２００、グラフィックシステム３００、映像入出力システム４００、及びＤＤＲメモリコントローラ６００は、それぞれ、バスシステム５００と接続しており、相互に通信することができる。
【００３６】
ＣＰＵ１００は、データ処理装置１０の全体を制御する。ＣＰＵ１００は、例えば、ＤＤＲメモリ７００に記憶されたプログラム（アプリケーションソフト）を実行することにより、データ処理装置１０を制御する。Ｖｉｄｅｏコーデックシステム２００は、動画のコーデック処理を行うシステムであり、その詳細については後述する。グラフィックシステム３００は、２次元又は３次元のグラフィックスを生成するシステムである。映像入出力システム４００は、データ処理装置１０に接続されたカメラ（図示せず）から映像を取り込む処理、またはデータ処理装置１０に接続されたディスプレイ（図示せず）に映像を表示する処理などを行うシステムである。
【００３７】
バスシステム５００は、ＣＰＵ１００、Ｖｉｄｅｏコーデックシステム２００、グラフィックシステム３００、映像入出力システム４００、及びＤＤＲメモリコントローラ６００間の転送処理を制御するシステムである。ＤＤＲメモリコントローラ６００は、ＤＤＲメモリ７００に対するアクセスを制御するコントローラである。ＤＤＲメモリ７００には、ＣＰＵ１００が用いるプログラム及びデータ、各サブシステムが用いるデータ、ＣＰＵ及び各サブシステムで共有されるデータなどが格納される。なお、ここでは、各サブシステム、バスシステム５００、及びＤＤＲメモリコントローラ６００の処理は、それぞれハードウェア回路により実現されるが、プログラムがプロセッサにより実行されることにより実現されてもよい。
【００３８】
次に、データ処理装置１０におけるメモリアクセス量の抑制について説明するために、Ｖｉｄｅｏコーデックシステム２００に着目して、構成及び動作について説明する。図５は、データ処理装置１０のより詳細な構成をＶｉｄｅｏコーデックシステム２００に着目して示したブロック図である。Ｖｉｄｅｏコーデックシステム２００は、例えば、コーデック処理を制御するためのプログラムをＣＰＵ１００が実行することにより、動作が制御される。以下、図５を参照して、データ処理装置１０の構成を説明する。
【００３９】
Ｖｉｄｅｏコーデックシステム２００は、Ｖｉｄｅｏコーデックコア２１０に加え、書き込み関連の処理を行う構成と、読み出し関連の処理を行う構成とを有する。書き込み関連の処理を行う構成は、ロスレス圧縮部２２０と、誤り制御符号生成部２２１と、データ長判定部２２２と、結合部２２３とを含む。また、読み出し関連の処理を行う構成は、分離伸長部２３０と、誤り検出／誤り訂正部２４０とを含む。
【００４０】
Ｖｉｄｅｏコーデックコア２１０は、動画のエンコード処理又はデコード処理を行う構成部であり、処理を実行する際、ライトＩ／Ｆ２１１を介したＤＤＲメモリ７００へのデータの書き込み及びリードＩ／Ｆ２１２を介したＤＤＲメモリ７００からのデータの読み出しを行う。なお、Ｖｉｄｅｏコーデックコア２１０は、データをＤＤＲメモリ７００に書き込む際、所定のデータ長（具体的には２５６バイト）単位で記憶対象のデータをライトＩ／Ｆ２１１から出力する。Ｖｉｄｅｏコーデックコア２１０のライトＩ／Ｆ２１１からは、画像データ又は画像データ以外のデータが出力される。なお、ここでいう画像データとは、画素ごとの画素値が示されるデータであり、具体的には例えばＲＧＢデータＹＵＶデータなどをいう。また、画像データ以外のデータとは、具体的には例えばコーデック処理により生成されるビットストリームをいう。
【００４１】
ライトＩ／Ｆ２１１から出力された所定のデータ長（２５６バイト）単位の画像データは、ロスレス圧縮部２２０及び誤り制御符号生成部２２１に入力される。ロスレス圧縮部２２０は、図２のデータ圧縮部２に対応しており、所定のデータ長（２５６バイト）の画像データに対し、所定のロスレス圧縮処理を行う。すなわち、ロスレス圧縮部２２０は、２５６バイト単位で、圧縮処理を行う。なお、ロスレス圧縮部２２０は、例えば、エントロピー符号化処理を行うが、他のロスレス圧縮処理を行ってもよい。
【００４２】
誤り制御符号生成部２２１は、図２のコード生成部３に対応しており、所定のデータ長（２５６バイト）の画像データに対し、所定の誤り制御符号を生成する。すなわち、誤り制御符号生成部２２１は、ロスレス圧縮前の２５６バイトの画像データについての誤り制御符号を算出する。なお、誤り制御符号生成部２２１は、例えば、誤り制御符号としてＣＲＣ（Cyclic Redundancy Check）コードを生成するが、他の誤り制御符号を生成してもよい。
【００４３】
データ長判定部２２２は、ロスレス圧縮部２２０による圧縮後のデータのデータ長と誤り制御符号生成部２２１が生成した誤り制御符号の符号長の合計が、上記所定のデータ長（２５６バイト）以下であるか否かを判定する。ロスレス圧縮部２２０による圧縮後のデータのデータ長は、一定ではなく、圧縮対象のデータの内容によって可変である。
【００４４】
結合部２２３は、図２の結合部４に対応しており、合計が上記所定のデータ長（２５６バイト）以下である場合、ロスレス圧縮部２２０により生成された圧縮データと誤り制御符号生成部２２１により生成された誤り制御符号とを結合したデータを生成し、バスシステム５００に出力する。結合部２２３は、具体的には、例えば、圧縮データの後ろに誤り制御符号を連結することにより、圧縮データと誤り制御符号とが組み合わされた１つのデータを生成する。結合部２２３から出力されたデータは、バスシステム５００により、ＤＤＲメモリ７００のデータコード格納領域７０１に記憶される。データコード格納領域７０１は、圧縮データと誤り制御符号とが組み合わされたデータを格納するためのメモリ領域である。
【００４５】
バスシステム５００は、図２の転送部５に対応しており、結合部２２３により生成されたデータを上記所定のデータ長（２５６バイト）単位でＤＤＲメモリ７００に転送する。なお、合計が２５６バイトに満たない場合、結合部２２３により生成されたデータ及び任意のデータを含む２５６バイトのデータが転送される。
【００４６】
なお、結合部２２３は、データ長判定部２２２により合計が上記所定のデータ長（２５６バイト）を超えると判定された場合、結合を行わない。この場合、バスシステム５００は、ライトＩ／Ｆ２１１から出力された画像データと、この画像データに対する誤り制御符号とをそれぞれ、ＤＤＲメモリ７００に記憶する。より具体的には、図５に示した構成では、データ長判定部２２２により合計が２５６バイトを超えると判定された場合、ライトＩ／Ｆ２１１から出力された画像データ（ロスレス圧縮されていない画像データ）がＤＤＲメモリ７００のデータ格納領域７０３に記憶され、この画像データに対しバスシステム５００の誤り制御符号生成部５０１で生成した誤り制御符号がコード格納領域７０２に記憶される。データ格納領域７０３は、データを格納するためのメモリ領域であり、コード格納領域７０２は、誤り制御符号を格納するためのメモリ領域である。このように、本実施の形態では、合計のデータ長が所定のデータ長を超える場合であっても、データ及び誤り制御符号のＤＤＲメモリ７００への格納が適切に行われる。
【００４７】
バスシステム５００は、誤り制御符号生成部５０１と誤り検出／誤り訂正部５０２とを有する。誤り制御符号生成部５０１は、ライトＩ／Ｆ２１１から出力された画像以外のデータに対し、所定の誤り制御符号を生成する。また、誤り制御符号生成部５０１は、データ長判定部２２２により合計が所定のデータ長を超えると判定された場合、ライトＩ／Ｆ２１１から出力された画像データに対し、所定の誤り制御符号を生成する。なお、誤り制御符号生成部５０１は、誤り制御符号生成部２２１と同じ種類の誤り制御符号を生成してもよいし、異なる種類の誤り制御符号を生成してもよい。
【００４８】
バスシステム５００は、誤り制御符号生成部５０１により生成した誤り制御符号をＤＤＲメモリ７００のコード格納領域７０２に格納する。また、バスシステム５００は、誤り制御符号生成部５０１により生成した誤り制御符号に対応するデータをデータ格納領域７０３に格納する。
【００４９】
また、バスシステム５００は、ＤＤＲメモリ７００からのデータの読み出しアクセスが発生すると、読み出し対象のデータがデータコード格納領域７０１に格納されたデータである場合、圧縮データと誤り制御符号とが結合されたデータをＶｉｄｅｏコーデックシステム２００の分離伸長部２３０に出力する。読み出し対象のデータがデータ格納領域７０３に格納されたデータである場合、バスシステム５００は、データ格納領域７０３のデータとコード格納領域７０２に格納された当該データに対応する誤り制御符号とをそれぞれ読み出して、誤り検出／誤り訂正部５０２による処理を行う。
【００５０】
誤り検出／誤り訂正部５０２は、データ格納領域７０３から読み出したデータについて所定の誤り制御符号（誤り制御符号生成部５０１と同じ種類の誤り制御符号）を生成し、コード格納領域７０２から読み出した誤り制御符号を用いて、当該データについての誤りの検出又は訂正を行う。誤り検出／誤り訂正部５０２は、誤りの訂正を行った場合、訂正後のデータをセレクタ２４１を介してＶｉｄｅｏコーデックコア２１０のリードＩ／Ｆ２１２に出力し、それ以外の場合、データ格納領域７０３から読み出したデータをセレクタ２４１を介してリードＩ／Ｆ２１２に出力する。
【００５１】
Ｖｉｄｅｏコーデックシステム２００の分離伸長部２３０は、ロスレス伸長部２３１と分離部２３２とを有し、圧縮データと誤り制御符号とが結合されたデータに基づいて、誤り制御符号の分離と、データの伸張処理とを行う。ロスレス伸長部２３１は、ＤＤＲメモリ７００のデータコード格納領域７０１から取得された結合データを用いて、ロスレス圧縮部２２０で行われた所定の圧縮処理に対応する伸長処理を行う。なお、ロスレス伸長部２３１は、データ伸長部とも称される。
【００５２】
分離部２３２は、結合データに含まれる誤り制御符号を抽出する。例えば、分離伸長部２３０は、次のように誤り制御符号の分離を行うが、他の手法により分離が行われてもよい。例えば、分離伸長部２３０は、データコード格納領域７０１から読み出したデータの先頭からロスレス伸張処理を開始する。分離伸長部２３０は、所定のデータ長（２５６バイト）のデータが得られた時点で、伸張処理を終了する。そして、分離伸長部２３０は、データコード格納領域７０１から読み出したデータのうち、ロスレス伸長処理の対象とならなかったデータ部分を誤り制御符号として抽出する。
分離伸長部２３０は、伸長処理により得られたデータと、分離された誤り制御符号を誤り検出／誤り訂正部２４０に出力する。
【００５３】
誤り検出／誤り訂正部２４０は、ＤＤＲメモリ７００から取得された結合データに含まれる誤り制御符号を用いて誤りの検出又は訂正を行う。なお、誤り検出／誤り訂正部２４０は、検出部とも称される。より具体的には、誤り検出／誤り訂正部２４０は、伸長処理により得られたデータ（２５６バイトの画像データ）について所定の誤り制御符号（誤り制御符号生成部２２１と同じ種類の誤り制御符号）を生成し、分離された誤り制御符号を用いて、当該データについての誤りの検出又は訂正を行う。誤り検出／誤り訂正部２４０は、誤りの訂正を行った場合、訂正後のデータをセレクタ２４１を介してリードＩ／Ｆ２１２に出力し、それ以外の場合、分離伸長部２３０が出力したデータをセレクタ２４１を介してリードＩ／Ｆ２１２に出力する。
このように、分離伸長部２３０による処理が行われるため、データコード格納領域７０１に格納された結合データを適切に読み出すことができる。
【００５４】
データ処理装置１０におけるデータの書き込み時の動作及び読み出し時の動作について、説明する。ここでは、特に、画像データの書き込みが行われる際の動作及び画像データの読み出しが行われる際の動作を、フローチャートを参照しながら説明する。
【００５５】
図６は、実施の形態１にかかるデータ処理装置１０において、Ｖｉｄｅｏコーデックコア２１０から出力された画像データがＤＤＲメモリ７００に書き込まれる際の動作の流れの一例を示すフローチャートである。以下、図６に沿って、画像データが書き込まれる際の動作について説明する。
【００５６】
Ｖｉｄｅｏコーデックコア２１０のライトＩ／Ｆ２１１から画像データが出力されると、ステップ１００及びステップ１０１の処理が行われる。なお、ステップ１０１とステップ１０２は、並行して行われてもよいし、順番に行われてもよい。
【００５７】
ステップ１００（Ｓ１００）において、ロスレス圧縮部２２０は、所定のデータ長（２５６バイト）の画像データをロスレス圧縮する。
ステップ１０１（Ｓ１０１）において、誤り制御符号生成部２２１は、所定のデータ長（２５６バイト）の画像データの誤り制御符号を生成する。
【００５８】
次に、ステップ１０２（Ｓ１０２）において、データ長判定部２２２が、ステップ１００で生成されたデータのデータ長とステップ１０１で生成された誤り制御符号の符号長を合計したデータ長が所定値以下であるか否かを判定する。この所定値は、上記所定のデータ長（２５６バイト）と同じである。合計が所定値以下である場合、処理は、ステップ１０３に移行する。これに対し、合計が所定値を超える場合、処理は、ステップ１０５に移行する。
【００５９】
ステップ１０３（Ｓ１０３）において、結合部２２３は、ステップ１００で圧縮された画像データと、ステップ１０１で生成された誤り制御符号を結合し、これらを１つのデータにする。
ステップ１０３の後、ステップ１０４（Ｓ１０４）において、バスシステム５００は、ステップ１０３で結合されたデータを、上記所定のデータ長（２５６バイト）単位でＤＤＲメモリ７００に転送し、データコード格納領域７０１に格納する。
【００６０】
これに対し、ステップ１０５（Ｓ１０５）では、誤り制御符号生成部５０１が、ライトＩ／Ｆ２１１から出力された所定のデータ長（２５６バイト）の画像データの誤り制御符号を生成する。
そして、ステップ１０５の後、ステップ１０６（Ｓ１０６）において、バスシステム５００は、ライトＩ／Ｆ２１１から出力された画像データをデータ格納領域７０３に格納し、ステップ１０５で生成された誤り制御符号をコード格納領域７０２に格納する。
【００６１】
なお、本実施の形態では、合計が所定値を超える場合、圧縮がされていないデータがＤＤＲメモリ７００に格納されるが、圧縮処理がなされたデータがＤＤＲメモリ７００に格納されてもよい。
【００６２】
次に、データコード格納領域７０１に格納されたデータ（結合データ）が読み出される際の動作について説明する。図７は、実施の形態１にかかるデータ処理装置１０において、データコード格納領域７０１に格納されたデータが読み出される際の動作の流れの一例を示すフローチャートである。
【００６３】
まず、ステップ２００（Ｓ２００）において、バスシステム５００は、圧縮データと誤り制御符号とが結合されたデータをデータコード格納領域７０１から取得する。
次に、ステップ２０１（Ｓ２０１）において、分離伸長部２３０は、ステップ２００で取得した結合されたデータに基づいて、誤り制御符号の分離と、データの伸張処理とを行う。
そして、ステップ２０２（Ｓ２０２）において、誤り検出／誤り訂正部２４０は、伸長された画像データから算出した誤り制御符号と、分離された誤り制御符号とを用いて、エラー検出又はエラー訂正処理を行う。そして、誤り検出／誤り訂正部２４０は、伸長されたデータ又はこれを訂正したデータをＶｉｄｅｏコーデックコア２１０のリードＩ／Ｆ２１２に出力する。
【００６４】
ここで、より具体的な例について説明する。
図８は、実施の形態１を動画のエンコード処理に適用した場合のＶｉｄｅｏコーデックシステム２００の構成の一例を示すブロック図である。図８において、図５のロスレス圧縮部２２０、誤り制御符号生成部２２１、データ長判定部２２２、及び結合部２２３は、まとめて、書き込み関連処理部２５０として示されている。また、図８において、図５の分離伸長部２３０及び誤り検出／誤り訂正部２４０は、まとめて、読み出し関連処理部２５１として示されている。なお、図８において、書き込み関連処理部２５０、読み出し関連処理部２５１、及びＤＤＲメモリ７００を除く構成は、図５のＶｉｄｅｏコーデックコア２１０に属する。
【００６５】
ＤＤＲメモリ７００から読み出された符号化対象の画像は、減算器２５２に入力され、インター予測を行うインター予測部２５３により生成された予測画像又はイントラ予測を行うイントラ予測部２５４により生成された予測画像との差分が算出される。なお、減算器２５２には、インター予測部２５３からのデータとイントラ予測部２５４からのデータのうち、選択部２５５により選択されたデータが入力される。例えば、選択部２５５は、より符号化効率が高くなるデータを選択する。
【００６６】
減算器２５２から出力された差分データは、変換部２５６に入力される。変換部２５６は、差分データに直交変換（離散コサイン変換）を行う。量子化部２５７は、変換部２５６により変換されたデータを量子化し、エントロピー符号処理部２５８及び逆量子化部２５９に出力する。逆量子化部２５９は、量子化部２５７により量子化されたデータを逆量子化する。逆変換部２６０は、逆量子化部２５９により逆量子化されたデータを逆直交変換する。加算器２６１は、逆変換部２６０の出力と選択部２５５により選択された予測画像とを加算する。加算器２６１が出力したデータはイントラ予測部２５４の予測に用いられる。デブロックフィルタ２６２は、加算器２６１から出力された画像データのブロック歪を低減させるフィルタ処理を行う。
【００６７】
デブロックフィルタ２６２が出力した画像データは、ローカルデコード画像として、ＤＤＲメモリ７００に格納される。すなわち、ローカルデコード画像は、図５のライトＩ／Ｆ２１１から出力され、書き込み関連処理部２５０に入力される。書き込み関連処理部２５０では、上述のロスレス圧縮部２２０、誤り制御符号生成部２２１、データ長判定部２２２、及び結合部２２３による処理が行われる。これにより、画像データとこの画像データの誤り制御符号とがＤＤＲメモリ７００に記憶される。
【００６８】
このようにしてＤＤＲメモリ７００に格納された画像データは、インター予測部２５３による処理または動き予測部２６３による処理において参照するために読み出されることとなる。このとき、画像データは、読み出し関連処理部２５１を介して読み出される。すなわち、上述の分離伸長部２３０及び誤り検出／誤り訂正部２４０による処理が行われた後、画像データがリードＩ／Ｆ２１２に入力される。
【００６９】
動き予測部２６３は、符号化対象の画像とＤＤＲメモリ７００から読み出された画像とを用いて、動き予測処理を行う。動き予測部２６３による処理結果のデータは、エントロピー符号処理部２５８に出力される。エントロピー符号処理部２５８は、量子化部２５７からのデータ及び動き予測部２６３からのデータなどに対し、エントロピー符号化の処理を行い、ビットストリームとして出力する。エントロピー符号処理部２５８から出力されたビットストリームは、図５のライトＩ／Ｆ２１１から出力され、画像以外のデータとして、ＤＤＲメモリ７００への書き込みが行われる。すなわち、誤り制御符号生成部５０１により誤り制御符号が生成され、この誤り制御符号と、ビットストリームのデータが、それぞれＤＤＲメモリ７００に記憶される。
【００７０】
以上説明した通り、データ処理装置１０は、動画のコーデック処理に適用することができる。特に、データ処理装置１０は、符号化対象の画像からビットストリームを生成する所定の動画コーデック処理を行うＶｉｄｅｏコーデックコア２１０（コーデック部とも称す）を有しており、書き込み関連処理部２５０に入力されるデータは、この所定の動画コーデック処理において予測画像の生成に用いられる画像データである。このような構成によれば、動画コーデック処理の予測画像の生成において、メモリアクセス量を抑制することができる。
【００７１】
また、データ処理装置１０は、ビットストリームに対する誤り制御符号を生成する誤り制御符号生成部５０１を有しており、バスシステム５００は、ビットストリームと誤り制御符号生成部５０１が生成した誤り制御符号とをそれぞれＤＤＲメモリ７００に転送する。このため、ビットストリームについても、エラーの検出又は訂正が可能となる。
【００７２】
次に、実施の形態１を動画のデコード処理に適用した場合のＶｉｄｅｏコーデックシステム２００の構成例について説明する。図９は、実施の形態１を動画のデコード処理に適用した場合のＶｉｄｅｏコーデックシステム２００の構成の一例を示すブロック図である。なお、デコード処理は、図９に示すように、図８に示した逆量子化部２５９、逆変換部２６０、加算器２６１、インター予測部２５３、イントラ予測部２５４、選択部２５５、デブロックフィルタ２６２、書き込み関連処理部２５０、及び読み出し関連処理部２５１に加え、エントロピー復号処理部２６４を設けることにより実現できる。エントロピー復号処理部２６４は、図５のＶｉｄｅｏコーデックコア２１０に属する構成要素であり、ＤＤＲメモリ７００から読み出されたビットストリームに対し、エントロピー復号化の処理を行う。なお、ＤＤＲメモリ７００からのビットストリームの読み出しは、画像以外のデータの読み出しとして、読み出し関連処理部２５１の処理を経ずに行われる。すなわち、ビットストリームは、図５の誤り検出／誤り訂正部５０２による処理を経て、リードＩ／Ｆ２１２に入力される。
【００７３】
エントロピー復号処理部２６４が出力したデータは、逆量子化部２５９、逆変換部２６０、加算器２６１、インター予測部２５３、イントラ予測部２５４、選択部２５５、及びデブロックフィルタ２６２を用いて、上述の動画のエンコード処理におけるローカルデコード画像の生成と同様の処理が行われる。このとき、デブロックフィルタ２６２から出力されたデコード画像は、図５のライトＩ／Ｆ２１１から出力され、書き込み関連処理部２５０に入力される。
【００７４】
書き込み関連処理部２５０では、上述のロスレス圧縮部２２０、誤り制御符号生成部２２１、データ長判定部２２２、及び結合部２２３による処理が行われる。これにより、画像データとこの画像データの誤り制御符号とがＤＤＲメモリ７００に記憶される。また、ＤＤＲメモリ７００に記憶された画像データは、他の画像のデコードのために参照される。このとき、画像データは、読み出し関連処理部２５１を介して読み出される。すなわち、上述の分離伸長部２３０及び誤り検出／誤り訂正部２４０による処理が行われた後、画像データがリードＩ／Ｆ２１２に入力される。
【００７５】
以上、実施の形態１について説明した。実施の形態１にかかるデータ処理装置１０では、記憶対象のデータとこのデータの誤り制御符号とが連結され、これらは、１つのデータとして、ＤＤＲメモリ７００に書き込まれる。このため、誤り制御符号をＤＤＲメモリ７００に転送することによる転送帯域の増加を抑制することができる。比較例にかかるデータ処理装置９における転送量と同様、実施の形態１にかかるデータ処理装置１０についても転送量を検討すると、相対値Ｖは、下記表２に示されるような値となる。
【００７６】
ここで、相対値Ｖは、以下の式（２）で表される。式（２）は、画像データについての誤り制御符号の転送量が６４バイトではなく、誤り制御符号の符号長である３２バイトとなっている点で、上記式（１）と異なっている。
【００７７】
相対値Ｖ＝（８５％×（２５６×Ｒ＋３２）＋１５％×(２５６＋３２)）／（８５％×２５６＋１５％×２５６）    ・・・（２）
【００７８】
【表２】
2019080291.tif 000004
【００７９】
比較例にかかるデータ処理装置９における相対値Ｖと実施の形態１にかかるデータ処理装置１０における相対値Ｖとを比べると、１０から１１％程度、帯域が削減できることがわかる。
【００８０】
＜実施の形態２＞
実施の形態１では、誤り制御符号生成部２２１は、誤り制御符号生成部２２１は、所定のデータ長（２５６バイト）の画像データに対し、所定の任意の誤り制御符号を生成した。このため、実施の形態１では、誤り制御符号生成部２２１は、例えば、８バイトのデータに対し１つの誤り制御符号を生成する。この場合、２５６バイトの画像データに対して、３２バイトの誤り制御符号が生成されることとなる。結合部２２３により結合するためには、結合対象のデータと誤り制御符号の合計のデータ長が所定のデータ（２５６バイト）であることが求められる。ロスレス圧縮部２２０による圧縮後のデータ長は、圧縮対象の画像データにより異なる。このため、どのような画像データについても結合部２２３による結合を可能とするためには、生成される誤り制御符号の符号長は小さい方がよい。そこで、実施の形態２では、誤り制御符号生成部２２１は、２５６バイトのデータに対し、１つの誤り制御符号を生成することで、生成される誤り制御符号の符号長を抑える。なお、これに応じて、誤り検出／誤り訂正部２４０も、検出又は訂正処理の際、誤り制御符号生成部２２１と同様、２５６バイトのデータに対し、１つの誤り制御符号を生成する。
【００８１】
ビットストリームデータやＣＰＵ１００により実行されるプログラムデータに比べると、コーデック処理に用いられる画像データはＤＤＲメモリ７００上でエラーが発生しても、致命的な影響を及ばさない。なぜならば、エラーが発生したとしても、ごく小領域において画像の乱れが発生する程度であるからである。このため、誤り制御符号生成部２２１に入力される画像データに対し、検出又は訂正能力が低い誤り制御符号を適用したとしても、致命的な影響はない。したがって、本実施の形態では、８バイトに対して１バイトの誤り制御符号を生成するのではなく、２５６バイトに対して１つの誤り制御符号を生成する。例えば、１ビットのデータ反転が発生する確率が十分小さく（例えば、発生確率が１０−４のオーダーであり）、かつ、エラー訂正の必要がなく、かつ、エラー検出できない確率が１０％程度まで許容される場合、２５６バイトのデータに付加する誤り検出符号として４ビットのＣＲＣ（４ｂｉｔ−ＣＲＣ）を利用できる。
【００８２】
このように、本実施の形態では、例えば、誤り制御符号生成部２２１は、符号長が４ビットの誤り制御符号（誤り検出符号）を生成する。２５６バイトの画像データにロスレス圧縮をした場合、画像データによらず、概ね、少なくとも４ビット程度の圧縮が可能である。このため、生成される誤り制御符号が４ビットであれば、常に、結合部２２３による結合が可能となる。このため、実質的に、画像データについての誤り制御符号の転送による転送量の増加を、ほぼ０にすることができる。
【００８３】
４ビットの誤り制御符号が用いられた場合の転送量を検討すると、上述の相対値Ｖは、下記表３に示されるような値となる。
【００８４】
ここで、相対値Ｖは、以下の式（３）で表される。式（３）は、画像データについての誤り制御符号の転送量が６４バイトではなく、誤り制御符号の符号長である４ビット（＝０．５バイト）となっている点で、上記式（１）と異なっている。
【００８５】
相対値Ｖ＝（８５％×（２５６×Ｒ＋０．５）＋１５％×(２５６＋３２)）／（８５％×２５６＋１５％×２５６）    ・・・（３）
【００８６】
【表３】
2019080291.tif 000005
【００８７】
比較例にかかるデータ処理装置９における相対値Ｖと実施の形態２にかかるデータ処理装置１０における相対値Ｖとを比べると、２１％程度、帯域が削減できることがわかる。
【００８８】
＜実施の形態３＞
実施の形態３では、誤り制御符号生成部２２１が生成する誤り制御符号の種類を、画像データのピクチャタイプに応じて切替える点で、上述の実施の形態と異なる。実施の形態３にかかる構成は、Ｖｉｄｅｏコーデックシステム２００がＶｉｄｅｏコーデックシステム２０１に置き換えられた点で、上述の実施の形態の構成と異なる。図１０は、実施の形態３にかかるデータ処理装置１０のより詳細な構成をＶｉｄｅｏコーデックシステム２０１に着目して示したブロック図である。Ｖｉｄｅｏコーデックシステム２０１は、タイプ指定レジスタ２７０が追加されている点で、図５に示したＶｉｄｅｏコーデックシステム２００と異なる。以下、実施の形態３について、上述の実施の形態と異なる点を中心に説明し、上述の実施の形態と同様の構成及び動作については説明を適宜省略する。
【００８９】
タイプ指定レジスタ２７０は、ＤＤＲメモリ７００に記憶される画像データ、又はＤＤＲメモリ７００から読み出される画像データが、他のピクチャに参照されるピクチャであるか否かを示す値が格納されるレジスタである。すなわち、転送対象の画像データが、Ｖｉｄｅｏコーデックコア２１０のコーデック処理内のインター予測のために他のピクチャに参照される場合、タイプ指定レジスタ２７０には第１の値が設定される。また、転送対象の画像データが、他のピクチャに参照されることのないピクチャである場合、タイプ指定レジスタ２７０には第２の値が設定される。なお、本実施の形態では、Ｖｉｄｅｏコーデックシステム２０１は、コーデック処理を制御するためのプログラムをＣＰＵ１００が実行することにより、動作が制御されるため、ＣＰＵ１００によってタイプ指定レジスタ２７０が設定される。つまり、ＣＰＵ１００は、Ｖｉｄｅｏコーデックコア２１０で処理されるピクチャのタイプに対応する設定値をタイプ指定レジスタ２７０に設定する。なお、タイプ指定レジスタ２７０に対する値の設定が他の手法により行われてもよい。
【００９０】
誤り制御符号生成部２２１は、タイプ指定レジスタ２７０に設定された値に応じた種類の誤り制御符号を生成する。すなわち、誤り制御符号生成部２２１は、タイプ指定レジスタ２７０に上記第１の値が設定されている場合、第１種の誤り制御符号を生成し、タイプ指定レジスタ２７０に上記第２の値が設定されている場合、第２種の誤り制御符号を生成する。ここで、第１種の誤り制御符号は、第２種の誤り制御符号よりも符号長が長い（第２種の誤り制御符号よりも検出又は訂正能力が高い）。例えば、第１種の誤り制御符号は、３２ビットのＣＲＣ（３２ｂｉｔ−ＣＲＣ）であり、第２種の誤り制御符号は、４ビットのＣＲＣ（４ｂｉｔ−ＣＲＣ）である。
【００９１】
同様に、誤り検出／誤り訂正部２４０も、タイプ指定レジスタ２７０に設定された値に応じた種類の誤り制御符号を生成して、検出又は訂正処理を行う。
このように、タイプ指定レジスタ２７０の値によって、生成される誤り制御符号の種類が切替えられる。このため、タイプ指定レジスタ２７０は、誤り制御符号の種類を指定する値が設定されるレジスタともいうことができる。なお、タイプ指定レジスタ２７０に値を設定するＣＰＵ１００は、種類指定部とも称される。
【００９２】
以上説明した通り、ＣＰＵ１００は、ＤＤＲメモリ７００に記憶される画像データ又はＤＤＲメモリ７００から読み出される画像データが、インター予測のために他のピクチャに参照されるピクチャであるか否かに応じて、誤り制御符号の種類を指定する。特に、ＣＰＵ１００は、ＤＤＲメモリ７００に記憶される画像データ又はＤＤＲメモリ７００から読み出される画像データが他のピクチャに参照されるピクチャである場合、第１種の誤り制御符号を指定し、当該画像データが他のピクチャに参照されるピクチャでない場合、第２種の誤り制御符号を指定する。
【００９３】
このような構成を有するＶｉｄｅｏコーデックシステム２０１では、動画のコーデック処理の際のエラー検出又は訂正能力をピクチャのタイプによって切り替えることができる。
Ｉピクチャなどのように、他のピクチャのデコード処理に参照されるピクチャは、エラーによるデータ化けが、このピクチャを参照している他のピクチャに引き継がれることとなる。このため、検出又は訂正能力が高い（符号長が長い）誤り制御符号（例えば、３２ｂｉｔ−ＣＲＣ）が指定される。これに対し、参照に用いられないピクチャは、データ化けが生じても、影響はそのピクチャに限定できるため、転送量を削減することを優先できる。したがって、検出又は訂正能力が低い（符号長が短い）誤り制御符号（例えば、４ｂｉｔ−ＣＲＣ）が指定される。
【００９４】
次に、実施の形態３にかかるデータ処理装置１０におけるデータの書き込み時の動作及び読み出し時の動作について、説明する。図１１は、実施の形態３にかかるデータ処理装置１０において、Ｖｉｄｅｏコーデックコア２１０から出力された画像データがＤＤＲメモリ７００に書き込まれる際の動作の流れの一例を示すフローチャートである。図１１に示したフローチャートは、ステップ１０１の前にステップ１１０が追加されている点で、図６に示したフローチャートと異なる。
【００９５】
ステップ１１０（Ｓ１１０）では、誤り制御符号生成部２２１は、生成すべき誤り制御符号の種類を特定する。具体的には、誤り制御符号生成部２２１は、ＣＰＵ１００により値が設定されたタイプ指定レジスタ２７０の設定値を参照することにより、生成すべき誤り制御符号の種類を特定する。ステップ１１０の後、処理はステップ１０１に進み、ステップ１０１では、ステップ１１０で特定された種類の誤り制御符号を生成する。以降、図６で示したフローチャートと同様に処理が行われる。
【００９６】
次に、データコード格納領域７０１に格納されたデータが読み出される際の動作について説明する。図１２は、実施の形態３にかかるデータ処理装置１０において、データコード格納領域７０１に格納されたデータが読み出される際の動作の流れの一例を示すフローチャートである。図１２に示したフローチャートは、ステップ２０１とステップ２０２の間にステップ２１０が追加されている点で、図７に示したフローチャートと異なる。
【００９７】
ステップ２０１の後、処理はステップ２１０に進み、ステップ２１０（Ｓ２１０）では、上述のステップ１１０と同様、誤り制御符号生成部２２１は、生成すべき誤り制御符号の種類を特定する。そして、ステップ２０２において、誤り検出／誤り訂正部２４０は、ステップ２１０で特定された種類の誤り制御符号を伸長されたデータに基づいて生成し、生成した誤り制御符号と分離された誤り制御符号とを用いて、エラー検出又はエラー訂正処理を行う。
【００９８】
以上、実施の形態３について説明した。実施の形態３では、画像データのピクチャタイプに応じて、生成される誤り制御符号の種類が切替えられる。このため、エラー耐性と転送量とを適切に調整することができる。
【００９９】
＜実施の形態４＞
上述した実施の形態３では、画像データのタイプに応じて、誤り制御符号の種類が切替えられた。誤り制御符号の種類は、これに限らず、記憶対象のデータの利用用途に応じて、切替えられてもよい。すなわち、ＣＰＵ１００は、記憶対象のデータの利用用途に応じて、誤り制御符号の種類を指定してもよい。つまり、上述した実施の形態３のように、記憶対象の画像データが他のピクチャの予測に利用されるか否かに応じて種類が指定されてもよいが、他の利用用途に応じた種類の指定が行われてもよい。データの利用用途に応じて種類が切替えられることにより、利用用途に応じてエラー耐性と転送量とを適切に調整することができる。例えば、ＣＰＵ１００は、記憶対象のデータを用いる処理の重要度に応じて、誤り制御符号の種類を指定してもよい。つまり、記憶対象のデータがどの程度の重要度を有する処理に用いられるかに応じて、誤り制御符号の種類が指定されてもよい。例えば、アプリケーションプログラムが要求するエラー耐性に応じて、アプリケーションプログラム毎に、誤り制御符号の種類が切り替えられてもよい。
【０１００】
実施の形態４では、処理の重要度に応じて、誤り制御符号の種類を切替える構成について示す。例えば、ＡＤＡＳ（Advanced Driver Assistance System：先進運転支援システム）用のＳｏＣ（System-on-a-chip）のように、複数のカメラからの入力があるシステムでは、各カメラの映像の重要度が異なる場合がある。例えば、駐車の際などに車両が後進している場合、車両のリアビューカメラの映像が、運転者に見せるようディスプレイに表示される。この場合、リアビューカメラの映像は、車両の他のカメラの映像よりも重要度が高い。つまり、リアビューカメラの映像処理は、車両の他のカメラの映像処理よりも重要度が高い（優先度が高い）。このため、重要度の高い映像（運転者に向けて表示される映像）に関する処理は、エラー耐性を優先して実行されることが好ましい。一方、それ以外の映像に関する処理は、転送量の抑制を優先して実行されることが好ましい。
【０１０１】
図１３は、実施の形態４にかかるデータ処理装置１０のより詳細な構成をＶｉｄｅｏコーデックシステム２０２に着目して示したブロック図である。Ｖｉｄｅｏコーデックシステム２０２は、判定部２８０が追加されている点で、図１０に示したＶｉｄｅｏコーデックシステム２０１と異なる。以下、実施の形態４について、上述の実施の形態と異なる点を中心に説明し、上述の実施の形態と同様の構成及び動作については説明を適宜省略する。
【０１０２】
タイプ指定レジスタ２７０は、実施の形態３と同様、誤り制御符号の種類を指定する値が設定されるレジスタであるが、本実施の形態では、記憶対象のデータを用いる処理の重要度に応じた値が例えばＣＰＵ１００により設定される。したがって、タイプ指定レジスタ２７０は、ＤＤＲメモリ７００に記憶されるデータ又はＤＤＲメモリ７００から読み出されるデータが、いずれの重要度の処理に用いられるかを示す値が格納されるレジスタともいえる。
【０１０３】
判定部２８０は、記憶対象のデータに対する誤り制御符号を誤り制御符号生成部２２１により生成するか、誤り制御符号生成部５０１により生成するかを判定する。本実施の形態では、誤り制御符号生成部５０１は、誤り制御符号生成部２２１が生成可能な誤り制御符号の種類よりも、検出又は訂正能力の高い種類の誤り制御符号を生成する。したがって、重要度が最も高い処理に用いられるデータを記憶する場合には、誤り制御符号生成部５０１により誤り制御符号を生成することが好ましい。このため、判定部２８０は、タイプ指定レジスタ２７０に設定された値を参照し、記憶対象のデータの誤り制御符号を誤り制御符号生成部２２１により生成するか、誤り制御符号生成部５０１により生成するかを判定する。なお、本実施の形態では、誤り制御符号生成部２２１により誤り制御符号を生成すると判定された場合、記憶対象のデータは誤り制御符号生成部２２１及びロスレス圧縮部２２０による処理が行われ、誤り制御符号生成部５０１により誤り制御符号を生成すると判定された場合、圧縮をせずに、ＤＤＲメモリ７００に格納される。
【０１０４】
誤り制御符号生成部２２１により誤り制御符号を生成すると判定された場合、誤り制御符号生成部２２１は、タイプ指定レジスタ２７０の設定値により特定される種類の誤り制御符号を生成する。なお、誤り制御符号生成部２２１により生成可能な誤り制御符号の種類が１種類である場合には、誤り制御符号生成部２２１はタイプ指定レジスタ２７０を参照せずに、誤り制御符号を生成してもよい。
【０１０５】
記憶対象のデータは、車両に設けられた複数のカメラのうちのいずれかのカメラにより撮像された映像データであってもよい。そして、ＣＰＵ１００（種類指定部）は、記憶対象のデータが複数のカメラのうちのいずれにより撮像された映像データであるか否かに応じて、誤り制御符号の種類を指定してもよい。すなわち、記憶対象のデータが、重要度の高い映像のコーデック処理に用いられる画像データであるか否かに応じて、タイプ指定レジスタ２７０に値が設定されてもよい。この場合、重要度の高い映像の処理についてのエラー耐性を担保し、重要度の低い映像の処理の実行に発生するメモリアクセス量を抑制することができる。
【０１０６】
このように、ＣＰＵ１００（種類指定部）は、処理の重要度が第１の重要度である場合、第１種の誤り制御符号を指定し、処理の重要度が第１の重要度よりも低い第２の重要度である場合、第２種の誤り制御符号を指定する。ここで、第１種の誤り制御符号は、第２種の誤り制御符号よりも符号長が長い（第２種の誤り制御符号よりも検出又は訂正能力が高い）。そして、ＣＰＵ１００（種類指定部）により指定された種類の誤り制御符号が、誤り制御符号生成部２２１又は５０１によって生成される。
【０１０７】
図１４は、実施の形態４にかかるデータ処理装置１０において、Ｖｉｄｅｏコーデックコア２１０から出力された画像データがＤＤＲメモリ７００に書き込まれる際の動作の流れの一例を示すフローチャートである。図１４に示したフローチャートは、ステップ１００及びステップ１１０の前にステップ１２０が追加されている点で、図１１に示したフローチャートと異なる。
【０１０８】
まず、ステップ１２０（Ｓ１２０）において、エラー耐性が最も強い誤り制御符号を生成するか否かが判定される。すなわち、判定部２８０が、タイプ指定レジスタ２７０の設定値に基づいて、誤り制御符号生成部５０１により誤り制御符号を生成するか否かを判定する。誤り制御符号生成部５０１により誤り制御符号を生成すると判定された場合、処理はステップ１０５へ移行する。これにより、データ処理装置１０において生成可能な最もエラー耐性が強い誤り制御符号が生成される。なお、ステップ１０５以降の処理は、図１１に示したフローチャートと同様である。
【０１０９】
一方、誤り制御符号生成部５０１により誤り制御符号を生成する必要がないと判定された場合、処理はステップ１００及びステップ１１０へ移行する。ステップ１００及びステップ１１０以降の処理は、図１１に示したフローチャートと同様である。ステップ１１０では、誤り制御符号生成部５０１の誤り制御符号よりもエラー耐性が低い複数種類の誤り制御符号のうち、タイプ指定レジスタ２７０の設定値に応じて特定される種類の誤り制御符号が生成される。
【０１１０】
なお、データコード格納領域７０１に格納されたデータが読み出される際の動作については、図１２に示したフローチャートと同様の処理の流れとなるので説明を割愛する。
【０１１１】
実施の形態４によれば、処理の重要度に応じて、生成される誤り制御符号の種類が切替えられる。このため、処理の重要度に応じて、エラー耐性と転送量とを適切に調整することができる。
【０１１２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【０１１３】
例えば、実施の形態３では、誤り制御符号生成部５０１が誤り制御符号生成部２２１よりもエラー耐性が高い誤り制御符号を生成可能であるとして、いずれの誤り制御符号生成部を利用するかを判定部２８０により判定した。しかしながら、生成する誤り制御符号の種類の切替を誤り制御符号生成部２２１のみで行う場合には、判定部２８０が設けられなくてもよい。
【０１１４】
また、上述の各実施の形態では、Ｖｉｄｅｏコーデックシステム２００及びバスシステム５００のそれぞれが、誤り制御符号を生成する構成を有しているが、いずれか一方だけが誤り制御符号を生成する構成を有してもよい。また、結合部２２３による結合対象とならない誤り制御符号を生成する構成（すなわち、誤り制御符号生成部５０１）は、省略されてもよい。また、上述の実施の形態では、コーデック処理の際にメモリに記憶される画像データを例に説明したが、画像処理以外の処理を含む任意の処理の際にメモリに記憶されるデータについて、結合部２２３の結合が行われてもよい。
【０１１５】
記憶対象のデータの格納先はＤＤＲメモリに限らず、他の任意の構成を有するメモリであってもよい。また、記憶対象のデータの格納先がＤＤＲメモリである場合、このＤＤＲの任意の規格に従ったＤＤＲメモリを用いることが可能である。
【０１１６】
また、上述の実施の形態では、図面に示される各構成要素がハードウェア回路により実現されるものとして説明したが、これらの構成要素は、その一部又は全体がプログラムをプロセッサが実行することにより実現されてもよい。つまり、コンピュータとしての構成を備えるデータ処理装置において、プロセッサがプログラムを実行することにより、図面に示された構成要素の処理を実現してもよい。なお、このプロセッサは、ＣＰＵ１００であってもよいし、サブシステム内などに設けられた他のＣＰＵなどであってもよい。
【０１１７】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【０１１８】
１    データ処理装置
２    データ圧縮部
３    コード生成部
４    結合部
５    転送部
６    メモリ
９    データ処理装置
１０    データ処理装置
２００    コーデックシステム
２０１    コーデックシステム
２０２    コーデックシステム
２１０    コーデックコア
２２０    ロスレス圧縮部
２２１    誤り制御符号生成部
２２２    データ長判定部
２２３    結合部
２３０    分離伸長部
２３１    ロスレス伸長部
２３２    分離部
２４０    誤り検出／誤り訂正部
２５０    書き込み関連処理部
２５１    読み出し関連処理部
２７０    タイプ指定レジスタ
２８０    判定部
２９０    ロスレス圧縮部
２９１    ロスレス伸長部
５００    バスシステム
５０１    誤り制御符号生成部
５０２    誤り検出／誤り訂正部
６００    ＤＤＲメモリコントローラ
７００    ＤＤＲメモリ
７０１    データコード格納領域
７０２    コード格納領域
７０３    データ格納領域
【図１】
2019080291.tif 000006
【図２】
2019080291.tif 000007
【図３】
2019080291.tif 000008
【図４】
2019080291.tif 000009
【図５】
2019080291.tif 000010
【図６】
2019080291.tif 000011
【図７】
2019080291.tif 000012
【図８】
2019080291.tif 000013
【図９】
2019080291.tif 000014
【図１０】
2019080291.tif 000015
【図１１】
2019080291.tif 000016
【図１２】
2019080291.tif 000017
【図１３】
2019080291.tif 000018
【図１４】
2019080291.tif 000019