TW202127897A - 用於串流傳輸媒體資料的多解碼器介面 - Google Patents
用於串流傳輸媒體資料的多解碼器介面 Download PDFInfo
- Publication number
- TW202127897A TW202127897A TW110100869A TW110100869A TW202127897A TW 202127897 A TW202127897 A TW 202127897A TW 110100869 A TW110100869 A TW 110100869A TW 110100869 A TW110100869 A TW 110100869A TW 202127897 A TW202127897 A TW 202127897A
- Authority
- TW
- Taiwan
- Prior art keywords
- decoder
- time
- indication
- instance
- video
- Prior art date
Links
- 230000001360 synchronised effect Effects 0.000 claims abstract description 8
- 238000009877 rendering Methods 0.000 claims abstract description 7
- 239000000872 buffer Substances 0.000 claims description 67
- 238000000034 method Methods 0.000 claims description 54
- 230000002776 aggregation Effects 0.000 claims description 42
- 238000004220 aggregation Methods 0.000 claims description 42
- 238000003860 storage Methods 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 12
- 238000005259 measurement Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 5
- 239000012634 fragment Substances 0.000 description 37
- 239000000463 material Substances 0.000 description 35
- 238000000605 extraction Methods 0.000 description 29
- 239000000523 sample Substances 0.000 description 21
- 230000006978 adaptation Effects 0.000 description 20
- 238000012545 processing Methods 0.000 description 20
- 238000004806 packaging method and process Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 18
- 239000000284 extract Substances 0.000 description 14
- 238000002360 preparation method Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 11
- 238000012546 transfer Methods 0.000 description 10
- 230000006837 decompression Effects 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 101100412093 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rec16 gene Proteins 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- FMYKJLXRRQTBOR-UBFHEZILSA-N (2s)-2-acetamido-4-methyl-n-[4-methyl-1-oxo-1-[[(2s)-1-oxohexan-2-yl]amino]pentan-2-yl]pentanamide Chemical group CCCC[C@@H](C=O)NC(=O)C(CC(C)C)NC(=O)[C@H](CC(C)C)NC(C)=O FMYKJLXRRQTBOR-UBFHEZILSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000012656 cationic ring opening polymerization Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000012092 media component Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4431—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42607—Internal components of the client ; Characteristics thereof for processing the incoming bitstream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
- H04N21/4382—Demodulation or channel decoding, e.g. QPSK demodulation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6005—Decoder aspects
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods or arrangements to increase the throughput
- H03M7/6023—Parallelization
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一種用於解碼媒體資料的示例設備,包括被配置為儲存媒體資料的記憶體以及在電路中實現並通信地耦合到記憶體的一個或多個處理器。所述一個或多個處理器被配置為:決定是否意圖同步兩個或更多個解碼器實例。所述一個或多個處理器被配置為基於意圖同步所述兩個或更多個解碼器實例,控制所述兩個或更多個解碼器實例以使得在相同呈現時間處能夠顯現來自兩個或更多個解碼器實例中每一個解碼器實例的經解碼資料。
Description
本申請主張享有於2020年1月9日提交的美國臨時申請No. 62/959,064的權益,其全部內容透過引用的方式合併於此。
本公開內容涉及對媒體資料的解碼。
數位視頻能力可以結合到各種設備中,包括數位電視、數位直接廣播系統、無線廣播系統、個人數位助理(PDA)、膝上型電腦或臺式計算機、數位相機、數位記錄設備、數位媒體播放器、視頻遊戲設備、視頻遊戲機、行動或衛星無線電電話、視頻電話會議設備等。數位視頻設備實施視頻壓縮技術,例如在MPEG-2、MPEG-4、ITU-T H.263或ITU-T H.264/MPEG-4, Part 10, Advanced Video Coding(AVC)、ITU-T H.265(也稱為高效視頻譯碼(HEVC))以及此類標準的擴展中所描述的視頻壓縮技術,以更有效地發送和接收數位視頻資訊。
在諸如音頻和視頻資料之類的媒體資料已經被編碼之後,可以將媒體資料打包以便傳輸或儲存。可以將媒體資料組合成符合多種標準中的任何標準的媒體檔案,所述標準諸如國際標準化組織(ISO)基礎媒體檔案格式及其擴展,諸如AVC。
一般來說,本公開內容描述了用於由客戶端設備處的不同相應解碼器解碼不同類型的媒體資料的技術。最近,當處理沉浸式資料時,發現了利用各種應用編程介面(API)的一組問題。本公開內容的技術可以解決所發現的問題。
在一個示例中,一種解碼媒體資料的方法包括:由客戶端設備決定是否意圖同步兩個或更多個解碼器實例,並且基於意圖同步所述兩個或更多個解碼器實例,控制所述兩個或更多個解碼器實例,以使得在相同呈現(presentation)時間處能夠顯現(render)來自兩個或更多個解碼器實例中每一個解碼器實例的經解碼資料。
在另一示例中,一種用於解碼媒體資料的設備包括:被配置為儲存媒體資料的記憶體,以及在電路中實現並通信地耦合到記憶體的一個或多個處理器,所述一個或多個處理器被配置為:決定是否意圖同步兩個或更多個解碼器實例,並且基於意圖同步所述兩個或更多個解碼器實例,控制所述兩個或更多個解碼器實例,以使得在相同呈現時間處能夠顯現來自兩個或更多個解碼器實例中每一個解碼器實例的經解碼資料。
在另一示例中,一種非暫時性計算機可讀儲存媒體儲存指令,所述指令在由一個或多個處理器執行時使所述一個或多個處理器:決定是否意圖同步兩個或更多個解碼器實例,並且基於意圖同步所述兩個或更多個解碼器實例,控制所述兩個或更多個解碼器實例以使得在相同呈現時間處顯現來自兩個或更多個解碼器實例中每一個解碼器實例的經解碼資料。
在另一個示例中,一種用於解碼媒體資料的設備包括:用於決定是否意圖同步兩個或更多個解碼器實例的單元,以及用於基於意圖同步所述兩個或更多個解碼器實例,控制兩個或更多個解碼器實例以使得在相同呈現時間處能夠顯現來自兩個或更多個解碼器實例中每一個解碼器實例的經解碼資料的單元。
在圖式和以下說明中闡述了一個或多個示例的細節。依據說明書和圖式以及申請專利範圍,其他特徵、目的和優點將是顯而易見的。
在一些媒體應用中,媒體場景由多個視頻組成。可以對這樣的視頻進行後處理,然後聯合地顯現。例如,可以對它們進行拼接、覆蓋,或者場景合成創建沉浸式體驗。本公開內容描述了可以應用於包括沉浸式媒體資料(例如,音頻和視頻資料)的位元串流的技術。
在一些示例中,多視頻解碼器(MVD)透過諸如OpenMAX IL或Android的MediaCodec API之類的API來提供對解碼硬體的存取。這些API使得MVD能夠創建和運行多個解碼器實例,即使在存在單個硬體解碼器的情況下。
然而,這些API可能缺乏用於處理沉浸式媒體的一些能力。例如,API可能缺乏對於發現MVD的聚合處理能力的能力。例如,對於同時解碼,對來自不同串流的多個樣本的邏輯分組或許是不可能的。在一些示例中,可從緩衝器標頭中的nTimeStamp參數推斷出該聚合,但在解碼這些相關樣本時,MVD元件沒有資訊來將延遲偏斜(delay skew)保持為最小。另外,對不同解碼器實例的排程的精細粒度控制或許是不可能的。
根據本公開內容的技術,對解碼器API的抽象擴展可以提供對沉浸式媒體的更好支持,並且解決上面討論的問題。例如,可以將這些抽象擴展映射到OpenMAX IL和MediaCodec。
本公開內容的技術可應用於符合根據ISO基礎媒體檔案格式、可縮放視頻譯碼(SVC)檔案格式、高級視頻譯碼(AVC)檔案格式、第三代合作夥伴計劃(3GPP)檔案格式和/或多視角視頻譯碼(MVC)檔案格式或其它類似視頻檔案格式中的任一個檔案格式封裝的視頻資料的視頻檔案。
在HTTP串流傳輸中,頻繁使用的操作包括HEAD、GET和partial GET。HEAD操作提取與給定統一資源定位符(URL)或統一資源名稱(URN)相關聯的檔案的標頭,而不提取與該URL或URN相關聯的酬載。GET操作提取與給定URL或URN相關聯的整個檔案。partial GET操作接收某個位元組範圍作為輸入參數,並且提取檔案的連續的一定數量的位元組,其中位元組的數量對應於所接收的位元組範圍。因此,可提供電影片段以用於HTTP串流傳輸,因為partial GET操作可獲得一個或多個個體電影片段。在一個電影片段中,可以存在不同軌道的若干軌道片段。在HTTP串流傳輸中,媒體呈現可以是客戶端可存取的結構化資料集合。客戶端可以請求並下載媒體資料資訊以向用戶呈現串流傳輸服務。
在使用HTTP串流傳輸來串流傳輸3GPP資料的示例中,可以存在針對多媒體內容的視頻和/或音頻資料的多個表示。如下文所解釋,不同表示可對應於不同譯碼特性(例如,視頻譯碼標準的不同設定檔或級別)、不同的譯碼標準或譯碼標準的擴展(例如,多視角和/或可縮放擴展)或不同位元速率。可在媒體呈現描述(MPD)資料結構中定義這些表示的清單。媒體呈現可以對應於HTTP串流傳輸客戶端設備可存取的結構化資料集合。HTTP串流傳輸客戶端設備可以請求並下載媒體資料資訊以向客戶端設備的用戶提供串流傳輸服務。媒體呈現可在MPD資料結構中描述,MPD資料結構可包括MPD的更新。
媒體呈現可以包含一個或多個時段的序列。每個時段可以延伸到下一時段的開始,或者在最後一個時段的情況下,延伸到媒體呈現的結束。每個時段可以包含相同媒體內容的一個或多個表示。表示可以是音頻、視頻、時控文本或其它此類資料的多個替代編碼版本中的一個。這些表示可以在編碼類型方面不同,例如對於視頻資料,在位元速率、解析度和/或編解碼器方面不同以及對於音頻資料,在位元速率、語言和/或編解碼器方面不同。術語“表示”可用於指代與多媒體內容的特定時段相對應且以特定方式編碼的經編碼音頻或視頻資料的區段。
可以將特定時段的表示指派給由MPD中的某個屬性所指示的群組,該屬性指示所述表示所屬的適應集合。同一適應集合中的表示通常被認為是彼此的替代,因為客戶端設備可在這些表示之間動態且無縫地切換,例如以執行頻寬適應。例如,可以將某個特定時段的視頻資料的每個表示指派給相同的適應集合,使得可以選擇所述表示中的任何表示來用於解碼以呈現對應時段的多媒體內容的媒體資料(諸如視頻資料或音頻資料)。在一些示例中,一個時段內的媒體內容可由來自群組0的一個表示(如果存在)來表示或由來自每一非零群組的至多一個表示的組合來表示。某個時段的每個表示的定時資料可相對於該時段的開始時間來表達。
表示可以包括一個或多個段。每個表示可以包括初始化段,或者表示的每個段可以是自初始化的。當存在初始化段時,初始化段可以包含用於存取該表示的初始化資訊。通常,初始化段不包含媒體資料。段可以由識別符唯一地查詢,所述識別符諸如統一資源定位符(URL)、統一資源名稱(URN)或統一資源識別符(URI)。MPD可為每個段提供識別符。在一些示例中,MPD還可以以範圍(range
)屬性的形式來提供位元組範圍,其可對應於可透過URL、URN或URI存取的檔案內的段的資料。
可以選擇不同的表示以用於對不同類型的媒體資料的大致同時的提取。例如,客戶端設備可選擇用於從中提取段的音頻表示、視頻表示和時控文本表示。在一些示例中,客戶端設備可以選擇特定適應集合以用於執行頻寬適應。即,客戶端設備可選擇包括視頻表示的適應集合、包括音頻表示的適應集合和/或包括時控文本的適應集合。可替換地,客戶端設備可選擇用於某些類型的媒體(例如,視頻)的適應集合,並直接選擇用於其它類型的媒體(例如,音頻和/或時控文本)的表示。
圖1繪示實現用於透過網路來串流傳輸媒體資料的技術的示例系統10的方塊圖。在該示例中,系統10包括內容準備設備20、伺服器設備60和客戶端設備40。客戶端設備40和伺服器設備60透過網路74通信地耦合,所述網路可包括網際網路。在一些示例中,內容準備設備20和伺服器設備60也可以透過網路74或另一網路耦合,或者可以直接通信地耦合。在一些示例中,內容準備設備20和伺服器設備60可包括相同設備。
在圖1的示例中,內容準備設備20包括音頻源22和視頻源24。音頻源22可包括(例如)麥克風,其產生表示要由音頻編碼器26編碼的所擷取音頻資料的電信號。可替換地,音頻源22可包括儲存先前記錄的音頻資料的儲存媒體、諸如計算機化合成器之類的音頻資料產生器或任何其它音頻資料源。視頻源24可包括產生要由視頻編碼器28編碼的視頻資料的視頻攝像機、用先前記錄的視頻資料編碼的儲存媒體、諸如計算機圖形源之類的視頻資料產生單元、或任何其它視頻資料源。在所有示例中,內容準備設備20不一定要通信地耦合到伺服器設備60,而是可將多媒體內容儲存到由伺服器設備60讀取的單獨媒體。
原始音頻和視頻資料可以包括類比或數位資料。類比資料可在由音頻編碼器26和/或視頻編碼器28編碼之前進行數位化。音頻源22可在說話參與者說話時從說話參與者獲得音頻資料,且視頻源24可同時獲得說話參與者的視頻資料。在其它示例中,音頻源22可包括包含所儲存的音頻資料的計算機可讀儲存媒體,且視頻源24可包括包含所儲存的視頻資料的計算機可讀儲存媒體。以此方式,本公開內容中所描述的技術可應用於實況、串流傳輸、即時音頻和視頻資料或應用於存檔的、預先記錄的音頻和視頻資料。
對應於視頻幀的音頻幀通常是包含音頻資料的音頻幀,所述音頻資料是與包含在視頻幀內的由視頻源24擷取(或產生)的視頻資料同時地由音頻源22擷取(或產生)的。例如,當說話參與者一般透過說話製造出音頻資料時,音頻源22擷取音頻資料,並且視頻源24同時(即,當音頻源22擷取音頻資料時)擷取說話參與者的視頻資料。因此,音頻幀可在時間上對應於一個或多個特定視頻幀。因此,對應於視頻幀的音頻幀通常對應於如下情況:其中,同時擷取音頻資料和視頻資料且音頻幀和視頻幀分別包括同時擷取的音頻資料和視頻資料。
在一些示例中,音頻編碼器26可以在每個經編碼音頻幀中編碼時間戳,該時間戳表示記錄經編碼音頻幀的音頻資料的時間,且類似地,視頻編碼器28可以在每個經編碼視頻幀中編碼時間戳,該時間戳表示記錄經編碼視頻幀的視頻資料的時間。在這種示例中,對應於視頻幀的音頻幀可包括:包含時間戳的音頻幀和包含相同時間戳的視頻幀。內容準備設備20可包括內部時脈,音頻編碼器26和/或視頻編碼器28可從內部時脈產生時間戳,或音頻源22和視頻源24可以使用內部時脈分別將音頻資料和視頻資料與時間戳相關聯。
在一些示例中,音頻源22可以向音頻編碼器26發送與記錄音頻資料的時間相對應的資料,且視頻源24可以向視頻編碼器28發送與記錄視頻資料的時間相對應的資料。在一些示例中,音頻編碼器26可以在經編碼音頻資料中編碼序列識別符,以指示經編碼音頻資料的相對時間排序,但未必指示記錄音頻資料的絕對時間;類似地,視頻編碼器28也可使用序列識別符來指示經編碼視頻資料的相對時間排序。類似地,在一些示例中,可以將序列識別符映射到時間戳或以其他方式與時間戳相關。
音頻編碼器26通常製造出經編碼音頻資料的串流,而視頻編碼器28製造出經編碼視頻資料的串流。每個單獨的資料串流(無論是音頻還是視頻)可以被稱為基本串流。基本串流是表示的單個經數位譯碼(可能壓縮)分量。例如,表示的經譯碼視頻或音頻部分可以是基本串流。基本串流在被封裝在視頻檔案內之前可以被轉換成封包化基本串流(PES)。在相同的表示中,串流ID可以用於區分屬於一個基本串流的PES封包與其它PES封包。基本串流的資料的基本單元是封包化基本串流(PES)封包。因此,經譯碼視頻資料通常對應於基本視頻串流。類似地,音頻資料對應於一個或多個相應的基本串流。
許多視頻譯碼標準(諸如ITU-T H.264/AVC和即將到來的高效率視頻譯碼(HEVC)標準)定義用於無錯誤位元串流的語法、語意和解碼程序,其中的任一個都符合特定的設定檔或級別。視頻譯碼標準通常不指定編碼器,但編碼器的任務是保證所產生的位元串流對於解碼器來說是符合標準的。在視頻譯碼標準的上下文中,“設定檔(profile)”對應於演算法、特徵或工具以及應用於它們的約束的子集。例如,如H.264標準所定義的,“設定檔”是由H.264標準指定的整個位元串流語法的子集。“級別(level)”對應於解碼器資源消耗的限制,諸如,例如解碼器記憶體和計算力,其與圖片的解析度、位元速率和區塊處理速率有關。設定檔可以用profile_idc(設定檔指示符)值來進行信號通知,而級別可以用level_idc(級別指示符)值來進行信號通知。
例如,H.264標準認知到,在給定設定檔的語法所強加的界限內,根據位元串流中的語法元素所取的值,諸如經解碼圖片的指定大小,仍然可能需要編碼器和解碼器的性能的大變化。H.264標準還認知到,在許多應用中,實現能夠處理特定設定檔內的語法的所有假設使用的解碼器既不實際也不經濟。因此,H.264標準將“級別”定義為施加於位元串流中的語法元素的值的指定約束集合。這些約束可以是對值的簡單限制。可替換地,這些約束可採取對值的算術組合的約束的形式(例如,圖片寬度乘以圖片高度乘以每秒解碼的圖片數量)。H.264標準還規定,各個實施方式可以針對每個所支持的設定檔而支持不同級別。
符合某個設定檔的解碼器通常支持該設定檔中定義的所有特徵。例如,作為譯碼特徵,在H.264/AVC的基線設定檔中不支持B圖片譯碼,但是在H.264/AVC的其他設定檔中支持B圖片譯碼。符合某個級別的解碼器應能夠解碼任何位元串流且該解碼不需要超出在該級別中定義的限制之外的資源。設定檔和級別的定義可以有助於可解釋性。例如,在視頻傳輸期間,可以針對整個傳輸會話協商和商定一對設定檔和級別定義。更具體而言,在H.264/AVC中,級別可以定義對需要處理的宏區塊的數量、解碼圖片緩衝器(DPB)大小、譯碼圖片緩衝器(CPB)大小、垂直運動向量範圍、每兩個連續MB的運動向量的最大數量以及B區塊是否可以具有小於8×8像素的子宏區塊分區的限制。以此方式,解碼器可決定解碼器是否能夠正確地解碼位元串流。
在圖1的示例中,內容準備設備20的封裝單元30從視頻編碼器28接收包括經譯碼視頻資料的基本串流,並從音頻編碼器26接收包括經譯碼音頻資料的基本串流。在一些示例中,視頻編碼器28和音頻編碼器26可各自包括用於從經編碼資料形成封包化基本系統(PES)封包的封包化器。在其它示例中,視頻編碼器28和音頻編碼器26可各自與相應的封包化器介面連接以用於從經編碼資料形成PES封包。在其他示例中,封裝單元30可包括用於從經編碼音頻和視頻資料形成PES封包的封包化器。
視頻編碼器28可以多種方式編碼多媒體內容的視頻資料,以製造出多媒體內容的各種位元速率的且具有各種特性的不同表示,所述特性例如為像素解析度、幀速率、對各種譯碼標準的符合性、對各種譯碼標準的各種設定檔和/或設定檔的各種級別的符合性、具有一個或多個視圖(例如,用於二維或三維回放)的表示,或其它此類特性。如本公開內容中所使用的,表示可包括音頻資料、視頻資料、文本資料(例如,用於隱藏式字幕)或其它此類資料中的一個。表示可以包括基本串流,諸如音頻基本串流或視頻基本串流。每個PES封包可包括stream_id,其識別該PES封包所屬的基本串流。封裝單元30負責將基本串流組裝成各種表示的視頻檔案(例如,段)。
封裝單元30從音頻編碼器26和視頻編碼器28接收表示的基本串流的PES封包,並從PES封包形成相應的網路抽象層(NAL)單元。可以將經譯碼視頻段組織成NAL單元,所述NAL單元提供“網路友好”視頻表示尋址應用,諸如視頻電話、儲存、廣播或串流傳輸。可以將NAL單元分類為視頻譯碼層(VCL)NAL單元和非VCL NAL單元。VCL單元可包含核心壓縮引擎且可包括區塊、宏區塊和/或切片級別的資料。其它NAL單元可以是非VCL NAL單元。在一些示例中,一個時間實例中的經譯碼圖片(通常呈現為主要經譯碼圖片)可包含於存取單元中,所述存取單元可包括一個或多個NAL單元。
非VCL NAL單元可以包括參數集NAL單元和補充增強資訊(SEI)NAL單元等等。參數集可包含序列級別的標頭資訊(在序列參數集(SPS)中)和不頻繁改變的圖片級別的標頭資訊(在圖片參數集(PPS)中)。利用參數集(例如,PPS和SPS),不頻繁改變的資訊不需要針對每一序列或圖片進行重複;因此,可以提高譯碼效率。此外,參數集的使用可實現對重要標頭資訊的帶外傳輸,從而避免對用於錯誤恢復的冗餘傳輸的需求。在帶外傳輸示例中,參數集NAL單元可以在與諸如SEI NAL單元的其他NAL單元不同的信道上發送。
SEI可包含對解碼來自VCL NAL單元的經譯碼圖片樣本來說不是必需的但可輔助與解碼、顯示、錯誤恢復和其它目的相關的處理的資訊。SEI訊息可以包含在非VCL NAL單元中。SEI訊息是一些標準規範的規範部分,並且因此對於符合標準的解碼器實施方式並不總是強制性的。SEI訊息可以是序列級別的SEI訊息或圖片級別的SEI訊息。一些序列級別的資訊可以包含在SEI訊息中,諸如SVC示例中的可縮放性資訊SEI訊息和MVC中的視圖可縮放性資訊SEI訊息。這些示例SEI訊息可傳達關於例如操作點的提取和操作點的特性的資訊。另外,封裝單元30可形成清單檔案,例如描述所述表示的特性的媒體呈現描述符(MPD)。封裝單元30可根據可擴展標記語言(XML)來格式化MPD。
封裝單元30可將多媒體內容的一個或多個表示的資料連同清單檔案(例如,MPD)一起提供到輸出介面32。輸出介面32可以包括網路介面或用於寫入儲存媒體的介面,諸如通用序列匯流排(USB)介面、壓縮光碟(CD)或數位視頻光碟(DVD)寫入器或燒錄器、到磁性或快閃記憶體儲存媒體的介面、或用於儲存或發送媒體資料的其它介面。封裝單元30可將多媒體內容的每一個表示的資料提供到輸出介面32,輸出介面32可經由網路傳輸或儲存媒體將資料傳送到伺服器設備60。在圖1的示例中,伺服器設備60包括儲存各種多媒體內容64的儲存媒體62,每個多媒體內容64包括相應清單檔案66及一個或多個表示68A到68N(表示68)。在一些示例中,輸出介面32還可以直接向網路74發送資料。
在一些示例中,可以將表示68分離到適應集合中。即,表示68的各種子集可包括相應的共同特性集,所述特性諸如編解碼器、設定檔和級別、解析度、視圖數量、段的檔案格式、文本類型資訊(其可識別要與該表示一起顯示的文本和/或要例如由揚聲器解碼和呈現的音頻資料的語言或其他特性)、相機角度資訊(其可描述該適應集合中的表示的場景的相機角度或真實世界相機視角)、評分資訊(其描述針對特定觀眾的內容適用性)、等等。
清單檔案66可包括指示如下的資料:與特定適應集合相對應的表示68的子集,以及適應集合的共同特性。清單檔案66還可以包括表示適應集合的各個表示的各個特性(例如位元速率)的資料。以此方式,適應集合可提供簡化的網路頻寬適應。可使用清單檔案66的適應集合元素的子元素來指示適應集合中的表示。
伺服器設備60包括請求處理單元70和網路介面72。在一些示例中,伺服器設備60可以包括多個網路介面。此外,伺服器設備60的任何或所有特徵可以在內容傳遞網路的其他設備(諸如路由器、網橋、代理設備、交換機或其他設備)上實現。在一些示例中,內容傳遞網路的中間設備可以快取多媒體內容64的資料,且包括大致符合伺服器設備60的那些元件的元件。通常,網路介面72被配置為經由網路74發送和接收資料。
請求處理單元70被配置為從諸如客戶端設備40的客戶端設備接收對儲存媒體62的資料的網路請求。例如,請求處理單元70可以實現超文本傳輸協定(HTTP)版本1.1,如R. Fielding等人的RFC 2616“Hypertext Transfer Protocol-HTTP/1.1 ”,Network Working Group, IETF, 1999年6月,中所描述的。即,請求處理單元70可被配置為接收HTTP GET或partial GET請求,且響應於請求而提供多媒體內容64的資料。所述請求可以例如使用表示68之一的段的URL來指定該段。在一些示例中,所述請求還可以指定該段的一個或多個位元組範圍,因此包括partial GET請求。請求處理單元70還可以被配置為服務於HTTP HEAD請求,以提供表示68之一的段的標頭資料。在任何情況下,請求處理單元70可被配置為處理所述請求,以將所請求資料提供到請求設備,諸如客戶端設備40。
另外或可替換地,請求處理單元70可被配置為經由廣播或多播協定(諸如演進型多媒體廣播和多播服務(eMBMS))來傳遞媒體資料。內容準備設備20可以以與所描述的方式基本相同的方式來創建HTTP上動態自適應串流傳輸(DASH)段和/或子段,但是伺服器設備60可以使用eMBMS或另一廣播或多播網路傳輸協定來傳遞這些段或子段。例如,請求處理單元70可被配置為從客戶端設備40接收多播群組加入請求。即,伺服器設備60可向包括客戶端設備40在內的客戶端設備通告與多播群組相關聯的網際網路協定(IP)位址,該多播群組與特定媒體內容(例如,實況事件的廣播)相關聯。客戶端設備40繼而可提交對加入該多播群組的請求。該請求可以在整個網路74(例如,構成網路74的路由器)中傳播,使得路由器將去往與該多播群組相關聯的IP位址的流量定向到諸如客戶端設備40的訂閱客戶端設備。
如圖1的示例中所示的,多媒體內容64包括清單檔案66,其可對應於媒體呈現描述(MPD)。清單檔案66可包含不同替代表示68(例如,具有不同品質的視頻服務)的描述,並且該描述可包括例如編解碼器資訊、設定檔值、級別值、位元速率、以及表示68的其它描述性特性。客戶端設備40可提取媒體呈現的MPD以決定如何存取表示68的段。
具體而言,提取單元52可提取客戶端設備40的配置資料(未示出)以決定視頻解碼器48的解碼能力和視頻輸出44的顯現能力。配置資料還可包括以下各項中的任何一項或全部:由客戶端設備40的用戶選擇的語言偏好、與由客戶端設備40的用戶設定的深度偏好相對應的一個或多個相機視角、和/或由客戶端設備40的用戶選擇的評分偏好。提取單元52可包括(例如)被配置為提交HTTP GET和partial GET請求的web瀏覽器或媒體客戶端。提取單元52可對應於由客戶端設備40的一個或多個處理器或處理單元(未示出)執行的軟體指令。在一些示例中,針對提取單元52描述的功能的全部或部分可以以硬體或硬體、軟體和/或韌體的組合實施,其中可提供必要硬體以執行用於軟體或韌體的指令。
儘管在圖1的示例中僅示出了單個視頻解碼器48,但如下文更詳細論述的(例如,針對圖8),客戶端設備40可被配置為包括多個視頻解碼器。另外,解封裝單元50可被配置為包括解多工器,所述解多工器對多個經編碼視頻位元串流進行解多工(例如,針對立方體映射視頻資料的不同圖塊)且將經編碼視頻位元串流定向到不同視頻解碼器。解封裝單元50可包括介面,諸如將各種視頻位元串流的視頻資料定向到對應視頻解碼器的應用編程介面(API)。另外,客戶端設備40可包括同步單元,其在時間上同步來自多個視頻解碼器的經解碼視頻資料(例如,圖片)以及由音頻解碼器46解碼的音頻資料。
提取單元52可將客戶端設備40的解碼和顯現能力與由清單檔案66的資訊指示的表示68的特性進行比較。提取單元52可以最初提取清單檔案66的至少一部分以決定表示68的特性。例如,提取單元52可請求清單檔案66的描述一個或多個適應集合的特性的部分。提取單元52可選擇具有可由客戶端設備40的譯碼和顯現能力滿足的特性的表示68的子集(例如,適應集合)。提取單元52可接著決定適應集合中的表示的位元速率,決定網路頻寬的當前可用量,且從所述表示中的具有網路頻寬可滿足的位元速率的一個表示中提取段。
通常,較高位元速率的表示可產出較高品質的視頻回放,而較低位元速率的表示可在可用網路頻寬減小時提供足夠品質的視頻回放。因此,當可用網路頻寬相對高時,提取單元52可從相對高位元速率的表示提取資料,而當可用網路頻寬低時,提取單元52可從相對低位元速率的表示提取資料。以此方式,客戶端設備40可經由網路74串流傳輸多媒體資料,同時還適應於網路74的變化的網路頻寬可用性。
另外或可替換地,提取單元52可被配置為根據廣播或多播網路協定(諸如,eMBMS或IP多播)接收資料。在此類示例中,提取單元52可提交對加入與特定媒體內容相關聯的多播網路群組的請求。在加入該多播群組之後,提取單元52可接收該多播群組的資料,而無需向伺服器設備60或內容準備設備20發出進一步的請求。當不再需要該多播群組的資料時,提取單元52可提交對離開該多播群組的請求,例如停止回放或將信道改變到不同多播群組。
網路介面54可以接收所選表示的段的資料並將其提供給提取單元52,提取單元52可以進而將段提供給解封裝單元50。解封裝單元50可以將視頻檔案的元素解封裝為組成PES串流,對PES串流進行解封包以提取經編碼資料,並且根據經編碼資料是音頻串流還是視頻串流的一部分(例如,如串流的PES封包標頭所指示的)而將經編碼資料傳送到音頻解碼器46或視頻解碼器48。音頻解碼器46對經編碼音頻資料進行解碼且將經解碼的音頻資料傳送到音頻輸出42,而視頻解碼器48對經編碼視頻資料進行解碼且將經解碼的視頻資料(其可包括串流的多個視圖)發送到視頻輸出44。
視頻編碼器28、視頻解碼器48、音頻編碼器26、音頻解碼器46、封裝單元30、提取單元52和解封裝單元50各自可視情況實施為多種合適的處理電路中的任何一個,諸如一個或多個微處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場域可編程閘陣列(FPGA)、離散邏輯電路、軟體、硬體、韌體或其任何組合。視頻編碼器28和視頻解碼器48中的每一個可包括在一個或多個編碼器或解碼器中,所述編碼器或解碼器中的任一個可整合為組合式視頻編碼器/解碼器(CODEC)的一部分。同樣,音頻編碼器26和音頻解碼器46中的每一個可包括在一個或多個編碼器或解碼器中,所述編碼器或解碼器中的任一個可整合為組合式CODEC的一部分。包括視頻編碼器28、視頻解碼器48、音頻編碼器26、音頻解碼器46、封裝單元30、提取單元52和/或解封裝單元50的裝置可包括積體電路、微處理器和/或無線通信設備,例如行動電話。
客戶端設備40、伺服器設備60和/或內容準備設備20可被配置為根據本公開內容的技術進行操作。出於示例的目的,本公開內容針對客戶端設備40和伺服器設備60描述這些技術。然而,應理解,內容準備設備20可被配置為代替(或外加)伺服器設備60來執行這些技術。
封裝單元30可形成NAL單元,NAL單元包括:識別NAL單元所屬的節目的標頭,以及酬載,例如音頻資料、視頻資料或描述NAL單元所對應的傳輸或節目串流的資料。例如,在H.264/AVC中,NAL單元包括1位元組的標頭和可變大小的酬載。NAL單元在其酬載中包含視頻資料,NAL單元可包括各種粒度級的視頻資料。例如,NAL單元可包括視頻資料區塊、多個區塊、視頻資料切片或視頻資料的整個圖片。封裝單元30可從視頻編碼器28接收基本串流的PES封包形式的經編碼視頻資料。封裝單元30可使每個基本串流與對應程式相關聯。
封裝單元30還可從多個NAL單元組裝存取單元。通常,存取單元可以包括一個或多個NAL單元,用於表示視頻資料幀,以及當與該幀相對應的音頻資料可用時表示該音頻資料。存取單元通常包括針對一個輸出時間實例的所有NAL單元,例如,針對一個時間實例的所有音頻和視頻資料。例如,如果每個視圖具有20幀每秒(fps)的幀速率,則每個時間實例可以對應於0.05秒的時間間隔。在該時間間隔期間,可以同時顯現針對同一存取單元(同一時間實例)的所有視圖的特定幀。在一個示例中,存取單元可包括一個時間實例中的經譯碼圖片,其可被提供為主要經譯碼圖片。
因此,存取單元可以包括共同時間實例的所有音頻和視頻幀,例如,對應於時間X的所有視圖。本公開內容還將特定視圖的經編碼圖片稱為“視圖分量”。即,視圖分量可以包括在特定時間處的特定視圖的經編碼圖片(或幀)。因此,存取單元可被定義為包括共同時間實例的所有視圖分量。存取單元的解碼次序不必一定與輸出次序或顯示次序相同。
媒體呈現可以包括媒體呈現描述(MPD),MPD可以包含對不同的可替換表示(例如,具有不同品質的視頻服務)的描述,並且該描述可以包括例如編解碼器資訊、設定檔值和級別值。MPD是諸如清單檔案66之類的清單檔案的一個示例。客戶端設備40可以提取媒體呈現的MPD,以決定如何存取各種呈現的電影片段。電影片段可以位於視頻檔案的電影片段盒(MOOF盒)中。
清單檔案66(其可包括例如MPD)可通告表示68的段的可用性。即,MPD可以包括指示其中一個表示68的第一段變得可用時的掛鐘時間(wall-clock time)的資訊,以及指示表示68內的段的持續時間的資訊。以此方式,客戶端設備40的提取單元52可基於特定段之前的段的開始時間以及持續時間來決定每個段何時可用。
在封裝單元30已基於所接收的資料將NAL單元和/或存取單元組裝到視頻檔案中之後,封裝單元30將視頻檔案傳遞到輸出介面32以供輸出。在一些示例中,封裝單元30可在本地端儲存視頻檔案或經由輸出介面32將視頻檔案發送到遠程伺服器,而不是將視頻檔案直接發送到客戶端設備40。輸出介面32可以包括例如發射機、收發機、用於將資料寫入計算機可讀媒體的設備(諸如光碟驅動器、磁媒體驅動器(例如軟碟驅動器))、通用序列匯流排(USB)埠、網路介面或其他輸出介面。輸出介面32將視頻檔案輸出到計算機可讀媒體,諸如例如傳輸信號、磁性媒體、光學媒體、記憶體、快閃記憶體驅動器或其它計算機可讀媒體。
網路介面54可以經由網路74接收NAL單元或存取單元,並且經由提取單元52將NAL單元或存取單元提供給解封裝單元50。解封裝單元50可以將視頻檔案的元素解封裝為組成PES串流,對PES串流進行解封包以提取經編碼資料,並且根據經編碼資料是音頻串流還是視頻串流的一部分(例如,如串流的PES封包標頭所指示的)而將經編碼資料傳送到音頻解碼器46或視頻解碼器48。音頻解碼器46解碼經編碼音頻資料且將經解碼音頻資料傳送到音頻輸出42,而視頻解碼器48解碼經編碼視頻資料且將可包括串流的多個視圖的經解碼視頻資料傳送到視頻輸出44。
圖2更詳細地繪示圖1的提取單元52的一組示例元件的方塊圖。在該示例中,提取單元52包括eMBMS中間件單元100、DASH客戶端110和媒體應用程式112。
在該示例中,eMBMS中間件單元100進一步包括eMBMS接收單元106、快取104和代理伺服器單元102。在該示例中,eMBMS接收單元106被配置為例如根據在T. Paila等人的“FLUTE—File Delivery over Unidirectional Transport”(Network Working Group, RFC 6726, 2012年11月,tools.ietf.org/html/rfc6726處可獲得)中描述的單向傳輸上的檔案傳遞(FLUTE)來經由eMBMS接收資料。即,eMBMS接收單元106可以經由廣播從例如可充當廣播/多播服務中心(BM-SC)的伺服器設備60接收檔案。
當eMBMS中間件單元100接收到檔案的資料時,eMBMS中間件單元可以將所接收的資料儲存在快取104中。快取104可以包括計算機可讀儲存媒體,諸如快閃記憶體、硬碟、RAM或任何其他合適的儲存媒體。
代理伺服器單元102可以充當用於DASH客戶端110的伺服器。例如,代理伺服器單元102可以向DASH客戶端110提供MPD檔案或其他清單檔案。代理伺服器單元102可在MPD檔案中通告段的可用時間,以及可從中提取段的超鏈接。這些超鏈接可以包括對應於客戶端設備40的本地主機位址字首(例如,IPv4的127.0.0.1)。以這種方式,DASH客戶端110可以使用HTTP GET或partial GET請求來從代理伺服器單元102請求段。例如,對於從鏈接HTTP://127.0.0.1/rep1/seg3可獲得的段,DASH客戶端110可以建構包括對HTTP://127.0.0.1/rep1/seg3的請求的HTTP GET請求,並將該請求提交給代理伺服器單元102。代理伺服器單元102可以響應於這樣的請求而從快取104提取所請求的資料,並且將該資料提供給DASH客戶端110。
圖3繪示示例多媒體內容120的元素的概念圖。多媒體內容120可以對應於多媒體內容64(圖1),或者儲存在儲存媒體62中的另一多媒體內容。在圖3的示例中,多媒體內容120包括媒體呈現描述(MPD)122和多個表示124A到124N(表示124)。表示124A包括可選標頭資料126和段128A-128N(段128),而表示124N包括可選標頭資料130和段132A-132N(段132)。為了方便起見,將字母N用於指定每個表示124中的最後一個電影片段。在一些示例中,在表示124之間可以存在不同數量的電影片段。
MPD 122可包括與表示124分離的資料結構。MPD 122可對應於圖1的清單檔案66。同樣地,表示124可以對應於圖1的表示68。一般而言,MPD 122可包括大致描述表示124的特性的資料,所述特性諸如為譯碼和顯現特性、適應集合、MPD 122所對應的設定檔、文本類型資訊、相機角度資訊、評分資訊、技巧模式資訊(例如,指示包括時間子序列的表示的資訊)和/或用於提取遠程時段的資訊(例如,用於在回放期間將目標廣告插入到媒體內容中)。
當存在時,標頭資料126可以描述段128的特性,例如,隨機存取點(RAP,也稱為串流存取點(SAP))的時間位置,其中,段128包括隨機存取點、到段128內的隨機存取點的位元組偏移、段128的統一資源定位符(URL)或者段128的其它方面。當存在時,標頭資料130可以描述段132的類似特性。另外或可替換地,這些特性可以完全包括在MPD 122中。
段128、132包括一個或多個經譯碼視頻樣本,所述經譯碼視頻樣本中的每一個可以包括視頻資料的幀或切片。段128的經譯碼視頻樣本中的每一個可具有類似特性,例如,高度、寬度及頻寬要求。這些特性可由MPD 122的資料描述,儘管圖3的示例中未示出這些資料。MPD 122可包括如3GPP規範所描述的特性,外加本公開內容中所描述的任何或所有用信號發送的資訊。
每個段128、132可以與唯一的統一資源定位符(URL)相關聯。因此,使用諸如DASH之類的串流傳輸網路協定,可以獨立地提取段128、132中的每一個。以此方式,諸如客戶端設備40的目的地設備可以使用HTTP GET請求來提取段128或132。在一些示例中,客戶端設備40可以使用HTTP partial GET請求來提取段128或132的特定位元組範圍。
MPD 122可以包括表示媒體檔案的複雜性的資料,例如,每秒待處理的視頻區塊的最大數量、每秒待處理的像素的最大數量、解碼器實例的最大數量和/或並行解碼器實例的最大數量。在一些示例中,複雜性可以由視頻設定檔、層級和/或級別值來表示。在一些示例中,可在參數集中(額外地或替代地)用信號通知設定檔、層級(tier)和/或級別值,所述參數集諸如視頻參數集(VPS)、序列參數集(SPS)或圖片參數集(PPS)。即,圖1的內容準備設備20可以建構MPD 122(或圖1的清單檔案66)以指示對應位元串流的設定檔、層級和/或級別資訊的值。
圖4繪示示例視頻檔案150的元素的方塊圖,其可以對應於表示的段,諸如圖3的段128、132之一。每個段128、132可以包括基本上符合圖4的示例中所示的資料佈置的資料,視頻檔案150可以被認為封裝了段。如上所述,根據ISO基礎媒體檔案格式及其擴展的視頻檔案將資料儲存在一系列物件中,所述物件被稱為“盒(boxes)”。在圖4的示例中,視頻檔案150包括檔案類型(FTYP)盒152、電影(MOOV)盒154、段索引(sidx)盒162、電影片段(MOOF)盒164和電影片段隨機存取(MFRA)盒166。儘管圖4表示視頻檔案的示例,但是應當理解,根據ISO基礎媒體檔案格式及其擴展,其它媒體檔案可包括類似於視頻檔案150的資料來構造的其它類型的媒體資料(例如,音頻資料、時控文本資料等)。
檔案類型盒152大致描述視頻檔案150的檔案類型。檔案類型盒152可以包括識別描述視頻檔案150的最佳用途的規範的資料。檔案類型盒152可以可替換地被置於MOOV盒154、電影片段盒164和/或MFRA盒166之前。
在一些示例中,諸如視頻檔案150的段可以包括在檔案類型盒152之前的MPD更新盒(未示出)。MPD更新盒可包括指示將要更新與包括視頻檔案150的表示相對應的MPD的資訊,以及用於更新該MPD的資訊。例如,MPD更新盒可提供用於更新MPD的資源的URI或URL。作為另一示例,MPD更新盒可包括用於更新MPD的資料。在一些示例中,MPD更新盒可緊跟在視頻檔案150的段類型(STYP)盒(未圖示)之後,其中STYP盒可定義視頻檔案150的段類型。
在圖4的示例中,MOOV盒154包括電影標頭(MVHD)盒156、軌道(TRAK)盒158、和一個或多個電影擴展(MVEX)盒160。通常,MVHD盒156可描述視頻檔案150的一般特性。例如,MVHD盒156可以包括描述視頻檔案150是在何時被原始創建的、視頻檔案150是在何時被最後修改的、視頻檔案150的時間標度、視頻檔案150的回放持續時間的資料,或大致描述視頻檔案150的其它資料。
TRAK盒158可以包括視頻檔案150的軌道的資料。TRAK盒158可包括描述與TRAK盒158相對應的軌道的特性的軌道標頭(TKHD)盒。在一些示例中,TRAK盒158可以包括經譯碼視頻圖片,而在其它示例中,軌道的經譯碼視頻圖片可以包括在電影片段164中,其可由TRAK盒158和/或sidx盒162的資料查詢。
在一些示例中,視頻檔案150可以包括多於一個軌道。因此,MOOV盒154可以包括數量與視頻檔案150中的軌道數相等的TRAK盒。TRAK盒158可描述視頻檔案150的對應軌道的特性。例如,TRAK盒158可描述相應軌道的時間和/或空間資訊。當封裝單元30(圖3)包括視頻檔案(例如視頻檔案150)中的參數集軌道時,與MOOV盒154的TRAK盒158類似的TRAK盒可描述參數集軌道的特性。封裝單元30可用信號通知描述參數集軌道的TRAK盒內的參數集軌道中的序列級SEI訊息的存在。
MVEX盒160可以描述對應的電影片段164的特性,例如,以便如果有的話,發信號通知除了MOOV盒154內包括的視頻資料之外,視頻檔案150還包括電影片段164。在串流傳輸視頻資料的上下文中,經譯碼視頻圖片可以被包括在電影片段164中而非MOOV盒154中。因此,所有經譯碼視頻樣本可以被包括在電影片段164中,而非MOOV盒154中。
MOOV盒154可以包括數量等於視頻檔案150中的電影片段164的數量的MVEX盒160。每個MVEX盒160可以描述電影片段164中的對應一個電影片段164的特性。例如,每個MVEX盒可以包括電影擴展標頭盒(MEHD)盒,其描述電影片段164中的該對應一個電影片段164的持續時間。
如上文所提及,封裝單元30可將序列資料集儲存於不包括實際經譯碼視頻資料的視頻樣本中。視頻樣本可大體上對應於存取單元,其是經譯碼圖片在特定時間實例處的表示。在AVC的上下文中,經譯碼圖片包括一個或多個VCL NAL單元,其包含用以建構存取單元的所有像素以及其它相關聯非VCL NAL單元(諸如SEI訊息)的資訊。因此,封裝單元30可在電影片段164中的一個中包括序列資料集,所述序列資料集可以包括序列級別SEI訊息。封裝單元30可進一步在MVEX盒160中與電影片段164中的一個電影片段164相對應的一個MVEX盒160內,將序列資料集和/或序列級別SEI訊息的存在用信號通知為存在於電影片段164中的該一個電影片段164中。
SIDX盒162是視頻檔案150的可選元素。即,符合3GPP檔案格式或其他此類檔案格式的視頻檔案不一定包括SIDX盒162。根據3GPP檔案格式的示例,SIDX盒可用於識別段(例如,在視頻檔案150內包含的段)的子段。3GPP檔案格式將子段定義為“具有相應媒體資料盒的一個或多個連續電影片段盒的自含式集合,並且包含由電影片段盒查詢的資料的媒體資料盒必須在該電影片段盒之後且在包含關於相同軌道的資訊的下一電影片段盒之前”。3GPP檔案格式還指示SIDX盒“包含對由該盒記載的(子)段的子段的查詢序列。所查詢的子段在呈現時間上是連續的。類似地,段索引盒所查詢的位元組在段內始終是連續的。查詢的大小給出了所查詢的材料中的位元組數的計數”。
SIDX盒162通常提供表示在視頻檔案150中包括的段的一個或多個子段的資訊。例如,這樣的資訊可以包括子段開始和/或結束的回放時間、子段的位元組偏移、子段是否包括串流存取點(SAP)(例如,以SAP開始)、SAP的類型(例如,SAP是否是瞬時解碼器刷新(IDR)圖片、乾淨隨機存取(CRA)圖片、斷鏈存取(BLA)圖片等等)、SAP在子段中的位置(按照回放時間和/或位元組偏移)等等。
電影片段164可以包括一個或多個經譯碼視頻圖片。在一些示例中,電影片段164可以包括一個或多個圖片群組(GOP),每一個GOP可以包括一定數量的經譯碼視頻圖片,例如幀或圖片。另外,如上所述,在一些示例中,電影片段164可以包括序列資料集。每一個電影片段164可以包括電影片段標頭盒(MFHD,圖4中未示出)。MFHD盒可以描述對應電影片段的特性,諸如電影片段的序列號。電影片段164可以按照序列號的順序被包括在視頻檔案150中。
MFRA盒166可以描述視頻檔案150的電影片段164內的隨機存取點。這可以幫助執行技巧模式,諸如執行對由視頻檔案150封裝的片段內的特定時間位置(即,回放時間)的搜尋。MFRA盒166通常是可選的,並且在一些示例中不需要包括在視頻檔案中。同樣,諸如客戶端設備40的客戶端設備不一定需要參考MFRA盒166來正確地解碼和顯示視頻檔案150的視頻資料。MFRA盒166可以包括一定數量的軌道片段隨機存取(TFRA)盒(未示出),該數量等於視頻檔案150的軌道數量,或者在一些示例中,等於視頻檔案150的媒體軌道(例如,非提示軌道)的數量。
在一些示例中,電影片段164可以包括一個或多個串流存取點(SAP),例如IDR圖片。同樣,MFRA盒166可提供對SAP在視頻檔案150內的位置的指示。因此,可從視頻檔案150的SAP開始形成視頻檔案150的時間子序列。該時間子序列還可以包括其它圖片,例如依賴於SAP的P幀和/或B幀。可以將該時間子序列的幀和/或切片佈置在這些段內,以使得可以對該時間子序列中依賴於該時間子序列的其它幀/切片的幀/切片進行正確地解碼。例如,在資料的分層佈置中,用於預測其它資料的資料也可被包括在該時間子序列中。
圖5是示出用於解碼串流傳輸媒體資料的示例系統300的概念圖。系統300包括應用程式302、多解碼器310(其可以是MVD的示例)、圖形處理單元(GPU)304、視頻輸出緩衝器306A-306N(視頻輸出緩衝器306)和視埠308。在一些示例中,視頻輸出緩衝器306可以是如圖6中所示的單個緩衝器。
通常,系統300動態地使用用戶的姿態資訊和可能的其它交互資料來組合場景以便適當地顯現。特別地,系統300可以使用姿態資訊來從各種視頻物件320A-320N(視頻物件320)中選擇要被提取的相應視頻串流。特別地,系統300根據例如姿態資訊,從相應視頻物件320中提取同步單元322A-322N(同步單元322)。例如,系統300可以針對用戶正直接觀看的視埠308的一部分提取相對高品質的視頻串流,並且針對用戶不能看到的或者在用戶的視角的外圍的視埠308的一部分提取相對低品質的視頻串流。每個視頻物件320可以具有可用於提取的不同品質(例如,不同的解析度)。例如,較高解析度解碼可以應用於視野中,而可以以較低品質解碼背景資訊。
通常,同步單元322各自包括要同時(或基本上同時)顯現或組裝的相應畫面集合。因此,透過提取相應的同步單元322,系統300可確保以同步方式解碼、顯現和/或組裝所提取的同步單元。
系統300可以被配置為動態地使用可用的串流傳輸/網路接入位元速率以及多解碼器310的可用解碼資源,以使用戶體驗達到最大程度。因此,系統300可以動態地使用可用的網路和硬體解碼資源來適應網路條件以及用戶反饋。一個問題是應用程式302可以提供明確定義的介面以便使用硬體解碼資源。
可以用不同品質或位元速率獲得的視頻物件320可以由單個解碼器實例解碼。視頻物件320可以根據情況動態地共享資源。多解碼器310可以將每個視頻物件320輸出到可由應用程式302查詢的單獨的、相應的一個視頻輸出緩衝器306,例如,以支持用於顯現的基於GPU的修改。系統300可以例如透過向多解碼器310提供同步單元322來相應地同步輸出資料。本公開內容的技術可提供明確定義的多解碼器介面/API(應用編程介面)和適當能力,用於由後續顯現單元(例如,GPU 304的一部分或與GPU 304分離)查詢每一個解碼器的輸出。透過這樣做,可以有效地使用可用的硬體資源。解碼器介面可以是編解碼器不可知的,並且甚至可以在解碼會話內使用不同的編解碼器,例如AVC、HEVC和/或AV1。
以此方式,圖5的系統300表示用於解碼媒體資料的設備的示例,其包括被配置為儲存媒體資料的記憶體,以及在電路中實施且通信地耦合到記憶體的一個或多個處理器,所述一個或多個處理器被配置為:決定是否意圖同步兩個或更多個解碼器實例,並且基於意圖同步所述兩個或更多個解碼器實例,來控制所述兩個或更多個解碼器實例以使得在相同呈現時間處能夠顯現來自所述兩個或更多個解碼器實例中每一個解碼器實例的經解碼資料。
沉浸式媒體呈現通常需要顯現大量2D和3D資產,將這些資產組合在一起以向用戶提供沉浸式體驗。這些媒體資產中的許多媒體資產可能需要對其元件中的至少一些元件進行硬體加速解碼以供顯現。
如N18868,“Considerations on Working Draft on video decoding interfaces for immersive media”(2019年10月,Geneva,CH)中所討論的,MVD透過應用編程介面(API)(如OpenMAX IL或Android的MediaCodec API)提供對解碼硬體的存取。這些API允許應用程式創建並運行多個解碼器實例,即使在僅有單個硬體解碼器的情況下。
然而,這些API可能缺乏用於處理沉浸式媒體的一些能力。例如,API可能缺乏發現MVD的聚合處理能力的能力。例如,當前不可能對來自不同串流的多個樣本進行邏輯分組以便同時解碼。在一些示例中,所述聚合可從緩衝器標頭中的nTimeStamp參數推斷出,但在解碼這些相關樣本時,MVD元件沒有資訊來將延遲偏斜保持為最小。另外,可能無法對不同解碼器實例的排程進行精細粒度控制。
根據本公開內容的技術,對解碼器API的抽象擴展提供了對沉浸式媒體的更好支持,並且解決了上述問題。例如,可以將這些抽象擴展映射到OpenMAX IL和MediaCodec。
現在討論MVD的能力的發現。媒體解碼硬體上的負載隨時間而變化,這取決於在該時刻實例化了多少解碼器實例以及正被解碼的內容的特性。因此,對於諸如沉浸式媒體顯現引擎之類的應用程式而言可能重要的是:能夠發現諸如多解碼器310之類的MVD的瞬時能力和資源可用性。
應用程式(例如,應用程式302)可以使用以下函式來查詢(和決定)特定編解碼器元件的MVD的瞬時聚合能力。例如,在OpenMAX積體層中,元件表示各個功能區塊。元件可以是源、槽(sink)、編解碼器、過濾器、分離器、混合器或任何其它資料操作器。根據實施方式,元件可能表示一件硬體、軟體編解碼器、另一處理器或其組合。該能力資訊可以用於對MVD的存取控制和/或用於基於資源可用性來適應解碼程序。
一個函式可以如下:
object queryCurrentAggregateCapabilities(string componentName,int flags)
componentName提供了查詢所應用的MVD的媒體元件的名稱。名稱“All”可用於指示該查詢不是針對特定元件,而是針對MVD的所有元件的。
可以單獨地或在單個函式呼叫中查詢以下能力旗標(capability flags):
l CAP_INSTANCES:該旗標指示在該時刻可以針對所提供的解碼器元件實例化的解碼器實例的最大數量。
l CAP_BUFFER_MEMORY:該旗標指示在MVD上在該時刻可以被分配以用於與MVD的元件進行緩衝器交換的最大可用緩衝器大小。注意,該值獨立於任何媒體元件,並且全域地應用於MVD。該值可以以位元組表示。
l CAP_BITRATE:該旗標以位元每秒為單位查詢被查詢元件在該時刻能夠處理的最大譯碼位元速率。
l CAP_MAX_SAMPLES_SECOND:該旗標查詢被查詢元件在該時刻能夠處理的每秒最大樣本數。
l CAP_MAX_PERFORMANCE_POINT:該旗標用於查詢位元串流的最大性能點,該位元串流可以由該解碼器元件的新實例中的所指示元件來解碼。性能點具有以下參數:
o PICTURE_RATE:每秒圖片中的最大性能點的圖片速率。
o HEIGHT:最大性能點的亮度樣本中的高度
o WIDTH:最大性能點的亮度樣本中的寬度
o BITDEPTH:最大性能點的亮度樣本的位元深度
應當注意,最大性能點的每個參數不一定表示該維度中的最大值。所有維度的組合可以構成最大性能點。
現在討論跨解碼器實例的分組。沉浸式媒體資產的內容可能需要多個元件的解碼,可以使所述多個元件同時可用於呈現引擎(例如,圖5的GPU 304)以用於重建和顯現。可以將解碼器實例分組在一起以向MVD通知將在MVD輸出處同時提供經解碼樣本,例如用於稍後的同步和聯合顯現。
圖6繪示示例解碼引擎及相關聯介面的方塊圖。視頻解碼引擎200(其可以是MVD的示例)可以在輸入視頻解碼介面206處接收元資料串流(MD)202A-202N和基本串流(ES)204A-204M。輸入格式化單元208可以格式化基本串流204A-204M,並且將經格式化的基本串流輸出到視頻解碼器實例210A-210M。視頻解碼器實例210A-210M可以解碼經格式化的基本串流。時間鎖定單元212可以基於例如group_id將基本串流鎖定在一起,該group_id可以包含在元資料串流202A-202N中。輸出格式化單元214可以格式化經解碼串流,並且輸出視頻解碼介面216可以輸出元資料串流(MD)218A-218N和經解碼序列(DS)220A-220M,例如用於顯現。
圖7繪示示例視頻解碼器硬體引擎和示例視頻解碼器實例的方塊圖。MVD 238可以包括視頻解碼器硬體引擎240。視頻解碼器硬體引擎240可以創建並控制視頻解碼器實例244A-244N。視頻解碼器硬體引擎240可以包括引擎控制介面242。引擎控制介面242可以是應用程序302可藉以控制視頻解碼器硬體引擎240的介面。視頻解碼器實例244A-244N中的每一個可以分別包括輸入視頻介面246A-246N。待解碼的分離視頻串流可以分別透過輸入視頻介面246A-246N由視頻解碼器實例244A-244N接收。視頻解碼器實例244A-244N可以分別透過輸出視頻介面248A-248N輸出經解碼視頻。
圖8繪示根據本公開內容的技術的具有聚合輸出緩衝器的示例MVD的概念圖。MVD 350包括解碼器平台控制352、時脈元件354、解碼器實例356、解碼器實例358、解碼器實例360和聚合緩衝器362。同一群組的所有解碼器實例(例如,群組#4的所有解碼器實例356、解碼器實例358和解碼器實例360)可以連接到同一時脈元件(例如,時脈元件354)以用於同步。同一群組的所有解碼器實例可以使用相同的時間戳偏移和測量單元,使得相同的時間戳值(例如,相同的時間戳偏移和測量單元)指示同一群組的解碼器實例上的樣本具有相同的呈現時間。呈現時間是經解碼串流可以被顯現的時間。例如,MVD 350的同一群組的每個解碼器實例(例如,解碼器實例356、358和360)可以連接到同一時脈(例如,時脈元件354)並且使用相同的時間戳偏移和測量單元。同一群組的每個解碼器實例的輸出可以在聚合緩衝器362中聚合,並且可以在相同的呈現時間被顯現。
當創建新解碼器實例時,(圖5的)應用程式302可以透過提供已經存在的實例群組的group_id,來將該新解碼器實例指派給該群組。例如,應用程式302可以創建群組4的新解碼器實例,以加入解碼器實例356、358和360,並且可以將為4的group_id提供給該新解碼器實例。group_id值0指示MVD針對該解碼器實例的指派並返回一個新的group_id。即,如果應用程式302向新解碼器實例指派為0的group_id,則該解碼器實例不需要具有與解碼器實例356、358和360相同的呈現時間,並且解碼器平台控制352可以向該新解碼器實例指派一個新的group_id,例如5。
同一群組(例如,群組4)的解碼器實例可以使用單個輸出緩衝器,諸如聚合緩衝器362。在這種情況下,聚合緩衝器362可以由MVD提供,並且由每個元件用於利用相同時間戳的經解碼樣本填充該緩衝器。應用程式302可以指示在聚合緩衝器362中請求的交錯類型。例如,經解碼的網格或點雲串流可在聚合緩衝器362中具有交錯的幾何形狀、法線(normal)和顏色屬性。所述指示可以包括來自每個解碼器元件的每個樣本的格式、偏移及步幅,如本公開內容稍後論述的。在圖8的聚合緩衝器362中示出了交錯,其中以一個方向上的對角線條紋圖案示出來自解碼器實例356的輸出,以另一個方向上的對角線條紋圖案示出來自解碼器實例358的輸出,以交叉影線示出來自解碼器實例360的輸出。
現在討論函式。可以修改用於創建新解碼器實例的函式,以支持關於該新解碼器實例可能屬的群組(例如,群組#4)的信令(例如,group_id)。可以修改配置函式以用信號通知聚合輸出緩衝器參數,這將在下面更詳細地討論。例如,應用程式302可以用信號通知聚合輸出緩衝器參數。
在OpenMAX IL中,函式包括OMX_GetHandle和OMX_SetConfig。在下文中,將函式定義為抽象函式,可以將其映射到OpenMAX、MediaCodec或任何其他類似的API上。
object GetInstance (string component_name, int group_id = -1)
object SetConfig (int instance_id, int paramter, object config_data)
對GetInstance函式呼叫的成功呼叫的結果可以包含解碼器的實例的識別符以及為解碼器的該實例指派或創建的group_id(如果請求的話)。預設的(例如,當group_id等於0時)是解碼器實例不屬於任何已經建立的群組,而是MVD 350創建一個新的群組。
可以用新參數“CONFIG_OUTPUT_BUFFER”來呼叫SetConfig函式,在這種情況下,SetConfig函式提供聚合緩衝器362的格式。
聚合緩衝器362的格式可以包括以下參數:
l sample_format,其指示每個樣本的格式,其可以是純量、2D向量、3D向量或4D向量。
l sample_type,其指示樣本的每個分量的類型(例如,幾何形狀、顏色屬性、法線等)。
l sample_stride,其指示解碼器實例的該輸出的2個連續樣本之間的位元組數。
l line_stride,其指示解碼器實例的該輸出的一行的第一位元組與下一行的第一位元組之間的位元組數量。
l buffer_offset,其指示進入聚合緩衝器362的偏移,解碼器實例的輸出幀應從該偏移寫入。
現在討論排程和輸出控制。沉浸式應用程式可能需要比非沉浸式應用程式更精細的解碼程序的粒度控制。例如,應用程式302可能需要:對所有子幀的立即存取、關於特定元資料可用性的通知、對解碼器元件的輸出的過濾、和/或對解碼器實例的連續執行的時間抖動的限制。
這些功能可以透過定義解碼器實例配置參數來實現,所述解碼器實例配置參數可以被設置為解碼器實例配置的一部分。例如,應用程式302可以在定義新解碼器實例時,決定用於該新解碼器實例的解碼器實例配置參數。
例如,可以利用以下配置參數來擴展GetParameter和SetParameter函式:
l PARAM_SUBFRAME_OUTPUT。該參數可以用於指示子幀的輸出是否被要求、被期望或不被允許。如果子幀的輸出不被允許,則僅會將完整的經解碼幀傳遞到聚合緩衝器362。
l PARAM_METADATA_CALLBACK。該參數可以用於設定針對特定元資料類型的回呼函式。所支持的元資料類型的列表是編解碼器相關的,並且可以針對每個編解碼器獨立地定義。
l PARAM_OUTPUT_CROP。該參數可以用於指示在輸出處(例如,顯現器或顯示設備)僅期望經解碼幀的一部分。解碼器實例可以使用該資訊,透過盡可能丟棄沒有落入剪切輸出區域中的單元來智能地減少其解碼處理。
l PARAM_MAX_OFFTIME_JITTER。該參數可以用於用信號通知解碼器實例的連續執行之間的以微秒為單位的最大時間量。每當在多個解碼器實例之間共享底層硬體元件時(這需要不同解碼器實例之間的上下文切換),該參數可能是相關的。
現在討論沉浸式應用程式的示例使用。例如,本公開內容的這一部分描述了在基於視頻的點雲壓縮媒體(V-PCC)的示例中如何針對沉浸式媒體應用程式來利用這些解碼器介面擴展。額外的使用案例可以包括:以同步方式顯現手語翻譯器的串流以及其語音正由手語翻譯器翻譯的說話者的串流,或者以同步方式顯現體育賽事處的多個攝像機角度。
圖9繪示示例V-PCC解碼器的方塊圖。V-PCC串流由幾個子串流組成,這些子串流包括經編碼幾何形狀、點雲的每個屬性、佔用地圖(occupancy map)以及用於修補(patch)資訊的元資料串流。例如,解多工器370可對V-PCC串流進行解多工。SPS配對單元372可將各種屬性與序列參數配對。路徑序列解壓縮單元374可以解壓縮路徑序列。視頻解壓縮單元376、視頻解壓縮單元378和視頻解壓縮單元380可以解壓縮不同的視頻資料。幾何形狀/屬性重構單元382可以重構幾何形狀和屬性。例如,幾何形狀/屬性重構單元312決定點雲中的點的座標,並且重構與點相關聯的屬性。幾何形狀後處理單元384可以平滑這些點的位置。屬性傳遞和平滑單元386可以將屬性傳遞到點雲中的適當點,並且平滑這些屬性,並輸出重構的點雲以用於顯現。根據點雲的屬性的數量,對V-PCC資產進行解碼可能需要同時運行3到16個解碼器,1個用於幾何形狀,1個用於佔用地圖,並且每個屬性(例如顏色、法線等)一個。
V-PCC解碼器可以以幀精度緊密地同步不同視頻解碼器的輸出,以試圖確保正確的點雲重構。應用程式(例如,圖5的應用程式302)可以首先查詢MVD的瞬時能力以決定是否可以解碼V-PCC串流的所有分量。例如,如果可用的解碼能力不足以解碼所有屬性,則應用程式可以決定丟棄一些屬性。應用程式302可以開始使用GetHandle函式創建解碼器實例,並且將所有解碼器實例指派給相同的group_id。這可以向MVD通知可能需要對這些解碼器實例的輸出緊密同步。
為了在GPU(例如,圖5的GPU 304)上有效地實現3D點雲重構,應用程式(例如,圖5的應用程式302)可以請求群組中的不同解碼器實例共享公共緩衝器(例如,圖8的聚合緩衝器362),該公共緩衝器可以被容納在GPU記憶體中並且每幀被寫入一次。在一些示例中,不是在公共緩衝器中交錯樣本,而是可以不交錯樣本,因為在一些示例中,樣本交錯在點雲的重構之前可能沒有用。
應用程式(例如,應用程式302)可以動態地接收場景和姿態資訊,並且決定在某個時間點不是點雲的所有部分都可見。應用程式可以使用元資料資訊來將點雲的可見3D部分映射到可見修補集合和對應的2D區域。可以將該資訊傳遞到解碼實例(例如,圖8的解碼器實例356、358和360)以請求將輸出裁剪到所指示的2D區域。解碼器實例還可以使用該資訊,透過將解碼限制到可見2D區域來減少解碼處理。
圖10繪示根據本公開內容的用於對解碼器實例進行分組的示例技術的流程圖。設備可以決定是否意圖同步兩個或更多個解碼器實例(390)。例如,MVD 350的解碼器平台控制器352可以決定所述兩個或更多個解碼器實例中的每一個解碼器實例的群組識別符(ID)是否相同。具有相同的群組ID可以指示將要同步所述兩個或更多個解碼器實例的意圖。例如,應用程式302可以向意圖同步的兩個或更多個解碼器實例指派相同的群組ID。
基於意圖同步所述兩個或更多個解碼器實例,控制所述兩個或更多個解碼器實例,以使得在相同呈現時間處能夠顯現來自所述兩個或更多個解碼器實例中每一個解碼器實例的經解碼資料(392)。例如,MVD 350可以向所述兩個或更多個解碼器實例中的每一個解碼器實例指派相同的時間戳偏移和測量單元。相同的時間戳值可以指示具有相同呈現時間的所述兩個或更多個解碼器實例中的每一個解碼器實例上的樣本。MVD 350可以將所述兩個或更多個解碼器實例中的每一個解碼器實例耦合到相同的時脈。
此外,在一些示例中,MVD 350可以在圖8的聚合緩衝器362中緩衝所述兩個或更多個解碼器實例的輸出。聚合緩衝器362可以被配置為交錯從所述兩個或更多個解碼器實例中的每一個解碼器實例輸出的經解碼資料。在一些示例中,MVD 350可例如透過從應用程式302讀取指令,來決定聚合緩衝器362的參數。在一些示例中,參數包括以下一項或多項:對樣本格式的指示、對樣本的每個分量的類型的指示、對輸出的兩個連續樣本之間的位元組數量的指示、對輸出的一行的第一位元組和下一行的第一位元組之間的位元組數量的指示、或對應從其寫入輸出幀的偏移的指示。在一些示例中,MVD 350可以基於所述參數來配置聚合緩衝器362。
在一些示例中,群組ID是第一群組ID,並且MVD 350可從應用程式接收對創建新解碼器實例的請求。該請求可以包括第二群組ID。MVD 350可以決定第二群組ID是否與第一群組ID相同。MVD 350可以創建所述新解碼器實例。MVD 350可以基於第二群組ID與第一群組ID相同,來控制所述新解碼器實例,以使得在與所述兩個或更多個解碼器實例中的每一個解碼器實例相同的呈現時間處能夠顯現來自所述新解碼器實例的經解碼資料。例如,MVD 350可以將與所述兩個或更多個解碼器實例中的每一個解碼器實例相同的時間戳偏移和測量單元指派給所述新解碼器實例,將所述新解碼器實例耦合到與所述兩個或更多個解碼器實例中的每一個解碼器實例相同的時脈,和/或在與所述兩個或更多個解碼器實例相同的聚合緩衝器中緩衝所述新解碼器實例的輸出。
在一些示例中,群組ID是第一群組ID,並且MVD 350可以從應用程式接收對創建新解碼器實例的請求。該請求可以包括第二群組ID。MVD 350可以決定第二群組ID是否等於0。基於第二群組ID為0,MVD 350可以創建新解碼器實例並將新解碼器實例指派給一個新的群組ID。
在一些示例中,MVD 350可以決定新解碼器實例的參數。例如,MVD可以從應用程式302讀取指令以決定新解碼器實例的參數。所述參數可以包括以下中的一項或多項:對子幀的輸出是否被要求、被期望或不被允許的指示;對為其設定回呼函式的特定元資料類型的指示;對在輸出處是否僅期望經解碼幀的一部分的指示;或者對解碼器實例的連續執行之間的最大時間量的指示。在一些示例中,MVD 350可以基於所述參數來創建新解碼器實例。
在一些示例中,MVD 350可以決定多視頻解碼器的當前聚合能力。在一些示例中,MVD 350可以響應於接收到來自應用程式302的查詢而決定多視頻解碼器的當前聚合能力。在一些示例中,MVD 350可以將對多視頻解碼器的當前聚合能力的指示發送到應用程式302。
在一些示例中,當前聚合能力包括以下各項中的一項或多項:對在一時間處針對所提供的解碼器元件可被實例化的解碼器實例的最大數量的指示,所述時間是對可被實例化的最大數量解碼器實例的所述指示的創建時間;對在一時間處可在MVD上被分配以用於與MVD的元件進行緩衝器交換的最大可用緩衝器大小的指示,所述時間是對可被分配的最大可用緩衝器大小的所述指示的創建時間;對在一時間處被查詢元件能夠處理的最大譯碼位元速率的指示,所述時間是對被查詢元件能夠處理的最大譯碼位元速率的所述指示的創建時間;對在一時間處被查詢元件能夠處理的每單位時間最大樣本數量的指示,所述時間是對被查詢元件能夠處理的每單位時間最大樣本數量的所述指示的創建時間;或對在解碼器元件的新實例中能夠由被指示元件解碼的位元串流的最大性能點的指示。
在一些示例中,對可由被指示元件解碼的位元串流的最大性能點的所述指示包括:每單位時間在圖片中的最大性能點的圖片速率、最大性能點的亮度樣本中的高度、最大性能點的亮度樣本中的寬度,以及最大性能點的亮度樣本的位元深度。
在一些示例中,客戶端設備40包括被配置為顯示點雲的顯示設備。
以此方式,應用程式能夠查詢MVD的當前能力,可以將來自不同的串流的多個樣本分組以供MVD同時解碼,且應用程式能夠對MVD的不同解碼器實例的排程施加精細粒度控制。
本公開內容包括以下示例。
條款1.一種解碼媒體資料的方法,所述方法包括:
由包括多個視頻解碼器的客戶端設備決定所述客戶端設備的多個元件的能力;由所述客戶端設備基於所述多個元件的能力來進行以下一個或多個操作:控制對所述多個視頻解碼器的存取,或適應解碼程序;以及由所述客戶端設備基於控制存取或適應解碼程序中的所述一個或多個操作來解碼所述媒體資料。
條款2.根據條款1所述的方法,其中,所決定的能力包括以下一項或多項:在一時間處針對所述多個元件中的第一元件能夠被實例化的解碼器實例的最大數量、在所述時間處能夠被分配以用於與所述多個元件進行緩衝器交換的最大緩衝器大小、在所述時間處所述第一元件能夠處理的最大譯碼位元速率、在所述時間處所述第一元件能夠處理的每單位時間最大樣本數量、或者在所述第一元件的新解碼器實例中能夠由所述第一元件解碼的位元串流的最大性能點。
條款3.根據條款2所述的方法,其中,所述最大性能點包括以下一項或多項:每單位時間在圖片中的所述最大性能點的圖片速率、所述最大性能點的亮度樣本中的高度、所述最大性能點的亮度樣本中的寬度或所述最大性能點的亮度樣本的位元深度。
條款4.根據條款3所述的方法,其中,所述最大性能點包括:每單位時間在圖片中的所述最大性能點的所述圖片速率、所述最大性能點的亮度樣本中的所述高度、所述最大性能點的亮度樣本中的所述寬度,以及所述最大性能點的亮度樣本的所述位元深度。
條款5.根據條款1-4的任何組合所述的方法,還包括:決定解碼器實例的識別符和所述解碼器實例的群組id。
條款6.根據條款1至5的任何組合所述的方法,還包括:決定輸出緩衝器的格式。
條款7.根據第6條所述的方法,其中,所述輸出緩衝器的格式包括以下一項或多項:每個樣本的格式、每個樣本的每個分量的類型、輸出的兩個連續樣本之間的位元組數量、所述輸出的一行的第一位元組與所述輸出的下一行的第一位元組之間的位元組數量、或應從其開始寫入輸出幀的所述輸出緩衝器中的偏移。
條款8.根據條款7所述的方法,其中,每個樣本的所述格式包括純量、2D向量、3D向量或4D向量中的一個。
條款9.根據條款1至8的任何組合所述的方法,還包括:決定解碼器實例的配置。
條款10.根據條款9所述的方法,其中,所述配置包括以下各項中的一項或多項:指示子幀的輸出是否被要求、被期望或不被允許;為一種類型的元資料設定回呼函式;指示在輸出處僅期望經解碼幀的一部分;或者用信號通知所述解碼器實例的連續執行之間的每單位時間的最大時間量。
條款11.根據條款10所述的方法,其中,所支持的元資料類型的列表是編解碼器相關的並且是針對每個編解碼器獨立地定義的。
條款12.一種用於解碼媒體資料的客戶端設備,所述客戶端設備包括:記憶體,被配置為儲存所述媒體資料;以及一個或多個處理器,其在電路中實現並且被配置為:執行多個視頻解碼器;以及
條款13.根據條款12所述的客戶端設備,還包括被配置為顯示經解碼媒體資料的顯示器。
條款14.根據條款12-13的任何組合所述的客戶端設備,其中,所述設備包括相機、計算機、移動設備、廣播接收機設備或機上盒中的一項或多項。
條款15.根據條款12-14的任何組合所述的客戶端設備,還包括所述多個視頻解碼器。
條款16.根據條款12-15的任何組合所述的客戶端設備,還包括視頻編碼器。
條款17.一種用於解碼媒體資料的設備,所述設備包括用於執行條款1-11的任何組合的一個或多個單元。
條款18.一種計算機可讀儲存媒體,其上儲存有指令,所述指令在被執行時使處理器:執行多個視頻解碼器;及執行條款1-11的任何組合。
在一個或多個示例中,可以以硬體、軟體、韌體或其任意組合來實現所描述的功能。如果以軟體實現,則所述功能可以作為一個或多個指令或代碼在計算機可讀媒體上進行儲存或發送,並由基於硬體的處理單元執行。計算機可讀媒體可以包括計算機可讀儲存媒體或通信媒體,計算機可讀儲存媒體對應於諸如資料儲存媒體的有形媒體,通信媒體包括例如根據通信協定便於將計算機程式從一個地方轉移到另一個地方的任何媒體。以這種方式,計算機可讀媒體通常可以對應於(1)非暫時性的有形計算機可讀儲存媒體,或者(2)諸如信號或載波的通信媒體。資料儲存媒體可以是可以由一台或多台計算機或一個或多個處理器存取以提取用於實現本公開內容中描述的技術的指令、代碼和/或資料結構的任何可用媒體。計算機程式產品可以包括計算機可讀媒體。
作為示例,但不是限制,這樣的計算機可讀媒體可以包括RAM、ROM、EEPROM、CD-ROM或其它光碟儲存設備、磁碟儲存設備或其它磁儲存設備、快閃記憶體或者可以用於以指令或資料結構的形式儲存所需程式碼並且能夠被計算機存取的任何其它媒體。此外,任何連接都可以適當地稱為計算機可讀媒體。例如,如果用同軸電纜、光纖電纜、雙絞線、數位用戶線路(DSL)或例如紅外線、無線和微波的無線技術從網站、伺服器或其它遠程來源發送軟體,則該同軸電纜、光光纖電纜、雙絞線、DSL或例如紅外線、無線和微波的無線技術也包含在媒體的定義中。然而,應當理解,計算機可讀儲存媒體和資料儲存媒體不包括連接、載波、信號或其他暫時性媒體,而是針對非暫時性有形儲存媒體。本文所使用的磁碟和光碟包括壓縮光碟(CD)、激光光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中磁碟通常磁性地再現資料,而光碟通常利用雷射光學地再現資料。上述的組合也包括在計算機可讀媒體的範圍內。
指令可由一個或多個處理器執行,例如一個或多個數位信號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、場域可編程閘陣列(FPGA)或其他等效積體或離散邏輯電路。相應地,如本文所使用的術語“處理器”可以指任何前述結構或適合於實現本文描述的技術的任何其他結構。另外,在一些方面,本文描述的功能可以在被配置用於編碼和解碼的專用硬體和/或軟體模組內提供,或結合在組合編解碼器中。同樣,所述技術可以在一個或多個電路或邏輯元件中完全實現。
本公開內容的技術可以在包括無線手持機、積體電路(IC)或一組IC(例如,晶片組)的多種設備或裝置中實現。在本公開內容中描述各種元件、模組或單元以強調被配置為執行所公開技術的設備的功能方面,但不一定需要由不同硬體單元來實現。相反,如上所述,各種單元可以組合在編解碼器硬體單元中,或者由互操作的硬體單元的集合來提供,包括與合適的軟體和/或韌體相結合的如上所述的一個或多個處理器。
已經描述了各種示例。這些和其他示例在所附申請專利範圍的範圍內。
10:系統
20:內容準備設備
22:音頻源
24:視頻源
26:音頻編碼器
28:視頻編碼器
30:封裝單元
32:輸出介面
40:客戶端設備
42:音頻輸出
44:視頻輸出
46:音頻解碼器
48:視頻解碼器
50:解封裝單元
52:提取單元
54:網路介面
60:伺服器設備
62:儲存媒體
64:多媒體內容
66:清單檔案
68A~68N:表示
70:請求處理單元
72:網路介面
74:網路
52:提取單元
100:EMBMS中間件
102:代理伺服器
104:快取
106:EMBMS接收單元
110:DASH客戶端
112:媒體應用程式
120:多媒體內容
122:媒體呈現描述(MPD)
124A~124N:表示
126:標頭資料
128A~128N:段
130:標頭資料
132A~132N:段
150:視頻檔案
152:檔案類型盒
154:電影盒
156:電影標頭(MVHD)
158:軌道(TRAK)
160:電影擴展(MVEX)
162:段索引(SIDX)盒
164:電影片段
166:電影片段隨機存取(MFRA)盒
200:視頻解碼引擎
202A~202N:元資料串流
204A~204M:基本串流
206:輸入視頻解碼介面
208:輸入格式化單元
210A~210M:視頻解碼器實例
212:時間鎖定單元
214:輸出格式化單元
216:輸出視頻解碼介面
218A~218N:元資料串流
220A~220M:經解碼序列
238:多視頻解碼器(MVD)
240:視頻解碼器硬體引擎
242:引擎控制介面
244A~244N:視頻解碼器實例
246A~246N:輸入視頻介面
248A~248N:輸出視頻介面
300:系統
302:應用程式
304:圖形處理單元(GPU)
306A~306N:視頻輸出緩衝器
308:視埠
310:多解碼器
320:視頻物件
320A~320N:視頻物件
322A~322N:同步單元
350:多視頻解碼器(MVD)
352:解碼器平台控制
354:時脈元件
356:解碼器實例#1
358:解碼器實例#2
360:解碼器實例#3
362:聚合緩衝器
370:解多工器
372:SPS配對單元
374:路徑序列解壓縮單元
376:視頻解壓縮單元
378:視頻解壓縮單元
380:視頻解壓縮單元
382:幾何形狀/屬性重構單元
384:幾何形狀後處理單元
386:屬性傳遞和平滑單元
390:步驟
392:步驟
圖1繪示實現用於透過網路來串流傳輸媒體資料的技術的示例系統的方塊圖。
圖2繪示提取單元的一組示例元件的方塊圖。
圖3繪示示例多媒體內容的元素的概念圖。
圖4繪示示例視頻檔案的元素的方塊圖,該示例視頻檔案可以對應於表示(representation)的段(segment)。
圖5繪示用於對串流傳輸的媒體資料進行解碼的示例系統的概念圖。
圖6繪示示例解碼引擎及相關聯介面的方塊圖。
圖7繪示示例視頻解碼器硬體引擎和示例視頻解碼器實例的方塊圖。
圖8繪示根據本公開內容的技術的具有聚合輸出緩衝器的多視頻解碼器(multiple video decoder,MVD)的概念圖。
圖9繪示根據本公開內容的技術的示例性的基於視頻的點雲(Video-based Point Cloud,V-PCC)解碼器的概念圖。
圖10繪示根據本公開內容的用於對解碼器實例進行分組的示例技術的流程圖。
350:多視頻解碼器(MVD)
352:解碼器平台控制
354:時脈元件
356:解碼器實例#1
358:解碼器實例#2
360:解碼器實例#3
362:聚合緩衝器
Claims (32)
- 一種解碼媒體資料的方法,所述方法包括: 由客戶端設備決定是否意圖同步兩個或更多個解碼器實例;以及 基於意圖同步所述兩個或更多個解碼器實例,控制所述兩個或更多個解碼器實例,以使得在相同呈現時間處能夠顯現來自所述兩個或更多個解碼器實例中每一個解碼器實例的經解碼資料。
- 根據請求項1所述的方法,其中,決定是否意圖同步兩個或更多個解碼器實例包括:決定所述兩個或更多個解碼器實例中的每一個解碼器實例的群組識別符(ID)是否相同。
- 根據請求項2所述的方法,其中,所述群組ID是第一群組ID,所述方法還包括: 從應用程式接收對創建新解碼器實例的請求,所述請求包括第二群組ID; 決定所述第二群組ID是否與所述第一群組ID相同; 創建所述新解碼器實例;以及 基於所述第二群組ID與所述第一群組ID相同,控制所述新解碼器實例,以使得在與所述兩個或更多個解碼器實例中的每一個解碼器實例相同的呈現時間處能夠顯現來自所述新解碼器實例的經解碼資料。
- 根據請求項2所述的方法,還包括: 從應用程式接收對創建新解碼器實例的請求,所述請求包括第二群組ID; 決定所述第二群組ID是否等於0;以及 基於所述第二群組ID等於0,創建所述新解碼器實例並為所述新解碼器實例指派新的群組ID。
- 根據請求項1所述的方法,還包括: 向所述兩個或更多個解碼器實例中的每一個解碼器實例指派相同的時間戳偏移和測量單元,其中,所述相同的時間戳偏移和測量單元指示所述兩個或更多個解碼器實例中的每一個解碼器實例上的樣本具有相同的呈現時間。
- 根據請求項5所述的方法,其中,所述兩個或多個解碼器實例中的每一個解碼器實例都耦合到相同的時脈。
- 根據請求項1所述的方法,還包括: 在聚合緩衝器中緩衝所述兩個或更多個解碼器實例的輸出,其中,所述聚合緩衝器被配置為交錯從所述兩個或更多個解碼器實例中的每一個解碼器實例輸出的經解碼資料。
- 根據請求項7所述的方法,還包括: 決定所述聚合緩衝器的參數,其中,所述參數包括以下各項中的一項或多項: 對樣本的格式的指示; 對所述樣本的每個分量的類型的指示; 對解碼器實例的輸出的兩個連續樣本之間的位元組數量的指示; 對所述解碼器實例的所述輸出的一行的第一位元組和下一行的第一位元組之間的位元組數量的指示;或 對偏移的指示,應從所述偏移寫入解碼器實例的輸出幀。
- 根據請求項1所述的方法,還包括: 決定新解碼器實例的參數,其中,所述參數包括以下各項中的一項或多項: 對子幀的輸出是否被要求、被期望或不被允許的指示; 對為其設定回呼函式的特定元資料類型的指示; 對在輸出處是否僅期望經解碼幀的一部分的指示;或者 對所述新解碼器實例的連續執行之間的最大時間量的指示。
- 根據請求項9所述的方法,還包括: 基於所述參數來創建所述新解碼器實例。
- 根據請求項1所述的方法,還包括: 決定多視頻解碼器的當前聚合能力。
- 根據請求項11所述的方法,其中,決定所述多視頻解碼器的所述當前聚合能力是響應於接收到來自應用程式的查詢;所述方法還包括: 向所述應用程式傳送對所述多視頻解碼器的所述當前聚合能力的指示。
- 根據請求項11所述的方法,其中,所述當前聚合能力包括以下各項中的一項或多項: 對在一時間處針對所提供的解碼器元件可被實例化的解碼器實例的最大數量的指示,所述時間是對可被實例化的所述最大數量解碼器實例的所述指示的創建時間; 對在一時間處可在多視頻解碼器(MVD)上被分配以用於與MVD的元件進行緩衝器交換的最大可用緩衝器大小的指示,所述時間是對可被分配的所述最大可用緩衝器大小的所述指示的創建時間; 對在一時間處被查詢元件能夠處理的最大譯碼位元速率的指示,所述時間是對所述被查詢元件能夠處理的所述最大譯碼位元速率的所述指示的創建時間; 對在一時間處所述被查詢元件能夠處理的每單位時間最大樣本數量的指示,所述時間是對所述被查詢元件能夠處理的每單位時間最大樣本數量的所述指示的創建時間;或 對在解碼器元件的新實例中可由被指示元件解碼的位元串流的最大性能點的指示。
- 根據請求項13所述的方法,其中,對可由被指示元件解碼的位元串流的最大性能點的所述指示包括: 每單位時間在圖片中的所述最大性能點的圖片速率; 所述最大性能點的亮度樣本中的高度; 所述最大性能點的亮度樣本中的寬度;以及 所述最大性能點的亮度樣本的位元深度。
- 一種用於解碼媒體資料的設備,所述設備包括: 記憶體,被配置為儲存所述媒體資料;以及 一個或多個處理器,在電路中實現並且通信地耦合到所述記憶體,所述一個或多個處理器被配置為: 決定是否意圖同步兩個或更多個解碼器實例;以及 基於意圖同步所述兩個或更多個解碼器實例,控制所述兩個或更多個解碼器實例,以使得在相同呈現時間處能夠顯現來自所述兩個或更多個解碼器實例中每一個解碼器實例的經解碼資料。
- 根據請求項15所述的設備,其中,作為決定是否意圖同步兩個或更多個解碼器實例的一部分,所述一個或多個處理器被配置為決定所述兩個或更多個解碼器實例中的每一個解碼器實例的群組識別符(ID)是否相同。
- 根據請求項16所述的設備,其中,所述群組ID是第一群組ID,所述一個或多個處理器還被配置為: 從應用程式接收對創建新解碼器實例的請求,所述請求包括第二群組ID; 決定所述第二群組ID是否與所述第一群組ID相同; 創建所述新解碼器實例;以及 基於所述第二群組ID與所述第一群組ID相同,控制所述新解碼器實例,以使得在與所述兩個或更多個解碼器實例中的每一個解碼器實例相同的呈現時間處能夠顯現來自所述新解碼器實例的經解碼資料。
- 根據請求項16所述的設備,其中,所述一個或多個處理器還被配置為: 從應用程式接收對創建新解碼器實例的請求,所述請求包括第二群組ID; 決定所述第二群組ID是否等於0;以及 基於所述第二群組ID等於0,創建所述新解碼器實例並為所述新解碼器實例指派新的群組ID。
- 根據請求項15所述的設備,其中,所述一個或多個處理器還被配置為: 向所述兩個或更多個解碼器實例中的每一個解碼器實例指派相同的時間戳偏移和測量單元,其中,所述相同的時間戳偏移和測量單元指示所述兩個或更多個解碼器實例中的每一個解碼器實例上的樣本具有相同的呈現時間。
- 根據請求項19所述的設備,還包括:通信地耦合到所述兩個或更多個解碼器實例中的每一個解碼器實例的時脈。
- 根據請求項15所述的設備,還包括: 聚合緩衝器,通信地耦合到所述一個或多個處理器,所述聚合緩衝器被配置為交錯從所述兩個或更多個解碼器實例中的每一個解碼器實例輸出的經解碼資料。
- 根據請求項21所述的設備,其中,所述一個或多個處理器還被配置為: 決定所述聚合緩衝器的參數,其中,所述參數包括以下各項中的一項或多項: 對樣本的格式的指示; 對所述樣本的每個分量的類型的指示; 對解碼器實例的輸出的兩個連續樣本之間的位元組數量的指示; 對所述解碼器實例的所述輸出的一行的第一位元組和下一行的第一位元組之間的位元組數量的指示;或 對偏移的指示,應從所述偏移寫入解碼器實例的輸出幀。
- 根據請求項22所述的設備,其中,所述一個或多個處理器還被配置為基於所述參數來配置所述聚合緩衝器。
- 根據請求項15所述的設備,其中,所述一個或多個處理器還被配置為: 決定新解碼器實例的參數,其中,所述參數包括以下各項中的一項或多項: 對子幀的輸出是否被要求、被期望或不被允許的指示; 對為其設定回呼函式的特定元資料類型的指示; 對在輸出處是否僅期望經解碼幀的一部分的指示;或 對所述新解碼器實例的連續執行之間的最大時間量的指示。
- 根據請求項24所述的設備,其中,所述一個或多個處理器還被配置為: 基於所述參數來創建所述新解碼器實例。
- 根據請求項15所述的設備,其中,所述一個或多個處理器還被配置為: 決定多視頻解碼器的當前聚合能力。
- 根據請求項26所述的設備,其中,所述一個或多個處理器響應於接收到來自應用程式查詢而決定所述多視頻解碼器的所述當前聚合能力,並且其中,所述一個或多個處理器還被配置為: 向所述應用程式傳送對所述多視頻解碼器的所述當前聚合能力的指示。
- 根據請求項26所述的設備,其中,所述當前聚合能力包括以下各項中的一項或多項: 對在一時間處針對所提供的解碼器元件可被實例化的解碼器實例的最大數量的指示,所述時間是對可被實例化的所述最大數量解碼器實例的所述指示的創建時間; 對在一時間處可在多視頻解碼器(MVD)上被分配以用於與MVD的元件進行緩衝器交換的最大可用緩衝器大小的指示,所述時間是對可被分配的所述最大可用緩衝器大小的所述指示的創建時間; 對在一時間處被查詢元件能夠處理的最大譯碼位元速率的指示,所述時間是對所述被查詢元件能夠處理的所述最大譯碼位元速率的所述指示的創建時間; 對在一時間處所述被查詢元件能夠處理的每單位時間最大樣本數量的指示,所述時間是對所述被查詢元件能夠處理的每單位時間最大樣本數量的所述指示的創建時間;或 對在解碼器元件的新實例中可由被指示元件解碼的位元串流的最大性能點的指示。
- 根據請求項28所述的設備,其中,對可由被指示元件解碼的位元串流的最大性能點的所述指示包括: 每單位時間在圖片中的所述最大性能點的圖片速率; 所述最大性能點的亮度樣本中的高度; 所述最大性能點的亮度樣本中的寬度;以及 所述最大性能點的亮度樣本的位元深度。
- 根據請求項15所述的設備,還包括:通信地耦合到所述一個或多個處理器的顯示設備,所述顯示設備被配置為顯示點雲。
- 一種儲存指令的非暫時性計算機可讀儲存媒體,所述指令在由一個或多個處理器執行時使所述一個或多個處理器: 決定是否意圖同步兩個或更多個解碼器實例;以及 基於意圖同步所述兩個或更多個解碼器實例,控制所述兩個或更多個解碼器實例,以使得在相同呈現時間處能夠顯現來自所述兩個或更多個解碼器實例中每一個解碼器實例的經解碼資料。
- 一種用於解碼媒體資料的設備,所述設備包括: 用於決定是否意圖同步兩個或更多個解碼器實例的單元;以及 用於基於意圖同步所述兩個或更多個解碼器實例,控制所述兩個或更多個解碼器實例,以使得在相同呈現時間處能夠顯現來自所述兩個或更多個解碼器實例中每一個解碼器實例的經解碼資料的單元。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062959064P | 2020-01-09 | 2020-01-09 | |
US62/959,064 | 2020-01-09 | ||
US17/143,633 | 2021-01-07 | ||
US17/143,633 US11388427B2 (en) | 2020-01-09 | 2021-01-07 | Multiple decoder interface for streamed media data |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202127897A true TW202127897A (zh) | 2021-07-16 |
Family
ID=76763749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110100869A TW202127897A (zh) | 2020-01-09 | 2021-01-08 | 用於串流傳輸媒體資料的多解碼器介面 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11388427B2 (zh) |
EP (1) | EP4088476A1 (zh) |
CN (1) | CN114930862A (zh) |
TW (1) | TW202127897A (zh) |
WO (1) | WO2021142246A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11729395B2 (en) * | 2021-11-26 | 2023-08-15 | Huawei Technologies Co., Ltd. | Methods and devices for extracting motion vector data from compressed video data |
WO2024063920A1 (en) * | 2022-09-20 | 2024-03-28 | Qualcomm Incorporated | Mixed media data format and transport protocol |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101132262B (zh) * | 2006-08-21 | 2011-04-20 | 大唐移动通信设备有限公司 | 一种tdd系统同步harq的实现及数据传输的方法 |
WO2015197815A1 (en) * | 2014-06-27 | 2015-12-30 | Koninklijke Kpn N.V. | Determining a region of interest on the basis of a hevc-tiled video stream |
US10855741B2 (en) * | 2015-08-06 | 2020-12-01 | Sensormatic Electronics, LLC | System and method for multiplexed video stream decoding in web browser |
US9854375B2 (en) * | 2015-12-01 | 2017-12-26 | Qualcomm Incorporated | Selection of coded next generation audio data for transport |
GB2550912B (en) * | 2016-05-27 | 2019-09-04 | Canon Kk | Method, device and computer program for encapsulating and parsing timed media data |
WO2018083378A1 (en) * | 2016-11-01 | 2018-05-11 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
US10805650B2 (en) * | 2017-03-27 | 2020-10-13 | Qualcomm Incorporated | Signaling important video information in network video streaming using mime type parameters |
US11581022B2 (en) * | 2019-05-29 | 2023-02-14 | Nokia Technologies Oy | Method and apparatus for storage and signaling of compressed point clouds |
US11245899B2 (en) * | 2019-09-22 | 2022-02-08 | Tencent America LLC | Method and system for single loop multilayer coding with subpicture partitioning |
-
2021
- 2021-01-07 US US17/143,633 patent/US11388427B2/en active Active
- 2021-01-08 WO PCT/US2021/012682 patent/WO2021142246A1/en unknown
- 2021-01-08 CN CN202180008168.5A patent/CN114930862A/zh active Pending
- 2021-01-08 TW TW110100869A patent/TW202127897A/zh unknown
- 2021-01-08 EP EP21702828.1A patent/EP4088476A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210218976A1 (en) | 2021-07-15 |
US11388427B2 (en) | 2022-07-12 |
WO2021142246A1 (en) | 2021-07-15 |
CN114930862A (zh) | 2022-08-19 |
EP4088476A1 (en) | 2022-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11924526B2 (en) | Segment types as delimiters and addressable resource identifiers | |
US11405699B2 (en) | Using GLTF2 extensions to support video and audio data | |
US20230283863A1 (en) | Retrieving and accessing segment chunks for media streaming | |
JP6254291B2 (ja) | Dashのロバストなライブ動作 | |
TW202037177A (zh) | 用於串流媒體資料之服務描述 | |
WO2019014210A1 (en) | PROCESSING MULTIMEDIA DATA USING A GENERIC DESCRIPTOR FOR FILE FORMAT PAVERS | |
JP2019520741A (ja) | サンプルエントリーおよびランダムアクセス | |
JP2019520742A (ja) | サンプルエントリーおよびランダムアクセス | |
TWI820227B (zh) | 用於媒體資料之網路串流之初始化集合 | |
US11388427B2 (en) | Multiple decoder interface for streamed media data | |
US10587904B2 (en) | Processing media data using an omnidirectional media format | |
TWI846795B (zh) | 用於經串流媒體資料之多個解碼器介面 | |
US20230224532A1 (en) | Dynamic resolution change hints for adaptive streaming | |
JP2024511948A (ja) | Heifフォーマットされた画像をリアルタイムトランスポートプロトコル上でトランスポートすること |