欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

虛擬化環(huán)境下的音頻處理方法和設(shè)備與流程

文檔序號(hào):12041280閱讀:773來(lái)源:國(guó)知局
虛擬化環(huán)境下的音頻處理方法和設(shè)備與流程
本發(fā)明涉及云計(jì)算技術(shù)領(lǐng)域,尤其涉及一種虛擬化環(huán)境下的音頻處理方法和設(shè)備。

背景技術(shù):
虛擬桌面是目前云計(jì)算技術(shù)引發(fā)的使用計(jì)算機(jī)方式的一種變遷,云計(jì)算將計(jì)算資源集中于云端的數(shù)據(jù)中心,以虛擬機(jī)(VirtualMachine,VM)的方式提供給用戶使用。用戶在需要使用這些虛擬機(jī)時(shí),就需要使用虛擬桌面技術(shù)將各種計(jì)算機(jī)輸入傳輸至運(yùn)行于遠(yuǎn)端數(shù)據(jù)中心中的虛擬機(jī)計(jì)算資源中作為計(jì)算輸入,同時(shí)將輸出,例如顯示、音頻、視頻等,傳輸至用戶本地并呈現(xiàn)給用戶,實(shí)現(xiàn)人機(jī)交互。音頻重定向技術(shù)是虛擬桌面技術(shù)中的重要組成之一。由于現(xiàn)有的廣域網(wǎng)環(huán)境下用戶和數(shù)據(jù)中心間的網(wǎng)絡(luò)帶寬是有限的,所以在進(jìn)行音頻重定向時(shí)需要對(duì)音頻數(shù)據(jù)進(jìn)行編解碼處理以減少傳輸?shù)臄?shù)據(jù)量?,F(xiàn)有技術(shù)中,虛擬機(jī)自身可以處理音頻數(shù)據(jù),或者,也可以在服務(wù)器內(nèi)配置專用芯片,由專用芯片對(duì)音頻數(shù)據(jù)進(jìn)行處理。對(duì)于確定的場(chǎng)景,服務(wù)器上的所有虛擬機(jī)采用相同的處理方式進(jìn)行音頻數(shù)據(jù)處理。例如,服務(wù)器上沒(méi)有配置專用芯片,該服務(wù)器上的所有虛擬機(jī)將自己處理音頻數(shù)據(jù),或者,如果服務(wù)器上配置有專用芯片,該服務(wù)器上的所有虛擬機(jī)將音頻數(shù)據(jù)發(fā)送給專用芯片,由專用芯片進(jìn)行處理。但是,這種單一處理方式會(huì)造成系統(tǒng)資源浪費(fèi)和成本增加。例如,對(duì)于配置了專用芯片的場(chǎng)景,由于所有虛擬機(jī)的音頻數(shù)據(jù)都需要專用芯片進(jìn)行處理,為了保證所有虛擬機(jī)在同時(shí)運(yùn)行時(shí)也可以被處理,則需要配置數(shù)量與虛擬機(jī)的最大數(shù)量相對(duì)應(yīng)的專用芯片。但是,通常虛擬機(jī)不會(huì)同時(shí)運(yùn)行,即使同時(shí)運(yùn)行也不會(huì)同時(shí)進(jìn)行音頻處理,因此,按照虛擬機(jī)的最大數(shù)據(jù)配置對(duì)應(yīng)數(shù)量的專用芯片是不合理的,浪費(fèi)了資源,造成了成本增加。

技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種虛擬化環(huán)境下的音頻處理方法和設(shè)備,可以充分利用系統(tǒng)資源,降低成本。本發(fā)明提供了一種虛擬機(jī)環(huán)境下的音頻處理方法,包括:接收到編解碼調(diào)用消息后,查詢系統(tǒng)資源的使用情況,所述編解碼調(diào)用消息中攜帶要處理的音頻數(shù)據(jù),所述系統(tǒng)資源包括:專用芯片、VM和VMM;根據(jù)所述系統(tǒng)資源的使用情況,采用空閑的系統(tǒng)資源對(duì)所述要處理的音頻數(shù)據(jù)進(jìn)行處理。本發(fā)明提供了一種虛擬化環(huán)境下的音頻處理設(shè)備,包括:查詢模塊,用于接收到編解碼調(diào)用消息后,查詢系統(tǒng)資源的使用情況,所述編解碼調(diào)用消息中攜帶要處理的音頻數(shù)據(jù),所述系統(tǒng)資源包括:專用芯片、VM和VMM;處理模塊,用于根據(jù)所述系統(tǒng)資源的使用情況,采用空閑的系統(tǒng)資源對(duì)所述要處理的音頻數(shù)據(jù)進(jìn)行處理。由上述技術(shù)方案可知,本發(fā)明實(shí)施例通過(guò)查詢系統(tǒng)資源的使用情況,選擇空閑的系統(tǒng)資源處理音頻數(shù)據(jù),可以在配置較少的專用芯片時(shí)選擇由其他系統(tǒng)資源對(duì)音頻數(shù)據(jù)進(jìn)行處理,也就是說(shuō),可以根據(jù)實(shí)際情況選擇系統(tǒng)資源,而并不限定由單一的系統(tǒng)資源對(duì)音頻數(shù)據(jù)進(jìn)行處理,因此可以充分利用系統(tǒng)中的所有資源,降低配置較多專用芯片所需的成本。附圖說(shuō)明為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明虛擬化環(huán)境下音頻處理方法一實(shí)施例的流程示意圖;圖2為本發(fā)明實(shí)施例基于的邏輯結(jié)構(gòu)示意圖;圖3為本發(fā)明虛擬化環(huán)境下音頻處理方法另一實(shí)施例的流程示意圖;圖4為本發(fā)明虛擬化環(huán)境下音頻處理方法另一實(shí)施例的流程示意圖;圖5為本發(fā)明虛擬化環(huán)境下音頻處理方法另一實(shí)施例的流程示意圖;圖6為本發(fā)明虛擬機(jī)環(huán)境下音頻處理設(shè)備一實(shí)施例的結(jié)構(gòu)示意圖;圖7為本發(fā)明虛擬機(jī)環(huán)境下音頻處理設(shè)備另一實(shí)施例的結(jié)構(gòu)示意圖。具體實(shí)施方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。圖1為本發(fā)明虛擬化環(huán)境下音頻處理方法一實(shí)施例的流程示意圖,包括:步驟11:接收到編解碼調(diào)用消息后,查詢系統(tǒng)資源的使用情況,所述編解碼調(diào)用消息中攜帶要處理的音頻數(shù)據(jù),所述系統(tǒng)資源包括:專用芯片、VM和虛擬機(jī)監(jiān)控器(VirtualMachineMonitor,VMM);步驟12:根據(jù)所述系統(tǒng)資源的使用情況,采用空閑的系統(tǒng)資源對(duì)所述要處理的音頻數(shù)據(jù)進(jìn)行處理。其中,由于專用芯片可以提供更好的編解碼性能,因此,如果存在空閑的專用芯片則優(yōu)先使用專用芯片進(jìn)行音頻數(shù)據(jù)處理。當(dāng)不存在空閑的專用芯片時(shí),可以根據(jù)VM和VMM的使用情況,采用VM的CPU或者VMM的CPU進(jìn)行音頻數(shù)據(jù)處理。由于在專用芯片不足時(shí),還可以采用VM或VMM對(duì)音頻數(shù)據(jù)進(jìn)行處理,因此,本發(fā)明實(shí)施例中并不需要按照虛擬機(jī)的最大數(shù)量配置專用芯片的個(gè)數(shù)。例如,假設(shè)每個(gè)專用芯片可以為N個(gè)虛擬機(jī)服務(wù),虛擬機(jī)的最大個(gè)數(shù)為k×N,則如果按照現(xiàn)有技術(shù),那需要配置k個(gè)專用芯片。但是,由于通常k×N個(gè)虛擬機(jī)不會(huì)同時(shí)運(yùn)行,或者不會(huì)同時(shí)使用音頻處理,配置的k個(gè)專用芯片會(huì)在大部分時(shí)間存在空閑的專用芯片。但是,本發(fā)明實(shí)施例中,可以配置數(shù)量小于k的專用芯片,假設(shè)通常同時(shí)使用音頻的虛擬機(jī)的個(gè)數(shù)為(k-m)×N個(gè),則本實(shí)施例中可以只配置k-m個(gè)專用芯片。這樣就可以避免專用芯片的空閑,使得專用芯片被充分使用,能夠滿足通常的場(chǎng)景所需。另外,即使對(duì)于偶然場(chǎng)景,即除(k-m)×N個(gè)虛擬機(jī)之外,還另有虛擬機(jī)需要使用音頻數(shù)據(jù),那么也可以采用VM自身或者VMM對(duì)新啟動(dòng)的虛擬機(jī)的音頻數(shù)據(jù)進(jìn)行處理。上述的專用芯片的個(gè)數(shù)可以根據(jù)同時(shí)需要音頻處理的虛擬機(jī)的個(gè)數(shù)的最大值進(jìn)行設(shè)定。由于通常同時(shí)需要音頻處理的虛擬機(jī)的個(gè)數(shù)較少,因此,本發(fā)明實(shí)施例中的專用芯片的個(gè)數(shù)通常是遠(yuǎn)小于現(xiàn)有技術(shù)中按照虛擬機(jī)的最大個(gè)數(shù)選擇的專用芯片的個(gè)數(shù)。本實(shí)施例通過(guò)對(duì)系統(tǒng)資源的使用情況的查詢,可以充分利用各種系統(tǒng)資源,可以配置較少的專用芯片,降低成本。圖2為本發(fā)明實(shí)施例基于的邏輯結(jié)構(gòu)示意圖,下述各實(shí)施例的場(chǎng)景可以結(jié)合該邏輯結(jié)構(gòu)執(zhí)行。該邏輯結(jié)構(gòu)可以是云數(shù)據(jù)中心的服務(wù)器20的結(jié)構(gòu)示意圖,其中底層為主機(jī)硬件,主機(jī)硬件包括專用芯片和CPU。服務(wù)器上可以虛擬出多個(gè)虛擬機(jī),用以分配給不同的用戶使用,參見(jiàn)圖2,多個(gè)虛擬機(jī)分別為VM1...VMn;每個(gè)虛擬機(jī)內(nèi)可以設(shè)置音頻模塊、編解碼組件和硬件驅(qū)動(dòng)模塊,圖2中只以VM1為例,只在VM1中示出了上述模塊,可以理解的是,其余虛擬機(jī)中也包含上述模塊,另外,虛擬機(jī)中還可以包含其余模塊。虛擬機(jī)監(jiān)控器(VMM)可以監(jiān)控虛擬機(jī)以及專用芯片的占用情況,并可以在虛擬機(jī)和主機(jī)硬件間傳遞數(shù)據(jù);VMM中可以設(shè)置虛擬硬件模塊,與現(xiàn)有技術(shù)不同的是,本發(fā)明實(shí)施例中還包含資源分配器。具體地:音頻模塊:虛擬桌面中負(fù)責(zé)音頻數(shù)據(jù)發(fā)送和接收的模塊。音頻模塊在接收到需要傳輸?shù)娇蛻舳说囊纛l數(shù)據(jù)后,會(huì)根據(jù)情況決定是否使用壓縮以及使用哪種壓縮格式,然后調(diào)用編解碼組件進(jìn)行音頻格式的轉(zhuǎn)換和壓縮;在接收到客戶端發(fā)送過(guò)來(lái)的音頻數(shù)據(jù)后,也需要轉(zhuǎn)換為特定的音頻格式。編解碼組件:被音頻模塊調(diào)用的組件,在系統(tǒng)中注冊(cè)自己,將專用芯片的功能以庫(kù)的形式提供給軟件開(kāi)發(fā)者使用。對(duì)于芯片特殊計(jì)算能力的使用,編解碼組件中存在決策判斷邏輯,在被調(diào)用來(lái)進(jìn)行編解碼處理時(shí),會(huì)向硬件驅(qū)動(dòng)模塊發(fā)送消息獲取硬件資源,如果獲取成功,編解碼組件將使用專用芯片自己的開(kāi)發(fā)庫(kù)來(lái)進(jìn)行編解碼處理;如果獲取失敗,將調(diào)用現(xiàn)有普通的軟件編解碼庫(kù)通過(guò)VM自己的CPU來(lái)實(shí)現(xiàn)編解碼處理。硬件驅(qū)動(dòng)模塊:專用芯片在VM中的驅(qū)動(dòng)程序,可以是全功能的芯片驅(qū)動(dòng),與非虛擬化情況下操作系統(tǒng)中安裝的專用芯片驅(qū)動(dòng)沒(méi)有差別。虛擬硬件模塊:截獲VM中硬件驅(qū)動(dòng)模塊的命令并作出應(yīng)答,用于為VM提供虛擬的硬件。虛擬硬件模塊在接收到硬件驅(qū)動(dòng)模塊的I/O請(qǐng)求后會(huì)首先向資源分配器發(fā)送物理硬件資源請(qǐng)求命令。如果請(qǐng)求到芯片資源,虛擬硬件模塊會(huì)根據(jù)I/O請(qǐng)求將此芯片資源與特定的用戶綁定一段時(shí)間。如果請(qǐng)求不到芯片資源,從資源分配器得到的返回值可能存在兩種,一種會(huì)指示虛擬硬件模塊使用VMM的CPU計(jì)算能力模擬芯片的行為;另一種會(huì)指示虛擬硬件模塊向VM中的驅(qū)動(dòng)程序返回硬件不可得的返回值。資源分配器:監(jiān)視系統(tǒng)運(yùn)行負(fù)載狀況并記錄專用芯片的使用情況以及CPU狀況,在接收到特定VM的虛擬硬件模塊發(fā)出的資源請(qǐng)求時(shí),作出調(diào)度判斷,確定是否允許當(dāng)前VM的虛擬硬件模塊映射到物理資源上,這種映射關(guān)系維持的時(shí)間可以根據(jù)相應(yīng)的策略動(dòng)態(tài)更改,以高效地被多個(gè)VM重用。如果當(dāng)前沒(méi)有足夠的專用芯片資源,則根據(jù)CPU的負(fù)載情況進(jìn)行進(jìn)一步的判斷。如果當(dāng)前VM的CPU負(fù)載高于警戒值,則決定使用VMM的CPU進(jìn)行硬件行為模擬;否則返回硬件不可得,讓VM使用自己的CPU進(jìn)行壓縮解壓處理。專用芯片:使用硬件實(shí)現(xiàn)編解碼處理邏輯的特殊芯片,可以高效處理指定的格式的音頻編解碼,節(jié)省CPU資源。上述模塊中,與現(xiàn)有技術(shù)不同的是,本發(fā)明實(shí)施例中新增資源分配器,以便動(dòng)態(tài)地監(jiān)視專用芯片、VM、VMM的使用情況,確定由哪種資源對(duì)音頻數(shù)據(jù)進(jìn)行處理。另外,與之對(duì)應(yīng)的,現(xiàn)有技術(shù)中的編解碼組件、硬件驅(qū)動(dòng)模塊、虛擬硬件模塊也要進(jìn)行功能增強(qiáng),例如,需要首先查詢系統(tǒng)資源的使用情況,在獲取使用情況結(jié)果后將音頻數(shù)據(jù)交由相應(yīng)的模塊進(jìn)行處理。結(jié)合上述模塊,本發(fā)明可以給出如下實(shí)施例。圖3為本發(fā)明虛擬化環(huán)境下音頻處理方法另一實(shí)施例的流程示意圖,本實(shí)施例以使用專業(yè)芯片處理音頻數(shù)據(jù)為例。參見(jiàn)圖3,本實(shí)施例包括:步驟301:音頻模塊向編解碼組件發(fā)送編解碼調(diào)用消息,該編解碼調(diào)用消息中攜帶要處理的音頻數(shù)據(jù)。可以理解的是,如果是要向外界發(fā)送音頻數(shù)據(jù),音頻模塊是要進(jìn)行編碼操作,如果是接收到外界發(fā)送的音頻數(shù)據(jù),音頻模塊是要進(jìn)行解碼操作,因此,上述的編解碼調(diào)度消息具體為編碼調(diào)度消息或者解碼調(diào)度消息,與此對(duì)應(yīng)的是,后續(xù)的編解碼相關(guān)消息應(yīng)該具體是編碼相關(guān)消息或者解碼消息。由于本發(fā)明實(shí)施例可以應(yīng)用于編碼過(guò)程也可以應(yīng)用于解碼過(guò)程,因此統(tǒng)稱為編解碼消息。步驟302:編解碼組件向硬件驅(qū)動(dòng)模塊發(fā)送請(qǐng)求消息,該請(qǐng)求消息用于查詢專用芯片的使用情況;其中,音頻模塊調(diào)用編解碼組件后,編解碼組件可以首先調(diào)用專用芯片開(kāi)發(fā)庫(kù)接口進(jìn)行初始化操作,即發(fā)送上述的請(qǐng)求消息,查詢專用芯片當(dāng)前是否可用,以便在可用時(shí)調(diào)用專用芯片進(jìn)行真正的編解碼處理。步驟303:硬件驅(qū)動(dòng)模塊向虛擬硬件模塊發(fā)送編解碼開(kāi)始請(qǐng)求消息,以便查詢專用芯片的使用情況。其中,該編解碼開(kāi)始請(qǐng)求消息可以是I/O控制碼。步驟304:虛擬硬件模塊向資源分配器發(fā)送物理硬件資源申請(qǐng)消息;其中,虛擬硬件模塊在接收到編解碼開(kāi)始請(qǐng)求消息后,可以首先查詢自己是否擁有硬件訪問(wèn)權(quán)限,在具有硬件訪問(wèn)權(quán)限后發(fā)送物理硬件資源申請(qǐng)消息。步驟305:資源分配器查詢專用芯片的使用情況。由于資源分配器可以監(jiān)視系統(tǒng)內(nèi)各模塊的負(fù)載情況,因此資源分配器可以確定專用芯片的使用情況,以確定是否存在空閑的專用芯片。例如,系統(tǒng)中預(yù)先配置了M個(gè)專用芯片,當(dāng)前已經(jīng)被虛擬機(jī)使用的專用芯片的個(gè)數(shù)小于M個(gè),則可以確定出存在空閑的專用芯片;如果當(dāng)前已經(jīng)被虛擬機(jī)使用的專用芯片的個(gè)數(shù)達(dá)到M個(gè),則確定不存在空閑的專用芯片。步驟306:資源分配器在確定出存在空閑的專用芯片時(shí),向虛擬硬件模塊發(fā)送申請(qǐng)成功消息;在返回申請(qǐng)成功消息后,可以將專用芯片分配給音頻模塊所在的虛擬機(jī)使用一定時(shí)間,該時(shí)間段內(nèi)該虛擬機(jī)的音頻數(shù)據(jù)可以由專用芯片進(jìn)行處理。該時(shí)間段的具體數(shù)值可以根據(jù)實(shí)際情況設(shè)定。步驟307:虛擬硬件模塊根據(jù)所述申請(qǐng)成功消息向硬件驅(qū)動(dòng)模塊發(fā)送硬件準(zhǔn)備就緒消息;其中,該硬件準(zhǔn)備就緒消息可以是I/O控制結(jié)果。步驟308:硬件驅(qū)動(dòng)模塊根據(jù)所述硬件準(zhǔn)備就緒消息向編解碼組件發(fā)送表明硬件準(zhǔn)備就緒的初始化結(jié)果消息。步驟309:編解碼組件向硬件驅(qū)動(dòng)模塊發(fā)送編解碼開(kāi)始消息;步驟310:硬件驅(qū)動(dòng)模塊接收到編解碼開(kāi)始消息后,將要處理的音頻數(shù)據(jù)從VM的用戶態(tài)拷貝到VM的內(nèi)核態(tài),并向虛擬硬件模塊發(fā)送直接內(nèi)存存取(DirectMemoryAccess,DMA)指令;其中,編解碼組件位于VM的用戶態(tài)內(nèi),硬件驅(qū)動(dòng)模塊位于VM的內(nèi)核態(tài)內(nèi)。音頻模塊發(fā)送編解碼調(diào)用消息后可以將要處理的數(shù)據(jù)發(fā)送給編解碼組件,使得要處理的音頻數(shù)據(jù)位于用戶態(tài)內(nèi)。為了后續(xù)數(shù)據(jù)傳輸,硬件驅(qū)動(dòng)模塊需要從用戶態(tài)獲取要處理的音頻數(shù)據(jù)并保存在自身所在的內(nèi)核態(tài)。步驟311:虛擬硬件模塊根據(jù)所述DMA指令從VM的內(nèi)核態(tài)獲取所述要處理的音頻數(shù)據(jù),并將所述要處理的音頻數(shù)據(jù)傳輸給專用芯片;步驟312:專用芯片對(duì)所述要處理的音頻數(shù)據(jù)進(jìn)行編解碼處理;其中,專用芯片可以采用現(xiàn)有技術(shù)中的專用芯片,專用芯片可以提供比VM自身的CPU編解碼更高的性能。步驟313:專用芯片將處理后的音頻數(shù)據(jù)傳輸給虛擬硬件模塊;步驟314:虛擬硬件模塊獲取處理后的音頻數(shù)據(jù)后,向硬件驅(qū)動(dòng)模塊發(fā)送DMA中斷指令;步驟315:硬件驅(qū)動(dòng)模塊根據(jù)所述DMA中斷指令,從虛擬硬件模塊獲取處理后的音頻數(shù)據(jù),并將處理后的音頻數(shù)據(jù)發(fā)送給編解碼組件。其中,硬件驅(qū)動(dòng)模塊虛擬硬件模塊獲取處理后的音頻數(shù)據(jù)后,可以通知編解碼組件,編解碼組件接收到通知后,可以將處理后的音頻數(shù)據(jù)從內(nèi)核態(tài)拷貝至用戶態(tài)。步驟316:編解碼組件將處理后的音頻數(shù)據(jù)發(fā)送給音頻模塊。圖4為本發(fā)明虛擬化環(huán)境下音頻處理方法另一實(shí)施例的流程示意圖,本實(shí)施例以使用VM自身的CPU對(duì)音頻數(shù)據(jù)進(jìn)行處理為例,參見(jiàn)圖4,本實(shí)施例包括:步驟401:音頻模塊向編解碼組件發(fā)送編解碼調(diào)用消息,該編解碼調(diào)用消息中攜帶要處理的音頻數(shù)據(jù)。步驟402:編解碼組件向硬件驅(qū)動(dòng)模塊發(fā)送請(qǐng)求消息,該請(qǐng)求消息用于查詢專用芯片的使用情況;步驟403:硬件驅(qū)動(dòng)模塊向虛擬硬件模塊發(fā)送編解碼開(kāi)始請(qǐng)求消息,以便查詢專用芯片的使用情況。步驟404:虛擬硬件模塊向資源分配器發(fā)送物理硬件資源申請(qǐng)消息。上述的步驟401~404的具體內(nèi)容可以分別參見(jiàn)步驟301~304。步驟405:資源分配器查詢專用芯片的使用情況,并在不存在空閑的專用芯片時(shí),進(jìn)一步查詢VM和VMM的使用情況。其中,在上一實(shí)施例的基礎(chǔ)上,如果查詢后不存在空閑的專用芯片,則還需要進(jìn)一步查詢VM和VMM的使用情況,如果VM的當(dāng)前使用率低于第一設(shè)定值而VMM的當(dāng)前使用率高于第二設(shè)定值,則確定由VM自己的CPU對(duì)音頻數(shù)據(jù)進(jìn)行處理。具體的,第一設(shè)定值用于表征VM的負(fù)載能力,當(dāng)VM的使用率高于第一設(shè)定值時(shí),表明VM不能再處理音頻數(shù)據(jù),而如果VM的使用率低于第一設(shè)定值,表明VM還具有繼續(xù)處理音頻數(shù)據(jù)的能力;第二設(shè)定值用于表征VMM的負(fù)載能力,當(dāng)VMM的使用率高于第二設(shè)定值時(shí),VMM不能再處理音頻數(shù)據(jù),而如果VMM的使用率低于第二設(shè)定值,表明VMM還具有繼續(xù)處理音頻數(shù)據(jù)的能力。上述的第一設(shè)定值和第二設(shè)定值可以根據(jù)實(shí)際情況進(jìn)行設(shè)置。步驟406:資源分配器在確定出不存在空閑的專用芯片且確定出使用VM自身進(jìn)行編解碼處理時(shí),向虛擬硬件模塊發(fā)送申請(qǐng)失敗消息,并且該申請(qǐng)失敗消息中攜帶硬件不可得信息;步驟407:虛擬硬件模塊向硬件驅(qū)動(dòng)模塊發(fā)送硬件準(zhǔn)備結(jié)果,該硬件準(zhǔn)備結(jié)果中攜帶硬件不可得信息;步驟408:硬件驅(qū)動(dòng)模塊向編解碼組件發(fā)送請(qǐng)求結(jié)果,該請(qǐng)求結(jié)果中攜帶硬件不可得信息。步驟409:編解碼組件接收到該請(qǐng)求結(jié)果后,使用VM自身的CPU對(duì)要處理的音頻數(shù)據(jù)進(jìn)行編解碼處理。其中,VM自身的CPU內(nèi)會(huì)保存編解碼算法,可以完成對(duì)音頻數(shù)據(jù)的編解碼處理,此時(shí),相當(dāng)于現(xiàn)有技術(shù)中沒(méi)有配備專用芯片時(shí)的編解碼處理。步驟410:編解碼組件將處理后的音頻數(shù)據(jù)發(fā)送給音頻模塊。圖5為本發(fā)明虛擬化環(huán)境下音頻處理方法另一實(shí)施例的流程示意圖,本實(shí)施例以使用VMM進(jìn)行音頻數(shù)據(jù)處理為例,參見(jiàn)圖5,本實(shí)施例包括:步驟501:音頻模塊向編解碼組件發(fā)送編解碼調(diào)用消息,該編解碼調(diào)用消息中攜帶要處理的音頻數(shù)據(jù)。步驟502:編解碼組件向硬件驅(qū)動(dòng)模塊發(fā)送請(qǐng)求消息,該請(qǐng)求消息用于查詢專用芯片的使用情況;步驟503:硬件驅(qū)動(dòng)模塊向虛擬硬件模塊發(fā)送編解碼開(kāi)始請(qǐng)求消息,以便查詢專用芯片的使用情況。步驟504:虛擬硬件模塊向資源分配器發(fā)送物理硬件資源申請(qǐng)消息。上述的步驟501~504的具體內(nèi)容可以分別參見(jiàn)步驟301~304。步驟505:資源分配器查詢專用芯片的使用情況,并在不存在空閑的專用芯片時(shí),進(jìn)一步查詢VM和VMM的使用情況。其中,在圖3所示的實(shí)施例的基礎(chǔ)上,如果查詢后不存在空閑的專用芯片,則還需要進(jìn)一步查詢VM和VMM的使用情況,如果VM的當(dāng)前使用率高于第一設(shè)定值而VMM的當(dāng)前使用率低于第二設(shè)定值,則確定由虛擬硬件的CPU對(duì)音頻數(shù)據(jù)進(jìn)行處理。關(guān)于第一設(shè)定值和第二設(shè)定值的具體說(shuō)明可以參見(jiàn)上一實(shí)施例。另外,當(dāng)VM的當(dāng)前使用率低于第一設(shè)定值且VMM的當(dāng)前使用率低于第二設(shè)定值時(shí),也就是VM和VMM都具有繼續(xù)處理音頻數(shù)據(jù)的能力時(shí),可以隨機(jī)選擇VM或VMM進(jìn)行后續(xù)音頻數(shù)據(jù),或者,預(yù)先設(shè)定此種情況由VM或VMM進(jìn)行處理,或者,比較VM的使用率與第一設(shè)定值之間的比值,以及VMM的使用率與第二設(shè)定值之間的比值,選擇比值較小,也就是負(fù)載較輕的設(shè)備進(jìn)行處理。另外,當(dāng)VM和VMM都不具有繼續(xù)處理音頻數(shù)據(jù)的能力時(shí),可以結(jié)束音頻數(shù)據(jù)處理。步驟506:資源分配器在確定出不存在空閑的專用芯片且確定出使用VMM進(jìn)行編解碼處理時(shí),向虛擬硬件模塊發(fā)送申請(qǐng)失敗消息,該申請(qǐng)失敗消息中攜帶使用硬件模擬方式的信息;步驟507:虛擬硬件模塊向硬件驅(qū)動(dòng)模塊發(fā)送硬件準(zhǔn)備結(jié)果,該硬件準(zhǔn)備結(jié)果攜帶使用硬件模擬方式的信息;步驟508:硬件驅(qū)動(dòng)模塊向編解碼組件發(fā)送請(qǐng)求結(jié)果,該請(qǐng)求結(jié)果中攜帶使用硬件模擬方式的信息。步驟509:編解碼組件接收到攜帶使用硬件模擬方式的信息的請(qǐng)求結(jié)果后,向硬件驅(qū)動(dòng)模塊發(fā)送編解碼開(kāi)始消息;步驟510:硬件驅(qū)動(dòng)模塊根據(jù)所述編解碼開(kāi)始消息,將要處理的音頻數(shù)據(jù)從VM的用戶態(tài)拷貝到VM的內(nèi)核態(tài),并向虛擬硬件模塊發(fā)送DMA指令;步驟511:虛擬硬件模塊從VM的內(nèi)核態(tài)獲取要處理的音頻數(shù)據(jù),并使用VMM的CPU虛擬的硬件對(duì)要處理的音頻數(shù)據(jù)進(jìn)行處理;步驟512:虛擬硬件模塊在對(duì)音頻數(shù)據(jù)進(jìn)行處理后,向硬件驅(qū)動(dòng)模塊發(fā)送DMA中斷指令;步驟513:硬件驅(qū)動(dòng)模塊根據(jù)所述DMA中斷指令,從虛擬硬件模塊獲取處理后的音頻數(shù)據(jù),并將處理后的音頻數(shù)據(jù)發(fā)送給編解碼組件。其中,硬件驅(qū)動(dòng)模塊虛擬硬件模塊獲取處理后的音頻數(shù)據(jù)后,可以通知編解碼組件,編解碼組件接收到通知后,可以將處理后的音頻數(shù)據(jù)從內(nèi)核態(tài)拷貝至用戶態(tài)將處理后的音頻數(shù)據(jù)發(fā)送給編解碼組件。步驟514:編解碼組件將處理后的音頻數(shù)據(jù)發(fā)送給音頻模塊。本發(fā)明實(shí)施例通過(guò)查詢系統(tǒng)資源的使用情況,采用上述三種之一的空閑的系統(tǒng)資源處理音頻數(shù)據(jù),可以配置較少的專用芯片,實(shí)現(xiàn)系統(tǒng)資源的充分利用并降低成本。圖6為本發(fā)明虛擬機(jī)環(huán)境下音頻處理設(shè)備一實(shí)施例的結(jié)構(gòu)示意圖,該設(shè)備可以是執(zhí)行上述方法的設(shè)備,該設(shè)備可以是提供云服務(wù)的服務(wù)器,該設(shè)備包括查詢模塊61和處理模塊62;查詢模塊61用于接收到編解碼調(diào)用消息后,查詢系統(tǒng)資源的使用情況,所述編解碼調(diào)用消息中攜帶要處理的音頻數(shù)據(jù),所述系統(tǒng)資源包括:專用芯片、VM和VMM;處理模塊62用于根據(jù)所述系統(tǒng)資源的使用情況,采用空閑的系統(tǒng)資源對(duì)所述要處理的音頻數(shù)據(jù)進(jìn)行處理??蛇x的,所述處理模塊具體用于:如果根據(jù)所述系統(tǒng)資源的使用情況確定出存在空閑的專用芯片,則使用所述空閑的專用芯片對(duì)所述要處理的音頻數(shù)據(jù)進(jìn)行處理;或者,如果根據(jù)所述系統(tǒng)資源的使用情況確定出不存在空閑的專用芯片,則根據(jù)VM的使用情況和VMM的使用情況,確定由VM或者VMM對(duì)所述要處理的音頻數(shù)據(jù)進(jìn)行處理??蛇x的,處理模塊進(jìn)一步用于在VM的使用率高于第一設(shè)定值且VMM的使用率低于第二設(shè)定值時(shí),使用VMM對(duì)所述要處理的音頻數(shù)據(jù)進(jìn)行處理,或者,在VM的使用率低于第一設(shè)定值且VMM的使用率高于第二設(shè)定值時(shí),使用VM對(duì)所述要處理的音頻數(shù)據(jù)進(jìn)行處理。本實(shí)施例通過(guò)查詢系統(tǒng)資源的使用情況,選擇空閑的系統(tǒng)資源處理音頻數(shù)據(jù),可以在配置較少的專用芯片時(shí)選擇由其他系統(tǒng)資源對(duì)音頻數(shù)據(jù)進(jìn)行處理,也就是說(shuō),可以根據(jù)實(shí)際情況選擇系統(tǒng)資源,而并不限定由單一的系統(tǒng)資源對(duì)音頻數(shù)據(jù)進(jìn)行處理,因此可以充分利用系統(tǒng)中的所有資源,降低配置較多專用芯片所需的成本。圖7為本發(fā)明虛擬機(jī)環(huán)境下音頻處理設(shè)備另一實(shí)施例的結(jié)構(gòu)示意圖,該設(shè)備包括編解碼組件71、硬件驅(qū)動(dòng)模塊72、虛擬硬件模塊73、資源分配器74和專用芯片75;這些部件的組合可以完成上一實(shí)施例查詢模塊和處理模塊的功能??蛇x的,針對(duì)查詢:編解碼組件71用于接收音頻模塊發(fā)送的編解碼調(diào)用消息,從所述編解碼調(diào)用消息中獲取要處理的音頻數(shù)據(jù),并發(fā)送用于查詢專用芯片的使用情況的請(qǐng)求消息;硬件驅(qū)動(dòng)模塊72用于根據(jù)所述編解碼組件71發(fā)送的用于查詢專用芯片的使用情況的請(qǐng)求消息,發(fā)送編解碼開(kāi)始請(qǐng)求消息;虛擬硬件模塊73用于根據(jù)所述硬件驅(qū)動(dòng)模塊72發(fā)送的編解碼開(kāi)始請(qǐng)求消息,發(fā)送物理硬件資源申請(qǐng)消息;資源分配器74用于根據(jù)所述虛擬硬件模塊73發(fā)送的物理硬件資源申請(qǐng)消息,查詢專用芯片的使用情況,并在確定出存在空閑的專用芯片時(shí),向虛擬硬件模塊73發(fā)送申請(qǐng)成功消息;所述虛擬硬件模塊73還用于根據(jù)所述申請(qǐng)成功消息向硬件驅(qū)動(dòng)模塊72發(fā)送硬件準(zhǔn)備就緒消息;所述硬件驅(qū)動(dòng)模塊72還用于根據(jù)所述硬件準(zhǔn)備就緒消息向編解碼組件71發(fā)送表明硬件準(zhǔn)備就緒的初始化結(jié)果消息.此時(shí),針對(duì)處理:編解碼組件71用于接收到所述表明硬件準(zhǔn)備就緒的初始化結(jié)果消息后,向硬件驅(qū)動(dòng)模塊72發(fā)送編解碼開(kāi)始消息;硬件驅(qū)動(dòng)模塊72用于根據(jù)所述編解碼開(kāi)始消息將所述要處理的音頻數(shù)據(jù)拷貝到VM的內(nèi)核態(tài),并向虛擬硬件模塊73發(fā)送DMA指令;虛擬硬件模塊73用于根據(jù)所述DMA指令從VM的內(nèi)核態(tài)獲取所述要處理的音頻數(shù)據(jù),并將所述要處理的音頻數(shù)據(jù)傳輸給專用芯片75;專用芯片75用于對(duì)所述要處理的音頻數(shù)據(jù)進(jìn)行編解碼處理,并將處理后的音頻數(shù)據(jù)傳輸給虛擬硬件模塊73;虛擬硬件模塊73還用于獲取處理后的音頻數(shù)據(jù)后,向硬件驅(qū)動(dòng)模塊72發(fā)送DMA中斷指令;硬件驅(qū)動(dòng)模塊72還用于根據(jù)所述DMA中斷指令,從虛擬硬件模塊73獲取所述處理后的音頻數(shù)據(jù),并發(fā)送給編解碼組件71;編解碼組件71還用于將所述處理后的音頻數(shù)據(jù)發(fā)送給音頻模塊??蛇x的,針對(duì)查詢:編解碼組件71用于接收音頻模塊發(fā)送的編解碼調(diào)用消息,從所述編解碼調(diào)用消息中獲取要處理的音頻數(shù)據(jù),并發(fā)送用于查詢專用芯片的使用情況的請(qǐng)求消息;硬件驅(qū)動(dòng)模塊72用于根據(jù)所述編解碼組件71發(fā)送的用于查詢專用芯片的使用情況的請(qǐng)求消息,發(fā)送編解碼開(kāi)始請(qǐng)求消息;虛擬硬件模塊73用于根據(jù)所述硬件驅(qū)動(dòng)模塊72發(fā)送的編解碼開(kāi)始請(qǐng)求消息,發(fā)送物理硬件資源申請(qǐng)消息;資源分配器74用于根據(jù)所述虛擬硬件模塊73發(fā)送的物理硬件資源申請(qǐng)消息,查詢專用芯片的使用情況,并在確定出不存在空閑的專用芯片后,進(jìn)一步查詢VM和VMM的使用情況,并根據(jù)VM和VMM的使用情況確定出使用VM自身進(jìn)行編解碼處理時(shí),向虛擬硬件模塊73發(fā)送攜帶硬件不可得信息的申請(qǐng)失敗消息;所述虛擬硬件模塊73還用于根據(jù)所述申請(qǐng)失敗消息,向硬件驅(qū)動(dòng)模塊72發(fā)送攜帶硬件不可得信息的硬件準(zhǔn)備結(jié)果;所述硬件驅(qū)動(dòng)模塊72還用于向編解碼組件71發(fā)送攜帶硬件不可得信息的請(qǐng)求結(jié)果。此時(shí),針對(duì)處理:編解碼組件71用于接收到所述攜帶硬件不可得信息的請(qǐng)求結(jié)果后,使用自身的編解碼算法對(duì)所述要處理的音頻數(shù)據(jù)進(jìn)行編解碼處理,并將處理后的音頻數(shù)據(jù)發(fā)送給音頻模塊??蛇x的,針對(duì)查詢:編解碼組件71用于接收音頻模塊發(fā)送的編解碼調(diào)用消息,從所述編解碼調(diào)用消息中獲取要處理的音頻數(shù)據(jù),并發(fā)送用于查詢專用芯片的使用情況的請(qǐng)求消息;硬件驅(qū)動(dòng)模塊72用于根據(jù)所述編解碼組件71發(fā)送的用于查詢專用芯片的使用情況的請(qǐng)求消息,發(fā)送編解碼開(kāi)始請(qǐng)求消息;虛擬硬件模塊73用于根據(jù)所述硬件驅(qū)動(dòng)模塊72發(fā)送的編解碼開(kāi)始請(qǐng)求消息,發(fā)送物理硬件資源申請(qǐng)消息;資源分配器74用于根據(jù)所述虛擬硬件模塊73發(fā)送的物理硬件資源申請(qǐng)消息,查詢專用芯片的使用情況,并在確定出不存在空閑的專用芯片后,進(jìn)一步查詢VM和VMM的使用情況,并根據(jù)VM和VMM的使用情況確定出使用VMM進(jìn)行編解碼處理時(shí),向虛擬硬件模塊73發(fā)送攜帶使用硬件模擬方式的信息的申請(qǐng)失敗消息;所述虛擬硬件模塊73還用于根據(jù)所述申請(qǐng)失敗消息,向硬件驅(qū)動(dòng)模塊72發(fā)送攜帶使用硬件模擬方式的信息的硬件準(zhǔn)備結(jié)果;所述硬件驅(qū)動(dòng)模塊72還用于向編解碼組件71發(fā)送攜帶使用硬件模擬方式的信息的請(qǐng)求結(jié)果。此時(shí),針對(duì)處理:編解碼組件71用于接收到所述攜帶使用硬件模擬方式的信息的請(qǐng)求結(jié)果后,向硬件驅(qū)動(dòng)模塊72發(fā)送編解碼開(kāi)始消息;硬件驅(qū)動(dòng)模塊72用于根據(jù)所述編解碼開(kāi)始消息,將所述要處理的音頻數(shù)據(jù)拷貝到VM的內(nèi)核態(tài),并向虛擬硬件模塊73發(fā)送DMA指令;虛擬硬件模塊73用于根據(jù)所述DMA指令從VM的內(nèi)核態(tài)獲取所述要處理的音頻數(shù)據(jù),并采用虛擬硬件模塊自身的編解碼算法對(duì)所述要處理的音頻數(shù)據(jù)進(jìn)行處理,以及在對(duì)音頻數(shù)據(jù)進(jìn)行處理后,向硬件驅(qū)動(dòng)模塊72發(fā)送DMA中斷指令;硬件驅(qū)動(dòng)模塊72還用于根據(jù)所述DMA中斷指令,從虛擬硬件模塊73獲取所述處理后的音頻數(shù)據(jù),并發(fā)送給編解碼組件71;編解碼組件71還用于將所述處理后的音頻數(shù)據(jù)發(fā)送給音頻模塊。本發(fā)明實(shí)施例通過(guò)查詢系統(tǒng)資源的使用情況,可以采用專用芯片、VM或者VMM處理音頻數(shù)據(jù),可以配置較少的專用芯片,實(shí)現(xiàn)系統(tǒng)資源的充分利用并降低成本。本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
清丰县| 新河县| 尤溪县| 友谊县| 广德县| 云龙县| 金门县| 南汇区| 德钦县| 珠海市| 东乡族自治县| 合山市| 临猗县| 中山市| 达拉特旗| 九江县| 普格县| 登封市| 夏邑县| 溧阳市| 鹤峰县| 澜沧| 鱼台县| 额济纳旗| 祁东县| 西贡区| 简阳市| 葵青区| 和硕县| 和田市| 梧州市| 永兴县| 夏邑县| 新竹市| 新营市| 抚顺市| 辉南县| 金门县| 福清市| 阳原县| 侯马市|