H 264中的P Skip巨集塊和BSkip巨集塊簡介

2021-06-29 07:08:42 字數 1052 閱讀 6945

先說pskip巨集塊,再說bskip巨集塊.

p-skip巨集塊是一種特殊的p巨集塊,在h.264中非常常見,那麼p-skip巨集塊特殊在什麼地方呢?下面會慢慢道來.

對於一般的p巨集塊而言,畫素殘差和運動向量殘差都會寫入碼流,從編碼端傳到解碼端,但是p-skip巨集塊的特殊之處就在於,既不傳送畫素殘差,也不傳送運動向量殘差(在這種情況下,畫素殘差和運動向量殘差必定都為零,所以根本不需要傳送).編碼端除了傳送一些標識該巨集塊是pskip巨集塊的很少量的bit外,不在需要傳送關於該巨集塊的其他資訊,那麼解碼端如何恢復出畫素呢?

我們知道,mvd = mv - mvp, 剛才說了,運動向量殘差mvd為零,而從解碼端可以得到mvp, 所以,在解碼端也就知道了mv. 在解碼端有參考幀對應巨集塊的重建畫素,根據這個重建畫素和mv, 就可以恢復出本幀本巨集塊的畫素值(如果mv是分數,則需要插值),這就是所謂的p-skip巨集塊原理,從字面理解就是跳過了這個巨集塊,相當於這個巨集塊沒有編碼,在解碼端採取了近似替代的恢復辦法.

為什麼要引入p-skip巨集塊呢?如果本幀的一巨集塊和參考幀的一巨集塊畫素(不要求兩巨集塊在同一位置)幾乎完全一致,很顯然,當前幀的巨集塊壓根就不用編碼,在解碼端,直接就可以用近似替代的辦法恢復出本幀本巨集塊的畫素值. 比如在第一幀中有個桌球,在第二幀中也有個桌球,那個第二幀中桌球這個巨集塊就很可能編成了pskip巨集塊.

運動向量為(-1/2, 0))的乙個pskip巨集塊:

==== mb 17(6, 1) ====

location : (96, 16), 

slice no. : 0

slice type : p slice

mb type : p_skip

nummbpart : 1

mbpartsize : (16, 16)

****** inter info ******

pos(0, 0): 

l0=mv(-2, 0),poc: 2,refidx:0,decno:2

bskip巨集塊的原理和pskip巨集塊的原理一樣,只不過是從前後兩個方向進行罷了,所以對於bskip巨集塊就不在贅述.(之前博文在剖析b巨集塊編碼原理時就有乙個地方選用了bskip巨集塊簡化分析)

H 264中IPCM巨集塊簡介

在h.264中,乙個巨集塊包括16 16個畫素,i巨集塊有三種形式 1.16個i4x4編碼方式組成的巨集塊 為了方便,簡稱i4x4方式的巨集塊 2.i16x16巨集塊 3.ipcm巨集塊 特殊 1 在某些特別的情況下 這種情況極少 某種編碼方式並不是data compressor而是data exp...

H264巨集塊型別及Intra Inter介紹

h264巨集塊型別及intra inter介紹 本文使用工具 elecard streameye tools 首先看下i slice幀的情況 可以看到下圖都是紅色mb型別 i slice幀包含的巨集塊型別有0 25,主要有intra 4x4 intra 16x16 i pcm,都屬於幀内巨集塊 模式...

H264基本概念之 巨集塊 片和片組

這幾個概念對比音訊訊號處理可是全新的,下面簡要介紹一下定義和作用 1 巨集塊 macro block 乙個編碼影象首先要劃分成多個塊 4x4 畫素 才能進行處理,顯然巨集塊應該是整數個塊組成,通常巨集塊大小為16x16個畫素。巨集塊分為i p b巨集塊,i巨集塊只能利用當前片中已解碼的畫素作為參考進...