視頻碼率
數據傳輸時單位時間傳送的數據位數
視頻碼率就是數據傳輸時單位時間傳送的數據位數,一般我們用的單位是kbps即千位每秒。通俗一點的理解就是取樣率,單位時間內取樣率越大,精度就越高,處理出來的文件就越接近原始文件。
但是文件體積與取樣率是成正比的,所以幾乎所有的編碼格式重視的都是如何用最低的碼率達到最少的失真,圍繞這個核心衍生出來的cbr(固定碼率)與vbr(可變碼率),都是在這方面做的文章,不過事情總不是絕對的,舉例來看,對於一個音頻,其碼率越高,被壓縮的比例越小,音質損失越小,與音源的音質越接近。
與固定碼率視頻編碼不同的是,可變碼率視頻編碼能夠根據輸入視頻信號的特性以恆定圖像質量和可變的碼率進行傳輸。其中,視頻壓縮演演算法可以是預測編碼、變換編碼、子帶編碼和矢量量化等。
從確保視頻傳輸質量和充分利用信息的角度來說,可變碼率視頻編碼才是最合理的。其理由是:視頻信源本身的高峰信息量是變化的,若要使其輸出碼流的碼率固定不變,則需要按信源的高峰信息量去設計傳輸系統,但大部分時間並不出現高峰信息量,為了確保碼率固定,通常要插入一些填充碼,這就浪費了視頻資源。使用可變碼率編碼,就能按信源本身的信息量去分配,從而有效地利用信息資源。
通常固定碼率視頻編碼演演算法是通過利用緩衝器狀態改變數化器步長來實現的,如圖2—6所示。顯然,當圖像細節豐富時,為了確保緩衝器不溢出,就得加大量化步長,減少編碼比特數,從而保證輸出碼流的碼率恆定。這是以犧牲視頻質量為代價的。因為加大量化步長會損傷圖像的高頻細節和低頻背景,甚至產生“塊效應”和圖像細節模糊現象。所以當你用VCD機播放節目時,留心觀察,就會發覺有時圖像邊緣出現“影環”現象。
基本的演演算法是:碼率(kbps)=文件大小(KB) * 8 / 時間(秒),舉例,D5碟,容量4.3G,其中考慮到音頻的不同格式,算為600M,(故剩餘容量為4.3*1024-600=3803.2M),所以視頻文件應不大於3.7G,本例中取視頻文件的容量為3.446G,視頻長度100分鐘(6000秒),計算結果:碼率約等於4818kbps(3.446 * 1024 * 1024 * 8 / 6000 = 4817.857)。
碼率幾點原則:
1、碼率和質量成正比,但是文件體積也和碼率成正比。
2、碼率超過一定數值,對圖像的質量沒有多大影響。
3、DVD的容量有限,無論是標準的4.3G,還是超刻,或是D9,都有極限。計算機中的信息都是二進位的0和1來表示,其中每一個0或1被稱作一個位,用小寫b表示,即bit(位);大寫B表示byte,即位元組,一個位元組=八個位,即1B=8b;前面的大寫K表示1024的意思,即1024個位(Kb)或1024個位元組(KB)。表示文件的大小單位,一般都使用位元組(KB)來表示文件的大小。
Kbps:ps指的是/s,即每秒。Kbps指的是網路速度,也就是每秒鐘傳送多少個千位的信息(K表示千位,Kb表示的是多少千個位),為了在直觀上顯得網路的傳輸速度較快,一般公司都使用kb(千位)來表示。1KB/S=8Kbps。ADSL上網時的網速是512Kbps,如果轉換成位元組,就是512/8=64KB/S(即64千位元組每秒)。
4、一般來說,如果是1M的寬頻,在網上只能看不超過1024kbps的視頻,超過1024kbps的視頻只能等視頻緩衝才能流暢的觀看。
傳統信源編碼中的碼率控制是通過改變碼率的大小來獲得不同的信源失真,而分散式信源編碼(Distributed Source Coding,DSC)中的碼率控制則是指在保證一定信源失真的前提下將碼率降到最低。與傳統信源編碼系統中改變碼率的方式不同,分散式信源編碼系統的碼率是由信源和邊信息之間的統計相關決定的。由於邊信息只能在解碼端獲得,且成功解碼所需的碼率隨虛擬相關通道統計特性的變化而變化,因此碼率分配問題是分散式信源編碼中的難點之一。
作為一種重要的分散式信源編碼形式,分散式視頻編碼(Distributed Video Coding,DVC)受到國內外很多學者的關注。然而分散式視頻編碼的實際應用不容樂觀。正如Guillemot等人指出:影響分散式視頻編碼實際應用的兩大障礙分別是相關估計和最佳邊信息的選擇。由於最佳邊信息的選擇問題最終可以轉化為相關估計問題,因此,影響分散式視頻編碼實際應用的最大障礙就是相關估計問題。DSC/DVC中相關估計問題的重要性表現在三個方面:首先,只有得知信源和邊信息之間的相關,編碼端才能確定最佳壓縮碼率;其次,只有得知信源和所有候選邊信息之間的相關,解碼端才能選擇出最佳邊信息;第三,只有得知信源和最佳邊信息之間的相關,才能確定解碼端的初始化參數,實現最優解碼。
碼率控制涉及視頻質量和通道帶寬的折衷。減少碼率就會犧牲質量,質量提高就會增加碼率。由於視頻圖像編碼中的許多因素都會直接或間接地影響到碼率,碼率的調節點也是很多的。實際上常用的調節碼率手段包括:
①調節編碼的幀率。通過調節序列在時間上的解析度達到控制碼率的目的。當碼率高於通道時,通過丟幀來降低碼率;當碼率低於通道時,可提高幀率以提高視覺效果。
②調節圖像大小。通過調節序列在空間上的解析度來達到控制碼率的目的。當碼率高於通道時,減小尺寸來降低碼率;當碼率低於通道時,增加圖像尺寸以獲得更好的效果。
③調節量化參數。編碼殘差係數的量化參數會直接影響到碼率。量化參數變大,則編碼的比特數降低;量化參數變小,編碼的比特數提高。