本申請要求于2014年3月27日提交的題為“SCALABLE VIDEO ENCODING RATE ADAPTATION BASED ON PERCEIVED QUALITY(基于感知質量的可縮放視頻編碼速率適配)”的美國專利申請序列號14/227,729的優先權,并且所述專利申請以全部內容通過引用結合。
背景技術:
視頻編碼技術使數字視頻的高效傳輸成為可能。一些實時視頻流式傳輸應用(如視頻會議)要求特別高,因為用戶體驗取決于高效且穩健的編碼技術以實現最小的延遲和適當的圖像質量。作為視頻傳輸平臺的無線信道進一步約束了編碼技術,因為基干網絡經常具有非常動態的信道帶寬。
對每個視頻幀進行編碼所需的比特數被稱為編碼速率并且貫穿視頻序列經常不是恒定的。在視頻編碼器處實現速率控制以保證對被流式傳輸至解碼器中的視頻數據進行成功解碼和顯示。視頻編解碼器具有用于提高或降低編碼速率的可調整的壓縮參數以便適應各種類型的信道的不同的傳輸帶寬。
可縮放視頻編碼(SVC)規定包括在H.264/MPEG-4第10部分高級視頻編解器(AVC)視頻壓縮標準的附件G延伸中。H.264標準已經由聯合視頻組(JVT)擬定,聯合視頻組包括ITU-T SG16 Q.6(也被稱為VCEG(視頻編碼專家組))以及被稱為MPEG(運動圖像專家組)的ISO-IEC JTC1/SC29/WG11(2003)。SVC使視頻比特流的編碼標準化,所述視頻比特流還包含需要較小帶寬的一個或多個子集比特流。子集比特流可以支持不同的空間分辨率(屏幕大小)、不同的時間分辨率(幀速率)或者不同質量(SNR)的視頻信號。
SVC技術作為一種處理編碼器比特率預算變化的手段在實時視頻流式傳輸應用中可能是有用的。在SVC標準中,針對實現方式存在相當大的寬容度,這在視頻質量與呈現視頻所需的數據數量(即,比特率)之間存在復雜關系時可以提供高級視頻流式傳輸服務。通常,比特率越高,編碼器的空間頻率頻譜近似越準確。但是,更高的準確性可能不一定為人類觀察者產生更高的感知質量。
附圖說明
在附圖中通過舉例而非限制的方式展示了在此所描述的材料。為了展示的簡單和清楚,圖中所展示的元件不一定按比例繪制。例如,為清楚起見,某些元件的尺寸相對于其他元件可能被放大了。此外,在認為適當的情況下,在附圖之間對參考標記加以重復以表示相應的或相似的元件。在附圖中:
圖1是根據實施例的基于感知質量的視頻編碼速率控制架構的功能框圖;
圖2是展示根據實施例的基于感知質量的視頻編碼速率控制方法的流程圖;
圖3A是展示根據實施例的將KPI目標與感知質量目標進行關聯的方法的流程圖;
圖3B是展示用于基于感知質量生成分層編碼流的方法的流程圖;
圖4A是進一步展示根據示例性實施例的確定PSNR目標的數據流圖;
圖4B是進一步展示根據實施例的基于PSNR目標生成分層編碼流的數據流圖;
圖4C是進一步展示校準非分層編碼流是如何被采用作為分層編碼流的速率控制的基礎的功能框圖;
圖5A展示了跨越一系列感知質量的同時廣播結構;
圖5B和圖5C展示了根據實施例的用基于感知質量速率控制生成的兩個分層結構;
圖6A展示了根據實施例的包括基于感知質量水平構造的三個不同的擴展流的示例性時間質量結構;
圖6B展示了根據實施例的響應于網絡擁塞的基于感知質量的分層結構適配;
圖7展示了根據實施例的用于對感知質量導向的分層結構進行適配的方法;
圖8A展示了根據實施例的可以針對由當前比特率預算準許的最佳感知質量實時構造的示例性雙流結構;
圖8B展示了根據實施例響應于網絡擁塞對圖8A中展示的雙流結構進行的適配;
圖9是展示了符合一個或多個實施例的針對感知質量導向的視頻編碼速率適配配置的聯網通信系統的功能框圖;
圖10是根據實施例的示例性系統的圖解;以及
圖11是根據實施例安排的示例性系統的圖解。
具體實施方式
參照附圖描述了一個或多個實施例。雖然對特定配置和安排進行了詳細的描繪和討論,但應理解,這樣做僅出于說明目的。相關領域中的技術人員將認識到,在不背離本說明的精神和范圍的情況下,其他配置和安排是有可能的。將對相關領域的技術人員明顯的是,在此描述的技術和/或安排可以在超出在此詳細描述的系統和應用之外的各種各樣的其他系統和應用中被采用。
在以下詳細的說明書中對附圖進行參考,這些附圖形成說明書的一部分并且展示了示例性實施例。此外,應當理解,在不背離要求保護的主題的范圍的情況下,可以利用其他實施例并且可以做出結構的和/或邏輯的改變。因此,以下詳細說明不應以限制的含義來理解并且要求保護的主題的范圍僅由所附權利要求書及其等效物來限定。
在以下描述中,陳述了許多細節,然而,將對本領域技術人員明顯的是,實施例可以在沒有限制特定細節的情況下被實踐。眾所周知的方法和設備是以框圖形式而非詳細地示出的,以避免模糊更顯著的方面。貫穿本說明書對“實施例(an embodiment)”或“一個實施例(one embodiment)”的引用意味著在至少一個實施例中包括了與所述實施例結合描述的具體特征、結構、功能或特性。因此,貫穿本說明書在各處出現的短語“在實施例中(in an embodiment)”或在“在一個實施例中(in one embodiment)”并非必須指同一個實施例。此外,在實施例的上下文中描述的具體特征、結構、功能或特性可以用任何適當的方式組合在一個或多個實施例中。例如,第一實施例可以與第二實施例在任何地方進行組合,其中,與這兩個實施例相關聯的具體特征、結構、功能或特性不相互排斥。
如在示例性實施例和所附權利要求書的描述中使用的,除非上下文另外明確指示,否則單數形式“一個(a)”、“一個(an)”和“所述(the)”旨在同樣包括復數形式。還將理解的是,如本文使用的術語“和/或”指代并且包括相關聯的列舉項的一個或多個項的任何和所有可能組合。
如貫穿說明書并且在權利要求書中使用的,由術語“的至少一個(at least one of)”或“的一個或多個(one or more of)”聯接的項列表可以意味著所例舉的項的任意組合。例如,短語“A、B或C中的至少一者”可以意味著A;B;C;A和B;A和C;B和C;或者A、B和C。
術語“耦合”和“連接”連同其衍生詞在此可以用于描述部件之間的功能關系或結構關系。應當理解,這些術語對于彼此并非旨在作為同義詞。而是,在具體實施例中,“連接”可以用于指示兩個或更多個元件彼此直接進行物理的、光學的或電學的接觸。“耦合”可以用于指示兩個或更多個元件彼此進行直接的或間接的(在它們之間具有介入元件)物理的、光學的或電學的接觸,和/或指示兩個或更多個元件彼此合作或交互(例如,由于因果關系的原因)。
就對計算機存儲器內的數據比特進行的操作的算法和符號表示而言,呈現在此提供的詳細說明書的一些部分。如從以下討論中明顯的是,除非另外特別聲明,否則應認識到,貫穿本說明書,使用如“運算(calculating)”、“計算(computing)”、“確定(determining)”、“估計(estimating)”、“存儲(storing)”、“收集(collecting)”“顯示(displaying)”、“接收(receiving)”、“合并(consolidating)”、“生成(generating)”、“更新(updating)”等術語的討論是指計算機系統或類似電子計算裝置的動作和過程,所述計算機系統或類似電子計算裝置對表示為計算機系統的包括寄存器和存儲器的電路中的物理(電子)量的數據進行操縱并且將其轉換成類似地表示為計算機系統存儲器或寄存器或其他此類信息存儲、傳輸或顯示裝置中的物理量的其他數據。
雖然以下描述陳述可以在如片上系統(SoC)架構或例如GPU架構的架構中顯現各實現方式,在此描述的技術和/或安排的實現方式不局限于具體的架構和/或計算系統并且出于類似目的可以由任何架構和/或計算系統實現。采用例如多個集成電路(IC)芯片和/或封裝體、和/或各種計算設備和/或消費電子產品(CE)設備(如機頂盒、智能電話等)的各架構可以實現在此描述的技術和/或安排。此外,雖然以下描述可以陳述許多特定的細節(如邏輯實現、系統部件的類型和內在關系、邏輯劃分/集成選擇等),要求保護的主題可以在沒有這些特定細節的情況下被實踐。此外,可以不詳細示出某些材料(如,例如,控制結構和完整的軟件指令序列),以便不模糊在此公開的材料。
在此公開的材料的某些部分是在硬件(例如,如圖形處理器中的邏輯電路)中實現的。某些其他部分可以在硬件、固件、軟件、或其任意組合中實現。在此公開的至少部分材料還可以被實現為存儲于機器可讀介質上的指令,這些指令可以被一個或多個處理器(圖形處理器和/或中央處理器)讀取或執行。機器可讀介質可以包括用于存儲或傳輸具有由機器(例如,計算設備)可讀的形式的信息的任何介質和/或機制。例如,機器可讀介質可以包括只讀存儲器(ROM);隨機存取存儲器(RAM);磁盤存儲介質;光存儲介質;閃存器;電、光、聲或其他類似非瞬態有形介質。
以下描述了用于基于用戶感知的或主觀的質量對可擴展視頻結構進行編碼的一種或多種系統、裝置、方法和計算機可讀介質。在實施例中,基于質量的速率控制是利用確定編碼配置的質量度量執行的。在感知質量度量目標和分層編碼結構之上通過實時的(例如,每一幀的)控制來提供速率適配以針對同時發生的網絡狀況維持最佳的主觀質量水平。在實施例中,客觀的質量度量與主觀的質量度量相關聯,并且客觀的質量度量被用作用于控制/適配編碼器配置的基礎。
在實施例中,視頻編碼比特率是由把預先確定的感知質量作為目標的基于感知質量的速率控制器確定的。圖1是根據實施例的基于感知質量的視頻編碼速率控制架構101的功能框圖。架構101包括編碼器130,所述編碼器在示例性實施例中是硬件加速的編碼器核,所述編碼器核實現符合H.264標準、H.265(HEVC)ISO/IEC 23008-2 MPEG-H第2部分和ITU-T H.265標準、VP 8(RFC 6386)或VP9中的一者或多者的編解碼器。編碼器130被配置進入具有固定量化參數(QP)而無內部速率控制的模式中。在操作過程中,編碼器130接收來自存儲器的原始幀N(例如,在YUV中)格式并且輸出編碼比特流,所述比特流然后可以被緩沖到例如在傳輸或顯示流水線內的存儲器中。編碼比特流進一步被視頻感知質量估計器140監視,所述估計器可以對于編碼器130是本地的或者位于遠程接收器處。在示例性實施例中,視頻質量估計器140對編碼器輸出執行視頻質量感知評估(PEVQ)。感興趣的讀者請參考國際標準ITU-T建議J.247(08/08)以獲得與PEVQ有關的進一步信息。PEVQ可以包括用于借助于5分制平均意見評分(MOS)對視頻片段的圖片質量進行評分的算法。由估計器140執行的測量算法可以訪問由數字視頻編碼/解碼過程引起的可見偽像,并且通常是基于目標參數(如比特率、幀速率、分組丟失率、抖動等)的非線性加權組合。
在圖1中展示的示例性實施例中,采用“無參考”測量算法,其中,源參考的起始質量未知并且僅基于編碼比特流生成MOS(eMOS)估計。可以針對例如在連續的N個視頻幀之上延伸的視頻序列確定eMOS,其中,感知質量越好,相關聯的eMOS越高。視頻感知質量估計器140耦合于負責配置影響編碼速率的編碼器130的參數的控制邏輯145。在一個示例性實施例中,控制邏輯145輸出耦合至編碼器130的編碼器控制信號,所述編碼器指定有待采用以對將使eMOS與目標感知質量水平或閾值(例如,3.5、4.0、4.5等)最佳匹配的后續視頻幀或幀序列進行編碼的QP值。
在實施例中,使用編碼參數值將視頻幀編碼為分層流,所述編碼參數值是基于與分配給分層流的每一層的感知質量目標相關聯的編碼關鍵性能指標目標確定的。圖2是展示根據一個實施例的基于感知質量的視頻編碼速率控制方法201的流程圖。在操作205處,方法201以接收原始視頻幀(如圖1中的幀105)開始。在操作210處,感知質量水平目標被分配給分層結構的層。
分層流結構包括基層以及一個或多個時間增強層,和/或一個或多個質量(SNR)增強層。一個或多個空間增強層也可以存在。通常,分層結構可以通過層間預測來提高編碼效率,在層間預測中,相關的增強層樣本是從較低層圖片(參考層)中預測的。最低層級層的流是從被稱為“關鍵”幀的基層時間幀中構造的。這些基層時間幀被編碼為基層質量和基層空間分辨率。相關的流可以是從時間增強層的組合中構造的,從而使幀速率增加超過關鍵幀的幀速率。每個時間增強層可以進一步具有一個或多個質量層和/或空間分辨率。
為給定層級結構的不同層分配感知質量度量目標。所述分配可以是基于在操作215處接收到的當前比特率預算。可以將一個感知質量評分或水平(例如,eMOS 4)分配于給定層級結構的所有層。例如,多個時間增強層(例如,4個二元結構)可以與一個感知質量水平相關聯。多個感知質量水平也可以與分層結構相關聯。例如,相比于增強層質量幀,基層質量幀可以與較低的eMOS相關聯。
在操作220處,確定針對與分層流的每一層相關聯的感知質量目標值的編碼關鍵性能指標(KPI)。編碼KPI是可以在不同的空間/時間/量化結構中有利地導向編碼器的客觀度量,在這些不同結構中,相關層的幀之間的可變時間參考距離可能以其他方式使擴展的輸出流的感知質量估計復雜化。編碼KPI一旦與感知質量水平相關聯就可以使針對可擴展輸出流的感知質量編碼器速率控制成為可能。
方法201在操作230處繼續,其中,基于目標編碼KPI目標在一個或多個分層流中對幀進行編碼。如以下進一步描述的,同時發生的(瞬時的)比特率預算和質量目標可以用于選擇編碼候選幀以基本上實時地構造基于感知質量的分層結構。替代地,以特定的感知質量范圍為目標的一個或多個預先確定的結構可以在操作230處利用任何幀丟棄被制備,然后在稍后的階段處再次基于瞬時比特率預算和感知質量目標發生。方法201在操作240處通過輸出分層編碼流而完成,所述分層編碼流根據瞬時網絡狀況可從最低感知質量水平擴展至最佳感知質量水平。
如以上指出的,由于運動向量/殘值比在多層流中改變,適合于單層輸出流的基于感知質量的速率控制的感知質量測量算法(如NR eMOS估計器)可能容易受誤差的影響。由此,在本文的某些實施例中,使用全參考(Full Reference,FR)PEVQ架構針對給定的感知質量目標確定編碼KPI。在示例性實施例中,KPI是信噪比(SNR),并且更具體地是峰值SNR(PSNR),如但不限于亮度PSNR(PSNRY)。PSNR可以是基于原始視頻幀與相應的重構參考幀之間的差異分析確定的。在進一步的實施例中,一個或多個KPI統計數值(如但不限于PSNR均值、PSNR中值、PSNR最大值、PSNR最小值、PSNR標準偏差、PSNR四分位數等)可以與針對給定幀序列確定的感知質量水平(例如,eMOS)相關聯。此外,雖然諸位發明人已經發現PSNR是有利的KPI,但是其他客觀度量(如但不限于結構相似性(SSIM)指標)可以類似地被利用。
圖3A是展示根據實施例的將KPI目標與感知質量水平目標進行關聯的方法301的流程圖。方法301在涉及提取針對具體的視頻場景的唯一KPI目標的校準階段過程中可以被執行作為圖2中的操作220的一部分,其可以用于控制將幀編碼為任何可擴展的視頻結構。方法301在操作205處以接收原始視頻幀開始。幀被編碼為具有適合用于感知質量控制的編碼的固定幀速率的校準結構。在一個示例性實施例中,校準結構是具有預先確定的且恒定的最大幀速率的單層流。在操作315處,編碼幀的感知質量例如是利用NR eMOS估計器邏輯估計的。基于在操作215處以任何常規方式接收或確定的瞬時比特率預算,在操作320處針對視頻場景選擇感知質量水平目標。例如,利用充足的比特率預算,可以選擇4.5的eMOS目標評分。在瞬時比特率預算較低的情況下,可以在操作320處選擇4.0或者甚至3.5的目標eMOS。在操作330處,與感知質量目標相對應的eMOS質量控制的編碼參數值是通過浮動質量控制的編碼參數并且對跟隨校準結構的幀進行迭代編碼直到實現感知質量目標來確定的。例如,可以用所選的每個QP值迭代對QP進行浮動以減小同來自上一次QP迭代的幀相關聯的eMOS與目標eMOS之間的差異。以此方式,感知質量水平(例如,eMOS)用于優化針對校準結構中的所有幀的編碼參數(例如,QP)。
方法301繼續計算與用感知質量優化編碼參數編碼的重構校準結構相關聯的KPI。在操作340處,用優化的編碼參數(例如,閾值迭代的QP)編碼的一個或多個幀被重構。在操作350處,將重構幀與相應的原始幀進行比較以生成相關聯的KPI。例如,與PSNR值相關聯的感知質量是基于編碼幀與QP值之間的差異生成的,所述差異被確定以使eMOS高達針對校準結構中的幀的eMOS目標。方法301然后通過輸出KPI值而結束,所述KPI值現在與特定的感知質量水平相關聯。
針對感知質量目標的每次變化都可以重復方法301。方法301可以根據需要基本上實時地重復。針對給定的場景,方法301在用于將多個KPI值映射到跨越最小比特率預算至最大比特率預算的一系列感知質量目標的校準階段過程中可以被執行多次。例如,針對給定的場景,40dB的目標PSNR可以被映射至4.5的目標eMOS、30dB的目標PSNR可以被映射至4.0的目標eMOS、而25dB的目標PSNR可以被映射至3.5的目標eMOS以覆蓋一系列的比特率值,這些比特率值由于可變的網絡擁塞可以被遇到。還可以針對接收到的視頻幀檢測到的每個場景變化重復方法301。針對每個場景變化重復方法301可以有利地提高感知質量水平與相關聯的編碼KPI之間的關聯性。因此,利用每個場景變化,一系列的KPI值可以被映射至感知質量水平。還可以周期性地重復方法301以維持感知質量水平與相關聯的KPI值之間的緊密映射。
在實施例中,利用基于與特定的感知質量水平目標相關聯的編碼KPI值確定的編碼參數值對基層的幀和分層預測增強層的幀進行編碼。針對這種實施例,不必針對任何特定的可擴展結構重新計算eMOS估計。圖3B是展示用于基于感知質量水平生成分層編碼流的方法302的流程圖。方法302可以例如作為圖2中的操作230的一部分被執行并且在操作205處以接收原始視頻幀開始。在操作370處,幀被編碼為分層流結構。在實施例中,可以基于在操作215處確定的瞬時比特率預算實時地對在操作370處構造的分層結構進行適配。針對這種實施例,輸入候選幀可以被選擇作為并且被編碼作為獨立的關鍵幀、或者作為獨立的增強層幀、或者被丟棄。在替代性實施例中,所有接收的幀被編碼為預先確定的分層流結構。在操作375處,確定解構幀(Deconstructed Frame)的KPI。在操作380處,在浮動編碼參數的同時迭代編碼過程以基于KPI目標優化那個參數,所述KPI目標在操作360處(圖3A)被確定為與特定的感知質量水平目標(例如,eMOS)相關聯。因為編碼參數是基于針對當前比特率確定的感知質量度量針對每個幀優化的,所以分層編碼流輸出在操作385處針對當前網絡狀況向上擴展至最佳感知質量并且可以響應于網絡擁塞可控地向下擴展以逐漸降低感知質量水平。
圖4A是進一步展示根據方法301的一個實施例的用于確定PSNR目標的全參考PEQV架構的數據流圖。圖4B是進一步展示根據方法302的實施例的基于PSNR生成分層編碼流的數據流圖。如圖4A所示,原始幀n和參考幀n-1被輸入到以“無速率控制”模式操作的編碼器410中。基于感知質量的速率控制回路包括eMOS估計器440,所述eMOS估計器控制確定由編碼器410利用的下一個QP迭代。針對每個QP迭代j,在本地解碼回路321中生成重構幀n。重構幀n和原始幀n被輸入到目標PSNR生成器460中,所述PSNR生成器輸出與eMOS控制的編碼過程相關聯的PSNR值。此PSNR值然后有待用于多層編碼過程的KPI控制。
如圖4B所示,原始幀n和分層參考幀n-k被輸入到編碼器470中,所述編碼器再次在沒有內部速率控制的情況下操作。基于KPI的速率控制回路控制由編碼器470利用的下一個QP迭代。本地解碼回路421針對每個QP迭代k生成PSNR值。QP由此基于從目標PSNR生成器460接收到的上一次PSNR目標針對幀被優化。
圖4C是進一步展示校準非分層編碼流是如何被采用作為分層編碼流的速率控制的基礎的功能框圖。如所示,系統401包括兩個編碼器410和470,第一個編碼器被配置成用于編碼適合于基于感知質量的速率控制的流(即,適合于受eMOS估計器440控制)。在示例性實施例中,校準結構是單層結構,其中,沒有層間預測被用于編碼幀0、1、2、3和4。編碼KPI目標(例如,PSNR目標)是從相應的重構參考幀中生成的。編碼器470利用針對分層編碼幀0、1、2、3、4的目標KPI,例如,其中,分別地,幀0和4是在基層中的關鍵幀、幀2是依賴于幀0的第一時間增強層幀、而幀1和3是依賴于幀0和2的第二時間增強層幀。
另外或替代地,如由周圍的虛線框進一步展示的,編碼KPI目標(例如,PSNR)可以是基于重構的分層參考幀n-k確定的,從而使KPI目標確定以重構的單層參考幀n-1作為基礎。在實施例中,例如,PSNR目標是基于與最高比特率相對應的最高時間層中的幀確定的,所述幀具有等于一個幀的時間參考距離。由于最高時間增強層滿足k等于1的附加約束,所以eMOS估計器可以用于優化被編碼至此層中的幀的QP。一旦最高時間增強層的幀被編碼至最高eMOS水平,就在將到達相關聯的目標PSNR的一個或多個幀上執行不同的分析。針對這種實施例,在不支持非層次校準結構的情況下,可以將一系列KPI目標映射至感知質量水平。
圖5A展示了跨越一系列感知質量的同時廣播結構。圖5B和圖5C展示了在此描述的利用基于感知質量速率控制技術生成的兩個分層結構。可以例如采用圖1中展示的架構利用eMOS控制的編碼過程生成同時廣播結構。每個單層流是在不同的感知質量水平(例如,3.5、4.0和4.5的eMOS)上生成的。針對每個流,可以如上所述確定相關聯的PSNR,并且針對本文的實施例,這些相關聯的PSNR值可以用作針對分層編碼結構的速率控制和適配的目標。圖5B展示了包括一個時間基層和兩個時間增強層(EL 1和EL 2)的一個示例性感知質量導向分層結構。獨立的幀0和4在預先確定的感知質量水平(例如,eMOS4.5)上被編碼至時間基層。獨立的幀1、2和3盡管跨多個層級水平,但例如通過采用與eMOS為4.5的單層流相關聯的目標PSNR值L2也全部被編碼至相同的預先確定的感知質量水平。圖5C展示了具有映射至感知質量水平的可擴展質量(SNR)水平的另一個感知質量導向分層結構。針對這種時間-質量結構,每個相關的增強質量水平被映射為逐漸變高的感知質量。在此示例性實施例中,針對質量基層編碼的所有幀基于與eMOS 3.5相關聯的PSNR L0采用QP。幀質量首先通過重新編碼附加的細化切片被向上擴展以實現與eMOS 4.0相關聯的PSNR L1,并且然后基于PSNR L2通過重新編碼被進一步向上擴展。
圖6A展示了根據實施例的包括基于感知質量水平實時構造的三個不同的擴展流605、610和615的示例性時間-質量結構601。流605、610和615各自與不同的感知質量水平(分別為3.5、4和4.5的eMOS)相關聯。因此,基于之前與流的特定感知質量水平相關聯的KPI對被編碼為每個流的幀進行編碼。例如,獨立的關鍵幀0和4被編碼以使用基于eMOS估計器通過控制QP確定的PSNR會聚在3.5的基層感知質量評分上。質量SNR層被類似地編碼為逐漸更高的感知質量評分。因此,關鍵幀0和4被重新編碼以使用用于導向編碼參數的合適的PSNR值會聚在4和4.5的eMOS處。針對具有時間增強層的流,相關的幀增強時間分辨率可以被編碼為流中的關鍵幀的相應的感知質量評分。
在進一步的實施例中,當比特率預算未能滿足通過以特定感知質量為目標的感知質量速率控制器導出的比特率時,目標感知質量被降低以避免比特率溢出。因此,基于感知質量的速率控制器可以被實時地適配,由此實時地(例如,利用每個輸入幀)適配編碼速率。可以或者通過修改分層結構、和/或丟棄質量擴展流的分段、和/或通過修改相應的KPI目標來進行適配。在實施例中,響應于瞬時編碼比特率預算的變化實時地對感知質量導向的分層結構進行適配。因為結構是由感知質量導向的,所以相比于非感知質量擴展流網絡擁塞的影響可以更加可預測地影響用戶的感知質量水平。
圖6B展示了響應于網絡擁塞的基于示例性感知質量的分層結構適配。在此示例性實施例中,基于初始感知質量的分層結構具有四個幀的時間距離(幀N至N+4)。與每個獨立的幀相關聯的感知質量水平如在圖5B的背景中描述的一樣。在檢測到網絡擁塞時,丟棄幀N+5和N+6。因為幀N+7是依賴于在之前的分層結構中的幀N+6的增強,所以幀N+7被降級至基層關鍵幀并且時間距離因此被減小至與幀N+4相距距離三。
圖7展示了根據實施例的用于對感知質量導向的分層結構進行適配的方法701。方法701在操作205處以接收原始視頻幀開始。在操作710處,如果當前幀n在操作730處被丟棄則通過估計感知質量適應性地生成時間-質量編碼結構。例如,如果幀n是圖6A的示例性時間-質量結構中的幀1或3,則可以估計丟棄以至少維持4.0的感知質量。在操作735處,基于瞬時比特率預算選擇編碼候選幀n’。例如,如果幀n是圖6A的時間-質量結構中的幀1,則幀1可以被丟棄并且幀2被選擇作為編碼候選幀n’以對來自分層流中的結構601進行適配,所述結構具有針對第一較高比特率預算的4.5的感知質量以及針對第二較低比特率的4.0的感知質量。在操作740處在感知質量導向的分層編碼結構之后輸出選擇性編碼的幀以生成具有針對當前網絡擁塞可能的最佳感知質量的擴展比特流。
在替代性實施例中,感知質量擴展結構是固定的并且幀總是利用相同的依賴性被編碼并且不管網絡狀況和當前比特率預算如何被編碼至(多個)相同的感知質量水平上。針對這種實施例,感知質量擴展結構的適配發生在編碼器的下游,其中,基于任何幀或者分層流丟包的瞬時比特率預算和感知質量評分發生幀丟棄。例如,傳送單元或網絡數據分組可以被丟棄以將視頻傳輸可控制地擴展至下一個更低的(或更高的)感知質量處。因為結構根據感知質量擴展,所以隨著分段被丟棄,感知質量被可預測地影響。
在實施例中,針對給定的輸入幀修改KPI目標。KPI目標可以是基于瞬時比特率預算和感知質量評分選擇的,所述感知質量評分將由改變針對當前幀的KPI目標而產生。例如,利用在校準階段過程中針對給定場景映射至PSNR目標的一系列感知質量評分,用于控制幀的編碼速率而采用的PSNR目標可以根據瞬時比特率在感知質量水平(高于或低于之前的質量水平)中被減小或增加至下一增量。替代地,每個輸入幀可以被編碼為多個KPI目標值并且多個產生的分層編碼流之一基本上是基于瞬時比特率預算選擇的。
在進一步實施例中,除了將分層流編碼為主要視頻流之外,次要非分層編碼視頻流也被構造并被傳輸作為用于進一步提高視頻傳輸回彈性的手段。輔助流和主要流可以僅在嚴重網絡擁塞的情況下與由遠程解碼器利用的輔助流同時廣播,例如使得結果是丟失主要流的關鍵幀。主要和次要編碼視頻流兩者可以是利用在單層輔助流的最低感知質量閾值以上的一系列感知質量和最低比特率之上可擴展的主要流導向的感知質量。圖8A展示了根據實施例的可以被實時地、一幀一幀構造的以實現由當前比特率預算準許的最佳感知質量的示例性雙流結構。遵循感知質量導向的時間分層結構對主要流805中的幀進行編碼。例如,主要比特流中的每個基層和增強層幀是用會聚至同一eMOS(例如,4.5)的QP編碼的。使用會聚至最低eMOS(例如,3.5)的QP將包含在主要流中的關鍵幀進一步編碼為獨立的單層次要比特流810。圖8A中所示的感知質量導向的主要和輔助流可以如圖8B中所展示的被實時地適配。
在圖8B中,主要比特流805的分層結構可以響應于網絡擁塞被修改,例如,通過改變時間增強層的數量、和/或增加/降低幀時間/空間/質量層水平、和/或改變用于對基層和任何時間增強層的幀進行編碼所采用的KPI目標。從滿足某個閾值的當前比特率預算開始,從用QP值編碼的幀中構建主要流,這些QP值以與最高感知質量目標(例如,4.5的eMOS)相關聯的KPI作為目標。響應于擁塞監測器檢測使瞬時編碼比特率預算減小低于閾值的較小網絡擁塞,感知質量控制的編碼速率被減小至更低的感知質量目標。與最高質量增強層相關聯的幀然后可以被丟棄并且候選幀被編碼為之前被映射至下一個較低感知質量水平的新的、減小的PSNR目標。例如,關鍵幀可以在基礎質量層之外被迭代地重復編碼以實現與4而非4.5的eMOS相關聯的PSNR目標。針對與4以上(例如,4.5)的eMOS相關聯的最高時間增強層的候選幀也被丟棄、減小針對新感知質量水平的比特率。響應于檢測網絡恢復,通過將候選幀編碼至當前感知質量水平(例如,eMOS 4)來添加最高的時間增強層。針對下一個關鍵幀,最高質量增強層是通過迭代地重復編碼超出基礎質量層之外的幀而添加的以再次實現與4.5的eMOS相關聯的PSNR。然后通過用此相同的目標PSNR對附加的獨立幀進行編碼將最高時間增強層維持在此最高感知質量水平上。
在檢測到進一步減小比特率預算的更嚴重的網絡擁塞時,丟棄主要比特流805并且依賴于次要比特流810以用維持最低感知質量水平(例如,3.5)的速率傳輸編碼的關鍵幀。在進一步的實施例中,輔助流包括代替復制關鍵幀的差錯恢復序列。例如,可以發送針對關鍵幀的單個前向糾錯(例如,XOR)數據分組,而不是重新發送關鍵幀。因此,結構改變可能需要根據當前比特率改變主要流和輔助流中的任一者或兩者。例如,在比特率預算降低的情況下,可以通過將速率控制至更低的感知質量目標而降低主要流比特率并且可以通過從復制關鍵幀傳輸改變為關鍵幀差錯恢復序列傳輸而減小輔助流比特率。
圖9是展示符合在本文其他地方描述的一個或多個實施例的針對感知質量導向的視頻編碼速率適配配置的聯網通信系統901的功能框圖。系統901包括遠離接收(RX)設備903B的發射(TX)設備903A。由于實施例在此方面不受限制,發射設備903A和接收設備903B可以在任何常規網絡之上通信地耦合。在示例性應用中,發射設備903A可以是視頻采集平臺和/或流式傳輸服務器平臺,而接收設備903B是視頻流式傳輸客戶端平臺。在其他應用中,發射設備903A和接收設備903B是各自具有展示的視頻采集和流式傳輸服務器/客戶端能力的視頻會議設備。
在實施例中,設備903A被配置成用于基于感知質量的視頻采集。設備903A包括用于接收經采集的視頻幀的視頻輸入端905。解碼器核910耦合于視頻輸入端905并且遵循特定的編碼規范(例如,H.265等)輸出編碼流。設備903A進一步包括視頻驅動器930A,所述視頻驅動器實現分層邏輯940A和視頻感知質量(PQ)估計器945A。如在本文的其他地方描述的,PQ估計器945A用于估計從編碼器核910輸出的流的感知質量,例如生成針對校準結構或頂部時間增強層的eMOS。在示例性實施例中,PQ估計器945A進一步耦合至用于控制一個或多個編碼參數(例如,QP)的編碼器核910從而實現針對經采集的/存儲的視頻的目標感知質量水平。分層邏輯940A用于將編碼KPI值與由PQ估計器945A確定的各感知視頻質量水平進行關聯。在進一步的實施例中,分層邏輯940A用于控制編碼器核910以便將輸入視頻幀編碼為符合在此描述的一項或多項技術的PQ導向的可擴展結構。設備903A進一步包括應用920A,通過應用920A用戶可以指定目標感知質量水平和/或選擇符合在本文的其他地方描述的一個或多個實施例的修改編碼器核910的操作的感知質量導向的視頻編碼速率控制模式。
在實施例中,設備903A進一步被配置成用于基于感知質量的視頻傳輸。針對這種實施例,設備903A包括網絡容量適配器960A和網絡驅動器970A。容量適配器960A包括遠程側速率適配器(RA)955A和本地側速率適配器965。本地側RA 965從網絡驅動器670A接收例如與傳輸隊列占用975A和/或網絡擁塞監測器980A有關的網絡狀態更新。遠程側RA 955A可以與布置在接收設備903B中的遠程側RA 955B對接,例如通過網絡側信道形成端到端(E2E)的控制回路。在實施例中,來自遠程側RA 955A或本地側RA 965的輸出耦合至分層邏輯940A中,所述分層邏輯進一步被配置成用于控制編碼器核910以響應于基于來自RA 955A、RA 965的輸入確定的網絡擁塞實時地(例如,在一幀一幀的基礎上)適應PQ導向的可擴展視頻比特流的分層結構。編碼視頻流被包封在網絡抽象層(NAL)單元中,這些NAL單元由視頻/網絡優先級映射器950A設置優先級。在分層視頻流具有包括超過當前比特率預算的層的固定結構的某些實施例中,NAL單元還可以由視頻/網絡優先級映射器950A基于RA 955A、RA 965的輸出將其丟棄。NAL單元存儲在網絡緩沖器915A中并且然后如由受連接訪問管理器985A控制的路由信息和無線電參數定義的通過網絡傳輸至設備903B。
在某些實施例中,連接訪問管理器985A是被配置成用于基于本地和/或遠程感知視頻質量評分動態地修改無線電參數的認知無線電。在一個示例中,連接訪問管理器985A可以動態地改變視頻流傳輸消息采取的用于將視頻流遞送至接收設備903B的路徑。在第二示例中,連接訪問管理器985A可以動態地改變由無線電采用的用于發送視頻流的頻帶。在第三示例中,連接訪問管理器985A可以動態地改變由無線電采用的用于發送視頻流的協議。
針對接收設備903B,NAL單元存儲在如網絡緩沖器915B的存儲器中。優先級映射器950B用于提取感知質量導向的視頻比特流并且將幀標識為已接收或未接收。RX感知質量(PQ)估計器945B用于生成接收的視頻流的遠程NR感知質量估計,例如生成基本上如以上在圖1的背景中描述的eMOS估計。在遠程視頻感知質量控制實施例中,RX PQ估計器945B可以輸出遠程編碼速率控制信號(例如,包括或基于如由RX PQ估計器945B確定的QP的編碼參數)。遠程編碼速率控制信號然后可以在遠程側RA 955B與RA 955A之間傳輸。接收的遠程視頻感知質量控制信號然后被輸入到視頻驅動器930A中以改變視頻感知質量目標、相關聯的編碼KPI(例如,PSNR)目標,和/或以適應視頻流的分層結構。視頻的有效載荷數據和擴展信息由視頻解碼器核990和接收側分層邏輯940B接收。解碼器核電路990實現SVC標準順應性解碼器(例如,H.265等)并且用于解碼由抖動緩沖器995輸出的幀。分層邏輯電路940B耦合于解碼器核990和/或抖動緩沖器995,并且用于基于包含在比特流元數據中的分層信息確定針對任何丟失的或延遲的視頻幀或分段的響應。在一個這種實施例中,分層邏輯940B用于協調接收到的主要比特流和次要比特流的解碼以維持最高的可能視頻感知質量水平。針對例如在圖8B中展示的比特流805和810,分層邏輯940B可以組合來自主要比特流和次要比特流的數據、用從次要比特流中解碼的復制關鍵幀替換從主要流中丟失的關鍵幀。替代地,響應于主要流中丟失的/遲到的幀,分層邏輯940B可以通過糾錯電路967處理在次要比特流中接收到的前向糾錯(例如,XOR)分組以糾正在主要比特流中接收到的比特。分層邏輯940B可以進一步發起用于重傳丟失的/遲到的幀的請求,或者可以發起在由發射設備903A利用的視頻流分層結構中的變化。這種請求可以通過任何無線電信道例如在遠程側RA 955B與RA 955A之間傳輸。接收器903B進一步包括擁塞指示器980B和隊列占用監測器975B,它們可以用與擁塞指示器980A和隊列占用監測器975A類似的方式工作以啟動遠程視頻編碼速率調整。從解碼器核990輸出的視頻幀被處理用于顯示,例如在視頻輸出端905處終止。
圖10是根據實施例的示例性系統1000的原理圖。系統1000可以實現在圖10中描繪的各功能塊的全部或子集。例如,在一個實施例中,圖形處理器1015實現如在圖9中所描述的圖形處理系統,所述圖形處理系統包括基于感知質量的適配分層編碼器速率控制器140、例如具有在本文其他地方描述的用于執行在圖1至圖9的背景中描述的這些方法和/或功能中的任一者的一個或多個特征。在一個特定的示例性實施例中,圖形處理器1015包括固定的功能和/或可編程邏輯電路(例如,在至少一個執行單元(EU)或著色器核內)以執行硬件加速分層流編碼器的基于感知質量的適配速率控制、和/或執行多層編碼結構的選擇性適配、和/或執行硬件加速編碼器被控制至其的KPI目標的選擇性適配。盡管系統1000不局限于此上下文,系統1000可以是移動設備。例如,系統1000可以并入膝上計算機、超級膝上計算機、平板機、觸摸板、便攜式計算機、手持式計算機、掌上型計算機、蜂窩電話、智能設備(例如,智能電話、智能平板機或移動電視)、移動互聯網設備(MID)、消息設備、數據通信設備等。系統1000還可以是基礎設施設備。例如,系統1000可以并入大尺寸電視、機頂盒、臺式計算機或其他家用或商用網絡設備中。
在各實現方式中,系統1000包括耦合到HID 1020的平臺1002。平臺1002可以從(多個)個人媒體數據服務設備1030、(多個)個人媒體數據遞送設備1040或其他類似的內容源接收采集的個人媒體數據。包括一個或多個導航特征的導航控制器1050可以用來例如與平臺1002和/或HID 1020交互。以下將更詳細地描述這些組件中的每個組件。
在各實施例中,平臺1002可以包括芯片組1005、處理器1010、存儲器1012、存儲設備1014、圖形處理器1015、應用1016和/或無線電1018的任意組合。芯片組1005可以在處理器1010、存儲器1012、存儲設備1014、圖形處理器1015、應用1016或無線電1018之中提供相互通信。例如,芯片組1005可以包括能夠提供與存儲器1014的相互通信的存儲器適配器(未描繪)。
處理器1010可以被實現為一個或多個復雜指令集計算機(CISC)或精簡指令集計算機(RISC)處理器;x86指令集兼容處理器、多核或任何其他微處理器或中央處理單元(CPU)。在各實現方式中,處理器1010可以是(多個)多核處理器、(多個)多核移動處理器等。
存儲器1012可以被實現為易失性存儲設備,如但不限于隨機存取存儲器(RAM)、動態隨機存儲器(DRAM)或靜態RAM(SRAM)。
存儲器1014可以被實現為非易失性存儲設備,如但不限于磁盤驅動器、光盤驅動器、磁帶驅動器、內部存儲設備、附加存儲設備、閃存、電池應急SDRAM(同步DRAM)和/或可接入網絡的存儲設備。在各實現方式中,存儲器1014可以包括用于當例如包括多個硬盤驅動器時增加對有價值的數字媒體的存儲性能增強型保護的技術。
圖形處理器1015可以對如用于顯示的靜止或視頻媒體數據的圖像執行處理,或者以高度并行的方式執行普通的計算功能。例如,圖形處理器1015可以包括一個或多個GPU或者視覺處理單元(VPU)。可以使用模擬或數字接口來通信地耦合圖形處理器1015與顯示器1020。例如,接口可以是高清晰度多媒體接口、顯示端口、無線HDMI和/或符合無線HD的技術中的任何一個接口。圖形處理器1015可以與中央處理器1010一起集成在單芯片(即,SoC)上作為圖形核或者被提供作為芯片組1005的一部分。在一些實現方式中,圖形處理器1015可以是通信地耦合至芯片組1005的獨立卡。在各示例性實施例中,圖形處理器1015和/或中央處理器1010調用或以其他方式實現例如如在本文其他地方所描述的多層編碼的基于感知質量的適配速率控制。
如在此描述的,基于分層結構的適配和/或用于使針對瞬時比特率預算的感知質量最大化的幀編碼參數預測的多層編碼的基于感知質量的適配速率控制可以在各種硬件架構、元件設計或“IP核”中實現。作為又另一個實施例,在此在圖形處理器的背景下描述的這些方法和功能可以延伸至通用處理器(包括多核處理器)。在進一步的實施例中,這些方法和功能可以在特定用途的消費電子產品設備(如游戲平臺處理器)中實現。
無線電1018可以包括能夠使用各種適當的無線通信技術發射并接收信號的一個或多個無線電。這種技術可以涉及跨一個或多個無線網絡的通信。示例無線網絡包括(但不限于)無線局域網(WLAN)、無線個域網(WPAN)、無線城域網(WMAN)、蜂窩網和衛星網。在跨這類網絡通信時,無線電1018可以根據任意版本的一個或多個可適用標準進行操作。
在各實現方式中,HID 1020可以包括任何電視機類型監測器或顯示器。HID 1020可以包括例如計算機顯示屏、觸摸屏顯示器、視頻監視器、電視機類型的設備和/或電視機。HID 1020可以是數字的和/或模擬的。在各實現方式中,HID 1020可以是全息顯示器。同樣,HID 1020可以是可以接收視覺投影的透明表面。這種投影可以傳達各種形式的信息、圖像和/或物體。例如,這種投影可以是針對移動增強現實(MAR)應用的視覺覆蓋。在一個或多個軟件應用1016的控制下,平臺1002可以在HID 1020上顯示用戶界面1022。
在各實現方式中,平臺1002可以從具有一個或多個導航特征的導航控制器1050中接收控制信號。控制器1050的導航特征可以用來例如與用戶界面1022交互。在實施例中,導航控制器1050可以是定位設備,所述定位設備可以是允許用戶輸入空間(如連續的和多維的)數據到計算機的計算機硬件組件(特別是人機接口設備)。如圖形用戶界面(GUI)和電視機和監視器的許多系統允許用戶使用物理姿勢控制計算機或電視機并向計算機或電視機提供數據。
可以通過指針、光標、聚焦環或在顯示器上顯示的其他視覺指示符的移動在顯示器(例如,HID 1020)上復制控制器1050的導航特征的移動。例如,在軟件應用1016的控制下,位于導航控制器1050上的導航特征可以例如被映射為在用戶界面1022上顯示的虛擬導航特征。在實施例中,控制器1050可以不是獨立組件但可以集成在平臺1002和/或HID1020內。然而,本公開不限于這些元素或此處顯示或描述的內容。
在各實施例中,系統1000可以被實現為無線系統、有線系統或二者的組合。當被實現為無線系統時,系統1000可以包括適合于通過如一個或多個天線、發送器、接收器、收發器、放大器、濾波器、控制邏輯等的無線共享介質進行通信的組件和接口。無線共享介質的示例可以包括無線頻譜部分,如RF頻譜等。當被實現為有線系統時,系統1000可以包括適用于通過有線通信介質(如輸入/輸出(I/O)適配器、利用相應有線通信介質連接I/O適配器的物理連接器、網絡接口卡(NIC)、光盤控制器、視頻控制器、音頻控制器等)進行通信的組件和接口。有線通信介質的示例可以包括導線、電纜、金屬引線、印刷電路板(PCB)、背板、交換光纖、半導體材料、雙絞線、同軸電纜、光纖等。
如上所述,系統1000可以用變化的物理風格或形成因數來體現。圖11展示了可以用其體現系統1100的小形成因數設備1100的實施例。例如,在實施例中,設備1100可以被實現為具有無線能力的移動計算設備。例如,移動計算設備可以指具有處理系統和移動電源(如一個或多個電池)的任何設備。
移動計算設備的示例可以包括個人計算機(PC)、膝上計算機、超級膝上計算機、平板機、觸摸板、便攜式計算機、手持式計算機、掌上型計算機、個人數字助理(PDA)、蜂窩電話、組合式蜂窩電話/PDA、電視、智能設備(例如,智能電話、平板機或智能電視)、移動互聯網設備(MID)、消息設備、數據通信設備等。
移動計算設備的示例還可以包括被配置來由人穿戴的計算機和/或媒體采集/發射設備,如手腕計算機、手指計算機、戒指計算機、眼鏡計算機、皮帶夾計算機、臂帶計算機、鞋計算機、服裝計算機以及其他可穿戴計算機。在各實施例中,例如移動計算設備可以實現為能夠執行計算機應用程序、以及語音通信和/或數據通信的智能電話。舉例來講,盡管一些實施例可以用被實現為智能電話的移動計算設備描述,可以理解的是,其他實施例也可以使用其他無線移動計算設備實現。實施例不局限于本上下文中。
如圖11中所示,設備1100可以包括外殼1102、顯示器1104、輸入/輸出(I/O)設備1106和天線1108。設備1100還可以包括導航特征1112。顯示器1104可以包括適合于移動計算設備的用于顯示信息的任何適當的顯示單元。I/O設備1206可以包括用于將信息輸入移動計算設備中的任何適當的I/O設備。I/O設備1106的示例可以包括字母數字鍵盤、數字小鍵盤、觸摸板、輸入建、按鈕、開關、麥克風、揚聲器、話音識別設備和軟件等。信息還可以借助于麥克風(未示出)被輸入設備1100中并且可以由話音識別設備處理。實施例并不局限于本上下文中。
可以使用硬件元件、軟件元件或兩者的組合實現在此描述的各實施例。硬件元件或模塊的示例包括:處理器、微處理器、電路、電路元件(例如,晶體管、電阻器、電容器、電感器等)、集成電路、專用集成電路(ASIC)、可編程邏輯器件(PLD)、數字信號處理器(DSP)、現場可編程門陣列(FPGA)、邏輯門、寄存器、半導體器件、芯片、微芯片、芯片組等。軟件元件或模塊的示例包括:應用、計算機程序、應用程序、系統程序、機器程序、操作系統軟件、中間件、固件、例程、子例程、函數、方法、過程、軟件接口、應用程序接口(API)、指令集、計算代碼、計算機代碼、代碼段、計算機代碼段、數據字、值、符號、或其任意組合。判定是否是使用硬件元件和/或軟件元件來實現實施例可以根據針對設計選擇所考慮的任意數量的因數而變化,如但不限于:期望的計算速率、功率電平、耐熱性、處理周期預算、輸入數據速率、輸出數據速率、存儲器資源、數據總線速度以及其他設計或性能約束。
至少一個實施例的一個或多個方面可以由存儲在機器可讀存儲介質上的代表性指令實現。這類指令在由機器對其進行執行的過程中可以完全地或至少部分地駐留在主存儲器內和/或在處理器內,存儲指令的主存儲器和處理器部分然后還組成機器可讀存儲介質。可編程邏輯電路可以具有由實現計算機可讀介質的處理器配置的寄存器、狀態機等。這種如所編程的邏輯電路然后可以被理解為已經被物理地轉換成落入在此描述的實施例的范圍內的系統。表示處理器內的各邏輯的指令當由機器讀取時還可以致使機器制造遵循在此描述的架構的邏輯和/或執行在此描述的技術。被稱為元件設計或IP核的這種表示可以存儲在有形的、機器可讀的介質上或被供應至不同的消費者或制造設施以加載到實際上制造邏輯的制造機器或處理器中。
雖然已經參照各實現方式描述了在此陳述的某些特征,并不打算在限制性意義上解釋本說明書。因此,本公開涉及的對本領域技術人員而言明顯的對在此描述的實現方式以及其他實現方式的各種修改被視為是在本公開的精神和范圍內。
以下示例涉及具體的示例性實施例。
在一個或多個第一實施例中,計算機實現的可縮放視頻編碼(SVC)方法包括:接收原始視頻幀,并且使用編碼參數值將所述幀編碼為分層流,所述編碼參數值是基于與分配給所述分層流的每一層的感知質量水平目標相關聯的編碼關鍵性能指標(KPI)目標確定的。所述分層劉然后被存儲在存儲器中。
為了促進所述一個或多個第一實施例,所述方法進一步包括:對所述分層流的所述編碼進行適配以便響應于網絡擁塞通過在降低的KPI目標上丟棄時間增強層或任何剩余時間增強層的編碼幀來改變所述感知質量水平。
為了促進所述一個或多個第一實施例,所述方法進一步包括:對所述分層流的所述編碼進行適配以便響應于網絡擁塞通過改變所述分層結構內的幀時間、空間或質量層水平來改變所述感知質量水平。
為了促進所述一個或多個第一實施例,所述方法進一步包括:針對非分層結構中的幀,通過浮動編碼參數并且對所述幀進行迭代編碼直到實現預先確定的感知質量水平目標來確定與所述預先確定的感知質量水平目標相對應的所述編碼參數值。所述方法進一步包括:根據用所述編碼參數值編碼的數據來重構幀;基于所述重構幀與所述相應的原始幀之間的差異生成與所述預先確定的感知質量水平目標相關聯的所述KPI目標。
為了促進所述一個或多個第一實施例,所述感知質量水平目標包括估計平均意見評分(eMOS),并且所述編碼參數是量化參數(QP)。所述KPI目標是峰值信噪比(PSNR),并且針對與相同的eMOS相關聯的所述分層流的任何層中的編碼幀采用相同的目標PSNR值。
為了促進所述一個或多個第一實施例,所述方法進一步包括:確定當前比特率預算。將所述幀編碼為所述分層流進一步包括:響應于所述當前比特率預算滿足閾值而利用基于與第一感知質量目標相關聯的第一KPI目標所確定的編碼參數值來對基層的幀以及分層預測增強層的幀進行編碼。將所述幀編碼為所述分層流進一步包括:響應于所述當前比特率預算未能滿足所述閾值而利用基于與比所述第一感知質量目標低的第二感知質量目標相關聯的第二KPI目標所確定的編碼參數值來對所述基層的幀以及所述分層預測增強層的幀進行編碼。
為了促進所述一個或多個第一實施例,所述方法進一步包括:針對非分層結構中的幀,通過浮動第一編碼參數并且對所述幀進行迭代編碼直到實現所述第一感知質量目標來確定與所述第一感知質量目標相對應的所述第一編碼參數值。所述方法進一步包括:根據用所述第一編碼參數值編碼的數據來重構幀。
所述方法進一步包括:基于所述重構幀與所述相應的原始幀之間的差異生成與所述第一感知質量目標相關聯的所述第一KPI目標。所述方法進一步包括:針對所述非分層結構中的幀,通過浮動第二編碼參數并且對所述幀進行迭代編碼直到實現第二感知質量目標來確定與所述第二感知質量目標相對應的所述第二編碼參數值。所述方法進一步包括:根據用所述第二編碼參數值編碼的數據來重構幀。所述方法進一步包括:基于所述重構幀與所述相應的原始幀之間的差異生成與所述第二感知質量目標相關聯的所述第二KPI目標。
為了促進以上所述實施例,所述方法進一步包括:利用基于第一KPI目標確定的編碼參數值對所述基層幀進行編碼進一步包括對多個關鍵幀進行迭代編碼同時浮動所述編碼參數值直到實現所述第一KPI目標。利用所述第一編碼參數值對所述增強層幀進行編碼進一步包括:對依賴于所述關鍵幀的一個或多個幀進行迭代編碼同時浮動所述編碼參數值直到實現所述第一KPI目標。
為了促進所述一個或多個第一實施例,所述方法進一步包括:構造包括所述分層流的主要編碼視頻流,并且構造與最低感知質量和最低比特率相關聯的次要編碼視頻流。在進一步的實施例中,將所述幀編碼為所述分層流進一步包括:通過利用基于與最高感知質量目標相關聯的第一KPI目標確定的編碼參數值對第一基層的幀以及第一分層預測增強層的幀進行編碼來將所述幀編碼為第一分層流。在進一步的實施例中,所述方法進一步包括:通過利用基于與較低感知質量目標相關聯的第二KPI目標確定的編碼參數值對第二基層的幀以及第二分層預測增強層的幀進行編碼來將所述幀編碼為第二分層流。所述方法進一步包括:確定當前比特率預算,并且根據與由所述當前比特率預算準許的最佳感知質量相關聯的所述第一或第二分層流來構造所述主要編碼視頻流。
為了促進以上所述實施例,將所述幀編碼為所述分層流進一步包括:通過利用基于與最高感知質量目標相關聯的第一KPI目標確定的編碼參數值對第一基層的幀以及第一分層預測增強層的幀進行編碼來將所述幀編碼為第一分層流。構造所述輔助流進一步包括:重新發送所述第一分層流的關鍵幀。響應于比特率預算減少,所述方法進一步包括:通過利用基于與較低感知質量目標相關聯的第二KPI目標確定的編碼參數值對第二基層的幀以及第二分層預測增強層的幀進行編碼來將所述幀編碼為第二分層流,在這種情況下,構造所述輔助流包括:發送針對所述第二分層流的關鍵幀的差錯恢復序列。
在一個或多個第二實施例中,可縮放視頻編碼器包括:視頻輸入端,所述視頻輸入端用于接收多個原始視頻幀;以及分層邏輯,所述分層邏輯用于將編碼關鍵性能指標(KPI)與目標感知視頻質量水平進行關聯。所述可縮放視頻編碼器進一步包括:編碼器核,所述編碼器核耦合于所述視頻輸入端用于通過使用基于KPI確定的編碼參數值將所述幀編碼為具有所述目標感知質量的分層流。所述可縮放視頻編碼器進一步包括:存儲器,所述存儲器用于存儲所述分層流。
為了促進所述一個或多個第二實施例,所述可縮放視頻編碼器進一步包括感知質量估計器,所述感知質量估計器用于通過針對校準結構或針對所述分層流的頂部時間增強層生成估計平均意見評分(eMOS)來估計從所述編碼器核輸出的流的感知質量。
為了促進所述一個或多個第二實施例,所述分層邏輯用于控制所述編碼器核以便響應于網絡擁塞通過在降低的KPI目標上丟棄時間增強層或任何剩余時間增強層的編碼幀來改變所述分層流的視頻感知質量水平。
在一個或多個第三實施例中,所述可擴展視頻解碼器包括:緩沖器,所述緩沖器用于接收具有感知質量導向的時間分層結構的比特流;以及解碼器核,所述解碼器核耦合于所述緩沖器用于將所述比特流解碼成視頻幀。所述可擴展視頻解碼器進一步包括:分層邏輯電路,所述分層邏輯電路耦合于所述解碼器核或緩沖器用于基于包含在所述比特流中的分層信息確定對丟失的或延遲的視頻幀的響應。
為了促進所述一個或多個第三實施例,所述可擴展視頻解碼器包括:感知質量估計器,所述感知質量估計器耦合于所述緩沖器或所述解碼器核用于生成所述視頻幀的無參考感知質量估計并且用于輸出遠程編碼速率控制信號或編碼參數。
為了促進所述一個或多個第三實施例,所述緩沖器用于接收具有感知質量導向的時間分層結構的主要比特流。所述緩沖器還用于接收具有低于所述主要比特流的較低感知質量相關聯的單層結構的次要比特流。所述分層邏輯電路用于使用從所述輔助流中解碼的復制關鍵幀替換從所述主要流中丟失的關鍵幀。
為了促進所述一個或多個第三實施例,所述分層邏輯電路進一步用于通過糾錯電路處理所述次要比特流中的前向糾錯分組,并且用于糾正在所述主要流中接收到的比特。為了促進所述一個或多個第二實施例,所述分層邏輯電路進一步用于發起對重傳丟失的或遲到的視頻幀的請求。
在一個或多個第四實施例中,聯網通信系統包括發射設備和接收設備。所述發射設備包括可縮放視頻編碼器和遠程側速率適配器。所述可縮放視頻編碼器進一步包括:視頻輸入端,所述視頻輸入端用于接收多個視頻幀。所述可縮放視頻編碼器進一步包括:分層邏輯電路,所述分層邏輯電路用于將編碼關鍵性能指標(KPI)與目標感知視頻質量水平進行關聯。所述可縮放視頻編碼器進一步包括:編碼器核,所述編碼器核耦合于所述視頻輸入端用于通過使用基于所述KPI確定的編碼參數值將所述幀編碼為具有所述目標感知質量的分層流。所述遠程側速率適配器耦合于所述分層邏輯電路并且用于響應于接收遠程編碼速率控制信號引起所述目標感知質量或相關聯的KPI的變化。所述接收設備包括:緩沖器,所述緩沖器用于接收所述分層流;以及解碼器核,所述解碼器核耦合于所述緩沖器用于將所述分層流解碼成視頻幀。所述接收設備進一步包括:感知質量估計器,所述感知質量估計器耦合于所述緩沖器或所述解碼器核用于生成所述視頻幀的無參考感知質量估計并且用于將所述遠程編碼速率控制信號輸出至所述遠程側速率適配器。
為了促進所述一個或多個第四實施例,所述發射設備進一步包括:認知無線電,所述認知無線電被配置成用于基于所述目標感知質量或所述無參考感知質量估計來動態地修改無線電參數。
為了促進所述一個或多個第四實施例,所述接收設備進一步包括:分層邏輯電路,所述分層邏輯電路耦合于所述解碼器核或緩沖器用于基于包含在所述比特流中的分層信息確定對丟失的或延遲的視頻幀的響應。在一個或多個第五實施例中,一種或多種其上存儲有指令的計算機可讀介質,所述指令當由計算機處理器執行時使所述處理器執行所述一個或多個第一實施例中的任何一個實施例。
在一個或多個第六實施例中,可縮放視頻編碼器包括:接收裝置,所述接收裝置用于接收原始視頻幀;以及感知質量映射裝置,所述感知質量映射裝置用于將編碼關鍵性能指標(KPI)與目標感知視頻質量水平進行關聯。所述可縮放視頻編碼器進一步包括:編碼裝置,所述編碼裝置耦合于所述接收裝置用于通過使用基于KPI確定的編碼參數值將所述幀編碼為具有所述目標感知質量的分層流。所述可縮放視頻編碼器進一步包括:存儲裝置,所述存儲裝置用于存儲所述分層流。
在一個或多個第七實施例中,可擴展視頻解碼器包括:存儲裝置,所述存儲裝置用于接收具有感知質量導向的時間分層結構的比特流;以及解碼裝置,所述解碼裝置耦合于所述存儲裝置用于將所述比特流解碼成視頻幀。所述可擴展視頻解碼器進一步包括:控制裝置,所述控制裝置耦合于所述解碼器核或緩沖器用于基于包含在所述比特流中的分層信息確定對丟失的或延遲的視頻幀的響應。
將認識到,這些實施例不局限于如此描述的這些示例性實施例,而是可以在不背離所附權利要求書的范圍的情況下通過修改和變更來實踐。例如,以上實施例可以包括特征的特定組合。然而,以上實施例不局限于這個方面,并且在各實現方式中,以上實施例可以包括僅采取這類特征的子集、采取這類特征的不同順序、采取這類特征的不同組合和/或采取除了明確例舉的那些特征之外的附加特征。因此,范圍連同被授予權利的這些權利要求書的等效物的全部范圍應參照所附權利要求書來確定。