VBV

Video Buffering Verifier

視頻快取檢驗器

Video Buffer Verifier (VBV)是一個當輸入碼流遵從MPEG標準時,既不會上溢出,也不會下溢出的理論上的解碼緩衝器模型。這樣,既不會引起上溢出,也不會引起下溢出就是一個兼容(MPEG)的比特流定義的一部分。由MPEG傳輸根據這個模型所限定的解碼緩衝行為的工程定義將在下面全面解釋。不過,解碼器並不一定必須要用到這些工程定義,可以依靠時鐘標籤(PTS,DTS)提供的冗餘信息進行解碼。更加詳細的解釋在緩衝同步和啟動裡面。

VBV的操作與兩個傳送值相關:vbv_buffer_size_value和vbv_delay。vbv_buffer_size_value是緩衝區的最大值,vbv_delay是從存儲一幅圖像的開始碼到開始解碼一幅圖像之間的延遲。vbv_buffer_size在每個序列頭傳送,vbv_delay則在每幅圖像頭處傳送。注意序列頭和vbv_buffer_size在節目正在處理時可能不可用。然而,解碼器合適的操作可以從系統時鐘和各種時鐘標籤中得到,有時可能還需要先驗最大緩衝區大小。所以vbv_delay和vbv_buffer_size是冗餘的。
ATSC 標準A/53 附屬檔案A(ATSC standard A/53 Annex A)中,對緩衝區大小的限制是:
maximum video buffer = B = 7995392 bits,
which is specified by transmitting:
vbv_buffer_size_value <= 488 (lower 10 bits of vbv_buffer_size)
vbv_buffer_size_extension = 0 (upper 8 bits of vbv_buffer_size)
where B = 16*1024*vbv_buffer_size.
ATSC對vbv_delay的限制是
vbv_delay <= 45000
vbv_delay是16位的無符號整數,表示從將一幅圖像的開始碼送入快取到移除並開始解碼一幅圖像之間的90kHz時鐘周期數量。
VBV buffer 的作用是處理各幀編碼後大小不一和輸出CBR 的矛盾。
CBR規定encoder的輸出碼率為恆定,但是各幀編碼後的大小不是固定的(I,B,P幀的存在),因此需要在encoder後面加入VBV buffer。
可以將VBV buffer想像成為一個水池,水池的入口連線著encoder的輸出,水池的出口為恆定的碼率輸出。
為了使得輸出恆定,encoder必須保證水池既不上溢也不下溢。下溢會導致無數據輸出,上溢會導致數據丟失。
所以encoder在編碼一幀時會參考當前vbv buffer的充盈情況,並由此計算出,當前幀應當編碼多少比特,從而保證既不上溢也不下溢。

相關詞條

熱門詞條

聯絡我們