複製鏈接
請複製以下鏈接發送給好友

視頻轉碼技術

鎖定
視頻轉碼技術,顧名思義就是在通過某種手段改變現有視頻數據的編碼方式。視頻轉碼技術使用的目的不同,其實現的手段也各不相同。現在交換視頻數據的普遍做法是將編碼完成的視頻數據解壓縮為基帶信號,根據情況進行再編碼,並加以適當的封裝,使用相同的接口協議,以流的方式,在不同的視頻產品之間進行傳輸共享。如在不同的視頻產品間使用 sdi 連接,不論設備內部使用何種編碼方式,均通過內置的 sdi 編解碼器將視頻數據編解碼為標準的 sdi 數據流,進行傳輸。
中文名
視頻轉碼技術
用    途
編碼轉換
定    義
是在通過某種手段改變現有視頻數據的編碼方式

視頻轉碼技術技術引言

從一個簡單的問題開始我們的討論:對於一個視頻工程技術人員而言,工作中所需面對的視音頻編碼方式有多少種?  以編碼和壓縮方式的大類而言,我們需要面對 motion-jpeg 、 mpeg 、 dv 、 h.261\h.263 等不同系列的壓縮編碼方式;每一種編碼方式我們又需面對不同的子類或子級,如討論 dvb ,經常就要涉及 mpeg-2 mp@ml 和 mp@hl ;不同廠商的視頻產品,也根據各自情況採用不同的 幀內、幀間編碼關係及不同的碼流; gop 長度、 i 、 b 、 p 幀、 50 、 25 mbps 等名詞現在已經成為視頻產品技術參數的重要組成部分;每個廠商在視頻數據的封裝上也有各自的編碼方式,不同廠商開發的視頻服務器,如 grass valley 的 profile 系列服務器和 sony 的 mav 系列的服務器,雖然可以支持以相同 gop 長度、相同碼流的編碼方式產生 mpeg-2 視頻文件,但由於在文件封裝上的不同,二者產生的視頻文件是無法相互直接使用的,這種情況在數字視頻領域相當普遍,有時甚至在同一廠商所開發的不同系列的視頻產品中,數據流或文件也是無法相互識別的。

視頻轉碼技術編碼壓縮

視頻轉碼技術 視頻轉碼技術
無論設備 a 內部的採用何種壓縮編碼方式,在向設備 b 傳輸視頻數據時,首先通過其內置的數據解碼單元將視頻數據解碼送至 sdi 編碼器,封裝轉換成 sdi 數據流,再通過 sdi 接口傳輸給設備 b 的 sdi 接口,設備 b 將其通過 sdi 解碼器,送至其本身的數據編碼單元,對視頻數據重新編碼進行處理或存儲。  這種數據交換的前提,是不同的設備存在遵從相同協議的接口,如 sdi 接口,並具備相應的編解碼硬件設備,使用一種可以共同識別的數據流作為中介進行視音頻數據的交換。  我們換一個角度來看,這種方式本身可以看成是一個編碼方式轉換,即轉碼的過程。它將設備 a 中編碼處理的視頻數據解碼,通過 sdi 編解碼器轉換成 sdi 流,傳輸給設備 b ,再將其傳換成為設備 b 所使用的數據編碼方式進行處理和存儲。  在這種情況下,如果我們可以使用直接的轉碼手段,將基於設備 a 編碼方式的視頻數據轉換為設備 b 可以識別並使用的數據編碼格式,為設備 b 處理或存儲,可以減少重複編解碼所帶來的設備開銷和信號質量下降,並且可以利用多種的傳輸通道,而不侷限於指定的接口通道,可以大大的提高工作效率。

視頻轉碼技術技術實現

視頻數據不同編碼之間的相互轉化有很多算法可以實現,許多運動圖像專家對此也作了深入的研究,針對不同的編碼方式提出了相當多可行的方案。這些方案共同的特點就是充分利用所需相互轉換編碼之間的共同特徵,儘量減少編解碼所帶來的圖像質量損失,同時達到時間和資源消耗的平衡。  如我們將一個 mpeg-2 的視頻數據轉換成 mpeg-4 的視頻數據,當然可以採用的方法是先將 mpeg-2 的視頻解壓縮成單 幀的圖像序列,再將其重新壓縮編碼成為 mpeg-4 的視頻數據  但這種轉碼方式的運算複雜度的使用 sdi 數據流作為中介的運算複雜度並沒有什麼區別。我們可以通過一些方法提高轉碼的效率,降低運算複雜度,比如 mpeg-2 和 mpeg-4 在其編碼算法上有很多相通的地方,在 dct 變換, mc 運動補償, mv 運動補償等方面有許多可以公用的地方,我們並不需要將其完全解碼成獨立的圖像序列,可利用不同編碼方式間的相關性進行轉碼工作  mpeg-2 視頻數據中所有的頭信息被解碼後都直接送到 mpeg -4 編碼器中進行編碼,其中少數頭信息需要調整,以適應新的編碼格式。而 dct 係數和 mv 信息被重用,省去了運動估計和 dct 的系統消耗。同時 mpeg -4 做運動補償的時候,也可以直接利用 mpeg -2 解碼器解碼得出的運動矢量的信息。

視頻轉碼技術轉碼軟件

不同的轉碼軟件有其各自特點,但不外乎有以下幾個功能模塊組成:數據接口模塊、硬件接口模塊、存儲管理模塊、轉碼算法模塊、數據處理模塊、控制管理模塊和用户界面模塊。  每個模塊各自負責軟件工作的一個或幾個方面:數據接口模塊負責處理數據的輸入和輸出,硬件接口模塊負責與計算機硬件驅動程序通信,存儲管理模塊負責內村等存儲空間的分配,轉碼算法模塊提供轉碼處理工作的算法手段,數據處理模塊進行轉碼的具體數據處理,控制管理模塊進行整個轉碼工作的控制和信息處理,用户界面模塊提供用户與轉碼軟件的交互,提供用户對轉碼的編碼方式、碼流及其它的一些軟件提供的選項進行控制。  轉碼算法模塊可以固化到轉碼軟件中,也可以以插件的方式存在。當轉碼軟件處理不同的編碼轉換任務時,根據需要使用不同的轉碼算法插件,可以在不改變其它功能模塊配置的情況下,靈活的擴展軟件功能。