本公開涉及圖像傳輸領(lǐng)域,尤其涉及一種圖像處理方法及裝置。
背景技術(shù):
1、云桌面已在各行各業(yè)中得到廣泛應(yīng)用。云桌面系統(tǒng)將操作系統(tǒng)的桌面(即云桌面)運行在云端服務(wù)器,用戶只需要一個客戶端,接入網(wǎng)絡(luò),就可以隨時隨地訪問服務(wù)器,操作屬于自己的私有云桌面。不過,在實際應(yīng)用中,用戶使用云桌面的體驗與網(wǎng)絡(luò)有著非常密切的關(guān)系。在帶寬充足、低延時的網(wǎng)絡(luò)下,用戶使用云桌面可以達到與使用本地電腦一樣的體驗。在帶寬不足、高延時的網(wǎng)絡(luò)下,用戶使用云桌面會感受到明顯的卡頓,甚至無法正常使用云桌面。
技術(shù)實現(xiàn)思路
1、本公開實施例提供一種圖像處理方法及裝置,能夠解決在帶寬不足、高延時的網(wǎng)絡(luò)下,用戶使用云桌面會感受到明顯的卡頓,甚至無法正常使用云桌面的問題。所述技術(shù)方案如下:
2、根據(jù)本公開實施例的第一方面,提供一種圖像處理方法,包括:
3、獲取當前幀圖像并對所述當前幀圖像進行編碼,生成第一碼流,所述第一碼流的字節(jié)數(shù)量為預(yù)設(shè)字節(jié)數(shù)量;
4、根據(jù)所述第一碼流和當前預(yù)測帶寬得到所述當前幀圖像的預(yù)測傳輸時間窗;
5、若確定接收端設(shè)備當前處于交互場景,則根據(jù)每幀圖像的平均編碼時間、平均解碼時間、平均顯示時間和第一預(yù)設(shè)最大容忍延時得到第一最大傳輸時間窗,所述第一預(yù)設(shè)最大容忍延時為所述交互場景下的預(yù)設(shè)最大容忍延時;
6、若所述預(yù)測傳輸時間窗大于所述第一最大傳輸時間窗,則執(zhí)行第一預(yù)設(shè)步驟,所述第一預(yù)設(shè)步驟包括:
7、丟棄所述當前幀圖像;
8、獲取下一幀圖像并對所述下一幀圖像進行編碼,生成第二碼流,所述第二碼流的字節(jié)數(shù)量是將所述第一碼流的字節(jié)數(shù)量按照預(yù)設(shè)第一算法減少后的字節(jié)數(shù)量;
9、將所述下一幀圖像作為新的當前幀圖像并將所述第二碼流作為新的第一碼流;
10、根據(jù)所述新的第一碼流和所述當前預(yù)測帶寬得到新的預(yù)測傳輸時間窗并確定所述新的預(yù)測傳輸時間窗是否大于所述第一最大傳輸時間窗。
11、本公開實施例提供的圖像處理方法,能夠在交互場景下根據(jù)網(wǎng)絡(luò)的當前預(yù)測帶寬調(diào)整圖像編碼后的碼流的字節(jié)數(shù)量,并在調(diào)整圖像編碼后的碼流的字節(jié)數(shù)量后,根據(jù)調(diào)整后碼流的字節(jié)數(shù)量得到圖像的預(yù)測傳輸時間窗,在圖像的預(yù)測傳輸時間窗小于或者等于最大傳輸時間窗時,將該圖像編碼后的碼流發(fā)送至接收端設(shè)備,能夠通過調(diào)整圖像編碼后的碼流的字節(jié)數(shù)量減少圖像的傳輸時延,可以在交互場景下提前預(yù)防網(wǎng)絡(luò)擁塞導(dǎo)致的卡頓現(xiàn)象,避免了在交互場景下,若網(wǎng)絡(luò)的帶寬不足且延時高,用戶使用云桌面會感受到明顯的卡頓,甚至無法正常使用云桌面的問題,提高了用戶體驗。
12、在一個實施例中,所述方法還包括:
13、若所述預(yù)測傳輸時間窗小于所述第一最大傳輸時間窗,則執(zhí)行第二預(yù)設(shè)步驟,所述第二預(yù)設(shè)步驟包括:
14、將所述第一碼流發(fā)送至接收端設(shè)備;
15、獲取下一幀圖像并對所述下一幀圖像進行編碼,生成第三碼流,所述第三碼流的字節(jié)數(shù)量是將所述第一碼流的字節(jié)數(shù)量按照預(yù)設(shè)第二算法增大后的字節(jié)數(shù)量;
16、將所述下一幀圖像作為新的當前幀圖像并將所述第三碼流作為新的第一碼流;
17、根據(jù)所述新的第一碼流和所述當前預(yù)測帶寬得到新的預(yù)測傳輸時間窗并確定所述新的預(yù)測傳輸時間窗是否小于所述第一最大傳輸時間窗。
18、通過在時預(yù)測傳輸時間窗小于第一最大傳輸時間窗時,執(zhí)行第二預(yù)設(shè)步驟,能夠在交互場景下,在圖像能流暢傳輸?shù)那疤嵯?,逐步提升圖像編碼后的碼流,提高畫面清晰度,能夠在滿足圖像傳輸延時的要求下,動態(tài)調(diào)整圖像編碼后的碼流以提升畫質(zhì),達到更好的用戶體驗。
19、在一個實施例中,所述根據(jù)所述第一碼流和當前預(yù)測帶寬得到所述當前幀圖像的預(yù)測傳輸時間窗后,所述方法還包括:
20、若確定所述接收端設(shè)備當前處于非交互場景,則根據(jù)每幀圖像的平均編碼時間、平均解碼時間、平均顯示時間和第二預(yù)設(shè)最大容忍延時得到第二最大傳輸時間窗,所述第二預(yù)設(shè)最大容忍延時為所述非交互場景下的預(yù)設(shè)最大容忍延時,所述第二預(yù)設(shè)最大容忍延時大于所述一預(yù)設(shè)最大容忍延時;
21、若所述預(yù)測傳輸時間窗大于所述第二最大傳輸時間窗,則執(zhí)行第三預(yù)設(shè)步驟,所述第三預(yù)設(shè)步驟包括:
22、丟棄所述當前幀圖像;
23、獲取下一幀圖像并對所述下一幀圖像進行編碼,生成第二碼流,所述第二碼流的字節(jié)數(shù)量是將所述第一碼流的字節(jié)數(shù)量按照預(yù)設(shè)第一算法減少后的字節(jié)數(shù)量;
24、將所述下一幀圖像作為新的當前幀圖像并將所述第二碼流作為新的第一碼流;
25、根據(jù)所述新的第一碼流和所述當前預(yù)測帶寬得到新的預(yù)測傳輸時間窗并確定所述新的預(yù)測傳輸時間窗是否大于所述第二最大傳輸時間窗。
26、通過在確定接收端設(shè)備當前處于非交互場景時,則根據(jù)每幀圖像的平均編碼時間、平均解碼時間、平均顯示時間和第二預(yù)設(shè)最大容忍延時得到第二最大傳輸時間窗,且在預(yù)測傳輸時間窗大于第二最大傳輸時間窗時,執(zhí)行第三預(yù)設(shè)步驟,能夠在非交互場景下根據(jù)網(wǎng)絡(luò)的當前預(yù)測帶寬調(diào)整圖像編碼后的碼流的字節(jié)數(shù)量,并在調(diào)整圖像編碼后的碼流的字節(jié)數(shù)量后,根據(jù)調(diào)整后碼流的字節(jié)數(shù)量得到圖像的預(yù)測傳輸時間窗,在圖像的預(yù)測傳輸時間窗小于或者等于最大傳輸時間窗時,將該圖像編碼后的碼流發(fā)送至接收端設(shè)備,能夠通過調(diào)整圖像編碼后的碼流的字節(jié)數(shù)量減少圖像的傳輸時延,可以在非交互場景下提前預(yù)防網(wǎng)絡(luò)擁塞導(dǎo)致的卡頓現(xiàn)象,避免了在交互場景下,若網(wǎng)絡(luò)的帶寬不足且延時高,用戶使用云桌面會感受到明顯的卡頓,甚至無法正常使用云桌面的問題,提高了用戶體驗。
27、在一個實施例中,所述方法還包括:
28、若所述預(yù)測傳輸時間窗小于所述第二最大傳輸時間窗,則執(zhí)行第四預(yù)設(shè)步驟,所述第四預(yù)設(shè)步驟包括:
29、將所述第一碼流發(fā)送至接收端設(shè)備;
30、獲取下一幀圖像并對所述下一幀圖像進行編碼,生成第三碼流,所述第三碼流的字節(jié)數(shù)量是將所述第一碼流的字節(jié)數(shù)量按照預(yù)設(shè)第二算法增大后的字節(jié)數(shù)量;
31、將所述下一幀圖像作為新的當前幀圖像并將所述第三碼流作為新的第一碼流;
32、根據(jù)所述新的第一碼流和所述當前預(yù)測帶寬得到新的預(yù)測傳輸時間窗并確定所述新的預(yù)測傳輸時間窗是否小于所述第二最大傳輸時間窗。
33、通過在時預(yù)測傳輸時間窗小于第二最大傳輸時間窗時,執(zhí)行第四預(yù)設(shè)步驟,能夠在非交互場景下,在圖像能流暢傳輸?shù)那疤嵯?,逐步提升圖像編碼后的碼流,提高畫面清晰度,能夠在滿足圖像傳輸延時的要求下,動態(tài)調(diào)整圖像編碼后的碼流以提升畫質(zhì),達到更好的用戶體驗。
34、在一個實施例中,所述獲取當前幀圖像并對所述當前幀圖像進行編碼前,所述方法還包括:
35、獲取至少一幀圖像;
36、對所述至少一幀圖像中每幀圖像進行編碼并獲取所述每幀圖像的編碼時間;
37、對所述至少一幀圖像中每幀圖像進行編碼后,將所述至少一幀圖像發(fā)送至接收端設(shè)備并根據(jù)所述每幀圖像的編碼時間得到所述每幀圖像的平均編碼時間。
38、通過在當前幀圖像進行編碼前,對獲取的至少一幀圖像中每幀圖像進行編碼并獲取每幀圖像的編碼時間,能夠準確的得到每幀圖像的編碼時間,進而根據(jù)每幀圖像的編碼時間得到第一最大傳輸時間窗和第二
39、最大傳輸時間窗。
40、在一個實施例中,所述獲取當前幀圖像并對所述當前幀圖像進行編碼前,所述方法還包括:
41、接收所述接收端設(shè)備發(fā)送的所述每幀圖像的平均解碼時間和平均顯示時間,所述平均解碼時間和所述平均顯示時間是所述接收端設(shè)備在接收到所述至少一幀圖像后,對所述至少一幀圖像中的每幀圖像進行解碼并顯示后獲取的。
42、通過在當前幀圖像進行編碼前,接收接收端設(shè)備發(fā)送的每幀圖像的平均解碼時間和平均顯示時間,能夠根據(jù)每幀圖像的解碼時間和平均顯示時間得到第一最大傳輸時間窗和第二最大傳輸時間窗。
43、在一個實施例中,所述根據(jù)所述第一碼流和當前預(yù)測帶寬得到當前幀圖像的預(yù)測傳輸時間窗包括:
44、wp=(p/b)*1000,其中,wp為所述預(yù)測傳輸時間窗,p為所述第一碼流的字節(jié)數(shù)量,b為所述當前預(yù)測帶寬。
45、通過上述公式可以準確計算得到預(yù)測傳輸時間窗。
46、在一個實施例中,所述根據(jù)每幀圖像的平均編碼時間、平均解碼時間、平均顯示時間和第一預(yù)設(shè)最大容忍延時得到第一最大傳輸時間窗包括:
47、w1=t1–e–d–s,其中,w1為所述第一最大傳輸時間窗,t1為所述第一預(yù)設(shè)最大容忍延時,e為所述平均編碼時間,d為所述平均解碼時間,s為所述平均顯示時間。
48、通過上述公式可以準確計算得到第一最大傳輸時間窗。
49、在一個實施例中,所述根據(jù)每幀圖像的平均編碼時間、平均解碼時間、平均顯示時間和第二預(yù)設(shè)最大容忍延時得到第二最大傳輸時間窗包括:
50、w2=t2–e–d–s,其中,w2為所述第一最大傳輸時間窗,t2為所述第二預(yù)設(shè)最大容忍延時,e為所述平均編碼時間,d為所述平均解碼時間,s為所述平均顯示時間。
51、通過上述公式可以準確計算得到第二最大傳輸時間窗。
52、根據(jù)本公開實施例的第二方面,提供一種圖像處理裝置,包括:
53、當前幀圖像獲取模塊,用于獲取當前幀圖像并對所述當前幀圖像進行編碼,生成第一碼流,所述第一碼流的字節(jié)數(shù)量為預(yù)設(shè)字節(jié)數(shù)量;
54、預(yù)測傳輸時間窗生成模塊,用于根據(jù)所述第一碼流和當前預(yù)測帶寬得到所述當前幀圖像的預(yù)測傳輸時間窗;
55、第一最大傳輸時間窗生成模塊,用于若確定接收端設(shè)備當前處于交互場景,則根據(jù)每幀圖像的平均編碼時間、平均解碼時間、平均顯示時間和第一預(yù)設(shè)最大容忍延時得到第一最大傳輸時間窗,所述第一預(yù)設(shè)最大容忍延時為所述交互場景下的預(yù)設(shè)最大容忍延時;
56、第一預(yù)設(shè)步驟執(zhí)行模塊,用于若所述預(yù)測傳輸時間窗大于所述第一最大傳輸時間窗,則執(zhí)行第一預(yù)設(shè)步驟,所述第一預(yù)設(shè)步驟包括:
57、丟棄所述當前幀圖像;
58、獲取下一幀圖像并對所述下一幀圖像進行編碼,生成第二碼流,所述第二碼流的字節(jié)數(shù)量是將所述第一碼流的字節(jié)數(shù)量按照預(yù)設(shè)第一算法減少后的字節(jié)數(shù)量;
59、將所述下一幀圖像作為新的當前幀圖像并將所述第二碼流作為新的第一碼流;
60、根據(jù)所述新的第一碼流和所述當前預(yù)測帶寬得到新的預(yù)測傳輸時間窗并確定所述新的預(yù)測傳輸時間窗是否大于所述第一最大傳輸時間窗。
61、在一個實施例中,所述裝置還包括:
62、第二預(yù)設(shè)步驟執(zhí)行模塊,用于若所述預(yù)測傳輸時間窗小于所述第一最大傳輸時間窗,則執(zhí)行第二預(yù)設(shè)步驟,所述第二預(yù)設(shè)步驟包括:
63、將所述第一碼流發(fā)送至接收端設(shè)備;
64、獲取下一幀圖像并對所述下一幀圖像進行編碼,生成第三碼流,所述第三碼流的字節(jié)數(shù)量是將所述第一碼流的字節(jié)數(shù)量按照預(yù)設(shè)第二算法增大后的字節(jié)數(shù)量;
65、將所述下一幀圖像作為新的當前幀圖像并將所述第三碼流作為新的第一碼流;
66、根據(jù)所述新的第一碼流和所述當前預(yù)測帶寬得到新的預(yù)測傳輸時間窗并確定所述新的預(yù)測傳輸時間窗是否小于所述第一最大傳輸時間窗。
67、在一個實施例中,所述裝置還包括:
68、第二最大傳輸時間窗生成模塊,用于若確定所述接收端設(shè)備當前處于非交互場景,則根據(jù)每幀圖像的平均編碼時間、平均解碼時間、平均顯示時間和第二預(yù)設(shè)最大容忍延時得到第二最大傳輸時間窗,所述第二預(yù)設(shè)最大容忍延時為所述非交互場景下的預(yù)設(shè)最大容忍延時,所述第二預(yù)設(shè)最大容忍延時大于所述一預(yù)設(shè)最大容忍延時;
69、第三預(yù)設(shè)步驟執(zhí)行模塊,用于若所述預(yù)測傳輸時間窗大于所述第二最大傳輸時間窗,則執(zhí)行第三預(yù)設(shè)步驟,所述第三預(yù)設(shè)步驟包括:
70、丟棄所述當前幀圖像;
71、獲取下一幀圖像并對所述下一幀圖像進行編碼,生成第二碼流,所述第二碼流的字節(jié)數(shù)量是將所述第一碼流的字節(jié)數(shù)量按照預(yù)設(shè)第一算法減少后的字節(jié)數(shù)量;
72、將所述下一幀圖像作為新的當前幀圖像并將所述第二碼流作為新的第一碼流;
73、根據(jù)所述新的第一碼流和所述當前預(yù)測帶寬得到新的預(yù)測傳輸時間窗并確定所述新的預(yù)測傳輸時間窗是否大于所述第二最大傳輸時間窗。
74、在一個實施例中,所述裝置還包括:
75、第四預(yù)設(shè)步驟執(zhí)行模塊,用于若所述預(yù)測傳輸時間窗小于所述第二最大傳輸時間窗,則執(zhí)行第四預(yù)設(shè)步驟,所述第四預(yù)設(shè)步驟包括:
76、將所述第一碼流發(fā)送至接收端設(shè)備;
77、獲取下一幀圖像并對所述下一幀圖像進行編碼,生成第三碼流,所述第三碼流的字節(jié)數(shù)量是將所述第一碼流的字節(jié)數(shù)量按照預(yù)設(shè)第二算法增大后的字節(jié)數(shù)量;
78、將所述下一幀圖像作為新的當前幀圖像并將所述第三碼流作為新的第一碼流;
79、根據(jù)所述新的第一碼流和所述當前預(yù)測帶寬得到新的預(yù)測傳輸時間窗并確定所述新的預(yù)測傳輸時間窗是否小于所述第二最大傳輸時間窗。
80、在一個實施例中,所述裝置包括:
81、平均編碼時間獲取模塊,用于:
82、獲取至少一幀圖像;
83、對所述至少一幀圖像中每幀圖像進行編碼并獲取所述每幀圖像的編碼時間;
84、對所述至少一幀圖像中每幀圖像進行編碼后,將所述至少一幀圖像發(fā)送至接收端設(shè)備并根據(jù)所述每幀圖像的編碼時間得到所述每幀圖像的平均編碼時間。
85、在一個實施例中,所述裝置包括:
86、平均解碼時間接收模塊,用于接收所述接收端設(shè)備發(fā)送的所述每幀圖像的平均解碼時間和平均顯示時間,所述平均解碼時間和所述平均顯示時間是所述接收端設(shè)備在接收到所述至少一幀圖像后,對所述至少一幀圖像中的每幀圖像進行解碼并顯示后獲取的。
87、在一個實施例中,所述預(yù)測傳輸時間窗生成模塊用于:
88、wp=(p/b)*1000,其中,wp為所述預(yù)測傳輸時間窗,p為所述第一碼流的字節(jié)數(shù)量,b為所述當前預(yù)測帶寬。
89、在一個實施例中,所述第一最大傳輸時間窗生成模塊用于:
90、w1=t1–e–d–s,其中,w1為所述第一最大傳輸時間窗,t1為所述第一預(yù)設(shè)最大容忍延時,e為所述平均編碼時間,d為所述平均解碼時間,s為所述平均顯示時間。
91、在一個實施例中,所述第二最大傳輸時間窗生成模塊用于:
92、w2=t2–e–d–s,其中,w2為所述第一最大傳輸時間窗,t2為所述第二預(yù)設(shè)最大容忍延時,e為所述平均編碼時間,d為所述平均解碼時間,s為所述平均顯示時間。
93、根據(jù)本公開實施例的第三方面,提供一種電子設(shè)備,所述電子設(shè)備包括處理器和存儲器,所述存儲器中存儲有至少一條計算機指令,所述指令由所述處理器加載并執(zhí)行以實現(xiàn)第一方面中任一項所述的圖像處理方法中所執(zhí)行的步驟。
94、根據(jù)本公開實施例的第四方面,提供一種計算機可讀存儲介質(zhì),所述存儲介質(zhì)中存儲有至少一條計算機指令,所述指令由處理器加載并執(zhí)行以實現(xiàn)第一方面中任一項所述的圖像處理方法中所執(zhí)行的步驟。
95、應(yīng)當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。