本發(fā)明專利技術(shù)實(shí)施例公開(kāi)了一種視頻編解碼的方法與裝置,在服務(wù)器中可以同時(shí)安裝多個(gè)GPU,對(duì)于每個(gè)GPU而言,可以依據(jù)用戶輸入的線程個(gè)數(shù)信息,在所述GPU對(duì)應(yīng)的線程池中設(shè)置多個(gè)線程;對(duì)接收到的多路視頻流進(jìn)行解析處理,并利用所述多個(gè)線程調(diào)用所述GPU對(duì)所述解析處理后的多路視頻流進(jìn)行編解碼處理。可見(jiàn),一個(gè)線程通過(guò)調(diào)用GPU可以實(shí)現(xiàn)對(duì)解析后一路視頻流的編解碼處理,一個(gè)GPU對(duì)應(yīng)的可以設(shè)置多個(gè)線程,即該多個(gè)線程可以同時(shí)調(diào)用GPU對(duì)解析后的視頻流進(jìn)行處理,從而實(shí)現(xiàn)一個(gè)GPU對(duì)多路視頻流的并行處理,有效的提升了視頻編解碼的工作效率。
【技術(shù)實(shí)現(xiàn)步驟摘要】
一種視頻編解碼的方法與裝置
本專利技術(shù)涉及計(jì)算機(jī)
,特別是涉及一種視頻編解碼的方法與裝置。
技術(shù)介紹
隨著互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)的高速發(fā)展,人們產(chǎn)生的數(shù)據(jù)總量呈現(xiàn)急劇增長(zhǎng)的趨勢(shì)。信息數(shù)據(jù)越來(lái)越多,對(duì)信息數(shù)據(jù)處理能力的要求也越來(lái)越高,尤其在視頻領(lǐng)域,隨著互聯(lián)網(wǎng)、智慧城市的飛速發(fā)展,有越來(lái)越多的視頻數(shù)據(jù)需要被存儲(chǔ)、傳輸和處理,這其中會(huì)涉及到大量的視頻編碼和解碼,簡(jiǎn)稱視頻編解碼。視頻編解碼技術(shù)是網(wǎng)絡(luò)電視發(fā)展的最初條件,高效的視頻編碼才能保證在現(xiàn)實(shí)的互聯(lián)網(wǎng)環(huán)境下提供視頻服務(wù)。一種可行的方式,視頻編解碼可以由中央處理器(CPU)一手包辦的,但是由于CPU的編解碼能力有限,所以在解碼高清電影時(shí)相當(dāng)吃力。圖像處理器(GraphicsProcessingUnit,GPU),又稱顯示核心,是一種專門(mén)在個(gè)人電腦、工作站、游戲機(jī)和一些移動(dòng)設(shè)備上圖像運(yùn)算工作的微處理器??梢杂糜趯⒂?jì)算機(jī)系統(tǒng)所需要顯示信息進(jìn)行轉(zhuǎn)換驅(qū)動(dòng),并向顯示器提供掃描信號(hào),控制顯示器的正確顯示。GPU的浮點(diǎn)運(yùn)算能力遠(yuǎn)遠(yuǎn)強(qiáng)于CPU,因此由GPU來(lái)處理高清視頻的解碼工作,能夠極大的降低CPU的負(fù)擔(dān),提升視頻編解碼的工作效率。但是,傳統(tǒng)方式中,GPU只能對(duì)視頻流進(jìn)行串行處理,無(wú)法對(duì)大規(guī)模的視頻流數(shù)據(jù)進(jìn)行多路編解碼,導(dǎo)致視頻編解碼工作效率低下??梢?jiàn),如何提升視頻編解碼的工作效率,是本領(lǐng)域技術(shù)人員亟待解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
本專利技術(shù)實(shí)施例的目的是提供一種視頻編解碼的方法與裝置,可以對(duì)大規(guī)模的視頻數(shù)據(jù)進(jìn)行多路編解碼,有效提升視頻編解碼的工作效率。為解決上述技術(shù)問(wèn)題,本專利技術(shù)實(shí)施例提供一種視頻編解碼的方法,應(yīng)用于包含至少一個(gè)GPU的服務(wù)器,所述方法包括:依據(jù)用戶輸入的線程個(gè)數(shù)信息,在所述GPU對(duì)應(yīng)的線程池中設(shè)置多個(gè)線程;對(duì)接收到的多路視頻流進(jìn)行解析處理,并利用所述多個(gè)線程調(diào)用所述GPU對(duì)所述解析處理后的多路視頻流進(jìn)行編解碼處理??蛇x的,還包括:依據(jù)設(shè)置的動(dòng)態(tài)負(fù)載均衡規(guī)則,向所述至少一個(gè)GPU分配所述多路視頻流??蛇x的,還包括:在所述GPU上設(shè)置每個(gè)線程相對(duì)應(yīng)的第一緩沖區(qū)和第二緩沖區(qū);所述第一緩沖區(qū)用于存儲(chǔ)待解碼的視頻流數(shù)據(jù);所述第二緩沖區(qū)用于存儲(chǔ)解碼后的視頻流數(shù)據(jù)??蛇x的,所述對(duì)接收到的多路視頻流進(jìn)行解析處理,并利用所述多個(gè)線程調(diào)用所述GPU對(duì)所述解析處理后的多路視頻流進(jìn)行編解碼處理包括:利用ffmpeg庫(kù)函數(shù)對(duì)所述多路視頻流進(jìn)行解析,獲取所述視頻流的參數(shù)信息;所述參數(shù)信息包括:解碼格式、分辨率、顏色和大??;每路視頻流經(jīng)過(guò)解析后得到對(duì)應(yīng)的至少一個(gè)數(shù)據(jù)包;依據(jù)所述參數(shù)信息,設(shè)置解碼規(guī)則;將所述至少一個(gè)數(shù)據(jù)包寫(xiě)入第一緩沖區(qū);調(diào)用所述GPU依據(jù)所述解碼規(guī)則,對(duì)所述至少一個(gè)數(shù)據(jù)包進(jìn)行解碼操作,得到所述至少一個(gè)數(shù)據(jù)包相對(duì)應(yīng)的至少一個(gè)幀;并將所述至少一個(gè)幀存儲(chǔ)于所述第二緩沖區(qū);調(diào)用所述GPU依據(jù)于預(yù)先設(shè)置的編碼規(guī)則,對(duì)所述第二緩沖區(qū)的所述至少一個(gè)幀進(jìn)行編碼操作??蛇x的,還包括:為所述至少一個(gè)線程設(shè)置相對(duì)應(yīng)的互斥鎖;所述互斥鎖用于保證同一時(shí)刻只有一個(gè)線程調(diào)用所述GPU??蛇x的,還包括:為所述至少一個(gè)GPU設(shè)置相對(duì)應(yīng)的互斥鎖;所述互斥鎖用于保證同一時(shí)刻只為一個(gè)GPU分配多路視頻流。本專利技術(shù)實(shí)施例還提供一種視頻編解碼的裝置,應(yīng)用于包含至少一個(gè)GPU的服務(wù)器,所述裝置包括設(shè)置單元和處理單元:所述設(shè)置單元,用于依據(jù)用戶輸入的線程個(gè)數(shù)信息,在所述GPU對(duì)應(yīng)的線程池中設(shè)置多個(gè)線程;所述處理單元,用于對(duì)接收到的多路視頻流進(jìn)行解析處理,并利用所述多個(gè)線程調(diào)用所述GPU對(duì)所述解析處理后的多路視頻流進(jìn)行編解碼處理??蛇x的,還包括分配單元:所述分配單元,用于依據(jù)設(shè)置的動(dòng)態(tài)負(fù)載均衡規(guī)則,向所述至少一個(gè)GPU分配所述多路視頻流??蛇x的,所述設(shè)置單元還用于在所述GPU上設(shè)置每個(gè)線程相對(duì)應(yīng)的第一緩沖區(qū)和第二緩沖區(qū);所述第一緩沖區(qū)用于存儲(chǔ)待解碼的視頻流數(shù)據(jù);所述第二緩沖區(qū)用于存儲(chǔ)解碼后的視頻流數(shù)據(jù)。可選的,所述處理單元包括解析子單元、設(shè)置子單元、寫(xiě)入子單元、解碼子單元和編碼子單元:所述解析子單元,用于利用ffmpeg庫(kù)函數(shù)對(duì)所述多路視頻流進(jìn)行解析,獲取所述視頻流的參數(shù)信息;所述參數(shù)信息包括:解碼格式、分辨率、顏色和大??;每路視頻流經(jīng)過(guò)解析后得到對(duì)應(yīng)的至少一個(gè)數(shù)據(jù)包;所述設(shè)置子單元,用于依據(jù)所述參數(shù)信息,設(shè)置解碼規(guī)則;所述寫(xiě)入子單元,用于將所述至少一個(gè)數(shù)據(jù)包寫(xiě)入第一緩沖區(qū);所述解碼子單元,用于調(diào)用所述GPU依據(jù)所述解碼規(guī)則,對(duì)所述至少一個(gè)數(shù)據(jù)包進(jìn)行解碼操作,得到所述至少一個(gè)數(shù)據(jù)包相對(duì)應(yīng)的至少一個(gè)幀;并將所述至少一個(gè)幀存儲(chǔ)于所述第二緩沖區(qū);所述編碼子單元,用于調(diào)用所述GPU依據(jù)于預(yù)先設(shè)置的編碼規(guī)則,對(duì)所述第二緩沖區(qū)的所述至少一個(gè)幀進(jìn)行編碼操作??蛇x的,所述設(shè)置單元還用于為所述至少一個(gè)線程設(shè)置相對(duì)應(yīng)的互斥鎖;所述互斥鎖用于保證同一時(shí)刻只有一個(gè)線程調(diào)用所述GPU。可選的,所述設(shè)置單元還用于為所述至少一個(gè)GPU設(shè)置相對(duì)應(yīng)的互斥鎖;所述互斥鎖用于保證同一時(shí)刻只為一個(gè)GPU分配多路視頻流。由上述技術(shù)方案可以看出,在服務(wù)器中可以同時(shí)安裝多個(gè)GPU,對(duì)于每個(gè)GPU而言,可以依據(jù)用戶輸入的線程個(gè)數(shù)信息,在所述GPU對(duì)應(yīng)的線程池中設(shè)置多個(gè)線程;對(duì)接收到的多路視頻流進(jìn)行解析處理,并利用所述多個(gè)線程調(diào)用所述GPU對(duì)所述解析處理后的多路視頻流進(jìn)行編解碼處理??梢?jiàn),一個(gè)線程通過(guò)調(diào)用GPU可以實(shí)現(xiàn)對(duì)解析后一路視頻流的編解碼處理,一個(gè)GPU對(duì)應(yīng)的可以設(shè)置多個(gè)線程,即該多個(gè)線程可以同時(shí)調(diào)用GPU對(duì)解析后的視頻流進(jìn)行處理,從而實(shí)現(xiàn)一個(gè)GPU對(duì)多路視頻流的并行處理,有效的提升了視頻編解碼的工作效率。附圖說(shuō)明為了更清楚地說(shuō)明本專利技術(shù)實(shí)施例,下面將對(duì)實(shí)施例中所需要使用的附圖做簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本專利技術(shù)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本專利技術(shù)實(shí)施例提供的一種視頻編解碼的方法的流程圖;圖2為本專利技術(shù)實(shí)施例提供的另一種視頻編解碼的方法的流程圖;圖3為本專利技術(shù)實(shí)施例提供的一種視頻編解碼的裝置的結(jié)構(gòu)示意圖。具體實(shí)施方式下面將結(jié)合本專利技術(shù)實(shí)施例中的附圖,對(duì)本專利技術(shù)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本專利技術(shù)一部分實(shí)施例,而不是全部實(shí)施例?;诒緦@夹g(shù)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下,所獲得的所有其他實(shí)施例,都屬于本專利技術(shù)保護(hù)范圍。為了使本
的人員更好地理解本專利技術(shù)方案,下面結(jié)合附圖和具體實(shí)施方式對(duì)本專利技術(shù)作進(jìn)一步的詳細(xì)說(shuō)明。接下來(lái),詳細(xì)介紹本專利技術(shù)實(shí)施例所提供的一種視頻編解碼的方法。圖1為本專利技術(shù)實(shí)施例提供的一種視頻編解碼的方法的流程圖,應(yīng)用于包含至少一個(gè)GPU的服務(wù)器,所述方法包括:S101:依據(jù)用戶輸入的線程個(gè)數(shù)信息,在所述GPU對(duì)應(yīng)的線程池中設(shè)置多個(gè)線程。線程可以理解為是調(diào)用GPU實(shí)現(xiàn)編解碼的接口信息,利用該線程便可以調(diào)用GPU實(shí)現(xiàn)是對(duì)視頻流的編解碼。線程池可以用于存儲(chǔ)線程,一個(gè)線程池中存儲(chǔ)的線程的個(gè)數(shù)可以根據(jù)用戶的要求進(jìn)行設(shè)置。在本專利技術(shù)實(shí)施例中,可以在服務(wù)器中設(shè)置至少一個(gè)GPU,每個(gè)GPU對(duì)應(yīng)有一個(gè)線程池,每個(gè)線程池可以設(shè)置有至少一個(gè)線程。一個(gè)線程池中設(shè)置有幾個(gè)線程,對(duì)應(yīng)的便可以同時(shí)對(duì)幾路視頻流進(jìn)行處理。其中,線程池中包括本文檔來(lái)自技高網(wǎng)...

【技術(shù)保護(hù)點(diǎn)】
一種視頻編解碼的方法,其特征在于,應(yīng)用于包含至少一個(gè)GPU的服務(wù)器,所述方法包括:依據(jù)用戶輸入的線程個(gè)數(shù)信息,在所述GPU對(duì)應(yīng)的線程池中設(shè)置多個(gè)線程;對(duì)接收到的多路視頻流進(jìn)行解析處理,并利用所述多個(gè)線程調(diào)用所述GPU對(duì)所述解析處理后的多路視頻流進(jìn)行編解碼處理。
【技術(shù)特征摘要】
1.一種視頻編解碼的方法,其特征在于,應(yīng)用于包含至少一個(gè)GPU的服務(wù)器,所述方法包括:依據(jù)用戶輸入的線程個(gè)數(shù)信息,在所述GPU對(duì)應(yīng)的線程池中設(shè)置多個(gè)線程;對(duì)接收到的多路視頻流進(jìn)行解析處理,并利用所述多個(gè)線程調(diào)用所述GPU對(duì)所述解析處理后的多路視頻流進(jìn)行編解碼處理。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:依據(jù)設(shè)置的動(dòng)態(tài)負(fù)載均衡規(guī)則,向所述至少一個(gè)GPU分配所述多路視頻流。3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括:在所述GPU上設(shè)置每個(gè)線程相對(duì)應(yīng)的第一緩沖區(qū)和第二緩沖區(qū);所述第一緩沖區(qū)用于存儲(chǔ)待解碼的視頻流數(shù)據(jù);所述第二緩沖區(qū)用于存儲(chǔ)解碼后的視頻流數(shù)據(jù)。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述對(duì)接收到的多路視頻流進(jìn)行解析處理,并利用所述多個(gè)線程調(diào)用所述GPU對(duì)所述解析處理后的多路視頻流進(jìn)行編解碼處理包括:利用ffmpeg庫(kù)函數(shù)對(duì)所述多路視頻流進(jìn)行解析,獲取所述視頻流的參數(shù)信息;所述參數(shù)信息包括:解碼格式、分辨率、顏色和大小;每路視頻流經(jīng)過(guò)解析后得到對(duì)應(yīng)的至少一個(gè)數(shù)據(jù)包;依據(jù)所述參數(shù)信息,設(shè)置解碼規(guī)則;將所述至少一個(gè)數(shù)據(jù)包寫(xiě)入第一緩沖區(qū);調(diào)用所述GPU依據(jù)所述解碼規(guī)則,對(duì)所述至少一個(gè)數(shù)據(jù)包進(jìn)行解碼操作,得到所述至少一個(gè)數(shù)據(jù)包相對(duì)應(yīng)的至少一個(gè)幀;并將所述至少一個(gè)幀存儲(chǔ)于所述第二緩沖區(qū);調(diào)用所述GPU依據(jù)于預(yù)先設(shè)置的編碼規(guī)則,對(duì)所述第二緩沖區(qū)的所述至少一個(gè)幀進(jìn)行編碼操作。5.根據(jù)權(quán)利要求1-4任意一項(xiàng)所述的方法,其特征在于,還包括:為所述至少一個(gè)線程設(shè)置相對(duì)應(yīng)的互斥鎖;所述互斥鎖用于保證同一時(shí)刻只有一個(gè)線程調(diào)用所述GPU。6.根據(jù)權(quán)利要求1-4任意一項(xiàng)所述的方法,其特征在于,還包括:為所述至少一個(gè)...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:吳韶華,張清,
申請(qǐng)(專利權(quán))人:鄭州云海信息技術(shù)有限公司,
類型:發(fā)明
國(guó)別省市:河南,41
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。