本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,特別是涉及一種轉(zhuǎn)碼任務(wù)調(diào)度方法和裝置。
背景技術(shù):
docker是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的Linux(操作系統(tǒng))機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會有任何接口。
在傳統(tǒng)的視頻轉(zhuǎn)碼過程中,控制器將任務(wù)隊(duì)列里的任務(wù)分配到不同的物理機(jī)或者docker進(jìn)行處理。然而隨機(jī)分配到不同的物理機(jī)或docker處理,會導(dǎo)致部分資源擁擠,部分資源閑置,造成了處理器和內(nèi)存資源的浪費(fèi)。
技術(shù)實(shí)現(xiàn)要素:
基于此,有必要針對傳統(tǒng)的視頻轉(zhuǎn)碼因隨機(jī)分配資源造成處理器和內(nèi)存資源的浪費(fèi)的問題,提供一種轉(zhuǎn)碼任務(wù)調(diào)度方法和裝置,能提高處理器和內(nèi)存資源的利用率。
一種轉(zhuǎn)碼任務(wù)調(diào)度方法,包括:
獲取各個容器的轉(zhuǎn)碼任務(wù)承載量;
獲取各個容器當(dāng)前工作的轉(zhuǎn)碼任務(wù)量;
獲取待分配的轉(zhuǎn)碼任務(wù);
將所述待分配的轉(zhuǎn)碼任務(wù)加入所述各個容器,根據(jù)所述各個容器的轉(zhuǎn)碼任務(wù)承載量和當(dāng)前工作的轉(zhuǎn)碼任務(wù)量,獲取所述各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時;
根據(jù)所述各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時篩選出最佳容器;
將所述待分配的轉(zhuǎn)碼任務(wù)分配給所述最佳容器。
一種轉(zhuǎn)碼任務(wù)調(diào)度裝置,包括:
承載量獲取模塊,用于獲取各個容器的轉(zhuǎn)碼任務(wù)承載量;
任務(wù)量獲取模塊,用于獲取各個容器當(dāng)前工作的轉(zhuǎn)碼任務(wù)量;
待分配任務(wù)獲取模塊,用于獲取待分配的轉(zhuǎn)碼任務(wù);
轉(zhuǎn)碼參數(shù)獲取模塊,用于將所述待分配的轉(zhuǎn)碼任務(wù)加入所述各個容器,根據(jù)所述各個容器的轉(zhuǎn)碼任務(wù)承載量和當(dāng)前工作的轉(zhuǎn)碼任務(wù)量,獲取所述各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時;
篩選模塊,用于根據(jù)所述各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時篩選出最佳容器;
調(diào)度模塊,用于將所述待分配的轉(zhuǎn)碼任務(wù)分配給所述最佳容器。
上述轉(zhuǎn)碼任務(wù)調(diào)度方法和裝置,通過獲取到各個容器的轉(zhuǎn)碼任務(wù)承載量和當(dāng)前工作的轉(zhuǎn)碼任務(wù)量,并將待分配的轉(zhuǎn)碼任務(wù)加入到各個容器,獲取各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時,根據(jù)轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時篩選出最佳容器,將待分配的轉(zhuǎn)碼任務(wù)分配給最佳容器,從而達(dá)到了系統(tǒng)資源的最大利用率,提高了處理器和內(nèi)存資源的利用率,不至于造成一些容器承載量過大,一些容器沒有承載,造成資源浪費(fèi)。
附圖說明
圖1為一個實(shí)施例中轉(zhuǎn)碼任務(wù)調(diào)度方法的應(yīng)用環(huán)境示意圖;
圖2為一個實(shí)施例中任務(wù)調(diào)度服務(wù)器的內(nèi)部結(jié)構(gòu)示意圖;
圖3為一個實(shí)施例中轉(zhuǎn)碼任務(wù)調(diào)度方法的流程圖;
圖4為一個實(shí)施例中容器的任務(wù)量對應(yīng)的轉(zhuǎn)碼吞吐量的關(guān)系示意圖;
圖5為一個實(shí)施例中任務(wù)分配的示意圖;
圖6為另一個實(shí)施例中轉(zhuǎn)碼任務(wù)調(diào)度方法的流程圖;
圖7為一個實(shí)施例中轉(zhuǎn)碼任務(wù)調(diào)度裝置的結(jié)構(gòu)框圖;
圖8為另一個實(shí)施例中轉(zhuǎn)碼任務(wù)調(diào)度裝置的結(jié)構(gòu)框圖;
圖9為另一個實(shí)施例中轉(zhuǎn)碼任務(wù)調(diào)度裝置的結(jié)構(gòu)框圖;
圖10為另一個實(shí)施例中轉(zhuǎn)碼任務(wù)調(diào)度裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖1為一個實(shí)施例中轉(zhuǎn)碼任務(wù)調(diào)度方法的應(yīng)用環(huán)境示意圖。如圖1所示,該應(yīng)用環(huán)境包括任務(wù)調(diào)度服務(wù)器110和容器所在的轉(zhuǎn)碼服務(wù)器120。任務(wù)調(diào)度服務(wù)器110從任務(wù)隊(duì)列中獲取待分配的轉(zhuǎn)碼任務(wù),獲取各個轉(zhuǎn)碼服務(wù)器120上的容器的轉(zhuǎn)碼任務(wù)承載量及當(dāng)前工作的轉(zhuǎn)碼任務(wù)量,將待分配的轉(zhuǎn)碼任務(wù)加入到各個容器,計(jì)算各個容器的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時,根據(jù)轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時篩選最佳容器,將待分配任務(wù)調(diào)度給該最佳容器。
圖2為一個實(shí)施例中任務(wù)調(diào)度服務(wù)器(或云端等)的內(nèi)部結(jié)構(gòu)示意圖。如圖2所示,該任務(wù)調(diào)度服務(wù)器包括通過系統(tǒng)總線連接的處理器、非易失性存儲介質(zhì)、內(nèi)存儲器和網(wǎng)絡(luò)接口。其中,該任務(wù)調(diào)度服務(wù)器的非易失性存儲介質(zhì)存儲有操作系統(tǒng)、數(shù)據(jù)庫和轉(zhuǎn)碼任務(wù)調(diào)度裝置,數(shù)據(jù)庫中存儲有任務(wù)列表和不同參數(shù)條件下的容器的轉(zhuǎn)碼任務(wù)量與吞吐量的映射關(guān)系等,該轉(zhuǎn)碼任務(wù)調(diào)度裝置用于實(shí)現(xiàn)適用于任務(wù)調(diào)度服務(wù)器的一種轉(zhuǎn)碼任務(wù)調(diào)度方法。該任務(wù)調(diào)度服務(wù)器的處理器用于提供計(jì)算和控制能力,支撐整個任務(wù)調(diào)度服務(wù)器的運(yùn)行。該任務(wù)調(diào)度服務(wù)器的內(nèi)存儲器為非易失性存儲介質(zhì)中的轉(zhuǎn)碼任務(wù)調(diào)度裝置的運(yùn)行提供環(huán)境,該內(nèi)存儲器中可儲存有計(jì)算機(jī)可讀指令,該計(jì)算機(jī)可讀指令被所述處理器執(zhí)行時,可使得所述處理器執(zhí)行一種轉(zhuǎn)碼任務(wù)調(diào)度方法。該任務(wù)調(diào)度服務(wù)器的網(wǎng)絡(luò)接口用于據(jù)以與外部的終端通過網(wǎng)絡(luò)連接通信,比如接收終端發(fā)送的任務(wù)分配請求以及向終端返回分配的轉(zhuǎn)碼服務(wù)器地址等。任務(wù)調(diào)度服務(wù)器可以用獨(dú)立的服務(wù)器或者是多個服務(wù)器組成的服務(wù)器集群來實(shí)現(xiàn)。本領(lǐng)域技術(shù)人員可以理解,圖2中示出的結(jié)構(gòu),僅僅是與本申請方案相關(guān)的部分結(jié)構(gòu)的框圖,并不構(gòu)成對本申請方案所應(yīng)用于其上的服務(wù)器的限定,具體的服務(wù)器可以包括比圖中所示更多或更少的部件,或者組合某些部件,或者具有不同的部件布置。
圖3為一個實(shí)施例中轉(zhuǎn)碼任務(wù)調(diào)度方法的流程圖。如圖3所示,一種轉(zhuǎn)碼任務(wù)調(diào)度方法,運(yùn)行于圖1中的任務(wù)調(diào)度服務(wù)器上,包括步驟302至步驟312,其中:
步驟302,獲取各個容器的轉(zhuǎn)碼任務(wù)承載量。
本實(shí)施例中,容器類似于虛擬機(jī),不同的是由母機(jī)支配CPU(中央處理器)和內(nèi)存資源給容器。容器的轉(zhuǎn)碼任務(wù)承載量是指容器的最優(yōu)工作任務(wù)量。在不同參數(shù)條件下,容器的最優(yōu)工作任務(wù)量不同。此處獲取的是各個容器在當(dāng)前的參數(shù)條件下的轉(zhuǎn)碼任務(wù)承載量。
參數(shù)可包括清晰度、視頻編碼方式、分辨率、頻道、平臺等中一種或多種。清晰度是指影像上各細(xì)部影紋及其邊界的清晰程度。視頻編碼方式是指通過特定的壓縮技術(shù),將某個視頻格式的文件轉(zhuǎn)換成另一種視頻格式文件的方式,例如可為H264、HEVC(High Efficiency Video Coding)等。分辨率是指單位英寸中所包含的像素點(diǎn),如1080p、720p、480p等。頻道可為動漫、綜藝等頻道。平臺是指顯示端類型,如電視機(jī)或計(jì)算機(jī)等。在不同的參數(shù)條件下轉(zhuǎn)碼效率不同。平臺主要是使用端,譬如PC(Personal Computer,個人計(jì)算機(jī))類適用PC端,同樣也可以用在移動端的app(應(yīng)用程序),TV(Television,電視機(jī))類適用TV端。
在一個實(shí)施例中,該獲取各個容器的轉(zhuǎn)碼任務(wù)承載量,包括:獲取各個容器當(dāng)前的參數(shù)條件;根據(jù)該當(dāng)前的參數(shù)條件從預(yù)先建立的各個容器在不同參數(shù)條件下的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量的映射關(guān)系得到該各個容器在當(dāng)前的參數(shù)條件下的轉(zhuǎn)碼任務(wù)承載量。
本實(shí)施例中,首先預(yù)先建立各個容器在不同參數(shù)條件下的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量之間的映射關(guān)系。不同參數(shù)條件下的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量之間的映射關(guān)系可分布在不同的任務(wù)調(diào)度服務(wù)器上,便于提高獲取轉(zhuǎn)碼任務(wù)承載量的效率。
獲取到容器當(dāng)前的參數(shù)條件后,從預(yù)先建立的各個容器在不同參數(shù)條件下的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量的映射關(guān)系得到該各個容器在當(dāng)前的參數(shù)條件下的轉(zhuǎn)碼任務(wù)承載量。轉(zhuǎn)碼吞吐量是指單位時間內(nèi)的視頻時長。轉(zhuǎn)碼任務(wù)量是指容器工作能處理的任務(wù)數(shù)。
如圖4所示,容器在不同任務(wù)數(shù)對應(yīng)的轉(zhuǎn)碼吞吐量,橫坐標(biāo)為任務(wù)數(shù),單位為個,縱坐標(biāo)為視頻時長,單位為秒。
步驟304,獲取各個容器當(dāng)前工作的轉(zhuǎn)碼任務(wù)量。
本實(shí)施例中,各個容器當(dāng)前工作的轉(zhuǎn)碼任務(wù)量是指各個容器當(dāng)前正在工作的轉(zhuǎn)碼任務(wù)數(shù)。
步驟306,獲取待分配的轉(zhuǎn)碼任務(wù)。
本實(shí)施例中,任務(wù)調(diào)度服務(wù)器獲取到待分配的轉(zhuǎn)碼任務(wù)后,待分配的轉(zhuǎn)碼任務(wù)存儲在轉(zhuǎn)碼任務(wù)分配隊(duì)列中,再從轉(zhuǎn)碼任務(wù)分配隊(duì)列中按照順序依次取出待分配的轉(zhuǎn)碼任務(wù)進(jìn)行分配。
需要說明的是:調(diào)度模型為推拉模型,轉(zhuǎn)碼服務(wù)器拉任務(wù),任務(wù)調(diào)度服務(wù)器推送任務(wù)。轉(zhuǎn)碼服務(wù)器(即容器)請求任務(wù),同時計(jì)算該機(jī)器不同清晰度的轉(zhuǎn)碼能力,任務(wù)調(diào)度服務(wù)器將任務(wù)隊(duì)列的任務(wù),挑選合適的任務(wù)推給請求任務(wù)的轉(zhuǎn)碼服務(wù)器。
步驟308,將該待分配的轉(zhuǎn)碼任務(wù)加入該各個容器,根據(jù)該各個容器的轉(zhuǎn)碼任務(wù)承載量和當(dāng)前工作的轉(zhuǎn)碼任務(wù)量,獲取該各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時。
本實(shí)施例中,將待分配的轉(zhuǎn)碼任務(wù)加入各個容器是指將待分配的轉(zhuǎn)碼任務(wù)加入分別加入到各個容器,再分別計(jì)算各個容器的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時。
將待分配的轉(zhuǎn)碼任務(wù)加入容器后,將待分配的轉(zhuǎn)碼任務(wù)和容器已有的轉(zhuǎn)碼任務(wù)在容器上進(jìn)行訓(xùn)練,從容器的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量之間的映射關(guān)系得到該容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量。
通過實(shí)時監(jiān)控轉(zhuǎn)碼數(shù)據(jù),反饋訓(xùn)練轉(zhuǎn)碼模型。
可通過獲取待分配的轉(zhuǎn)碼任務(wù)的參數(shù),根據(jù)待分配的轉(zhuǎn)碼任務(wù)的參數(shù)與預(yù)先訓(xùn)練得到的各個容器在不同參數(shù)條件下的轉(zhuǎn)碼任務(wù)與轉(zhuǎn)碼耗時之間的映射關(guān)系,得到各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼耗時。
步驟310,根據(jù)該各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時篩選出最佳容器。
本實(shí)施例中,根據(jù)各個容器在加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量篩選出轉(zhuǎn)碼吞吐量最大的容器,可將該轉(zhuǎn)碼吞吐量最大的容器作為最佳容器?;蛘?,篩選轉(zhuǎn)碼吞吐量最大且轉(zhuǎn)碼耗時最短的容器作為最佳容器?;蛘邔⒏鱾€容器在加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量按照進(jìn)行排序,按照轉(zhuǎn)碼吞吐量從大到小篩選且轉(zhuǎn)碼耗時不大于時間閾值的容器,作為最佳容器。
步驟312,將該待分配的轉(zhuǎn)碼任務(wù)分配給該最佳容器。
本實(shí)施例中,將待分配的轉(zhuǎn)碼任務(wù)分配給最佳容器進(jìn)行轉(zhuǎn)碼。
圖5為一個實(shí)施例中任務(wù)分配的示意圖。如圖5所示,任務(wù)隊(duì)列中的任務(wù)被任務(wù)分配器逐一取出,然后根據(jù)各個容器的承載情況,將轉(zhuǎn)碼任務(wù)分配給對應(yīng)的容器。
步驟302、步驟304和步驟306沒有先后順序,此處僅為描述方便采用此順序描述,但不作為對其順序的限定。
上述轉(zhuǎn)碼任務(wù)調(diào)度方法,通過獲取到各個容器的轉(zhuǎn)碼任務(wù)承載量和當(dāng)前工作的轉(zhuǎn)碼任務(wù)量,并將待分配的轉(zhuǎn)碼任務(wù)加入到各個容器,獲取各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時,根據(jù)轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時篩選出最佳容器,將待分配的轉(zhuǎn)碼任務(wù)分配給最佳容器,從而達(dá)到了系統(tǒng)資源的最大利用率,提高了處理器和內(nèi)存資源的利用率,不至于造成一些容器承載量過大,一些容器沒有承載,造成資源浪費(fèi)。
圖6為另一個實(shí)施例中轉(zhuǎn)碼任務(wù)調(diào)度方法的流程圖。如圖6所示,在一個實(shí)施例中,上述轉(zhuǎn)碼任務(wù)調(diào)度方法包括步驟602至步驟616,其中:
步驟602,對各個容器在不同參數(shù)條件下進(jìn)行轉(zhuǎn)碼任務(wù)量的測試,得到各個容器工作初始化在不同參數(shù)下的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量的映射關(guān)系。
通過對各個容器在不同參數(shù)條件下進(jìn)行轉(zhuǎn)碼任務(wù)量的多次測試,得到各個容器工作初始化在不同參數(shù)下的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量的映射關(guān)系。如分辨率為640P時,第一容器在3個任務(wù)量時的吞吐量最大,第二容器在4個任務(wù)量時的吞吐量最大,第三容器在5個任務(wù)量時的吞吐量最大。
步驟604,通過線上數(shù)據(jù)實(shí)時訓(xùn)練該各個容器的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量的映射關(guān)系,得到修正后的該各個容器在不同參數(shù)條件下的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量的映射關(guān)系。
本實(shí)施例中,通過線上數(shù)據(jù)實(shí)時訓(xùn)練轉(zhuǎn)碼模型,得到各個容器的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量的映射關(guān)系,如H264/H265升級、參數(shù)調(diào)整等均會造成轉(zhuǎn)碼模型的變化,利用線上數(shù)據(jù)實(shí)時訓(xùn)練轉(zhuǎn)碼模型。
步驟606,獲取各個容器的轉(zhuǎn)碼任務(wù)承載量。
本實(shí)施例中,容器類似于虛擬機(jī),不同的是由母機(jī)支配CPU和內(nèi)存資源給容器。容器的轉(zhuǎn)碼任務(wù)承載量是指容器的最優(yōu)工作任務(wù)量。在不同參數(shù)條件下,容器的最優(yōu)工作任務(wù)量不同。此處獲取的是各個容器在當(dāng)前的參數(shù)條件下的轉(zhuǎn)碼任務(wù)承載量。
參數(shù)可包括清晰度、視頻編碼方式、分辨率、頻道、平臺等中一種或多種。
在一個實(shí)施例中,該獲取各個容器的轉(zhuǎn)碼任務(wù)承載量,包括:獲取各個容器當(dāng)前的參數(shù)條件;根據(jù)該當(dāng)前的參數(shù)條件從預(yù)先建立的各個容器在不同參數(shù)條件下的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量的映射關(guān)系得到該各個容器在當(dāng)前的參數(shù)條件下的轉(zhuǎn)碼任務(wù)承載量。
本實(shí)施例中,首先預(yù)先建立各個容器在不同參數(shù)條件下的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量之間的映射關(guān)系。不同參數(shù)條件下的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量之間的映射關(guān)系可分布在不同的任務(wù)調(diào)度服務(wù)器上,便于提高獲取轉(zhuǎn)碼任務(wù)承載量的效率。
獲取到容器當(dāng)前的參數(shù)條件后,從預(yù)先建立的各個容器在不同參數(shù)條件下的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量的映射關(guān)系,得到該各個容器在當(dāng)前的參數(shù)條件下的轉(zhuǎn)碼任務(wù)承載量。轉(zhuǎn)碼吞吐量是指單位時間內(nèi)的視頻時長。轉(zhuǎn)碼任務(wù)量是指容器工作能處理的任務(wù)數(shù)。
步驟608,獲取各個容器當(dāng)前工作的轉(zhuǎn)碼任務(wù)量。
本實(shí)施例中,各個容器當(dāng)前工作的轉(zhuǎn)碼任務(wù)量是指各個容器當(dāng)前正在工作的轉(zhuǎn)碼任務(wù)數(shù)。
步驟610,獲取待分配的轉(zhuǎn)碼任務(wù)。
本實(shí)施例中,任務(wù)調(diào)度服務(wù)器獲取到待分配的轉(zhuǎn)碼任務(wù)后,待分配的轉(zhuǎn)碼任務(wù)存儲在轉(zhuǎn)碼任務(wù)分配隊(duì)列中,再從轉(zhuǎn)碼任務(wù)分配隊(duì)列中按照順序依次取出待分配的轉(zhuǎn)碼任務(wù)進(jìn)行分配。
步驟612,將該待分配的轉(zhuǎn)碼任務(wù)加入該各個容器,根據(jù)該各個容器的轉(zhuǎn)碼任務(wù)承載量和當(dāng)前工作的轉(zhuǎn)碼任務(wù)量,獲取該各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時。
本實(shí)施例中,將待分配的轉(zhuǎn)碼任務(wù)加入各個容器是指將待分配的轉(zhuǎn)碼任務(wù)加入分別加入到各個容器,再分別計(jì)算各個容器的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時。
將待分配的轉(zhuǎn)碼任務(wù)加入容器后,將待分配的轉(zhuǎn)碼任務(wù)和容器已有的轉(zhuǎn)碼任務(wù)在容器上進(jìn)行訓(xùn)練,從容器的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量之間的映射關(guān)系得到該容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量。
可通過獲取待分配的轉(zhuǎn)碼任務(wù)的參數(shù),根據(jù)待分配的轉(zhuǎn)碼任務(wù)的參數(shù)與預(yù)先訓(xùn)練得到的各個容器在不同參數(shù)條件下的轉(zhuǎn)碼任務(wù)與轉(zhuǎn)碼耗時之間的映射關(guān)系得到各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼耗時。
步驟614,根據(jù)該各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時篩選出最佳容器。
本實(shí)施例中,根據(jù)各個容器在加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量篩選出轉(zhuǎn)碼吞吐量最大的容器,可將該轉(zhuǎn)碼吞吐量最大的容器作為最佳容器。或者,篩選轉(zhuǎn)碼吞吐量最大且轉(zhuǎn)碼耗時最短的容器作為最佳容器?;蛘邔⒏鱾€容器在加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量按照進(jìn)行排序,按照轉(zhuǎn)碼吞吐量從大到小篩選且轉(zhuǎn)碼耗時不大于時間閾值的容器,作為最佳容器。
步驟616,將該待分配的轉(zhuǎn)碼任務(wù)分配給該最佳容器。
本實(shí)施例中,將待分配的轉(zhuǎn)碼任務(wù)分配給最佳容器進(jìn)行轉(zhuǎn)碼。
上述轉(zhuǎn)碼任務(wù)調(diào)度方法,通過獲取到各個容器的轉(zhuǎn)碼任務(wù)承載量和當(dāng)前工作的轉(zhuǎn)碼任務(wù)量,并將待分配的轉(zhuǎn)碼任務(wù)加入到各個容器,獲取各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時,根據(jù)轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時篩選出最佳容器,將待分配的轉(zhuǎn)碼任務(wù)分配給最佳容器,從而達(dá)到了系統(tǒng)資源的最大利用率,提高了處理器和內(nèi)存資源的利用率,不至于造成一些容器承載量過大,一些容器沒有承載,造成資源浪費(fèi)。
在一個實(shí)施例中,上述轉(zhuǎn)碼任務(wù)調(diào)度方法還包括:獲取該待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級;根據(jù)該各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時,以及該待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級篩選出最佳容器。
本實(shí)施例中,待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級是指待分配的轉(zhuǎn)碼任務(wù)需要優(yōu)先滿足的條件,例如待分配的轉(zhuǎn)碼任務(wù)的分辨率是1080p,則需要轉(zhuǎn)碼吞吐量大的容器處理,則篩選出加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量最大的容器作為最佳容器,再將待分配的轉(zhuǎn)碼任務(wù)分配篩選出的最佳容器。再如,待分配的轉(zhuǎn)碼任務(wù)需要轉(zhuǎn)碼時間最短,則篩選出加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼耗時最短的容器作為最佳容器,再將待分配的轉(zhuǎn)碼任務(wù)分配篩選出的最佳容器。通過各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量、轉(zhuǎn)碼耗時、以及待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級,進(jìn)一步篩選出合適的容器,提高資源的利用率。
在一個實(shí)施例中,上述轉(zhuǎn)碼任務(wù)調(diào)度方法還包括:獲取該各個容器剩余的資源數(shù)據(jù)和該待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級;根據(jù)該各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時、該各個容器剩余的資源數(shù)據(jù)和該待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級篩選出最佳容器。
本實(shí)施例中,容器剩余的資源數(shù)據(jù)可包括剩余CPU和剩余內(nèi)存等。待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級是指待分配的轉(zhuǎn)碼任務(wù)需要優(yōu)先滿足的條件,例如待分配的轉(zhuǎn)碼任務(wù)的分辨率是1080p,則需要轉(zhuǎn)碼吞吐量大的容器處理,再結(jié)合容器剩余的資源數(shù)據(jù),則篩選出加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量大且容器剩余的資源數(shù)據(jù)充足的容器作為最佳容器,再將待分配的轉(zhuǎn)碼任務(wù)分配篩選出的最佳容器。再如,待分配的轉(zhuǎn)碼任務(wù)需要轉(zhuǎn)碼時間最短,則篩選出加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼耗時短且容器剩余的資源數(shù)據(jù)充足的容器作為最佳容器,再將待分配的轉(zhuǎn)碼任務(wù)分配篩選出的最佳容器。結(jié)合容器的轉(zhuǎn)碼吞吐量、轉(zhuǎn)碼耗時、剩余的資源數(shù)據(jù)及待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級更加合理的分配容器,提高資源的利用率。
在一個實(shí)施例中,容器所在的機(jī)器在不同清晰度轉(zhuǎn)碼工具(OneTrans和PoolTrans)的轉(zhuǎn)碼吞吐量以及最佳進(jìn)程數(shù)不同。例如如表1所示,包含了B7機(jī)型的機(jī)器進(jìn)行不同清晰度的轉(zhuǎn)碼任務(wù)時對應(yīng)的轉(zhuǎn)碼吞吐量以及推薦最佳任務(wù)量。將這些數(shù)據(jù)作為線上轉(zhuǎn)碼調(diào)度模型智能化訓(xùn)練的初始化數(shù)據(jù),通過不停地學(xué)習(xí)和訓(xùn)練,計(jì)算出機(jī)器B上存在n個轉(zhuǎn)碼任務(wù),加入第(n+1)個任務(wù),F(xiàn)HD、SHD或HD480的轉(zhuǎn)碼任務(wù)是最佳被調(diào)度任務(wù)。
加入第(n+1)個任務(wù),計(jì)算最大轉(zhuǎn)碼吞吐量的函數(shù)為F1(x)=Max(f1(xi)*e1(yj+yj+1+…))。其中,F(xiàn)1(x)表示最大轉(zhuǎn)碼吞吐量,f1(xi)是指容器的轉(zhuǎn)碼吞吐量,xi是指任務(wù)隊(duì)列里的第i個不同清晰度的轉(zhuǎn)碼任務(wù),yj是指機(jī)器上已運(yùn)行的第j個清晰度轉(zhuǎn)碼任務(wù),e1(y)為系數(shù),Max()為取最大值。e1(y)通過訓(xùn)練得到。
其中,OneTrans和PoolTrans是兩種不同的轉(zhuǎn)碼方式,對應(yīng)不同的轉(zhuǎn)碼能力(采用轉(zhuǎn)碼吞吐量表示)。PoolTrans能單進(jìn)程或者兩個進(jìn)程將CPU利用完,是一個轉(zhuǎn)碼能力非常強(qiáng)的轉(zhuǎn)碼工具;OneTrans相比,CPU利用率較弱,需要多進(jìn)程并發(fā)才能得到合理利用CPU的目標(biāo),可計(jì)算最佳進(jìn)程數(shù)OneTrans達(dá)到最大轉(zhuǎn)碼吞吐量。
表1
其中,B7是一種服務(wù)器型號。FHD全寫Full High Definition,為全高清。SHD是Super High Definition,為超高清。分辨率可達(dá)到1920*1080。HD480是指High Definition的橫向像素點(diǎn)為640,縱向像素點(diǎn)為480。HD360是指High Definition的橫向像素點(diǎn)為360,縱向像素點(diǎn)為640。MD是指Medium Definition,中等清晰度。SD是指Standard Definition,標(biāo)準(zhǔn)清晰度。
機(jī)器不同清晰度轉(zhuǎn)碼工具(OneTrans和PoolTrans)的轉(zhuǎn)碼耗時不同。在機(jī)器上存在n個轉(zhuǎn)碼任務(wù),加入第(n+1)個任務(wù),計(jì)算轉(zhuǎn)碼任務(wù)的轉(zhuǎn)碼耗時。可以根據(jù)轉(zhuǎn)碼任務(wù)的需求優(yōu)先級,通過控制機(jī)器任務(wù)數(shù),實(shí)現(xiàn)轉(zhuǎn)碼任務(wù)的彈性轉(zhuǎn)碼。
加入第(n+1)個任務(wù),計(jì)算轉(zhuǎn)碼耗時的函數(shù)為F2(x)=f2(xi)*e2(yj+yj+1+…))。其中,F(xiàn)2(x)表示轉(zhuǎn)碼耗時,f2(xi)是指容器的轉(zhuǎn)碼耗時,xi是指任務(wù)隊(duì)列里的第i個不同清晰度的轉(zhuǎn)碼任務(wù),yj是指機(jī)器上已運(yùn)行的第j個清晰度轉(zhuǎn)碼任務(wù),e2(y)為系數(shù)。e2(y)通過訓(xùn)練得到。
圖7為一個實(shí)施例中轉(zhuǎn)碼任務(wù)調(diào)度裝置的結(jié)構(gòu)框圖。如圖7所示,一種轉(zhuǎn)碼任務(wù)調(diào)度裝置,運(yùn)行于圖1中的任務(wù)調(diào)度服務(wù)器上,包括承載量獲取模塊702、任務(wù)量獲取模塊704、待分配任務(wù)獲取模塊706、轉(zhuǎn)碼參數(shù)獲取模塊708、篩選模塊710和調(diào)度模塊712。其中:
承載量獲取模塊702用于獲取各個容器的轉(zhuǎn)碼任務(wù)承載量。
本實(shí)施例中,容器的轉(zhuǎn)碼任務(wù)承載量是指容器的最優(yōu)工作任務(wù)量。在不同參數(shù)條件下,容器的最優(yōu)工作任務(wù)量不同。此處獲取的是各個容器在當(dāng)前的參數(shù)條件下的轉(zhuǎn)碼任務(wù)承載量。
參數(shù)可包括清晰度、視頻編碼方式、分辨率、頻道、平臺等中一種或多種。清晰度是指影像上各細(xì)部影紋及其邊界的清晰程度。
任務(wù)量獲取模塊704用于獲取各個容器當(dāng)前工作的轉(zhuǎn)碼任務(wù)量。
本實(shí)施例中,各個容器當(dāng)前工作的轉(zhuǎn)碼任務(wù)量是指各個容器當(dāng)前正在工作的轉(zhuǎn)碼任務(wù)數(shù)。
待分配任務(wù)獲取模塊706用于獲取待分配的轉(zhuǎn)碼任務(wù)。
本實(shí)施例中,任務(wù)調(diào)度服務(wù)器獲取到待分配的轉(zhuǎn)碼任務(wù)后,待分配的轉(zhuǎn)碼任務(wù)存儲在轉(zhuǎn)碼任務(wù)分配隊(duì)列中,再從轉(zhuǎn)碼任務(wù)分配隊(duì)列中按照順序依次取出待分配的轉(zhuǎn)碼任務(wù)進(jìn)行分配。
轉(zhuǎn)碼參數(shù)獲取模塊708用于將該待分配的轉(zhuǎn)碼任務(wù)加入該各個容器,根據(jù)該各個容器的轉(zhuǎn)碼任務(wù)承載量和當(dāng)前工作的轉(zhuǎn)碼任務(wù)量,獲取該各個容器的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時。
本實(shí)施例中,將待分配的轉(zhuǎn)碼任務(wù)加入各個容器是指將待分配的轉(zhuǎn)碼任務(wù)加入分別加入到各個容器,再分別計(jì)算各個容器的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時。
將待分配的轉(zhuǎn)碼任務(wù)加入容器后,將待分配的轉(zhuǎn)碼任務(wù)和容器已有的轉(zhuǎn)碼任務(wù)在容器上進(jìn)行訓(xùn)練,從容器的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量之間的映射關(guān)系得到該容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量。
可通過獲取待分配的轉(zhuǎn)碼任務(wù)的參數(shù),根據(jù)待分配的轉(zhuǎn)碼任務(wù)的參數(shù)與預(yù)先訓(xùn)練得到的各個容器在不同參數(shù)條件下的轉(zhuǎn)碼任務(wù)與轉(zhuǎn)碼耗時之間的映射關(guān)系得到各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼耗時。
篩選模塊710用于根據(jù)該各個容器的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時篩選出最佳容器。
本實(shí)施例中,根據(jù)各個容器在加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量篩選出轉(zhuǎn)碼吞吐量最大的容器,可將該轉(zhuǎn)碼吞吐量最大的容器作為最佳容器?;蛘?,篩選轉(zhuǎn)碼吞吐量最大且轉(zhuǎn)碼耗時最短的容器作為最佳容器?;蛘邔⒏鱾€容器在加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量按照進(jìn)行排序,按照轉(zhuǎn)碼吞吐量從大到小篩選且轉(zhuǎn)碼耗時不大于時間閾值的容器,作為最佳容器。
調(diào)度模塊712用于將該待分配的轉(zhuǎn)碼任務(wù)分配給該最佳容器。
上述轉(zhuǎn)碼任務(wù)調(diào)度裝置,通過獲取到各個容器的轉(zhuǎn)碼任務(wù)承載量和當(dāng)前工作的轉(zhuǎn)碼任務(wù)量,并將待分配的轉(zhuǎn)碼任務(wù)加入到各個容器,獲取各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時,根據(jù)轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時篩選出最佳容器,將待分配的轉(zhuǎn)碼任務(wù)分配給最佳容器,從而達(dá)到了系統(tǒng)資源的最大利用率,提高了處理器和內(nèi)存資源的利用率,不至于造成一些容器承載量過大,一些容器沒有承載,造成資源浪費(fèi)。
在一個實(shí)施例中,該承載量獲取模塊702還用于獲取各個容器當(dāng)前的參數(shù)條件,以及根據(jù)該當(dāng)前的參數(shù)條件從預(yù)先建立的各個容器在不同參數(shù)條件下的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量的映射關(guān)系得到該各個容器在當(dāng)前的參數(shù)條件下的轉(zhuǎn)碼任務(wù)承載量。
圖8為另一個實(shí)施例中轉(zhuǎn)碼任務(wù)調(diào)度裝置的結(jié)構(gòu)框圖。如圖8所示,一種轉(zhuǎn)碼任務(wù)調(diào)度裝置,運(yùn)行于圖1中的任務(wù)調(diào)度服務(wù)器上,除了包括承載量獲取模塊702、任務(wù)量獲取模塊704、待分配任務(wù)獲取模塊706、轉(zhuǎn)碼參數(shù)獲取模塊708、篩選模塊710和調(diào)度模塊712,還包括測試模塊714和訓(xùn)練模塊716。其中:
測試模塊714用于在該獲取各個容器的轉(zhuǎn)碼任務(wù)承載量之前,對各個容器在不同參數(shù)條件下進(jìn)行轉(zhuǎn)碼任務(wù)量的測試,得到各個容器工作初始化在不同參數(shù)下的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量的映射關(guān)系。
通過對各個容器在不同參數(shù)條件下進(jìn)行轉(zhuǎn)碼任務(wù)量的多次測試,得到各個容器工作初始化在不同參數(shù)下的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量的映射關(guān)系。
訓(xùn)練模塊716用于通過線上數(shù)據(jù)實(shí)時訓(xùn)練該各個容器的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量的映射關(guān)系,得到修正后的該各個容器在不同參數(shù)條件下的轉(zhuǎn)碼任務(wù)量與轉(zhuǎn)碼吞吐量的映射關(guān)系。
圖9為另一個實(shí)施例中轉(zhuǎn)碼任務(wù)調(diào)度裝置的結(jié)構(gòu)框圖。如圖9所示,一種轉(zhuǎn)碼任務(wù)調(diào)度裝置,運(yùn)行于圖1中的任務(wù)調(diào)度服務(wù)器上,除了包括承載量獲取模塊702、任務(wù)量獲取模塊704、待分配任務(wù)獲取模塊706、轉(zhuǎn)碼參數(shù)獲取模塊708、篩選模塊710和調(diào)度模塊712,還包括優(yōu)先級獲取模塊718。
優(yōu)先級獲取模塊718用于獲取該待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級。
該篩選模塊710還用于根據(jù)該各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時,以及該待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級篩選出最佳容器。
本實(shí)施例中,待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級是指待分配的轉(zhuǎn)碼任務(wù)需要優(yōu)先滿足的條件,例如待分配的轉(zhuǎn)碼任務(wù)的分辨率是1080p,則需要轉(zhuǎn)碼吞吐量大的容器處理,則篩選出加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量最大的容器作為最佳容器,再將待分配的轉(zhuǎn)碼任務(wù)分配篩選出的最佳容器。再如,待分配的轉(zhuǎn)碼任務(wù)需要轉(zhuǎn)碼時間最短,則篩選出加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼耗時最短的容器作為最佳容器,再將待分配的轉(zhuǎn)碼任務(wù)分配篩選出的最佳容器。通過各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量、轉(zhuǎn)碼耗時、以及待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級,進(jìn)一步篩選出合適的容器,提高資源的利用率。
圖10為另一個實(shí)施例中轉(zhuǎn)碼任務(wù)調(diào)度裝置的結(jié)構(gòu)框圖。如圖10所示,一種轉(zhuǎn)碼任務(wù)調(diào)度裝置,運(yùn)行于圖1中的任務(wù)調(diào)度服務(wù)器上,除了包括承載量獲取模塊702、任務(wù)量獲取模塊704、待分配任務(wù)獲取模塊706、轉(zhuǎn)碼參數(shù)獲取模塊708、篩選模塊710和調(diào)度模塊712,還包括數(shù)據(jù)獲取模塊720。
數(shù)據(jù)獲取模塊720用于獲取該各個容器剩余的資源數(shù)據(jù)和該待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級。
該篩選模塊710還用于根據(jù)該各個容器中加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量和轉(zhuǎn)碼耗時、該各個容器剩余的資源數(shù)據(jù)和該待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級篩選出最佳容器。
本實(shí)施例中,容器剩余的資源數(shù)據(jù)可包括剩余CPU和剩余內(nèi)存等。待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級是指待分配的轉(zhuǎn)碼任務(wù)需要優(yōu)先滿足的條件,例如待分配的轉(zhuǎn)碼任務(wù)的分辨率是1080p,則需要轉(zhuǎn)碼吞吐量大的容器處理,再結(jié)合容器剩余的資源數(shù)據(jù),則篩選出加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼吞吐量大且容器剩余的資源數(shù)據(jù)充足的容器作為最佳容器,再將待分配的轉(zhuǎn)碼任務(wù)分配篩選出的最佳容器。再如,待分配的轉(zhuǎn)碼任務(wù)需要轉(zhuǎn)碼時間最短,則篩選出加入待分配的轉(zhuǎn)碼任務(wù)后的轉(zhuǎn)碼耗時短且容器剩余的資源數(shù)據(jù)充足的容器作為最佳容器,再將待分配的轉(zhuǎn)碼任務(wù)分配篩選出的最佳容器。結(jié)合容器的轉(zhuǎn)碼吞吐量、轉(zhuǎn)碼耗時、剩余的資源數(shù)據(jù)及待分配的轉(zhuǎn)碼任務(wù)的需求優(yōu)先級更加合理的分配容器,提高資源的利用率。
在其他實(shí)施例中,一種轉(zhuǎn)碼任務(wù)調(diào)度裝置,運(yùn)行于圖1中的任務(wù)調(diào)度服務(wù)器上,除了包括承載量獲取模塊702、任務(wù)量獲取模塊704、待分配任務(wù)獲取模塊706、轉(zhuǎn)碼參數(shù)獲取模塊708、篩選模塊710、調(diào)度模塊712、測試模塊714和訓(xùn)練模塊716、優(yōu)先級獲取模塊718、數(shù)據(jù)獲取模塊720中各種可能的組合。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一非易失性計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)等。
以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。