TW202236852A - 高效視訊編碼器架構 - Google Patents
高效視訊編碼器架構 Download PDFInfo
- Publication number
- TW202236852A TW202236852A TW111104744A TW111104744A TW202236852A TW 202236852 A TW202236852 A TW 202236852A TW 111104744 A TW111104744 A TW 111104744A TW 111104744 A TW111104744 A TW 111104744A TW 202236852 A TW202236852 A TW 202236852A
- Authority
- TW
- Taiwan
- Prior art keywords
- frames
- frame
- subset
- video
- motion vector
- Prior art date
Links
- 230000033001 locomotion Effects 0.000 claims abstract description 512
- 239000013598 vector Substances 0.000 claims abstract description 295
- 238000000034 method Methods 0.000 claims abstract description 138
- 238000012545 processing Methods 0.000 claims description 188
- 238000013139 quantization Methods 0.000 claims description 91
- 230000002123 temporal effect Effects 0.000 claims description 28
- 238000003860 storage Methods 0.000 description 36
- 239000010410 layer Substances 0.000 description 32
- 238000004891 communication Methods 0.000 description 30
- 230000008569 process Effects 0.000 description 24
- 238000000638 solvent extraction Methods 0.000 description 24
- 239000000872 buffer Substances 0.000 description 23
- 230000005540 biological transmission Effects 0.000 description 20
- 238000005192 partition Methods 0.000 description 18
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 16
- 241000023320 Luma <angiosperm> Species 0.000 description 16
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 230000006835 compression Effects 0.000 description 12
- 238000007906 compression Methods 0.000 description 12
- 238000013500 data storage Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 7
- 229910052710 silicon Inorganic materials 0.000 description 7
- 239000010703 silicon Substances 0.000 description 7
- 230000009466 transformation Effects 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 230000018109 developmental process Effects 0.000 description 6
- 238000006073 displacement reaction Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 101150114515 CTBS gene Proteins 0.000 description 4
- 238000003491 array Methods 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 230000000386 athletic effect Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000013213 extrapolation Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 238000012432 intermediate storage Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 239000004984 smart glass Substances 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/547—Motion estimation performed in a transform domain
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/587—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
-
- 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
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供用於高效視訊解碼的系統、方法和電腦可讀取媒體。方法可以包括:在以第一訊框速率實現的第一解碼階段期間,決定針對訊框序列中的第一訊框子集的第一運動向量;在第二解碼階段期間,決定針對訊框序列中的第二訊框子集的第二運動向量,其中第二運動向量的一部分是基於第一運動向量中的一或多個運動向量來計算的;及在第二解碼階段期間,使用第一運動向量來重構第一訊框子集;及在第二視訊解碼階段期間,使用第二運動向量來重構第二訊框子集,第一解碼階段和第二解碼階段是並列地實現的,並且第二解碼階段是以高於第一訊框速率的第二訊框速率來實現的。
Description
大體而言,本案內容係關於視訊解碼和壓縮,以及更特定言之,係關於高效視訊解碼架構。
許多設備和系統允許視訊資料被處理和輸出以供消費。數位視訊資料包括不斷增加的大量資料,以滿足視訊品質和視訊消費者和提供者的其他需求。例如,視訊資料的消費者通常期望具有高保真度、高解析度、高訊框速率等的高品質視訊。因此,滿足該等需求通常所需要的大量視訊資料為處理和儲存視訊資料的通訊網路和設備帶來了顯著負擔。
各種視訊解碼技術可以用於對視訊資料進行壓縮並且減少通訊網路上的負擔。可以根據特定解碼標準來執行視訊解碼。一些示例性視訊解碼標準包括基本視訊解碼(VVC)、高效率視訊解碼(HEVC)、高級視訊解碼(AVC)、MPEG-2部分2解碼(MPEG代表動態影像專家群)、VP9、開放媒體聯盟(AOMedia)視訊1(AV1)等。視訊解碼通常利用運動估計和預測方法(例如,訊框間預測、訊框內預測等),預測方法利用在視訊圖像或序列中存在的冗餘。視訊解碼技術的一個示例性目標是將視訊資料壓縮為使用較低位元速率的形式,同時避免或最小化視訊品質的降級。儘管此種視訊壓縮可以提供各種好處,諸如減少在通訊網路上的視訊資料的負擔,但是所實現的視訊解碼技術可能計算成本較高,如此可能導致較高的硬體成本和效能犧牲。隨著不斷發展的視訊服務變得可用,需要具有更好的解碼效率和效能的解碼技術。
所揭示的是用於高效視訊解碼和編碼器架構的系統、方法和電腦可讀取媒體。根據至少一個實例,提供用於高效視訊解碼的方法。方法可以包括:在以第一訊框速率實現的第一視訊解碼階段期間,決定針對訊框序列中的第一訊框子集的第一運動向量;在以高於第一訊框速率的第二訊框速率實現的第二視訊解碼階段期間,決定針對訊框序列中的第二訊框子集的第二運動向量,其中第二運動向量的至少一部分是基於來自第一運動向量的一或多個運動向量來計算的;在第二視訊解碼階段期間,使用第一運動向量來重構第一訊框子集;及在第二視訊解碼階段期間,使用第二運動向量來重構第二訊框子集,其中第一視訊解碼階段和第二視訊解碼階段是至少部分並列地實現的。
根據至少一個實例,提供用於高效視訊解碼的裝置。在一些實例中,裝置可以包括記憶體和耦合到記憶體的一或多個處理器,一或多個處理器被配置為:在以第一訊框速率實現的第一視訊解碼階段期間,決定針對訊框序列中的第一訊框子集的第一運動向量;在以高於第一訊框速率的第二訊框速率實現的第二視訊解碼階段期間,決定針對訊框序列中的第二訊框子集的第二運動向量,其中第二運動向量的至少一部分是基於來自第一運動向量的一或多個運動向量來計算的;在第二視訊解碼階段期間,使用第一運動向量來重構第一訊框子集;及在第二視訊解碼階段期間,使用第二運動向量來重構第二訊框子集,其中第一視訊解碼階段和第二視訊解碼階段是至少部分並列地實現的。
根據至少一個實例,提供用於高效視訊解碼的非暫態電腦可讀取媒體。非暫態電腦可讀取媒體可以包括儲存在其上的指令,指令在由一或多個處理器執行時使得一或多個處理器進行以下操作:在以第一訊框速率實現的第一視訊解碼階段期間,決定針對訊框序列中的第一訊框子集的第一運動向量;在以高於第一訊框速率的第二訊框速率實現的第二視訊解碼階段期間,決定針對訊框序列中的第二訊框子集的第二運動向量,其中第二運動向量的至少一部分是基於來自第一運動向量的一或多個運動向量來計算的;在第二視訊解碼階段期間,使用第一運動向量來重構第一訊框子集;及在第二視訊解碼階段期間,使用第二運動向量來重構第二訊框子集,其中第一視訊解碼階段和第二視訊解碼階段是至少部分並列地實現的。
根據至少一個實例,提供用於高效視訊解碼的另一裝置。裝置可以包括用於進行以下操作的構件:在以第一訊框速率實現的第一視訊解碼階段期間,決定針對訊框序列中的第一訊框子集的第一運動向量;在以高於第一訊框速率的第二訊框速率實現的第二視訊解碼階段期間,決定針對訊框序列中的第二訊框子集的第二運動向量,其中第二運動向量的至少一部分是基於來自第一運動向量的一或多個運動向量來計算的;在第二視訊解碼階段期間,使用第一運動向量來重構第一訊框子集;及在第二視訊解碼階段期間,使用第二運動向量來重構第二訊框子集,其中第一視訊解碼階段和第二視訊解碼階段是至少部分並列地實現的。
在一些態樣中,上述方法、非暫態電腦可讀取媒體和裝置可以包括:在與第一訊框速率相關聯的每個間隔,決定來自第一訊框子集的訊框的運動向量,決定來自第二訊框子集的數個不同訊框的相應的運動向量,並且重構來自第二訊框子集的數個不同訊框。在一些情況下,訊框的運動向量可以包括第一運動向量中的至少一個第一運動向量,並且數個不同訊框可以是基於與第二視訊解碼階段相關聯的第二訊框速率的。
在一些實例中,來自第二運動向量的至少部分的每個運動向量是基於來自第一訊框子集的選定訊框的單獨運動向量以及在選定訊框與跟每個運動向量相關聯的特定訊框之間的時間距離來計算的。
在一些實例中,估計第一運動向量可以包括:針對第一訊框子集中的訊框,將訊框的一或多個區塊與來自訊框序列的參考訊框中的複數個區塊進行比較;基於在訊框的一或多個區塊與在參考訊框中的複數個區塊之每一者區塊之間的相應圖元差,來根據複數個區塊決定預測區塊;及將訊框的一或多個區塊的第一位置與跟參考訊框相關聯的預測區塊的第二位置進行比較。
在一些情況下,第二運動向量中的一或多個運動向量是基於第二運動向量的一或多個額外運動向量,以及在與一或多個運動向量相關聯的一或多個訊框和與一或多個額外運動向量相關聯的一或多個參考訊框之間的時間距離來計算的。
在一些態樣中,上述方法、非暫態電腦可讀取媒體和裝置可以包括:決定用於重構第一訊框子集和第二訊框子集的解碼模式,解碼模式定義用於重構訊框的順序以及用於決定第一運動向量之每一者運動向量和第二運動向量之每一者運動向量的相應參考訊框;及根據解碼模式來重構第一訊框子集和第二訊框子集。在一些實例中,解碼模式可以是基於訊框依賴性及/或在訊框序列之每一者訊框之間的時間距離的。在一些情況下,訊框依賴性可以包括以下要求:針對訊框序列之每一者訊框,用於重構每個訊框的參考訊框已經完成重構。
在一些實例中,重構第一訊框子集和第二訊框子集包括:將運動補償、一或多個變換和係數量化以及一或多個解區塊濾波器中的至少一項應用於第一訊框子集和第二訊框子集。
在一些實例中,第一視訊解碼階段和第二視訊解碼階段是經由專用硬體處理管道來實現的。在一些實例中,專用硬體處理管道可以包括一或多個處理器。在一些態樣中,上述方法、非暫態電腦可讀取媒體和裝置可以包括:經由一或多個額外專用硬體處理管道,針對一或多個相應訊框序列單獨地實現第一視訊解碼階段和第二視訊解碼階段。
在一些實例中,第一運動向量是使用運動估計演算法來決定的,並且第二運動向量是使用內插演算法來決定的。在一些情況下,運動估計演算法可能不同於內插演算法。
在一些態樣中,上述方法、非暫態電腦可讀取媒體和裝置可以包括產生經編碼的視訊位元串流。在一些實例中,經編碼的視訊位元串流可以包括訊框序列。在一些態樣中,上述方法、非暫態電腦可讀取媒體和裝置可以包括發送經編碼的視訊位元串流。
在一些情況下,第二訊框子集包括與第一訊框子集相比較多的訊框。在一些實例中,第一訊框子集和第二訊框子集是以第二訊框速率來重構的。
在一些態樣中,上述每個裝置是或包括相機、行動設備(例如,行動電話或所謂的「智慧型電話」或其他行動設備)、智慧可穿戴設備、擴展實境設備(例如,虛擬實境(VR)設備、增強實境(AR)設備或混合實境(MR)設備)、個人電腦、膝上型電腦、伺服器電腦、自動駕駛車輛、編碼器、解碼器或其他設備。在一些態樣中,裝置包括用於擷取一或多個視訊及/或圖像的一或多個相機。在一些態樣中,裝置進一步包括用於顯示一或多個視訊及/或圖像的顯示器。在一些態樣中,上述裝置可以包括一或多個感測器。
本概要既不意欲識別所主張的標的的關鍵或必要特徵,亦不意欲單獨地用於決定所主張的標的的範圍。應當經由參照本專利的整個說明書的適當部分、任何或所有附圖以及每個請求項來理解標的。
在參考以下說明書、請求項和附圖之後,前述內容以及其他特徵和實施例將變得更加顯而易見。
下文提供本案內容的某些態樣和實施例。如對於本領域技藝人士將顯而易見的,該等態樣和實施例中的一些項可以獨立地應用並且其中的一些項可以相組合地應用。在以下描述中,出於解釋的目的,闡述具體細節以便提供對本案的實施例的透徹理解。然而,將顯而易見的是,各個實施例可以在沒有該等具體細節的情況下實施。附圖和描述不意欲是限制性的。
隨後的描述僅提供示例性實施例並且不意欲限制本案內容的範圍、適用性或配置。確切地說,對示例性實施例的隨後的描述將向本領域技藝人士提供用於實現示例性實施例的使能的描述。應當理解的是,在不背離如在所附的請求項中闡述的本案的精神和範圍的情況下,可以對元素的功能和排列進行各種改變。
視訊解碼設備實現視訊壓縮技術以對視訊資料高效地進行編碼和解碼。視訊壓縮技術可以包括應用不同的預測模式,包括空間預測(例如,訊框內預測(intra-frame prediction)或訊框內預測(intra-prediction))、時間預測(例如,訊框間預測(inter-frame prediction)或訊框間預測(inter-prediction))、層間預測(跨越視訊資料的不同層),及/或用於減少或移除在視訊序列中固有的冗餘的其他預測技術。視訊編碼器可以將原始視訊序列的每個圖片分割為被稱為視訊區塊或解碼單元(下文將更詳細地進行描述)的矩形區域。該等視訊區塊可以使用特定的預測模式來編碼。
視訊區塊可以以一或多個方式被劃分為一組或多組較小的區塊。區塊可以包括解碼樹區塊、預測區塊、變換區塊及/或其他合適的區塊。除非另外指定,否則通常對「區塊」的引用可以代表此種視訊區塊(例如,如本領域一般技藝人士將理解的,解碼樹區塊、解碼區塊、預測區塊、變換區塊,或其他適當的區塊或子區塊)。此外,該等區塊之每一者區塊在本文中亦可以被互換地稱為「單元」(例如,解碼樹單元(CTU)、解碼單元、預測單元(PU)、變換單元(TU)等)。在一些情況下,單元可以指示在位元串流中編碼的解碼邏輯單元,而區塊可以指示視訊訊框緩衝器中的程序所針對的一部分。
對於訊框間預測模式,視訊編碼器可以在位於另一時間位置的訊框(或圖片)(被稱為參考訊框或參考圖片)中搜尋與正在被編碼的區塊相似的區塊。視訊編碼器可以將搜尋限制為距要被編碼的區塊的某個空間位移。可以使用包括水平位移分量和垂直位移分量的二維(2D)運動向量來定位最佳匹配。對於訊框內預測模式,視訊編碼器可以基於來自在相同圖片內的先前編碼的鄰近區塊的資料,使用空間預測技術來形成預測區塊。
視訊編碼器可以決定預測誤差。例如,預測可以被決定為在正被編碼的區塊和預測區塊中的圖元值之間的差。預測誤差亦可以被稱為殘差。視訊編碼器亦可以使用變換解碼(例如,使用離散餘弦變換(DCT)的形式、離散正弦變換(DST)的形式或其他合適的變換)來將變換應用於預測誤差,以產生變換係數。在變換之後,視訊編碼器可以對變換係數進行量化。經量化的變換係數和運動向量可以使用語法元素來表示,並且與控制資訊一起形成對視訊序列的經解碼的表示。在一些實例中,視訊編碼器可以對語法元素進行熵解碼,從而進一步減少用於其表示所需要的位元數量。
視訊解碼器可以使用上文論述的語法元素和控制資訊來構造用於解碼當前訊框的預測資料(例如,預測區塊)。例如,視訊解碼器可以將預測區塊和經壓縮的預測誤差相加。視訊解碼器可以藉由使用經量化的係數對變換基函數進行加權,來決定經壓縮的預測誤差。在經重構的訊框與原始訊框之間的差被稱為重構誤差。
本文中描述用於高效視訊解碼和解碼架構的系統、裝置、方法(亦被稱為程序)和電腦可讀取媒體。本文中所描述的技術可以用於實現高效視訊解碼器架構,如下文更詳細地描述的。在一些實例中,本文中所描述的技術可以提供用於視訊編碼器的可伸縮且硬體高效的架構。視訊編碼器架構可以在高品質和高效視訊解碼結果的情況下提高矽面積效率。在一些情況下,示例性視訊編碼器架構可以將視訊編碼管線劃分為階段。該階段可以包括在有限數量的訊框上執行計算成本較高的操作(諸如運動估計)的階段,以及使用來自計算成本較高的操作的結果並且在視訊編碼管線中執行額外操作的另一階段。額外操作可以包括計算成本較低的操作。與實現計算成本較高的操作的階段相比,實現計算成本較低的操作的階段可以處理較高數量的訊框,並且可以將來自計算成本較高的操作的結果用於計算成本較低的操作中的至少一些操作。
在一些實例中,示例性視訊編碼架構可以至少部分並列地實現視訊編碼管線的不同階段,其中一個階段在較少數量的訊框上執行計算成本較高的操作,而另一階段在較大數量的訊框上執行計算成本較低的操作。在較大數量的訊框上執行計算成本較低的操作的階段可以使用來自計算成本較高的操作的結果,從而允許使用較少數量的計算成本較高的操作來準確且高效地對較大數量的訊框進行編碼。例如,在一些情況下,為了對視訊中的訊框集合進行解碼,第一階段可以對訊框的子集執行運動估計,並且第二階段可以對訊框的完整集合執行額外解碼操作。額外解碼操作可以包括運動補償。第二階段可以使用來自訊框的子集的運動估計資訊進行運動補償。第二階段亦可以執行計算成本較低的操作,以獲得針對在第一階段中未被處理並且不具有運動估計資訊的訊框的運動資訊。
例如,第二階段可以對針對在第一階段中未被處理的訊框的運動資訊進行預測或內插。在一些實例中,第二階段可以使用參考訊框及/或來自第一階段的運動估計資訊來預測針對在第一階段中未被處理的訊框的運動資訊。與在第一階段中的運動估計操作相比,運動資訊預測或內插操作可能是計算成本較低的。第二階段可以使用來自第一階段的運動估計資訊和來自第二階段的預測運動資訊來對訊框的完整集合執行運動補償。第二階段可以使用運動補償結果來執行用於對訊框集合進行解碼的其他操作。在以上實例中,第一階段和第二階段中的術語「第一」和「第二」不用於識別或建議在階段之間的特定順序或時間關係,而是用於在論述階段時區分第一階段和第二階段。
本文中所描述的技術可以應用於任何視訊解碼技術。例如,本文中所描述的技術可以應用於各種基於區塊的視訊解碼技術(其中視訊是在逐區塊的基礎上重構的)中的一或多個視訊解碼技術。本文中所描述的技術可以與以下各項一起使用:任何現有視訊編解碼器(例如,高效率視訊解碼(HEVC)、高級視訊解碼(AVC)或其他合適的現有視訊編解碼器)及/或正在開發的任何視訊解碼標準及/或未來的視訊解碼標準,例如基本視訊解碼(EVC)、通用視訊解碼(VVC)、聯合開發模型(JEM)、VP9、AV1及/或正在開發或將開發的其他視訊解碼標準。
本技術將在以下揭示內容中描述如下。論述開始於對用於高效視訊解碼的示例性系統、架構和技術的描述,如圖1至圖4中所示。隨後將跟隨對用於高效視訊解碼的示例性方法的描述,如圖5中所示。論述以對示例性編碼設備架構和示例性解碼設備架構的描述結束,如圖6和7中所示。本案內容現在轉向圖1。
圖1是圖示包括編碼設備104和解碼設備112的示例性系統100的方塊圖。編碼設備104和解碼設備112可以是同一設備或不同設備的一部分。在一些實例中,編碼設備104可以是源設備的一部分,並且解碼設備112可以是接收設備(亦被稱為客戶端設備)的一部分。源設備及/或接收設備可以包括電子設備,諸如行動或固定電話手機(例如,智慧型電話、蜂巢式電話等)、桌上型電腦、膝上型電腦或筆記型電腦、平板電腦、機上盒、電視機、相機、顯示設備、數位媒體播放機、視訊遊戲機、網際網路協定(IP)相機、在包括一或多個伺服器設備的伺服器系統(例如,視訊串流伺服器系統,或其他合適的伺服器系統)中的伺服器設備、頭戴式顯示器(HMD)、平視顯示器(HUD)、智能眼鏡(例如,虛擬實境(VR)眼鏡、增強實境(AR)眼鏡,或其他智慧眼鏡),或任何其他合適的電子設備。
系統100的元件可以包括電子電路或其他電子硬體,及/或可以使用電子電路或其他電子硬體來實現,其可以包括一或多個可程式設計電子電路(例如,微處理器、圖形處理單元(GPUs)、數位訊號處理器(DSPs)、中央處理單元(CPUs)及/或其他合適的電子電路),及/或可以包括電腦軟體、韌體或其任何組合,及/或可以使用電腦軟體、韌體或其任何組合來實現,以執行本文中所描述的各種操作。
儘管系統100被示為包括某些元件,但是本領域一般技藝人士將瞭解,系統100可以包括與在圖1中所示的彼等元件相比較多或較少的元件。例如,在一些實例中,系統100亦可以包括除了儲存裝置108和儲存裝置118之外的一或多個記憶體設備(例如,一或多個隨機存取記憶體(RAM)元件、唯讀記憶體(ROM)元件、快取緩衝記憶體元件、緩衝器元件、資料庫元件,及/或其他記憶體設備)、與一或多個記憶體設備相通訊及/或電連接的一或多個處理設備(例如,一或多個CPU、GPU及/或其他處理設備)、用於執行無線通訊的一或多個無線介面(例如,包括用於每個無線介面的一或多個收發機和基頻處理器)、用於在一或多個硬接線連接上執行通訊的一或多個有線介面(例如,諸如通用串列匯流排(USB)輸入之類的串列介面、照明連接器,及/或其他有線介面),及/或在圖1中未圖示的其他元件。
本文中所描述的解碼技術適用於各種多媒體應用中的視訊解碼,包括串流視訊傳輸(例如,經由網際網路)、電視廣播或傳輸、對數位視訊的編碼以儲存在資料儲存媒體上、對被儲存在資料儲存媒體上的數位視訊進行解碼,或其他應用。在一些實例中,系統100可以支援單向或雙向視訊傳輸,以支援諸如視訊會議、視訊串流、視訊重播、視訊廣播、遊戲、擴展實境(例如,虛擬實境、增強實境等)及/或視訊電話等的應用。
編碼設備104(或編碼器)可以實現下文更詳細地描述的高效視訊編碼器管線和架構。在一些實例中,編碼設備104可以使用視訊解碼標準或協定來對視訊資料進行編碼,以產生經編碼的視訊位元串流。視訊解碼標準的實例包括ITU-T H.261、ISO/IEC MPEG-1視覺、ITU-T H.262,或ISO/IEC MPEG-2視覺、ITU-T H.263、ISO/IEC MPEG-4視覺、ITU-T H.264(亦被稱為ISO/IEC MPEG-4 AVC)(包括其可伸縮視訊解碼(SVC)和多視圖視訊解碼(MVC)擴展)、和高效率視訊解碼(HEVC)或ITU-T H.265。對HEVC的各種擴展處理多層視訊解碼存在,包括範圍和螢幕內容解碼擴展、3D視訊解碼(3D-HEVC)和多視圖擴展(MV-HEVC)和可伸縮擴展(SHVC)。HEVC及其擴展已經由ITU-T視訊解碼專家群(VCEG)和ISO/IEC動態影像專家群(MPEG)的視訊解碼聯合協調小組(JCT-VC)以及3D視訊解碼擴展開發聯合協調小組(JCT-3V)開發。
MPEG和ITU-T VCEG亦已經組建了聯合開發視訊組(JVET),以探索和開發用於下一代視訊解碼標準(被命名為通用視訊解碼(VVC))的新視訊解碼工具。參考軟體被稱為VVC測試模型(VTM))。VVC的目標是提供相比於現有HEVC標準而言在壓縮效能方面的顯著改進,幫助部署較高品質的視訊服務和新興應用(例如,諸如360°全向沉浸式多媒體、高動態範圍(HDR)視訊等)。基本視訊解碼(EVC)、VP9和開放媒體聯盟(AOMedia)視訊1(AV1)是可以針對其應用本文中所描述的技術的其他視訊解碼標準。
可以使用視訊編解碼器(諸如EVC、VTM、VVC、HEVC、AVC及/或其擴展)來執行本文中所描述的許多實施例。然而,本文中所描述的技術和系統亦可以適用於其他解碼標準或協定,諸如MPEG、JPEG(或用於靜態圖像的其他解碼標準)、VP9、AV1、其擴展,或已經可用或尚不可用或尚未開發的其他合適的解碼標準。因此,儘管本文中所描述的技術和系統可能是參考特定的視訊解碼標準來描述的,但是本領域一般技藝人士將瞭解,描述不應當被解釋為僅適用於該特定的標準。
參考圖1,視訊源102可以將視訊資料提供給編碼設備104。視訊源102可以是源設備的一部分,或者可以是除了源設備之外的設備的一部分。視訊源102可以包括視訊擷取設備(例如,攝像機、照相電話、視訊電話等),包含被儲存的視訊的視訊存檔單元、提供視訊資料的視訊伺服器或內容提供者、從視訊伺服器或內容提供者接收視訊的視訊饋送介面、用於產生電腦圖形視訊資料的電腦圖形系統、此種源的組合,或任何其他合適的視訊源。
來自視訊源102的視訊資料可以包括一或多個輸入圖片。圖片亦可以被稱為「訊框」。圖片或訊框是靜態圖像,在一些情況下,是視訊的一部分。在一些實例中,來自視訊源102的資料可以是不作為視訊的一部分的靜態圖像。在HEVC、VVC和其他視訊解碼規範中,視訊序列可以包括一系列圖片。圖片可以包括三個取樣陣列,被表示為S
L、S
Cb和S
Cr。S
L是亮度取樣的二維陣列,S
Cb是Cb色度(chrominance)取樣的二維陣列,並且S
Cr是Cr色度取樣的二維陣列。色度取樣在本文中亦可以被稱為「色度(chroma)」取樣。在其他實例中,圖片可以是單色的,並且可以僅包括亮度取樣的陣列。
編碼設備104的編碼器引擎106(或編碼器)對視訊資料進行編碼以產生經編碼的視訊位元串流。在一些實例中,經編碼的視訊位元串流(或「視訊位元串流」或「位元串流」)是一系列的一或多個經解碼的視訊序列。經解碼的視訊序列(CVS)包括一系列存取單元(AUs),該一系列存取單元開始於在基本層中具有隨機存取點圖片並且具有某些屬性的AU,直到在基本層中具有隨機存取點圖片並且具有某些屬性的下一AU並且不包括該下一AU。例如,開始CVS的隨機存取點圖片的某些屬性可以包括等於1的RASL標誌(例如,NoRaslOutputFlag)。否則,隨機存取點圖片(具有等於0的RASL標誌)不開始CVS。
存取單元(AU)包括一或多個經解碼的圖片以及與共享相同的輸出時間的經解碼的圖片相對應的控制資訊。圖片的經解碼的切片在位元串流位準被封裝為資料單元,該資料單元被稱為網路抽象層(NAL)單元。例如,HEVC視訊位元串流可以包括一或多個CVS,CVS包括NAL單元。NAL單元之每一者NAL單元具有NAL單元標頭。在一個實例中,標頭對於H.264/AVC(除了多層擴展之外)為一個位元組,並且對於HEVC為兩個位元組。在NAL單元標頭中的語法元素佔用指定的位元,並且因此對於所有種類的系統和傳輸層(諸如傳輸串流、即時傳輸(RTP)協定、檔案格式等)皆是可見的。
在HEVC標準中存在兩類NAL單元,包括視訊解碼層(VCL)NAL單元和非VCL NAL單元。VCL NAL單元包括形成經解碼的視訊位元串流的經解碼的圖片資料。例如,在VCL NAL單元中存在形成經解碼的視訊位元串流的位元序列。VCL NAL單元可以包括經解碼的圖片資料的一個切片或切片段(下文描述),並且非VCL NAL單元包括與一或多個經解碼的圖片有關的控制資訊。在一些情況下,NAL單元可以被稱為封包。HEVC AU包括:包含經解碼的圖片資料的VCL NAL單元,以及與經解碼的圖片資料相對應的非VCL NAL單元(若有的話)。除了其他資訊之外,非VCL NAL單元亦可以包含具有與經編碼的視訊位元串流有關的高位準資訊的參數集。例如,參數集可以包括視訊參數集(VPS)、序列參數集(SPS)和圖片參數集(PPS)。在一些情況下,位元串流的每個切片或其他部分可以參考單個有效的PPS、SPS及/或VPS,以允許解碼設備112存取可以用於對位元串流的切片或其他部分進行解碼的資訊。
NAL單元可以包含形成視訊資料的經解碼的表示的位元序列(例如,經編碼的視訊位元串流、位元串流的CVS等),諸如在視訊中的圖片的經解碼的表示。編碼器引擎106藉由將每個圖片分割為多個切片來產生圖片的經解碼的表示。一切片是獨立於其他切片的,使得在切片中的資訊可以在不依賴於來自在相同的圖片內的其他切片的資料的情況下進行解碼。切片包括一或多個切片段,包括獨立的切片段以及(若存在的話)依賴於先前切片段的一或多個從屬切片段。
在HEVC中,切片接著被分割為亮度取樣和色度取樣的解碼樹區塊(CTBs)。亮度取樣的CTB和色度取樣的一或多個CTB連同針對取樣的語法一起被稱為解碼樹單元(CTU)。CTU亦可以被稱為「樹區塊」或「最大解碼單元」(LCU)。CTU是用於HEVC編碼的基本處理單元。CTU可以被分離為大小不同的多個解碼單元(CUs)。CU包含被稱為解碼區塊(CBs)的亮度和色度取樣陣列。
亮度和色度CB可以進一步被分離為預測區塊(PBs)。PB是亮度分量或色度分量的取樣區塊,該取樣區塊使用相同的運動參數來進行訊框間預測或區塊內複製(IBC)預測(當可用或被賦能以供使用時)。亮度PB和一或多個色度PB連同相關聯的語法一起形成預測單元(PU)。對於訊框間預測,用於每個PU的運動參數集(例如,一或多個運動向量、參考索引等)在位元串流中被用信號通知,並且用於亮度PB和一或多個色度PB的訊框間預測。運動參數亦可以被稱為運動資訊。CB亦可以被分割為一或多個變換區塊(TBs)。TB表示色彩分量的取樣的正方形區塊,對該正方形區塊應用殘差變換(例如,在一些情況下,相同的二維變換)以對預測殘留信號進行解碼。變換單元(TU)表示亮度取樣和色度取樣的TB以及對應的語法元素。下文更加詳細地描述變換解碼。
CU的大小對應於解碼模式的大小並且可以是正方形形狀。例如,CU的大小可以是8 x 8個取樣、16 x 16個取樣、32 x 32個取樣、64 x 64個取樣,或高達對應的CTU的大小的任何其他適當的大小。用語「N x N」在本文中用於代表視訊區塊在垂直和水平維度方面的圖元尺寸(例如,8個圖元x 8個圖元)。區塊中的圖元可以按行和列來排列。在一些實施例中,區塊在水平方向上可以不具有與垂直方向上相同數量的圖元。與CU相關聯的語法資料可以描述例如CU到一或多個PU的分割。分割模式可以在CU是訊框內預測模式編碼的還是訊框間預測模式編碼的之間而不同。PU可以被分割為非正方形形狀。與CU相關聯的語法資料亦可以例如描述根據CTU的CU到一或多個TU的分割。TU可以是正方形或非正方形形狀。
根據HEVC標準,可以使用變換單元(TUs)來執行變換。對於不同的CU,TU可以不同。可以基於在給定CU內的PU的大小來設定TU的大小。TU可以具有與PU相比相同的大小或者較小的大小。在一些實例中,可以使用被稱為殘差四叉樹(RQT)的四叉樹結構來將與CU相對應的殘差取樣細分為較小的單元。RQT的葉節點可以對應於TU。與TU相關聯的圖元差值可以被變換以產生變換係數。隨後,變換係數可以由編碼器引擎106進行量化。
一旦視訊資料的圖片被分割為CU,編碼器引擎106就使用預測模式來預測每個PU。隨後從原始視訊資料中減去預測單元或預測區塊以獲得殘差(下文描述的)。對於每個CU,可以使用語法資料在位元串流內用信號通知預測模式。預測模式可以包括訊框內預測(或圖片內預測)或訊框間預測(或圖片間預測)。訊框內預測利用在圖片內的空間相鄰的取樣之間的相關性。例如,使用訊框內預測,每個PU是使用例如以下預測來根據在相同的圖片中的相鄰圖像資料進行預測的:用於發現針對PU的平均值的DC預測,用於使平面表面適應PU的平面預測,用於根據相鄰資料進行外推的方向預測,或者任何其他適當類型的預測。訊框間預測使用在圖片之間的時間相關性,以便推導出用於圖像取樣區塊的運動補償的預測。例如,使用訊框間預測,每個PU是使用運動補償預測來根據在一或多個參考圖片(按照輸出次序在當前圖片之前或之後)中的圖像資料進行預測的。例如,可以在CU位準處作出是使用圖片間預測還是圖片內預測來對圖片區域進行解碼的決定。
在一些實例中,編碼器引擎106和解碼器引擎116(下文更加詳細地描述)可以被配置為根據VVC進行操作。根據VVC,視訊解碼器(諸如編碼器引擎106及/或解碼器引擎116)將圖片分割為複數個解碼樹單元(CTUs)(其中亮度取樣的CTB和色度取樣的一或多個CTB連同用於取樣的語法一起被稱為CTU)。視訊解碼器可以根據樹結構(諸如四叉樹-二叉樹(QTBT)結構或多類型樹(MTT)結構)來分割CTU。QTBT結構移除了多種分割類型(諸如在HEVC的CU、PU和TU之間的分離)的概念。QTBT結構包括兩個位準,包括根據四叉樹分割來進行分割的第一位準,以及根據二叉樹分割來進行分割的第二位準。QTBT結構的根節點對應於CTU。二叉樹的葉節點對應於解碼單元(CUs)。
在MTT分割結構中,可以使用四叉樹分割、二叉樹分割以及一或多個類型的三叉樹分割來對區塊進行分割。三叉樹分割是其中區塊被分為三個子區塊的分割。在一些實例中,三叉樹分割將區塊劃分為三個子區塊,而不經由中心地劃分原始區塊。在MTT中的分割類型(例如,四叉樹、二叉樹和三叉樹)可以是對稱的或不對稱的。
在一些實例中,視訊解碼器可以使用單個QTBT或MTT結構來表示亮度分量和色度分量中的每者,而在其他實例中,視訊解碼器可以使用兩個或兩個以上QTBT或MTT結構,諸如用於亮度分量的一個QTBT或MTT結構以及用於兩個色度分量的另一QTBT或MTT結構(或者用於相應的色度分量的兩個QTBT及/或MTT結構)。
視訊解碼器可以被配置為使用根據HEVC的四叉樹分割、QTBT分割、MTT分割,或其他分割結構。出於說明性的目的,本文的描述可以參考QTBT分割。然而,應當理解的是,本案內容的技術亦可以應用於被配置為使用四叉樹分割或者還使用其他類型的分割的視訊解碼器。
在一些實例中,圖片的一或多個切片被分配切片類型。切片類型包括訊框內解碼切片(I切片)、訊框內解碼P切片和訊框內解碼B切片。I切片(訊框內解碼訊框,可獨立地解碼)是圖片的僅經由訊框內預測來解碼的切片,並且因此是可獨立解碼的,因為I切片僅需要在訊框內的資料來預測切片的任何預測單元或預測區塊。P切片(單向預測訊框)是圖片的可以利用訊框內預測和單向訊框間預測來解碼的切片。在P切片內的每個預測單元或預測區塊是利用訊框內預測或訊框間預測來解碼的。當應用訊框間預測時,預測單元或預測區塊是僅經由一個參考圖片來預測的,並且因此參考取樣僅來自一個訊框的一個參考區域。B切片(雙向預測訊框)是圖片的可以利用訊框內預測和訊框間預測(例如,雙向預測或單向預測)來解碼的切片。B切片的預測單元或預測區塊可以根據兩個參考圖片進行雙向預測,其中每個圖片貢獻一個參考區域,並且對兩個參考區域的取樣集進行加權(例如,利用相等的權重或利用不同的權重)以產生雙向預測區塊的預測信號。如上文所解釋的,一個圖片的切片被獨立地解碼。在一些情況下,圖片可以作為僅一個切片進行解碼。
如上文所指出的,圖片內預測利用在圖片內的在空間上相鄰的取樣之間的相關性。存在複數種訊框內預測模式(亦被稱為「訊框內模式」)。在一些實例中,亮度區塊的訊框內預測包括35種模式,包括平面模式、DC模式和33種角度模式(例如,對角線訊框內預測模式和與對角線訊框內預測模式相鄰的角度模式)。如下表1中所示,對訊框內預測的35種模式進行索引。在其他實例中,可以定義更多的訊框內模式,包括可能尚未由33種角度模式表示的預測角度。在其他實例中,與角度模式相關聯的預測角度可以與在HEVC中使用的彼等預測角度不同。
表1-訊框內預測模式和相關聯的名稱的規範
訊框內預測模式 | 相關聯的名稱 |
0 | INTRA_PLANAR |
1 | INTRA_DC |
2..34 | INTRA_ANGULAR2..INTRA_ANGULAR34 |
圖片間預測使用在圖片之間的時間相關性,以便推導針對圖像取樣區塊的運動補償的預測。使用平移運動模型,區塊在先前經解碼的圖片(參考圖片)中的位置由運動向量(
來表示,其中
指定參考區塊相對於當前區塊的位置的水平位移,以及
指定參考區塊相對於當前區塊的位置的垂直位移。在一些情況下,運動向量(
)可以具有整數取樣精確度(亦被稱為整數精確度),在此種情況下,運動向量指向參考訊框的整數圖元網格(或整數圖元取樣網格)。在一些情況下,運動向量(
)可以具有分數取樣精確度(亦被稱為分數圖元精確度或非整數精確度),以更加準確地擷取底層物件的運動,而不受限於參考訊框的整數圖元網格。運動向量的精確度可以經由運動向量的量化位準來表示。例如,量化位準可以是整數精確度(例如,1圖元)或分數圖元精確度(例如,¼圖元、½圖元或其他子圖元值)。當對應的運動向量具有分數取樣精確度時,對參考圖片應用內插法以推導預測信號。例如,可以對在整數位置處可用的取樣進行濾波(例如,使用一或多個內插濾波器)以估計在分數位置處的值。先前解碼的參考圖片可以由針對參考圖片列表的參考索引(refIdx)來指示。運動向量和參考索引可以被稱為運動參數。可以執行兩種圖片間預測,包括單向預測和雙向預測。
在使用雙向預測進行訊框間預測的情況下,可以使用兩個運動參數集(
和
)來產生兩個運動補償的預測(根據同一參考圖片或可能根據不同的參考圖片)。例如,在雙向預測的情況下,每個預測區塊使用兩個運動補償的預測信號,並且產生B預測單元。隨後將兩個運動補償的預測進行組合以獲得最終的運動補償的預測。例如,可以藉由進行平均來組合兩個運動補償的預測。在另一實例中,可以使用加權預測,在此種情況下,可以將不同的權重應用於每個運動補償的預測。可以在雙向預測中使用的參考圖片被儲存在兩個單獨的列表中,分別被表示為列表0和列表1。可以在編碼器處使用運動估計程序來推導運動參數。
PU可以包括與預測程序相關的資料(例如,運動參數或其他合適的資料)。例如,當PU是使用訊框內預測來編碼的時,PU可以包括描述用於PU的訊框內預測模式的資料。作為另一實例,當PU是使用訊框間預測來編碼的時,PU可以包括定義用於PU的運動向量的資料。定義用於PU的運動向量的資料可以描述例如運動向量的水平分量(
)、運動向量的垂直分量(
)、用於運動向量的解析度(例如,整數精度、四分之一圖元精度,或八分之一圖元精度)、運動向量指向其的參考圖片、參考索引、用於運動向量的參考圖片列表(例如,列表0、列表1或列表C),或其任何組合。
在使用訊框內預測及/或訊框間預測執行預測之後,編碼設備104可以執行變換和量化。例如,在預測之後,編碼器引擎106可以計算與PU相對應的殘差值。殘差值可以包括在正被解碼的當前區塊(PU)與用於預測當前區塊的預測區塊(例如,當前區塊的預測版本)之間的圖元差值。例如,在產生預測區塊(例如,使用訊框間預測或訊框內預測)之後,編碼器引擎106可以藉由從當前區塊中減去由預測單元產生的預測區塊來產生殘差區塊。殘差區塊包括圖元差值集合,其對在當前區塊的圖元值與預測區塊的圖元值之間的差進行量化。在一些實例中,可以用二維區塊格式(例如,圖元值的二維矩陣或陣列)來表示殘差區塊。在此種實例中,殘差區塊是圖元值的二維表示。
使用區塊變換來對在執行預測之後可能剩餘的任何殘差資料進行變換,區塊變換可以是基於離散餘弦變換(DCT)、離散正弦變換(DST)、整數變換、小波變換、其他合適的變換函數,或其任何組合的。在一些情況下,可以將一或多個區塊變換(例如,具有大小32 x 32、16 x 16、8 x 8、4 x 4或其他合適的大小的核心)應用於在每個CU中的殘差資料。在一些實例中,TU可以用於由編碼器引擎106實現的變換和量化程序。具有一或多個PU的給定CU亦可以包括一或多個TU。如下文更詳細描地述的,可以使用區塊變換來將殘差值變換為變換係數,以及隨後可以使用TU進行量化和掃瞄,以產生用於熵解碼的序列化變換係數。
在一些實例中,在使用CU的PU進行訊框內預測或訊框間預測解碼之後,編碼器引擎106可以計算用於CU的TU的殘差資料。PU可以包括空間域(或圖元域)中的圖元資料。如先前所指出的,殘差資料可以對應於在未經編碼的圖片的圖元與對應於PU的預測值之間的圖元差值。編碼器引擎106可以形成包括用於CU(其包括PU)的殘差資料的一或多個TU,以及隨後可以對TU進行變換以產生用於CU的變換係數。TU可以包括在應用區塊變換之後在變換域中的係數。
編碼器引擎106可以執行對變換係數的量化。量化藉由對變換係數進行量化以減少用於表示係數的資料量,來提供進一步的壓縮。例如,量化可以減小與係數中的一些或所有係數相關聯的位元深度。在一個實例中,具有n位元的值的係數可以在量化期間向下捨入為m位元的值,其中n大於m。
一旦執行了量化,則經解碼的視訊位元串流包括經量化的變換係數、預測資訊(例如,預測模式、運動向量、區塊向量等)、分割資訊以及任何其他合適的資料(諸如其他語法資料)。經解碼的視訊位元串流的不同的元素隨後可以由編碼器引擎106進行熵編碼。在一些實例中,編碼器引擎106可以利用預定義的掃瞄順序來掃瞄經量化的變換係數,以產生可以被熵編碼的序列化向量。在一些實例中,編碼器引擎106可以執行可適性掃瞄。在掃瞄經量化的變換係數以形成向量(例如,一維向量)之後,編碼器引擎106可以對該向量進行熵編碼。例如,編碼器引擎106可以使用上下文可適性可變長度解碼、上下文可適性二元算術解碼、基於語法的上下文可適性二元算術解碼、機率區間分割熵解碼或另一合適的熵編碼技術。
編碼設備104的輸出110可以經由通訊鏈路120向接收設備的解碼設備112發送構成經編碼的視訊位元串流資料的NAL單元。解碼設備112的輸入114可以接收NAL單元。通訊鏈路120可以包括由無線網路、有線網路或者有線網路和無線網路的組合提供的通道。無線網路可以包括任何無線介面或無線介面的組合,並且可以包括任何合適的無線網路(例如,網際網路或其他廣域網路、基於封包的網路、WiFi
TM、射頻(RF)、UWB、WiFi直連、蜂巢、長期進化(LTE)、WiMax
TM等)。有線網路可以包括任何有線介面(例如,光纖、乙太網路、電力線乙太網路、基於同軸電纜的乙太網路、數位信號線(DSL)等)。可以使用各種裝備來實現有線及/或無線網路,諸如基地台、路由器、存取點、橋接器、閘道、交換機等。經編碼的視訊位元串流資料可以根據諸如無線通訊協定之類的通訊標準來調制,並且發送到接收設備。
在一些實例中,編碼設備104可以將經編碼的視訊位元串流資料儲存在儲存裝置108中。輸出110可以從編碼器引擎106或從儲存裝置108取得經編碼的視訊位元串流資料。儲存裝置108可以包括各種分散式或本端存取的資料儲存媒體中的任何資料儲存媒體。例如,儲存裝置108可以包括硬碟、儲存磁碟、快閃記憶體、揮發性或非揮發性記憶體,或用於儲存經編碼的視訊資料的任何其他合適的數位儲存媒體。儲存裝置108亦可以包括一或多個緩衝器,諸如用於儲存參考圖片以供在訊框間預測中使用的解碼圖片緩衝器(DPB)。在進一步的實例中,儲存裝置108可以對應於可以儲存由源設備產生的經編碼的視訊的檔案伺服器或另一中間儲存設備。在此種情況下,包括解碼設備112的接收設備可以經由資料串流或下載來從儲存設備存取被儲存的視訊資料。檔案伺服器可以是能夠儲存經編碼的視訊資料並且將該經編碼的視訊資料發送給接收設備的任何類型的伺服器。示例性檔案伺服器包括網頁伺服器(例如,用於網站)、FTP伺服器、網路附加儲存(NAS)設備或本端磁碟機。接收設備可以經由任何標準資料連接(包括網際網路連接)來存取經編碼的視訊資料。這可以包括適於存取被儲存在檔案伺服器上的經編碼的視訊資料的無線通道(例如,Wi-Fi連接)、有線連接(例如,DSL、纜線數據機等)或兩者的組合。經編碼的視訊資料從儲存裝置108的傳輸可以是資料串流、下載傳輸或其組合。
解碼設備112的輸入114接收經編碼的視訊位元串流資料,並且可以將視訊位元串流資料提供給解碼器引擎116,或者提供給儲存裝置118以供解碼器引擎116稍後使用。例如,儲存裝置118可以包括用於儲存參考圖片以供在訊框間預測中使用的DPB。包括解碼設備112的接收設備可以經由儲存裝置108來接收要被解碼的經編碼的視訊資料。經編碼的視訊資料可以根據諸如無線通訊協定之類的通訊標準進行調制,並且被發送給接收設備。用於發送經編碼的視訊資料的通訊媒體可以包括任何無線或有線通訊媒體,諸如射頻(RF)頻譜或一或多條實體傳輸線。通訊媒體可以形成基於封包的網路的一部分,諸如區域網路、廣域網路或諸如網際網路之類的全球網路。通訊媒體可以包括路由器、交換機、基地台,或可以用於促進從源設備到接收設備的通訊的任何其他裝備。
解碼器引擎116可以經由熵解碼(例如,使用熵解碼器)構成經編碼的視訊資料的一或多個經解碼的視訊序列並且提取視訊序列的元素,來對經編碼的視訊位元串流資料進行解碼。隨後,解碼器引擎116可以重新縮放經編碼的視訊位元串流資料並且對其執行逆變換。隨後將殘差資料傳遞到解碼器引擎116的預測階段。隨後,解碼器引擎116預測區塊(例如,PU)。在一些實例中,預測被加到逆變換的輸出(殘差資料)。
視訊解碼設備112可以將經解碼的視訊輸出到視訊目的地設備122,視訊目的地設備122可以包括用於將經解碼的視訊資料顯示給內容消費者的顯示器或其他輸出設備。在一些態樣中,視訊目的地設備122可以是包括解碼設備112的接收設備的一部分。在一些態樣中,視訊目的地設備122可以是不同於接收設備的單獨的設備的一部分。
在一些實例中,視訊編碼設備104及/或視訊解碼設備112可以分別與音訊編碼設備和音訊解碼設備整合。視訊編碼設備104及/或視訊解碼設備112亦可以包括實現上文描述的解碼技術所必需的其他硬體或軟體,諸如一或多個微處理器、數位訊號處理器(DSPs)、特殊應用積體電路(ASICs)、現場可程式設計閘陣列(FPGAs)、個別邏輯、軟體、硬體、韌體或其任何組合。視訊編碼設備104和視訊解碼設備112可以被整合成在相應的設備中的組合的編碼器/解碼器(編解碼器)的一部分。
在圖1中示出的示例性系統是可以在本文中使用的一個說明性實例。用於使用本文中所描述的技術來處理視訊資料的技術可以由任何數位視訊編碼及/或解碼設備來執行。儘管一般來說,本案內容的技術是由視訊編碼設備執行的,但是該技術亦可以由通常被稱為「CODEC」的組合的視訊編碼器-解碼器來執行。此外,本案內容的技術亦可以由視訊前置處理器來執行。源設備和接收設備僅是此種解碼設備的實例,其中源設備產生經解碼的視訊資料以傳輸給接收設備。在一些實例中,源設備和接收設備可以以基本上對稱的方式進行操作,使得設備之每一者設備包括視訊編碼和解碼用元件。因此,示例性系統可以支援在視訊設備之間的單向或雙向視訊傳輸,例如,以用於視訊資料串流、視訊重播、視訊廣播或視訊電話。
HEVC標準的擴展包括被稱為MV-HEVC的多視圖視訊解碼擴展,以及被稱為SHVC的可伸縮視訊解碼擴展。MV-HEVC和SHVC擴展共享分層解碼的概念,其中不同的層被包括在經編碼的視訊位元串流中。在經解碼的視訊序列之每一者層是經由唯一的層識別符(ID)來定址的。層ID可以存在於NAL單元的標頭中,以識別NAL單元與其相關聯的層。在MV-HEVC中,不同的層通常表示在視訊位元串流中的相同場景的不同視圖。在SHVC中,提供了以不同的空間解析度(或圖片解析度)或不同的重構保真度來表示視訊位元串流的不同的可伸縮層。可伸縮層可以包括基本層(其中層ID = 0)和一或多個增強層(其中層ID = 1, 2, … n)。基本層可以符合HEVC的第一版本的簡檔,並且表示在位元串流中的最低可用層。與基本層相比,增強層具有增加的空間解析度、時間解析度或訊框速率,及/或重構保真度(或品質)。增強層是分層次地組織的,並且可以依賴於(或者可以不依賴於)較低層。在一些實例中,不同的層可以使用單標準編解碼器進行解碼(例如,所有層是使用HEVC、SHVC或其他解碼標準進行編碼的)。在一些實例中,不同的層可以使用多標準編解碼器進行解碼的。例如,基本層可以使用AVC進行解碼,而一或多個增強層可以使用SHVC及/或HEVC標準的MV-HEVC擴展進行解碼。
如前述,對於每個區塊,運動資訊(本文中亦被稱為運動參數)集合可以是可用的。運動資訊集合可以包含用於前向預測方向及/或後向預測方向的運動資訊。這裡,前向預測方向和後向預測方向是雙向預測模式的兩個預測方向,並且術語「前向」和「後向」不一定具有幾何含義。相反,「前向」和「後向」可以對應於當前圖片、切片或區塊的參考圖片列表0(RefPicList0)和參考圖片列表1(RefPicList1)。在一些實例中,當僅有一個參考圖片列表可用於圖片、切片或區塊時,僅RefPicList0是可用的,並且切片的每個區塊的運動資訊總是前向的。在一些實例中,RefPicList0包括在時間上位於當前圖片之前的參考圖片,並且RefPicList1包括在時間上位於當前圖片之後的參考圖片。在一些情況下,可以在解碼程序中使用運動向量連同相關聯的參考索引。此種具有相關聯的參考索引的運動向量被表示為單向預測運動資訊集合。
對於每個預測方向,運動資訊可以包含參考索引和運動向量。在一些情況下,為了簡單起見,運動向量可以具有相關聯的資訊,根據該資訊可以假設運動向量具有相關聯的參考索引。參考索引可以用於識別在當前參考圖片列表(RefPicList0或RefPicList1)中的參考圖片。運動向量可以具有水平分量和垂直分量,水平分量和垂直分量提供從在當前圖片中的座標位置到在由參考索引識別的參考圖片中的座標位置的偏移。例如,參考索引可以指示應當用於在當前圖片中的區塊的特定參考圖片,並且運動向量可以指示在參考圖片中最佳匹配的區塊(與當前區塊最佳匹配的區塊)在參考圖片中位於何處。
圖片順序計數(POC)可以在視訊解碼標準中用於識別圖片的顯示順序。儘管存在一個經解碼的視訊序列內的兩個圖片可能具有相同的POC值的情況,但是在一個經解碼的視訊序列內,具有相同POC值的兩個圖片不經常發生。當在位元串流中存在多個經解碼的視訊序列時,具有相同的POC值的圖片在解碼順序方面可能彼此較為接近。圖片的POC值可以用於參考圖片列表構造(如在HEVC中的參考圖片集合的推導)及/或運動向量縮放等。
在H.264/AVC中,每個訊框間巨集區塊(MB)可以以四種不同的方式來分割,包括:一個16x16巨集區塊分區;兩個16x8巨集區塊分區;兩個8x16巨集區塊分區;及四個8x8巨集區塊分區,等等。在一個巨集區塊中的不同巨集區塊分區可以具有針對每個預測方向的不同的參考索引值(例如,針對RefPicList0和RefPicList1的不同的參考索引值)。
在一些情況下,當巨集區塊未被分割為四個8x8巨集區塊分區時,巨集區塊在每個預測方向上可以僅具有針對每個巨集區塊分區的一個運動向量。在一些情況下,當巨集區塊被分割為四個8x8巨集區塊分區時,每個8x8巨集區塊分區可以被進一步分割為子區塊,其中每個子區塊在每個預測方向上可以具有不同的運動向量。8x8巨集區塊分區可以以不同的方式被劃分成子區塊,包括:一個8x8子區塊;兩個8x4子區塊;兩個4x8子區塊;及四個4x4子區塊,等等。每個子區塊在每個預測方向上可以具有不同的運動向量。因此,運動向量可以存在於等於或高於子區塊的位準中。
在HEVC中,在切片中的最大解碼單元被稱為解碼樹區塊(CTB)或解碼樹單元(CTU)。CTB包含四叉樹,其節點是解碼單元。在HEVC主簡檔中,CTB的大小範圍可以從16x16圖元到64x64圖元。在一些情況下,可以支援8x8圖元CTB大小。可以以四叉樹的方式將CTB遞迴地分離成解碼單元(CU)。CU可以具有與CTB相同的大小並且可以小到8x8圖元。在一些情況下,每個解碼單元是利用一種模式(諸如訊框內預測模式或訊框間預測模式)進行解碼的。當CU是使用訊框間預測模式進行訊框間解碼的時,CU進一步可以被分割為兩個或四個預測單元(PUs),或者當不應用進一步的分割時被視為一個PU。當在一個CU中存在兩個PU時,該兩個PU可以是一半大小的矩形,或者是大小為CU大小的1/4或3/4的兩個矩形。
當CU是訊框間解碼的時,針對每個PU可以存在一個運動資訊集合,運動資訊集合可以是利用唯一訊框間預測模式來推導的。例如,每個PU可以利用一種訊框間預測模式來解碼,以推導運動資訊集合。在一些情況下,當CU是使用訊框內預測模式進行訊框內解碼的時,PU形狀可以是2Nx2N和NxN。在每個PU內,對單個訊框內預測模式進行解碼(而色度預測模式是在CU級用信號通知的)。在一些情況下,在當前CU大小等於在SPS中定義的最小CU大小時,允許NxN PU內形狀。
對於在HEVC中的運動預測,存在針對預測單元(PU)的兩種訊框間預測模式,包括合併模式和高級運動向量預測(AMVP)模式。跳過被視為合併的特殊情況。在AMVP模式或合併模式下,可以維護針對多個運動向量預測器的運動向量(MV)候選列表。在合併模式下當前PU的運動向量以及參考索引是藉由從MV候選列表中提取一個候選來產生的。
在一些實例中,MV候選列表包含用於合併模式的多達五個候選以及用於AMVP模式的兩個候選。在其他實例中,不同數量的候選可以被包括在用於合併模式及/或AMVP模式的MV候選列表中。合併候選可以包含運動資訊集合。例如,運動資訊集合可以包括與兩個參考圖片列表(列表0和列表1)相對應的運動向量以及參考索引。若合併候選是經由合併索引來識別的,則參考圖片被用於當前區塊的預測,以及相關聯的運動向量被決定。然而,在AMVP模式下,針對來自列表0或列表1的每個潛在預測方向,需要明確地用信號通知參考索引連同對MV候選列表的MV預測器(MVP)索引,因為AMVP候選僅包含運動向量。在AMVP模式中,可以進一步細化預測運動向量。
合併候選可以對應於完整的運動資訊集合,而AMVP候選可以包含用於特定預測方向的一個運動向量和參考索引。可以類似地根據相同的空間和時間相鄰區塊來推導用於兩種模式的候選。
在一些實例中,合併模式允許訊框間預測的PU從如下的訊框間預測的PU繼承相同的一或多個運動向量、預測方向以及一或多個參考圖片索引:該訊框間預測的PU包括從一組空間上相鄰的運動資料位置中選擇的運動資料位置以及兩個時間上同位的運動資料位置中的一個運動資料位置。對於AMVP模式,可以相對於來自由編碼器構造的AMVP候選列表中的一或多個運動向量預測器(MVPs),來對PU的一或多個運動向量進行預測解碼。在一些實例中,對於PU的單方向訊框間預測,編碼器可以產生單個AMVP候選列表。在一些實例中,對於PU的雙向預測,編碼器可以產生兩個AMVP候選列表,一者使用來自前向預測方向的空間和時間相鄰的PU的運動資料,並且一者使用來自後向預測方向的空間和時間相鄰的PU的運動資料。
用於兩種模式的候選可以從空間及/或時間相鄰區塊來推導。空間MV候選是根據用於特定PU(PU0)的相鄰區塊來推導的,但是對於合併模式和AMVP模式,根據區塊來產生候選的方法不同。在合併模式下,編碼器可以藉由考慮來自各種運動資料位置的合併候選來形成合併候選列表。
在一些情況下,視訊解碼器硬體可以包括多個子系統和處理管道,如圖2A和2B中所示。在一些實例中,處理管道可以執行各種視訊處理操作,諸如運動估計、運動補償、變換和量化等。在一些情況下,處理管道可以並列地執行處理操作。
圖2A是圖示視訊編碼硬體引擎的示例性架構200的方塊圖。在一些情況下,架構200可以由圖1中所示的編碼設備104實現。在一些實例中,架構200可以由圖1中所示的編碼設備104的編碼器引擎106實現。
在該實例中,視訊編碼硬體引擎的架構200可以包括控制處理器210、介面222、視訊串流處理器(VSP)212、處理管道214-220、直接記憶體存取(DMA)子系統230和一或多個緩衝器232。在一些實例中,架構200可以包括用於儲存資料(諸如訊框、視訊、解碼資訊、輸出等)的記憶體240。在其他實例中,記憶體240可以是在實現視訊編碼硬體引擎的解碼設備上的外部記憶體。
介面222可以經由在視訊編碼硬體引擎及/或實現視訊編碼硬體引擎的解碼設備上的通訊系統或系統匯流排,在視訊編碼硬體引擎及/或視訊解碼設備的元件之間傳輸資料。例如,介面222可以將控制處理器210、VSP 212、處理管道214-220、直接記憶體存取(DMA)子系統230及/或一或多個緩衝器232與在視訊編碼硬體引擎及/或解碼設備上的系統匯流排連接。在一些實例中,介面222可以包括基於網路的通訊子系統,諸如片上網路(NoC)。
DMA子系統230可以允許視訊編碼硬體引擎的其他元件(例如,在架構200中的其他元件)存取在視訊編碼硬體引擎及/或實現視訊編碼硬體引擎的視訊解碼設備上的記憶體。例如,DMA子系統230可以提供對記憶體240及/或一或多個緩衝器232的存取。在一些實例中,DMA子系統230可以管理對共用記憶體單元和相關聯的資料訊務(例如,訊框202、區塊204A-D、位元串流236、經解碼的資料238等)的存取。
記憶體240可以包括一或多個內部或外部記憶體設備,諸如但不限於一或多個隨機存取記憶體(RAM)元件、唯讀記憶體(ROM)元件、快取緩衝記憶體元件、緩衝器元件及/或其他記憶體設備。記憶體240可以儲存由視訊編碼硬體引擎及/或視訊解碼設備使用的資料,諸如訊框、處理參數、輸入資料、輸出資料及/或任何其他類型的資料。
控制處理器210可以包括一或多個處理器。控制處理器210可以對視訊編碼硬體引擎的元件(例如,架構200中的其他元件)進行控制及/或程式設計。在一些實例中,控制處理器210可以與圖2A中未圖示的其他驅動器、應用及/或元件介面連接。例如,在一些情況下,控制處理器210可以與視訊解碼設備上的應用處理器介面連接。
VSP 212可以執行位元串流解析(例如,將網路抽象層、圖片層和切片層分離)和熵解碼操作。在一些實例中,VSP 212可以執行編碼功能,諸如可變長度編碼。例如,VSP 212可以實現無失真壓縮演算法來壓縮位元串流236。在一些實例中,VSP 212可以執行算術解碼,諸如上下文、可適性二元算術解碼(CABAC)及/或任何其他解碼演算法。
處理管道214-220可以執行視訊圖元操作,諸如運動估計、運動補償、變換和量化、圖像解區塊及/或任何其他視訊圖元操作。處理管道214-220(及/或每個單獨的處理管道)可以並列地執行特定的視訊圖元操作。例如,每個處理管道可以同時及/或顯著並列地執行多個操作(及/或處理資料)。作為另一實例,多個處理管道可以同時及/或顯著並列地執行操作(及/或處理資料)。
在一些實例中,處理管道214-220可以並列地(或基本並列地)處理圖元、區塊及/或訊框。例如,處理管道214-220可以跨越訊框202的區塊204A、204B、204C、204D的行,並列地執行視訊圖元處理操作。作為另一實例,參考圖2B,處理管道214-220可以並列地對多個訊框250、252、254、256執行視訊圖元處理操作。在一些實例中,每個處理管道可以並列地對一或多個訊框執行視訊圖元處理操作。例如,處理管道214可以並列地對一或多個訊框250執行運動估計、運動補償、變換、量化及/或解區塊操作。
返回到圖2A,處理管道214-220可以將視訊圖元處理資料(例如,視訊圖元處理輸出、輸入、參數、圖元資料、處理同步資料等)儲存到一或多個緩衝器232並且從一或多個緩衝器232取得視訊圖元處理資料。在一些情況下,一或多個緩衝器232可以包括單個緩衝器。在其他情況下,一或多個緩衝器232可以包括多個緩衝器。在一些實例中,一或多個緩衝器232可以包括全域輸入/輸出線緩衝器和管道同步緩衝器。在一些情況下,管道同步緩衝器可以臨時儲存用於同步來自由處理管道214-220執行的視訊圖元處理操作的資料及/或結果的資料。
在一些實例中,VSP 212可以壓縮與視訊或訊框序列相關聯的位元串流236,並且儲存與位元串流236相關聯的經熵解碼的資料238,以供處理管道214-220處理。在一些情況下,VSP 212可以使用DMA子系統230從記憶體取得位元串流236,並且將經熵解碼的資料238儲存在記憶體中,DMA子系統230可以管理對記憶體元件及/或單元的存取,如先前所指出的。處理管道214-220可以取得經熵解碼的資料238(例如,經由DMA子系統230),並且對與位元串流236相關聯的訊框202的區塊204A-D(及/或如圖2B中所示的訊框250-256)執行視訊圖元處理操作。
處理管道214-220可以並列地執行視訊圖元處理操作,如先前所描述的。處理管道214-220可以從一或多個緩衝器232取得視訊圖元處理輸入和輸出並且將視訊圖元處理輸入和輸出儲存在一或多個緩衝器232中(例如,經由DMA子系統230)。例如,由處理管道214實現的運動估計演算法可以對區塊204A執行運動估計,並且將針對區塊204A計算的運動估計資訊儲存在一或多個緩衝器232中。由處理管道214實現的運動補償演算法可以從一或多個緩衝器232取得運動估計資訊,並且使用運動估計資訊來執行針對區塊204A的運動補償。當運動補償演算法正在執行運動補償時,運動估計演算法可以執行針對下一區塊的運動估計。
運動補償演算法可以將運動補償結果儲存在一或多個緩衝器232中,一或多個緩衝器232可以由變換、量化和解區塊演算法存取和使用以針對區塊204A執行變換、量化和解區塊。當變換、量化及/或解區塊演算法針對區塊204A執行變換、量化及/或解區塊時,運動補償演算法可以針對下一區塊執行運動補償。變換、量化和解區塊演算法可以針對區塊204A和下一區塊類似地並列地執行相應的操作。在一些實例中,運動估計、運動補償、變換、量化和解區塊演算法可以並列地對不同區塊執行相應的操作。
處理管道214-220可以由硬體及/或軟體元件實現。例如,處理管道214-220可以由一或多個圖元處理器實現。在一些實例中,每個處理管道可以由一或多個硬體元件實現。在一些情況下,每個處理管道可以使用不同的硬體單元及/或元件來實現在處理管道的管線中的不同階段,諸如圖3A中所示的管線300或圖3B中所示的修改的管線340。
圖2A和2B中所示的處理管道的數量僅是出於解釋目的而提供的實例。本領域一般技藝人士將理解,架構200可以包括與圖2A和2B中所示的處理管道相比較多或較少的處理管道。例如,可以增加或減少由架構200實現的處理管道的數量,以包括較多或較少的處理管道。此外,儘管架構200被示為包括某些元件,但是本領域一般技藝人士將理解,架構200可以包括與圖2A和2B中所示的元件相比較多或較少的元件。例如,在一些實例中,架構200亦可以包括其他儲存裝置(例如,一或多個隨機存取記憶體(RAM)元件、唯讀記憶體(ROM)元件、快取緩衝記憶體元件、緩衝器元件、資料庫元件及/或其他記憶體設備),處理設備(例如,一或多個CPU、GPU及/或其他處理設備)、介面(例如,內部匯流排等)及/或圖2A和2B中未圖示的其他元件。
圖3A和3B是圖示由單個處理管道(諸如處理管道214、216、218或220)實現的操作的示例性管線的示意圖。圖3A圖示包括圖元處理操作的五個階段的示例性管線300,並且圖3B圖示被修改為實現圖元處理操作的兩個階段的示例性管線340,其可以在不利用額外硬體(或利用較少數量的額外硬體)的情況下提供增加的效能,並且具有較高的矽面積效率(例如,而不增加整體矽面積)。
參考圖3A,示例性管線300中的圖元處理操作的五個階段可以包括:用於運動估計310的階段330、用於運動補償312的階段332、用於前向變換和量化316的階段334、用於逆變換和量化318的階段336以及用於圖像解區塊322的階段338。
在一些實例中,處理管道可以並列地執行管線300的五個階段330-338。例如,處理管道可以針對訊框的不同巨集區塊或LCU並列地執行管線300的每個階段。為了說明,在階段330處,處理管道可以針對當前訊框302中的當前區塊執行運動估計310,以決定用於該區塊的運動資訊。處理管道可以使用當前訊框302和參考訊框304來執行運動估計310。運動資訊可以包括針對當前區塊計算的一或多個運動向量。運動資訊亦可以包括在運動估計310中使用的解碼模式。一或多個運動向量可以估計當前區塊的運動。例如,運動向量可以指示當前訊框302內的當前區塊的預測單元(PU)相對於參考訊框304內的預測區塊的位移。在一些實例中,預測區塊可以包括被發現在圖元差及/或時間冗餘方面與當前區塊的PU緊密匹配的區塊。
在階段332處,處理管道可以使用參考訊框304和來自運動估計310的運動資訊來針對當前區塊執行運動補償312和圖像減法314。在針對當前區塊執行運動補償312和圖像減法314時,處理管道可以針對第二區塊執行階段330(例如,運動估計310)。例如,處理管道可以並列地針對當前區塊執行運動補償312和圖像減法314並且針對第二區塊執行運動估計310。
運動補償312可以包括基於由運動估計310決定的運動向量來獲取或產生預測區塊。在一些實例中,運動補償312可以定位在參考圖片列表中運動向量指向其的預測區塊。圖像減法314可以藉由從正在被解碼的當前區塊的圖元值中減去預測區塊的圖元值(從而形成圖元差值)來形成殘差區塊。圖元差值形成針對區塊的殘差資料,並且可以包括亮度差分量和色度差分量。
在階段334處,處理管道可以執行前向變換和量化316,以將來自運動補償312的殘差資料變換為經量化的變換係數。處理管道可以應用前向變換,諸如離散餘弦變換(DCT)或概念上類似的變換。在一些實例中,前向變換可以將殘差資料從圖元域轉換為變換域,諸如頻域。處理管道可以對變換係數進行量化以進一步降低位元速率。量化可以減小與係數中的一些或全部係數相關聯的位元深度。可以藉由調整量化參數來修改量化程度。
處理管道可以對殘差資料執行前向變換和量化316,同時針對第二區塊執行運動補償312並且針對第三區塊執行運動估計310。在階段336處,處理管道可以對來自前向變換和量化316的經量化的變換係數執行逆變換和量化318。在一些實例中,逆變換和量化318可以在圖元域中重構殘差區塊,以便稍後用作參考區塊。
求和器320可以將經重構的殘差區塊與由運動補償312產生的運動補償的預測區塊相加,以產生經重構的區塊。在一些實例中,經重構的區塊可以用作用於階段330和332(例如,運動估計310和運動補償312)的參考區塊,以預測不同的區塊。
處理管道可以執行階段336(例如,逆變換和量化318),同時針對與第二區塊相關聯的殘差區塊執行階段334(例如,前向變換和量化316),針對第三區塊執行階段332(例如,運動補償312),並且針對第四區塊執行階段330(例如,運動估計310)。
在階段338處,處理管道可以將解區塊322應用於經重構的區塊。解區塊322可以包括應用於經重構的區塊的一或多個解區塊濾波器。處理管道可以對經重構的區塊執行階段338(例如,解區塊322),同時針對與第二區塊相關聯的經量化的變換係數執行階段336(例如,逆變換和量化318),針對與第三區塊相關聯的殘差區塊執行階段334(例如,前向變換和量化316),針對第四區塊執行階段332(例如,運動補償312),並且針對第五區塊執行階段330(例如,運動估計310)。
在一些實例中,處理管道可以使用硬體及/或軟體元件來執行在示例性管線300之每一者階段(例如,階段330、階段332、階段334、階段336和階段338)。在一些實例中,處理管道可以針對在管線300之每一者階段(例如,階段330、階段332、階段334、階段336和階段338)使用硬體的不同部分及/或不同的硬體單元或元件。
在一些情況下,管線300可以包括與在圖3A中所示出的相比較多或較少的處理操作及/或階段。在一些實例中,管線300可以包括運動估計310、運動補償312和圖3A中未圖示的一或多個不同操作(除了圖3A中所示的前向變換和量化316、逆變換和量化318及/或解區塊322之外,或者替代該等操作)。
在圖3A中所示的實例中,示例性管線300的每個階段(例如,階段330、階段332、階段334、階段336和階段338)以每秒30訊框(FPS)的速度進行操作。因此,在該實例中的管線300可以具有30 FPS的整體效能。在一些情況下,這可以轉化為用於處理當前訊框302中的區塊的大約33毫秒(ms)的時間預算。圖3A中的示例性FPS和時間預算僅是出於解釋目的而提供的說明性實例。本領域一般技藝人士將瞭解,管線300可以根據其他訊框速率和時間預算進行操作。
在一些情況下,可以藉由實現額外的處理管道和增加在DMA子系統230中的記憶體池以支援額外的處理管道的並列作業,來提高整體效能。例如,可以藉由將用於實現管線300的處理管道的數量加倍並且根據需要增加記憶體池,來使管線300的整體效能加倍。在一些情況下,處理管道可以佔據視訊編碼硬體引擎的大部分硬體區域。因此,將處理管道加倍可能導致幾乎加倍的視訊編碼引擎的整體矽面積,並且因此顯著增加針對此種效能提高的硬體成本。將管道數量增加不同的量可能類似地導致視訊編碼引擎的整體矽面積的對應顯著的增加。
在一些實例中,不是如前述增加管道數量,可以使用修改的管線(諸如圖3B中所示的示例性修改的管線340),在沒有此種矽面積(以及因此硬體成本)的增加的情況下達成相同(或顯著相似)的效能提升。
在圖3B中,修改的管線340將管線劃分為由每個處理管道執行的兩個階段,包括階段342和階段344。階段342包括運動估計350,並且階段344包括運動補償352和圖像減法354、前向變換和量化356、逆變換和量化358、求和器360和解區塊362。
在一些實例中,運動估計350、運動補償352、圖像減法354、前向變換和量化356、逆變換和量化358、求和器360和解區塊362可以如關於圖3A中所示的運動估計310、運動補償312、圖像減法314、正變換和量化316、逆變換和量化318、求和器320及/或解區塊322來實現。在其他實例中,運動估計350、運動補償352、圖像減法354、前向變換和量化356、逆變換和量化358、求和器360及/或解區塊362可以不同於圖3A中所示的運動估計310、運動補償312、圖像減法314、前向變換和量化316、逆變換和量化318、求和器320及/或解區塊322。
如先前所指出的,運動估計可能是在視訊壓縮演算法中計算最密集的程序。例如,運動估計可能涉及應用於每個訊框的顯著重複操作,如此給硬體資源帶來高負擔。確實,與3A和3B圖中所示的運動補償、圖像減法、前向變換和量化、逆變換和量化、求和器和解區塊相比,運動估計可能在計算上顯著地較為密集/複雜。
為了在不對應地增加矽面積和硬體成本的情況下提高整體視訊解碼效能,經修改的管線340可以在階段342針對有限數量的訊框執行運動估計350,並且在針對較大的訊框集合(例如,序列中的完整的訊框集合)執行階段344時,使用來自有限數量的訊框的運動估計資訊。例如,經修改的管線340可以以與階段344相比減小或降低的訊框速率來執行階段342,以實現較高的整體效能。換言之,經修改的管線340可以以與階段342相比較高的訊框速率執行階段344。
為了說明,與圖3A中的階段330一樣,階段342在圖3B中被示為以30 FPS進行操作。然而,階段344在圖3B中被示為以60 FPS進行操作,其中在階段342和344之每一者操作是並列地執行的。因此,在不增加處理管道的數量或其他硬體元件的情況下,與圖3A中所示的30 FPS效能相反,經修改的管線340中的整體效能增加到60 FPS。由於在階段342中的運動估計350以30 FPS進行操作,因此來自階段342的運動估計資訊是針對與在階段344處理的訊框相比較少數量的訊框來計算的。階段344可以將該運動估計資訊用於在階段342處理的訊框以及在階段344處理的額外訊框。對於額外訊框,階段344可以使用根據其他訊框來預測或內插的運動估計資訊,如本文進一步描述的。與運動估計350相比,用於針對額外訊框來對運動估計資訊進行預測或內插的操作的計算強度可以顯著降低。這允許階段344以較高的訊框速率執行其相應的操作,而無需額外的硬體要求,並且同時保持高品質。
如所示出的,在階段342處,處理管道使用當前訊框302和參考訊框304來執行運動估計350。在一些實例中,處理管道針對整個當前訊框執行運動估計350。隨後,處理管道將運動估計資訊(例如,運動向量和解碼模式)保存在記憶體240中。在一些實例中,記憶體240可以是視訊解碼設備上的外部記憶體(例如,在視訊編碼引擎外部)。在其他實例中,記憶體240可以位於其他地方。例如,記憶體240可以是視訊編碼引擎上的內部記憶體。
在階段344處,處理管道從記憶體240取得運動估計資訊,並且將取得的運動估計資訊用於運動補償352。給定階段342相對於階段344的較低訊框速率,取得的運動估計資訊可能不包括針對數個訊框的運動估計資訊。例如,取得的運動估計資訊將不包括針對在訊框序列中未由階段342處理的任何訊框的運動估計資訊。對於此種訊框,處理管道可以估計或預測運動向量和模式。
在一些情況下,處理管道可以使用時間內插法或預處理方法,來對針對每個此種訊框(未由階段342處理的訊框)的運動向量和模式進行內插或外推。例如,處理管道可以對時間上最近的訊框的運動向量進行內插或外推。在一些情況下,處理管道可以使用由階段342處理的時間上最近的訊框的運動向量,來對針對訊框的運動向量和模式進行內插或外推。在其他情況下,處理管道可以使用具有內插或外推的運動向量的時間上最近的訊框的運動向量,來對針對訊框的運動向量和模式進行內插或外推。
當決定根據何訊框來估計運動向量時,處理管道可以考慮訊框依賴性。例如,處理管道可以實現考慮訊框依賴性的解碼結構,如圖4中所示並且在下文中進一步描述的。
處理管道可以使用來自階段342的運動估計資訊以及用於跳過階段342的訊框的估計的運動向量和模式,來在階段344中針對所有訊框完成剩餘操作。例如,使用來自階段342的運動估計資訊以及用於跳過階段342的訊框的估計的運動向量和模式,處理管道可以執行運動補償352、圖像減法354、前向變換和量化356、逆變換和量化358、求和器360以及解區塊362。
圖3B中的示例性訊框速率、相對訊框速率比和時間資訊僅是出於說明目的而提供的說明性實例。本領域技藝人士將瞭解,經修改的管線340和在經修改的管線340中的階段可以根據其他訊框速率、訊框速率比和時間預算進行操作。儘管圖3B圖示階段344以兩倍於階段342的訊框速率進行操作,但是相對訊框速率僅是出於解釋目的而提供的說明性實例。本文中亦預期其他的相對訊框速率和訊框速率比。例如,在一些情況下,階段342的訊框速率可以是階段344的訊框速率的三分之一、四分之一等。為了說明,處理管道可以以30 FPS來實現342階段,並且以90 FPS來實現344階段。在該實例中,處理管道可以在階段342處理全部訊框的三分之一,並且針對剩餘訊框跳過階段342。
圖4是圖示用於經修改的管線340的示例性解碼模式400的示意圖。如本文進一步描述的,解碼模式400在處理訊框時考慮在階段342和階段344的操作的處理時間以及訊框依賴性。例如,與運動補償(MC)352、前向變換和量化(FTQ)356、逆變換和量化(ITQ)358以及解區塊(DB)362相比,運動估計(ME)350更耗時。解碼模式400可以考慮此種時序資訊,以確保訊框的處理被安排為使得一操作必須等待另一操作完成。
在該實例中,訊框412在階段342被處理,同時(例如,同時地、並列地)訊框406和408在階段344被處理的;訊框416在階段342被處理,同時訊框410和412在階段344被處理;並且訊框420在階段342被處理,同時訊框414和416在階段344被處理。在階段342處理訊框412之前並且在階段344處理訊框406和408之前,在階段342處理訊框408。在階段342處理訊框408之前,在階段342和階段344處理訊框402和404;並且在階段342處理訊框420並且在階段344處理訊框414和416之後,在階段344處理訊框418和420。
如圖所示,訊框402是用於訊框408的參考訊框,訊框404是用於訊框410的參考訊框,訊框408是用於訊框416的參考訊框,並且訊框412是用於訊框420的參考訊框。此外,訊框402是用於預測針對訊框406的運動向量的參考訊框,訊框404是用於預測針對訊框410的運動向量的參考訊框,訊框408是用於預測針對訊框414的運動向量的參考訊框,並且訊框412是用於預測針對訊框418的運動向量的參考訊框。
處理管道在階段342針對訊框402、404、408、412、416和420執行運動估計350。另一方面,處理管道在階段342針對訊框406、410、414和418跳過運動估計350。替代地,處理管道使用如先前所描述的內插或外推來預測針對訊框406、410、414和418的運動向量和模式。在該實例中,針對訊框406的運動向量是在階段344根據訊框402進行預測(例如,經由內插或外推)的;針對訊框410的運動向量是在階段344根據訊框404進行預測的;針對訊框414的運動向量是在階段344根據訊框408進行預測的;並且針對訊框418的運動向量是在階段344根據訊框412進行預測的。
用於預測針對訊框406、410、414和418的運動向量的參考訊框僅是出於解釋的目的而提供的實例。訊框的特定訊框依賴性可以允許實現其他模式。例如,在所示的實例中,訊框408用於預測針對訊框414的運動向量。然而,在替代實例中,訊框410可以用於預測針對訊框414的運動向量。如圖4中所示,在訊框414被處理的時間之前,已經在階段344重構了訊框410。因此,使用訊框410來預測針對訊框414的運動向量將不會產生依賴性衝突/錯誤。在一些情況下,與使用訊框410相比,使用訊框408作為用於針對訊框414的運動向量預測的參考訊框可能不那麼複雜,因為針對訊框414的運動可以較為容易地被估計為在先前針對訊框408和416所估計的運動之間的某處。另一方面,訊框410在時間上與訊框408相比較為接近訊框414,因此殘差可能較低。
可以基於偏好、優勢、劣勢及/或任何其他因素,來預先決定或動態地做出關於何訊框要用作用於預測另一訊框的運動向量的參考訊框的決策。然而,此種決策受到訊框依賴性的約束。例如,圖4中的訊框412使用訊框404作為參考訊框。如先前所解釋的,使用時間更近的訊框(諸如訊框406或408)可以存在某些優勢。在該實例中,訊框406和408在時間上比訊框404較為接近,但是當訊框412在階段342被處理時,訊框406和408尚未在階段344完成重構。如此產生依賴性錯誤,該依賴性錯誤阻止訊框406或408被用作用於訊框412的參考訊框。類似地,儘管訊框410在時間上較為接近訊框412,但是訊框410亦不能用作用於訊框412的參考訊框,因為當訊框412在階段342被處理時,訊框410尚未完成(或者甚至尚未開始)重構。
圖4中的解碼模式400是按照整個訊框的處理來描述的。然而,上文所描述的原理可以應用於子訊框的處理。例如,訊框可以被分離成子訊框,並且解碼模式400可以是基於子訊框的及/或針對子訊框來實現的。使用子訊框而不是整個訊框可能會影響訊框依賴性、關於何訊框要用作參考訊框的選項以及解碼效率。
圖5是圖示用於高效視訊解碼的示例性程序500的流程圖。在方塊502處,程序500可以包括:在以第一訊框速率實現的第一視訊解碼階段(例如,階段342)期間,決定針對在訊框序列中的第一訊框子集的第一運動向量。可以藉由對第一訊框子集執行運動估計(例如,運動估計350)來決定第一運動向量。在一些實例中,決定第一運動向量可以包括決定針對第一訊框子集的運動向量和解碼模式。
在一些實例中,決定第一運動向量可以包括:針對在第一訊框子集之每一者訊框,將訊框的一或多個區塊與在來自訊框序列的參考訊框中的複數個區塊進行比較;基於在訊框的一或多個區塊與在參考訊框中的複數個區塊之每一者區塊之間的相應圖元差,來根據複數個區塊決定預測區塊;及將訊框的一或多個區塊的第一位置與跟參考訊框相關聯的預測區塊的第二位置進行比較。
在方塊504處,程序500可以包括:在第二視訊解碼階段(例如,階段344)期間,決定針對在訊框序列中的第二訊框子集的第二運動向量。第二訊框子集可以包括與第一訊框子集相比較多的訊框。第二訊框子集可以包括在第一視訊解碼階段中未被處理的訊框。
在一些實例中,第二運動向量的至少一部分可以是基於來自第一運動向量的一或多個運動向量來計算的。在一些情況下,來自第二運動向量的一部分的每個運動向量是基於來自第一訊框子集的選定訊框(例如,參考訊框)的單獨運動向量及/或在選定訊框與跟運動向量相關聯的特定訊框(例如,針對其決定運動向量的特定訊框)之間的時間距離來計算的。
在一些實例中,第二運動向量中的一或多個運動向量是基於第二運動向量的一或多個額外運動向量以及在與一或多個運動向量相關聯的一或多個訊框和與一或多個額外運動向量相關聯的一或多個參考訊框之間的時間距離來計算的。
在方塊506處,程序500可以包括:在第二視訊解碼階段期間,使用第一運動向量來重構第一訊框子集。在一些實例中,重構第一訊框子集可以包括:應用運動補償、應用一或多個變換和係數量化及/或應用一或多個解區塊濾波器。例如,重構第一訊框子集可以包括:應用運動補償(例如,運動補償352)、應用前向變換和量化(例如,前向變換和量化356)、應用逆變換和量化(例如,逆變換和量化358)及/或應用一或多個解區塊濾波器(例如,解區塊362)。
在方塊508處,程序500可以包括:在第二視訊解碼階段期間,使用第二運動向量來重構第二訊框子集。第一視訊解碼階段和第二視訊解碼階段可以是至少部分並列地實現的。此外,第二視訊解碼階段可以是以高於第一訊框速率的第二訊框速率來實現的。因此,在特定間隔期間,第二視訊解碼階段可以處理與第一視訊解碼階段相比較多的訊框。在一些情況下,第一訊框子集和第二訊框子集是以第二訊框速率來重構的。
在一些實例中,重構第二訊框子集可以包括:應用運動補償、應用一或多個變換和係數量化及/或應用一或多個解區塊濾波器。例如,重構第二訊框子集可以包括:應用運動補償(例如,運動補償352)、應用前向變換和量化(例如,前向變換和量化356)、應用逆變換和量化(例如,逆變換和量化358)及/或應用一或多個解區塊濾波器(例如,解區塊362)。
在一些情況下,程序500可以包括:決定用於重構第一訊框子集和第二訊框子集的解碼模式(例如,解碼模式400),解碼模式定義用於重構訊框的順序以及用於決定第一運動向量之每一者運動向量和第二運動向量之每一者運動向量的相應參考訊框;及根據解碼模式來重構第一訊框子集和第二訊框子集。
在一些實例中,第一視訊解碼階段和第二視訊解碼階段可以是處理管線(例如,經修改的管線340)的一部分。
在一些實例中,解碼模式是基於訊框依賴性及/或在訊框序列中每個訊框之間的時間距離的。在一些情況下,訊框依賴性可以包括以下要求:針對訊框序列之每一者訊框,用於對訊框進行解碼的參考訊框已經完成重構。
在一些實例中,程序500可以包括:在與第一訊框速率相關聯的每個間隔,決定來自第一訊框子集的訊框的運動向量,決定來自第二訊框子集的數個不同訊框的運動向量,並且重構來自第二訊框子集的數個不同訊框。在一些情況下,訊框的運動向量可以包括第一運動向量中的一或多個運動向量,並且數個不同訊框可以是基於與第二視訊解碼階段相關聯的第二訊框速率的。
在一些實例中,第一視訊解碼階段和第二視訊解碼階段是經由專用硬體處理管道(例如,視訊處理管道214、216、218或220)實現的。在一些情況下,專用硬體處理管道可以包括一或多個處理器及/或處理元件。在一些實例中,專用硬體處理管道可以由設備實現,並且設備可以實現一或多個額外的專用硬體處理管道(例如,視訊處理管道214、216、218或220),其中一或多個額外的專用硬體處理管道中的每者被配置為針對一或多個相應訊框序列單獨地實現第一視訊解碼階段和第二視訊解碼階段。在一些實例中,專用硬體處理管道和一或多個額外的專用硬體處理管道可以並列地操作。
在一些實例中,第一運動向量是使用運動估計演算法來決定的,並且第二運動向量是使用內插演算法來決定的。運動估計演算法可能不同於內插演算法。在一些實例中,與運動估計演算法相比,運動估計演算法可能包括更多的處理操作及/或在計算上較為密集。
在一些情況下,程序500可以是經由硬體視訊編碼引擎(例如,具有圖2A或2B中所示的架構200的視訊編碼引擎)來實現的。在一些情況下,程序500可以包括產生經編碼的視訊位元串流。經編碼的視訊位元串流可以包括訊框序列。在一些實例中,程序500可以包括發送經編碼的視訊位元串流。
在一些實例中,本文中所描述的程序可以由計算設備或裝置(諸如編碼設備104、解碼設備112及/或任何其他計算設備)來執行。在一些情況下,計算設備或裝置可以包括處理器、微處理器、微型電腦或被配置為執行本文中所描述的程序的步驟的設備的其他元件。在一些實例中,計算設備或裝置可以包括被配置為擷取包括視訊訊框的視訊資料(例如,視訊序列)的相機。例如,計算設備可以包括相機設備,相機設備可以包括或者可以不包括視訊編解碼器。作為另一實例,計算設備可以包括具有相機的行動設備(例如,相機設備(諸如數位相機、IP相機等)、包括相機的行動電話或平板設備,或具有相機的其他類型的設備)。在一些情況下,計算設備可以包括用於顯示圖像的顯示器。在一些實例中,擷取視訊資料的相機或其他擷取設備與計算設備分離,在此種情況下,計算設備接收擷取的視訊資料。計算設備進一步可以包括被配置為傳送視訊資料的網路介面、收發機及/或發射器。網路介面、收發機及/或發射器可以被配置為傳送基於網際網路協定(IP)的資料或其他網路資料。
本文中所描述的程序可以以硬體、電腦指令或其組合來實現。在電腦指令的背景下,動作表示被儲存在一或多個電腦可讀取儲存媒體上的電腦可執行指令,電腦可執行指令在由一或多個處理器執行時執行所記載的操作。通常,電腦可執行指令包括執行特定功能或實現特定資料類型的常式、程式、物件、元件、資料結構等。以其描述操作的順序不意欲被解釋為限制,並且可以以任何順序及/或並列地組合任何數量的所描述的操作以實現該等程序。
另外,本文中所描述的程序可以在被配置有可執行指令的一或多個電腦系統的控制下執行,並且可以被實現為在一或多個處理器上共同執行的代碼(例如,可執行指令、一或多個電腦程式,或一或多個應用),經由硬體來實現,或其組合。如上文所指出的,代碼可以例如以包括可由一或多個處理器執行的複數個指令的電腦程式的形式被儲存在電腦可讀或機器可讀儲存媒體上。電腦可讀或機器可讀儲存媒體可以是非暫態的。
本文中所論述的解碼技術可以在示例性視訊編碼和解碼系統(例如,系統100)中實現。在一些實例中,系統包括源設備,源設備提供稍後要由目的地設備解碼的經編碼的視訊資料。特定地,源設備經由電腦可讀取媒體將視訊資料提供給目的地設備。源設備和目的地設備可以包括多種設備中的任何設備,包括桌上型電腦、筆記本(即,膝上型)電腦、平板電腦、機上盒、電話手機(諸如所謂的「智慧」手機)、所謂的「智慧」板、電視機、相機、顯示設備、數位媒體播放機、視訊遊戲機、視訊資料串流設備等。在一些情況下,源設備和目的地設備可以被配備用於無線通訊。
目的地設備可以經由電腦可讀取媒體接收要被解碼的經編碼的視訊資料。電腦可讀取媒體可以是能夠將經編碼的視訊資料從源設備移動到目的地設備的任何類型的媒體或設備。在一個實例中,電腦可讀取媒體可以包括使得源設備能夠將經編碼的視訊資料直接即時地發送給目的地設備的通訊媒體。經編碼的視訊資料可以根據諸如無線通訊協定之類的通訊標準進行調制,並且發送給目的地設備。通訊媒體可以包括任何無線或有線通訊媒體,諸如射頻(RF)頻譜或一或多條實體傳輸線。通訊媒體可以形成基於封包的網路的一部分,諸如區域網路、廣域網路或全球網路(諸如網際網路)。通訊媒體可以包括路由器、交換機、基地台,或可以用於促進從源設備到目的地設備的通訊的任何其他裝備。
在一些實例中,可以將經編碼的資料從輸出介面輸出到儲存設備。類似地,可以經由輸入介面從儲存設備存取經編碼的資料。儲存設備可以包括各種分散式或本端存取的資料儲存媒體中的任何資料儲存媒體,諸如硬碟、藍光光碟、DVD、CD-ROM、快閃記憶體、揮發性或非揮發性記憶體,或用於儲存經編碼的視訊資料的任何其他適當的數位儲存媒體。在另外的實例中,儲存設備可以對應於可以儲存由源設備產生的經編碼的視訊的檔案伺服器或另一中間儲存設備。目的地設備可以經由資料串流或下載來從儲存設備存取被儲存的視訊資料。檔案伺服器可以是能夠儲存經編碼的視訊資料並且將經編碼的視訊資料發送給目的地設備的任何類型的伺服器。示例性檔案伺服器包括網頁伺服器(例如,用於網站)、FTP伺服器、網路附加儲存(NAS)設備或本端磁碟機。目的地設備可以經由任何標準資料連接(包括網際網路連接)來存取經編碼的視訊資料。這可以包括適於存取被儲存在檔案伺服器上的經編碼的視訊資料的無線通道(例如,Wi-Fi連接)、有線連接(例如,DSL、纜線數據機等)或兩者的組合。經編碼的視訊資料從儲存設備的傳輸可以是資料串流、下載傳輸或其組合。
本案內容的技術不一定限於無線應用或設置。該技術可以應用於視訊解碼,以支援多種多媒體應用中的任何多媒體應用,諸如,空中傳輸電視廣播、有線電視傳輸、衛星電視傳輸、網際網路串流視訊傳輸(諸如基於HTTP的動態可適性資料串流(DASH))、被編碼到資料儲存媒體上的數位視訊、對被儲存在資料儲存媒體上的數位視訊的解碼,或其他應用。在一些實例中,系統可以被配置為支援單向或雙向視訊傳輸,以支援諸如視訊資料串流、視訊重播、視訊廣播及/或視訊電話之類的應用。
在一個實例中,源設備包括視訊源、視訊編碼器和輸出介面。目的地設備可以包括輸入介面、視訊解碼器和顯示設備。源設備的視訊編碼器可以被配置為應用本文中所揭示的技術。在其他實例中,源設備和目的地設備可以包括其他元件或佈置。例如,源設備可以從諸如外部相機之類的外部視訊源接收視訊資料。同樣,目的地設備可以與外部顯示設備介電連接,而不是包括整合的顯示設備。
以上示例性系統僅是一個實例。用於並列地處理視訊資料的技術可以由任何數位視訊編碼及/或解碼設備來執行。儘管本案內容的技術通常是由視訊編碼設備來執行的,但是該技術亦可以由通常被稱為「CODEC」的視訊編碼器/解碼器來執行。此外,本案內容的技術亦可以由視訊前置處理器來執行。源設備和目的地設備僅是此種解碼設備的實例:其中源設備產生經解碼的視訊資料以供傳輸給目的地設備。在一些實例中,源設備和目的地設備可以以基本上對稱的方式操作,使得設備之每一者設備包括視訊編碼和解碼用元件。因此,示例性系統可以支援在視訊設備之間的單向或雙向視訊傳輸,例如,用於視訊資料串流、視訊重播、視訊廣播或視訊電話。
視訊源可以包括視訊擷取設備,諸如攝像機、包含先前擷取的視訊的視訊存檔單元,及/或用於從視訊內容提供者接收視訊的視訊饋送介面。作為另外的替代方式,視訊源可以產生基於電腦圖形的資料作為源視訊,或者產生即時視訊、存檔視訊和電腦產生的視訊的組合。在一些情況下,若視訊源是攝像機,則源設備和目的地設備可以形成所謂的照相電話或視訊電話。然而,如上文所提及的,在本案內容中所描述的技術通常可以適用於視訊解碼,並且可以應用於無線及/或有線應用。在每種情況下,所擷取的、預擷取的或電腦產生的視訊可以由視訊編碼器進行編碼。隨後,可以經由輸出介面將經編碼的視訊資訊輸出到電腦可讀取媒體上。
如所指出的,電腦可讀取媒體可以包括暫態媒體(諸如無線廣播或者有線網路傳輸),或者儲存媒體(即,非暫態儲存媒體)(諸如硬碟、快閃記憶體驅動器、壓縮光碟、數位多功能光碟、藍光光碟),或者其他電腦可讀取媒體。在一些實例中,網路伺服器(未圖示)可以例如經由網路傳輸從源設備接收經編碼的視訊資料,並且將經編碼的視訊資料提供給目的地設備。類似地,媒體生產設施(諸如光碟衝壓設施)的計算設備可以從源設備接收經編碼的視訊資料,並且製造包含經編碼的視訊資料的光碟。因此,在各個實例中,電腦可讀取媒體可以被理解為包括各種形式的一或多個電腦可讀取媒體。
目的地設備的輸入介面從電腦可讀取媒體接收資訊。電腦可讀取媒體的資訊可以包括由視訊編碼器定義的語法資訊,語法資訊亦被視訊解碼器使用,語法資訊包括描述區塊和其他解碼單元(例如,圖片群組(GOP))的特性及/或處理的語法元素。顯示設備將經解碼的視訊資料顯示給使用者,並且可以包括各種顯示設備中的任何顯示設備,諸如陰極射線管(CRT)、液晶顯示器(LCD)、電漿顯示器、有機發光二極體(OLED)顯示器,或另一類型的顯示設備。已經描述本案的各個實施例。
在圖6和圖7中分別示出編碼設備104和解碼設備112的具體細節。圖6是圖示可以實現在本案內容中描述的技術中的一或多個技術的示例性編碼設備104的方塊圖。編碼設備104可以例如產生本文中所描述的語法結構(例如,VPS、SPS、PPS或其他語法元素的語法結構)。編碼設備104可以執行對在視訊切片內的視訊區塊的訊框內預測和訊框間預測解碼。如先前所描述的,訊框內解碼至少部分地依賴於空間預測以減少或移除在給定視訊訊框或圖片內的空間冗餘。訊框間解碼至少部分地依賴於時間預測以減少或移除在視訊序列的相鄰或周圍訊框內的時間冗餘。訊框內模式(I模式)可以代表若干種基於空間的壓縮模式中的任何一種。諸如單向預測(P模式)或雙預測(B模式)之類的訊框間模式可以代表若干種基於時間的壓縮模式中的任何一種。
編碼設備104包括分割單元35、預測處理單元41、濾波器單元63、圖片記憶體64、求和器50、變換處理單元52、量化單元54和熵編碼單元56。預測處理單元41包括運動估計單元42、運動補償單元44和訊框內預測處理單元46。對於視訊區塊重構,編碼設備104亦包括逆量化單元58、逆變換處理單元60和求和器62。濾波器單元63意欲表示一或多個迴路濾波器,諸如去區塊濾波器、可適性迴路濾波器(ALF)和取樣可適性偏移(SAO)濾波器。儘管在圖6中將濾波器單元63示為迴路內濾波器,但是在其他配置中,濾波器單元63可以被實現為後迴路濾波器。後處理設備57可以對由編碼設備104產生的經編碼的視訊資料執行額外的處理。在一些實例中,本案內容的技術可以由編碼設備104來實現。然而,在其他實例中,本案內容的技術中的一或多個技術可以由後處理設備57來實現。
如圖6中所示,編碼設備104接收視訊資料,並且分割單元35將資料分割為視訊區塊。分割亦可以包括例如根據LCU和CU的四叉樹結構來分割為切片、切片段、瓦片或其他較大的單元,以及視訊區塊分割。編碼設備104通常圖示對在要被編碼的視訊切片內的視訊區塊進行編碼的元件。切片可以被劃分為多個視訊區塊(並且可能被劃分為被稱為瓦片的視訊區塊的集合)。預測處理單元41可以基於誤差結果(例如,解碼率和失真位準等)來針對當前視訊區塊選擇複數種可能的解碼模式中的一種,諸如複數種訊框內預測解碼模式中的一種或複數種訊框間預測解碼模式中的一種。預測處理單元41可以將所得到的經訊框內解碼的或經訊框間解碼的區塊提供給求和器50以產生殘差區塊資料,並且提供給求和器62以重構經編碼的區塊以用作參考圖片。
在預測處理單元41內的訊框內預測處理單元46可以相對於在與要被解碼的當前區塊相同的訊框或切片中的一或多個相鄰區塊,來執行當前視訊區塊的訊框內預測解碼,以提供空間壓縮。在預測處理單元41內的運動估計單元42和運動補償單元44相對於在一或多個參考圖片中的一或多個預測區塊來執行當前視訊區塊的訊框間預測解碼,以提供時間壓縮。
運動估計單元42可以被配置為根據用於視訊序列的預定模式來決定用於視訊切片的訊框間預測模式。預定模式可以將序列中的視訊切片指定為P切片、B切片或GPB切片。運動估計單元42和運動補償單元44可以是高度整合的,但是出於概念性目的而被分別示出。由運動估計單元42執行的運動估計是產生運動向量的程序,該程序估計針對視訊區塊的運動。運動向量例如可以指示在當前視訊訊框或圖片內的視訊區塊的預測單元(PU)相對於在參考圖片內的預測區塊的位移。
預測區塊是被發現在圖元差方面與要被解碼的視訊區塊的PU緊密匹配的區塊,其可以經由絕對差之和(SAD)、平方差之和(SSD)或其他差度量來決定。在一些實例中,編碼設備104可以針對被儲存在圖片記憶體64中的參考圖片的整數以下的圖元位置來計算值。例如,編碼設備104可以對參考圖片的四分之一圖元位置、八分之一圖元位置或其他分數圖元位置的值進行內插。因此,運動估計單元42可以相對於全圖元位置和分數圖元位置執行運動搜尋,並且輸出具有分數圖元精度的運動向量。
運動估計單元42藉由將在經訊框間解碼的切片中的視訊區塊的PU的位置與參考圖片的預測區塊的位置進行比較,來計算針對PU的運動向量。參考圖片可以是從第一參考圖片列表(列表0)或第二參考圖片列表(列表1)中選擇的,其之每一者參考圖片列表識別被儲存在圖片記憶體64中的一或多個參考圖片。運動估計單元42將所計算出的運動向量發送給熵編碼單元56和運動補償單元44。
由運動補償單元44執行的運動補償可以涉及:基於經由運動估計而決定的運動向量來取得或產生預測區塊,可能地針對圖元以下的精度執行內插。在接收到針對當前視訊區塊的PU的運動向量之後,運動補償單元44可以在參考圖片列表中定位運動向量所指向的預測區塊。編碼設備104藉由從正被解碼的當前視訊區塊的圖元值中減去預測區塊的圖元值來形成圖元差值,從而形成殘差視訊區塊。圖元差值形成針對該區塊的殘差資料,並且可以包括亮度差分量和色度差分量兩者。求和器50表示執行該減法運算的一或多個元件。運動補償單元44亦可以產生與視訊區塊和視訊切片相關聯的語法元素,以供解碼設備112在對視訊切片的視訊區塊進行解碼時使用。
如上文所描述的,訊框內預測處理單元46可以對當前區塊進行訊框內預測,作為對由運動估計單元42和運動補償單元44執行的訊框間預測的替代方式。特別是,訊框內預測處理單元46可以決定要用於對當前區塊進行編碼的訊框內預測模式。在一些實例中,訊框內預測處理單元46可以例如在單獨的編碼通路期間使用各種訊框內預測模式來對當前區塊進行編碼,並且訊框內預測處理單元46可以從被測試的模式中選擇合適的訊框內預測模式來使用。例如,訊框內預測處理單元46可以針對各種被測試的訊框內預測模式使用速率失真分析來計算速率失真值,並且可以在被測試的模式之中選擇具有最佳速率失真特性的訊框內預測模式。速率失真分析通常決定在經編碼的區塊與原始的未經編碼的區塊(其被編碼以產生經編碼的區塊)之間的失真(或誤差)量,以及用於產生經編碼的區塊的位元速率(即位元數量)。訊框內預測處理單元46可以根據針對各種經編碼的區塊的失真和速率來計算比率,以決定何種訊框內預測模式表現出針對該區塊的最佳速率失真值。
在任何情況下,在針對區塊選擇訊框內預測模式之後,訊框內預測處理單元46可以將指示所選擇的針對區塊的訊框內預測模式的資訊提供給熵編碼單元56。熵編碼單元56可以對指示所選擇的訊框內預測模式的資訊進行編碼。編碼設備104可以在所發送的位元串流配置資料中包括用於各種區塊的編碼上下文的定義以及對要用於上下文之每一者上下文的最可能的訊框內預測模式、訊框內預測模式索引表和經修改的訊框內預測模式索引表的指示。位元串流配置資料可以包括複數個訊框內預測模式索引表和複數個經修改的訊框內預測模式索引表(亦被稱為編碼字元映射表)。
在預測處理單元41經由訊框間預測或訊框內預測產生用於當前視訊區塊的預測區塊之後,編碼設備104藉由從當前視訊區塊中減去預測區塊來形成殘差視訊區塊。殘差區塊中的殘差視訊資料可以被包括在一或多個TU中,並且被應用於變換處理單元52。變換處理單元52使用變換(諸如離散餘弦變換(DCT)或概念上類似的變換)來將殘差視訊資料變換為殘差變換係數。變換處理單元52可以將殘差視訊資料從圖元域轉換到變換域(諸如頻域)。
變換處理單元52可以將所得到的變換係數發送給量化單元54。量化單元54對變換係數進行量化以進一步降低位元速率。量化程序可以減小與係數中的一些或所有係數相關聯的位元深度。可以藉由調整量化參數來修改量化程度。在一些實例中,量化單元54隨後可以對包括經量化的變換係數的矩陣執行掃瞄。或者,熵編碼單元56可以執行掃瞄。
在量化之後,熵編碼單元56對經量化的變換係數進行熵編碼。例如,熵編碼單元56可以執行上下文可適性變長解碼(CAVLC)、上下文可適性二元算術解碼(CABAC)、基於語法的上下文可適性二元算術解碼(SBAC)、機率區間分割熵(PIPE)解碼或另一熵編碼技術。在由熵編碼單元56進行熵編碼之後,經編碼的位元串流可以被發送給解碼設備112,或者被存檔以供稍後傳輸或者由解碼設備112取得。熵編碼單元56亦可以對針對正被解碼的當前視訊切片的運動向量和其他語法元素進行熵編碼。
逆量化單元58和逆變換處理單元60分別應用逆量化和逆變換,以在圖元域中重構殘差區塊,以供稍後用作參考圖片的參考區塊。運動補償單元44可以藉由將殘差區塊加到在參考圖片列表內的參考圖片中的一個參考圖片的預測區塊,來計算參考區塊。運動補償單元44亦可以將一或多個內插濾波器應用於經重構的殘差區塊,以計算用於運動估計的整數以下的圖元值。求和器62將經重構的殘差區塊加到由運動補償單元44產生的經運動補償的預測區塊,以產生用於儲存在圖片記憶體64中的參考區塊。該參考區塊可以由運動估計單元42和運動補償單元44用作用於對在隨後的視訊訊框或圖片中的區塊進行訊框間預測的參考區塊。
編碼設備104可以執行本文中所描述的技術中的任何技術。已經關於編碼設備104大體上描述了本案內容的一些技術,但是如上文所提及的,本案內容的技術中的一些技術亦可以由後處理設備57實現。
圖6的編碼設備104表示被配置為執行本文中所描述的變換解碼技術中的一或多個技術的視訊編碼器的實例。編碼設備104可以執行本文中所描述的技術中的任何技術,包括上文關於圖5所描述的程序。
圖7是圖示示例性解碼設備112的方塊圖。解碼設備112包括熵解碼單元80、預測處理單元81、逆量化單元86、逆變換處理單元88、求和器90、濾波器單元91和圖片記憶體92。預測處理單元81包括運動補償單元82和訊框內預測處理單元84。在一些實例中,解碼設備112可以執行通常與關於來自圖6的編碼設備104所描述的編碼階段相反的解碼階段。
在解碼程序期間,解碼設備112接收由編碼設備104發送的表示經編碼的視訊切片的視訊區塊和關聯的語法元素的經編碼的視訊位元串流。在一些實施例中,解碼設備112可以從編碼設備104接收經編碼的視訊位元串流。在一些實施例中,解碼設備112可以從網路實體79(諸如伺服器、媒體感知網路元素(MANE)、視訊編輯器/拼接器,或被配置為實現上述技術中的一或多個技術的其他此種設備)接收經編碼的視訊位元串流。網路實體79可以包括或者可以不包括編碼設備104。在本案內容中描述的技術中的一些技術可以由網路實體79在網路實體79將經編碼的視訊位元串流發送給解碼設備112之前來實現。在一些視訊解碼系統中,網路實體79和解碼設備112可以是單獨設備的部分,而在其他實例中,關於網路實體79所描述的功能可以由包括解碼設備112的相同設備來執行。
解碼設備112的熵解碼單元80對位元串流進行熵解碼以產生量化的係數、運動向量和其他語法元素。熵解碼單元80將運動向量和其他語法元素轉發給預測處理單元81。解碼設備112可以接收在視訊切片位準及/或視訊區塊位準的語法元素。熵解碼單元80可以處理和解析在一或多個參數集(諸如VPS、SPS和PPS)中的固定長度語法元素和可變長度語法元素兩者。
當視訊切片被解碼為經訊框內解碼(I)的切片時,預測處理單元81的訊框內預測處理單元84可以基於用信號通知的訊框內預測模式以及來自當前訊框或圖片的先前解碼的區塊的資料,來產生針對當前視訊切片的視訊區塊的預測資料。當視訊訊框被解碼為經訊框間解碼(即,B、P或GPB)的切片時,預測處理單元81的運動補償單元82基於從熵解碼單元80接收的運動向量和其他語法元素,來產生針對當前視訊切片的視訊區塊的預測區塊。可以根據在參考圖片列表內的參考圖片中的一個參考圖片來產生預測區塊。解碼設備112可以基於被儲存在圖片記憶體92中的參考圖片,使用預設構造技術來構造參考訊框列表(列表0和列表1)。
運動補償單元82藉由解析運動向量和其他語法元素來決定用於當前視訊切片的視訊區塊的預測資訊,並且使用該預測資訊來產生用於正在被解碼的當前視訊區塊的預測區塊。例如,運動補償單元82可以使用在參數集中的一或多個語法元素來決定用於對視訊切片的視訊區塊進行解碼的預測模式(例如,訊框內預測或訊框間預測)、訊框間預測切片類型(例如,B切片、P切片或GPB切片)、用於針對切片的一或多個參考圖片列表的構造資訊、用於切片的每個經訊框間編碼的視訊區塊的運動向量、用於切片的每個經訊框間解碼的視訊區塊的訊框間預測狀態,以及用於對在當前視訊切片中的視訊區塊進行解碼的其他資訊。
運動補償單元82亦可以基於內插濾波器來執行內插。運動補償單元82可以使用如由編碼設備104在視訊區塊的編碼期間使用的內插濾波器來計算針對參考區塊的整數以下的圖元的插入的值。在此種情況下,運動補償單元82可以根據所接收的語法元素來決定由編碼設備104使用的內插濾波器,並且可以使用內插濾波器來產生預測區塊。
逆量化單元86對在位元串流中提供並且由熵解碼單元80解碼的經量化的變換係數進行逆量化或解量化。逆量化程序可以包括使用由編碼設備104針對視訊切片之每一者視訊區塊所計算的量化參數來決定量化程度,以及同樣地決定應當被應用的逆量化程度。逆變換處理單元88對變換係數應用逆變換(例如,逆DCT或其他適當的逆變換)、逆整數變換或概念上類似的逆變換,以便在圖元域中產生殘差區塊。
在運動補償單元82基於運動向量和其他語法元素產生用於當前視訊區塊的預測區塊之後,解碼設備112藉由對來自逆變換處理單元88的殘差區塊與由運動補償單元82產生的對應預測區塊進行求和,來形成經解碼的視訊區塊。求和器90表示執行該求和運算的一或多個元件。若需要的話,迴路濾波器(在編碼迴路中或在編碼迴路之後)亦可以用於使圖元轉換平滑,或者以改良視訊品質。濾波器單元91意欲表示一或多個迴路濾波器,諸如去區塊濾波器、可適性迴路濾波器(ALF)和取樣可適性偏移(SAO)濾波器。儘管濾波器單元91在圖7中被示為迴路中濾波器,但是在其他配置中,濾波器單元91可以被實現為後迴路濾波器。在給定訊框或圖片中的經解碼的視訊區塊隨後被儲存在圖片記憶體92中,圖片記憶體92儲存用於隨後的運動補償的參考圖片。圖片記憶體92亦儲存經解碼的視訊,以供稍後在顯示設備(諸如在圖1中所示的視訊目的地設備122)上呈現。
圖7的解碼設備112表示被配置為執行本文中所描述的變換解碼技術中的一或多個技術的視訊解碼器的實例。解碼設備112可以執行本文中所描述的技術中的任何技術,包括上文關於圖5所描述的程序。
在前面的描述中,本案的各態樣是參考其特定實施例來描述的,但是本領域技藝人士將認識到,本案的標的不限於此。因此,儘管本文已經詳細描述了本案的說明性實施例,但是要理解的是,可以以其他方式不同地體現和採用本發明構思,並且所附的請求項意欲被解釋為包括此種變型,除了受先前技術限制的變型。可以單獨地或共同地使用上述標的的各個特徵和態樣。此外,在不脫離本說明書的更寬泛的精神和範圍的情況下,實施例可以在除了本文中所描述的環境和應用之外的任何數量的環境和應用中使用。因此,說明書和附圖被認為是說明性的而不是限制性的。為了說明的目的,方法是以特定次序來描述的。應當瞭解,在替代實施例中,方法可以以與所描述的次序不同的次序來執行。
在將元件描述為「被配置為」執行某些操作的情況下,此種配置可以例如藉由以下方式來實現:將電路或其他硬體設計為執行該操作,將可程式設計電路(例如,微處理器或其他適當的電路)程式設計為執行該操作,或其任何組合。
記載集合中的「至少一個」及/或集合中的「一或多個」的請求項語言或其他語言指示集合中的一個成員或者集合中的多個成員(以任何組合)滿足該請求項。例如,記載「A和B中的至少一個」的請求項語言意謂A、B,或者A和B。在另一實例中,記載「A、B和C中的至少一個」的請求項語言意謂A、B、C,或者A和B,或者A和C,或者B和C,或者A和B和C。語言集合中的「至少一個」及/或集合中的「一或多個」並不將集合限制於在集合中列出的項目。例如,記載「A和B中的至少一個」的請求項語言可以意謂A、B或者A和B,並且可以另外包括未在A和B的集合中列出的項目。
結合本文中所揭示的實施例描述的各種說明性的邏輯方塊、模組、電路和演算法步驟可以被實現為電子硬體、電腦軟體、韌體或其組合。為了清楚地說明硬體和軟體的此種可互換性,上文已經對各種說明性的元件、方塊、模組、電路和步驟圍繞其功能進行了整體描述。至於此種功能是被實現為硬體還是軟體取決於特定的應用和施加在整體系統上的設計約束。本領域技藝人士可以針對每種特定應用以變通的方式來實現所描述的功能,但是此種實現方式決策不應當被解釋為導致脫離本案的範圍。
本文中所描述的技術亦可以以電子硬體、電腦軟體、韌體或其任何組合來實現。此種技術可以在各種設備中的任何設備中實現,諸如通用電腦、無線通訊設備手機或具有多種用途(包括在無線通訊設備手機和其他設備中的應用)的積體電路設備。被描述為模組或元件的任何特徵可以在整合的邏輯設備中一起實現,或者分別被實現為個別但可交互動操作的邏輯設備。若以軟體來實現,則該技術可以至少部分地由包括程式碼的電腦可讀取資料儲存媒體來實現,程式碼包括在被執行時執行上述方法中的一或多個方法的指令。電腦可讀取資料儲存媒體可以形成電腦程式產品的一部分,電腦程式產品可以包括包裝材料。電腦可讀取媒體可以包括記憶體或資料儲存媒體,諸如隨機存取記憶體(RAM)(諸如同步動態隨機存取記憶體(SDRAM))、唯讀記憶體(ROM)、非揮發性隨機存取記憶體(NVRAM)、電子可抹除可程式設計唯讀記憶體(EEPROM)、快閃記憶體、磁性或光學資料儲存媒體等。另外或替代地,該技術可以至少部分地由電腦可讀通訊媒體(諸如傳播的信號或波)來實現,電腦可讀通訊媒體以指令或資料結構的形式攜帶或傳送程式碼並且可以由電腦存取、讀取及/或執行。
程式碼可以由處理器執行,處理器可以包括一或多個處理器,諸如一或多個數位訊號處理器(DSPs)、通用微處理器、特殊應用積體電路(ASIC)、現場可程式設計邏輯陣列(FPGAs)或其他等效的整合或個別邏輯電路。此種處理器可以被配置為執行在本案內容中描述的技術中的任何技術。通用處理器可以是微處理器,但是在替代方式中,處理器可以是任何一般的處理器、控制器、微控制器或狀態機。處理器亦可以被實現為計算設備的組合,例如,DSP和微處理器的組合、複數個微處理器、一或多個微處理器與DSP核心的結合,或任何其他此種配置。因此,如本文所使用的術語「處理器」可以代表任何前述結構、前述結構的任何組合,或適於實現本文中所描述的技術的任何其他結構或裝置。另外,在一些態樣中,本文中所描述的功能可以在被配置用於編碼和解碼的專用軟體模組或硬體模組內提供,或者被合併在組合的視訊編碼器-解碼器(CODEC)中。
本案內容的說明性實例包括:
態樣1:一種用於處理視訊資料的方法,方法包括:在以第一訊框速率實現的第一視訊解碼階段期間,決定針對訊框序列中的第一訊框子集的第一運動向量;在以高於第一訊框速率的第二訊框速率實現的第二視訊解碼階段期間,決定針對訊框序列中的第二訊框子集的第二運動向量,其中第二運動向量的至少一部分是基於來自第一運動向量的一或多個運動向量來計算的;在第二視訊解碼階段期間,使用第一運動向量來重構第一訊框子集;及在第二視訊解碼階段期間,使用第二運動向量來重構第二訊框子集,其中第一視訊解碼階段和第二視訊解碼階段是至少部分並列地實現的。
態樣2:根據態樣1之方法,其中來自第二運動向量的至少部分的每個運動向量是基於來自第一訊框子集的選定訊框的單獨運動向量以及在選定訊框與跟每個運動向量相關聯的特定訊框之間的時間距離來計算的。
態樣3:根據態樣1到2中的任何態樣所述的方法,其中估計第一運動向量包括:針對第一訊框子集中的訊框,將訊框的一或多個區塊與來自訊框序列的參考訊框中的複數個區塊進行比較;基於在訊框的一或多個區塊與在參考訊框中的複數個區塊之每一者區塊之間的相應圖元差,來根據複數個區塊決定預測區塊;及將訊框的一或多個區塊的第一位置與跟參考訊框相關聯的預測區塊的第二位置進行比較。
態樣4:根據態樣1到3中的任何態樣所述的方法,其中第二運動向量中的一或多個運動向量是基於第二運動向量的一或多個額外運動向量,以及在與一或多個運動向量相關聯的一或多個訊框和與一或多個額外運動向量相關聯的一或多個參考訊框之間的時間距離來計算的。
態樣5:根據態樣1到4中的任何態樣所述的方法,進一步包括:決定用於重構第一訊框子集和第二訊框子集的解碼模式,解碼模式定義用於重構訊框的順序以及用於決定第一運動向量之每一者運動向量和第二運動向量之每一者運動向量的相應參考訊框;及根據解碼模式來重構第一訊框子集和第二訊框子集。
態樣6:根據態樣5之方法,其中解碼模式是基於訊框依賴性以及在訊框序列中每個訊框之間的時間距離中的至少一項的。
態樣7:根據態樣6之方法,其中該訊框依賴性包括以下要求:針對訊框序列之每一者訊框,用於重構每個訊框的參考訊框已經完成重構。
態樣8:根據態樣1到7中的任何態樣所述的方法,進一步包括:在與第一訊框速率相關聯的每個間隔,決定來自第一訊框子集的訊框的運動向量,決定來自第二訊框子集的數個不同訊框的相應的運動向量,並且重構來自第二訊框子集的數個不同訊框。
態樣9:根據態樣8之方法,其中訊框的運動向量包括第一運動向量中的至少一個第一運動向量,並且其中數個不同訊框是基於與第二視訊解碼階段相關聯的第二訊框速率的。
態樣10:根據態樣1到9中的任何態樣所述的方法,其中重構第一訊框子集和第二訊框子集包括:將運動補償、一或多個變換和係數量化以及一或多個解區塊濾波器中的至少一項應用於第一訊框子集和第二訊框子集。
態樣11:根據態樣1到10中的任何態樣所述的方法,其中第一視訊解碼階段和第二視訊解碼階段是經由專用硬體處理管道來實現的,其中專用硬體處理管道包括一或多個處理器。
態樣12:根據態樣11之方法,進一步包括:經由一或多個額外專用硬體處理管道,針對一或多個相應訊框序列單獨地實現第一視訊解碼階段和第二視訊解碼階段。
態樣13:根據態樣1到12中的任何態樣所述的方法,其中第一運動向量是使用運動估計演算法來決定的,並且第二運動向量是使用內插演算法來決定的,運動估計演算法不同於內插演算法。
態樣14:根據態樣1到13中的任何態樣所述的方法,進一步包括:產生經編碼的視訊位元串流,經編碼的視訊位元串流包括訊框序列。
態樣15:根據態樣14之方法,進一步包括:發送經編碼的視訊位元串流。
態樣16:根據態樣1到15中的任何態樣所述的方法,其中第二訊框子集包括與第一訊框子集相比較多的訊框。
態樣17:根據態樣1到16中的任何態樣所述的方法,其中第一訊框子集和第二訊框子集是以第二訊框速率來重構的。
態樣18:一種用於處理視訊資料的裝置,裝置包括記憶體和耦合到記憶體的一或多個處理器,一或多個處理器被配置為:在以第一訊框速率實現的第一視訊解碼階段期間,決定針對訊框序列中的第一訊框子集的第一運動向量;在以高於第一訊框速率的第二訊框速率實現的第二視訊解碼階段期間,決定針對訊框序列中的第二訊框子集的第二運動向量,其中第二運動向量的至少一部分是基於來自第一運動向量的一或多個運動向量來計算的;在第二視訊解碼階段期間,使用第一運動向量來重構第一訊框子集;及在第二視訊解碼階段期間,使用第二運動向量來重構第二訊框子集,其中第一視訊解碼階段和第二視訊解碼階段是至少部分並列地實現的。
態樣19:根據態樣18之裝置,其中來自第二運動向量的至少部分的每個運動向量是基於來自第一訊框子集的選定訊框的單獨運動向量以及在選定訊框與跟每個運動向量相關聯的特定訊框之間的時間距離來計算的。
態樣20:根據態樣18到19中的任何態樣所述的裝置,其中為了估計第一運動向量,一或多個處理器被配置為:針對第一訊框子集中的訊框,將訊框的一或多個區塊與來自訊框序列的參考訊框中的複數個區塊進行比較;基於在訊框的一或多個區塊與在參考訊框中的複數個區塊之每一者區塊之間的相應圖元差,來根據複數個區塊決定預測區塊;及將訊框的一或多個區塊的第一位置與跟參考訊框相關聯的預測區塊的第二位置進行比較。
態樣21:根據態樣18到20中的任何態樣所述的裝置,其中第二運動向量中的一或多個運動向量是基於第二運動向量的一或多個額外運動向量,以及在與一或多個運動向量相關聯的一或多個訊框和與一或多個額外運動向量相關聯的一或多個參考訊框之間的時間距離來計算的。
態樣22:根據態樣18到21中的任何態樣所述的裝置,其中一或多個處理器被配置為:決定用於重構第一訊框子集和第二訊框子集的解碼模式,解碼模式定義用於重構訊框的順序以及用於決定第一運動向量之每一者運動向量和第二運動向量之每一者運動向量的相應參考訊框;及根據解碼模式來重構第一訊框子集和第二訊框子集。
態樣23:根據態樣22之裝置,其中解碼模式是基於訊框依賴性以及在訊框序列中每個訊框之間的時間距離中的至少一項的。
態樣24:根據態樣23之裝置,其中訊框依賴性包括以下要求:針對訊框序列之每一者訊框,用於重構每個訊框的參考訊框已經完成重構。
態樣25:根據態樣18到24中的任何態樣所述的裝置,其中一或多個處理器被配置為:在與第一訊框速率相關聯的每個間隔,決定來自第一訊框子集的訊框的運動向量,決定來自第二訊框子集的數個不同訊框的相應的運動向量,並且重構來自第二訊框子集的數個不同訊框。
態樣26:根據態樣25之裝置,其中訊框的運動向量包括第一運動向量中的至少一個第一運動向量,並且其中數個不同訊框是基於與第二視訊解碼階段相關聯的第二訊框速率的。
態樣27:根據態樣18到26中的任何態樣所述的裝置,其中為了重構第一訊框子集和第二訊框子集,一或多個處理器被配置為:將運動補償、一或多個變換和係數量化以及一或多個解區塊濾波器中的至少一項應用於第一訊框子集和第二訊框子集。
態樣28:根據態樣18到27中的任何態樣所述的裝置,其中第一視訊解碼階段和第二視訊解碼階段是經由裝置的專用硬體處理管道來實現的,其中專用硬體處理管道包括一或多個處理器。
態樣29:根據態樣28之裝置,進一步包括一或多個額外專用硬體處理管道,其中一或多個額外專用硬體處理管道中的每者被配置為針對一或多個相應訊框序列單獨地實現第一視訊解碼階段和第二視訊解碼階段。
態樣30:根據態樣18到29中的任何態樣所述的裝置,其中第一運動向量是使用運動估計演算法來決定的,並且第二運動向量是使用內插演算法來決定的,運動估計演算法不同於內插演算法。
態樣31:根據態樣18到30中的任何態樣所述的裝置,其中一或多個處理器被配置為:產生經編碼的視訊位元串流,經編碼的視訊位元串流包括訊框序列。
態樣32:根據態樣31之裝置,其中一或多個處理器被配置為:發送經編碼的視訊位元串流。
態樣33:根據態樣18到32中的任何態樣所述的裝置,其中裝置是行動設備。
態樣34:根據態樣18到33中的任何態樣所述的裝置,進一步包括硬體視訊編碼引擎。
態樣35:根據態樣18到34中的任何態樣所述的裝置,其中第二訊框子集包括與第一訊框子集相比較多的訊框。
態樣36:根據態樣18到35中的任何態樣所述的裝置,其中第一訊框子集和第二訊框子集是以第二訊框速率來重構的。
態樣37:根據態樣18到36中的任何態樣所述的裝置,進一步包括被配置為擷取一或多個訊框的相機。
態樣38:根據態樣18到37中的任何態樣所述的裝置,進一步包括被配置為顯示一或多個訊框的顯示器。
態樣39:一種具有儲存在其上的指令的非暫態電腦可讀取媒體,該等指令在由一或多個處理器執行時使得該一或多個處理器執行根據態樣1到38中的任何態樣所述的操作。
態樣40:一種裝置,其包括用於執行根據態樣1至38中的任何態樣所述的操作的構件。
35:分割單元
41:預測處理單元
42:運動估計單元
44:運動補償單元
46:訊框內預測處理單元
50:求和器
52:變換處理單元
54:量化單元
56:熵編碼單元
57:後處理設備
58:逆量化單元
60:逆變換處理單元
62:求和器
63:濾波器單元
64:圖片記憶體
79:網路實體
80:熵解碼單元
81:預測處理單元
82:運動補償單元
84:訊框內預測處理單元
86:逆量化單元
88:逆變換處理單元
90:求和器
91:濾波器單元
92:圖片記憶體
100:系統
102:視訊源
104:編碼設備
106:編碼器引擎
108:儲存裝置
110:輸出
112:解碼設備
114:輸入
116:解碼器引擎
118:儲存裝置
120:通訊鏈路
122:視訊目的地設備
200:架構
202:訊框
204A:區塊
204B:區塊
204C:區塊
204D:區塊
210:控制處理器
212:視訊串流處理器
214:處理管道
216:處理管道
218:處理管道
220:處理管道
222:介面
230:直接記憶體存取子系統
232:緩衝器
236:位元串流
238:經解碼的資料
240:記憶體
250:訊框
252:訊框
254:訊框
256:訊框
300:管線
302:當前訊框
304:參考訊框
310:運動估計
312:運動補償
314:圖像減法
316:前向變換和量化
318:逆變換和量化
320:求和器
322:解區塊
330:階段
332:階段
334:階段
336:階段
338:階段
340:管線
342:階段
344:階段
350:運動估計
352:運動補償
354:圖像減法
356:前向變換和量化
358:逆變換和量化
360:求和器
362:解區塊
400:解碼模式
402:訊框
404:訊框
406:訊框
408:訊框
410:訊框
412:訊框
414:訊框
416:訊框
418:訊框
420:訊框
500:程序
502:步驟
504:步驟
506:步驟
508:步驟
為了描述可以以其獲得本案內容的各種優勢和特徵的方式,將經由參考其在附圖中示出的特定實施例來呈現上述原理的更加具體的描述。理解該等附圖僅圖示本案內容的示例性實施例並且不被視為限制其範圍,經由使用附圖利用額外的特定性和細節來描述和解釋本文的原理,其中:
圖1是圖示根據本案內容的一些實例的編碼設備和解碼設備的實例的方塊圖;
圖2A和2B是圖示根據本案內容的一些實例的視訊編碼硬體引擎的示例性架構的方塊圖;
圖3A和3B是圖示根據本案內容的一些實例的由視訊編碼硬體引擎的處理管道實現的操作的示例性管線的示意圖;
圖4是圖示根據本案內容的一些實例的針對用於高效視訊解碼的修改的管線的示例性解碼模式的示意圖;
圖5是圖示根據本案內容的一些實例的用於高效視訊解碼的示例性程序的流程圖;
圖6是圖示根據本案內容的一些實例的示例性編碼設備的方塊圖;及
圖7是圖示根據本案內容的一些實例的示例性視訊解碼設備的方塊圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
342:階段
344:階段
350:運動估計
352:運動補償
356:前向變換和量化
358:逆變換和量化
362:解區塊
400:解碼模式
402:訊框
404:訊框
406:訊框
408:訊框
410:訊框
412:訊框
414:訊框
416:訊框
418:訊框
420:訊框
Claims (35)
- 一種用於處理視訊資料的裝置,該裝置包括: 記憶體;及 耦合到該記憶體的一或多個處理器,該一或多個處理器被配置為: 在以一第一訊框速率實現的一第一視訊解碼階段期間,決定針對一訊框序列中的一第一訊框子集的第一運動向量; 在以高於該第一訊框速率的一第二訊框速率實現的一第二視訊解碼階段期間,決定針對該訊框序列中的一第二訊框子集的第二運動向量,其中該第二運動向量的至少一部分是基於來自該第一運動向量的一或多個運動向量來計算的; 在該第二視訊解碼階段期間,使用該第一運動向量來重構該第一訊框子集;及 在該第二視訊解碼階段期間,使用該第二運動向量來重構該第二訊框子集,其中該第一視訊解碼階段和該第二視訊解碼階段是至少部分並列地實現的。
- 如請求項1所述之裝置,其中來自該第二運動向量的至少該部分的每個運動向量是基於來自該第一訊框子集的一選定訊框的一單獨運動向量以及在該選定訊框與跟每個運動向量相關聯的一特定訊框之間的一時間距離來計算的。
- 如請求項1所述之裝置,其中為了估計該第一運動向量,該一或多個處理器被配置為: 針對該第一訊框子集中的一訊框,將該訊框的一或多個區塊與來自該訊框序列的一參考訊框中的複數個區塊進行比較; 基於在該訊框的該一或多個區塊與在該參考訊框中的該複數個區塊之每一者區塊之間的相應圖元差,來根據該複數個區塊決定一預測區塊;及 將該訊框的該一或多個區塊的一第一位置與跟該參考訊框相關聯的該預測區塊的一第二位置進行比較。
- 如請求項1所述之裝置,其中該第二運動向量中的一或多個運動向量是基於該第二運動向量的一或多個額外運動向量,以及在與該一或多個運動向量相關聯的一或多個訊框和與該一或多個額外運動向量相關聯的一或多個參考訊框之間的一時間距離來計算的。
- 如請求項1所述之裝置,其中該一或多個處理器被配置為: 決定用於重構該第一訊框子集和該第二訊框子集的一解碼模式,該解碼模式定義用於重構訊框的一順序以及用於決定該第一運動向量之每一者運動向量和該第二運動向量之每一者運動向量的一相應參考訊框;及 根據該解碼模式來重構該第一訊框子集和該第二訊框子集。
- 如請求項5所述之裝置,其中該解碼模式是基於訊框依賴性以及在該訊框序列中每個訊框之間的一時間距離中的至少一項的。
- 如請求項6所述之裝置,其中該訊框依賴性包括以下一要求:針對該訊框序列之每一者訊框,用於重構每個訊框的一參考訊框已經完成重構。
- 如請求項1所述之裝置,其中該一或多個處理器被配置為: 在與該第一訊框速率相關聯的每個間隔,決定來自該第一訊框子集的一訊框的一運動向量,決定來自該第二訊框子集的數個不同訊框的相應的運動向量,並且重構來自該第二訊框子集的該數個不同訊框。
- 如請求項8所述之裝置,其中該訊框的該運動向量包括該第一運動向量中的至少一個第一運動向量,並且其中該數個不同訊框是基於與該第二視訊解碼階段相關聯的該第二訊框速率的。
- 如請求項1所述之裝置,其中為了重構該第一訊框子集和該第二訊框子集,該一或多個處理器被配置為:將運動補償、一或多個變換和係數量化以及一或多個解區塊濾波器中的至少一項應用於該第一訊框子集和該第二訊框子集。
- 如請求項1所述之裝置,其中該第一視訊解碼階段和該第二視訊解碼階段是經由該裝置的一專用硬體處理管道來實現的,其中該專用硬體處理管道包括該一或多個處理器。
- 如請求項11所述之裝置,進一步包括一或多個額外專用硬體處理管道,其中該一或多個額外專用硬體處理管道中的每者被配置為針對一或多個相應訊框序列單獨地實現該第一視訊解碼階段和該第二視訊解碼階段。
- 如請求項1所述之裝置,其中該第一運動向量是使用一運動估計演算法來決定的,並且該第二運動向量是使用一內插演算法來決定的,該運動估計演算法不同於該內插演算法。
- 如請求項1所述之裝置,其中該一或多個處理器被配置為: 產生一經編碼的視訊位元串流,該經編碼的視訊位元串流包括該訊框序列。
- 如請求項14所述之裝置,其中該一或多個處理器被配置為: 發送該經編碼的視訊位元串流。
- 如請求項1所述之裝置,其中該裝置是一行動設備。
- 如請求項1所述之裝置,進一步包括一硬體視訊編碼引擎。
- 如請求項1所述之裝置,其中該第二訊框子集包括與該第一訊框子集相比較多的訊框。
- 如請求項1所述之裝置,其中該第一訊框子集和該第二訊框子集是以該第二訊框速率來重構的。
- 一種用於處理視訊資料的方法,該方法包括以下步驟: 在以一第一訊框速率實現的一第一視訊解碼階段期間,決定針對一訊框序列中的一第一訊框子集的第一運動向量; 在以高於該第一訊框速率的一第二訊框速率實現的一第二視訊解碼階段期間,決定針對該訊框序列中的一第二訊框子集的一第二運動向量,其中該第二運動向量的至少一部分是基於來自該第一運動向量的一或多個運動向量來計算的; 在該第二視訊解碼階段期間,使用該第一運動向量來重構該第一訊框子集;及 在該第二視訊解碼階段期間,使用該第二運動向量來重構該第二訊框子集,其中該第一視訊解碼階段和該第二視訊解碼階段是至少部分並列地實現的。
- 如請求項20所述之方法,其中來自該第二運動向量的至少該部分的每個運動向量是基於來自該第一訊框子集的一選定訊框的一單獨運動向量以及在該選定訊框與跟每個運動向量相關聯的一特定訊框之間的一時間距離來計算的。
- 如請求項20所述之方法,其中估計該第一運動向量之步驟包括以下步驟: 針對該第一訊框子集中的一訊框,將該訊框的一或多個區塊與來自該訊框序列的一參考訊框中的複數個區塊進行比較; 基於在該訊框的該一或多個區塊與在該參考訊框中的該複數個區塊之每一者區塊之間的相應圖元差,來根據該複數個區塊決定一預測區塊;及 將該訊框的該一或多個區塊的一第一位置與跟該參考訊框相關聯的該預測區塊的一第二位置進行比較。
- 如請求項20所述之方法,其中該第二運動向量中的一或多個運動向量是基於該第二運動向量的一或多個額外運動向量,以及在與該一或多個運動向量相關聯的一或多個訊框和與該一或多個額外運動向量相關聯的一或多個參考訊框之間的一時間距離來計算的。
- 如請求項20所述之方法,進一步包括以下步驟: 決定用於重構該第一訊框子集和該第二訊框子集的一解碼模式,該解碼模式定義用於重構訊框的一順序以及用於決定該第一運動向量之每一者運動向量和該第二運動向量之每一者運動向量的一相應參考訊框;及 根據該解碼模式來重構該第一訊框子集和該第二訊框子集。
- 如請求項24所述之方法,其中該解碼模式是基於訊框依賴性以及在該訊框序列中每個訊框之間的一時間距離中的至少一項的。
- 如請求項25所述之方法,其中該訊框依賴性包括以下一要求:針對該訊框序列之每一者訊框,用於重構每個訊框的一參考訊框已經完成重構。
- 如請求項20所述之方法,進一步包括以下步驟: 在與該第一訊框速率相關聯的每個間隔,決定來自該第一訊框子集的一訊框的一運動向量,決定來自該第二訊框子集的數個不同訊框的相應的運動向量,並且重構來自該第二訊框子集的該數個不同訊框,其中該訊框的該運動向量包括該第一運動向量中的至少一個第一運動向量,並且其中該數個不同訊框是基於與該第二視訊解碼階段相關聯的該第二訊框速率的。
- 如請求項20所述之方法,其中重構該第一訊框子集和該第二訊框子集包括:將運動補償、一或多個變換和係數量化以及一或多個解區塊濾波器中的至少一項應用於該第一訊框子集和該第二訊框子集。
- 如請求項20所述之方法,其中該第一視訊解碼階段和該第二視訊解碼階段是經由一專用硬體處理管道來實現的,其中該專用硬體處理管道包括一或多個處理器。
- 如請求項29所述之方法,進一步包括以下步驟:經由一或多個額外專用硬體處理管道,針對一或多個相應訊框序列單獨地實現該第一視訊解碼階段和該第二視訊解碼階段。
- 如請求項20所述之方法,其中該第一運動向量是使用一運動估計演算法來決定的,並且該第二運動向量是使用一內插演算法來決定的,該運動估計演算法不同於該內插演算法。
- 如請求項20所述之方法,進一步包括以下步驟: 產生一經編碼的視訊位元串流,該經編碼的視訊位元串流包括該訊框序列;及 發送該經編碼的視訊位元串流。
- 如請求項20所述之方法,其中該第二訊框子集包括與該第一訊框子集相比較多的訊框。
- 如請求項20所述之方法,其中該第一訊框子集和該第二訊框子集是以該第二訊框速率來重構的。
- 一種具有儲存在其上的指令的非暫態電腦可讀取媒體,該等指令在由一或多個處理器執行時使得該一或多個處理器進行以下操作: 在以一第一訊框速率實現的一第一視訊解碼階段期間,決定針對一訊框序列中的一第一訊框子集的第一運動向量; 在以高於該第一訊框速率的一第二訊框速率實現的一第二視訊解碼階段期間,決定針對該訊框序列中的一第二訊框子集的第二運動向量,其中該第二運動向量的至少一部分是基於來自該第一運動向量的一或多個運動向量來計算的; 在該第二視訊解碼階段期間,使用該第一運動向量來重構該第一訊框子集;及 在該第二視訊解碼階段期間,使用該第二運動向量來重構該第二訊框子集,其中該第一視訊解碼階段和該第二視訊解碼階段是至少部分並列地實現的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/187,132 US20220279204A1 (en) | 2021-02-26 | 2021-02-26 | Efficient video encoder architecture |
US17/187,132 | 2021-02-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202236852A true TW202236852A (zh) | 2022-09-16 |
Family
ID=80623662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111104744A TW202236852A (zh) | 2021-02-26 | 2022-02-09 | 高效視訊編碼器架構 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220279204A1 (zh) |
EP (1) | EP4298794A1 (zh) |
KR (1) | KR20230150284A (zh) |
CN (1) | CN116897536A (zh) |
TW (1) | TW202236852A (zh) |
WO (1) | WO2022182515A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11150895B1 (en) * | 2019-07-26 | 2021-10-19 | Stripe, Inc. | Automatically deploying artifacts |
WO2023028965A1 (en) * | 2021-09-02 | 2023-03-09 | Nvidia Corporation | Hardware codec accelerators for high-performance video encoding |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6957350B1 (en) * | 1996-01-30 | 2005-10-18 | Dolby Laboratories Licensing Corporation | Encrypted and watermarked temporal and resolution layering in advanced television |
US6101276A (en) * | 1996-06-21 | 2000-08-08 | Compaq Computer Corporation | Method and apparatus for performing two pass quality video compression through pipelining and buffer management |
US6999514B2 (en) * | 2001-10-26 | 2006-02-14 | Selliah Rathnam | Motion compensation with subblock scanning |
US7403660B2 (en) * | 2003-04-30 | 2008-07-22 | Nokia Corporation | Encoding picture arrangement parameter in picture bitstream |
US7869503B2 (en) * | 2004-02-06 | 2011-01-11 | Apple Inc. | Rate and quality controller for H.264/AVC video coder and scene analyzer therefor |
EP1574995A1 (en) * | 2004-03-12 | 2005-09-14 | Thomson Licensing S.A. | Method for encoding interlaced digital video data |
KR100587561B1 (ko) * | 2004-04-08 | 2006-06-08 | 삼성전자주식회사 | 모션 스케일러빌리티를 구현하는 방법 및 장치 |
KR100664929B1 (ko) * | 2004-10-21 | 2007-01-04 | 삼성전자주식회사 | 다 계층 기반의 비디오 코더에서 모션 벡터를 효율적으로압축하는 방법 및 장치 |
US7929599B2 (en) * | 2006-02-24 | 2011-04-19 | Microsoft Corporation | Accelerated video encoding |
WO2010043773A1 (en) * | 2008-10-17 | 2010-04-22 | Nokia Corporation | Sharing of motion vector in 3d video coding |
US10165286B2 (en) * | 2009-07-08 | 2018-12-25 | Dejero Labs Inc. | System and method for automatic encoder adjustment based on transport data |
US9288501B2 (en) * | 2011-03-08 | 2016-03-15 | Qualcomm Incorporated | Motion vector predictors (MVPs) for bi-predictive inter mode in video coding |
JP5950541B2 (ja) * | 2011-11-07 | 2016-07-13 | キヤノン株式会社 | 動きベクトル符号化装置、動きベクトル符号化方法及びプログラム、動きベクトル復号装置、動きベクトル復号方法及びプログラム |
CN104756498B (zh) * | 2012-09-21 | 2019-04-23 | 英特尔公司 | 跨层运动向量预测 |
US10432946B2 (en) * | 2014-12-23 | 2019-10-01 | Apple Inc. | De-juddering techniques for coded video |
WO2018143268A1 (ja) * | 2017-02-03 | 2018-08-09 | ソニー株式会社 | 送信装置、送信方法、受信装置および受信方法 |
US11178406B2 (en) * | 2017-09-29 | 2021-11-16 | Nikon Corporation | Video compression apparatus, electronic apparatus, and video compression program |
US11582475B2 (en) * | 2019-09-24 | 2023-02-14 | Qualcomm Incorporated | History-based motion vector prediction |
-
2021
- 2021-02-26 US US17/187,132 patent/US20220279204A1/en active Pending
-
2022
- 2022-02-08 EP EP22707285.7A patent/EP4298794A1/en active Pending
- 2022-02-08 CN CN202280016032.3A patent/CN116897536A/zh active Pending
- 2022-02-08 KR KR1020237028385A patent/KR20230150284A/ko unknown
- 2022-02-08 WO PCT/US2022/015702 patent/WO2022182515A1/en active Application Filing
- 2022-02-09 TW TW111104744A patent/TW202236852A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
EP4298794A1 (en) | 2024-01-03 |
CN116897536A (zh) | 2023-10-17 |
KR20230150284A (ko) | 2023-10-30 |
WO2022182515A1 (en) | 2022-09-01 |
US20220279204A1 (en) | 2022-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7342115B2 (ja) | 履歴ベースの動きベクトル予測子の改善 | |
US11218694B2 (en) | Adaptive multiple transform coding | |
US11140408B2 (en) | Affine motion prediction | |
TWI848166B (zh) | 用於產生縮放比例和完整解析度圖片的系統和方法 | |
JP7513641B2 (ja) | 切替え可能フィルタを用いる参照ピクチャリサンプリング | |
JP2022548650A (ja) | 履歴ベースの動きベクトル予測 | |
TW202042552A (zh) | 用於照明補償之區塊大小限制 | |
TW202203650A (zh) | 解碼圖片緩衝器(dpb)操作和存取單元定界符(aud) | |
TW202308389A (zh) | 用於解碼器側運動向量細化的自我調整雙邊匹配 | |
TW202315409A (zh) | 運動向量(mv)候選重新排序 | |
TW202236852A (zh) | 高效視訊編碼器架構 | |
TW202226836A (zh) | 重疊區塊運動補償 | |
TW202236848A (zh) | 使用增強內插濾波器的訊框內預測 | |
TW202316855A (zh) | 梯度長條圖的產生 | |
CN118216139A (zh) | 梯度直方图生成 |