レオン ≡ほのぼのブログ≡ -4ページ目
HMで動きベクトルや参照ピクチャが正しく検出できたところで,それらを用いて画像上に動きベクトルなどを描画してみた
まず,HMの設定はRANDOM_ACCESSとする.
フレームの符号化順は
0, 8, 4, 2, 1, 3, 6, 5, 7, 16, 12, …
のように,階層型Bフレームを考慮した符号化順となっている.
以下に示す色についての説明を記す.
①実験図はPU(Prediction Unit)ごとに白色で分けられている.
②各PUについて,双方向予測の場合は赤色,単方向予測の場合は青色に塗る.双方向・単方向のInter予測でない場合は黒色に塗る.
③単方向予測ならば,青色で動きベクトルの矢印を記す.
④双方向予測ならば,赤色でL0(参照ピクチャリストL0)の動きベクトル,青色でL1(参照ピクチャリストL1)の動きベクトルの矢印を記す.
今回は,BQTerrace(1920x1080画素, 60fps)を用いる.
画像の特徴としては,背景が右上から左下へ動いている.
んで,その結果画像
まずは,8フレーム目
参照ピクチャはL0: 0フレーム, L1: 0フレーム
画像サイズが大きいからか,動きベクトルの値も大きくなっている.
BQSquareと異なり,ほとんどがInter符号化で双方向予測である.
次は、4フレーム目
参照ピクチャはL0: 0フレームと8フレーム, L1: 8フレームと0フレーム
特にいうことないかな
最後に2フレーム目
参照ピクチャはL0: 0フレームと4フレーム, L1: 4フレームと8フレーム
特にいうことないかな
(ヾノ・∀・`)ナイナイ
HMで動きベクトルや参照ピクチャが正しく検出できたところで,それらを用いて画像上に動きベクトルなどを描画してみた
まず,HMの設定はRANDOM_ACCESSとする.
フレームの符号化順は
0, 8, 4, 2, 1, 3, 6, 5, 7, 16, 12, …
のように,階層型Bフレームを考慮した符号化順となっている.
以下に示す色についての説明を記す.
①実験図はPU(Prediction Unit)ごとに白色で分けられている.
②各PUについて,双方向予測の場合は赤色,単方向予測の場合は青色に塗る.双方向・単方向のInter予測でない場合は黒色に塗る.
③単方向予測ならば,青色で動きベクトルの矢印を記す.
④双方向予測ならば,赤色でL0(参照ピクチャリストL0)の動きベクトル,青色でL1(参照ピクチャリストL1)の動きベクトルの矢印を記す.
今回は,BQMall(832x480画素, 60fps)を用いる.
画像の特徴としては,背景は動かず,手前の男性と女性が右へ動いている.
んで,その結果画像
まずは,8フレーム目
参照ピクチャはL0: 0フレーム, L1: 0フレーム
フレームが離れているので,Inter予測を使わずに,Intraになっているところも多い
ほとんどが過去の左を指している.
次は、4フレーム目
参照ピクチャはL0: 0フレームと8フレーム, L1: 8フレームと0フレーム
物体の境界部分が細かいPUとなっている.
赤色のベクトルと青色のベクトルはそれぞれL0とL1のピクチャをあらわすので未来と過去のフレームを使っているので,動きベクトルの矢印は逆方向になっていることが分かる.
最後に2フレーム目
参照ピクチャはL0: 0フレームと4フレーム, L1: 4フレームと8フレーム
動きベクトルの値が4フレーム目より小さい.
今後,ほかの解像度の結果も載せる
HMで動きベクトルや参照ピクチャが正しく検出できたところで,それらを用いて画像上に動きベクトルなどを描画してみた
まず,HMの設定はRANDOM_ACCESSとする.
フレームの符号化順は
0, 8, 4, 2, 1, 3, 6, 5, 7, 16, 12, …
のように,階層型Bフレームを考慮した符号化順となっている.
以下に示す色についての説明を記す.
①実験図はPU(Prediction Unit)ごとに白色で分けられている.
②各PUについて,双方向予測の場合は赤色,単方向予測の場合は青色に塗る.双方向・単方向のInter予測でない場合は黒色に塗る.
③単方向予測ならば,青色で動きベクトルの矢印を記す.
④双方向予測ならば,赤色でL0(参照ピクチャリストL0)の動きベクトル,青色でL1(参照ピクチャリストL1)の動きベクトルの矢印を記す.
今回は,BQSquare(416x240画素, 60fps)を用いる.
んで,その結果画像
まずは,8フレーム目
参照ピクチャはL0: 0フレーム, L1: 0フレーム
双方向予測と単方向予測の比率は半々くらいだろうか
動きベクトルは割とばらばらだが,隣接ブロックは似通ったベクトルとなっていることが分かる.
同じ参照リストなのに動きベクトルの値が異なるのが面白い
RDコストが最小になるようにすれば,正解ベクトルじゃなくてもいいということか
次は、4フレーム目
参照ピクチャはL0: 0フレームと8フレーム, L1: 8フレームと0フレーム
ほとんどが双方向予測となった.
動きベクトルに関しては,ゼロベクトルが多く,変化のある人部分だけに動きベクトルの値が存在する.
赤色のベクトルと青色のベクトルはそれぞれL0とL1のピクチャをあらわすので未来と過去のフレームを使っているので,動きベクトルの矢印は逆方向になっていることが分かる.
最後に2フレーム目
参照ピクチャはL0: 0フレームと4フレーム, L1: 4フレームと8フレーム
さらに動きベクトルの値が減ったと思いきや,動きのあまりないところに動きベクトルが発生している.
たまたま?これでRDコストが減らせる?
今後,ほかの解像度の結果も載せる

