本發明涉及視頻信息的加密和解密領域。更具體而言,本發明針對用于利用部分幀加密來生成壓縮數字視頻的受保護流的方法和系統。
背景技術:
現有的數字視頻壓縮技術是依賴于將未壓縮的視頻數據單元變換(即,“編碼”)為編碼形式的各種技術的復雜過程。這種編碼允許在表示原始未壓縮視頻數據的內容中使用較少的位。所得到的編碼數據能夠利用反向處理(即,“解碼”)進行變換,從而產生在視覺上與原始數據相似或完全相同的數據的數字視頻單元。數字視頻壓縮的現代技術可以實現非常高水平的壓縮。
運動圖像專家組(MPEG)和國際標準組織(ISO)已經產生了指定用于視頻編碼的視頻壓縮和解壓縮算法的各種國際標準。這些標準包括MPEG-1、MPEG-2、MPEG-4、H.261、H.264和更新的高效視頻編碼(HEVC)標準,相對于其前身,HEVC標準具有顯著改進的壓縮效率。具體而言,與先前H.264標準相比,HEVC能夠以相同的主觀質量實現2x壓縮比。為了實現這些壓縮優化,HEVC標準已經引入了為在多核處理器體系架構上的視頻內容的并行處理而專門設計的幾個新工具。具體而言,市場上可用的許多智能手機和平板電腦體系架構現在使用多核處理器并且因此能夠利用其多核體系架構回放HEVC內容。此外,隨著經網絡的視頻流量的增長,HEVC標準提供了減輕用于分發高質量內容的一些帶寬要求的某些工具。
保護數字內容的分發免于盜版和其它類型的非法分發是內容提供商的另一個關注點。術語數字版權管理(DRM)被用來描述用于控制對數字內容的訪問和/或復制的訪問控制技術。DRM系統通常涉及使用密碼信息來控制對一條內容的訪問或保護一條內容。內容保護通常是利用諸如(但不限于)加密內容的一個或多個加密密鑰的密碼信息來實現的。
當前存在可被用來保護數據的各種類型的加密方案。在數字世界中,加密常常是通過利用稱為“密鑰”的某種長度的位的集合對數據單元執行可預測的變換來實現的。這產生在不知道用于執行變換的密鑰的情況下不能被“讀取”的另一個數據單元。加密過程只有在加密密鑰或其對應物(例如,“公共”密鑰)可用于將加密數據變換或“解密”回原始形式的情況下是容易可逆的。視頻數據常常利用符合例如數據加密標準(DES)或高級加密標準(AES)的對稱塊密碼來加密。用來加密數字內容的特定技術可能仍然消耗進一步的處理資源,對于跨網絡的內容的編碼和分布,這些處理資源需要被考慮在內。
技術實現要素:
公開了根據本發明實施例的用于部分幀加密的系統和方法。在一個實施例中,該方法接收包括若干幀的視頻位流,其中每個幀在該幀內包括若干獨立編碼的壓縮單元,加密若干幀中的若干壓縮單元中每一個壓縮單元的一部分,并且生成包括其中包括壓縮單元的加密部分的若干獨立編碼的壓縮單元的輸出位流。
在本發明的另一實施例中,壓縮單元是特定視頻幀的可獨立解碼部分,使得其不依賴于該特定幀內的另一壓縮單元以便被解碼。
在本發明的又一個實施例中,該方法還解析元數據頭,以識別壓縮單元在視頻幀內的位置,并且基于壓縮單元的位置加密視頻位流的一部分。
在本發明的另一實施例中,該方法通過基于與視頻位流相關聯的頭部內的信息確定壓縮單元被啟用來加密多個壓縮單元中每一個壓縮單元的所述部分。
在本發明的又一實施例中,該方法還包括加密視頻幀中的每個壓縮單元的一部分。
在本發明的又一實施例中,所述部分選自包括以下項的組:i)壓縮單元的前N個字節,ii)壓縮單元的最后N個字節,iii)壓縮單元內中間部分的N個字節,以及iv)壓縮單元內的N字節的模式。
在本發明的又一實施例中,壓縮單元是高效視頻編碼(HEVC)標準內的方格并且視頻位流是基于HEVC標準編碼的。
在本發明的又一實施例中,更進一步,該方法還包括解析HEVC視頻位流的圖片參數集(PPS),以識別視頻位流內的方格的結構,并且基于該結構加密方格的各部分。
在本發明的另一實施例中,再次,該方法還利用公共加密格式(CENC)來加密若干壓縮單元中每一個壓縮單元的所述部分,以加密這些部分。
本發明的又一實施例包括一種內容編碼器,其包括:被配置為與存儲器通信的處理器,其中存儲器包含編碼器應用,其中編碼器應用指示處理器:接收包括若干幀的視頻位流,其中每個幀在該幀內包括若干獨立編碼的壓縮單元,加密若干幀中的若干壓縮單元中每一個的一部分,并且生成包括其中包括壓縮單元的加密部分的若干獨立編碼的壓縮單元的輸出位流。
在本發明的另一實施例中,壓縮單元是特定視頻幀的可獨立解碼部分,使得其不依賴于該特定幀內的另一壓縮單元以便被解碼。
在本發明的又一個實施例中,編碼器應用還指示處理器解析元數據頭,以識別壓縮單元在視頻幀內的位置,并且基于壓縮單元的位置加密視頻位流的一部分。
在本發明的又一實施例中,加密若干壓縮單元中每一個壓縮單元的部分包括基于與視頻位流相關聯的頭部內的信息來確定壓縮單元被啟用。
在又一個實施例中,再次,編碼器應用還指示處理器加密視頻幀中每個壓縮單元的一部分。
在本發明的另一個實施例中,再次,所述部分選自包括以下項的組:i)壓縮單元的前N個字節,ii)壓縮單元的最后N個字節,iii)壓縮單元內中間部分的N個字節,以及iv)壓縮單元內的N字節的模式。
在本發明的另一實施例中,壓縮單元是高效視頻編碼(HEVC)標準內的方格并且視頻位流是基于HEVC標準編碼的。
在本發明的又一實施例中,再次,編碼器應用還指示處理器解析HEVC視頻位流的圖片參數集(PPS),以識別視頻位流內的方格的結構,并且基于該結構加密方格的各部分。
在本發明的又一個實施例中,再次,加密多個壓縮單元中每一個壓縮單元的部分包括利用公共加密格式(CENC)來加密這些部分。
在本發明的另一實施例中,一種內容解碼器包括:被配置為與存儲器通信的處理器,其中存儲器包含解碼器應用,其中解碼器應用指示處理器接收包括若干幀的視頻位流,其中每一幀在該幀內包括若干獨立編碼的壓縮單元,解密若干幀中的若干壓縮單元中每一個壓縮單元的一部分,并且生成用于回放的輸出解碼視頻。
在本發明的又一實施例中,壓縮單元是特定視頻幀的可獨立解碼部分,使得其不依賴于該特定幀內的另一壓縮單元以便被解碼。
在本發明的又一實施例中,再次,解碼器應用還指示處理器解析元數據頭,以識別壓縮單元在視頻幀內的位置,并且基于壓縮單元的位置來解密視頻位流的一部分。
在本發明的又一個實施例中,再次,解密若干壓縮單元中每一個壓縮單元的部分包括基于與視頻位流相關聯的頭部內的信息確定壓縮單元被啟用。
在本發明的另一個進一步的實施例中,解碼器應用還指示處理器解密視頻幀中的每個壓縮單元的一部分。
在本發明的又一個實施例中,再次,所述部分選自包括以下項的組:i)壓縮單元的前N個字節,ii)壓縮單元的最后N個字節,iii)壓縮單元內中間部分的N個字節,以及iv)壓縮單元內的N字節的模式。
在本發明的另一實施例中,壓縮單元是高效視頻編碼(HEVC)標準內的方格并且視頻位流是基于HEVC標準解碼的。
在本發明的另一實施例中,解碼器應用還指示處理器解析HEVC視頻位流的圖片參數集(PPS),以識別視頻位流內的方格的結構,并且基于該結構解密方格的各部分。
在本發明的又一實施例中,解密多個壓縮單元中每一個壓縮單元的部分包括利用公共加密格式(CENC)來解密這些部分。
附圖說明
圖1是根據本發明實施例的視頻編碼和輸送系統的系統圖。
圖2A概念性地示出了根據本發明實施例的、被配置為生成部分加密的內容的內容編碼器。
圖2B概念性地示出了根據本發明實施例的、被配置為管理和分發部分加密的內容的內容服務器。
圖2C概念性地示出了根據本發明實施例的、被配置為接收和回放部分加密的內容的回放設備。
圖3示出了根據本發明實施例的用于部分加密內容的過程。
圖4示出了根據本發明實施例的用于部分加密內容的過程。
圖5示出了根據本發明實施例的用于解碼和回放部分加密的內容的過程。
圖6示出了根據本發明實施例的視頻幀內的方格的例子。
圖7示出了根據本發明實施例的、用于HEVC視頻中的方格的語法結構的例子。
具體實施方式
如上所述,不同的技術可被用來加密內容,并且除了與用來壓縮或編碼視頻內容的壓縮技術(例如,H.264或HEVC)相關聯的處理成本之外,每種技術還會消耗不同量的處理資源。因而,本發明的許多實施例能夠通過僅加密幀的部分而不是整個幀而在生成具有加密幀的受保護壓縮視頻序列時實現效率。這些技術一般可以被稱為“部分幀加密”,因為它們僅加密幀的部分。視頻幀內被加密的一個或多個部分可以通過開始位置和長度在幀內指定。通常,這種信息可以在與幀相關聯的頭部內提供并且被解碼器用來定位幀的加密部分以用于解密。
在諸如H.264/MPEG-4AVC(高級視頻編碼)的許多視頻壓縮格式中,在幀內和跨多個幀存在依賴性(由于壓縮算法)。由于依賴性,當被加密的部分不能被解密并且因此不能被正確回放時,該幀內或其它幀中依賴于該加密部分的其它部分也不能被回放。因此,在AVC編碼的位流中,加密幀或單元序列的開始x個字節常常足以防止幀或其它單元的許多其它部分的解碼。
許多實施例可以利用用于加密的ISO/IEC 23001-7:2012公共加密方案(CENC)標準,這是指定可以由一個或多個數字版權和密鑰管理系統(DRM系統)使用的標準加密和密鑰映射方法的行業加密標準,以使得能夠利用不同的DRM系統對相同文件進行解密。該方案允許加密幀的多個不連續部分。
諸如高效視頻編碼(HEVC)的一些視頻壓縮格式允許幀的各部分被獨立地編碼和解碼,而不參考或依賴于其它部分中的信息,這使得能夠同時并行處理視頻幀的不同部分。被設計為啟用并行處理的一個此類特征是HEVC中的“tile(方格)”。具體而言,通過將圖片分成矩形區域(方格),其中每個方格由多個編碼樹單元(CTU)組成,方格可被用于由不同處理器同時編碼和解碼幀的各部分。
方格可以包含在單個NAL(網絡抽象層)單元或片段內。幀的類似的可獨立解碼部分可以跨不同的編碼格式被稱為壓縮單元(即,HEVC中的方格)。壓縮單元在解碼位流時啟用并行性,因為它們可以被彼此獨立地處理。在啟用了方格的HEVC編碼流中,如果僅僅視頻NAL單元或幀的前x個字節被加密,則其它部分(方格)可以在不必解密加密的(一個或多個)部分的情況下是完全可解碼的,因為它們獨立于加密的(一個或多個)部分。
因此,在許多實施例中,可以通過加密幀內的多個方格的至少一部分來提高具有方格(或其它壓縮單元)的編碼位流的安全性,以便使更多的幀在不解密加密部分的情況下不可恢復。在若干實施例中,編碼器和/或編碼過程可被設計為對位流的至少一部分進行解碼,以確定方格位于何處并加密方格的部分。編碼器可以獲取關于方格的結構和/或位置的信息,以便加密多個方格內的信息并且保護更多的位流在不被解密的情況下不能被解碼。用于獲取關于方格(或其它可獨立解碼的單元)的這種信息的方法可以包括解析NAL單元頭部,以確定一個或多個方格的開始位置。下面進一步討論根據本發明實施例的用于壓縮單元的部分幀加密的系統和方法。
用于利用部分幀加密來部分編碼和回放視頻的系統體系架構
如上所述,許多新的壓縮標準提供了允許在多核體系架構上對視頻內容進行并行處理(即,編碼和解碼)的新工具。這些工具包括,例如,在HEVC標準中“方格”的使用,以及可用來將視頻內容的幀分割成單獨的可解碼單元的其它類型的類似的可獨立解碼的壓縮單元。如將貫穿本申請所描述的,壓縮單元(例如,HEVC中的方格)一般可以指,對于給定的編碼標準,單個視頻幀的經分割和/或可獨立解碼的部分。此外,“方格”是已經在HEVC標準中引入的一種類型的壓縮單元。雖然下面的許多例子描述了基于根據HEVC標準壓縮的視頻的方格的部分幀加密,但是,根據本發明的實施例,部分幀加密可被用來加密已經根據適于具體應用的需求的任何其它標準壓縮的視頻,所述任何其它標準使用類似類型的壓縮單元分割視頻幀。
此外,為了保護已經利用可獨立解碼的壓縮單元壓縮的數字內容,可以使用對視頻幀內的壓縮單元(即,方格)的一個或多個部分應用部分幀加密的某些加密技術。具體而言,在已被設計為允許對視頻幀內的壓縮單元進行獨立解碼的較新標準(例如,HEVC)中,基于其它部分將具有需要對加密幀進行正確解密的幀間依賴性的壓縮標準設計,僅加密整個視頻幀的一部分(即,視頻圖片)可能不再足夠。如上所述,在這些較舊的壓縮標準中,由于單個視頻幀的不同部分之間的依賴性,當加密的部分不能被解密并且因此不能被正確回放時,該幀內或其它幀中依賴于該加密部分的其它部分也不能被回放。因此,在許多實施例中,部分幀加密可以應用于視頻幀內的一個或多個壓縮單元的部分。根據本發明實施例的用于利用部分幀加密來編碼視頻內容的系統在圖1中示出。
系統100包括被配置為將源媒體編碼成編碼視頻的內容編碼器102。在若干實施例中,通過在視頻的每一幀內生成例如允許幀的部分的獨立編碼/解碼而無需參照視頻幀的其它部分的壓縮單元(例如,方格),內容編碼器可以利用允許內容的并行處理的壓縮標準(例如,HEVC標準)來編碼內容。具體而言,在若干實施例中,內容編碼器可以利用HEVC標準來編碼內容,以編碼視頻內容的幀。HEVC標準還可以為視頻的每一幀生成一個或多個可獨立解碼的方格。
除了基于壓縮標準(例如,HEVC)編碼視頻幀之外,在許多實施例中,內容編碼器106還可以加密視頻內容的部分,以保護內容免受非法分發。為了減少與加密視頻內容相關聯的開銷成本,在許多實施例中,內容編碼器106利用部分幀加密來編碼視頻內容,借此視頻幀內的一個或多個壓縮單元(即,方格)的僅一部分被加密(而不是加密視頻內容的整個幀)。在一些實施例中,內容編碼器加密視頻幀內的每個方格的起始x個字節。其它實施例可以加密方格的不同部分,包括位于位流內某處的x個字節、結尾的x個字節或者適于特定應用的需求的方格內的字節的任何其它組合。在某些實施例中,內容編碼器可以加密幀中的每個方格的相同部分。在其它實施例中,內容編碼器可以加密不同方格的不同部分。在若干實施例中,內容編碼器可以加密視頻幀內的僅某些方格(例如,少于所有方格)的部分。如可以容易地認識到的,包含加密視頻的容器文件可以包括單獨的DRM軌道,其包含關于幀內的方格的加密部分的位置的信息和/或用來加密全部或每個加密部分的密碼信息。
在一些實施例中,內容編碼器106將內容存儲在Matroska(MKV)容器文件中。Matroska容器是由位于法國Aussonne的Matroska非營利組織作為開放標準項目開發的媒體容器。Matroska容器基于可擴展二進制元語言(Extensible Binary Meta Language,EBML),它是可擴展標記語言(XML)的二進制衍生物。Matroska容器的解碼被許多消費電子(CE)設備支持。在其它實施例中,可以利用適于具體應用的需求的各種容器文件格式中的任何一種,所述容器文件格式包括(但不限于)由運動圖像專家組指定為MPEG-4部分14的MP4容器文件格式。
在一些實施例中,在內容編碼器106已經壓縮和/或加密視頻序列之后,內容編碼器106將編碼視頻上傳到內容服務器102。
在許多實施例中,內容服務器102便于源媒體向一個或多個回放設備108-114的分發。根據本發明若干實施例的內容服務器102可以負責存儲受保護內容以分發到回放設備。在許多實施例中,內容服務器接收并處理來自尋求下載編碼視頻的各種回放設備108-114的下載請求。在一些實施例中,設備可以請求(i)下載整個文件,或(ii)接收用于以漸進(progressive)或自適應(adaptive)流傳輸模式回放的流傳輸視頻。當分發服務器從回放設備接收到下載請求時,它可以向回放設備提供編碼視頻用于存儲和/或回放。
下載的視頻文件可以包括包含描述視頻幀內的壓縮單元(例如,HEVC編碼視頻中的方格)的結構的數據的一個或多個頭部。頭部可以包括指向一個或多個方格的開始位置的指針。在一些實施例中,編碼的HEVC視頻序列內的方格的位置可以在提供關于一個或多個視頻幀內的方格結構的信息的圖片參數結構(PPS)中指定。在一些實施例中,方格在幀內的某些位置可以是固定的,而在其它實施例中,方格可以對于不同的視頻幀位于不同的位置。回放設備上的解碼器可以使用這個信息來確定需要被解密以便回放視頻文件的幀的部分。
在一些實施例中,內容服務器102從各種回放設備接收流請求,并且隨后將編碼視頻流傳輸到回放設備,用于漸進式回放和/或作為自適應位速率流傳輸系統的一部分。在若干實施例中,各種回放設備可以使用HTTP或另一種適當的無狀態協議來經由諸如互聯網的網絡104請求流。在若干實施例中,各種回放設備可以使用RTSP,借此分發服務器記錄每個回放設備的狀態并且基于從回放設備接收的指令和描述回放設備的狀態的所存儲數據來確定要流傳輸的視頻。
在若干實施例中,DRM服務器116(數字版權管理)便于對源媒體的授權和訪問,包括管理加密/解密源媒體所需的密鑰。
根據本發明某些實施例的DRM服務器116可以負責存儲用于向回放設備分發(例如,流傳輸和/或下載)的內容的受保護的流和/或文件。DRM服務器還可以存儲用來保護內容的公共密碼信息。在若干實施例中,公共密碼信息是利用與公共密碼信息相關聯的標識符和一條內容來識別的。
在所示實施例中,回放設備包括個人計算機108-110和移動電話112-114。在其它實施例中,回放設備可以包括消費者電子設備,諸如DVD播放器、藍光播放器、電視,機頂盒、視頻游戲控制臺、平板電腦以及能夠經由HTTP連接到服務器并回放編碼視頻的其它設備。
在所示實施例中,內容編碼器、內容服務器和DRM服務器是被配置為在服務器計算機硬件上執行的服務器應用。在其它實施例中,內容編碼器、內容服務器和DRM服務器可以是包括處理器并具有足夠資源來執行源媒體的加密、分發和數字版權管理的任何處理設備,其中源媒體包括(但不限于)視頻、音頻和/或字幕。雖然在圖1中示出了具體的體系架構,但是,根據本發明的實施例,可以使用適于具體應用的需求的啟用回放設備以請求具有部分幀加密的編碼視頻的各種體系架構中的任何一種。
根據本發明實施例的內容編碼器202的基本體系架構在圖2A中示出。內容編碼器202包括與非易失性存儲器208、易失性存儲器206和網絡接口214通信的處理器204。在所示實施例中,非易失性存儲器包括配置處理器以編碼內容212的內容編碼器應用210。在若干實施例中,內容編碼器應用210利用部分幀加密來加密內容,使得僅視頻幀內的一個或多個壓縮單元(例如,方格)的部分而不是整個幀被加密,以減少與壓縮視頻的加密相關聯的開銷。
在若干實施例中,網絡接口214可以與處理器204、易失性存儲器206和/或非易失性存儲器208通信。雖然在圖2A中示出了具體的內容編碼器體系架構,但是,根據本發明的實施例,可以使用其中包括內容編碼器應用位于盤或某種其它形式的儲存器上并在運行時被加載到易失性存儲器中的體系架構在內的各種體系架構中任何一種來實現內容編碼器。
根據本發明實施例的內容服務器222的基本體系架構在圖2B中示出。內容服務器222包括與非易失性存儲器228、易失性存儲器226和網絡接口234通信的處理器224。在所示實施例中,非易失性存儲器包括配置處理器以分發內容232的內容分發應用230。在若干實施例中,網絡接口234可以與處理器224、易失性存儲器226和/或非易失性存儲器228通信。雖然在圖2B中示出了具體的內容服務器體系架構,但是,根據本發明的實施例,可以使用包括其中內容分發應用位于盤或某種其它形式的儲存器上并在運行時被加載到易失性存儲器中的體系架構在內的各種體系架構中任何一種來實現內容服務器。
根據本發明實施例的回放設備的基本體系架構在圖2C中示出。回放設備252包括與非易失性存儲器258、易失性存儲器256和網絡接口240通信的處理器254。在所示實施例中,非易失性存儲器包括配置處理器以解碼內容262的解碼器應用260。在一些實施例中,解碼器應用260使用在視頻容器文件和/或視頻流內提供的信息來識別視頻幀內的壓縮單元的位置,并且僅解密壓縮單元的某些部分,以便解碼視頻。
在若干實施例中,網絡接口264可以與處理器254、易失性存儲器256和/或非易失性存儲器258通信。雖然在圖2C中示出了具體的回放設備體系架構,但是,根據本發明的實施例,可以使用包括其中解碼器應用位于盤或某種其它形式的儲存器上并在運行時被加載到易失性存儲器中的體系架構在內的各種體系架構中任何一種來實現回放設備。
用于部分幀加密的系統和方法
如上所述,一些視頻壓縮格式(例如,HEVC)允許幀的部分(例如,壓縮單元或方格)被獨立地編碼和解碼,而不參考或依賴于該幀(或其它幀)的其它部分中的信息。幀的這些可獨立解碼的部分可以跨不同的編碼格式被稱為壓縮單元。因此,在利用獨立的壓縮單元對流進行加密期間,如果僅僅幀的前x個字節被加密,則其它部分(壓縮單元或方格)可以在不必解密壓縮單元的加密部分的情況下是完全可解碼的,這是因為它們獨立于加密的壓縮單元。因此,具有方格(或其它壓縮單元)的編碼位流的安全性可以通過加密幀內的多個方格的至少一部分以使幀的更多部分在不解密加密部分的情況下不可恢復來提高。根據本發明實施例的用于視頻位流的壓縮單元的部分幀加密的過程在圖3中示出。
該過程(在302)接收視頻數據。在一些實施例中,該過程可以從一個或多個內容分發器下載視頻數據。在其它實施例中,該過程可以在視頻回放期間流傳輸視頻數據。
該過程(在304)確定多個壓縮單元在視頻數據內的位置。位置可以基于由與視頻幀相關聯的一個或多個頭部提供的信息來確定。在一些實施例中,頭部可以提供關于幀內的每個壓縮單元的開始位置的信息。在一些實施例中,每個壓縮單元的位置在每個視頻幀內可以是固定的并且因此可以不需要由頭部來識別。例如,編碼器可以利用關于視頻序列的結構的信息預編程。
該過程(在306)確定要加密的視頻幀內的每個壓縮單元的一部分。在一些實施例中,該過程確定每個壓縮單元的固定x字節應當被加密。在若干實施例中,該過程基于壓縮單元的特點來確定不同壓縮單元的不同部分。在其它實施例中,該過程可以編碼視頻幀的一個或多個壓縮單元中的中間或最后x個字節。在某些實施例中,該過程可以不加密視頻的某些幀,而僅加密其它視頻幀的部分。如可以容易地認識到的,被加密的特定幀的具體部分以及加密的方式通常取決于應用的需求。
該過程(在308)加密壓縮單元的部分。在一些實施例中,該過程利用標準DES和/或AES密碼來加密這些部分。其它實施例可以使用適于具體應用的需求的其它加密機制。
該過程(在310)生成包含具有已被加密的部分的壓縮單元的輸出位流。然后,該過程結束。
雖然在圖3中描述了用于加密壓縮單元的部分的具體過程,但是,根據本發明的實施例,可以使用適于具體應用的需求的各種過程中的任何一種來加密壓縮單元的部分。
HEVC標準的概述
如上所述,HEVC視頻壓縮標準包括被設計為用于利用支持并行處理的多核體系架構來回放視頻內容的幾個新工具。除了切片結構之外,這些工具還包括波前并行處理(WPP)和方格。當使用WPP和/或方格時,對應于一個圖片的視頻位流可被封包為可獨立解碼的位流子集。具體而言,HEVC包括將視頻幀分割為某些尺寸的矩形區域的可獨立解碼的方格。根據本發明實施例的視頻幀內方格的例子在圖6中示出。具體而言,圖6是示出在水平和垂直維度中將幀均勻地分割為九個方格——從位于左上角的方格1到位于右下角的方格9——的圖。每個方格包括編碼樹單元。
方格相關的參數可以在HEVC中的圖片參數集(PPS)中被發信號通知。在視頻序列中,可以允許不同的圖片使用不同的PPS。方格參數可以在相同的視頻序列中從圖片到圖片改變。在大多數視頻應用中,方格的數目和方格的位置有可能在視頻序列(例如,一系列圖片)中保持相同,但是,可能出現這樣的情況,其中不僅可以允許方格的配置在相同的視頻序列中從圖片到圖片改變,而且可以允許方格的分組從圖片到圖片改變。
圖7示出了HEVC視頻中的圖片參數集(PPS)中用于方格的語法結構的例子。如果tiles_enabled_flag被開啟,則可以發信號通知每個維度中方格的數量。如果方格是均勻尺寸的(例如,如果uniform_spacing_flag是1),則沒有附加信息可以被發信號通知。方格的寬度和高度可以被發信號通知。例如,如圖7中所示,num_tile_columns_minus1和num_tile_rows_minus1可以被設置為2,并且uniform_spacing_flag可以被設置為1。
編碼器可以通過由編碼器發信號通知具有新的方格分區參數的新PPS來從一個幀到另一個幀改變方格如何被分割。在許多實施例中,方格不需要彼此相比保持相等的尺寸,或者與較早情況下的相同方格相比具有相同的尺寸。具體而言,編碼器可以發信號通知具有新的方格分區參數的新PPS,所述新的方格分區參數將應用于一個或多個幀的新集合。
HEVC中的部分幀加密
如上所述,HEVC標準引入了支持高級并行處理的某些工具。具體而言,HEVC包括方格,其允許將幀切分成矩形區域,然后可將其獨立地編碼和解碼。幀可以被均勻地或非均勻地切分成方格。每個方格的入口點可以在切片頭部中指定。為了允許利用HEVC標準部分加密視頻文件,本發明的許多實施例可以部分地加密多個方格,以便加密視頻內容。根據本發明實施例的用于HEVC方格的部分加密的過程在圖4中示出。
該過程(在402)確定方格是否被啟用。在許多實施例中,當方格被啟用時,位流可以包含指示每個圖片分區的開始位置的入口點偏移,這是讓每個核心立即訪問該分區所必需的。
該過程(在404)確定幀和/或位流內的NAL單元的結構。
該過程(在406)確定NAL單元內的方格的結構。在一些實施例中,該過程解析NAL頭部,以確定視頻幀內每個方格的開始位置。在一些實施例中,HEVC方格可以將圖片分割成某些尺寸的矩形區域。用于方格的參數結構可以在HEVC中在圖片參數集(PPS)、視頻可用性信息(VUI)和/或補充增強信息(SEI)消息中指定。HEVC中的PPS的例子在圖7中示出。如果tile_enabled_flag被開啟,則每個維度中方格的數量可以被發信號通知。在一些實施例中,如果方格是均勻尺寸的(例如,如果uniform_spacing_flag是1),則沒有附加信息可以被發信號通知。PPS還可以發信號通知方格的寬度和高度。
該過程(在408)選擇多個NAL單元。在一些實施例中,該過程可以選擇所有NAL單元。在某些實施例中,該過程可以選擇一個或多個NAL單元。
該過程(在410)選擇在被選的每一個NAL單元中方格的數量。在一些實施例中,通過編碼器發信號通知具有新的方格分區參數的新PPS,編碼器可以從圖片到圖片改變如何分割方格。圖7示出了在PPS中發信號通知方格的例子。在一些實施例中,方格可以彼此相比具有不同的尺寸,或者與較早情況下的相同方格相比具有不同的尺寸。在一些實施例中,編碼器可以發信號通知具有用于每個新圖片的新方格分區參數的新PPS或者何時方格分區從前一圖片改變。
該過程加密所選擇的方格的至少一部分。在一些實施例中,該過程可以加密前x個字節、結尾的x字節或者位于方格的位流的某個部分中的某個x個字節。在若干實施例中,該過程可以加密方格內的多個塊。其它實施例可以根據具體應用的需求加密方格的其它部分。在許多實施例中,該過程利用使用關于如何加密位流的公共規范的公共加密格式(CENC)來加密方格的部分。CENC指定可以由DRM系統用來啟用文件的解密的行業標準加密和密鑰映射方法。該方案通過定義解密受保護流所必需的加密相關的元數據的公共格式來操作。該方案把版權映射、密鑰獲取和存儲、DRM順應性規則以及各種其它考慮的細節留給支持CENC方案的DRM系統。此外,在許多實施例中,加密信息可以存儲在MKV容器內。
然后,該過程結束。雖然在圖4中描述了用于加密HEVC視頻內容中的方格的一部分的具體過程,但是,根據本發明的實施例,可以使用適于具體應用的需求的各種過程中的任何一種來加密方格的部分。
解碼部分加密的視頻
根據本發明實施例的用于解碼部分加密的視頻的過程在圖5中示出。
該過程(在502)接收加密的視頻數據。在一些實施例中,該過程可以從內容提供商下載、流傳輸和/或流傳輸以下載視頻內容。在其它實施例中,視頻數據可以存儲在盤上或通過適于具體應用的需求的任何其它機制來獲得。
該過程(在504)確定多個壓縮單元(例如,HEVC中的方格)在視頻數據內的位置。在一些實施例中,方格的位置在一個或多個視頻幀內可以是固定的。在其它實施例中,方格的位置可以在幀之間或幀集合之間改變。方格的位置可以基于包含在對應于幀的PPS內的信息來確定。具體而言,該過程可以解析PPS,以識別在已經加密的方格中的特定字節。
該過程(在506)確定壓縮單元是否是加密的并解密加密的壓縮單元。在一些實施例中,該過程可以獲得用于解密加密內容的解密密鑰。解密密鑰可以基于從與內容相關聯的DRM服務接收的授權來獲得。
該過程(在508)解碼壓縮單元。在許多實施例中,該過程基于用來編碼視頻(例如,HEVC視頻)的特定壓縮標準來解碼內容。
該過程(在510)生成用于回放的輸出解碼視頻。然后,該過程結束。
雖然在圖5中描述了用于解密視頻內容中的壓縮單元的部分的具體過程,但是,根據本發明的實施例,可以使用適于具體應用的需求的各種過程中的任何一種來解密視頻內容中的壓縮單元的部分。
雖然已經在某些具體方面描述了本發明,但是許多附加的修改和變化對于本領域技術人員將是顯而易見的。因此,應當理解,本發明可以以與具體描述不同的其它方式實踐。因此,本發明的實施例在所有方面都應當被認為是說明性而不是限制性的。
此外,前面的討論僅僅公開和描述了本發明的示例性實施例。本領域技術人員將容易地從這種討論和從附圖中認識到,在不背離本發明的精神和范圍的情況下,可以在其中進行各種改變、修改和變化。因此,本發明意在不限于所公開的特定實施例,而是本發明將包括落入所附權利要求的范圍內的所有實施例。