ひでみのアイデア帳

くだらないことなんだけど、忘れないために・・・

MPEG2

今日は久々にMPEG2のデコードプログラムを動かしてみた。

元々、最近やってるMicroBlaze MCSをマルチコア化もMPEG2をデコードするのをモジュールごとに区切って、並列展開するために使いたいと思ってた。

本当はMicroBlazeの命令互換のオリジナルCPUにするつもりなんだけど、時間がないので当面は本家MicroBlazeを改造する。

そろそろ、準備ができそうなのでMPEG2のデコードプログラムを適当な大きさにモジュール分けする検討を開始した。

って、始めたら、MPEG2をすっかり忘れてしまったのでおさらいしよう。

ざっくり書くとこんな感じ。

MPEGの映像はIフレーム、Pフレーム、Bフレームという単位になるがIフレームが大元、PフレームがIフレーム間の補完、Bフレームがさらに補完と考えれば良い。

その中にSliceがいて、MacroBlockがいることになる。

一番小さいものにすると、Block Layerになって8x8のドットになる。

今、MPEG2をパースする部分がでかいモジュールになっているのでここを刷新して細かく分けられるモジュールにする。

そして、MicroBlazeのマルチコアに展開すると・・・