
利用微結構掩碼的多品質視頻超分辨率
1.交叉引用
2.本技術要求于2020年9月29日提交的編號為63/084,788的美國臨時專利申請和于2021年6月1日提交的編號為17/335,535的美國專利申請的優先權,它們的全部內容通過引用并入本文。
技術領域
3.本公開一般涉及數據處理領域,更具體地涉及視頻編碼和解碼。
背景技術:4.國際標準化組織和國際電工委員會第一聯合技術組第29分委會(iso/iec jtc1/sc 29)工作組一直在積極尋找未來視頻編解碼技術標準化的潛在需求。iso/iec聯合圖像專家小組(jpeg)已經建立了聚焦于使用深度神經網絡(deep neural networks,dnn)的基于人工智能(ai)的神經圖像壓縮的jpeg-ai組。中國音視頻編解碼標準(avs)也形成了avs-ai特殊組,以致力于神經圖像和視頻壓縮技術。ai技術和dnn在諸如語義分類、目標檢測/識別、目標跟隨、視頻品質增強等大范圍的視頻應用中的成功對壓縮dnn模型的提出了強烈需求,并且動態圖像專家小組(mpeg)和avs都致力于神經網絡壓縮標準(neural network compression standard,nnr),該標準壓縮dnn模型以節省存儲和計算。同時,隨著高分辨率(high-resolution,hr)顯示器(如4k(3840x2160)和8k(7680x4320)分辨率)的日益普及,視頻超分辨率(super resolution,sr)在生成匹配的高分辨率視頻內容方面已經引起了工業界的極大關注。視頻sr旨在從相應的低分辨率(low-resolution,lr)視頻生成高分辨率(hr)視頻,并且在監測成像、醫學成像、沉浸式體驗等方面具有廣泛的應用。
技術實現要素:5.實施例涉及用于視頻編解碼的方法、系統和計算機可讀介質。根據一個方面,提供了一種用于視頻編解碼的方法。該方法可以包括接收第一分辨率的視頻數據和視頻數據的品質。生成神經網絡的第一層的一個或多個第一權重系數以及用于一個或多個第一權重系數的一個或多個二進制掩碼?;谒邮盏囊曨l數據的品質來生成神經網絡的第二層的一個或多個第二權重系數。使用被所生成的一個或多個二進制掩碼掩蔽的所生成的一個或多個第一權重系數,并使用所生成的一個或多個第二權重系數,通過對所接收的第一分辨率的視頻數據執行卷積,來以第二分辨率解碼視頻數據。
6.根據另一方面,提供了一種用于視頻編解碼的計算機系統。計算機系統可以包括一個或多個處理器、一個或多個計算機可讀存儲器、一個或多個計算機可讀有形存儲設備、以及存儲在一個或多個存儲設備中的至少一個上的程序指令,程序指令經由一個或多個存儲器中的至少一個存儲器通過一個或多個處理器中的至少一個處理器來執行,由此計算機系統能夠執行方法。該方法可以包括接收第一分辨率的視頻數據和視頻數據的品質。生成神經網絡的第一層的一個或多個第一權重系數以及用于一個或多個第一權重系數的一個
或多個二進制掩碼?;谒邮盏囊曨l數據的品質來生成神經網絡的第二層的一個或多個第二權重系數。使用被所生成的一個或多個二進制掩碼掩蔽的所生成的一個或多個第一權重系數,并使用所生成的一個或多個第二權重系數,通過對所接收的第一分辨率的視頻數據執行卷積,來以第二分辨率解碼視頻數據。
7.根據又一方面,提供了一種用于視頻編解碼的計算機可讀介質。計算機可讀介質可包括一個或多個計算機可讀存儲設備和存儲在所述一個或多個有形存儲設備中的至少一個存儲設備上的程序指令,程序指令可由處理器執行。程序指令可由處理器執行,以用于執行方法,該方法相應地可包括接收第一分辨率的視頻數據和視頻數據的品質。生成神經網絡的第一層的一個或多個第一權重系數以及用于一個或多個第一權重系數的一個或多個二進制掩碼?;谒邮盏囊曨l數據的品質來生成神經網絡的第二層的一個或多個第二權重系數。使用被所生成的一個或多個二進制掩碼掩蔽的所生成的一個或多個第一權重系數,并使用所生成的一個或多個第二權重系數,通過對所接收的第一分辨率的視頻數據執行卷積,來以第二分辨率解碼視頻數據。
附圖說明
8.這些和其它目的、特征和優點將通過下面結合附圖閱讀的對說明性實施例的詳細描述而變得明顯。附圖的各種特征未按比例繪制,原因是圖示要清楚地便于本領域技術人員結合詳細描述來理解。在附圖中:
9.圖1示出根據至少一個實施例的聯網計算機環境;
10.圖2a是根據至少一個實施例的超分辨率(super resolution,sr)框架的測試階段的工作流的框圖;
11.圖2b是根據至少一個實施例的多級訓練框架的工作流的框圖;
12.圖3a是根據至少一個實施例的權重填充模塊的工作流的框圖;
13.圖3b是根據至少一個實施例的微結構修剪模塊的工作流的框圖;
14.圖4是示出根據至少一個實施例的由程序執行的步驟的操作流程圖,該程序基于sr來編碼和解碼視頻;
15.圖5是根據至少一個實施例的圖1中描繪的計算機和服務器的內部組件和外部組件的框圖;
16.圖6是根據至少一個實施例的包括圖1中描繪的計算機系統的說明性云計算環境的框圖;以及
17.圖7是根據至少一個實施例的圖6的說明性云計算環境的功能層的框圖。
具體實施方式
18.本文公開了所要求保護的結構和方法的詳細實施例;然而,可以理解,所公開的實施例僅僅是所要求保護的結構和方法的說明,所要求保護的結構和方法可以以各種形式實施。然而,這些結構和方法可以以許多不同的形式實施,且不應被解釋為限于本文闡述的示例性實施例。相反,提供這些示例性實施例,使得本公開將是徹底的和完整的并向本領域技術人員充分傳達范圍。在描述中,可省略公知特征和技術的細節以避免不必要地模糊所呈現的實施例。
19.實施例一般涉及數據處理領域,更具體地涉及視頻編碼和解碼。以下描述的示例性實施例提供了一種系統、方法和計算機程序,其中,該系統、方法和計算機程序使用多品質視頻超分辨率框架,其中僅使用一個模型實例來實現具有多個品質配置的輸入視頻的視頻超分辨率。因此,一些實施例具有通過允許基于學習針對每個目標品質的一組二進制掩碼來改進視頻編碼和解碼而改進計算領域的能力,以引導超分辨率(sr)模型實例從具有不同品質的輸入低分辨率(lr)視頻生成高分辨率(hr)視頻。
20.如前所述,國際標準化組織和國際電工委員會第一聯合技術組第29分委會(iso/iec jtc1/sc 29)工作組一直在積極尋找未來視頻編解碼技術標準化的潛在需求。iso/iec聯合圖像專家小組(jpeg)已經建立了聚焦于使用深度神經網絡(deep neural networks,dnn)的基于人工智能(ai)的神經圖像壓縮的jpeg-ai組。中國數字音視頻編解碼技術標準(avs)標準也形成了avs-ai特殊組,以致力于神經圖像和視頻壓縮技術。ai技術和dnn在諸如語義分類、目標檢測/識別、目標跟隨、視頻品質增強等大范圍的視頻應用中的成功對壓縮dnn模型的提出了強烈需求,并且動態圖像專家小組(mpeg)和avs都在致力于神經網絡壓縮標準(neural network compression standard,nnr),該標準壓縮dnn模型以節省存儲和計算。同時,隨著高分辨率顯示器(如4k(3840x2160)和8k(7680x4320)分辨率)的日益普及,視頻sr在產生匹配的高分辨率視頻內容方面引起了工業界的極大重視。視頻sr旨在從相應的低分辨率(lr)視頻生成高分辨率(hr)視頻,并且在監測成像、醫學成像、沉浸式體驗等方面具有廣泛的應用。
21.然而,在實際場景中,sr系統需要以針對不同用戶定制的各種品質來放大lr視頻。例如,由于網絡傳輸速度的限制,終端用戶的sr系統可能需要處理不同壓縮品質的視頻。由于近來dnn的發展,視頻sr已經取得了巨大的成功?;赿nn的視頻sr方法的一個一般問題是,針對遵循特定數據分布的數據訓練的模型不能在遵循另一數據分布的數據上良好地執行。例如,訓練用于處理具有少量壓縮的高分辨率(high definition,hd)視頻的sr模型對于具有明顯壓縮偽影的高度壓縮的視頻不能很好地執行。對于視頻的每個品質,傳統的sr方法需要分別用相應的數據訓練sr模型實例。結果,所有這些模型實例都需要由終端用戶來存儲和部署,這太昂貴而不實用,特別是對于具有有限存儲和計算資源的場景,例如移動設備。
22.因此,使用多品質視頻超分辨率框架可能是有利的,其中,在多個二進制微結構掩碼的引導下,僅使用一個模型實例來實現具有多個品質配置的輸入視頻的視頻超分辨率。這可以允許大大減少部署存儲以實現具有多個品質的視頻的sr??梢允褂眠m應各種類型的底層視頻sr模型的靈活通用框架。微結構掩碼可提供計算減少的額外益處。
23.在本文中參考根據各個實施例的方法、裝置(系統)和計算機可讀介質的流程圖示和/或框圖來描述各方面。應理解,流程圖示和/或框圖的每個框以及流程圖示和/或框圖中的框的組合可由計算機可讀程序指令實現。
24.下面描述的示例性實施例提供了系統、方法和計算機程序,該系統、方法和計算機程序使用多品質sr框架來學習和部署僅一個sr模型實例,以支持具有多個品質的輸入視頻的sr?,F在參考圖1,是聯網計算機環境的功能框圖,其示出用于視頻編碼和解碼的sr視頻系統100(以下稱為“系統”)。應理解,圖1僅提供了一種實施方式的圖示,并不暗示與可實現不同實施例的環境相關的任何限制??苫谠O計和實現要求對所描繪的環境進行許多修
改。
25.系統100可包括計算機102和服務器計算機114。計算機102可通過通信網絡110(以下稱為“網絡”)與服務器計算機114通信。計算機102可包括處理器104和存儲在數據存儲設備106上的軟件程序108,計算機102能夠與用戶對接并與服務器計算機114通信。如下文將參照圖5討論的,計算機102可相應地包括內部組件800a和外部組件900a,且服務器計算機114可相應地包括內部組件800b和外部組件900b。計算機102可以為例如移動設備、電話、個人數字助理、上網本、膝上型計算機、平板電腦、臺式計算機、或能夠運行程序、訪問網絡和訪問數據庫的任何類型的計算設備。
26.如下文參考圖5和圖6討論的,服務器計算機114還可以在云計算服務模型中操作,云計算服務模型例如軟件即服務(software as a service,saas)、平臺即服務(platform as a service,paas)或基礎設施即服務(infrastructure as a service,iaas)。服務器計算機114還可位于云計算部署模型中,云計算部署模型例如私有云、社區云、公共云或混合云。
27.服務器計算機114可用于視頻編解碼,能夠運行可與數據庫112交互的視頻編解碼程序116(以下稱為“程序”)。下面結合圖4更詳細地說明視頻編解碼程序方法。在一個實施例中,計算機102可作為包括用戶接口的輸入設備操作,而程序116可主要在服務器計算機114上運行。在可選實施例中,程序116可主要在一個或多個計算機102上運行,而服務器計算機114可用于處理和存儲程序116所使用的數據。應注意,程序116可以是獨立的程序,或者可集成到更大的視頻編解碼程序中。
28.然而,應注意,在某些情況下,程序116的處理可以在計算機102和服務器計算機114之間以任何比例共享。在另一實施例中,程序116可以在多于一臺計算機、服務器計算機或計算機和服務器計算機的某種組合上運行,例如,在通過網絡110與單個服務器計算機114通信的多個計算機102上運行。在另一實施例中,例如,程序116可以在通過網絡110與多個客戶端計算機通信的多個服務器計算機114上運行??蛇x地,程序可以在通過網絡與服務器和多個客戶端計算機通信的網絡服務器上運行。
29.網絡110可包括有線連接、無線連接、光纖連接或這些連接的某種組合。通常,網絡110可以是將支持計算機102和服務器計算機114之間的通信的連接和協議的任何組合。網絡110可包括各種類型的網絡,例如局域網(local area network,lan)、諸如因特網的廣域網(wide area network,wan)、諸如公共交換電話網絡(public switched telephone network,pstn)的電信網絡、無線網絡、公共交換網絡、衛星網絡、蜂窩網絡(例如第五代(fifth generation,5g)網絡、長期演進(long-term evolution,lte)網絡、第三代(third generation 3g)網絡、碼分多址(code division multiple access,cdma)網絡等)、公共陸地移動網絡(public land mobile network,plmn)、城域網(metropolitan area network,man)、專用網絡、自組織網絡、內聯網、基于光纖的網絡等,和/或這些網絡或其它類型的網絡的組合。
30.圖1所示的設備和網絡的數量和布置作為示例來提供。在實踐中,可存在額外的設備和/或網絡、更少的設備和/或網絡、不同的設備和/或網絡、或者與圖1所示的設備和/或網絡不同地布置的設備和/或網絡。此外,圖1所示的兩個或更多個設備可以在單個設備內實現,或者圖1所示的單個設備可實現為多個分布式設備。另外或者可選地,系統100的一組
設備(例如,一個或多個設備)可執行被描述成由系統100的另一組設備執行的一個或多個功能。
31.現在參考圖2a,示出了sr框架的測試階段的工作流200a的框圖。除了其他的,工作流200a還可以包括sr推理模塊202等。假設輸入視頻大小為(t,h,w,c)的輸入視頻v
lr
,其中t、h、w、c分別是長度(幀數)、高度、寬度和信道數。假設對于輸入視頻的一組感興趣q品質為q1,
…
,qn。視頻的品質可以由幾個因素來確定,諸如分辨率、噪聲、運動模糊、壓縮偽影等。每個品質qi可以是聚合所有因素的單個值或這些因素的配置。整個sr模型是可以分成兩部分的dnn:共享dnn層(shared dnn layers)集合和品質相關dnn層(quality-dependent dnn layers)集合。共享dnn層集合包含dnn權重系數,該dnn權重系數被共享以計算具有不同品質的輸入視頻的不同sr視頻。品質相關dnn層集合包含dnn權重系數,該dnn權重系數對于計算具有每個預定義視頻品質的輸入視頻的sr視頻是唯一的。共享dnn層集合通常具有比品質相關dnn層集合多得多的參數(例如,10倍(10x))。dnn的權重系數可以以基于層的方式處理。設{w
jc
}表示共享dnn層集合的權重參數,其中每個w
jc
是第j層的權重系數。設表示對應于品質qi的一組二進制掩碼,其中每個掩碼具有與w
jc
相同的形狀,且的每個條目是1或0,指示中的對應權重條目是否參與推理計算,該推理計算用于生成具有品質qi的輸入視頻的sr結果。品質相關dnn層的集合可以被看作來自幾個輕量子網,一個子網針對一個品質qi,并且對于每個輸入視頻,對應的子網用于生成其對應品質的sr視頻。設{w
jq
(qi)}表示對應于品質qi的品質相關dnn層集合的子網絡的權重系數集合,其中每個w
jq
(qi)是第j層的權重系數。
32.每個權重系數w
jc
或w
jq
(qi)為具有大小(c1,k1,k2,k3,c2)的一般5維(5-dmension,5d)張量。層的輸入是尺寸為(h1,w1,d1,c1)的四維(4-dmension,4d)張量a,層的輸出是尺寸為(h2,w2,d2,c2)的四維張量b。尺寸c1、k1、k2、k3、c2、h1、w1、d1、h2、w2、d2是大于或等于1的整數。當尺寸c1、k1、k2、k3、c2、h1、w1、d1、h2、w2、d2中的任何一個取數字1時,相應的張量減小到更低的維度。每個張量中的每個項是浮動數。參數h1、w1和d1(h2、w2和d2)是輸入張量a(輸出張量b)的高度、權重和深度。參數c1(c2)是輸入(輸出)信道的數目。參數k1、k2和k3分別是對應于高度軸、權重軸和深度軸的卷積核的大小。根據輸入a、權重w
jc
或w
jq
(qi)和掩碼(如果可用)通過卷積運算
⊙
計算輸出b(注意對于w
jq
(qi),掩碼可以與其相關聯,的所有條目被設置為1)。b可以被計算為a與掩蔽權重(或)卷積,其中,
·
是按元素相乘。假設上述學習的權重系數為{w
jc
},{w
jq
(qi),i=1,
…
,n},掩碼為可以描述測試階段。假設輸入lr視頻為v
lr
以及對應的品質為qi,對應的掩碼用于生成共享dnn層的掩碼權重系數并選擇針對品質qi的品質相關dnn層的對應子網參數w
jq
(qi)。然后,使用針對共享dnn層的掩碼權重系數和所選擇的品質相關dnn層的w
jq
(qi),輸入視
頻經由sr推理模塊202通過sr模型,以計算hr視頻v
hr
。
33.現在參考圖2b中,示出了多級訓練框架200b的工作流的框圖。除了其他的,工作流200b還可以包括權重填充模塊204和微結構修剪模塊206??梢愿淖兠總€w
jc
的形狀(每個掩碼亦然),對應于具有整形w
jc
的整形輸入(reshaped input)的卷積,以獲得相同的輸出??梢允褂脙煞N配置。(1)可以將5d權重張量整形成具有尺寸(c
′1,c
′2,k)的3d張量,其中,c
′1×c′2×
k=c1×
c2×
k1×
k2×
k3。例如,一種配置可以是c
′1=c1,c
′2=c2,k=k1×
k2×
k3。(2)可以將5d權重張量整形成具有尺寸(c
′1,c
′2)的2d矩陣,其中,c
′1×c′2=c1×
c2×
k1×
k2×
k3。例如,配置可以是c
′1=c1、c
′2=c2×
k1×
k2×
k3或c
′2=c2,c
′1=c1×
k1×
k2×
k3。
34.掩碼的期望的微觀結構可以被設計成與如何實現卷積運算的基礎通用矩陣乘法(gemm)的矩陣乘法處理匹配,從而可以加速使用掩碼權重系數的推理計算。分塊微結構可用于3d整形權重張量或2d整形權重矩陣中的每層的掩碼(掩碼權重系數亦然)。具體地,對于3d整形權重張量的情況,可以將掩碼劃分為具有尺寸(gi,go,gk)的塊,對于2d整形權重矩陣的情況,可以將掩碼劃分為具有尺寸(gi,go)的塊。掩碼的塊中的所有項目將具有相同的二進制值1或0。也就是說,權重系數以分塊微結構的方式被掩蔽掉。針對每個感興趣的視頻品質qi,可以針對每個和{w
jq
(qi)}來學習具有權重和{w
jq
(qi)}以及一組微結構掩碼的模型實例,i=1,
…
,n。
35.在不喪失一般性的情況下,假設n個品質q
1,
…qn
按降序排列。即,q1是最好的品質,qn是最差的品質。為了訓練以qi為目標的掩碼,可以使用具有權重{w
jc
(i-1)}和對應的掩碼的當前模型實例。對于當前品質qi,可以學習對應的品質相關dnn參數{w
jq
(qi)},以獲得掩碼更新的權重系數{w
jc
(i)}和新的權重系數{w
jq
(qi)}。由掩蔽的{w
jc
(i-1)}中的權重系數可以是固定的。例如,如果中的條目是1,則w
jc
(i-1)中的對應權重將是固定的。中對應于0條目的剩余權重系數具有0值??梢酝ㄟ^權重填充模塊204執行學習過程,以填充用于共享dnn層的這些非固定零值權重和用于品質相關層的權重{w
jq
(qi)。這導致一組更新的權重系數{w
jc
′
(i)}和{w
jq
(qi)}。然后,基于{w
jc
′
(i)}、和{i)}{w
jq
(qi)},可以通過微結構修剪模塊206進行微結構修剪,以獲得模型實例和掩碼{w
jc
(i)}、{w
jq
(qi)。
36.現在參考圖3a,示出了圖2b的權重填充模塊204的詳細工作流程的框圖。除了其他的,工作流還可以包括sr推理模塊302a、計算損失模塊304a、反向傳播和權重更新模塊306a以及權重固定和填充模塊308等。sr推理模塊302a可以類似于如上圖2a中描述的sr推理模塊202。假設當前權重為{w
jc
(i-1)}且對應掩碼為在權重固定和填充模塊308中,可以固定由掩碼掩蔽的{w
jc
(i-1)}中的權重系數,并且可以通過將具有零值的{w
jc
(i-1)}中的剩余權重系數設置為某些隨機初始化值,或使用先前習得的全模型(例如,具有權重{w
jc
′
(0)的第一全模型)的對應權重,來初始化該具有零值的{w
jc
(i-1)}中的剩余權重系數。這給出了用于共享dnn層的權重系數{w
jc
′
(i)}。此外,品質相關dnn層的權重{w
jq
(qi)}
被初始化(例如,通過將它們設置為某些隨機初始化值或使用某些先前學習的全模型(例如,針對當前品質qi而訓練的單個全模型)的對應權重)。之后,使用{w
jc
′
(i)}和{w
jq
(qi)},訓練輸入視頻v
lr
通過sr dnn,以在sr推理模塊202中計算hr視頻v
hr
。為了訓練目的,每個訓練輸入lr視頻v
lr
具有用于當前品質qi的對應的基準真相(ground truth)hr視頻訓練的一般目標是最小化基準真相視頻和估計的hr視頻v
hr
之間的失真??梢杂嬎闶д鎿p失以測量計算損失模塊中的失真,諸如和v
hr
之間的差的l1或l2范數??梢杂嬎阍摀p失的梯度以更新共享dnn層的{w
jc
′
(i)}中的非固定權重系數,以及反向傳播和權重更新模塊中的品質相關dnn層的權重系數{w
jq
(qi)}。典型地,將采取多個回合迭代來優化該反向傳播和權重更新模塊中的損{w
jq
(qi)},例如,直到達到最大迭代次數或直到損失收斂。
37.現在參考圖3b,示出了圖2b的微結構修剪模塊206的詳細工作流程。除了其他的,工作流程還可以包括sr推理模塊302a、計算損失模塊304a、反向傳播和權重更新模塊306a和計算修剪掩碼模塊310等。假設來自上述權重填充模塊204的共享dnn層的更新權重為{w
jc
′
(i)}、來自上述權重填充模塊204的品質相關dnn層的更新權重為{w
jq
(qi)}、以及當前掩碼為修剪掩碼可以由計算修剪掩碼模塊310計算。
38.具體地,被掩蔽的{w
jc
′
(i)}中的權重系數可以是固定的,并且對于{w
jc
′
(i)}中剩余的未固定的權重系數,可以為每個微結構塊b(用于3d整形權重張量的3d塊或用于2d整形權重矩陣的2d塊)計算修剪損失l
p
(b)(例如,塊中的權重的l1或l2范數)。這些微結構塊可以基于它們的修剪損失按升序排列,并且從排列的列表自上而下修剪這些塊(即,通過將修剪的塊中的相應權重設置為0),直到可以達到停止標準。例如,假設驗證數據集s
val
,具有權重{w
jc
′
(i)}和{w
jq
(qi)}的sr模型可以生成失真損失隨著越來越多的微塊被修剪,該失真損失將逐漸增加。停止標準可以是允許失真損失增加的容許百分比閾值。停止標準還可以是要修剪的微結構塊的簡單百分比(例如50%)??梢陨梢唤M二進制修剪掩碼其中掩碼中的條目為1意味著修剪w
jc
′
(i)中的對應權重。然后,w
jc
′
(i)中被掩蔽的附加未固定權重可以被固定為被修剪??梢愿聎
jc
′
(i)中未被或掩蔽的剩余權重??梢酝ㄟ^常規反向傳播來更新權重{w
jq
(qi)},以優化訓練數據上的失真損失典型地,將采取多個回合迭代來優化該反向傳播和權重更新過程中的失真損失,例如,直到達到最大迭代次數或直到損失收斂。
39.相應的掩碼可以計算為也就是說,中未在中被掩蔽的未修剪的條目將另外被設置為1,作為在中被掩蔽。此外,上述微結構權重修剪處理將輸出更新的權重{w
jc
(i)}和{w
jq
(qi)}。注意,上述微結構修剪過程也可任選地應用于{w
jq
(qi)},以進一步減小模型尺寸和推理計算。也就是說,在計算修剪掩碼模塊310中,品質相關dnn層的權重可被整形并劃分為微結構??梢杂嬎隳切┪⒔Y構的修剪損失,并且可以用小修剪損失來修剪排名第一的微結構。這可以是在降低sr失真與節省存儲和計算之間的
權衡。最后,最后更新的權重{w
jc
(n)}是所習得的模型實例的共享dnn層的最終輸出權重{w
jc
}。
40.現在參考圖4,示出了由用于視頻編解碼的程序執行的方法400的步驟的操作流程圖。
41.在402,方法400可以包括接收第一分辨率的視頻數據和視頻數據的品質。
42.在404,方法400可以包括生成神經網絡的第一層的一個或多個第一權重系數以及用于一個或多個第一權重系數的一個或多個二進制掩碼。
43.在406,方法400可以包括基于所接收的視頻數據的品質來生成神經網絡的第二層的一個或多個第二權重系數。
44.在408處,方法400可包括使用被所生成的一個或多個二進制掩碼掩蔽的所生成的一個或多個第一權重系數,并使用所生成的一個或多個第二權重系數,通過對所接收的第一分辨率的視頻數據執行卷積,來以第二分辨率解碼視頻數據。
45.可以理解,圖4僅提供了一種實現方式的圖示,并不暗示與可如何實現不同實施例相關的任何限制??苫谠O計和實現要求對所描繪的環境進行許多修改。
46.圖5是根據一個說明性實施例的圖1描繪的計算機的內部組件和外部組件的框圖500。應理解,圖5僅提供一種實施方式的圖示,并且不暗示與可實施不同實施例的環境相關的任何限制??苫谠O計和實現要求對所描繪的環境進行許多修改。
47.如圖5所示,計算機102(圖1)和服務器計算機114(圖1)可分別包括一組內部組件800a、800b和外部組件900a、900b。每一組內部組件800包括位于一個或多個總線826上的一個或多個處理器820、一個或多個計算機可讀ram 822和一個或多個計算機可讀rom 824、一個或多個操作系統828和一個或多個計算機可讀有形存儲設備830。
48.處理器820以硬件、固件或硬件和軟件的組合來實現。處理器820是中央處理單元(central processing unit,cpu)、圖形處理單元(graphics processing unit,gpu)、加速處理單元(accelerated processing unit,apu)、微處理器、微控制器、數字信號處理器(digital signal processor,dsp)、現場可編程門陣列(field-programmable gate array,fpga)、專用集成電路(application-specific integrated circuit,asic)或其它類型的處理組件。在一些實現方式中,處理器820包括能夠被編程以執行功能的一個或多個處理器??偩€826包括允許內部組件800a、800b之間通信的組件。
49.位于服務器計算機114(圖1)上的一個或多個操作系統828、軟件程序108(圖1)和視頻編解碼程序116(圖1)存儲在相應的計算機可讀有形存儲設備830中的一個或多個上,以通過相應的ram 822中的一個或多個(通常包括緩存)由相應的處理器820中的一個或多個來執行。在圖5所示的實施例中,每個計算機可讀有形存儲設備830是內部硬盤驅動器的磁盤存儲設備??蛇x地,每個計算機可讀有形存儲設備830是半導體存儲設備,諸如rom 824、eprom、閃存、光盤、磁光盤、固態盤、緊湊盤(compact disc,cd)、數字通用盤(digital versatile disc,dvd)、軟盤、盒式磁帶、磁帶和/或可存儲計算機程序和數字信息的其它類型的非暫時性計算機可讀有形存儲設備。
50.每一組內部組件800a、800b還包括讀/寫(r/w)驅動器或接口832,以從一個或多個便攜式計算機可讀有形存儲設備936(例如cd-rom、dvd、記憶棒、磁帶、磁盤、光盤或半導體存儲設備)讀取和寫入一個或多個便攜式計算機可讀有形存儲設備936。諸如軟件程序108
(圖1)和視頻編解碼程序116(圖1)的軟件程序可存儲在相應的便攜式計算機可讀有形存儲設備936中的一個或多個上,經由相應的r/w驅動器或接口832讀取并加載到相應的硬盤驅動器830中。
51.每一組內部組件800a,800b還包括網絡適配器或接口836,例如tcp/ip適配卡;無線wi-fi接口卡;或3g、4g或5g無線接口卡或其它有線或無線通信鏈路。服務器計算機114(圖1)上的軟件程序108(圖1)和視頻編解碼程序116(圖1)可經由網絡(例如,因特網、局域網或其它廣域網)和相應的網絡適配器或接口836從外部計算機下載到計算機102(圖1)和服務器計算機114。通過網絡適配器或接口836,服務器計算機114上的軟件程序108和視頻編解碼程序116加載到相應的硬盤驅動器830中。網絡可以包括銅線、光纖、無線傳輸、路由器、防火墻、交換機、網關計算機和/或邊緣服務器。
52.每一組外部組件900a、900b可以包括計算機顯示器920、鍵盤930和計算機鼠標934。外部組件900a、900b還可以包括觸摸屏、虛擬鍵盤、觸摸板、指向設備和其它人機接口設備。每一組內部組件800a,800b還包括設備驅動器840,以與計算機顯示器920、鍵盤930和計算機鼠標934對接。設備驅動器840、r/w驅動器或接口832和網絡適配器或接口836包括硬件和軟件(存儲在存儲設備830和/或rom 824中)。
53.應預先理解,雖然本公開包括對云計算的詳細描述,但是本文中所敘述的教導的實現方式不限于云計算環境。相反,一些實施例能夠結合現在已知或稍后開發的任何其他類型的計算環境來實現。
54.云計算是用于實現對可配置計算資源(例如,網絡、網絡帶寬、服務器、處理、存儲器、存儲、應用、虛擬機和服務)的共享池的便捷、按需網絡訪問的服務傳送模型,該可配置計算資源可以以最小的管理努力或通過與服務提供者的交互來快速提供和釋放。該云模型可包括至少五個特征、至少三個服務模型和至少四個部署模型。
55.特征如下:
56.按需自助服務:云消費者可根據需要自動地單方面提供計算能力(例如服務器時間和網絡存儲),而不需要與服務提供者進行人工交互。
57.廣泛的網絡接入:可通過網絡可獲得能力并通過標準機制來訪問能力,該標準機制促進由異構瘦客戶端平臺或胖客戶端平臺(例如,移動電話、膝上型計算機和pda)使用。
58.資源池化:使用多租戶模型對提供者的計算資源進行池化以服務于多個消費者,其中根據需求動態地分配和重新分配不同的物理資源和虛擬資源。存在與位置無關的感覺,原因是消費者通常無法控制所提供的資源的確切位置或不知道所提供的資源的確切位置,但是能夠以更高的抽象級別(例如,國家、狀態或數據中心)指定位置。
59.快速彈性:可快速且彈性地提供能力,在某些情況下可自動地提供能力,以快速擴展和快速釋放以快速收縮。對于消費者來說,可提供的能力通??雌饋頍o限制,且可以在任何時候以任何數量購買。
60.測量的服務:云系統通過在適合于服務類型(例如,存儲、處理、帶寬和活動用戶帳戶)的某個抽象級別下利用計量能力來自動控制和優化資源使用??杀O測、控制和報告資源使用,從而給所利用的服務的提供者和消費者提供透明度。
61.服務模型如下:
62.軟件即服務(saas):提供給消費者的能力是使用在云基礎設施上運行的提供者的
應用程序。應用程序可通過瘦客戶端接口從各種客戶端設備訪問,瘦客戶端接口例如web瀏覽器(例如,基于web的電子郵件)。消費者不管理或控制包括網絡、服務器、操作系統、存儲器的底層云基礎設施,或者甚至不管理或控制個人應用能力,可能的例外是有限的用戶特有的應用配置設置。
63.平臺即服務(paas):提供給消費者的能力是將消費者創建或獲取的應用部署到云基礎設施上,該應用使用由提供者支持的編程語言和工具來創建。消費者不管理或控制包括網絡、服務器、操作系統或存儲器的底層云基礎設施,而是控制所部署的應用和可能的應用托管環境配置。
64.基礎設施即服務(iaas):提供給消費者的能力是提供處理、存儲、網絡和其它基本計算資源,其中消費者能夠部署和運行可包括操作系統和應用的任意軟件。消費者不管理或控制底層云基礎設施,而是控制操作系統、存儲、所部署的應用,且可能有限地控制所選擇的聯網組件(例如,主機防火墻)。
65.部署模型如下:
66.私有云:云基礎設施運行,僅用于一個組織。云基礎設施可由該組織或第三方管理,且可以以內部部署或外部部署的方式存在。
67.社區云:云基礎設施由數個組織共享,并支持具有共同關注點(例如,任務、安全要求、策略和合規性考慮)的特定社區。社區云可由這些組織或第三方管理,且可以以內部部署或外部部署的方式存在。
68.公共云:云基礎設施可用于普通公眾或大型工業集團,且由銷售云服務的組織所擁有。
69.混合云:云基礎設施是兩個或更多個云(私有云、社區云或公共云)的組合,這些云保持獨特的實體,但是通過標準化技術或專有技術而捆綁在一起,標準化技術或專有技術實現數據和應用可移植性(例如,云爆用于云之間的負載平衡)。
70.云計算環境是面向服務的,重點是無狀態、低耦合、模塊化和語義互操作性。云計算的核心是包括由互連節點構成的網絡的基礎設施。
71.參考圖6,描繪了說明性云計算環境600。如圖所示,云計算環境600包括一個或多個云計算節點10,云消費者使用的本地計算設備可與云計算節點10通信,本地計算設備例如個人數字助理(personal digital assistant,pda)或蜂窩電話54a、臺式計算機54b、膝上型計算機54c和/或汽車計算機系統54n。云計算節點10彼此可通信。云計算節點10可以在一個或多個網絡中物理地或虛擬地分組(未示出),一個或多個網絡例如如上所述的私有云、社區云、公共云或混合云,或其組合。這使得云計算環境600可以提供基礎設施、平臺和/或軟件,作為不需要云消費者維護本地計算設備上的資源的服務。應理解,圖6所示的計算設備54a-n的類型僅用于說明,且云計算節點10和云計算環境600可通過任何類型的網絡和/或網絡可尋址連接(例如,使用web瀏覽器)與任何類型的計算機化設備通信。
72.參照圖7,示出了由云計算環境600(圖6)提供的一組功能抽象層700。應預先理解,圖7中所示的組件、層和功能僅用于說明,實施例不限于此。如圖所描繪的,提供以下層和相應的功能:
73.硬件和軟件層60包括硬件和軟件組件。硬件組件的示例包括:主機61;基于精簡指令集計算機(reduced instruction set computer,risc)架構的服務器62;服務器63;刀片
服務器64;存儲設備65;以及網絡和聯網組件66。在一些實施例中,軟件組件包括網絡應用服務器軟件67和數據庫軟件68。
74.虛擬化層70提供抽象層,可從該抽象層提供以下虛擬實體的示例:虛擬服務器71;虛擬存儲器72;虛擬網絡73,包括虛擬專用網絡;虛擬應用和操作系統74;以及虛擬客戶端75。
75.在一個示例中,管理層80可提供以下描述的功能。資源供應81提供用于在云計算環境中執行任務的計算資源和其它資源的動態獲取。當在云計算環境中使用資源時,計量和定價82提供成本追溯,以及對這些資源的消耗進行計費或開具清單。在一個示例中,這些資源可包括應用軟件許可證。安全給云消費者和任務提供身份驗證,以及給數據和其它資源提供保護。用戶門戶83給消費者和系統管理員提供對云計算環境的訪問。服務級別管理84提供云計算資源分配和管理,使得滿足所需的服務級別。服務水平協議(service level agreement,sla)規劃和實現85提供對云計算資源的預先安排和獲取,對于云計算資源,根據sla預期未來需求。
76.工作負載層90提供可使用云計算環境的功能的示例??蓮脑搶犹峁┑墓ぷ髫撦d和功能的示例包括:映射和導航91;軟件開發和生命周期管理92;虛擬課堂教育傳送93;數據分析處理94;交易處理95;以及視頻編解碼96。視頻編解碼96可以編碼視頻基于使用多品質視頻超分辨率框架來編碼視頻數據,其中僅使用一個模型實例來利用多品質配置實現輸入視頻的視頻超分辨率。
77.一些實施例可以涉及整合的任何可能的技術細節級別的系統、方法和/或計算機可讀介質。計算機可讀介質可包括計算機可讀非暫時性存儲介質(或介質),在計算機可讀非暫時性存儲介質(或介質)上具有使得處理器執行操作的計算機可讀程序指令。
78.計算機可讀存儲介質可以是可保存和存儲供指令執行設備使用的指令的有形設備。計算機可讀存儲介質可以是例如但不限于電子存儲設備、磁存儲設備、光存儲設備、電磁存儲設備、半導體存儲設備或上述存儲設備的任何適當組合。計算機可讀存儲介質的更具體示例的非窮盡列表包括以下項:便攜式計算機磁盤、硬盤、隨機存取存儲器(random access memory,ram)、只讀存儲器(random access memory,rom)、可擦除可編程只讀存儲器(erasable programmable read-only memory,eprom或閃存)、靜態隨機存取存儲器(static random access memory,sram)、便攜式緊湊盤只讀存儲器(compact disc read-only memory,cd-rom)、數字通用盤(digital versatile disk,dvd)、記憶棒、軟盤、機械編碼的設備(例如凹槽中的凸起結構或穿孔卡片,其上記錄有指令),以及上述各項的任何適當組合。如本文所使用的計算機可讀存儲介質不應解釋成本身是瞬時信號,例如無線電波或其它自由傳播的電磁波、通過波導或其它傳輸介質傳播的電磁波(例如,經過光纖線纜的光脈沖)、或通過線傳輸的電信號。
79.本文描述的計算機可讀程序指令可通過網絡(例如因特網、局域網、廣域網和/或無線網絡)從計算機可讀存儲介質下載到相應的計算/處理設備或下載到外部計算機或外部存儲設備。網絡可包括銅傳輸線纜、光傳輸光纖、無線傳輸、路由器、防火墻、交換機、網關計算機和/或邊緣服務器。每個計算/處理設備中的網絡適配器卡或網絡接口接收來自網絡的計算機可讀程序指令并轉發計算機可讀程序指令,以存儲在相應的計算/處理設備內的計算機可讀存儲介質中。
80.用于執行操作的計算機可讀程序代碼/指令可以是匯編程序指令、指令集架構(instruction-set-architecture,isa)指令、機器指令、機器相關指令、微代碼、固件指令、狀態設置數據、集成電路的配置數據、或以一種或多種編程語言的任何組合編寫的源代碼或目標代碼,一種或多種編程語言包括面向對象的編程語言(例如smalltalk,c++等)和過程編程語言(例如“c”編程語言或類似的編程語言)。計算機可讀程序指令可完全在用戶的計算機上、部分地在用戶的計算機上、作為獨立軟件包來執行,獨立軟件包部分地在用戶的計算機上、部分在遠程計算機上或完全在遠程計算機或服務器上。在后一種情況下,遠程計算機可通過任何類型的網絡連接到用戶的計算機,網絡包括局域網(lan)或廣域網(wan),或者可與外部計算機建立連接(例如,通過使用因特網服務提供者的因特網)。在一些實施例中,例如包括可編程邏輯電路、現場可編程門陣列(fpga)或可編程邏輯陣列(pla)的電子電路可通過利用計算機可讀程序指令的狀態信息來執行計算機可讀程序指令,以個性化電子電路,來執行多方面或操作。
81.這些計算機可讀程序指令可提供給通用計算機、專用計算機或其它可編程數據處理設備的處理器,以產生機器,使得通過計算機或其它可編程數據處理設備的處理器執行的指令創建用于實現流程圖和/或框圖框中指定的功能/動作的方式。這些計算機可讀程序指令還可存儲在計算機可讀存儲介質中,可指導計算機、可編程數據處理設備和/或其它設備以特定方式運行,使得存儲有指令的計算機可讀存儲介質包括制造品,該制造品包括實現流程圖和/或框圖框中指定的功能/動作的各方面的指令。
82.計算機可讀程序指令還可加載到計算機、其它可編程數據處理設備或其它設備上,使得一系列操作步驟在計算機、其它可編程設備或其它設備上執行以產生計算機實現的過程,因此在計算機、其它可編程設備或其它設備上執行的指令實現流程圖和/或框圖框中指定的功能/動作。
83.圖中的流程圖和框圖示出了根據各個實施例的系統、方法和計算機可讀介質的可能實現方式的架構、功能和操作。在這一點上,流程圖或框圖中的每個框可表示指令的模塊、部段或部分,其包括用于實現指定邏輯功能的一個或多個可執行指令。與圖中所描繪的那些框相比,方法、計算機系統和計算機可讀介質可包括附加框、更少的框、不同的框或不同布置的框。在一些可選的實現方式中,在框中注明的功能可以不按圖中注明的順序發生。例如,接連示出的兩個框實際上可同時執行或基本上同時執行,或者有時框可以相反的順序執行,這取決于所涉及的功能。還應注意,框圖和/或流程圖圖示的每個框以及框圖和/或流程圖圖示的框的組合可通過基于專用硬件的系統來實現,這些系統執行指定的功能或動作或者實現專用硬件和計算機指令的組合。
84.顯然,本文描述的系統和/或方法可以以不同形式的硬件、固件或硬件和軟件的組合來實現。用于實現這些系統和/或方法的實際專用控制硬件或軟件代碼不限制實現方式。因此,本文在不參考特定軟件代碼的情況下描述系統和/或方法的操作和行為-應理解,軟件和硬件可設計成實現基于本文的描述的系統和/或方法。
85.除非另外明確描述,否則本文使用的元素、動作或指令不應理解為關鍵的或必要的。此外,如本文所使用的,冠詞“一”和“一個”旨在包括一個或多個項目,且可與“一個或多個”互換使用。此外,如本文所使用的,術語“集”旨在包括一個或多個項目(例如,相關項目、不相關項目、相關項目和不相關項目的組合等),且可與“一個或多個”互換使用。在僅意指
一個項目的情況下,使用術語“一”或類似語言。此外,如本文所使用的,術語“有”、“具有”、“含有”或類似術語旨在是開放式術語。此外,短語“基于”意指“至少部分地基于”,除非另有明確說明。
86.為了說明的目的,已給出對各個方面和實施例的描述,但并不旨在窮舉或限制于所公開的實施例。即使在權利要求中敘述和/或在說明書中公開特征的組合,這些組合并不旨在限制可能的實現方式的公開內容。實際上,這些特征中的許多特征可以以未在權利要求中具體陳述和/或未在說明書中公開的方式組合。雖然下面列出的每個從屬權利要求可僅直接從屬于一個權利要求,但是可能的實現方式的公開內容包括每個從屬權利要求與權利要求集中的每一個其它權利要求的組合。
87.在不脫離所描述的實施例的范圍的情況下,許多修改和變化將對本領域普通技術人員而言是顯而易見的。選擇本文使用的術語以最好地解釋實施例的原理、實際應用或相對于市場中找到的技術的技術改進,或使本領域普通技術人員能夠理解本文公開的實施例。