欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

譯碼視頻及存儲視頻內容的方法

文檔序號:7791119閱讀:180來源:國知局
譯碼視頻及存儲視頻內容的方法
【專利摘要】本發(fā)明提供一種包括視頻文件創(chuàng)建模塊的裝置,其經配置以獲得經譯碼視頻內容的多個切片。參數集與所述經譯碼視頻內容相關聯。所述視頻創(chuàng)建模塊將經譯碼視頻內容的所述多個切片封裝于視頻流的一或多個存取單元內。可將第一類型的參數集封裝于所述視頻流的一或多個存取單元內??蓪⒌诙愋偷膮导庋b于樣本描述內。所述樣本描述可包含與所述視頻流相關聯的流屬性。
【專利說明】譯碼視頻及存儲視頻內容的方法
[0001] 相關申請案
[0002] 本申請案主張以下各申請案的權利:
[0003] 2012年1月30日申請的第61/592, 462號美國臨時申請案;所述申請案據此以其 全文引用的方式并入本文中。

【技術領域】
[0004] 本發(fā)明涉及視頻譯碼及存儲視頻內容,且更明確地說,涉及用于將參數集及其它 參數封裝于視頻文件內的技術。

【背景技術】
[0005] 數字視頻能力可并入到廣泛范圍的裝置中,廣泛范圍的裝置包含數字電視、數字 直播系統、無線廣播系統、個人數字助理(PDA)、膝上型或桌上型計算機、平板計算機、電 子書閱讀器、數字攝像機、數字記錄裝置、數字媒體播放器、視頻游戲裝置、視頻游戲控制 臺、蜂窩式或衛(wèi)星無線電電話、所謂的"智能型電話"、視頻電話會議裝置、視頻流裝置,及 其類似者。數字視頻裝置實施視頻壓縮技術,例如以下各者中所描述的視頻壓縮技術:由 MPEG-2、MPEG-4、ITU-T R 263、ITU-T 264/MPEG-4(第 10 部分,高級視頻譯碼(AVC))定 義的標準、目前在開發(fā)中的高效率視頻譯碼(HEVC)標準,以及此類標準的擴展。視頻裝置 可通過實施此類視頻壓縮技術而更有效率地發(fā)射、接收、編碼、解碼及/或存儲數字視頻信 肩、。
[0006] 視頻壓縮技術執(zhí)行空間(圖片內)預測及/或時間(圖片間)預測以減少或去 除視頻序列中固有的冗余。對于基于塊的視頻譯碼,可將視頻切片(即,視頻幀或視頻幀 的一部分)分割成數個視頻塊,所述視頻塊還可被稱作樹塊、譯碼樹單元(CTU)、譯碼樹塊 (CTB)、譯碼單元(CU)及/或譯碼節(jié)點。圖片的經幀內譯碼(I)切片中的視頻塊是使用相 對于相同圖片中的相鄰塊中的參考樣本的空間預測來編碼。圖片的經幀間譯碼(P或B)切 片中的視頻塊可使用相對于相同圖片中的相鄰塊中的參考樣本的空間預測或相對于其它 參考圖片中的參考樣本的時間預測。圖片可被稱作幀,且參考圖片可被稱作參考幀。
[0007] 空間預測或時間預測導致譯碼塊的預測性塊。殘余數據表示待譯碼的原始塊與預 測性塊之間的像素差。經幀間譯碼塊是根據指向形成預測性塊的參考樣本的塊的運動向量 以及指示經譯碼塊與預測性塊之間的差異的殘余數據來編碼。經幀內譯碼塊是根據幀內譯 碼模式及殘余數據來編碼。為了進一步壓縮,可將殘余數據從像素域變換到變換域,從而產 生接著可進行量化的殘余變換系數??蓲呙枳畛跻远S陣列布置的經量化的變換系數以便 產生變換系數的一維向量,且可應用熵譯碼以實現甚至更多壓縮。


【發(fā)明內容】

[0008] 本發(fā)明涉及用于存儲視頻數據的各種技術。明確地說,本發(fā)明描述用于將參數集 及其它參數封裝于視頻文件內的技術。
[0009] 在本發(fā)明的一個實例中,一種產生包含經譯碼視頻內容的視頻文件的方法包括: 獲得經譯碼視頻內容的多個切片;獲得與視頻內容的所述多個切片相關聯的多個參數集; 將經譯碼視頻內容的所述多個切片封裝于視頻流的一或多個存取單元內;將第一類型的參 數集封裝于所述視頻流的所述一或多個存取單元內;以及將第二類型的參數集封裝于樣本 描述內,其中所述樣本描述包含識別存儲于所述視頻流的一或多個存取單元內的參數集的 數目的指示符。
[0010] 在本發(fā)明的一個實例中,一種產生包含經譯碼視頻內容的視頻文件的方法包括: 獲得經譯碼視頻內容的多個切片;獲得與視頻內容的所述多個切片相關聯的多個參數集; 以及將多個參數集封裝于文件軌的樣本描述內,其中對應于一類型的參數集的參數集網絡 抽象層單元包含于所述樣本描述中的專用陣列中。
[0011] 在本發(fā)明的一個實例中,一種產生包含經譯碼視頻內容的視頻文件的方法包括: 獲得經譯碼視頻內容的多個切片;將經譯碼視頻內容的所述多個切片封裝于視頻流的多個 存取單元內;獲得與所述視頻流相關聯的多個流屬性;以及將流屬性封裝于文件軌的樣本 描述內,其中所述流屬性包含所述視頻流的幀速率及空間分辨率中的至少一者。
[0012] 在本發(fā)明的一個實例中,一種產生包含經譯碼視頻內容的視頻文件的方法包括: 獲得經譯碼視頻內容的多個切片;將經譯碼視頻內容的所述多個切片封裝于視頻流的多個 存取單元內,其中所述視頻流包含多個時間層;以及將指示符封裝于文件軌的樣本描述內, 其中所述指示符指示所述視頻流的時間層的數目。
[0013] 在本發(fā)明的一個實例中,一種產生包含經譯碼視頻內容的視頻文件的方法包括: 獲得經譯碼視頻內容的多個切片;將經譯碼視頻內容的所述多個切片封裝于視頻流的多個 存取單元內,其中所述視頻流包含多個時間層;以及將所述多個存取單元封裝于文件軌中 的多個樣本內,其中所述文件軌含有所述軌中的所述樣本到時間層的指配的表示以及所述 時間層中的每一者的特性描述。
[0014] 在本發(fā)明的另一實例中,一種裝置包括視頻文件創(chuàng)建模塊,所述視頻文件創(chuàng)建模 塊經配置以:獲得經譯碼視頻內容的多個切片;獲得與視頻內容的所述多個切片相關聯的 多個參數集;將經譯碼視頻內容的所述多個切片封裝于視頻流的一或多個存取單元內;將 第一類型的參數集封裝于所述視頻流的所述一或多個存取單元內;以及將第二類型的參數 集封裝于樣本描述內,其中所述樣本描述包含識別存儲于所述視頻流的一或多個存取單元 內的參數集的數目的指示符。
[0015] 在本發(fā)明的另一實例中,一種裝置包括視頻文件創(chuàng)建模塊,所述視頻文件創(chuàng)建模 塊經配置以:獲得經譯碼視頻內容的多個切片;獲得與視頻內容的所述多個切片相關聯的 多個參數集;以及將多個參數集封裝于文件軌的樣本描述內,其中對應于一類型的參數集 的參數集網絡抽象層單元包含于所述樣本描述中的專用陣列中。
[0016] 在本發(fā)明的另一實例中,一種裝置包括視頻文件創(chuàng)建模塊,所述視頻文件創(chuàng)建模 塊經配置以:獲得經譯碼視頻內容的多個切片;將經譯碼視頻內容的所述多個切片封裝于 視頻流的多個存取單元內;獲得與所述視頻流相關聯的多個流屬性;以及將流屬性封裝于 文件軌的樣本描述內,其中所述流屬性包含所述視頻流的幀速率及空間分辨率中的至少一 者。
[0017] 在本發(fā)明的另一實例中,一種裝置包括視頻文件創(chuàng)建模塊,所述視頻文件創(chuàng)建模 塊經配置以:獲得經譯碼視頻內容的多個切片;將經譯碼視頻內容的所述多個切片封裝于 視頻流的多個存取單元內,其中所述視頻流包含多個時間層;以及將指示符封裝于文件軌 的樣本描述內,其中所述指示符指示所述視頻流的時間層的數目。
[0018] 在本發(fā)明的另一實例中,一種裝置包括視頻文件創(chuàng)建模塊,所述視頻文件創(chuàng)建模 塊經配置以:獲得經譯碼視頻內容的多個切片;將經譯碼視頻內容的所述多個切片封裝于 視頻流的多個存取單元內,其中所述視頻流包含多個時間層;以及將所述多個存取單元封 裝于文件軌中的多個樣本內,其中所述文件軌含有所述軌中的所述樣本到時間層的指配的 表示以及所述時間層中的每一者的特性描述。
[0019] 在本發(fā)明的另一實例中,一種非暫時性計算機可讀存儲媒體具有存儲于其上的指 令,所述指令在執(zhí)行時致使視頻譯碼裝置的一或多個處理器進行以下操作:獲得經譯碼視 頻內容的多個切片;獲得與視頻內容的所述多個切片相關聯的多個參數集;將經譯碼視頻 內容的所述多個切片封裝于視頻流的一或多個存取單元內;將第一類型的參數集封裝于所 述視頻流的所述一或多個存取單元內;以及將第二類型的參數集封裝于樣本描述內,其中 所述樣本描述包含識別存儲于所述視頻流的一或多個存取單元內的參數集的數目的指示 符。
[0020] 在本發(fā)明的另一實例中,一種非暫時性計算機可讀存儲媒體具有存儲于其上的指 令,所述指令在執(zhí)行時致使視頻譯碼裝置的一或多個處理器進行以下操作:獲得經譯碼視 頻內容的多個切片;獲得與視頻內容的所述多個切片相關聯的多個參數集;以及將多個參 數集封裝于文件軌的樣本描述內,其中對應于一類型的參數集的參數集網絡抽象層單元包 含于所述樣本描述中的專用陣列中。
[0021] 在本發(fā)明的另一實例中,一種非暫時性計算機可讀存儲媒體具有存儲于其上的指 令,所述指令在執(zhí)行時致使視頻譯碼裝置的一或多個處理器進行以下操作:獲得經譯碼視 頻內容的多個切片;將經譯碼視頻內容的所述多個切片封裝于視頻流的多個存取單元內; 獲得與所述視頻流相關聯的多個流屬性;以及將流屬性封裝于文件軌的樣本描述內,其中 所述流屬性包含所述視頻流的幀速率及空間分辨率中的至少一者。
[0022] 在本發(fā)明的另一實例中,一種非暫時性計算機可讀存儲媒體具有存儲于其上的指 令,所述指令在執(zhí)行時致使視頻譯碼裝置的一或多個處理器進行以下操作:獲得經譯碼視 頻內容的多個切片;將經譯碼視頻內容的所述多個切片封裝于視頻流的多個存取單元內, 其中所述視頻流包含多個時間層;以及將指示符封裝于文件軌的樣本描述內,其中所述指 示符指示所述視頻流的時間層的數目。
[0023] 在本發(fā)明的另一實例中,一種非暫時性計算機可讀存儲媒體具有存儲于其上的指 令,所述指令在執(zhí)行時致使視頻譯碼裝置的一或多個處理器進行以下操作:獲得經譯碼視 頻內容的多個切片;將經譯碼視頻內容的所述多個切片封裝于視頻流的多個存取單元內, 其中所述視頻流包含多個時間層;以及將所述多個存取單元封裝于文件軌中的多個樣本 內,其中所述文件軌含有所述軌中的所述樣本到時間層的指配的表示以及所述時間層中的 每一者的特性描述。
[0024] 在本發(fā)明的另一實例中,一種經配置以產生包含經譯碼視頻內容的視頻文件的設 備包括:用于獲得經譯碼視頻內容的多個切片的裝置;用于獲得與視頻內容的所述多個切 片相關聯的多個參數集的裝置;用于將經譯碼視頻內容的所述多個切片封裝于視頻流的一 或多個存取單元內的裝置;用于將第一類型的參數集封裝于所述視頻流的所述一或多個存 取單元內的裝置;以及用于將第二類型的參數集封裝于樣本描述內的裝置,其中所述樣本 描述包含識別存儲于所述視頻流的一或多個存取單元內的參數集的數目的指示符。
[0025] 在本發(fā)明的另一實例中,一種經配置以產生包含經譯碼視頻內容的視頻文件的設 備包括:用于獲得經譯碼視頻內容的多個切片的裝置;用于獲得與視頻內容的所述多個切 片相關聯的多個參數集的裝置;以及用于將多個參數集封裝于文件軌的樣本描述內的裝 置,其中對應于一類型的參數集的參數集網絡抽象層單元包含于所述樣本描述中的專用陣 列中。
[0026] 在本發(fā)明的另一實例中,一種經配置以產生包含經譯碼視頻內容的視頻文件的設 備包括:用于獲得經譯碼視頻內容的多個切片的裝置;用于將經譯碼視頻內容的所述多個 切片封裝于視頻流的多個存取單元內的裝置;用于獲得與所述視頻流相關聯的多個流屬性 的裝置;以及用于將流屬性封裝于文件軌的樣本描述內的裝置,其中所述流屬性包含所述 視頻流的幀速率及空間分辨率中的至少一者。
[0027] 在本發(fā)明的另一實例中,一種經配置以產生包含經譯碼視頻內容的視頻文件的設 備包括:用于獲得經譯碼視頻內容的多個切片的裝置;用于將經譯碼視頻內容的所述多個 切片封裝于視頻流的多個存取單元內的裝置,其中所述視頻流包含多個時間層;以及用于 將指示符封裝于文件軌的樣本描述內的裝置,其中所述指示符指示所述視頻流的時間層的 數目。
[0028] 在本發(fā)明的另一實例中,一種經配置以產生包含經譯碼視頻內容的視頻文件的設 備包括:用于獲得經譯碼視頻內容的多個切片的裝置;用于將經譯碼視頻內容的所述多個 切片封裝于視頻流的多個存取單元內的裝置,其中所述視頻流包含多個時間層;以及用于 將所述多個存取單元封裝于文件軌中的多個樣本內的裝置,其中所述文件軌含有所述軌中 的所述樣本到時間層的指配的表示以及所述時間層中的每一者的特性描述。
[0029] 在本發(fā)明的另一實例中,一種處理包含經譯碼視頻內容的視頻文件的方法包括: 獲得包含多個樣本的文件軌;將多個存取單元從所述文件軌中的視頻流的所述多個樣本中 解封裝;將經譯碼視頻內容的多個切片從所述多個存取單元中解封裝;以及將與視頻內容 的所述多個切片相關聯的多個參數集從所述多個樣本中解封裝。
[0030] 在本發(fā)明的另一實例中,一種處理包含經譯碼視頻內容的視頻文件的方法包括: 獲得文件軌,其中所述文件軌包含經譯碼視頻內容的多個切片;以及將與視頻的所述多個 切片相關聯的多個參數集從所述文件軌的樣本描述中解封裝,其中對應于一類型的參數集 的參數集網絡抽象層單元包含于所述樣本描述中的專用陣列中。
[0031] 在本發(fā)明的另一實例中,一種處理包含經譯碼視頻內容的視頻文件的方法包括: 獲得文件軌,其中所述文件軌包含包含視頻流的經譯碼視頻內容的多個切片;以及從所述 文件軌的樣本描述中獲得與所述視頻流相關聯的多個流屬性,其中所述流屬性包含所述視 頻流的幀速率及空間分辨率中的至少一者。
[0032] 在本發(fā)明的另一實例中,一種處理包含經譯碼視頻內容的視頻文件的方法包括: 將經譯碼視頻內容的多個切片從視頻流的多個存取單元中解封裝,其中所述視頻流包含多 個時間層;以及獲得文件軌的樣本描述內的指示符,其中所述指示符指示所述視頻流的時 間層的數目。
[0033] 在本發(fā)明的另一實例中,一種處理包含經譯碼視頻內容的視頻文件的方法包括: 將多個存取單元從文件軌中的多個樣本中解封裝,其中所述文件軌含有所述軌中的所述樣 本到時間層的指配的表示以及所述時間層中的每一者的特性描述;以及將經譯碼視頻內容 的多個切片從視頻流的多個存取單元中解封裝,其中所述視頻流包含多個時間層。
[0034] 在本發(fā)明的另一實例中,一種裝置包括處理器,所述處理器經配置以進行以下操 作:獲得包含多個樣本的文件軌;將多個存取單元從所述文件軌中的視頻流的所述多個樣 本中解封裝;將經譯碼視頻內容的多個切片從所述多個存取單元中解封裝;以及將與視頻 內容的所述多個切片相關聯的多個參數集從所述多個樣本中解封裝。
[0035] 在本發(fā)明的另一實例中,一種裝置包括處理器,所述處理器經配置以進行以下操 作:獲得文件軌,其中所述文件軌包含經譯碼視頻內容的多個切片;以及將與視頻的所述 多個切片相關聯的多個參數集從所述文件軌的樣本描述中解封裝,其中對應于一類型的參 數集的參數集網絡抽象層單元包含于所述樣本描述中的專用陣列中。
[0036] 在本發(fā)明的另一實例中,一種裝置包括處理器,所述處理器經配置以進行以下操 作:獲得文件軌,其中所述文件軌包含包含視頻流的經譯碼視頻內容的多個切片;以及從 所述文件軌的樣本描述中獲得與所述視頻流相關聯的多個流屬性,其中所述流屬性包含所 述視頻流的幀速率及空間分辨率中的至少一者。
[0037] 在本發(fā)明的另一實例中,一種裝置包括處理器,所述處理器經配置以進行以下操 作:將經譯碼視頻內容的多個切片從視頻流的多個存取單元中解封裝,其中所述視頻流包 含多個時間層;以及從文件軌的樣本描述中獲得指示符,其中所述指示符指示所述視頻流 的時間層的數目。
[0038] 在本發(fā)明的另一實例中,一種裝置包括處理器,所述處理器經配置以進行以下操 作:將多個存取單元從文件軌中的多個樣本中解封裝,其中所述文件軌含有所述軌中的所 述樣本到時間層的指配的表示以及所述時間層中的每一者的特性描述;以及將經譯碼視頻 內容的多個切片從視頻流的多個存取單元中解封裝,其中所述視頻流包含多個時間層。
[0039] 在本發(fā)明的另一實例中,一種非暫時性計算機可讀存儲媒體具有存儲于其上的指 令,所述指令在執(zhí)行時致使視頻譯碼裝置的一或多個處理器進行以下操作:獲得包含多個 樣本的文件軌;將多個存取單元從所述文件軌中的視頻流的所述多個樣本中解封裝;將經 譯碼視頻內容的多個切片從所述多個存取單元中解封裝;以及將與視頻內容的所述多個切 片相關聯的多個參數集從所述多個樣本中解封裝。
[0040] 在本發(fā)明的另一實例中,一種非暫時性計算機可讀存儲媒體具有存儲于其上的指 令,所述指令在執(zhí)行時致使視頻譯碼裝置的一或多個處理器進行以下操作:獲得文件軌,其 中所述文件軌包含經譯碼視頻內容的多個切片;以及將與視頻的所述多個切片相關聯的多 個參數集從所述文件軌的樣本描述中解封裝,其中對應于一類型的參數集的參數集網絡抽 象層單元包含于所述樣本描述中的專用陣列中。
[0041] 在本發(fā)明的另一實例中,一種非暫時性計算機可讀存儲媒體具有存儲于其上的指 令,所述指令在執(zhí)行時致使視頻譯碼裝置的一或多個處理器進行以下操作:獲得文件軌,其 中所述文件軌包含包含視頻流的經譯碼視頻內容的多個切片;以及從所述文件軌的樣本描 述中獲得與所述視頻流相關聯的多個流屬性,其中所述流屬性包含所述視頻流的幀速率及 空間分辨率中的至少一者。
[0042] 在本發(fā)明的另一實例中,一種非暫時性計算機可讀存儲媒體具有存儲于其上的指 令,所述指令在執(zhí)行時致使視頻譯碼裝置的一或多個處理器進行以下操作:將經譯碼視頻 內容的多個切片從視頻流的多個存取單元中解封裝,其中所述視頻流包含多個時間層;以 及從文件軌的樣本描述中獲得指示符,其中所述指示符指示所述視頻流的時間層的數目。 [0043] 在本發(fā)明的另一實例中,一種非暫時性計算機可讀存儲媒體具有存儲于其上的指 令,所述指令在執(zhí)行時致使視頻譯碼裝置的一或多個處理器進行以下操作:將多個存取單 元從文件軌中的多個樣本中解封裝,其中所述文件軌含有所述軌中的所述樣本到時間層的 指配的表示以及所述時間層中的每一者的特性描述;以及將經譯碼視頻內容的多個切片從 視頻流的多個存取單元中解封裝,其中所述視頻流包含多個時間層。
[0044] 在另一實例中,一種經配置以處理包含經譯碼視頻內容的視頻文件的設備包括: 用于獲得包含多個樣本的文件軌的裝置;用于將多個存取單元從所述文件軌中的視頻流的 所述多個樣本中解封裝的裝置;用于將經譯碼視頻內容的多個切片從所述多個存取單元中 解封裝的裝置;以及用于將與視頻內容的所述多個切片相關聯的多個參數集從所述多個樣 本中解封裝的裝置。
[0045] 在另一實例中,一種經配置以處理包含經譯碼視頻內容的視頻文件的設備包括: 用于獲得文件軌的裝置,其中所述文件軌包含經譯碼視頻內容的多個切片;以及用于將與 視頻的所述多個切片相關聯的多個參數集從所述文件軌的樣本描述中解封裝的裝置,其中 對應于一類型的參數集的參數集網絡抽象層單元包含于所述樣本描述中的專用陣列中。
[0046] 在另一實例中,一種經配置以處理包含經譯碼視頻內容的視頻文件的設備包括: 用于獲得文件軌的裝置,其中所述文件軌包含包含視頻流的經譯碼視頻內容的多個切片; 以及用于從所述文件軌的樣本描述中獲得與所述視頻流相關聯的多個流屬性的裝置,其中 所述流屬性包含所述視頻流的幀速率及空間分辨率中的至少一者。
[0047] 在另一實例中,一種經配置以處理包含經譯碼視頻內容的視頻文件的設備包括: 用于將經譯碼視頻內容的多個切片從視頻流的多個存取單元中解封裝的裝置,其中所述視 頻流包含多個時間層;以及用于獲得文件軌的樣本描述內的指示符的裝置,其中所述指示 符指示所述視頻流的時間層的數目。
[0048] 在另一實例中,一種經配置以處理包含經譯碼視頻內容的視頻文件的設備包括: 用于將多個存取單元從文件軌中的多個樣本中解封裝的裝置,其中所述文件軌含有所述軌 中的所述樣本到時間層的指配的表示以及所述時間層中的每一者的特性描述;以及用于將 經譯碼視頻內容的多個切片從視頻流的多個存取單元中解封裝的裝置,其中所述視頻流包 含多個時間層。
[0049] 一個或一個以上實例的細節(jié)闡述于附圖及以下描述中。其它特征、目標及優(yōu)勢將 從描述及附圖及從權利要求書中顯而易見。

【專利附圖】

【附圖說明】
[0050] 圖1為說明可根據本發(fā)明中所描述的技術產生的實例媒體文件的結構的概念圖。
[0051] 圖2說明可包含于根據本發(fā)明中所描述的技術產生的媒體文件中的HEVC存取單 元的實例。
[0052] 圖3為說明可利用本發(fā)明中所描述的技術的實例視頻譯碼及傳輸系統的框圖。
[0053] 圖4為說明視頻編碼器的實例的框圖。
[0054] 圖5為說明可實施本發(fā)明中所描述的技術的封裝模塊的實例的框圖。
[0055] 圖6為說明可根據本發(fā)明中所描述的技術產生的實例媒體文件的結構的概念圖。
[0056] 圖7為說明根據本發(fā)明的技術的產生包含經譯碼視頻內容的視頻文件的實例的 流程圖。

【具體實施方式】
[0057] -股來說,本發(fā)明涉及譯碼視頻及將經譯碼視頻內容存儲于文件中。本發(fā)明描述 用于存儲視頻內容的各種技術,包含(例如)基于基于ISO的媒體文件格式(IS0BMFF)將 根據HEVC視頻標準譯碼的視頻內容存儲于文件中。明確地說,本發(fā)明描述用于將包含于 HEVC視頻內容中的序列參數集(SPS)、圖片參數集(PPS)及自適應參數集(APS)封裝于媒 體文件中的技術。在其中所有參數集在文件的開始可能為已知的且無一者需要進行更新的 情況下(即,在一些情況下,具有相同參數集ID的參數集經更新以包含不同內容),可將參 數集包含于樣本描述中,此情形實現帶外參數傳輸。在其中所有參數集在文件的開始無法 已知或至少一者需要進行更新的情況下,可將參數集包含于流的樣本中,或者,可將流分裂 成多個子流,對于每一子流,可將參數集包含于對應樣本描述中。通過允許將參數集包含于 樣本描述中或樣本描述所應用于的流的樣本中,無額外軌需要用于剛好存儲樣本集,且視 頻文件創(chuàng)建模塊能夠自由地在數個樣本描述當中折衷,具有帶外參數集傳輸的可能性。
[0058] 視頻譯碼標準的實例包含ITU-T H. 261、IS0/IEC MPEG-1視覺、ITU-T H. 262或 ISO/ffiC MPEG-2視覺、ITU-T H.263、IS0/IEC MPEG-4視覺以及 ITU-T Η·264(還被稱為 ISO/ IEC MPEG-4AVC),包含其可調式視頻譯碼(SVC)及多視角視頻譯碼(MVC)擴展。另外,存在 新的視頻譯碼標準,即,高效率視頻譯碼(HEVC),其是由ITU-T視頻譯碼專家群組(VCEG)及 IS0/IEC動畫專家群組(MPEG)的視頻譯碼聯合協作小組(JCT-VC)開發(fā)。HEVC的新近工作 草案(WD)(其被稱作"HEVC工作草案5"或"WD5")描述于巴斯等人的文檔JCTVC-G1103 中:"WD5 :高效率視頻譯碼(HEVC)的工作草案 5",ITU-TSG16WP3 及 IS0/IEC JTC1/SC29/ WG11的視頻譯碼聯合協作小組(JCT-VC),第7次會議:瑞士日內瓦,2012年11月。另外, HEVC的另一新近工作草案(工作草案7)描述于巴斯等人的文檔HCTVC-I1003中:"高效率 視頻譯碼(HEVC)文本規(guī)范草案7",ITU-TSG16WP3及IS0/IEC JTC1/SC29/WG11的視頻譯碼 聯合協作小組(JCT-VC),第9次會議:瑞士日內瓦,2012年4月27日到2012年5月7日。 HEVC標準還可被稱作IS0/IEC23008-HEVC,其希望為HEVC的遞送版本的標準編號。
[0059] 為了存儲根據特定視頻標準譯碼的視頻內容,需要對應于特定視頻標準的文件格 式規(guī)范。HEVC文件格式的最新草案使用IS0BMFF作為其封裝格式的基礎。HEVC文件格式 的最新草案(其在本文中被稱作HEVCFF)是根據IS0/IEC14496-15 :2010/Amd. 1 :2011(E) 定義且包含以下參考標準:
[0060] (1) IS0/IEC 14496-1 :2001,信息技術-音頻視覺對象的譯碼-第1部分:系統;
[0061] (2) IS0/IEC 23008-HEVC ;以及
[0062] (3) IS0/IEC 14496-12,信息技術-音頻視覺對象的譯碼-第12部分:基于ISO的 媒體文件格式(即,IS0BMFF)
[0063] 以上各者中的每一者以其全文引用的方式并入本文中。
[0064] 應注意,IS0/IEC 14496-12 在技術上與 IS0/IEC 15444-12 相同。IS0BMFF 用作許 多視頻譯碼標準封裝格式的基礎,以及許多多媒體容器格式的基礎。基于IS0BMFF的其它 文件格式的實例包含(例如)MPEG-4文件格式(IS0/IEC 14496-14)、3GPP文件格式(3GPP TS 26.244)及AVC文件格式(IS0/IEC 14496-15)(即,AVCFF)。另外,應注意,盡管本文中 所揭示的技術在一些實例中是關于HEVC加以描述且可能參考特定文件格式,但其可同等 地適用于其它視頻譯碼標準及文件格式。
[0065] 根據IS0BMFF結構化的文件可用于許多目的,包含本地媒體文件播放、遠程文件 的漸進式下載、用于HTTP上的動態(tài)自適應流式傳輸的片段(DASH)、用于待進行流式傳輸的 內容的容器及其包化指令,及所接收的實時媒體流的記錄。一股來說,IS0BMFF允許獨立于 元數據而存儲連續(xù)媒體數據(例如,音頻及視頻數據)。在一個實例中,媒體數據可包含根 據HEVC譯碼的圖片群組。元數據通常包含呈現及定時信息,以使得媒體數據的數個部分可 獨立解碼。
[0066] IS0BMFF使用基于面向對象的機制,其中基本語法元素用作形成媒體文件的建置 塊。在IS0BMFF中,這些基本語法元素被稱作"信息盒"。然而,基于IS0BMFF的特定文件格 式可指使用不同術語(例如,"原子")的信息盒。另外,應注意,當描述基于IS0BMFF的特 定文件格式時,特定術語常??梢苑窍拗菩苑绞脚cIS0BMFF術語互換地使用。舉例來說,當 描述HEVCFF時,術語"存取單元"可對應于IS0BMFF中的術語"樣本"且可使用任一術語來 描述存取單元。在IS0BMFF中,信息盒包含四字符類型、信息盒的字節(jié)計數,及有效載荷。信 息盒類型定義特定信息盒與其它類型的信息盒之間的邏輯關系。信息盒類型還可描述:哪 種數據對于特定信息盒類型來說為必備的及哪種數據對于特定信息盒類型來說為可選的。 信息盒可為一序列或一群組信息盒的部分且可含有可被稱作子信息盒的其它信息盒。
[0067] 在IS0BMFF中,電影信息盒("moov")含有存在于文件中的連續(xù)媒體流的元數據。 可進一步將存在于文件中的連續(xù)媒體流的元數據封入于電影信息盒中的其它信息盒內。在 IS0MBFF文件中,可將連續(xù)媒體流表示為軌,其中軌為參考可封入于電影信息盒內的元數據 的邏輯結構,且其中媒體流由一序列樣本組成。在IS0BMFF中,可將媒體流封入于信息盒 內,例如媒體數據信息盒("mdat")及其子信息盒。另外,在一些實例中,可直接將媒體流 存儲于IS0BMFF文件中。軌的媒體內容由一序列樣本組成,例如視頻存取單元。一序列樣 本可被稱作流。IS0BMFF指定含有基本媒體流的媒體軌。每一軌的元數據包含樣本描述項 的列表,每一樣本描述項提供在軌中使用的譯碼或封裝格式及用于處理所述格式所需的初 始化數據。每一樣本與軌的樣本描述項中的一者相關聯?;贗S0BMFF的一些文件類型還 包含提示軌。提示軌包含促進媒體內容的重構造以使得在于網絡上流式傳輸媒體內容時質 量及可靠性得以改善的信息。
[0068] 類似于根據IS0BMFF存儲的文件,HEVC文件可包含參考元數據的一系列基本流。 在HEVCFF中,樣本可被稱作存取單元(如IS0/IEC 23008-HEVC中所定義)。在HEVCFF 中,還可將元數據包含于樣本描述項中。HEVCFF可允許提示,但應注意,在一些文件格式 中,提示軌作為"B幀"提及的圖片實際上可為"一次性的"圖片或非參考圖片(如IS0/IEC 23008-HEVC中所定義)。另外,用于存儲HEVC視頻內容的文件格式可使用IS0BMFF的現有 能力,而且可定義擴展以支持特定HEVC譯碼的視頻內容特征,例如:參數集、時間可擴充性 及隨機存取恢復點。
[0069] 術語參數集可指序列參數集、圖片參數集或自適應參數集,如IS0/IEC 23008-HEVC中所定義。序列參數集及圖片參數集機制可將不頻繁改變的信息的傳輸與經譯 碼塊數據的傳輸解耦。根據HEVC,含有經譯碼塊數據的每一切片可參考含有其解碼參數的 圖片參數集。另外,圖片參數集可參考含有序列級解碼參數信息的序列參數集。另外,HEVC 還支持自適應參數集。自適應參數集可含有期望比圖片參數集中的譯碼參數更頻繁地改變 的解碼參數。在需要時,自適應參數集還可通過切片來參考。應注意,AVC當前并不支持自 適應參數集。
[0070] HEVCFF可通過包含結構化及分群組機制以指示存取單元與不同階層等級的時 間可擴充性的關聯來支持時間可擴充性樣本分群組。時間可擴充性一股允許以各種幀速 率(例如,每秒30幀(fps)或60 fps)以各種位速率播放經譯碼視頻內容。在一個實例 中,HEVC視頻軌可含有具有grouping_type' tscl'的SampleToGroupBox的零個或一個 實例。此SampleToGroupBox實例可表示軌中的樣本到時間層的指配。具有相同分群組 類型的SampleGroupDescriptionBox的伴隨實例可(如果存在的話)含有描述時間層的 TemporalLayerEntry樣本群組項。因此,在HEVCFF中,可將時間層樣本群組項定義為群組 類型:'tscl';容器:樣本群組描述信息盒('sgpd');必備的:否;及數量:零或更多樣本。
[0071] 在一些情況下,時間層樣本群組項可定義時間層中的所有樣本的時間層信息。 可用非負整數對時間層編號,每一時間層可與temporal_id的特定值相關聯,如ISO/ IEC23008-HEVC中所定義。在一個實例中,與大于0的temporal_id值相關聯的時間層可取 決于與較小temporal_id值相關聯的所有時間層。與特定temporal_id值相關聯的時間層 表示(其還可被稱作時間層的表示)可由與等于或大于特定temporal_id值的temporal id值相關聯的所有時間層組成。
[0072] 以下語法為可用于時間層項的語法的實例:
[0073] class TemporalLayerEniry() extends VisualSamplcGmupEniry (itscl,) { unsigned ini(8) iemporalLayerhl; unsigned ini(8) ilPmfilelndicaiion; unsigned ini(8) ilProfileCompaiibiliiy; unsigned ini(8) ilLcvellndicaiion; unsigned ini( 16) ilMaxBiiRate; unsigned inl( 16) ilAvgBiiRaie; unsigned ini(8) iiConstaniFrameRate; unsigned ini{ 16) ilAvgFramcRaic; }
[0074] 在上述的實例時間層項語法中,可將語義定義如下:
[0075] temporalLayerld可給出時間層的ID。在一些實例中,對于為此樣本群組的成員 的所有樣本,視頻譯碼層(VCL)網絡抽象層(NAL)單元(下文中進一步詳細描述VCL NAL 單兀)應具有等于 temporalLayerld 的 temporal_id,如 ISO/IEC 23008-HEVC 中所定義。
[0076] tlProfilelndication可含有用于通過temporalLayerld識別的時間層的表示的 配置文件代碼(profile_idc),如ISO/IEC 23008-HEVC中所定義。
[0077] tlProfileCompatibility可為用于通過temporalLayerld識別的時間層的表示的 與出現于SPS中的profile_idc與level_idc之間的字節(jié)相同的經確切定義的字節(jié),如ISO/ IEC23008-HEVC 中所定義。
[0078] Levellndication可含有用于通過temporalLayerld識別的時間層的表示的等級 代碼(level_idc),如 IS0/IEC 23008-10 中所定義。
[0079] tlMaxBitrate可給出用于通過temporalLayerld識別的時間層的表示的在一秒 的任何窗口內的以每秒1000位來計的最大速率。
[0080] tlAvgBitRate可給出用于通過temporalLayerld識別的時間層的表示的以每秒 1000位為單位的平均位速率。
[0081] tlConstantFrameRate可等于1,其指不通過temporalLayerld識別的時間層的表 示具有恒定巾貞速率。值零可指示通過temporalLayerld識別的時間層的表示可能或可能不 具有恒定幀速率。
[0082] tlAvgFrameRate可給出用于通過temporalLayerld識別的時間層的表示的以巾貞/ (256秒)為單位的平均幀速率。
[0083] 除時間可擴充性樣本分群組之外,HEVC的工作草案還包含"逐漸解碼刷新"或隨 機存取恢復點的概念??稍谖涣髦惺褂没謴忘c補充增強信息(SEI)消息用信號發(fā)出隨機 存取恢復點。此消息可見于隨機存取的開始,且可指示在恢復完成之前在SEI消息的位 置處的存取單元之后必須解碼多少數據。在HEVCFF中通過使用類型為"卷動"(如ISO/ IEC14496-12中所定義)的樣本分群組來支持逐漸恢復的概念。群組成員組成可標記含有 SEI消息的樣本,以使得"卷動距離"約束為僅為正的(即,后卷)。應注意,卷動群組對文 件格式中的樣本計數的方式可能不匹配在SEI消息中表示距離的方式。因此,在流內,可能 有必要標記預卷的開始,以使得流解碼器可從所述處開始解碼。然而,在文件中,當執(zhí)行隨 機存取時,可能需要針對可完美地解碼的最近的先前幀的確定性的搜索(例如,同步樣本, 或預卷結束)。
[0084] 圖1為說明基于IS0BMFF及當前HEVCFF的實例HEVC媒體文件的結構的概念圖。應 注意,圖1中的實例HEVC媒體文件142希望說明視頻數據流與元數據之間的邏輯關系。為 了簡潔起見,未說明HEVC媒體文件142的完整封裝結構。然而,HEVC媒體文件142可利用根 據HEVCFF定義的信息盒及封裝結構。在圖1中所說明的實例中,HEVC媒體文件142包含元 數據信息盒144及視頻數據流146A到146N。元數據信息盒144可能類似于IS0BMFF'm 〇〇v' 信息盒且可含有視頻數據流146A到146N中的每一者的元數據。在一個實例中,可將元數 據包含于元數據表148A到148N內。元數據表148A到148N可包含對應于視頻數據流146A 到146N的樣本項。元數據表的一個實例為樣本表信息盒。視頻數據流146A到146N中的 每一者可參考元數據表148A到148N中的一或多者。
[0085] 視頻數據流146A到146N可對應于IS0BMFF中所描述的視頻或視覺軌。因此,視 頻數據流146A到146N可因此可使用:(l)HandlerBox中的為'參閱'的handler_type ; (2) 視頻媒體標頭'vmhd' ;以及(3)VisualSampleEntry的衍生形式。視頻流可通過HEVC媒體 文件142中的一個視頻軌來表示。視頻數據流146A到146N中的每一者可包含一或多個存 取單元150A到150N。HEVC媒體文件142中的存取單元150A到150N可根據HEVCFF來定 義。存取單元150A到150N可對應于ISOBMFF中的樣本。存取單元150A到150N可在外部 進行分幀且具有通過所述外部分幀供應的大小。在一些情況下,元數據信息盒144可包含 定義存取單元150A到150N的大小的信息。存取單元150A到150N可包含一組NAL (即,網 絡抽象層)單元152A到152N。NAL單元152A到152N可根據HEVCFF來定義。
[0086] 每一 NAL單元152A到152N可包含指示NAL單元的長度(以字節(jié)計)的長度字 段。在一些實例中,長度字段可經配置為一個字節(jié)、兩個字節(jié)或四個字節(jié)。長度字段使得能 夠容易地掃描存取單元內的NAL單元。NAL單元152A到152N可含有如IS0/IEC23008-HEVC 中所指定的NAL單元數據。除其它類型的NAL單元之外,HEVCFF還定義以下類型的NAL單 元:視頻數據NAL單元,其可被稱作VCL NAL單元、補充增強信息(SEI)NAL單元及存取單元 (AU)定界符NAL單元,以及其它類型的NAL單元。應注意,保留于IS0/IEC 23008-HEVC中 的NAL單元類型可能需要未來的定義。一些文件讀取器可經配置以忽略具有保留值的NAL 單元類型的NAL單元(當其存在于這些陣列中時)。應注意,此'容忍'行為經設計以使得 錯誤不會升高,從而允許在未來規(guī)范中到這些陣列的向后兼容擴展的可能性。
[0087] VCL NAL單元可經格式化以使得單個圖片的所有經譯碼切片NAL單元包含于其解 碼時間及合成時間為圖片的解碼時間及合成時間的存取單元內。另外,可能需要存取單元 150A到150N含有至少一個視頻數據NAL單元。
[0088] 視頻數據流146A到146N還可經格式化以使得所有SEI NAL單元包含于其解碼 時間出現在SEI消息生效時的時間之前的存取單元中。SEI消息在存取單元150A到150N 內的次序可如根據IS0/IEC 23008-HEVC所定義股。另外,HEVC文件142可能需要圖片的 SEI消息包含于含有所述圖片的存取單元中且關于一序列圖片的SEI消息包含于含有SEI 消息所關于的序列的第一圖片的存取單元中。存取單元定界符NAL單元可根據IS0/IEC 23008-HEVC來約束。HEVC文件142可能需要視頻數據流146A到146N中及單個存取單元 內的NAL單元序列以如IS0/IEC 23008-HEVC中所指定的有效解碼次序布置。
[0089] 圖2說明包含NAL單元的HEVC存取單元的實例。如圖2中所說明,存取單元150 包含AU定界符NAL單元、SEI NAL單元及兩個切片NAL單元。另外,應注意,HEVCFF可支 持IS0MBFF中所描述的子樣本的概念。子樣本經定義為樣本內的一或多個相連NAL單元且 具有以下字段的相同值:RefPicFlag及VclNalUnitFlag。在圖2中所說明的實例存取單 元150中,兩個切片NAL單元可形成子樣本??捎糜贖EVC流的子樣本信息盒的實例描述于 IS0/IEC 14496-12的第8. 7. 7章節(jié)中。子樣本可包含多個NAL單元及其先前NAL單元長度 字段。當使用子樣本時,子樣本信息盒的存在可為可選的。然而,根據HEVCFF,如果子樣本 信息盒存在于含有HEVC數據的軌中,那么可能需要將subsample_priority字段設置為根 據IS0/IEC 14496-12中的此字段的規(guī)范的值。另外,只有在于舍棄此子樣本的情況下(例 如,子樣本由SEI NAL單元組成)仍可解碼此樣本的情況下,可能需要將可棄字段設置為1。 保留字段根據以下實例語法定義于HEVCFF中:
[0090] unsigned int(1)RefPicFlag ;
[0091] unsigned int(1)VclNalUnitFlag ;
[0092] unsigned int (30)reserved = 0 ;
[0093] 在上述的實例語法中,可將語義定義如下:RefPicFlag等于0可指示子樣本中的 所有NAL單元具有等于0的nal_ref_flag。RefPicFlag等于1可指示子樣本中的所有NAL 單元具有等于1的nal_ref_flag。
[0094] VclNalUnitFlag等于0可指示子樣本中的所有NAL單元為非VCL NAL單元。值1 可指示子樣本中的所有NAL單元為VCL NAL單元。
[0095] 再次參看圖1,HEVC媒體文件142可經格式化以使得所有定時信息在視頻數據流 146A到146N外部。然而,在一些實例中,HEVC文件142可包含定義視頻數據流146A到146N 中的呈現或合成時間戳的圖片定時SEI消息,這是因為圖片定時SEI消息可含有除定時以 外的信息且可能為所需的以進行符合性檢查。HEVC媒體文件142可將所有定時信息存儲于 樣本元數據表148A到148N中。存儲于元數據表148A到148N中的定時信息可覆寫提供于 視頻數據流146A到146N中的任何定時。另外,HEVC媒體文件142可經配置以使得提供于 流內的定時信息被解碼器忽略,這是因為其可能與提供于HEVC媒體文件142中的別處的定 時信息相抵觸且另外在一些情況下,提供于流內的定時信息可能不會為正確的或在其自身 內一致。應注意,可歸因于以下事實而強加定時信息約束:在文件格式等級下的流的壓縮后 編輯、組合或重新定時可能使存在于流內的任何嵌入式定時信息無效或使得其不一致。
[0096] 在一些實例中,HEVC媒體文件142可經配置以便按解碼次序存儲存取單元150A到 150N。因此,如果不使用圖片重新排序且解碼時間(DTS)與合成時間(CTS)相同,那么呈現 與解碼次序相同且僅需要使用時間到樣本'stts'表。應注意,可將任何種類的圖片重新排 序于HEVC視頻中,并非僅B-圖片。如果解碼時間與合成時間不同,那么還可結合'stts' 表使用合成時間到樣本'ctts'表。在一些實例中,如果存取單元中的VCLNAL單元指示存 取單元中所含有的經譯碼圖片為瞬時解碼刷新(IDR)圖片,那么存取單元可被視為同步樣 本。
[0097] 在一些情況下,HEVC媒體文件142可經配置以使得需要視頻數據流146A到146N 不包含開始代碼。然而,希望使用開始代碼遞送用于HEVC媒體文件142的流的系統可通 過將視頻流146A到146N重新格式化以插入開始代碼來進行此操作。另外,可自然地將視 頻數據表示為HEVC媒體文件142中的可變位速率且可在需要時進行填充以用于傳輸。因 此,HEVC媒體文件142可經配置以使得需要視頻數據流146A到146N不包含填充數據NAL 單元及填充數據SEI消息。應注意,如果HEVC媒體文件142不含有填充數據NAL單元、開 始代碼、zer〇_byt e語法元素及/或填充數據SEI消息,那么HEVC媒體文件142的位流特 性可關于與假想參考解碼器(HRD)(當在恒定位速率(CBR)模式中操作HRD時,如IS0/IEC 23008-HEVC附錄C中所指定)的符合性而改變。
[0098] 類似于HEVCFF,AVCFF還包含作為參考標準的IS0/IEC 14496-1 :2001且AVCFF包 含與HEVC的工作草案類似的系統接口設計(還被稱作高級語法)。因此,可以類似于AVC 文件的方式來格式化HEVC媒體文件142的一些部分。然而,AVCFF的一些方面可能不提供 HEVC譯碼的視頻內容的最佳格式化。
[0099] AVCFF的一個方面在于:因為參數集可包含于樣本描述中或單獨參數集軌中,所 以軌的數目或樣本描述的數目可能存在不必要的增加,其中每一者對應于視頻軌中的整個 視頻流的子集。應注意,當前HEVCFF并不允許單獨參數集軌。
[0100] AVCFF的另一方面在于:不同類型的參數集捆綁在一起,而不管其包含于樣本描 述中還是單獨參數集軌中。因此,在不使用單獨參數軌的AVC文件中,不可能在樣本描述中 包含一些類型的參數集而排除其它參數集。因此,在此情況下,SPS及PPS兩者存儲于樣本 描述中,但PPS可更頻繁地改變。以此方式,無法獨立于SPS而傳輸PPS。
[0101] AVCFF的另一方面在于:樣本描述包含用于SPS的陣列及用于PPS的另一陣列。在 AVCFF中,還允許這些陣列含有含聲明的SEI消息的SEI NAL單元。因此,文件分析器將必 須檢查包含于SPS或PPS陣列中的每一 NAL單元的NAL單元標頭以確定NAL單元為參數集 NAL單元還是SEI NAL單元。
[0102] AVC文件格式的另一方面在于:不允許將如空間分辨率及幀速率的流屬性(其對 于軌或流選擇目的來說為重要的)(例如,在基于文件的自適應流式傳輸應用中)存儲于樣 本描述中且因此其在AVCFF設計下存取不便利。
[0103] AVC文件格式的另一方面在于:對于每一時間層表示,遺漏例如配置文件、等級及 幀速率的時間可擴充性屬性(其對于選擇流的特定時間子集來說為重要的)。
[0104] 圖3為說明可利用本發(fā)明中所描述的技術的實例視頻譯碼及傳輸系統的框圖。在 一個實例中,系統10可經配置以將PPS封裝于視頻流的存取單元內,其中樣本描述包含識 別存儲于視頻流的一或多個存取單元內的PPS的數目的指示符。如圖3中所展示,系統10 包含源裝置12,其產生經編碼視頻數據以用于在稍后時間由目的地裝置14解碼。源裝置 12及目的地裝置14可經配置以使得可在源裝置12處產生關于圖1所描述的HEVC媒體文 件142且將其發(fā)射到目的地裝置14。源裝置12及目的地裝置14可包括廣泛范圍的裝置中 的任一者,廣泛范圍的裝置包含桌上型計算機、筆記型計算機(即,膝上型計算機)、平板計 算機、機頂盒、電話手機(例如,所謂的"智能"電話、所謂的"智能"平板計算機)、電視機、 攝像機、顯示裝置、數字媒體播放器、視頻游戲控制臺、視頻流裝置或其類似者。在一些情況 下,源裝置12及目的地裝置14可經裝備以用于進行無線通信。
[0105] 在圖3的實例中,源裝置12包含視頻源18、視頻編碼器20、封裝單元21及輸出接 口 22。視頻源18可包含例如以下各者等源:視頻俘獲裝置(例如,視頻攝像機)、含有先 前所俘獲的視頻的視頻存檔、接收來自視頻內容提供者的視頻的視頻饋入接口,及/或用 于產生計算機圖形數據作為源視頻的計算機圖形系統,或此類源的組合??捎梢曨l編碼器 20來編碼所俘獲的、預先俘獲的或計算機產生的視頻。視頻編碼器20可根據視頻壓縮標準 (例如,HEVC)操作且可符合HEVC測試模型(腿)。另外,視頻編碼器20可根據本文中所描 述的其它視頻標準操作。
[0106] 對于根據HEVC的視頻譯碼,可將視頻幀分割成數個譯碼單元。譯碼單元(CU) - 股是指用作對其應用各種譯碼工具以實現視頻壓縮的基本單元的圖像區(qū)。CU通常具有表示 為Y的明度分量,及表示為U及V的兩個色度分量。取決于視頻取樣格式,依據樣本的數目 來計的U及V分量的大小可與Y分量的大小相同或不同。CU通常為方形,且可被視為類似 于(例如)例如AVC等其它視頻譯碼標準下的所謂的宏塊。為了說明的目的,將在本申請 案中描述根據在開發(fā)中的HEVC標準的目前所提議的方面中的一些方面的譯碼。然而,本發(fā) 明中所描述的技術可用于其它視頻譯碼過程,例如根據AVC或其它標準定義的視頻譯碼過 程或專有視頻譯碼過程。HEVC標準化努力是基于被稱作HEVC測試模型(HM)的視頻譯碼裝 置的模型。HM假設視頻譯碼裝置優(yōu)于根據(例如)ITU-T H.264/AVC的裝置的若干能力。 舉例來說,鑒于AVC提供九個幀內預測編碼模式,HM提供多達三十四個幀內預測編碼模式。
[0107] 視頻序列通常包含一系列視頻幀或圖片。圖片群組(GOP) -股包含一系列視頻圖 片中的一或多者。G0P可在G0P的標頭、圖片中的一或多者的標頭中或在別處包含描述包含 于G0P中的圖片的數目的語法數據。圖片的每一切片可包含描述所述相應切片的編碼模式 的切片語法數據。視頻編碼器20通常對個別視頻切片內的視頻塊進行操作,以便編碼視頻 數據。視頻塊可包含對應于CU內的譯碼節(jié)點的一或多個TU或PU。視頻塊可具有固定或變 化的大小,且可根據指定譯碼標準而在大小方面不同。
[0108] 根據HM,⑶可包含一或多個預測單元(PU)及/或一或多個變換單元(TU)。位流 內的語法數據可定義最大譯碼單元(LCU),其為依據像素的數目來計的最大CU。一股來說, 除了 CU不具有大小區(qū)別以外,CU具有類似于H. 264的宏塊的目的。因此,可將CU分裂成數 個子CU。一股來說,本發(fā)明中對CU的參考可指圖片的最大譯碼單元或LCU的子CU??蓪?LCU分裂成數個子CU,且可將每一子CU進一步分裂成數個子CU。用于位流的語法數據可定 義可將LCU分裂的最大次數,其被稱作CU深度。因此,位流也可定義最小譯碼單元(SCU)。 本發(fā)明也使用術語"塊"或"部分"來指⑶、PU或TU中的任一者。一股來說,"部分"可指視 頻中貞的任一子集。
[0109] IXU可與四叉樹數據結構相關聯。一股來說,四叉樹數據結構每一⑶包括一個節(jié) 點,其中根節(jié)點對應于IXU。如果將⑶分裂成四個子⑶,那么對應于⑶的節(jié)點包含四個葉 節(jié)點,所述四個葉節(jié)點中的每一者對應于所述子CU中的一者。四叉樹數據結構的每一節(jié)點 可提供用于對應CU的語法數據。舉例來說,四叉樹中的節(jié)點可包含分裂旗標,所述分裂旗 標指示對應于所述節(jié)點的CU是否分裂成數個子CU??梢赃f歸方式定義用于CU的語法元 素,且用于CU的語法元素可取決于CU是否分裂成數個子CU。如果CU未經進一步分裂,那 么CU被稱作葉CU。在本發(fā)明中,葉CU的4個子CU也將被稱作葉CU,但不存在原始葉CU 的任何明確分裂。舉例來說,如果16X 16大小的⑶未經進一步分裂,那么四個8X8子⑶ 也將被稱作葉⑶,但16X 16⑶從未經分裂。
[0110] 此外,葉⑶的TU還可與相應四叉樹數據結構相關聯。即,葉⑶可包含指示如何將 葉CU分割成數個TU的四叉樹。本發(fā)明提及指示如何將LCU分割為CU四叉樹的四叉樹,以 及指示如何將葉CU分割成數個TU作為TU四叉樹的四叉樹。TU四叉樹的根節(jié)點一股對應 于葉CU,而⑶四叉樹的根節(jié)點一股對應于IXU。未經分裂的TU四叉樹的TU被稱作葉TU。
[0111] 葉⑶可包含一或多個預測單元(PU)。一股來說,PU表示對應⑶的全部或一部 分,且可包含用于檢索用于PU的參考樣本的數據。舉例來說,當PU經幀間模式編碼時,PU 可包含定義用于PU的運動向量的數據。定義運動向量的數據可描述(例如)運動向量的 水平分量、運動向量的垂直分量、用于運動向量的分辨率(例如,四分之一像素精度或八分 之一像素精度)、運動向量指向的參考幀,及/或用于運動向量的參考列表(例如,列表〇或 列表1)。用于定義ro的葉CU的數據還可描述(例如)將CU分割成一或多個PU。分割模 式可取決于CU是未經譯碼、經幀內預測模式編碼還是經幀間預測模式編碼而不同。對于幀 內譯碼,可將PU視為與下文所描述的葉變換單元相同。
[0112] 作為實例,HM支持以各種PU大小進行預測。假設特定⑶的大小為2NX 2N,那么 HM支持以2NX2N或NXN的PU大小進行幀內預測,及以2NX2N、2NXN、NX2N或NXN的 對稱PU大小進行幀間預測。HM還支持用于以2NXnU、2NXnD、nLX2N及nRX2N的PU大 小進行幀間預測的不對稱分割。在不對稱分割中,CU的一個方向未經分割,而另一方向經 分割成25%及75%。⑶的對應于25%分割的部分通過"η"后接續(xù)有"上"、"下"、"左"或 "右"的指示來指示。因此,例如,"2NXnU"是指在水平方向上以頂部2ΝΧ0. 5Ν PU及底部 2NX1. 5N PU 分割的 2NX2N CU。
[0113] 在本發(fā)明中,"NXN"與"N乘N"可互換地使用以指視頻塊在垂直尺寸與水平尺寸 方面的像素尺寸,例如,16X16像素或16乘16像素。一股來說,16X16塊在垂直方向上將 具有16個像素 (y = 16)且在水平方向上將具有16個像素 (X = 16)。同樣地,NXN塊一 股在垂直方向上具有N個像素,且在水平方向上具有N個像素,其中N表示非負整數值。塊 中的像素可布置成數行及數列。此外,塊未必需要在水平方向上具有與在垂直方向上的像 素數目相同的數目個像素。舉例來說,塊可包括NX Μ個像素,其中Μ未必等于N。
[0114] 為了譯碼塊(例如,視頻數據的預測單元),首先導出用于塊的預測子。預測子 (其還被稱作預測性塊)可經由幀內(I)預測(即,空間預測)或幀間(Ρ或Β)預測(即, 時間預測)來導出。因此,一些預測單元可使用相對于同一幀(或切片)中的相鄰參考塊 中的參考樣本的空間預測來進行幀內譯碼(I),且其它預測單元可相對于其它先前經譯碼 幀(或切片)中的參考樣本塊進行單向幀間譯碼(Ρ)或進行雙向幀間譯碼(Β)。在每一種 情況下,參考樣本可用以形成用于待譯碼塊的預測性塊。
[0115] 在識別預測性塊后,便確定原始視頻數據塊與其預測性塊之間的差。此差可被稱 作預測殘余數據,且指示待譯碼塊中的像素值與經選擇以表示經譯碼塊的預測性塊中的像 素值之間的像素差。為了實現更好的壓縮,可(例如)使用離散余弦變換(DCT)、整數變換、 卡南-洛伊夫(Karhunen-Loeve) (K-L)變換或另一變換來變換預測殘余數據。
[0116] 變換塊(例如,TU)中的殘余數據可布置于駐留于空間像素域中的像素差值的二 維(2D)陣列中。變換將殘余像素值轉換成變換域(例如,頻域)中的變換系數的二維陣 列。為了實現進一步壓縮,可在熵譯碼之前將變換系數量化。熵譯碼器接著對經量化的變 換系數應用熵譯碼,例如上下文自適應可變長度譯碼(CAVLC)、上下文自適應二進制算術譯 碼(CABAC)、概率區(qū)間分割熵譯碼(PIPE)或其類似者。
[0117] 為了熵譯碼經量化的變換系數塊,通常執(zhí)行掃描過程以便根據特定掃描次序將 塊中的經量化的變換系數的二維(2D)陣列重新排序成變換系數的有序的一維(1D)陣列 (即,向量)。接著對變換系數的向量應用熵譯碼。變換單元中的經量化的變換系數的掃描 使用于熵譯碼器的變換系數的2D陣列串行化??僧a生有效性圖以指示顯著(即,非零)系 數的位置??蓱脪呙枰話呙栾@著(即,非零)系數的等級,及/或譯碼顯著系數的正負號。
[0118] 在HEVC中,首先譯碼針對TU的顯著變換的位置信息(例如,有效性圖)以指示掃 描次序中最后的非零系數的位置。以反掃描次序譯碼每一系數的有效性圖及等級信息(系 數的絕對值及正負號)。
[0119] 在應用任何變換以產生變換系數之后,視頻編碼器20可執(zhí)行變換系數的量化。量 化一股指如下過程:將變換系數量化以可能地減少用以表示所述系數的數據的量,從而提 供進一步壓縮。量化過程可減少與系數中的一些系數或全部系數相關聯的位深度。舉例來 說,可在量化期間將η位值降值舍位到m位值,其中η大于m。在一些實例中,視頻編碼器 20可利用預定義掃描次序來掃描經量化的變換系數,以產生可經熵編碼的串行化向量。在 其它實例中,視頻編碼器20可執(zhí)行自適應掃描。
[0120] 圖4為說明可實施本發(fā)明中所描述的技術的實例視頻編碼器20的框圖。視頻編 碼器20可執(zhí)行視頻切片內的視頻塊的幀內譯碼及幀間譯碼。幀內譯碼依賴于空間預測以 減少或去除給定視頻幀或圖片內的視頻中的空間冗余。幀間譯碼依賴于時間預測以減少或 去除視頻序列的鄰近幀或圖片內的視頻中的時間冗余。幀內模式(I模式)可指若干基于 空間的壓縮模式中的任一者。例如單向預測(P模式)或雙向預測(B模式)等幀間模式可 指若干基于時間的壓縮模式中的任一者。
[0121] 在圖4的實例中,視頻編碼器20包含分割模塊35、預測模塊41、參考圖片存儲器 64、求和器50、變換模塊52、量化模塊54,及熵編碼模塊56。預測模塊41包含運動估計模 塊42、運動補償模塊44,及幀內預測模塊46。預測模塊41還可包含分割模塊35。對于視 頻塊重構造,視頻編碼器20還包含反量化模塊58、反變換模塊60,及求和器62。還可包含 解塊濾波器(圖4中未展示)以對塊邊界進行濾波,以從經重構造的視頻中去除塊效應偽 影。在需要時,解塊濾波器通常對求和器62的輸出進行濾波。除解塊濾波器之外,還可使 用額外的環(huán)路濾波器(環(huán)路內或環(huán)路后)。
[0122] 如圖4中所展示,視頻編碼器20接收視頻數據,且分割模塊35可將數據分割成數 個視頻塊。此分割還可包含將視頻數據分割成切片、圖塊或其它較大單元,以及(例如)根 據LCU及CU的殘余四叉樹結構以產生PU及TU的視頻塊分割。分割模塊35可將視頻數據 塊(例如,LCU)分割成數個子塊(例如,CU、PU及TU)。舉例來說,分割模塊35可基于先前 譯碼遍次中的先前分割方案的評估分割視頻數據塊。舉例來說,分割模塊35最初可基于速 率-失真分析(例如,速率-失真優(yōu)化)結合預測模塊41將幀或切片分割成數個LCU,且將 LCU中的每一者分割成數個子CU。因此,盡管在圖4中將分割模塊35展示為單獨塊以用于 說明的目的,但由分割模塊35執(zhí)行的分割功能可與預測模塊41的模式選擇及預測功能集 成,特別是在由預測模塊41執(zhí)行的速率-失真分析可用以至少部分地確定應用于LCU以產 生CU、子CU、PU及TU的分割的方面的情況下。一股來說,預測模塊41結合分割模塊35可 產生指示LCU到子CU的分割的四叉樹數據結構。四叉樹的葉節(jié)點CU可包含一或多個PU 及一或多個TU。
[0123] 預測模塊41 (如通過分割模塊35表示)可提供用于獨立于其它視頻分量定義用 于多個視頻分量中的一者的分割方案的各種技術,如本發(fā)明中所描述。在另一方面中,預測 模塊41可基于視頻塊的一或多個屬性確定是否獨立于其它視頻分量定義用于視頻塊的多 個視頻分量中的至少一者的分割方案。在一些實例中,屬性可包含塊大小、圖片類型、塊分 割或運動信息中的至少一者。
[0124] 視頻編碼器20 -股說明編碼待編碼的視頻切片內的視頻塊的組件。切片可劃分 成多個視頻塊(且有可能劃分成被稱作圖塊的視頻塊的集合)。預測模塊41可基于誤差 結果(例如,譯碼速率及失真程度)選擇用于當前視頻塊的多個可能譯碼模式中的一者,例 如,多個幀內譯碼模式中的一者或多個幀間譯碼模式中的一者。預測模塊41可將所得的經 幀內譯碼或經幀間譯碼塊提供到求和器50以產生殘余塊數據,且將所得的經幀內譯碼或 經幀間譯碼塊提供到求和器62以重構造經編碼塊以用作參考圖片。
[0125] 預測模塊41內的幀內預測模塊46可執(zhí)行相對于與待譯碼的當前塊相同的幀或切 片中的一或多個相鄰塊的當前視頻塊的幀內預測性譯碼以提供空間壓縮。預測模塊41內 的運動估計模塊42及運動補償模塊44執(zhí)行相對于一或多個參考圖片中的一或多個預測性 塊的當前視頻塊的幀間預測性譯碼以提供時間壓縮。
[0126] 如果選擇幀間預測而不是幀內預測用于當前視頻塊,那么運動估計模塊42可經 配置以根據用于視頻序列的預定型樣確定用于視頻切片的幀間預測模式。預定型樣可指明 序列中的視頻切片為P切片、B切片或一股化P/B(GPB)切片。運動估計模塊42及運動補 償模塊44可高度集成,但為了概念目的而分別加以說明。由運動估計模塊42執(zhí)行的運動 估計為產生運動向量的過程,運動向量估計視頻塊的運動。運動向量(例如)可指示當前 視頻幀或圖片內的視頻塊的PU相對于參考圖片內的預測性塊的位移。
[0127] 在幀間譯碼中,預測性塊為被發(fā)現與待譯碼的視頻塊的TO在像素差方面緊密匹 配的塊,可通過絕對差總和(SAD)、平方差總和(SSD)或其它不同度量來確定像素差。在一 些實例中,視頻編碼器20可計算存儲于參考圖片存儲器64中的參考圖片的子整數像素位 置的值。舉例來說,視頻編碼器20可內插參考圖片的四分之一像素位置、八分之一像素位 置或其它分數像素位置的值。因此,運動估計模塊42可執(zhí)行相對于全像素位置及分數像素 位置的運動搜索,且以分數像素精度輸出運動向量。
[0128] 運動估計模塊42通過比較經幀間譯碼切片中的視頻塊的PU的位置與參考圖片的 預測性塊的位置而計算所述PU的運動向量。參考圖片可選自第一參考圖片列表(列表0) 或第二參考圖片列表(列表1),第一參考圖片列表(列表〇)或第二參考圖片列表(列表 1)中的每一者識別存儲于參考圖片存儲器64中的一或多個參考圖片。運動估計模塊42將 所計算的運動向量(例如)連同其它語法元素一起發(fā)送到熵編碼模塊56及運動補償模塊 44。
[0129] 由運動補償模塊44執(zhí)行的運動補償可涉及基于通過運動估計確定的運動向量提 取或產生預測性塊,有可能執(zhí)行子像素精度的內插。在接收到當前視頻塊的PU的運動向量 后,運動補償模塊44便可將運動向量所指向的預測性塊定位于參考圖片列表中的一者中。 視頻編碼器20通過從正被譯碼的當前視頻塊的像素值減去預測性塊的像素值從而形成像 素差值來形成殘余視頻塊。像素差值形成塊的殘余數據,且可包含明度差分量與色度差分 量兩者。求和器50表示執(zhí)行此減法運算的一或多個組件。運動補償模塊44還可產生與視 頻塊及視頻切片相關聯的語法元素以供視頻解碼器30用于解碼視頻切片的視頻塊。
[0130] 幀內預測模塊46可幀內預測當前塊,從而作為由運動估計模塊42及運動補償模 塊44執(zhí)行的幀間預測(如上文所描述)的替代。明確地說,幀內預測模塊46可確定使用幀 內預測模式以編碼當前塊。在一些實例中,幀內預測模塊46可使用各種幀內預測模式(例 如)在單獨編碼遍次期間編碼當前塊以產生預測性塊,且?guī)瑑阮A測模塊46 (或,在一些實例 中,模式選擇模塊40)可從所測試模式中選擇適當幀內預測模式來使用。舉例來說,幀內預 測模塊46可使用對各種所測試幀內預測模式的速率-失真分析計算速率-失真值,且在所 測試模式當中選擇具有最好速率-失真特性的幀內預測模式。速率-失真分析一股確定經 編碼塊與經編碼以產生經編碼塊的原始的未經編碼塊之間的失真(或誤差)的量,以及用 以產生經編碼塊的位速率(即,位數目)。幀內預測模塊46可根據各種經編碼塊的失真及 速率計算比率以確定哪一幀內預測模式展現塊的最好速率-失真值。
[0131] 在任一情況下,在選擇用于塊的幀內預測模式之后,幀內預測模塊46可將指示用 于塊的選定幀內預測模式的信息提供到熵譯碼模塊56。舉例來說,幀內預測模塊46可提供 信令(例如,一或多個語法元素)以指示選定幀內模式。熵譯碼模塊56可編碼指示所選定 幀內預測模式的信息。視頻編碼器20可在經發(fā)射的位流配置數據中包含各種塊的編碼上 下文的定義及將用于所述上下文中的每一者的最可能的幀內預測模式、幀內預測模式索引 表及修改的幀內預測模式索引表的指示,所述經發(fā)射的位流配置數據可包含多個幀內預測 模式索引表及多個修改的幀內預測模式索引表(還被稱作碼字映射表)。
[0132] 在預測模塊41產生用于當前視頻塊的預測性塊之后,視頻編碼器20通過從當前 視頻塊中減去預測性塊而形成殘余視頻塊。殘余塊中的殘余視頻數據可包含于一或多個TU 中且應用于變換模塊52。變換模塊52使用例如離散余弦變換(DCT)或概念上類似的變換 等變換將殘余視頻數據變換成殘余變換系數。變換模塊52可將殘余視頻數據從像素域轉 換到變換域,例如頻域。
[0133] 變換模塊52可將所得變換系數發(fā)送到量化模塊54。量化模塊54將變換系數量化 以進一步減小位速率。量化過程可減小與系數中的一些系數或全部系數相關聯的位深度。 可通過調整量化參數而修改量化程度。在一些實例中,量化模塊54可接著執(zhí)行包含經量化 的變換系數的矩陣的掃描?;蛘撸鼐幋a模塊56可執(zhí)行所述掃描。
[0134] 在量化之后,熵編碼模塊56熵編碼經量化的變換系數。舉例來說,熵編碼模塊56 可執(zhí)行上下文自適應可變長度譯碼(CAVLC)、上下文自適應二進制算術譯碼(CABAC)、基于 語法的上下文自適應二進制算術譯碼(SBAC)、概率區(qū)間分割熵(PIPE)譯碼或另一熵編碼 方法或技術。在由熵編碼模塊56進行的熵編碼之后,可將經編碼位流發(fā)射到視頻解碼器30 或加以存檔以供視頻解碼器30稍后傳輸或檢索。熵編碼模塊56還可熵編碼正被譯碼的當 前視頻切片的運動向量及其它語法元素。
[0135] 反量化模塊58及反變換模塊60分別應用反量化及反變換,以在像素域中重構造 殘余塊以供稍后用作參考圖片的參考塊。運動補償模塊44可通過將殘余塊與參考圖片列 表中的一者內的參考圖片中的一者的預測性塊相加來計算參考塊。運動補償模塊44還可 將一或多個內插濾波器應用于經重構造的殘余塊以計算子整數像素值以供用于運動估計 中。求和器62將經重構造的殘余塊與由運動補償模塊44產生的經運動補償的預測塊相加 以產生用于存儲于參考圖片存儲器64中的參考塊。參考塊可由運動估計模塊42及運動補 償模塊44作為用于對后續(xù)視頻幀或圖片中的塊進行幀間預測的參考塊使用。
[0136] 圖4的視頻編碼器20表示經配置以輸出HEVC譯碼的視頻內容的視頻編碼器的實 例,所述HEVC譯碼的視頻內容可包含視頻內容的經譯碼樣本、參數集及SEI消息。如上文 所描述,關于圖1中所說明的HEVC媒體文件142,供HEVC視頻譯碼標準使用的參數集的類 型包含SPS、PPS及APS。每一參數集具有識別符,且根據HEVC標準譯碼的每一切片(如上 文所描述)可參考不使用參數集的識別符來譯碼的參數集。
[0137] 再次參看圖3,封裝模塊21可接收來自視頻編碼器20的經編碼視頻內容且根據本 文中所描述的技術產生視頻文件。在一個實例中,封裝模塊21可接收HEVC譯碼的視頻內 容且使用基于IS0BMFF及HEVCFF的當前版本的文件格式產生視頻文件。
[0138] 圖5為說明實例封裝模塊21的組件的框圖。在圖5的實例中,封裝模塊21包含 視頻輸入接口 70、視頻文件創(chuàng)建模塊72及視頻文件輸出接口 76。在此實例中,視頻文件創(chuàng) 建模塊70包含網絡抽象層(NAL)單元構造器74。
[0139] 視頻輸入接口 70可接收經譯碼視頻內容。視頻輸入接口 70可接收來自視頻編碼 器20的經譯碼視頻內容或可從存儲裝置中檢索經編碼視頻內容。經譯碼視頻內容可根據 HEVC標準來譯碼且可包含視頻內容的樣本、參數集及SEI消息。在接收到經編碼視頻內容 后,視頻輸入接口 70可將經譯碼視頻內容輸出到視頻文件創(chuàng)建模塊72以用于組合成視頻 文件。在一些實例中,視頻輸入接口 70可通過在將經譯碼視頻內容輸出到視頻文件創(chuàng)建模 塊72之前組織或緩沖經譯碼視頻內容而促進視頻文件的組合。
[0140] 一股來說,視頻文件創(chuàng)建模塊72可產生包含所接收的經譯碼視頻內容的視頻文 件。在一個實例中,視頻文件創(chuàng)建模塊72可創(chuàng)建視頻文件,例如,關于圖1所描述的HEVC 媒體文件142。視頻文件創(chuàng)建模塊72可對應于包含經配置以執(zhí)行有助于其的功能及程序的 硬件、軟件及/或固件的控制單元??刂茊卧蛇M一步執(zhí)行一股來說有助于封裝模塊21的 功能。對于其中視頻文件創(chuàng)建模塊72嵌入于軟件及/或固件中的實例,封裝模塊21可包 含包括用于視頻文件創(chuàng)建模塊72的指令的計算機可讀媒體,及用以執(zhí)行指令的處理單元。 視頻文件創(chuàng)建模塊72的子模塊(在此實例中,NAL單元構造器74)可實施為個別硬件模 塊及/或軟件模塊,且可在功能上集成或進一步分離成額外的子模塊。視頻文件創(chuàng)建模塊 72可對應于任何合適的處理單元或處理電路,例如,一或多個微處理器、特殊應用集成電路 (ASIC)、現場可編程門陣列(FPGA)、數字信號處理器(DSP)或其任何組合。視頻文件創(chuàng)建模 塊72可進一步包含存儲用于NAL單元構造器74的指令的非暫時性計算機可讀媒體,以及 用于執(zhí)行指令的處理器。
[0141] 在一個實例中,視頻文件創(chuàng)建模塊72可經配置以根據文件格式輸出經編碼視頻 數據,其中參數集可包含于樣本描述中或樣本描述所應用于的流的樣本或存取單元中。在 一個實例中,如果一類型的參數集包含于樣本描述中,那么其可能不會也包含于樣本自身 內。即,在此特定實例中,對于特定樣本描述應用于的視頻流,特定類型的參數集(如果存 在的話)可存儲于樣本描述中或樣本中,但決不會存儲于兩者中。在替代實例中,一類型的 參數集可包含于樣本描述及樣本描述所應用于的流的樣本兩者中。當允許將參數集包含于 樣本描述中或樣本自身內時,可將一指示包含于樣本描述中以指示除包含于樣本描述中的 參數集之外是否還存在包含于樣本中的參數集。在另一實例中,視頻文件創(chuàng)建模塊72可經 配置以根據文件格式輸出經編碼視頻數據,其中僅一種或一種以上特定類型的參數集可包 含于樣本描述及樣本描述所應用于的流的樣本兩者中。舉例來說,在一些實例中,文件格式 可允許將PPS包含于樣本描述及樣本兩者中,而可能僅允許將SPS包含于樣本描述中。另 夕卜,在此實例中,可能僅允許APS為所存儲樣本。另外,可將一指示包含于樣本描述中以指 示除包含于樣本描述中的參數集之外是否可能存在包含于樣本中的特定類型的參數集。
[0142] 另外,視頻文件創(chuàng)建模塊72可經配置以使得含有HEVC視頻流解碼器特定信息的 每一 HEVC樣本描述可包含特定類型的參數集群組。參數集群組可非常類似于碼簿來起作 用。每一參數集可具有識別符,且每一經譯碼切片可參考參數集識別符。如通過文件格式 定義,可分別表示參數集的每一配置。根據一些文件格式,無法在不致使使用不同樣本描述 的情況下更新參數集。在此情況下,希望發(fā)送參數集更新的系統可能需要比較兩種配置以 找到差異以便發(fā)送適當參數集更新。應注意,HEVCFF通常推薦:當使用若干參數集且需要 參數集更新時,將參數集包含于流的樣本中。還應注意,除非通過基于HEVCFF的另一文件 格式約束,否則可能需要符合HEVCFF的解碼器支持存儲于樣本中的參數集以及存儲于樣 本描述項中的參數集兩者。
[0143] 在一個實例中,視頻文件創(chuàng)建模塊72可經配置以根據文件格式輸出經編碼視頻 數據,其中當參數集包含于樣本描述中或樣本描述所應用于的流的樣本中時,不同類型的 參數集未捆綁在一起。在此實例中,樣本描述或樣本中的一種類型的參數集的包含可獨立 于其它類型的參數集是否包含于樣本描述或樣本中。在另一實例中,視頻文件創(chuàng)建模塊可 經配置以根據文件格式輸出經編碼視頻數據,其中當所有類型的參數集的子集涉及其是否 包含于樣本描述中還是樣本描述所應用于的流的樣本中時,僅所述子集捆綁在一起。舉例 來說,可將SPS及PPS捆綁在一起,而樣本描述中或樣本中的APS的包含可獨立于樣本描述 中或樣本中的SPS及PPS的包含。
[0144] 在一個實例中,視頻文件創(chuàng)建模塊72可經配置以根據文件格式輸出經編碼視頻 數據,其中樣本描述包含用于每一類型的參數集的陣列,且用于特定類型的參數集的陣列 可能僅包含所述特定類型的參數集NAL單元。另外,樣本描述還可包含用于含聲明的SEI 消息的SEI NAL單元的陣列。因此,在此情況下,文件分析器并不需要檢查包含于陣列中的 每一 NAL單元的NAL單元標頭以確定NAL單元的類型。在替代實例中,視頻文件創(chuàng)建模塊 72可經配置以根據文件格式輸出經編碼視頻數據,其中陣列包含于樣本描述中,且陣列可 包含任何類型的參數集以及含聲明的SEI消息的SEI NAL單元。
[0145] 在一個實例中,視頻文件創(chuàng)建模塊72可經配置以根據文件格式輸出經編碼視頻 數據,其中類似空間分辨率及幀速率的流屬性(其對于軌或流選擇目的來說為重要的)(例 如,在基于文件的自適應流式傳輸應用中)包含于樣本描述中。另外,在另一實例中,視頻 文件創(chuàng)建模塊72可經配置以根據文件格式輸出經編碼視頻數據,其中樣本描述包含輸出 位深度(即,從視頻編碼器20輸出的圖片的位深度,其對于不同色彩分量來說可能相同或 不同)。在樣本描述中包含對于軌或流選擇目的來說為重要的流屬性可實現對這些流屬性 的便利存取。在另一實例中,視頻文件創(chuàng)建模塊72可經配置以根據文件格式輸出經編碼視 頻數據,其中樣本描述包含關于可獨立于整個流中的其它圖塊而解碼的圖塊集合(如HEVC 中所定義)的信息,例如,圖塊集合所涵蓋的幾何區(qū)。
[0146] 在一個實例中,視頻文件創(chuàng)建模塊72可經配置以根據文件格式輸出經編碼視頻 數據,其中通過時間可擴充性樣本分群組機制,包含用于每一時間層表示的例如配置文件、 等級及幀速率等時間可擴充性屬性(其對于流的特定時間子集的選擇來說為重要的)。
[0147] 在一個實例中,視頻文件創(chuàng)建模塊72可經配置以將整個視頻流存儲于一個軌中, 而不管視頻流中包含多少個時間層。在替代實例中,可將整個視頻流存儲于一個以上軌 中,其中每一軌含有連續(xù)時間層的子集。在其中整個視頻流存儲于一個以上軌中的情況 下,文件中可能存在指示以指示每一軌的所含有的最低時間層具有表示為tld的大于0的 temporal_id,且指示含有具有等于tld-l的temporal_id的層的軌。這些軌可分別表示為 軌A及軌B。此指示可為包含于軌A中的類型為'tscl'的軌參考,其中軌參考是指軌A所 取決于的軌B。軌A的流屬性可描述流由軌A組成且軌A中也含有共同地含有具有小于11d 的temporal_id值的時間層的所有軌(似乎所有這些時間層)。在一個實例中,視頻文件創(chuàng) 建模塊72可經配置以執(zhí)行上文所描述的實例中的任一者及所有組合。舉例來說,視頻文件 創(chuàng)建模塊72可經配置以根據文件格式輸出經編碼視頻數據,包含本文中所描述的文件格 式中的任一者及所有組合。
[0148] 視頻文件創(chuàng)建模塊72可包含存儲于文件內的解碼器信息配置記錄中的解碼器配 置信息。解碼器信息可通過HEVC標準來定義且解碼器配置記錄可基于當前在HEVCFF中定 義的解碼器配置記錄,但還可包含與本文中所描述的實例一致的額外信息。以此方式,可根 據定義解碼器配置信息的文件格式來實施上文所描述的視頻文件創(chuàng)建模塊72的實例配置 中的一或多者。解碼器配置信息可包含于如下文進一步描述的解碼器配置記錄中。因此, 在一個實例中,如上文所描述的樣本描述可體現于解碼器配置記錄中。應注意,盡管例如參 數集及其相應指示等元數據經描述為包含于解碼器配置記錄中或樣本描述中,但此情形不 應被解釋為限制性的且上文關于視頻文件創(chuàng)建模塊72的實例配置所描述的元數據可存儲 于由視頻文件創(chuàng)建模塊72產生的文件的其它部分中,其中由視頻文件創(chuàng)建模塊72產生的 文件的其它部分不同于視頻流。
[0149] 在一個實例中,視頻文件創(chuàng)建模塊72可產生包含解碼器配置記錄的文件,所述解 碼器配置記錄可含有用于每一存取單元中的長度字段的大小以指示存取單元的所含有的 NAL單元的長度。另外,在一個實例中,由視頻文件創(chuàng)建模塊72產生的解碼器配置記錄還可 包含關于參數集及聲明的SEI NAL單元的信息,例如:(1)關于參數集是存儲于樣本描述中 還是存取單元內的指示;(2)存儲于樣本描述中或流的存取單元內的參數集的數目;(3)關 于參數集NAL單元的信息;(4)關于聲明的SEI NAL單元的信息;及/或(5)空間分辨率信 肩、。
[0150] 可由視頻文件創(chuàng)建模塊72根據以下實例語法產生實例解碼器配置記錄。應注意, 可根據上文所描述的其它實例視頻文件創(chuàng)建模塊72配置修改下文的語法。
[0151] aligncd(8) class HEVCDecoderConfigLiraiionRecord ( unsigned ini(8) ccmfiuiiraiionVersion - /,* unsigned ini(8) Pmfileltulicaiion; unsigned im(8) profileCompaiibiliiy; unsigned ini(8) Levellndication; bil(6) reserved - ?11111'b; unsigned inl(2) chromaFonnai: bii(5) reserved - 7//// 7?; unsigned ini(3) biiDcpthLiumiMinusS; bit(5) reserved ~ ?I III ?ι: unsigned ini(3) bitDcpihChmmaMinus8; bil( 16) piciureWidihlnLumaSamplcs; bii( 16) piciureHcighilnLumaSamples; bil( 16) avgFrameRate; hii( 1) consianiFrameRaie; bil(3) nuniTemporalLayers; bit(2) reserved - 7 / 7?; unsigned inl(2) lenglhSizeMinusOne; unsigned ini(8) nttfnOfSequenceParameierSeis; for (i=0; i< numOfSec/aenceParameierSels: /+ + J / unsigned ini( 16) seqiienccParameierSeiLengih ; bit(8^sequenccParameierSeiLengih) sequenceParamelerSeiNalUnit; } unsigned ini(8) niimOfPiciurcParameicrSeis; for (i=0; i< mimOfPiciureParameierScis; /++ J / unsigned inl( 16) picmreParameierSciLengih; bii{8^piciiireParamcicrSciLcngih) piciureParamcicrSeiNalUnii; } unsigned inl(8) mwiOfAdapiaiionParameierSeis;
[0152] for (i=0; i< munOfAdapiaiionParameicrSeis; /++J / unsigned inl( 16) adapiationParamcicrSeiLength; bii(8^cidapiaii(mParanieierSeiLengih) adapiaiionParameierSeiNALUnii; } unsigned ini(8) numOfDeclaraih'eSeiNaUJmis: for (i=0; i< niimOfDeclaraiivcSciNalUniis; ) { unsigned ini( 16) declaraiiveSeiNcilUniiLengih: hi,i(8'-'derlaraliveSeiNalUnitLengih) declaraiiveSeiNalUnii; }
[0153] 在上述的實例語法中,可將語義定義如下:
[0154] Profilelndication可含有用于此配置記錄所應用于的流的配置文件代碼 (profile_idc),如 IS0/IEC 23008-HEVC 中所定義。
[0155] profileCompatibility可為用于此配置記錄所應用于的流的與出現于序列參數 集(SPS)中的profile_idc與level_idc之間的字節(jié)相同的經確切定義的字節(jié),如ISO/ IEC23008-HEVC 中所定義。
[0156] Levellndication 可含有等級代碼(level_idc),如 IS0/IEC 23008-10 中所定義。
[0157] chromaFormat可含有用于此配置記錄所應用于的流的chroma_format指示符,如 通過 IS0/IEC 23008-HEVC 中的 chroma_format_idc 參數所定義。
[0158] bitDepthLumaMinus8可含有用于此配置記錄所應用于的流的明度位深度指示符, 如通過 IS0/IEC 23008-HEVC 中的 bit_depth_luma_minus8 參數所定義。
[0159] bitDepthChromaMinus8可含有用于此配置記錄所應用于的流的色度位深度指示 符,如通過 IS0/IEC 23008-HEVC 中的 bit_depth_chroma_minus8 所定義。
[0160] pictureWidthlnLumaPixels可指示用于此配置記錄所應用于的流的以明度像素 為單位的已解碼圖片寬度。
[0161] pictureHeightlnLumaPixels可指示用于此配置記錄所應用于的流的以明度像素 為單位的已解碼圖片高度。
[0162] avgFrameRate可給出用于此配置記錄所應用于的流的以巾貞/(256秒)為單位的平 均幀速率。值〇可指示未經指定的平均幀速率。
[0163] constantFrameRate等于1可指示此配置記錄所應用于的流具有恒定巾貞速率。值 2可指示流中的每一時間層的表示具有恒定幀速率。值0可指示流可能或可能不具有恒定 幀速率。
[0164] numTemporalLayers大于1可指示此配置記錄所應用于的流在時間上可擴充且所 含有的層的數目等于numTemporalLayers。值1可指示流在時間上并非可擴充的。值0可 指示流是否在時間上可擴充為未知的。
[0165] lengthSizeMinusOne加上1可指示此配置記錄所應用于的流中的HEVC視頻樣本 中的NALUnitLength字段的以字節(jié)來計的長度。舉例來說,可用值0來指示一個字節(jié)的大 小。此字段的值可為0、1或3中的一者,其分別對應于以1個、2個或4個字節(jié)編碼的長度。
[0166] numOfSequenceParameterSets可指示用于解碼此配置記錄所應用于的流的SPS 的數目。在一個實例中,如果值大于0,那么將不存在包含于流的樣本中的SPS。在一個實 例中,如果值等于0,那么將存在包含于流的樣本中的至少一個SPS。
[0167] sequenceParameterSetLength可指不SPS NAL單兀的以字節(jié)來計的長度,如ISO/ IEC 23008-HEVC 中所定義。
[0168] sequenceParameterSetNalUnit 可含有 SPS NAL 單元,如 IS0/IEC 23008-HEVC 中 所指定。
[0169] numOfPictureParameterSets可指示用于解碼此配置記錄所應用于的流的圖片參 數集的數目。在一個實例中,如果值大于〇,那么將不存在包含于流的樣本中的PPS。在一 個實例中,如果值等于〇,那么將存在包含于流的樣本中的至少一個PPS。
[0170] pictureParameterSetLength可指不PPS NAL單兀的以字節(jié)來計的長度,如ISO/ IEC23008-HEVC 中所定義。
[0171] pictureParameterSetNalUnit 可含有 PPS NAL 單元,如 IS0/IEC 23008-HEVC 中所 指定。
[0172] numOfAdaptationParameterSets可指示用于解碼此配置記錄所應用于的流的自 適應參數集(APS)的數目。在一個實例中,如果值大于0,那么將不存在包含于流的樣本中 的APS。在一個實例中,如果值等于0,那么可能或可能不存在包含于流的樣本中的APS。
[0173] adaptationParameterSetLength可指不APS NAL單兀的以字節(jié)來計的長度,如 IS0/IEC 23008-HEVC 中所定義。
[0174] adaptationParameterSetNalUnit 可含有 APS NAL 單元,如 IS0/IEC 23008-HEVC 中所指定。
[0175] numOfDeclarativeSeiNalUnits可指示用于此配置記錄所應用于的流的聲明的 SEI NAL單元的數目。聲明的SEI NAL單元可含有具'聲明的'性質的SEI消息,S卩,作為整 體提供關于流的信息。此SEI的實例為用戶數據SEI。
[0176] declarativeSeiNalUnitLength可指不聲明的SEI NAL單兀的以字節(jié)來計的長 度。
[0177] declarativeSeiNalUnit 可含有聲明的 SEI NAL 單兀。
[0178] numOfSequenceParameterSetExt可指不用于解碼AVC基本流的序列參數集擴展 的數目。
[0179] sequenceParameterSetExtLength可指不SPS擴展NAL單兀的以字節(jié)來計的長度, 如 IS0/IEC 14496-10 中所定義。
[0180] sequenceParameterSetExtNALUnit 可含有 SPS 擴展 NAL 單兀,如 IS0/IEC 14496-10中所指定。
[0181] 除上文所描述的實例語法及語義之外,供視頻創(chuàng)建模塊72使用的文件格式可包 含關于解碼器配置記錄的額外約束。舉例來說,在一些情況下,對于通過解碼器配置記錄描 述的流的所有參數集,用于Profilelndication、Levellndication及指示配置文件兼容性 的旗標的值必須為有效的。另外,在一些情況下,等級指示必須指示等于或大于所包含的參 數集中所指示的最高等級的能力等級,且在所有所包含的參數集設置每一配置文件兼容性 旗標的情況下,可能僅設置所述旗標。另外,在一些情況下,配置文件指示必須指示與此配 置記錄相關聯的流所符合的配置文件。另外,在一些情況下,如果用不同配置文件來標記序 列參數集,且相關配置文件兼容性旗標皆為零,那么流可能需要進行檢驗以確定整個流符 合哪個配置文件(如果存在的話)。另外,如果未檢驗整個流,或檢驗揭露不存在整個流所 符合的配置文件,那么必須將整個流分裂成具有單獨配置記錄的兩個或兩個以上子流(其 中可能滿足這些規(guī)則)。
[0182] 另外,在一些實例中,可在解碼器配置記錄中提供關于色度格式及位深度以及供 HEVC視頻基本流使用的其它重要格式信息的明確指示??赡苄枰恳环N類型的此信息在單 個HEVC配置記錄中在所有參數集(如果存在的話)中相同。另外,在一些情況下,如果兩 個序列在任一種類型的此信息中不同,那么可能需要兩個不同的HEVC配置記錄。另外,如 果兩個序列在其VUI信息中的色彩空間指示方面不同,那么也可能需要兩個不同的配置記 錄。
[0183] 另外,可在外部將由視頻文件創(chuàng)建模塊72產生的解碼器配置記錄分幀。當在外部 將解碼器配置記錄分幀時,可通過含有解碼器配置記錄的結構來供應其大小。解碼器配置 記錄還可含有版本字段。在一些情況下,對此解碼器配置記錄的兼容擴展可擴展解碼器配 置記錄且將不會改變配置版本代碼。在一些情況下,應準備文件讀取器以忽略超出其所理 解的數據的定義之外的未得到辨識的數據。
[0184] 除產生解碼器配置記錄器之外,視頻文件創(chuàng)建模塊72可進一步經配置以組合特 定時間實例的包含所有NAL單元的存取單元。再次參看圖5, NAL單元構造器74可形成包含 經編碼視頻數據的NAL單元。如上文關于圖1中所描述的HEVC媒體文件142所描述,NAL 單元的類型可包含:AU定界符NAL單元、SEI NAL單元及切片NAL單元。如關于實例解碼 器記錄語法及語義進一步描述,NAL單元的額外類型可包含:SPS NAL單元、PPS NAL單元、 APS NAL單元及聲明的SEI NAL單元。
[0185] 在一個實例中,NAL單元構造器74可經配置以根據以下語法基于解碼器配置記錄 定義NAL單元:
[0186] alignecl(8) class HEVCSample { unsigned ini PiciureLengih = sampULsue; // 來 I I ScunpleSiieBox /// HEVCSample 的大小 for (i=0; i<PictureLength; ) //到圖片的末尾 ? unsigned ini((HFA/CD{^:()il(^^onfi,gurali()nRe( ()rd.[jtngihSizrMmtisOn^-\-1)'l:8) NAL Unit Len^t h; biUNALUniiLengih - 8) NALUnii; i += (HEVCDecoderConfi^tiraiionRecord.Len^ihSizcMiniisOne+l) + NA L Un i ? Length ,* } }
[0187] 在實例語法中,NALUnitLength可指示以字節(jié)來計的NAL單元的大小。長度字段 可包含NAL標頭及RBSP有效載荷兩者的大小,但未必包含長度字段自身。另外,NALUnit 可含有單個NAL單元。NAL單元的語法可于IS0/IEC 23008-HEVC中加以定義且可包含NAL 標頭及可變長度封裝的字節(jié)流有效載荷兩者。
[0188] 另外,在一些實例中,視頻文件創(chuàng)建模塊72可進一步經配置以根據通過文件格式 定義的約束組合包含NAL單元的存取單元。舉例來說,在其中允許將參數集存儲于待用于 經譯碼圖片的樣本內的一種情況下,必須在含有所述圖片的樣本之前或在所述圖片的樣本 中發(fā)送參數集。參看圖1,如果圖片包含于存取單元150B內,那么根據此實例約束,對于供 存取單元150B使用的參數集,必須將其存儲于元數據信息盒144、存取單元150A或存取單 元150B中。應注意,將參數集存儲于視頻流的樣本描述中提供了一種供應參數集的簡單且 靜態(tài)的方式。然而,將參數集存儲于樣本中可能比將參數集存儲于樣本描述中更復雜,但在 參數集更新的情況下及在添加額外參數集的情況下允許更多推動力。參數集更新是指特定 參數集的內容更新,但參數集的ID保持相同。
[0189] 另外,供視頻創(chuàng)建模塊72使用的文件格式可定義HEVC視頻基本流(其還可被稱 作HEVC視覺樣本項)中的存取單元的格式。在一個實例中,可經由用于HEVC基本流的解碼 器特定配置來配置存取單元的語法。另外,在一個實例中,可將與一或多個存取單元相關聯 的樣本描述名稱及格式定義如下:(1)可將信息盒類型定義為'hvcl'或'hvcC' ;(2)可將 容器定義為樣本表信息盒('stbl');(3)必備項可包含'hvcl'樣本項;及(4)可定義數 量以允許存在一或多個樣本項。另外,在一個實例中,可能需要HEVC視覺樣本項含有HEVC 配置信息盒,如下文進一步描述。在一些實例中,HEVC配置信息盒可包含HEVC解碼器配置 記錄,如上文所描述。
[0190] 可選語法元素 MPEG4BitRateBox可存在于HEVC視覺樣本項中以用信號發(fā)出HEVC 視頻流的位速率信息。在用于MPEG-4中時,還可存在應插入到基本流描述符中的擴展描述 符。在一些實例中,可使用多個樣本描述,如ISO基礎媒體文件格式規(guī)范所準許的,以指示 使用不同配置或參數集的視頻的部分。
[0191] 在一些實例中,僅可在此樣本項應用于的流為順從的及可用的HEVC流時(如通過 在HEVCConfigurationBox中給出的配置(包含配置文件及等級)下操作的HEVC解碼器觀 察看來),使用樣本項名稱'hvcl'。
[0192] 在一個實例中,視頻文件創(chuàng)建模塊72可經配置以根據以下語法定義HEVC視覺樣 本項:
[0193] //視覺對象序列 class HEVCConfigtiralionBox extends Box(ihvcC,) j HEVC Decode rConfigiiraiionRccord() HEVCConjig; } class HEVCScunpleEniryO extends VisuaiSampleEniry (?τ\'?'Γ){ HEVCConfigtiraiionBox config; MPEG4BitRalcBox(); //1 if選的 MPEG4ExicnsionDcscriptorsBox (); //njMfi'J cxira_hoxes boxes; //"]選的
[0194] 另外,在上文提供的實例語法中,如在基礎類VisualSampleEntry中定義的 Compressorname可指示供推薦的值"\013HEVC譯碼"(\012為10,以字節(jié)來計的字串的長 度)使用的壓縮器的名稱??蛇M一步根據HEVCFF來定義語法元素 Compressorname??筛?據解碼器配置記錄來定義語法元素 config。
[0195] 視頻文件創(chuàng)建模塊72可進一步經配置以組合包含NAL單元的存取單元,其中寬度 及高度字段包含于VisualSampleEntry中。在一個實例中,VisualSampleEntry中的寬度及 高度字段必須正確地用文獻證明通過所述項描述的HEVC流的經剪裁的圖片尺寸(視覺呈 現大?。?。在一個實例中,寬度及高度字段并不反映由例如全景(pan-scan)等SEI消息造成 的大小的任何改變。在一些實例中,例如全景等SEI消息的視覺處置為可選的及取決于終 端的。另外,在某種情況下,如果序列的寬度及高度改變,那么需要新的樣本描述。在一些實 例中,軌標頭中的寬度及高度字段可能與視頻軌中的一個或一個以上VisualSampleEntry 中的寬度及高度字段不相同。如ISO基礎媒體文件格式中所指定,如果需要標準化視覺呈 現,那么可將所有序列標準化成軌寬度及高度以用于呈現。
[0196] 在視頻文件創(chuàng)建單元72產生視頻文件之后,視頻文件創(chuàng)建單元72可將視頻文件 傳遞到視頻文件輸出接口 76。視頻文件輸出接口 76可將視頻文件輸出到(例如)源裝置 20的輸出接口 22。在一些實例中,視頻文件輸出接口 76可將視頻文件輸出到源裝置20 (未 圖示)的存儲媒體或存儲裝置32。
[0197] 圖6為說明基于IS0BMFF及當前HEVCFF的實例HEVC媒體文件的結構的概念圖。 HEVC媒體文件242表示使用本發(fā)明的技術的文件格式文本的實例,其中(1)參數集可包含 于樣本描述中或樣本描述所應用于的流的樣本中;(2)當不同類型的參數集涉及其是包含 于樣本描述中還是樣本描述所應用于的流的樣本中時,不同類型的參數集未捆綁在一起; (3)樣本描述包含用于每一種類型的參數集的陣列,且用于特定類型的參數集的陣列可僅 包含所述特定類型的參數集NAL單元且樣本描述還包含用于含聲明的SEI消息的SEI NAL 單元的陣列;(4)流屬性包含于樣本描述中。應注意,圖6中的實例HEVC媒體文件242希望 說明視頻數據流與元數據之間的邏輯關系。為了簡潔起見,未說明HEVC媒體文件242的完 整封裝結構。然而,HEVC媒體文件242可利用根據HEVCFF定義的信息盒及封裝結構???由視頻文件創(chuàng)建單元72根據上文所描述的實例語法及約束產生HEVC媒體文件。
[0198] 在圖6中所說明的實例中,HEVC媒體文件242包含元數據信息盒244及視頻數據 流246。元數據信息盒244可類似于ISOBMFF 'moov'信息盒且可含有用于視頻數據流266 的數據,例如解碼器配置記錄250。在一個實例中,元數據表可為樣本表信息盒。元數據信 息盒244及解碼器配置記錄250兩者可形成樣本描述的部分。在一個實例中,解碼器配置記 錄250可使用上文所描述的實例語法來產生且可包含關于參數集的信息及SEI NAL單元消 息。另外,解碼器配置記錄包含語法元素 (SYNTAX ELEMENTS)。語法元素 (SYNTAX ELEMENTS) 可包含關于流屬性的信息,例如空間分辨率。在一個實例中,解碼器配置記錄252可包含 SPS陣列254及SEI陣列258。SPS陣列254可包含SPS NAL單元255。SEI陣列258可包 含 SEI NAL 單元 259。
[0199] 視頻數據流246可對應于HEVCFF中所描述的視頻或視覺軌。因此,視頻數據流246 可因此可使用:(l)HandlerBox中的為'參閱'的handler_type ; (2)視頻媒體標頭'vmhd' ; 以及(3)VisualSampleEntry的衍生形式。視頻數據流246可包含多個存取單元260A到 260N。可由視頻文件創(chuàng)建單元72根據上文所描述的實例語法及約束產生存取單元260A到 260N。如圖6中所說明,存取單元260A包含PPS NAL單元256A及VCL NAL單元256B且存 取單元260N包含APS NAL單元256C及VCL NAL 256D。在一個實例中,視頻數據流246可 包含一或多個時間層且元數據信息盒244可進一步包含關于是否將視頻數據流246劃分成 一或多個軌的指示。
[0200] 以此方式,HEVC文件242表示實例文件,其中(1)參數集包含于樣本描述中及樣 本描述所應用于的流的樣本中;(2)當不同類型的參數集涉及其是包含于樣本描述中還是 樣本描述所應用于的流的樣本中時,不同類型的參數集未捆綁在一起;(3)樣本描述包含 用于每一種類型的參數集的陣列且樣本描述還包含用于含有聲明的SEI消息的SEI NAL單 元的陣列;及(4)流屬性包含于樣本描述中。
[0201] 再次參看圖3,源裝置12可經配置以根據一或多個文件格式輸出經編碼視頻數據 且目的地裝置14可經配置以接收一或多個文件格式(例如,本文中所描述的文件格式)的 經編碼視頻數據。可經由源裝置12的輸出接口 22將本文中所描述的視頻文件直接發(fā)射到 目的地裝置14。還可(或者)將視頻文件存儲到存儲裝置32上以用于稍后由目的地裝置 14或其它裝置存取以用于解碼及/或播放。
[0202] 目的地裝置14包含輸入接口 28、解封裝模塊29、視頻解碼器30及顯示裝置34。 在一些情況下,輸入接口 28可包含接收器及/或調制解調器。目的地裝置14的輸入接口 28經由鏈路16接收經編碼視頻數據。經由鏈路16傳達或提供于存儲裝置32上的經編碼 視頻數據可包含由視頻編碼器20產生以供視頻解碼器(例如,視頻解碼器30)在解碼視頻 數據中使用的多種語法元素。此類語法元素可包含于在通信媒體上予以傳輸、存儲于存儲 媒體中或存儲文件服務器的經編碼視頻數據中。在一些實例中,此類語法元素可包含用信 號發(fā)出幀內譯碼模式的語法元素,如本發(fā)明中所描述。
[0203] 顯示裝置34可與目的地裝置14集成或在目的地裝置14外部。在一些實例中, 目的地裝置14可包含集成顯示裝置,且還經配置以與外部顯示裝置介接。在其它實例中, 目的地裝置14可為顯示裝置。一股來說,顯示裝置34向用戶顯示已解碼視頻數據,且可 包括多種顯示裝置中的任一者,例如,液晶顯示器(LCD)、等離子顯示器、有機發(fā)光二極管 (0LED)顯示器或另一類型的顯示裝置。
[0204] 目的地裝置14可經由鏈路16接收待解碼的經編碼視頻數據。鏈路16可包括能 夠將經編碼視頻數據從源裝置12移動到目的地裝置14的任何類型的媒體或裝置。在一個 實例中,鏈路16可包括通信媒體以使得源裝置12能夠實時地將經編碼視頻數據直接發(fā)射 到目的地裝置14??筛鶕ㄐ艠藴剩ɡ?,無線通信協議)來調制經編碼視頻數據,且將經 編碼視頻數據發(fā)射到目的地裝置14。通信媒體可包括任何無線或有線通信媒體,例如射頻 (RF)頻譜或一或多個物理傳輸線。通信媒體可形成基于包的網絡的部分,例如局域網、廣域 網或例如因特網等全球網絡。通信媒體可包含可用于促進從源裝置12到目的地裝置14的 通信的路由器、交換器、基站或任何其它裝備。在一些情況下,輸出接口 22可包含調制器/ 解調器(調制解調器)及/或發(fā)射器。
[0205] 或者,可將經編碼數據從輸出接口 22輸出到存儲裝置32。類似地,可通過輸入接 口 28從存儲裝置32中存取經編碼數據。存儲裝置32可包含多種分散式或本地存取的數 據存儲媒體中的任一者,例如,硬盤驅動器、藍光光盤、DVD、CD-ROM、快閃存儲器、易失性或 非易失性存儲器,或用于存儲經編碼視頻數據的任何其它合適的數字存儲媒體。在另一實 例中,存儲裝置32可對應于可保持由源裝置12產生的經編碼視頻的文件服務器或另一中 間存儲裝置。目的地裝置14可經由流式傳輸或下載從存儲裝置32存取所存儲的視頻數 據。文件服務器可為能夠存儲經編碼視頻數據且將所述經編碼視頻數據發(fā)射到目的地裝置 14的任何類型的服務器。實例文件服務器包含網絡服務器(例如,用于網站)、FTP服務器、 網絡附加存儲器(NAS)裝置,或本地磁盤驅動器。目的地裝置14可通過任何標準數據連接 (包含因特網連接)存取經編碼視頻數據。此情形可包含適合于存取存儲于文件服務器上 的經編碼視頻數據的無線信道(例如,Wi-Fi連接)、有線連接(例如,DSL、電纜調制解調器 等)或兩者的組合。來自存儲裝置32的經編碼視頻數據的傳輸可為流式傳輸、下載傳輸或 流式傳輸與下載傳輸兩者的組合。
[0206] 本發(fā)明的技術未必限于無線應用或設置。所述技術可適用于支持多種多媒體應 用中的任一者的視頻譯碼,多種多媒體應用例如空中電視廣播、有線電視傳輸、衛(wèi)星電視傳 輸、流式視頻傳輸(例如,經由互聯網)、編碼數字視頻以用于存儲于數據存儲媒體上、解碼 存儲于數據存儲媒體上的數字視頻,或其它應用。在一些實例中,系統1〇可經配置以支持 單向或雙向視頻傳輸以支持例如視頻流式傳輸、視頻播放、視頻廣播及/或視頻電話等應 用。
[0207] 盡管圖3中未展示,但在一些方面中,視頻編碼器20及視頻解碼器30可各自與音 頻編碼器及解碼器集成,且可包含適當的多路復用器-多路分用器(MUX-DEMUX)單元或其 它硬件及軟件,以處置對共同數據流或單獨數據流中的音頻與視頻兩者的編碼。在可適用 的情況下,在一些實例中,MUX-DEMUX單元可符合ITU Η. 223多路復用器協議,或例如用戶 數據報協議(UDP)等其它協議。
[0208] 視頻編碼器20及視頻解碼器30各自可實施為多種合適編碼器電路中的任一 者,多種合適編碼器電路例如一或多個微處理器、數字信號處理器(DSP)、專用集成電路 (ASIC)、現場可編程門陣列(FPGA)、離散邏輯、軟件、硬件、固件或其任何組合。當部分地以 軟件來實施技術時,裝置可將用于軟件的指令存儲于合適的非暫時性計算機可讀媒體中且 在硬件中使用一或多個處理器來執(zhí)行所述指令以執(zhí)行本發(fā)明的技術。視頻編碼器20及視 頻解碼器30中的每一者可包含于一或多個編碼器或解碼器中,視頻編碼器20及視頻解碼 器30中的任一者可集成為相應裝置中的組合式編碼器/解碼器(CODEC)的部分。
[0209] 解封裝模塊29可經配置以接收視頻文件,分析視頻文件,以使得視頻解碼器30可 輸出已解碼視頻數據。在一些實例中,解封裝模塊29可執(zhí)行封裝模塊72的逆過程。在一 些實例中,視頻解碼器30可執(zhí)行一股與關于視頻編碼器20(圖4)所描述的編碼遍次互逆 的解碼遍次。
[0210] 圖7為說明根據本發(fā)明的技術的產生包含經譯碼視頻內容的視頻文件的實例的 流程圖。圖7中所描述的過程可由視頻譯碼裝置來執(zhí)行,視頻譯碼裝置可包含本文中所描 述的源裝置20、封裝模塊21及視頻創(chuàng)建模塊72的任何組合。視頻譯碼裝置可獲得經譯碼 視頻內容的切片(702)。經譯碼視頻內容可包含根據HEVC譯碼的多個切片。視頻譯碼裝置 可獲得與視頻內容的切片相關聯的參數集(704)。參數集可包含SPS、PPS及/或APS。視 頻譯碼裝置可將經譯碼視頻內容的切片封裝于存取單元內(706)??扇绫疚闹兴枋鰜矶?義存取單元。視頻譯碼裝置可將參數集封裝于存取單元內(708)。可根據本文中所描述的 技術將參數集封裝于存取單元內。視頻譯碼裝置可將參數集封裝于樣本描述內(710)。在 一個實例中,可將PPS封裝于一或多個存取單元內,而將SPS封裝于樣本描述內。視頻譯碼 裝置輸出視頻文件(712)。可基于以文件格式定義進一步產生視頻文件,其中文件格式是基 于本文中所描述的技術。
[0211] 在一或多個實例中,可以硬件、軟件、固件或其任何組合來實施所描述功能。如果 以軟件來實施,那么可將所述功能作為一或多個指令或代碼存儲于計算機可讀媒體上或經 由計算機可讀媒體而傳輸且由基于硬件的處理單元來執(zhí)行。計算機可讀媒體可包含計算機 可讀存儲媒體(其對應于例如數據存儲媒體等有形媒體)或通信媒體,通信媒體包含(例 如)根據通信協議促進計算機程序從一處傳送到另一處的任何媒體。以此方式,計算機可 讀媒體一股可對應于(1)非暫時性的有形計算機可讀存儲媒體,或(2)例如信號或載波等 通信媒體。數據存儲媒體可為可由一或多個計算機或一或多個處理器存取以檢索指令、代 碼及/或數據結構以用于實施本發(fā)明中所描述的技術的任何可用媒體。計算機程序產品可 包含計算機可讀媒體。
[0212] 以實例說明且非限制,此類計算機可讀存儲媒體可包括RAM、ROM、EEPROM、CD-ROM 或其它光盤存儲器、磁盤存儲器或其它磁性存儲裝置、快閃存儲器,或可用以存儲呈指令或 數據結構形式的所要程序代碼且可由計算機存取的任何其它媒體。而且,可恰當地將任何 連接稱作計算機可讀媒體。舉例來說,如果使用同軸電纜、光纜、雙絞線、數字訂戶線(DSL) 或例如紅外線、無線電及微波等無線技術從網站、服務器或其它遠程源傳輸指令,那么同軸 電纜、光纜、雙絞線、DSL或例如紅外線、無線電及微波等無線技術包含于媒體的定義中。然 而,應理解,計算機可讀存儲媒體及數據存儲媒體不包含連接、載波、信號或其它暫時性媒 體,而是有關非暫時性有形存儲媒體。如本文中所使用,磁盤及光盤包含壓縮光盤(⑶)、 激光光盤、光學光盤、數字影音光盤(DVD)、軟磁盤及藍光光盤,其中磁盤通常磁性地復制數 據,而光盤使用激光光學地復制數據。上述各者的組合也應包含于計算機可讀媒體的范圍 內。
[0213] 可由例如一或多個數字信號處理器(DSP)、通用微處理器、專用集成電路(ASIC)、 現場可編程邏輯陣列(FPGA)或其它等效集成或離散邏輯電路等一或多個處理器來執(zhí)行指 令。因此,如本文中所使用的術語"處理器"可指前述結構或適合于實施本文中所描述的技 術的任何其它結構中的任一者。另外,在一些方面,可將本文中所描述的功能性提供于經配 置以用于編碼及解碼的專用硬件及/或軟件模塊內,或并入于組合式編碼譯碼器中。并且, 可將所述技術完全實施于一或多個電路或邏輯元件中。
[0214] 本發(fā)明的技術可在廣泛多種裝置或設備中予以實施,所述裝置或設備包含無線手 機、集成電路(1C)或一組1C(例如,芯片組)。在本發(fā)明中描述各種組件、模塊或單元以強 調經配置以執(zhí)行所揭示技術的裝置的功能方面,但未必需要通過不同硬件單元來實現。更 確切地說,如上文所描述,可將各種單元組合于編碼譯碼器硬件單元中,或通過互操作性硬 件單元(包含如上文所描述的一或多個處理器)的集合且結合合適軟件及/或固件來提供 所述單元。
[0215] 已描述了各種實例。這些及其它實例在所附權利要求書的范圍內。
【權利要求】
1. 一種產生包含經譯碼視頻內容的視頻文件的方法,所述方法包括: 獲得經譯碼視頻內容的多個切片; 將經譯碼視頻內容的所述多個切片封裝于視頻流的多個存取單元內; 獲得與所述視頻流相關聯的多個流屬性;以及 將流屬性封裝于文件軌的樣本描述內,其中所述流屬性包含所述視頻流的幀速率及空 間分辨率中的至少一者。
2. 根據權利要求1所述的方法,其中所述樣本描述進一步包含指示由圖塊集合涵蓋的 幾何區(qū)的信息。
3. 根據權利要求1所述的方法,其中所述樣本描述進一步包含用于經譯碼視頻內容的 所述切片的位深度值。
4. 一種裝置,其包括視頻文件創(chuàng)建模塊,所述視頻文件創(chuàng)建模塊經配置以: 獲得經譯碼視頻內容的多個切片; 將經譯碼視頻內容的所述多個切片封裝于視頻流的多個存取單元內; 獲得與所述視頻流相關聯的多個流屬性;以及 將流屬性封裝于文件軌的樣本描述內,其中所述流屬性包含所述視頻流的幀速率及空 間分辨率中的至少一者。
5. 根據權利要求4所述的裝置,其中所述樣本描述進一步包含指示由圖塊集合涵蓋的 幾何區(qū)的信息。
6. 根據權利要求4所述的裝置,其中所述樣本描述進一步包含用于經譯碼視頻內容的 所述切片的位深度值。
7. -種非暫時性計算機可讀存儲媒體,其具有存儲于其上的指令,所述指令在執(zhí)行時 致使視頻譯碼裝置的一或多個處理器進行以下操作: 獲得經譯碼視頻內容的多個切片; 將經譯碼視頻內容的所述多個切片封裝于視頻流的多個存取單元內; 獲得與所述視頻流相關聯的多個流屬性;以及 將流屬性封裝于文件軌的樣本描述內,其中所述流屬性包含所述視頻流的幀速率及空 間分辨率中的至少一者。
8. 根據權利要求7所述的非暫時性計算機可讀存儲媒體,其中所述樣本描述進一步包 含指示由圖塊集合涵蓋的幾何區(qū)的信息。
9. 根據權利要求7所述的非暫時性計算機可讀存儲媒體,其中所述樣本描述進一步包 含用于經譯碼視頻內容的所述切片的位深度值。
10. -種經配置以產生包含經譯碼視頻內容的視頻文件的設備,所述設備包括: 用于獲得經譯碼視頻內容的多個切片的裝置; 用于將經譯碼視頻內容的所述多個切片封裝于視頻流的多個存取單元內的裝置; 用于獲得與所述視頻流相關聯的多個流屬性的裝置;以及 用于將流屬性封裝于文件軌的樣本描述內的裝置,其中所述流屬性包含所述視頻流的 幀速率及空間分辨率中的至少一者。
11. 一種處理包含經譯碼視頻內容的視頻文件的方法,所述方法包括: 獲得文件軌,其中所述文件軌包含包含視頻流的經譯碼視頻內容的多個切片;以及 從所述文件軌的樣本描述中獲得與所述視頻流相關聯的多個流屬性,其中所述流屬性 包含所述視頻流的幀速率及空間分辨率中的至少一者。
12. 根據權利要求11所述的方法,其中所述樣本描述進一步包含指示由圖塊集合涵蓋 的幾何區(qū)的信息。
13. 根據權利要求11所述的方法,其中所述樣本描述進一步包含用于經譯碼視頻內容 的所述切片的位深度值。
14. 一種裝置,其包括處理器,所述處理器經配置以進行以下操作: 獲得文件軌,其中所述文件軌包含包含視頻流的經譯碼視頻內容的多個切片;以及 從所述文件軌的樣本描述中獲得與所述視頻流相關聯的多個流屬性,其中所述流屬性 包含所述視頻流的幀速率及空間分辨率中的至少一者。
15. 根據權利要求14所述的裝置,其中所述樣本描述進一步包含指示由圖塊集合涵蓋 的幾何區(qū)的信息。
16. 根據權利要求14所述的裝置,其中所述樣本描述進一步包含用于經譯碼視頻內容 的所述切片的位深度值。
17. -種非暫時性計算機可讀存儲媒體,其具有存儲于其上的指令,所述指令在執(zhí)行時 致使視頻譯碼裝置的一或多個處理器進行以下操作: 獲得文件軌,其中所述文件軌包含包含視頻流的經譯碼視頻內容的多個切片;以及 從所述文件軌的樣本描述中獲得與所述視頻流相關聯的多個流屬性,其中所述流屬性 包含所述視頻流的幀速率及空間分辨率中的至少一者。
18. 根據權利要求17所述的非暫時性計算機可讀存儲媒體,其中所述樣本描述進一步 包含指示由圖塊集合涵蓋的幾何區(qū)的信息。
19. 根據權利要求17所述的非暫時性計算機可讀存儲媒體,其中所述樣本描述進一步 包含用于經譯碼視頻內容的所述切片的位深度值。
20. -種經配置以處理包含經譯碼視頻內容的視頻文件的設備,所述設備包括: 用于獲得文件軌的裝置,其中所述文件軌包含包含視頻流的經譯碼視頻內容的多個切 片;以及 用于從所述文件軌的樣本描述中獲得與所述視頻流相關聯的多個流屬性的裝置,其中 所述流屬性包含所述視頻流的幀速率及空間分辨率中的至少一者。
【文檔編號】H04N19/70GK104221386SQ201380007023
【公開日】2014年12月17日 申請日期:2013年1月30日 優(yōu)先權日:2012年1月30日
【發(fā)明者】王益魁, 陳穎 申請人:高通股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
郴州市| 新巴尔虎右旗| 城市| 巴南区| 丰台区| 鄂托克前旗| 通榆县| 晴隆县| 承德市| 庆元县| 昭觉县| 江口县| 轮台县| 和田市| 山阴县| 喀喇沁旗| 常州市| 高雄县| 扬中市| 前郭尔| 台东市| 阳东县| 达州市| 天全县| 塘沽区| 林甸县| 武鸣县| 溆浦县| 信阳市| 宜春市| 唐海县| 海淀区| 油尖旺区| 安西县| 阿坝县| 鄂伦春自治旗| 钦州市| 疏附县| 天台县| 班戈县| 乐安县|