周 鑫 王安迪 陸壯志 萬志江
(湖北航天技術研究院總體設計所,武漢 430040)
隨著視頻圖像技術的發展,視頻監控在各個行業的應用越來越廣泛,高清晰度的視頻圖像使監控人員能夠進行更加直觀有效的觀測,但高清晰視頻圖像所帶來的海量視頻數據對傳輸帶寬提出了更高的要求。因此,對高清視頻數據進行更高效率的壓縮傳輸,成為視頻監控領域的一個重要研究內容。
目前,對視頻圖像進行壓縮編碼的主要方式是基于MPEG-2、MPEG-4和H264進行壓縮編碼,國內外大多數視頻壓縮編碼方式采用H264格式,但隨著圖像領域對視頻圖像的高清晰度要求和實際應用帶寬的限制,部分行業也開始采用H265壓縮編碼方式。在編碼性能上,H265的編碼效率相對于H264提高了一倍,但在大多數情況下,對H265壓縮編碼的應用,僅限于按照H265協議進行簡單的圖像壓縮編碼,壓縮編碼后的圖像數據傳輸對帶寬資源的利用率并不是很高,在遙測、衛星帶寬資源極其緊張的使用條件下,H265編碼后的圖像仍然存在卡幀或不清晰的現象,無法滿足實際應用需求。
本文提出一種基于航天視頻監測的H265編碼系統,借助視頻壓縮硬件開發平臺,使用一種改進的H265編碼方式對視頻數據進行壓縮編碼,滿足飛行器、運載器、衛星遙測等較低傳輸帶寬下的視頻滿帶寬傳輸應用要求。

圖1 系統結構圖
如圖1所示,本文設計的H265視頻編碼系統以圖像壓縮模塊中的視頻壓縮硬件開發平臺作為基礎,使用SONY公司生產的700線Eff i o系列的CCD組件作為圖像采集模塊的圖像傳感器,使用FPGA作為圖像緩存器與系統進行實時數據交互,輔助以圖像選路及模數轉換模塊中的選路芯片、AD芯片和網絡輸出模塊中的網絡芯片,外加電源轉換單元。通過在視頻壓縮硬件開發平臺和FPGA上開發應用程序,實現較低傳輸帶寬下壓縮圖像的實時傳輸。首先,依據圖像緩存模塊傳遞的選路信息,圖像壓縮模塊通過控制AD芯片獲取來自選定圖像采集模塊的YUV420原始視頻圖像,并通過視頻壓縮芯片的媒體處理平臺(MPP),使用H265壓縮編碼算法進行編碼壓縮,以獲取壓縮視頻數據;其次,圖像緩存模塊中的FPGA接收來自圖像壓縮模塊的壓縮視頻數據,在接收到系統請求指令后,將系統請求指令中包含的選路信息傳遞給圖像壓縮模塊,同時將緩存中的壓縮視頻數據通過RS485發送給系統。視頻壓縮芯片和FPGA相互配合,既滿足了圖像高壓縮率的需求,又有效彌補了視頻壓縮芯片實時性差的缺點,提高了系統通信的實時性。
圖像壓縮主控制器單元采用基于Unix嵌入式的H265高清視頻編解碼芯片來實現高清圖像的壓縮編碼,輔助以低功耗高效能的DDR3L芯片作為內存,使用媒體處理平臺(MPP)作為程序調用接口,調用媒體處理平臺中所有內部軟件模塊,完成相應的軟件功能。
媒體處理平臺(MPP)包含視頻壓縮編碼各個內部軟件的接口,主要包括視頻輸入(VI)、視頻處理(VPSS)、視頻編碼(VENC)、視頻解碼(VDEC)、視頻輸出(VO)、區域管理(REGION)等,本系統使用VI、VPSS、VENC模塊完成視頻采集、處理和壓縮編碼工作,獲得壓縮編碼后的視頻流。
視頻流中包含當前幀圖像的信息,即當前幀圖像大小、是否為關鍵幀等。由于H265壓縮編碼后視頻流中關鍵幀信息量大,其他幀信息量小,按照視頻流實時輸出,就會造成在傳輸關鍵幀信息時,需要的傳輸帶寬較大;在傳輸其他幀信息時,需要的傳輸帶寬較小,因此,在設計壓縮編碼數據傳輸通道時,需要按最大傳輸帶寬進行設計,倘若使用較低帶寬的話,在傳輸關鍵幀時就會出現卡頓現象,因此傳統H.265壓縮編碼傳輸需占用較大的帶寬,且帶寬較低。本系統結合視頻流中每幅圖像幀的信息,將信息量較大的關鍵幀進行拆分,與信息量較小的普通幀組包,則每包發送的壓縮編碼數據量恒定,確保了視頻壓縮編碼數據在較低傳輸帶寬下能夠實現滿帶寬輸出。
圖2為圖像幀組包協議,FRAME_SIZE表示一幀圖像的大小,2Byte;KEY_FRAME表示是否為關鍵幀(1表示為關鍵幀,0表示為普通幀),1Byte;PACKAGE_SIZE表示每包的大小,2Byte;PACKAGE_NUM表示每幀圖像中包的個數,2Byte;PACKAGE_ID表示每個包的序號,2Byte;IMAGE_DATA表示壓縮圖像數據,60Byte。

圖2 圖像幀組包協議
在圖3所示H265視頻編碼工作示意圖中,首先,調用系統控制模塊的媒體處理平臺編程接口(MPI)完成硬件和MPP初始化,主要功能是分配視頻緩存池;其次,調用VI模塊的MPI創建視頻輸入系統和視頻物理通道并設置參數;然后,調用VPSS模塊的MPI創建組和通道,并設置組和通道參數,輸出期望分辨率的視頻數據;接著,調用VENC模塊的MPI對YUV420原始圖像進行壓縮編碼,得到包含每一幀圖像信息的H265格式碼流,包括一幀圖像的大小(不超過65535)、關鍵幀標識(1或0)等;隨后,根據幀信息,按照圖2格式對當前圖像幀拆包;最后,將關鍵幀的包和普通幀的包組包后放入緩存中,等待輸出。

圖3 H265視頻編碼工作示意圖
由于飛行器、運載器、衛星上遙測系統數據傳輸帶寬有限,一般使用輪詢的方式進行數據傳輸,即系統間隔固定時間T向視頻壓縮系統發送數據請求信息,視頻壓縮系統收到請求信息后立即回傳一幀數據。
本系統中使用的H265高清視頻編解碼芯片基于Unix操作系統設計,Unix系統在實時性方面存在以下問題:
研究市場營銷策略更能促進當地旅游的發展,宣傳力度傳播范圍更廣,使當地旅游更加具有知名度[1]。神農谷國家森林公園內森林茂密,有許多珍稀的植物林資源、以及動物資源,公園內氣候環境優越、負離子含量高。目前神農谷國家森林公園定位是公園休閑觀光類型,游客只會游覽一天左右,無法吸引過夜游客,本文旨在通過分析研究旅游景區市場營銷策略,尋找景區核心吸引物與核心競爭力來提高神農谷國家森林公園的品牌知名度。
(1)Unix的內核是不可搶占的,當一個任務通過系統調用進入內核運行時,一個具有更高優先級的進程只有等待處于核心態的系統調用返回后方能執行,這將導致優先級逆轉。實時任務執行時間不確定,達不到實時應用的要求。
(2) Unix的虛擬內存引起的缺頁中斷、換入/換出,造成響應時間為毫秒級,不利于實時任務的執行。
本系統中使用FPGA作為視頻壓縮數據緩存和實時通信的控制芯片,預留足夠的時間余量作為視頻壓縮芯片和FPGA的通信時間,有效地解決了視頻壓縮芯片的非實時響應問題,同時在接收到系統請求指令后通過判斷緩存內容來確定響應內容,確保響應時間(微秒級)內能夠向系統回傳視頻壓縮編碼數據。
在圖4所示圖像緩存輸出工作流程圖中,FPGA在收到系統請求指令后,檢查緩存中是否有視頻壓縮數據;如果緩存中存在視頻壓縮數據,則通過RS485將視頻壓縮編碼數據發送至系統,如果緩存中不存在視頻壓縮數據,則將有效數據位補零后通過RS485發送至系統;待數據發送完成后,根據系統請求指令解析出選路信息,向圖像壓縮模塊中輸出圖像采集模塊的選路信息;圖像壓縮模塊在收到圖像采集模塊的選路信息后,對其中一路圖像采集模塊輸出的圖像進行圖像壓縮,并通過SPI方式將緩存中已組包的視頻壓縮數據發送至FPGA中;FPGA將在接收到視頻壓縮數據后將其存儲至緩存中,等待系統請求指令輸出。如此循環,將視頻壓縮編碼數據傳輸給系統。

圖4 圖像緩存輸出工作流程圖
由于嵌入式Unix操作系統的響應時間為毫秒級,采用基于FPGA的圖像緩存模塊,使FPGA先響應系統請求,再將請求信息發送至圖像壓縮模塊,使圖像壓縮模塊所基于的嵌入式Unix操作系統有足夠的響應時間,保證了FPGA與系統通信的實時性。
由于航天圖像傳輸所用的遙測系統受環境影響較大,在圖像傳輸過程中會出現傳輸帶寬不穩定的情況。為保證帶寬不穩定情況下壓縮視頻圖像仍然能夠流暢地播放,需要視頻壓縮系統能夠自動調整視頻圖像的壓縮比。
根據系統請求間隔時間T與每次間隔時間發送的數據量S,按公式(1)可以算出圖像輸出的平均碼流D。

其中,D表示圖像輸出的平均碼流,單位為Kbps;S表示每次發送的數據量,單位為bit;T表示間隔請求時間,單位為s。
對于YUV420圖像而言,可以根據公式(2)算出圖像的壓縮比CR。

其中,W表示視頻圖像分辨率中行分辨率;H表示圖像分辨率中列分辨率;R表示每個像素點占用的位數,單位為bit;F表示視頻圖像的幀頻,單位為fps;每一幅YUV420格式的圖像,數據量為行分辨率和列分辨率乘積的1.5倍;D表示圖像輸出的平均碼流,單位為Kbps;Y表示壓縮比余量,取值范圍在1.1~1.3之間,以此確保實際應用中壓縮視頻圖像傳輸帶寬留有一定余量。
將公式(1)和公式(2)結合,可以推導出公式(3),并據此得出壓縮比CR與間隔時間T、數據量S之間的關系。

系統通過內部定時器計算系統請求間隔時間T,并根據每次發送的數據量,結合系統本身分辨率、幀頻,依據公式(3)計算出H265壓縮時所需的壓縮比,將計算出的壓縮比作為參數在視頻編碼(VENC)模塊中使用,即可根據系統情況自行調節視頻圖像的壓縮比,以確保壓縮視頻圖像能夠流暢、清晰地傳輸。
根據H265視頻編碼系統的測試要求,設計一個視頻解碼監測的上位機軟件,實現對壓縮視頻的解碼及碼流的監測。
攝像頭采集相同的畫面,視頻編碼(VENC)模塊設置相同的壓縮比,對比本文設計的H265視頻編碼系統和傳統的H265視頻編碼系統編碼后的視頻圖像,如圖5所示,本文設計的H265視頻編碼系統的實時碼率為187Kbps±5Kbps。如圖6所示,傳統的H265動態視頻編碼系統的實時碼率最高可達290Kbps,最低可達到110Kbps。

圖5 本文設計的H265視頻編碼系統解碼及監測畫面

圖6 傳統的H265視頻編碼系統解碼及監測畫面
試驗中,本文設計的H265視頻編碼系統中設置分辨率為720×576,像素位數R為12bit,幀頻F為15fps。調整H265解碼監控軟件中間隔請求時間為2.5ms,則輸出碼率為171Kbps±5Kbps;調整H265解碼監控軟件中間隔請求時間為1ms,則輸出碼率為500Kbps±5Kbps。由此可見,本系統可以通過自適應調整視頻圖像的壓縮比,滿足帶寬不穩定情況下壓縮視頻圖像傳輸的需要。
本文所設計的H265視頻編碼系統基于視頻壓縮硬件開發平臺,通過對H265壓縮算法的改進,結合FPGA緩存輸出功能,實現較低帶寬下滿帶寬實時輸出,同時,根據不同環境下的帶寬條件,自適應調整視頻圖像的壓縮比,以達到在較低帶寬等不穩定情況下流暢地輸出視頻壓縮圖像,可以滿足航天上低帶寬視頻監測的需要。