一種基於arm處理器的視頻錄播方法和裝置與流程
2023-06-01 22:12:11 1

本發明涉及晶片電路領域,特別涉及一種基於arm處理器的視頻錄播方法和裝置。
背景技術:
隨著科技的發展和社會的進步,用戶對觀看視頻的質量提出了更高的要求。目前,實現高清視頻流數據的錄播或導播主要通過以下兩種意見架構來完成:一直是採用x86處理器與圖像處理板卡相結合的架構,這種架構價格昂貴、功耗巨大;另一種是採用arm處理器與dsp處理器相結合的架構,這種架構設計較為複雜,且功能單一,無法滿足適應市場需求。
技術實現要素:
為此,需要提供一種基於arm處理器的視頻錄播的技術方案,用以解決現有的實現高清視頻流數據的錄播或導播的硬體架構存在的成本高、功耗大、設計複雜、功能單一等問題。
為實現上述目的,發明人提供了一種基於arm處理器的視頻錄播裝置,所述裝置包括碼流輸入單元、vpu解碼單元、圖像合成單元、vpu編碼單元和碼流輸出單元;所述碼流輸入單元和vpu解碼單元連接,所述vpu解碼單元和圖像合成單元連接,所述圖像合成單元和vpu編碼單元連接,所述vpu編碼單元和碼流輸出單元連接;
所述碼流輸入單元用於獲取碼流數據,所述碼流數據包括單路碼流數據或多路碼流數據;
所述vpu解碼單元用於將碼流輸入單元獲取的碼流數據解碼為第一yuv數據;
所述圖像合成單元用於根據預設配置信息將解碼後的第一yuv數據重新合成為單路或多路的yuv數據,得到第二yuv數據;
所述vpu編碼單元用於對第二yuv數據進行編碼;
所述碼流輸出單元用於輸出單路或多路編碼後的碼流數據。
進一步地,所述裝置還包括存儲單元,所述存儲單元與碼流輸出單元連接,所述碼流輸出單元還用於將編碼後的碼流數據保存至所述存儲單元。
進一步地,所述裝置包括gpu處理單元,所述「vpu編碼單元和碼流輸出單元連接」包括:所述vpu編碼單元與gpu處理單元連接,所述gpu處理單元與和碼流輸出單元連接;
所述gpu處理單元用於接收vpu編碼單元編碼後的碼流數據,並對編碼後的碼流數據進行第一處理,所述碼流輸出單元用於輸出執行第一處理後的碼流數據。
發明人還提供了一種基於arm處理器的視頻錄播方法,所述方法應用於基於arm處理器的視頻錄播裝置,所述裝置包括碼流輸入單元、vpu解碼單元、圖像合成單元、vpu編碼單元和碼流輸出單元;所述碼流輸入單元和vpu解碼單元連接,所述vpu解碼單元和圖像合成單元連接,所述圖像合成單元和vpu編碼單元連接,所述vpu編碼單元和碼流輸出單元連接;所述方法包括以下步驟:
碼流輸入單元獲取碼流數據,所述碼流數據包括單路碼流數據或多路碼流數據;
vpu解碼單元將碼流輸入單元獲取的碼流數據解碼為第一yuv數據;
圖像合成單元根據預設配置信息將解碼後的第一yuv數據重新合成為單路或多路的yuv數據,得到第二yuv數據;
vpu編碼單元對第二yuv數據進行編碼;
碼流輸出單元輸出單路或多路編碼後的碼流數據。
進一步地,所述裝置還包括存儲單元,所述存儲單元與碼流輸出單元連接,所述方法包括:
碼流輸出單元將編碼後的碼流數據保存至所述存儲單元。
進一步地,所述裝置包括gpu處理單元,所述「vpu編碼單元和碼流輸出單元連接」包括:所述vpu編碼單元與gpu處理單元連接,所述gpu處理單元與和碼流輸出單元連接;所述方法包括:
gpu處理單元接收vpu編碼單元編碼後的碼流數據,並對編碼後的碼流數據進行第一處理,碼流輸出單元輸出執行第一處理後的碼流數據。
本發明提供了一種基於arm處理器的視頻錄播的方法和裝置,所述方法包括以下步驟:碼流輸入單元獲取碼流數據,所述碼流數據包括單路碼流數據或多路碼流數據;vpu解碼單元將碼流輸入單元獲取的碼流數據解碼為第一yuv數據;圖像合成單元根據預設配置信息將解碼後的第一yuv數據重新合成為單路或多路的yuv數據,得到第二yuv數據;vpu編碼單元對第二yuv數據進行編碼;碼流輸出單元輸出單路或多路編碼後的碼流數據。本發明具有以下優點:將視頻碼流數據的接收、解碼、合成、編碼分別由不同的硬體進行處理,可以有效實現整個視頻流數據的流水線處理,具有性能好、成本低、功耗小等特點。
附圖說明
圖1為本發明一實施方式涉及的基於arm處理器的視頻錄播的裝置的示意圖;
圖2為本發明一實施方式涉及的基於arm處理器的視頻錄播的方法的示流程圖;
附圖標記說明:
101、碼流輸入單元;
102、vpu解碼單元;
103、圖像合成單元;
104、vpu編碼單元;
105、gpu處理單元;
106、碼流輸出單元;
107、存儲單元。
具體實施方式
為詳細說明技術方案的技術內容、構造特徵、所實現目的及效果,以下結合具體實施例並配合附圖詳予說明。
請參閱圖1,為本發明一實施方式涉及的基於arm處理器的視頻錄播的裝置的示意圖。所述裝置包括碼流輸入單元101、vpu解碼單元102、圖像合成單元103、vpu編碼單元104和碼流輸出單元106;所述碼流輸入單元101和vpu解碼單元102連接,所述vpu解碼單元102和圖像合成單元103,所述圖像合成單元103和vpu編碼單元104連接,所述vpu編碼單元104和碼流輸出單元106連接;
所述碼流輸入單元101用於獲取碼流數據,所述碼流數據包括單路碼流數據或多路碼流數據。在本實施方式中,所述碼流數據為視頻碼流數據,包括多幀圖像數據。
所述vpu解碼單元102用於將碼流輸入單元獲取的碼流數據解碼為第一yuv數據。碼流數據在進行合成處理前,需要進行解碼進行,具體是將視頻碼流數據解碼為一幀一幀的圖像數據。
所述圖像合成單元103用於根據預設配置信息將解碼後的第一yuv數據重新合成為單路或多路的yuv數據,得到第二yuv數據。在某些應用場景中,需要將多路碼流數據合成為一路碼流數據或者多路碼流數據進行輸出,例如對於各個監控攝像頭傳輸的碼流數據需要整合到同一個顯示屏上進行顯示,這就需要對碼流數據進行重新合成。預設配置信息記錄了第一碼流數據與第二碼流數據之間輸出路數的對應關係,即接收某一路數(單路或兩路以上)的第一yuv數據時,需要將其合成為對應路數的(單路或兩路以上)第二yuv數據。
顧名思義,第一yuv數據和第二yuv數據為yuv格式的數據,yuv是被歐洲電視系統所採用的一種顏色編碼方法(屬於pal),是pal和secam模擬彩色電視制式採用的顏色空間。在現代彩色電視系統中,通常採用三管彩色攝影機或彩色ccd攝影機進行取像,然後把取得的彩色圖像信號經分色、分別放大校正後得到rgb,再經過矩陣變換電路得到亮度信號y和兩個色差信號b-y(即u)、r-y(即v),最後發送端將亮度和色差三個信號分別進行編碼,用同一信道發送出去。這種色彩的表示方法就是所謂的yuv色彩空間表示。採用yuv色彩空間的重要性是它的亮度信號y和色度信號u、v是分離的。
所述vpu編碼單元104用於對第二yuv數據進行編碼。碼流數據重新合成為yuv數據後,就需要對其進行重新編碼。在本實施方式中,所述裝置包括gpu處理單元105,所述「vpu編碼單元和碼流輸出單元連接」包括:所述vpu編碼單元104與gpu處理單元105連接,所述gpu處理單元105與和碼流輸出單元連接;所述gpu處理單元用於接收vpu編碼單元編碼後的碼流數據,並對編碼後的碼流數據進行第一處理,所述碼流輸出單元用於輸出執行第一處理後的碼流數據。在某些實施例中,所述第一處理包括在輸出碼流中間插入廣告或者字幕數據流。
所述碼流輸出單元106用於輸出單路或多路編碼後的碼流數據。在本實施方式中,所述裝置還包括存儲單元,所述存儲單元與碼流輸出單元連接,所述碼流輸出單元還用於將編碼後的碼流數據保存至所述存儲單元。所述存儲單元為具有數據存儲功能的電子元件,將編碼後的碼流數據保存至存儲單元中,當下次需要調用時就可以從所述存儲單元提取編碼後的碼流數據,並通過碼流輸出單元傳輸至顯示單元進行播放,進而實現視頻數據的錄播功能。
在某些實施例中,輸入和輸出的碼流數據為高清碼流數據,所述高清碼流數據包括720p或1080p碼流數據。配置信息可以依據實際帶寬進行設置,例如高清碼流數據為h264協議的1080p碼流數據,所獲取碼流數據為4路碼流數據,所述碼流輸出單元輸出的碼流數據為2路第二yuv數據,表示所述裝置可以同步處理4路1080p碼流數據;再比如高清碼流數據為h264協議的720p碼流數據,所獲取碼流數據為8路碼流數據,所述碼流輸出單元輸出的碼流數據為2路第二yuv數據,表示所述裝置可以同步處理8路720p碼流數據。
請參閱圖2,為本發明一實施方式涉及的基於arm處理器的視頻錄播的方法的示流程圖。所述方法應用於基於arm處理器的視頻錄播裝置,所述裝置包括碼流輸入單元、vpu解碼單元、圖像合成單元、vpu編碼單元和碼流輸出單元;所述碼流輸入單元和vpu解碼單元連接,所述vpu解碼單元和圖像合成單元連接,所述圖像合成單元和vpu編碼單元連接,所述vpu編碼單元和碼流輸出單元連接;所述方法包括以下步驟:
首先進入步驟s201碼流輸入單元獲取碼流數據。所述碼流數據包括單路碼流數據或多路碼流數據。在本實施方式中,所述碼流數據為視頻碼流數據,包括多幀圖像數據。
而後進入步驟s202vpu解碼單元將碼流輸入單元獲取的碼流數據解碼為第一yuv數據。碼流數據在進行合成處理前,需要進行解碼進行,具體是將視頻碼流數據解碼為一幀一幀的圖像數據。
而後進入步驟s203圖像合成單元根據預設配置信息將解碼後的第一yuv數據重新合成為單路或多路的yuv數據,得到第二yuv數據。
而後進入步驟s204vpu編碼單元對第二yuv數據進行編碼。
而後進入步驟s205碼流輸出單元輸出單路或多路編碼後的碼流數據。
在某些實施例中,所述裝置還包括存儲單元,所述存儲單元與碼流輸出單元連接,所述方法包括:碼流輸出單元將編碼後的碼流數據保存至所述存儲單元。所述存儲單元為具有數據存儲功能的電子元件,將編碼後的碼流數據保存至存儲單元中,當下次需要調用時就可以從所述存儲單元提取編碼後的碼流數據,並通過碼流輸出單元傳輸至顯示單元進行播放,進而實現視頻數據的錄播功能。
在本實施方式中,所述裝置包括gpu處理單元,所述「vpu編碼單元和碼流輸出單元連接」包括:所述vpu編碼單元與gpu處理單元連接,所述gpu處理單元與和碼流輸出單元連接;所述方法包括:gpu處理單元接收vpu編碼單元編碼後的碼流數據,並對編碼後的碼流數據進行第一處理,碼流輸出單元輸出執行第一處理後的碼流數據。所述第一處理包括在輸出碼流中間插入廣告或者字幕數據流。
本發明提供了一種基於arm處理器的視頻錄播的方法和裝置,所述方法包括以下步驟:碼流輸入單元獲取碼流數據,所述碼流數據包括單路碼流數據或多路碼流數據;vpu解碼單元將碼流輸入單元獲取的碼流數據解碼為第一yuv數據;圖像合成單元根據預設配置信息將解碼後的第一yuv數據重新合成為單路或多路的yuv數據,得到第二yuv數據;vpu編碼單元對第二yuv數據進行編碼;碼流輸出單元輸出單路或多路編碼後的碼流數據。本發明具有以下優點:將視頻碼流數據的接收、解碼、合成、編碼分別由不同的硬體進行處理,可以有效實現整個視頻流數據的流水線處理,具有性能好、成本低、功耗小等特點。
需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句「包括……」或「包含……」限定的要素,並不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的要素。此外,在本文中,「大於」、「小於」、「超過」等理解為不包括本數;「以上」、「以下」、「以內」等理解為包括本數。
本領域內的技術人員應明白,上述各實施例可提供為方法、裝置、或電腦程式產品。這些實施例可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。上述各實施例涉及的方法中的全部或部分步驟可以通過程序來指令相關的硬體來完成,所述的程序可以存儲於計算機設備可讀取的存儲介質中,用於執行上述各實施例方法所述的全部或部分步驟。所述計算機設備,包括但不限於:個人計算機、伺服器、通用計算機、專用計算機、網絡設備、嵌入式設備、可編程設備、智能移動終端、智能家居設備、穿戴式智能設備、車載智能設備等;所述的存儲介質,包括但不限於:ram、rom、磁碟、磁帶、光碟、快閃記憶體、u盤、移動硬碟、存儲卡、記憶棒、網絡伺服器存儲、網絡雲存儲等。
上述各實施例是參照根據實施例所述的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到計算機設備的處理器以產生一個機器,使得通過計算機設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些電腦程式指令也可存儲在能引導計算機設備以特定方式工作的計算機設備可讀存儲器中,使得存儲在該計算機設備可讀存儲器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些電腦程式指令也可裝載到計算機設備上,使得在計算機設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
儘管已經對上述各實施例進行了描述,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改,所以以上所述僅為本發明的實施例,並非因此限制本發明的專利保護範圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護範圍之內。