實(shí)時(shí)碼率調(diào)節(jié)方法、裝置及服務(wù)端設(shè)備的制造方法
【專利摘要】本發(fā)明公開(kāi)了一種實(shí)時(shí)碼率調(diào)節(jié)方法、裝置及服務(wù)端設(shè)備,該方法包括:根據(jù)碼率調(diào)節(jié)指令,進(jìn)行多線程的幀同步;完成幀同步后,獲取碼率控制邏輯中決定碼率大小的參數(shù);計(jì)算每一參數(shù)在當(dāng)前碼率下的數(shù)值作為當(dāng)前值;根據(jù)當(dāng)前碼率與對(duì)應(yīng)碼率調(diào)節(jié)指令的目標(biāo)碼率間的比例關(guān)系、及每一參數(shù)的當(dāng)前值,計(jì)算對(duì)應(yīng)參數(shù)在目標(biāo)碼率下的目標(biāo)值;修改每一參數(shù)的數(shù)值等于對(duì)應(yīng)的目標(biāo)值;根據(jù)每一參數(shù)的修改后的數(shù)值,進(jìn)行幀同步后的編碼處理。本發(fā)明碼率調(diào)節(jié)是在編碼過(guò)程中根據(jù)碼率調(diào)節(jié)指令實(shí)時(shí)進(jìn)行,進(jìn)而實(shí)現(xiàn)了碼率調(diào)節(jié)的平滑過(guò)渡。
【專利說(shuō)明】
實(shí)時(shí)碼率調(diào)節(jié)方法、裝置及服務(wù)端設(shè)備
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及音、視頻編碼技術(shù)領(lǐng)域,更具體地,涉及一種實(shí)時(shí)碼率調(diào)節(jié)方法、一種能夠?qū)崿F(xiàn)該種實(shí)時(shí)碼率調(diào)節(jié)方法的實(shí)時(shí)碼率調(diào)節(jié)裝置、及一種能夠?qū)崿F(xiàn)該種實(shí)時(shí)碼率調(diào)節(jié)方法的服務(wù)端設(shè)備。
【背景技術(shù)】
[0002]碼率也被稱之為比特率,指經(jīng)過(guò)編碼(壓縮)后的音、視頻數(shù)據(jù)每秒需要用多少個(gè)比特來(lái)表示,即將每秒顯示的圖像進(jìn)行壓縮后的數(shù)據(jù)量,一般采用的單位是kbps或者mbps。
[0003]目前有恒定碼率編碼(Constant Bi tRate,CBR)和可變碼率編碼(VariableBitRate,VBR)兩種編碼方式,前者是指碼率設(shè)定后,文件每秒鐘的信息流量即基本固定不變;后者是指文件每秒鐘的信息流量是可以變化的,系統(tǒng)可以根據(jù)圖像數(shù)據(jù)量改變的大小決定用多大的碼率編碼,以有效利用空間。
[0004]對(duì)于CBR和VBR編碼方式,均存在根據(jù)接收到的碼率調(diào)節(jié)指令進(jìn)行碼率調(diào)節(jié)的問(wèn)題,目前在進(jìn)行碼率調(diào)節(jié)時(shí)基本采用停止編碼、設(shè)置新的碼率、以新的碼率重新開(kāi)始編碼的方式。該種調(diào)節(jié)方式對(duì)于視頻的呈現(xiàn)會(huì)出現(xiàn)卡頓現(xiàn)象,無(wú)法實(shí)現(xiàn)平滑過(guò)渡。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例的一個(gè)目的是提供一種碼率調(diào)節(jié)的新的技術(shù)方案,以實(shí)現(xiàn)不同碼率間的平滑過(guò)渡。
[0006]根據(jù)本發(fā)明的第一方面,提供了一種實(shí)時(shí)碼率調(diào)節(jié)方法,其包括:
[0007]根據(jù)碼率調(diào)節(jié)指令,進(jìn)行多線程的幀同步;
[0008]完成所述幀同步后,獲取碼率控制邏輯中決定碼率大小的參數(shù);
[0009]計(jì)算每一所述參數(shù)在當(dāng)前碼率下的數(shù)值作為當(dāng)前值;
[0010]根據(jù)所述當(dāng)前碼率與對(duì)應(yīng)所述碼率調(diào)節(jié)指令的目標(biāo)碼率間的比例關(guān)系、及每一所述參數(shù)的當(dāng)前值,計(jì)算對(duì)應(yīng)參數(shù)在目標(biāo)碼率下的目標(biāo)值;
[0011]修改每一所述參數(shù)的數(shù)值等于對(duì)應(yīng)的目標(biāo)值;
[0012]根據(jù)每一所述參數(shù)的修改后的數(shù)值,進(jìn)行所述幀同步后的編碼處理。
[0013]優(yōu)選的是,所述根據(jù)所述當(dāng)前碼率與對(duì)應(yīng)所述碼率調(diào)節(jié)指令的目標(biāo)碼率之間的碼率比例關(guān)系、及每一所述參數(shù)的當(dāng)前值,計(jì)算對(duì)應(yīng)參數(shù)在目標(biāo)碼率下的目標(biāo)值進(jìn)一步為:
[0014]確定每一所述參數(shù)的當(dāng)前值與對(duì)應(yīng)參數(shù)的目標(biāo)值間的比值等于所述目標(biāo)碼率與所述當(dāng)前碼率間的比值。
[0015]優(yōu)選的是,所述參數(shù)包括關(guān)注時(shí)間內(nèi)的內(nèi)容復(fù)雜度的平均值、及關(guān)注時(shí)間內(nèi)處理的比特?cái)?shù)。
[0016]優(yōu)選的是,所述碼率控制邏輯為基于H264的碼率控制邏輯。
[0017]優(yōu)選的是,所述進(jìn)行多線程的幀同步具體為:
[0018]控制每一線程完成當(dāng)前處理幀的當(dāng)前邏輯操作。
[0019]根據(jù)本發(fā)明的第二方面,提供了一種實(shí)時(shí)碼率調(diào)節(jié)裝置,其包括:
[0020]幀同步模塊,用于根據(jù)碼率調(diào)節(jié)指令,進(jìn)行多線程的幀同步;
[0021]當(dāng)前值計(jì)算模塊,用于在完成所述幀同步后,獲取碼率控制邏輯中決定碼率大小的參數(shù),并計(jì)算每一所述參數(shù)在當(dāng)前碼率下的數(shù)值作為當(dāng)前值;
[0022]目標(biāo)值計(jì)算模塊,用于根據(jù)所述當(dāng)前碼率與對(duì)應(yīng)所述碼率調(diào)節(jié)指令的目標(biāo)碼率間的比例關(guān)系,及每一所述參數(shù)的當(dāng)前值,計(jì)算對(duì)應(yīng)參數(shù)在目標(biāo)碼率下的目標(biāo)值;
[0023]修改模塊,用于修改每一所述參數(shù)的數(shù)值等于對(duì)應(yīng)的目標(biāo)值;以及,
[0024]編碼模塊,用于根據(jù)每一所述參數(shù)的修改后的數(shù)值,進(jìn)行所述幀同步后的編碼處理。
[0025]優(yōu)選的是,所述目標(biāo)值計(jì)算模塊具體用于確定每一所述參數(shù)的當(dāng)前值與對(duì)應(yīng)參數(shù)的目標(biāo)值間的比值等于所述目標(biāo)碼率與所述當(dāng)前碼率間的比值。
[0026]優(yōu)選的是,所述幀同步模塊具體用于控制每一線程完成當(dāng)前處理幀的當(dāng)前邏輯操作。
[0027]根據(jù)本發(fā)明的第三方面,提供了一種服務(wù)端設(shè)備,其包括根據(jù)本發(fā)明第二方面所述的裝置。
[0028]根據(jù)本發(fā)明的第四方面,提供了一種服務(wù)端設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器用于存儲(chǔ)指令,所述指令用于控制所述處理器進(jìn)行操作以執(zhí)行根據(jù)本發(fā)明第一方面所述的方法。
[0029]本發(fā)明的發(fā)明人發(fā)現(xiàn),在現(xiàn)有技術(shù)中,存在進(jìn)行碼率調(diào)節(jié)需要先停止當(dāng)前碼率下的編碼、再以調(diào)節(jié)后的碼率重新編碼,進(jìn)而導(dǎo)致視頻呈現(xiàn)出現(xiàn)卡頓的問(wèn)題。而在本發(fā)明中,碼率調(diào)節(jié)是在編碼過(guò)程中根據(jù)碼率調(diào)節(jié)指令實(shí)時(shí)進(jìn)行,進(jìn)而實(shí)現(xiàn)了碼率調(diào)節(jié)的平滑過(guò)渡。
[0030]通過(guò)以下參照附圖對(duì)本發(fā)明的示例性實(shí)施例的詳細(xì)描述,本發(fā)明的其它特征及其優(yōu)點(diǎn)將會(huì)變得清楚。
【附圖說(shuō)明】
[0031]被結(jié)合在說(shuō)明書中并構(gòu)成說(shuō)明書的一部分的附圖示出了本發(fā)明的實(shí)施例,并且連同其說(shuō)明一起用于解釋本發(fā)明的原理。
[0032]圖1是根據(jù)本發(fā)明實(shí)時(shí)碼率調(diào)節(jié)方法的一種實(shí)施方式的流程圖;
[0033]圖2是根據(jù)本發(fā)明實(shí)時(shí)碼率調(diào)節(jié)裝置的一種實(shí)施結(jié)構(gòu)的方框原理圖;
[0034]圖3是根據(jù)本發(fā)明服務(wù)器設(shè)備的一種實(shí)施結(jié)構(gòu)的方框原理圖。
【具體實(shí)施方式】
[0035]現(xiàn)在將參照附圖來(lái)詳細(xì)描述本發(fā)明的各種示例性實(shí)施例。應(yīng)注意到:除非另外具體說(shuō)明,否則在這些實(shí)施例中闡述的部件和步驟的相對(duì)布置、數(shù)字表達(dá)式和數(shù)值不限制本發(fā)明的范圍。
[0036]以下對(duì)至少一個(gè)示例性實(shí)施例的描述實(shí)際上僅僅是說(shuō)明性的,決不作為對(duì)本發(fā)明及其應(yīng)用或使用的任何限制。
[0037]對(duì)于相關(guān)領(lǐng)域普通技術(shù)人員已知的技術(shù)、方法和設(shè)備可能不作詳細(xì)討論,但在適當(dāng)情況下,所述技術(shù)、方法和設(shè)備應(yīng)當(dāng)被視為說(shuō)明書的一部分。
[0038]在這里示出和討論的所有例子中,任何具體值應(yīng)被解釋為僅僅是示例性的,而不是作為限制。因此,示例性實(shí)施例的其它例子可以具有不同的值。
[0039]應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步討論。
[0040]本發(fā)明為了解決現(xiàn)有碼率調(diào)節(jié)方法存在的卡頓問(wèn)題,提供了一種碼率調(diào)節(jié)的新的技術(shù)方案,以實(shí)現(xiàn)碼率調(diào)節(jié)的平滑過(guò)渡。
[0041]圖1是根據(jù)本發(fā)明的實(shí)時(shí)碼率調(diào)節(jié)方法的一種實(shí)施方式的流程圖。
[0042]根據(jù)圖1所示,本發(fā)明方法包括如下步驟:
[0043]步驟SlOl:根據(jù)碼率調(diào)節(jié)指令,進(jìn)行多線程的幀同步。
[0044]該碼率調(diào)節(jié)指令可以由視頻源提供方、視頻平臺(tái)提供方觸發(fā),以使碼率與信道容量相匹配,進(jìn)而獲得流暢的視頻呈現(xiàn)。
[0045]由于編碼操作基本是基于多線程的,即在編碼時(shí)通常同時(shí)進(jìn)行多個(gè)幀的邏輯操作處理,例如,第一幀占用第一線程進(jìn)行預(yù)處理操作、第二幀占用第二線程進(jìn)行決策處理、第三幀占用第三線程進(jìn)行壓縮處理等,因此,在接收到碼率調(diào)節(jié)指令后,需要進(jìn)行多線程的幀同步,以保證各幀對(duì)于碼率調(diào)節(jié)的同步性。
[0046]上述進(jìn)行多線程的幀同步,可以是控制各線程完成當(dāng)前處理幀的同一邏輯操作,與上述舉例說(shuō)明相對(duì)應(yīng),即為使得第一幀、第二幀和第三幀均完成壓縮處理。
[0047]上述進(jìn)行多線程的幀同步,優(yōu)選是控制每一線程完成當(dāng)前處理幀的當(dāng)前邏輯操作,與上述舉例說(shuō)明相對(duì)應(yīng),即為第一線程完成第一幀的預(yù)處理操作,第二線程完成第二幀的決策處理,第三線程完成第三幀的壓縮處理等,這樣,在完成碼率調(diào)節(jié)后,便可同步開(kāi)始各幀的后續(xù)編碼處理。該種幀同步方式有利于提高碼率調(diào)節(jié)的實(shí)時(shí)性。
[0048]完成上述幀同步后,進(jìn)行如下的碼率調(diào)節(jié)處理,及進(jìn)行如下步驟S102至步驟S105。
[0049]步驟S102:獲取碼率控制(Rate control,RC)邏輯中決定碼率大小的參數(shù)。
[0050]不同的碼率控制邏輯,被設(shè)置為決定碼率大小的參數(shù)可能會(huì)有所不同,特別是決定碼率大小的所占權(quán)重較大的關(guān)鍵參數(shù)。對(duì)于大多數(shù)碼率控制邏輯,基本會(huì)有以下兩個(gè)參數(shù)參與碼率的確定,即關(guān)注時(shí)間內(nèi)的內(nèi)容復(fù)雜度的平均值及關(guān)注時(shí)間內(nèi)處理的比特?cái)?shù),特別是基于H264的碼率控制邏輯,此兩個(gè)參數(shù)將作為上述關(guān)鍵參數(shù)起作用。因此,在本發(fā)明的一個(gè)具體實(shí)施例中,采用基于H264的碼率控制邏輯進(jìn)行碼率調(diào)節(jié),并將關(guān)注時(shí)間內(nèi)的內(nèi)容復(fù)雜度的平均值、及關(guān)注時(shí)間內(nèi)處理的比特?cái)?shù)設(shè)定為是決定碼率大小的參數(shù)。
[0051]上述關(guān)注時(shí)間取決于采用的碼率控制邏輯,具體地,碼率控制邏輯會(huì)設(shè)定關(guān)注時(shí)間,以在進(jìn)行當(dāng)前碼率控制時(shí)關(guān)注當(dāng)前時(shí)間以前的設(shè)定時(shí)間段的編碼信息。例如,對(duì)于全局關(guān)注設(shè)定,該關(guān)注時(shí)間即為從開(kāi)始編碼至開(kāi)始調(diào)節(jié)碼率的全局時(shí)間段;對(duì)于Is關(guān)注設(shè)定,該關(guān)注時(shí)間即為開(kāi)始調(diào)節(jié)碼率前I s的時(shí)間段。
[0052]步驟S103:計(jì)算每一參數(shù)在當(dāng)前碼率下的數(shù)值作為當(dāng)前值。
[0053]步驟S104:根據(jù)當(dāng)前碼率與對(duì)應(yīng)碼率調(diào)節(jié)指令的目標(biāo)碼率間的比例關(guān)系、及每一參數(shù)的當(dāng)前值,計(jì)算對(duì)應(yīng)參數(shù)在目標(biāo)碼率下的目標(biāo)值。
[0054]該步驟是根據(jù)以目標(biāo)碼率進(jìn)行之前的編碼處理與以當(dāng)前碼率進(jìn)行之前的編碼處理間的差異,進(jìn)行每一參數(shù)的目標(biāo)值的預(yù)測(cè),該步驟可進(jìn)一步包括:
[0055]步驟S1041:根據(jù)當(dāng)前碼率與目標(biāo)碼率間的比值,映射每一參數(shù)的當(dāng)前值與對(duì)應(yīng)參數(shù)的目標(biāo)值間的比值。
[0056]上述映射關(guān)系可以是,每一參數(shù)的當(dāng)前值與對(duì)應(yīng)參數(shù)的目標(biāo)值間的比值均等于當(dāng)前碼率與目標(biāo)碼率間的比值,即:
[0057]Ca/Ta=IW,其中,Ca為參數(shù)A的當(dāng)前值,Ta為參數(shù)A的目標(biāo)值,R為當(dāng)前碼率,f為目標(biāo)碼率。
[0058]以將碼率從3mbps調(diào)節(jié)為1.5mbps的應(yīng)用為例,Ta= 1/2Ca。
[0059]上述映射關(guān)系也可以是,每一參數(shù)的當(dāng)前值與對(duì)應(yīng)參數(shù)的目標(biāo)值間的比值,等于對(duì)應(yīng)參數(shù)的權(quán)重系數(shù)乘以目標(biāo)碼率與當(dāng)前碼率間的比值,即:
[0060]CA/TA=aAR/R',其中,aA為參數(shù)A的權(quán)重系數(shù),取值為大于0,小于等于I,參數(shù)A對(duì)碼率大小的影響越大,權(quán)重系數(shù)aA越大。
[0061 ]步驟S1042:根據(jù)每一參數(shù)的當(dāng)前值與對(duì)應(yīng)參數(shù)的目標(biāo)值間的比值、及對(duì)應(yīng)參數(shù)的當(dāng)前值,計(jì)算對(duì)應(yīng)參數(shù)的目標(biāo)值。
[0062]步驟S105:修改每一所述參數(shù)的數(shù)值等于對(duì)應(yīng)的目標(biāo)值,完成實(shí)時(shí)碼率調(diào)節(jié)。
[0063]步驟S106:完成實(shí)時(shí)碼率調(diào)節(jié)后,根據(jù)每一參數(shù)的修改后的數(shù)值,進(jìn)行所述幀同步后的編碼處理。
[0064]由于該目標(biāo)值是根據(jù)以目標(biāo)碼率進(jìn)行之前的編碼處理得到的預(yù)測(cè)值,因此,在根據(jù)每一參數(shù)的修改后的數(shù)值進(jìn)行幀同步后的編碼處理時(shí),碼率將快速收斂至目標(biāo)碼率,進(jìn)而實(shí)現(xiàn)了在編碼過(guò)程中進(jìn)行碼率平滑過(guò)渡調(diào)節(jié)的目的。
[0065]本發(fā)明還提供了一種實(shí)時(shí)碼率調(diào)節(jié)裝置,圖2示出了該裝置的一種實(shí)施結(jié)構(gòu)的方框原理圖。
[0066]根據(jù)圖2所示,該裝置200包括幀同步模塊201、當(dāng)前值計(jì)算模塊202、目標(biāo)值計(jì)算模塊203、修改模塊204和編碼模塊205。
[0067]上述幀同步模塊201用于根據(jù)碼率調(diào)節(jié)指令,進(jìn)行多線程的幀同步。
[0068]上述當(dāng)前值計(jì)算模塊202用于在完成所述幀同步后,獲取碼率控制邏輯中決定碼率大小的參數(shù),并計(jì)算每一所述參數(shù)在當(dāng)前碼率下的數(shù)值作為當(dāng)前值。
[0069]上述目標(biāo)值計(jì)算模塊203用于根據(jù)所述當(dāng)前碼率與對(duì)應(yīng)所述碼率調(diào)節(jié)指令的目標(biāo)碼率間的比例關(guān)系、及每一所述參數(shù)的當(dāng)前值,計(jì)算對(duì)應(yīng)參數(shù)在目標(biāo)碼率下的目標(biāo)值。
[0070]上述修改模塊204用于修改每一所述參數(shù)的數(shù)值等于對(duì)應(yīng)的目標(biāo)值。
[0071]上述編碼模塊205用于根據(jù)每一所述參數(shù)的修改后的數(shù)值,進(jìn)行所述幀同步后的編碼處理。
[0072]上述目標(biāo)值計(jì)算模塊203可具體用于確定每一所述參數(shù)的當(dāng)前值與對(duì)應(yīng)參數(shù)的目標(biāo)值間的比值等于所述目標(biāo)碼率與所述當(dāng)前碼率間的比值。
[0073]上述幀同步模塊201可具體用于控制每一線程完成當(dāng)前處理幀的當(dāng)前邏輯操作。
[0074]上述當(dāng)前值計(jì)算模塊202可具體用于獲取至少以下兩個(gè)參數(shù),即關(guān)注時(shí)間內(nèi)的內(nèi)容復(fù)雜度的平均值、及關(guān)注時(shí)間內(nèi)處理的比特?cái)?shù)。進(jìn)一步地,上述當(dāng)前值計(jì)算模塊202對(duì)應(yīng)的碼率控制邏輯具體可為基于H264的碼率控制邏輯。
[0075]本發(fā)明還提供了一種服務(wù)端設(shè)備,在一方面,該服務(wù)器設(shè)備包括上述的實(shí)時(shí)碼率調(diào)節(jié)裝置200。
[0076]圖3是根據(jù)本發(fā)明另一方面的服務(wù)端設(shè)備的一種實(shí)施結(jié)構(gòu)的方框原理圖。
[0077]根據(jù)圖3所示,該服務(wù)端設(shè)備包括存儲(chǔ)器301和處理器302,該存儲(chǔ)器301用于存儲(chǔ)指令,該指令用于控制處理器302進(jìn)行操作以執(zhí)行上述實(shí)時(shí)碼率調(diào)節(jié)方法。
[0078]除此之外,根據(jù)圖3所示,該服務(wù)端設(shè)備還可以包括接口裝置303、輸入裝置304、顯示裝置305、通信裝置306等等。盡管在圖3中示出了多個(gè)裝置,但是,本發(fā)明可以僅涉及其中的部分裝置,例如,處理器301和存儲(chǔ)器302等。
[0079]上述通信裝置306例如能夠進(jìn)行有有線或無(wú)線通信。
[0080]上述接口裝置303例如包括USB接口、RS232接口、RS485接口等。
[0081 ]上述輸入裝置304例如可以包括觸摸屏、按鍵等。
[0082]上述顯示裝置305例如是液晶顯示屏、觸摸顯示屏等。
[0083]上述各實(shí)施例主要重點(diǎn)描述與其他實(shí)施例的不同之處,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)清楚的是,上述各實(shí)施例可以根據(jù)需要單獨(dú)使用或者相互結(jié)合使用。
[0084]本說(shuō)明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分相互參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)清楚的是,上述各實(shí)施例可以根據(jù)需要單獨(dú)使用或者相互結(jié)合使用。另外,對(duì)于裝置實(shí)施例而言,由于其是與方法實(shí)施例相對(duì)應(yīng),所以描述得比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的對(duì)應(yīng)部分的說(shuō)明即可。以上所描述的系統(tǒng)實(shí)施例僅僅是示意性的,其中作為分離部件說(shuō)明的模塊可以是或者也可以不是物理上分開(kāi)的。
[0085]本發(fā)明可以是裝置、方法和/或計(jì)算機(jī)程序產(chǎn)品。計(jì)算機(jī)程序產(chǎn)品可以包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上載有用于使處理器實(shí)現(xiàn)本發(fā)明的各個(gè)方面的計(jì)算機(jī)可讀程序指令。
[0086]計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是可以保持和存儲(chǔ)由指令執(zhí)行設(shè)備使用的指令的有形設(shè)備。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于一電存儲(chǔ)設(shè)備、磁存儲(chǔ)設(shè)備、光存儲(chǔ)設(shè)備、電磁存儲(chǔ)設(shè)備、半導(dǎo)體存儲(chǔ)設(shè)備或者上述的任意合適的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPROMS閃存)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、便攜式壓縮盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能盤(DVD)、記憶棒、軟盤、機(jī)械編碼設(shè)備、例如其上存儲(chǔ)有指令的打孔卡或凹槽內(nèi)凸起結(jié)構(gòu)、以及上述的任意合適的組合。這里所使用的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)不被解釋為瞬時(shí)信號(hào)本身,諸如無(wú)線電波或者其他自由傳播的電磁波、通過(guò)波導(dǎo)或其他傳輸媒介傳播的電磁波(例如,通過(guò)光纖電纜的光脈沖)、或者通過(guò)電線傳輸?shù)碾娦盘?hào)。
[0087]這里所描述的計(jì)算機(jī)可讀程序指令可以從計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)下載到各個(gè)計(jì)算/處理設(shè)備,或者通過(guò)網(wǎng)絡(luò)、例如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)和/或無(wú)線網(wǎng)下載到外部計(jì)算機(jī)或外部存儲(chǔ)設(shè)備。網(wǎng)絡(luò)可以包括銅傳輸電纜、光纖傳輸、無(wú)線傳輸、路由器、防火墻、交換機(jī)、網(wǎng)關(guān)計(jì)算機(jī)和/或邊緣服務(wù)器。每個(gè)計(jì)算/處理設(shè)備中的網(wǎng)絡(luò)適配卡或者網(wǎng)絡(luò)接口從網(wǎng)絡(luò)接收計(jì)算機(jī)可讀程序指令,并轉(zhuǎn)發(fā)該計(jì)算機(jī)可讀程序指令,以供存儲(chǔ)在各個(gè)計(jì)算/處理設(shè)備中的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。
[0088]用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序指令可以是匯編指令、指令集架構(gòu)(ISA)指令、機(jī)器指令、機(jī)器相關(guān)指令、微代碼、固件指令、狀態(tài)設(shè)置數(shù)據(jù)、或者以一種或多種編程語(yǔ)言的任意組合編寫的源代碼或目標(biāo)代碼,所述編程語(yǔ)言包括面向?qū)ο蟮木幊陶Z(yǔ)言-諸如Sma Iltalk、C++等,以及常規(guī)的過(guò)程式編程語(yǔ)言-諸如“(Γ語(yǔ)言或類似的編程語(yǔ)言。計(jì)算機(jī)可讀程序指令可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類的網(wǎng)絡(luò)-包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。在一些實(shí)施例中,通過(guò)利用計(jì)算機(jī)可讀程序指令的狀態(tài)信息來(lái)個(gè)性化定制電子電路,例如可編程邏輯電路、現(xiàn)場(chǎng)可編程門陣列(FPGA)或可編程邏輯陣列(PLA),該電子電路可以執(zhí)行計(jì)算機(jī)可讀程序指令,從而實(shí)現(xiàn)本發(fā)明的各個(gè)方面。
[0089]這里參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述了本發(fā)明的各個(gè)方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)可讀程序指令實(shí)現(xiàn)。
[0090]這些計(jì)算機(jī)可讀程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些指令在通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。也可以把這些計(jì)算機(jī)可讀程序指令存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,這些指令使得計(jì)算機(jī)、可編程數(shù)據(jù)處理裝置和/或其他設(shè)備以特定方式工作,從而,存儲(chǔ)有指令的計(jì)算機(jī)可讀介質(zhì)則包括一個(gè)制造品,其包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的各個(gè)方面的指令。
[0091]也可以把計(jì)算機(jī)可讀程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上執(zhí)行的指令實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作。
[0092]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或指令的一部分,所述模塊、程序段或指令的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)公知的是,通過(guò)硬件方式實(shí)現(xiàn)、通過(guò)軟件方式實(shí)現(xiàn)以及通過(guò)軟件和硬件結(jié)合的方式實(shí)現(xiàn)都是等價(jià)的。
[0093]以上已經(jīng)描述了本發(fā)明的各實(shí)施例,上述說(shuō)明是示例性的,并非窮盡性的,并且也不限于所披露的各實(shí)施例。在不偏離所說(shuō)明的各實(shí)施例的范圍和精神的情況下,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō)許多修改和變更都是顯而易見(jiàn)的。本文中所用術(shù)語(yǔ)的選擇,旨在最好地解釋各實(shí)施例的原理、實(shí)際應(yīng)用或?qū)κ袌?chǎng)中的技術(shù)的技術(shù)改進(jìn),或者使本技術(shù)領(lǐng)域的其它普通技術(shù)人員能理解本文披露的各實(shí)施例。本發(fā)明的范圍由所附權(quán)利要求來(lái)限定。
【主權(quán)項(xiàng)】
1.一種實(shí)時(shí)碼率調(diào)節(jié)方法,其特征在于,包括: 根據(jù)碼率調(diào)節(jié)指令,進(jìn)行多線程的幀同步; 完成所述幀同步后,獲取碼率控制邏輯中決定碼率大小的參數(shù); 計(jì)算每一所述參數(shù)在當(dāng)前碼率下的數(shù)值作為當(dāng)前值; 根據(jù)所述當(dāng)前碼率與對(duì)應(yīng)所述碼率調(diào)節(jié)指令的目標(biāo)碼率間的比例關(guān)系、及每一所述參數(shù)的當(dāng)前值,計(jì)算對(duì)應(yīng)參數(shù)在目標(biāo)碼率下的目標(biāo)值; 修改每一所述參數(shù)的數(shù)值等于對(duì)應(yīng)的目標(biāo)值; 根據(jù)每一所述參數(shù)的修改后的數(shù)值,進(jìn)行所述幀同步后的編碼處理。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述當(dāng)前碼率與對(duì)應(yīng)所述碼率調(diào)節(jié)指令的目標(biāo)碼率之間的碼率比例關(guān)系、及每一所述參數(shù)的當(dāng)前值,計(jì)算對(duì)應(yīng)參數(shù)在目標(biāo)碼率下的目標(biāo)值進(jìn)一步為: 確定每一所述參數(shù)的當(dāng)前值與對(duì)應(yīng)參數(shù)的目標(biāo)值間的比值等于所述當(dāng)前碼率與所述目標(biāo)碼率間的比值。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述參數(shù)包括關(guān)注時(shí)間內(nèi)的內(nèi)容復(fù)雜度的平均值、及關(guān)注時(shí)間內(nèi)處理的比特?cái)?shù)。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述碼率控制邏輯為基于H264的碼率控制邏輯。5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述進(jìn)行多線程的幀同步具體為: 控制每一線程完成當(dāng)前處理幀的當(dāng)前邏輯操作。6.一種實(shí)時(shí)碼率調(diào)節(jié)裝置,其特征在于,包括: 幀同步模塊,用于根據(jù)碼率調(diào)節(jié)指令,進(jìn)行多線程的幀同步; 當(dāng)前值計(jì)算模塊,用于在完成所述幀同步后,獲取碼率控制邏輯中決定碼率大小的參數(shù),并計(jì)算每一所述參數(shù)在當(dāng)前碼率下的數(shù)值作為當(dāng)前值; 目標(biāo)值計(jì)算模塊,用于根據(jù)所述當(dāng)前碼率與對(duì)應(yīng)所述碼率調(diào)節(jié)指令的目標(biāo)碼率間的比例關(guān)系、及每一所述參數(shù)的當(dāng)前值,計(jì)算對(duì)應(yīng)參數(shù)在目標(biāo)碼率下的目標(biāo)值; 修改模塊,用于修改每一所述參數(shù)的數(shù)值等于對(duì)應(yīng)的目標(biāo)值;以及, 編碼模塊,用于根據(jù)每一所述參數(shù)的修改后的數(shù)值,進(jìn)行所述幀同步后的編碼處理。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述目標(biāo)值計(jì)算模塊具體用于確定每一所述參數(shù)的當(dāng)前值與對(duì)應(yīng)參數(shù)的目標(biāo)值間的比值等于所述目標(biāo)碼率與所述當(dāng)前碼率間的比值。8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述幀同步模塊具體用于控制每一線程完成當(dāng)前處理幀的當(dāng)前邏輯操作。9.一種服務(wù)端設(shè)備,其特征在于,包括權(quán)利要求6、7或8所述的裝置。10.一種服務(wù)端設(shè)備,包括存儲(chǔ)器和處理器,其特征在于,所述存儲(chǔ)器用于存儲(chǔ)指令,所述指令用于控制所述處理器進(jìn)行操作以執(zhí)行根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的方法。
【文檔編號(hào)】H04N21/2343GK105872594SQ201610195615
【公開(kāi)日】2016年8月17日
【申請(qǐng)日】2016年3月30日
【發(fā)明人】白茂生, 呂超, 魏偉
【申請(qǐng)人】樂(lè)視控股(北京)有限公司, 樂(lè)視云計(jì)算有限公司