TW202415069A - 具有動態雜訊重構的視訊解碼的系統和方法 - Google Patents
具有動態雜訊重構的視訊解碼的系統和方法 Download PDFInfo
- Publication number
- TW202415069A TW202415069A TW112127933A TW112127933A TW202415069A TW 202415069 A TW202415069 A TW 202415069A TW 112127933 A TW112127933 A TW 112127933A TW 112127933 A TW112127933 A TW 112127933A TW 202415069 A TW202415069 A TW 202415069A
- Authority
- TW
- Taiwan
- Prior art keywords
- noise
- data
- video
- pixel
- pixel data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 153
- 239000002245 particle Substances 0.000 claims description 229
- 238000002156 mixing Methods 0.000 claims description 143
- 238000004891 communication Methods 0.000 claims description 40
- 230000033001 locomotion Effects 0.000 description 96
- 239000013598 vector Substances 0.000 description 51
- 239000010410 layer Substances 0.000 description 50
- 238000003860 storage Methods 0.000 description 49
- 238000010586 diagram Methods 0.000 description 32
- 230000008569 process Effects 0.000 description 29
- 241000023320 Luma <angiosperm> Species 0.000 description 27
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 27
- 230000008054 signal transmission Effects 0.000 description 21
- 230000006870 function Effects 0.000 description 20
- 238000005192 partition Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 17
- 239000000203 mixture Substances 0.000 description 14
- 238000000638 solvent extraction Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 9
- 238000013139 quantization Methods 0.000 description 9
- 230000002457 bidirectional effect Effects 0.000 description 8
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 230000011218 segmentation Effects 0.000 description 8
- 230000002123 temporal effect Effects 0.000 description 8
- 238000013500 data storage Methods 0.000 description 7
- 239000008187 granular material Substances 0.000 description 7
- 238000003491 array Methods 0.000 description 6
- 230000006872 improvement Effects 0.000 description 6
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 3
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 208000019300 CLIPPERS Diseases 0.000 description 1
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 208000021930 chronic lymphocytic inflammation with pontine perivascular enhancement responsive to steroids Diseases 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Abstract
描述了用於解碼的系統和方法。解碼器系統被配置為從儲存在片上記憶體內的顆粒陣列取回與至少一個重構視訊圖元相關聯的雜訊圖元資料。解碼器系統被配置為將雜訊資料應用於至少一個重構視訊圖元以產生至少一個輸出視訊圖元。雜訊資料基於雜訊圖元資料來決定。
Description
本案係關於視訊解碼和解壓縮。更具體地,本案係關於執行視訊解碼的系統和方法,其中膠片顆粒或另一類型的雜訊被動態地重構並添加到解碼視訊中。
數位視訊能力能夠被合併到廣泛範圍的設備中,該等設備包括數位電視、數位直接廣播系統、無線廣播系統、個人數位助理(PDA)、膝上型或桌上型電腦、平板電腦、電子書閱讀器、數碼相機、數位記錄設備、數位媒體播放機、視訊遊戲裝置、蜂巢式或衛星無線電電話、行動電話(例如,所謂的「智慧型電話」)、視訊電話會議設備、視訊資料串流設備等。此類設備允許視訊資料被處理和輸出以供消費。數位視訊資料包括大量資料以滿足消費者和視訊提供者的需求。例如,視訊資料的消費者期望高保真度、解析度、畫面播放速率等態樣具有最高品質的視訊。滿足該等需求所需的大量視訊資料給處理和儲存視訊資料的通訊網路和設備帶來負擔。
數位視訊設備能夠實現視訊譯碼技術以壓縮視訊資料。能夠根據一或多個視訊轉碼器及/或譯碼格式來執行視訊譯碼。例如,視訊轉碼器及/或譯碼格式包括通用視訊譯碼(VVC)、基本視訊譯碼(EVC)、高效視訊譯碼(HEVC)、VP8、VP9、高級視訊譯碼(AVC)、MPEG-2第2部分譯碼(MPEG代表運動圖像專家組)等,以及專有視訊轉碼器/格式,諸如由開放媒體聯盟和SMPTE 421(亦稱為VC-1)開發的AOMedia視訊1(AV1)等。視訊譯碼通常採用利用視訊影像或序列中存在的冗餘的預測方法(例如,訊框間預測、訊框內預測等)。視訊譯碼技術的目標是將視訊資料壓縮成使用較低位元速率的形式,同時避免或最小化視訊品質的降級。視訊解碼技術的目標是從壓縮視訊資料儘可能接近地重構原始視訊資料。隨著不斷進化的視訊服務變得可用,需要具有改進的譯碼和解碼效率的譯碼和解碼技術。
在一些情況下,視訊可以包括膠片顆粒或其他類型的雜訊。膠片顆粒能夠在視訊中提供期望的美學效果,並且能夠期望經由編碼和解碼處理來保留膠片顆粒。然而,在一些視訊轉碼器/格式中,膠片顆粒會在編碼和解碼程序中丟失或降級。此外,在一些視訊轉碼器/格式中,膠片顆粒或其他類型的雜訊的隨機效能夠使得難以像沒有膠片顆粒的類似視訊一般多地壓縮具有膠片顆粒的視訊。
描述了用於視訊解碼的系統和技術,例如涉及由解碼器重構並動態添加到解碼視訊中的膠片顆粒或另一種類型的雜訊。在一些實例中,解碼器產生與被劃分為塊的編碼視訊訊框相對應的顆粒陣列。解碼器產生編碼視訊訊框的塊的隨機偏移。解碼器基於雜訊影像中的雜訊圖元資料的位置與編碼視訊訊框中的塊的位置的比較,根據隨機偏移從顆粒陣列取回雜訊圖元資料。解碼器混合雜訊影像中的雜訊圖元資料的一部分以產生雜訊圖元資料的混合部分。該雜訊圖元資料的一部分位於雜訊影像中與編碼視訊訊框的複數個塊中的塊之間的邊界相對應的位置處。解碼器至少將雜訊圖元資料的混合部分添加到重構視訊訊框資料以產生輸出視訊訊框資料,重構視訊訊框資料基於編碼視訊訊框產生。
在一個實例中,提供一種用於視訊解碼的裝置。該裝置包括至少一個記憶體和耦接到記憶體的至少一個處理器(例如,在電路中實現)。至少一個處理器包括儲存顆粒陣列的片上記憶體。至少一個處理器被配置為並且能夠:從儲存在片上記憶體內的顆粒陣列取回與至少一個重構視訊圖元相關聯的雜訊圖元資料;及將雜訊資料應用於至少一個重構視訊圖元以產生至少一個輸出視訊圖元,其中雜訊資料基於雜訊圖元資料來決定。
在另一實例中,提供一種視訊解碼的方法。該方法包括:從儲存在作為處理器的一部分的片上記憶體內的顆粒陣列取回與至少一個重構視訊圖元相關聯的雜訊圖元資料;及將雜訊資料應用於至少一個重構視訊圖元以產生至少一個輸出視訊圖元,其中雜訊資料基於雜訊圖元資料來決定。
在另一實例中,提供一種其上儲存有指令的非暫時性電腦可讀取媒體,該等指令在由具有片上記憶體的至少一個處理器執行時使至少一個處理器:從儲存在片上記憶體內的顆粒陣列取回與至少一個重構視訊圖元相關聯的雜訊圖元資料;及將雜訊資料應用於至少一個重構視訊圖元以產生至少一個輸出視訊圖元,其中雜訊資料基於雜訊圖元資料來決定。
在另一實例中,提供一種用於視訊解碼的裝置。該裝置包括:用於從儲存在作為處理器的一部分的片上記憶體內的顆粒陣列取回與至少一個重構視訊圖元相關聯的雜訊圖元資料的部件;及用於將雜訊資料應用於至少一個重構視訊圖元以產生至少一個輸出視訊圖元的部件,其中雜訊資料基於雜訊圖元資料來決定。
在一些態樣,以上所述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:從儲存在片上記憶體內的顆粒陣列取回次級雜訊圖元資料,次級雜訊圖元資料與至少一個重構視訊圖元相關聯,其中雜訊資料基於雜訊圖元資料和次級雜訊圖元資料來決定。在一些態樣,以上描述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:混合雜訊圖元資料和次級雜訊圖元資料以決定雜訊資料,其中視訊訊框中的至少一個重構視訊圖元的至少一個位置對應於視訊訊框的複數個塊被排列為重疊的重疊區域。
在一些態樣,上述方法、裝置和電腦可讀取媒體中的一或多個亦包括:使用顆粒參數產生顆粒陣列,顆粒參數基於視訊資料來決定,其中至少一個重構視訊圖元被配置為重構視訊資料的圖元。在一些態樣,以上描述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:將顆粒陣列儲存在片上記憶體中。
在一些態樣,以上所述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:基於偏移來辨識顆粒陣列中的雜訊圖元資料的位置,以取回雜訊圖元資料,其中偏移對應於至少一個重構視訊圖元是其一部分的塊。在一些態樣,偏移基於隨機產生的值來決定。在一些態樣,偏移基於視訊訊框的訊框大小來決定,其中至少一個重構視訊圖元被配置為重構視訊訊框的至少一個圖元。在一些態樣,塊基於訊框大小。
在一些態樣,以上所述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:在基於次級雜訊圖元資料決定次級雜訊資料的同時,將雜訊資料應用於至少一個重構視訊圖元,次級雜訊圖元資料從儲存在片上記憶體內的顆粒陣列取回,次級雜訊圖元資料與至少第二重構視訊圖元相關聯。在一些態樣,以上所述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:在從儲存在片上記憶體內的顆粒陣列取回與至少第二重構視訊圖元相關聯的次級雜訊圖元資料的同時,將雜訊資料應用於至少一個重構視訊圖元。在一些態樣,上述方法、裝置和電腦可讀取媒體中的一或多個亦包括:在從儲存在片上記憶體內的顆粒陣列取回與至少第二重構視訊圖元相關聯的次級雜訊圖元資料的同時,決定雜訊圖元資料。
在一些態樣,雜訊圖元資料被配置為在逐圖元基礎上從儲存在片上記憶體內的顆粒陣列取回。在一些態樣,雜訊資料被配置為在逐圖元基礎上基於雜訊圖元資料來決定。在一些態樣,雜訊資料被配置為在逐圖元基礎上應用於至少一個重構視訊圖元。
在一些態樣,顆粒陣列是明度顆粒陣列,並且其中雜訊圖元資料包括明度雜訊圖元資料。在一些態樣,顆粒陣列是色度顆粒陣列,並且其中雜訊圖元資料包括色度雜訊圖元資料。
在一些態樣,以上所述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:將縮放因數應用於至少一個輸出視訊圖元。在一些態樣,以上所述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:對至少一個輸出視訊圖元的圖元值進行捨入。在一些態樣,以上所述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:限幅至少一個輸出視訊圖元的圖元值。
在一些態樣,至少一個記憶體被配置為儲存至少一個重構視訊圖元。在一些態樣,以上所述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:輸出至少一個輸出視訊圖元以供儲存在至少一個記憶體中。在一些態樣,以上所述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:顯示器,被配置為顯示至少一個輸出視訊圖元。在一些態樣,以上所述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:通訊介面,被配置為將至少一個輸出視訊圖元發送到接收方設備。
在一些態樣,以上所述的方法、設備和電腦可讀取媒體中的一或多個亦包括:對視訊資料進行編碼以產生編碼視訊資料;及對至少編碼視訊資料進行解碼以產生至少一個重構視訊圖元。
在一些態樣,裝置是可穿戴設備、擴展現實設備(例如,虛擬實境(VR)設備、增強現實(AR)設備或混合現實(MR)設備)、頭戴式顯示器(HMD)設備、無線通訊設備、行動設備(例如,行動電話及/或移動手持機及/或所謂的"智慧型電話"或其他行動設備)、相機、個人電腦、膝上型電腦、伺服器電腦、車輛或車輛的計算設備或部件、另一設備或其組合的一部分及/或該裝置包括上述項。在一些態樣,該裝置包括用於擷取一或多個影像的相機或多個相機。在一些態樣,該裝置亦包括用於顯示一或多個影像、通知及/或其他可顯示資料的顯示器。在一些態樣,以上所述的裝置能夠包括一或多個感測器(例如,一或多個慣性量測單元(IMU),諸如一或多個陀螺儀、一或多個陀螺測試儀、一或多個加速度計、其任何組合及/或其他感測器)。
本發明內容不意欲辨識要求保護的主題的關鍵或必要特徵,亦不意欲單獨用於決定要求保護的主題的範疇。應該經由參考本專利的整個說明書的適當部分、任何或所有附圖以及每個請求項來理解主題。
經由參考以下說明書、申請專利範圍和附圖,前述內容以及其他特徵和態樣將變得更加明顯。
下文提供了本案的某些態樣。這些態樣中的一些態樣可以獨立地應用,並且它們中的一些態樣可以組合應用,這對於本發明所屬領域中具有通常知識者來說是清楚的。在以下描述中,出於解釋的目的,闡述了特定細節以便提供對本案的各態樣的透徹理解。然而,將清楚的是,可以影像在沒有這些特定細節的情況下實踐各個態樣。附圖和描述不意欲是限制性的。
隨後的描述僅提供實例態樣,並不預期限制本發明的範疇、適用性或配置。相反,實例態樣的隨後描述將為本發明所屬領域中具有通常知識者提供用於實現實例態樣的使能描述。應該理解,在不脫離所附請求項中闡述的本案的精神和範疇的情況下,可以對元件的功能和排列進行各種改變。
相機是使用影像感測器接收光並擷取影像訊框(諸如靜止影像或視訊訊框)的設備。術語「影像」、「影像訊框」和「訊框」在本文中可互換使用。相機能夠配置有各種影像擷取和影像處理設置。不同的設置導致具有不同外觀的影像。在擷取一或多個影像訊框之前或期間決定並應用一些相機設置,諸如ISO、曝光時間、光圈大小、f/stop、快門速度、焦點和增益。例如,能夠將設置或參數應用於影像感測器以擷取一或多個影像訊框。其他相機設置能夠配置一或多個影像訊框的後處理,諸如對對比度、亮度、飽和度、銳度、水平、曲線或顏色的變更。例如,能夠將設置或參數應用於處理器(例如,影像訊號處理器或ISP)以用於處理由影像感測器擷取的一或多個影像訊框。
視訊譯碼設備實施視訊壓縮技術以有效地編碼和解碼視訊資料。視訊壓縮技術可以包括應用不同預測模式,包括空間預測(例如,訊框內預測或內預測)、時間預測(例如,訊框間預測或間預測)、層間預測(跨越視訊資料的不同層)及/或用於減少或移除視訊序列中固有的冗餘的其他預測技術。視訊轉碼器能夠將原始視訊序列的每個圖片分割為被稱為視訊塊或譯碼單元(以下更詳細地描述)的矩形區域。可以使用特定預測模式來編碼這些視訊塊。
可以以一或多個方式將視訊塊劃分為一組或多組較小塊。塊能夠包括譯碼樹塊、預測塊、變換塊或其他合適的塊。除非另外指定,否則大體上對「塊」的引用可以指這種視訊塊(例如,如本發明所屬領域中具有通常知識者將理解,譯碼樹塊、譯碼塊、預測塊、變換塊或其他適當塊或子塊)。此外,這些塊中的每一個在本文中亦可以互換地被稱為「單元」(例如,譯碼樹單元(CTU)、譯碼單元、預測單元(PU)、變換單元(TU)等等)。在一些情況下,單元可以指示在位元串流中編碼的譯碼邏輯單元,而塊可以指示程序所針對的視訊訊框緩衝器的一部分。
在一些情況下,視訊可以包括膠片顆粒或其他類型的雜訊。膠片顆粒能夠在視訊中提供期望的美學效果,並且能夠期望經由編碼和解碼程序來保留膠片顆粒。然而,在一些視訊轉碼器/格式中,膠片顆粒會在編碼和解碼程序中丟失或降級。此外,在一些視訊轉碼器/格式中,膠片顆粒或其他類型的雜訊的隨機性會使得難以像沒有膠片顆粒的類似視訊那樣多地壓縮具有膠片顆粒的視訊。
描述了用於視訊解碼的系統和技術,例如涉及膠片顆粒或由解碼器重構並動態添加到解碼視訊中的另一種類型的雜訊。在一些實例中,解碼器產生與被劃分為塊的編碼視訊訊框相對應的顆粒陣列。解碼器產生編碼視訊訊框的塊的隨機偏移。解碼器基於雜訊影像中的雜訊圖元資料的位置與編碼視訊訊框中的塊的位置的比較,根據隨機偏移從顆粒陣列取回雜訊圖元資料。解碼器混合雜訊影像中的雜訊圖元資料的一部分以產生雜訊圖元資料的混合部分。雜訊圖元資料的該一部分位於雜訊影像中與編碼視訊訊框的複數個塊中的塊之間的邊界相對應的位置處。解碼器至少將雜訊圖元資料的混合部分添加到重構視訊訊框資料以產生輸出視訊訊框資料,其中重構視訊訊框資料基於編碼視訊訊框來產生。
本文描述的轉碼器系統和技術提供優於現有轉碼器系統的許多技術改進。例如,本文描述的轉碼器系統和技術允許重構解碼視訊中的膠片顆粒或其他類型的雜訊,從而提供優於其中膠片顆粒會在編碼及/或解碼程序中丟失或降級的轉碼器系統的改進。本文描述的轉碼器系統和技術允許視訊比其他轉碼器系統更多地被壓縮。例如,經由在對視訊進行編碼之前濾除雜訊,基於被濾除的雜訊來產生顆粒參數,基於顆粒參數來重構雜訊,並將重構雜訊添加回解碼視訊中,與試圖在編碼期間保留膠片顆粒的轉碼器系統相比,本文描述的轉碼器系統和技術能夠更重地壓縮編碼視訊,並且仍然重構膠片顆粒。與試圖在編碼期間保持膠片顆粒的轉碼器系統相比,這種增加的壓縮能夠對應於降低的位元速率(在說明性實例中,降低大約50%)。本文描述的轉碼器系統和技術經由允許膠片顆粒的重構和添加動態地發生(例如,在逐圖元基礎上)來提高膠片顆粒的重構和添加的效率,從而提高優於在將膠片顆粒資料添加到解碼的視訊之前等待膠片顆粒資料的整個訊框被重構的轉碼器的效率。在一些實例中,本文描述的轉碼器系統和技術的動態膠片顆粒重構能夠提供778百萬位元組每秒(MBps)(給定1080p解析度和120訊框每秒(fps)畫面播放速率)到12,458MBps(給定8K解析度和120fps畫面播放速率)的頻寬節省。在一些實例中,本文描述的轉碼器系統和技術的動態膠片顆粒重構能夠減少在解碼期間使用的記憶體讀取和寫入週期,並且因此提高解碼串流的速度,尤其是針對較高位元速率的串流。在一些實例中,本文描述的針對轉碼器系統和技術的速度和效率改進提供針對低時延用例(諸如,擴展現實(XR)(例如,虛擬實境(VR)、增強現實(AR)及/或混合現實(MR)))的改進可用性。
將參考附圖描述本案的各個態樣。圖1是示出包括編碼設備104和解碼設備112的系統100的實例的方塊圖。編碼設備104可以是源設備的一部分,並且解碼設備112可以是接收設備的一部分。源設備及/或接收設備可以包括電子設備,諸如行動或固定電話手持機(例如,智慧型電話、蜂巢式電話等等)、桌上型電腦、膝上型或筆記型電腦、平板電腦、機上盒、電視、相機、顯示裝置、數位媒體播放機、視訊遊戲控制台、視訊資料串流設備、網際網路協定(IP)相機或任何其他合適的電子設備。在一些實例中,源設備和接收設備可以包括用於無線通訊的一或多個無線收發器。本文描述的譯碼技術適用於各種多媒體應用中的視訊譯碼,包括流式視訊傳輸(例如,經由網際網路)、電視廣播或傳輸、數位視訊的編碼以供儲存在資料儲存媒體上、儲存在資料儲存媒體上的數位視訊的解碼,或其他應用。在一些實例中,系統100能夠支援單向或雙向視訊傳輸以支援諸如視訊會議、視訊資料串流、視訊播放、視訊廣播、遊戲及/或視訊電話的應用。
編碼設備104(或編碼器)能夠用於使用視訊譯碼標準或協定來編碼視訊資料以產生編碼視訊位元串流。視訊譯碼標準的實例包括ITU-TH.261、ISO/IEC MPEG-1 Visual、ITU-TH.262或ISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、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-TVCEG亦已經形成聯合探索視訊小組(JVET)以探索用於下一代視訊譯碼標準(稱為通用視訊編碼(VVC))的新譯碼工具。參考軟體被稱為VVC測試模型(VTM)(或JEM(聯合探索模型))。VVC的目標是提供優於現有HEVC標準的壓縮效能的顯著改進,從而説明部署更高品質的視訊服務和新興應用(例如,諸如360°全向沉浸式多媒體、高動態範圍(HDR)視訊等等)。VP9、開放媒體聯盟(AOMedia)視訊1(AV1)和基本視訊譯碼(EVC)是能夠應用本文描述的技術的其他視訊轉碼器及/或譯碼格式。
本文描述的技術能夠應用於現有視訊轉碼器(例如,高效視訊譯碼(HEVC)、高級視訊譯碼(AVC)或其他合適的現有視訊轉碼器)中的任一個,及/或能夠是用於正開發的任何視訊譯碼標準及/或未來視訊譯碼標準(諸如,例如VVC及/或開發中或待開發的其他視訊譯碼標準)的高效譯碼工具。例如,能夠使用諸如VVC、HEVC、AVC及/或其擴展的視訊轉碼器來執行本文描述的實例。然而,本文描述的技術和系統亦可以適用於其他譯碼標準,諸如MPEG、JPEG(或用於靜止影像的其他譯碼標準)、VP9、AV1、其擴展,或已經可用或尚未可用或尚未開發的其他合適轉碼器及/或譯碼格式。因此,儘管可以參考特定視訊譯碼標準描述本文描述的技術和系統,但本發明所屬領域中具有通常知識者將認識到,描述不應解釋為僅適用於特定標準。
本文描述的許多實施例提供使用JEM模型、VVC、HEVC標準及/或其擴展的實例。然而,本文描述的技術和系統亦可以適用於其他譯碼標準,諸如AVC、MPEG、JPEG(或用於靜止影像的其他譯碼標準)、其擴展或已經可用或尚未可用或尚未開發的其他合適譯碼標準。因此,儘管可以參考特定視訊譯碼標準描述本文描述的技術和系統,但本發明所屬領域中具有通常知識者將認識到,描述不應解釋為僅適用於特定標準。
參考圖1,視訊源102可以將視訊資料提供給編碼設備104。視訊源102可以是源設備的一部分,或可以是除了源設備之外的設備的一部分。視訊源102可以包括視訊擷取裝置(例如,視訊相機、相機電話、視訊電話等等)、包含儲存視訊的視訊存檔、提供視訊資料的視訊伺服器或內容提供者、從視訊伺服器或內容提供者接收視訊的視訊饋入介面、用於產生電腦圖形視訊資料的電腦圖形系統、這種源的組合或任何其他合適的視訊源。
來自視訊源102的視訊資料可以包括一或多個輸入圖片或訊框。圖片或訊框是靜止影像,其在一些情況下是視訊的一部分。在一些實例中,來自視訊源102的資料可以是並非視訊的一部分的靜止影像。在HEVC、VVC和其他視訊譯碼規範中,視訊序列可以包括一系列圖片。圖片可以包括三個取樣陣列,表示為S
L、S
Cb和S
Cr。S
L是明度取樣的二維陣列,S
Cb是Cb色度取樣的二維陣列,並且S
Cr是Cr色度取樣的二維陣列。色度取樣在本文中亦可以被稱為「色度」取樣。圖元能夠指圖片陣列中的給定位置的所有三個分量(明度和色度取樣)。在其他情況下,圖片可以是單色的並且可以僅包括明度取樣陣列,在這種情況下,術語圖元和取樣能夠可互換地使用。關於本文描述的出於說明性目的參考個別取樣的實例技術,相同技術能夠應用於圖元(例如,圖片陣列中的給定位置的所有三個取樣分量)。關於本文描述的出於說明性目的參考圖元(例如,圖片陣列中的給定位置的所有三個取樣分量)的實例技術,相同技術能夠應用於個別取樣。
HEVC標準中存在兩類網路抽象層(NAL)單元,包括視訊譯碼層(VCL)NAL單元和非VCL NAL單元。VCL NAL單元包括譯碼圖片資料的一個切片或切片區段(以下所述),並且非VCL NAL單元包括與一或多個譯碼圖片相關的控制資訊。在一些情況下,NAL單元能夠被稱為包(packet)。HEVC AU包括包含譯碼圖片資料的VCL NAL單元和對應於譯碼圖片資料的非VCL NAL單元(若存在)。
NAL單元可以包含形成視訊資料的譯碼表示的位元序列(例如,編碼視訊位元串流、位元串流的CVS等等),諸如視訊中的圖片的譯碼表示。編碼器引擎106經由將每個圖片分割為多個切片來產生圖片的譯碼表示。切片獨立於其他切片,使得切片中的資訊在不依賴於來自相同圖片內的其他切片的資料的情況下被譯碼。切片包括一或多個切片區段,其包括獨立切片區段和(若存在)取決於先前切片區段的一或多個依賴切片區段。
在HEVC中,隨後將切片分割為明度取樣和色度取樣的譯碼樹型塊(CTB)。明度取樣的CTB和色度取樣的一或多個CTB連同取樣的語法被稱為譯碼樹單元(CTU)。CTU亦可以被稱為「樹塊」或「最大譯碼單元」(LCU)。CTU是HEVC編碼的基本處理單元。CTU能夠分裂為不同大小的多個譯碼單元(CU)。CU包含被稱為譯碼塊(CB)的明度和色度取樣陣列。
明度和色度CB能夠進一步分裂為預測塊。PB是明度分量或色度分量的取樣塊,其使用相同運動參數用於訊框間預測或訊框內塊複製(IBC)預測(當可用或被啟用以供使用時)。明度PB和一或多個色度PB連同相關聯語法形成預測單元(PU)。對於訊框間預測,在每個的PU的位元串流中用訊號傳遞傳送運動參數集合(例如,一或多個運動向量、參考索引等等),並且運動參數集合用於明度PB和一或多個色度PB的訊框間預測。運動參數亦能夠被稱為運動資訊。CB亦能夠被分割為一或多個變換塊(TB)。TB表示對其應用殘差變換(例如,在一些情況下為相同二維變換)以譯碼預測殘留訊號的顏色分量的取樣的正方形塊。變換單元(TU)表示明度和色度取樣的TB及對應語法元素。下文更詳細地描述變換譯碼。
CU的大小對應於譯碼模式的大小並且可以為正方形形狀。例如,CU的大小可以為8×8取樣、16×16取樣、32×32取樣、64×64取樣或高達對應CTU的大小的任何其他適當大小。短語「N×N」在本文中用於指視訊塊在豎直和水平維度態樣的圖元維度(例如,8圖元×8圖元)。塊中的圖元可以按行和列來排列。在一些實施例中,塊可以不在水平方向上與在豎直方向上具有相同數量的圖元。與CU相關聯的語法資料可以描述(例如)CU被分割為一或多個PU。分割模式可以在CU被訊框內預測模式編碼還是訊框間預測模式編碼之間不同。PU可以被分割為非正方形形狀。與CU相關聯的語法資料亦可以描述(例如)根據CTU將CU分割為一或多個TU。TU的形狀能夠為正方形或非正方形。
根據HEVC標準,可以使用變換單元(TU)來執行變換。TU可以針對不同CU而變化。TU可以基於給定CU內的PU的大小而定大小。TU可以與PU大小相同或小於PU。在一些實例中,可以使用被稱為殘差四叉樹(RQT)的四叉樹結構將對應於CU的殘差取樣再細分為較小單元。RQT的葉節點可以對應於TU。與TU相關聯的圖元差值可以經變換以產生變換係數。變換係數可以接著由編碼器引擎106來量化。
一旦視訊資料的圖片被分割為CU,編碼器引擎106便使用預測模式來預測每個PU。接著從原始視訊資料減去預測單元或預測塊以得到殘差(以下該)。對於每個CU,可以使用語法資料在位元串流內部用訊號傳遞傳送預測模式。預測模式可以包含訊框內預測(或圖片內預測)或訊框間預測(或圖片間預測)。訊框內預測採用圖片內的空間相鄰取樣之間的相關性。例如,關於使用訊框內預測,使用(例如)DC預測以找到PU的平均值、使用平面預測以使平面表面擬合到PU、使用方向預測以從相鄰資料外推,或使用任何其他合適類型的預測,從相同圖片中的相鄰影像資料預測每個PU。訊框間預測使用圖片之間的時間相關性以便匯出影像取樣塊的運動補償預測。例如,關於使用訊框間預測,使用運動補償預測從一或多個參考圖片(按輸出順序在當前圖片之前或之後)中的影像資料預測每個PU。可以(例如)在CU級別做出是使用圖片間預測還是圖片內預測來編碼圖片區域的決策。
編碼器引擎106和解碼器引擎116(以下更詳細地描述)可以被配置為根據VVC進行操作。根據VVC,視訊轉碼器(諸如編碼器引擎106及/或解碼器引擎116)將圖片分割為複數個譯碼樹單元(CTU)(其中明度取樣的CTB和色度取樣的一或多個CTB連同取樣的語法被稱為CTU)。視訊轉碼器能夠根據樹結構(諸如四叉樹-二叉樹(QTBT)結構或多類型樹(MTT)結構)來分割CTU。QTBT結構移除多個分區類型的概念,諸如HEVC的CU、PU與TU之間的分離。QTBT結構包括兩個級別,包括根據四叉樹分割而分割的第一級別和根據二叉樹分割分割的第二級別。QTBT結構的根節點對應於CTU。二叉樹的葉節點對應於譯碼單元(CU)。
在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種角度模式(例如,對角線訊框內預測模式和鄰近於對角線訊框內預測模式的角度模式)。訊框內預測的35種模式如下表1所示進行索引。在其他實例中,可以定義包括可能尚未由33種角度模式表示的預測角度的更多訊框內模式。在其他實例中,與角度模式相關聯的預測角度可以不同於HEVC中使用的預測角度。
表1-訊框內預測模式和相關聯名稱的規範
訊框內預測模式 | 關聯名稱 |
0 | INTRA_PLANAR |
1 | INTRA_DC |
2..34 | INTRA_ANGULAR2..INTRA_ANGULAR34 |
圖片間預測使用圖片之間的時間相關性以便匯出影像取樣塊的運動補償預測。使用平移運動模型,先前解碼圖片(參考圖片)中的塊的位置由運動向量(
,
)指示,其中
指定參考塊相對於當前塊的位置的水平位移並且
指定參考塊相對於當前塊的位置的豎直位移。在一些情況下,運動向量(
,
)能夠是整數取樣精度(亦稱為整數精度),在這種情況下,運動向量指向參考訊框的整數圖元網格(或整數圖元取樣網格)。在一些情況下,運動向量(
,
)能夠具有分數取樣精度(亦稱為分數圖元精度或非整數精度)以更準確地擷取下層對象的移動,而不限於參考訊框的整數圖元網格。運動向量的精度可以由運動向量的量化位準表示。例如,量化級別可以為整數精度(例如,1圖元)或分數圖元精度(例如,1/4圖元、1/2圖元或其他子圖元值)。當對應運動向量具有分數取樣精度時,對參考圖片應用內插以匯出預測訊號。例如,能夠對整數位置處可用的取樣進行濾波(例如,使用一或多個內插濾波器)以估計分數位置處的值。先前解碼的參考圖片由參考索引(refIdx)指示到參考圖片列表。運動向量和參考索引能夠被稱為運動參數。能夠執行兩種圖片間預測,包括單向預測和雙向預測。
利用使用雙向預測的訊框間預測,兩組運動參數(
和
)用於產生兩個運動補償預測(來自相同參考影像或可能來自不同參考影像)。例如,利用雙向預測,每個預測塊使用兩個運動補償預測訊號,並產生B預測單元。隨後組合兩個運動補償預測以得到最終的運動補償預測。例如,能夠經由平均來組合兩個運動補償預測。在另一實例中,能夠使用加權預測,在這種情況下,能夠將不同權重應用於每個運動補償預測。能夠在雙向預測中使用的參考圖片儲存在兩個單獨的列表中,表示為列表0和列表1。能夠使用運動估計程序在編碼器處匯出運動參數。
在使用單向預測進行訊框間預測的情況下,一組運動參數(
)用於從參考圖片產生運動補償預測。例如,利用單向預測,每個預測塊使用至多一個運動補償預測訊號,並產生P預測單元。
PU可以包括與預測程序相關的資料(例如,運動參數或其他合適的資料)。例如,當使用訊框內預測對PU進行編碼時,PU可以包括描述用於PU的訊框內預測模式的資料。作為另一實例,當使用訊框間預測對PU進行編碼時,PU可以包括定義PU的運動向量的資料。定義PU的運動向量的資料可以描述(例如)運動向量的水平分量(
)、運動向量的豎直分量(
)、運動向量的解析度(例如,整數精度、四分之一圖元精度或八分之一圖元精度)、運動向量指向的參考圖片、參考索引、運動向量的參考圖片列表(例如,列表0、列表1或列表C),或其任何組合。
在使用訊框內及/或訊框間預測執行預測之後,編碼設備104可以執行變換和量化。例如,在預測之後,編碼器引擎106可以計算對應於PU的殘差值。殘差值可以包括正被譯碼的圖元的當前塊(PU)與用於預測當前塊的預測塊(例如,當前塊的預測版本)之間的圖元差值。例如,在產生預測塊(例如,發出訊框間預測或訊框內預測)之後,編碼器引擎106能夠經由從當前塊減去由預測單元產生的預測塊來產生殘差塊。殘差塊包括量化當前塊的圖元值與預測塊的圖元值之間的差的一組圖元差值。在一些實例中,殘差塊可以以二維塊格式(例如,圖元值的二維矩陣或陣列)表示。在這種實例中,殘差塊為圖元值的二維表示。
使用塊變換來變換在預測被執行之後可以剩餘的任何殘差數據,塊變換可以基於離散餘弦變換、離散正弦變換、整數變換、小波變換、其他合適的變換函數或其任何組合。在一些情況下,一或多個塊變換(例如,大小32×32、16×16、8×8、4×4或其他合適大小)可以應用於每個CU中的殘差數據。在一些實施例中,TU可以用於由編碼器引擎106實施的變換和量化程序。具有一或多個PU的給定CU亦可以包括一或多個TU。如以下進一步詳細描述,可以使用塊變換將殘差值變換為變換係數,接著可以使用TU量化並掃瞄殘差值以產生串列變換係數供熵譯碼。
在一些實施例中,在使用CU的PU進行訊框內預測或訊框間預測編碼之後,編碼器引擎106可以計算CU的TU的殘差數據。PU可以包括空間域(或圖元域)中的圖元資料。TU可以包括在應用塊變換之後的變換域中的係數。如先前述,殘差數據可以對應於未編碼圖片的圖元與對應於PU的預測值之間的圖元差值。編碼器引擎106可以形成包括CU的殘差數據的TU,並且接著可以變換TU產生CU的變換係數。
編碼器引擎106可以執行變換係數的量化。量化經由量化變換係數以減少用於表示係數的資料量來提供進一步壓縮。例如,量化可以減小與係數中的一些或全部相關聯的位元深度。在一個實例中,具有n位元值的係數可以在量化期間向下捨入到m位元值,其中n大於m。
一旦量化被執行,譯碼視訊位元串流包括量化變換係數、預測資訊(例如,預測模式、運動向量、塊向量等等)、分割資訊和任何其他合適資料,諸如其他語法資料。譯碼視訊位元串流的不同元素接著可以由編碼器引擎106熵編碼。在一些實例中,編碼器引擎106可以利用預定義掃瞄順序來掃瞄量化變換係數以產生能夠被熵編碼的串列向量。在一些實例中,編碼器引擎106可以執行自我調整掃瞄。在掃瞄量化變換係數以形成向量(例如,一維向量)之後,編碼器引擎106可以對向量進行熵編碼。例如,編碼器引擎106可以使用上下文自我調整可變長度譯碼、上下文自我調整二進位算術譯碼、基於語法的上下文自我調整二進位算術譯碼、概率區間分割熵譯碼或另一合適的熵編碼技術。
如先前述,HEVC位元串流包括一組NAL單元,包括VCL NAL單元和非VCL NAL單元。VCL NAL單元包括形成譯碼視訊位元串流的譯碼圖片資料。例如,形成譯碼視訊位元串流的位元序列存在於VCL NAL單元中。除了其他資訊之外,非VCL NAL單元亦可以包含具有與編碼視訊位元串流相關的高級資訊的參數集。例如,參數集可以包括視訊參數集(VPS)、序列參數集(SPS)和圖片參數集(PPS)。參數集的目標的實例包括位元速率效率、錯誤恢復能力和提供系統層介面。每個切片參考單個活動PPS、SPS和VPS以存取解碼設備112可以用於解碼切片的資訊。可以針對每個參數集來譯碼辨識符(ID),包括VPS ID、SPS ID和PPS ID。SPS包括SPS ID和VPS ID。PPS包括PPS ID和SPS ID。每個切片頭部包括PPS ID。經由使用ID,能夠針對給定切片辨識活動參數集。
PPS包括應用於給定圖片中的所有切片的資訊。因此,圖片中的所有切片參考相同PPS。不同圖片中的切片亦可以參考相同PPS。SPS包括應用於相同譯碼視訊序列(CVS)或位元串流中的所有圖片的資訊。如先前述,譯碼視訊序列為一系列存取單元(AU),其開始於基礎層中具有某些屬性(以上所述)的隨機存取點圖片(例如,暫態解碼參考(IDR)圖片或斷鏈存取(BLA)圖片,或其他適當隨機存取點圖片),直到且不包括具有基礎層中具有某些性質的隨機存取點圖片的下一AU(或位元串流的末端)。SPS中的資訊可以不在譯碼視訊序列內從圖片到圖片改變。譯碼視訊序列中的圖片可以使用相同SPS。VPS包括應用於譯碼視訊序列或位元串流內的所有層的資訊。VPS包括具有應用於整個譯碼視訊序列的語法元素的語法結構。在一些實施例中,VPS、SPS或PPS可以與編碼位元串流一起帶內發送。在一些實施例中,VPS、SPS或PPS可以在與包含譯碼視訊資料的NAL單元分開的傳輸中帶外發送。
視訊位元串流亦能夠包括補充增強資訊(SEI)訊息。例如,SEI NAL單元能夠是視訊位元串流的一部分。在一些情況下,SEI訊息能夠包含解碼程序不需要的資訊。例如,SEI訊息中的資訊對於解碼器解碼位元串流的視訊圖片來說可能不是必需的,但解碼器能夠使用資訊來改進圖片的顯示或處理(例如,解碼輸出)。SEI訊息中的資訊能夠是嵌入式中繼資料。在一個說明性實例中,SEI訊息中的資訊能夠由解碼器側實體使用以改進內容的可視性。在一些情況下,某些應用標準可以強制位元串流中存在這種SEI訊息,使得能夠將品質改進帶入符合應用標準的所有設備(例如,用於訊框相容的平面立體3DTV視訊格式的訊框封裝SEI訊息的攜載,其中針對視訊的每個訊框攜載SEI訊息、處置復原點SEI訊息、在DVB中使用平移掃瞄矩形SEI訊息,以及許多其他實例)。
編碼設備104的輸出110可以經由通訊鏈路120將構成編碼視訊位元串流資料的NAL單元發送到接收設備的解碼設備112。解碼設備112的輸入114可以接收NAL單元。通訊鏈路120可以包括由無線網路、有線網路或有線和無線網路的組合提供的通道。無線網路可以包括任何無線介面或無線介面的組合,並且可以包括任何合適的無線網路(例如,網際網路或其他廣域網、基於封包的網路、WiFi
TM、射頻(RF)、UWB、WiFi直連、蜂巢、長期進化(LTE)、WiMax
TM等)。有線網路可以包括任何有線介面(例如,光纖、乙太網路、電力線乙太網路、同軸電纜上的乙太網路、數位訊號線(DSL)等等)。有線及/或無線網路可以使用諸如基地台、路由器、存取點、橋接器、閘道、交換機等等的各種設備來實現。可以根據通訊標準(諸如,無線通訊協定)調制編碼視訊位元串流資料,並將其發送到接收設備。
在一些實例中,編碼設備104可以將編碼視訊位元串流資料儲存在儲存裝置108中。輸出110可以從編碼器引擎106或從儲存裝置108取回編碼視訊位元串流資料。儲存裝置108可以包括各種分散式或本端存取的資料儲存媒體中的任何一種。例如,儲存裝置108可以包括硬碟、儲存光碟、快閃記憶體、揮發性或非揮發性記憶體、或用於儲存編碼視訊資料的任何其他合適的數位儲存媒體。儲存裝置108亦能夠包括用於儲存在訊框間預測中使用的參考圖片的解碼圖片緩衝器(DPB)。在另一實例中,儲存裝置108能夠對應於檔案伺服器或可以儲存由源設備產生的編碼視訊的另一中間存放裝置。在這種情況下,包括解碼設備112的接收設備能夠經由資料串流或下載從存放裝置存取儲存的視訊資料。檔案伺服器可以是能夠儲存編碼視訊資料並將編碼視訊資料發送到接收設備的任何類型的伺服器。實例檔案伺服器包括web伺服器(例如,用於網站)、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亦可以包括實施以上所述的譯碼技術所必需的其他硬體或軟體,諸如一或多個微處理器、數位訊號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、離散邏輯、軟體、硬體、韌體或其任何組合。視訊編碼設備104和視訊解碼設備112可以整合為相應設備中的組合式編碼器/解碼器(codec)的一部分。
圖1所示的實例系統是能夠在此使用的一個說明性實例。用於使用本文描述的技術處理視訊資料的技術能夠由任何數位視訊編碼及/或解碼設備執行。儘管本案的技術通常由視訊編碼設備或視訊解碼設備執行,但技術亦可以由組合的視訊轉碼器-解碼器(通常被稱為「轉碼器」)執行。此外,本案的技術亦可以由視訊前置處理器執行。源設備和接收設備僅為源設備產生譯碼視訊資料以供發送到接收設備的這種譯碼設備的實例。在一些實例中,源設備和接收設備可以以基本上對稱的方式進行操作,使得設備中的每一個包括視訊編碼和解碼用部件。因此,實例系統可以支援視訊設備之間的單向或雙向視訊傳輸,例如用於視訊資料串流、視訊播放、視訊廣播或視訊電話。
HEVC標準的擴展包括被稱為MV-HEVC的多視圖視訊譯碼擴展和被稱為SHVC的可縮放視訊譯碼擴展。MV-HEVC和SHVC擴展共享分層譯碼的概念,其中不同層包括在編碼視訊位元串流中。譯碼視訊序列中的每一層由唯一層辨識符(ID)定址。層ID可以存在於NAL單元的頭部中以辨識NAL單元與其相關聯的層。在MV-HEVC中,不同層能夠表示視訊位元串流中的相同場景的不同視圖。在SHVC中,提供以不同空間解析度(或圖片解析度)或以不同重構保真度表示視訊位元串流的不同可縮放層。可縮放層可以包括基礎層(具有層ID=0)以及一或多個增強層(具有層ID=1、2、…n)。基礎層可以符合HEVC的第一版本的簡檔,並表示位元串流中的最低可用層。與基礎層相比,增強層具有增高的空間解析度、時間解析度或畫面播放速率及/或重構保真度(或品質)。增強層是分層組織的,並且可以(或可以不)取決於較低層。在一些實例中,可以使用單一標準轉碼器來譯碼不同層(例如,使用HEVC、SHVC或其他譯碼標準來編碼所有層)。在一些實例中,可以使用多標準轉碼器來譯碼不同層。例如,基礎層可以使用AVC來譯碼,而一或多個增強層可以使用HEVC標準的SHVC及/或MV-HEVC擴展來譯碼。
一般來說,層包括VCL NAL單元的集合和非VCL NAL單元的對應集合。NAL單元被分配特定層ID值。在層可以取決於較低層的意義上,層能夠是分層的。層集合是指位元串流內表示的自含式的層集合,意味著層集合內的層能夠在解碼程序中取決於層集合中的其他層,但不取決於任何其他層用於解碼。因此,層集合中的層能夠形成能夠表示視訊內容的獨立位元串流。層集合中的層的集合可以經由子位元串流提取程序的操作從另一位元串流獲得。層集合可以對應於當解碼器想要根據某些參數操作時待解碼的層的集合。
如以上所述,對於每個區塊,運動資訊(在本文中亦稱為運動參數)集合能夠為可用的。運動資訊集合包含用於前向和後向預測方向的運動資訊。前向和後向預測方向是雙向預測模式的兩個預測方向,在這種情況下,術語「前向」和「後向」不一定具有幾何含義。相反,「前向」和「後向」對應於當前圖片的參考圖片列表0(RefPicList0或L0)和參考圖片列表1(RefPicList1或L1)。在一些實例中,當僅一個參考圖片列表可用於圖片或切片時,僅RefPicList0可用並且切片的每一塊的運動資訊總是前向的。
在一些情況下,在譯碼程序(例如,運動補償)中使用運動向量及其參考索引。具有相關聯參考索引的這種運動向量表示為運動資訊的單向預測集合。對於每個預測方向,運動資訊能夠包含參考索引和運動向量。在一些情況下,為了簡單起見,可以假定運動向量具有相關聯參考索引的方式來參考運動向量自身。參考索引用於辨識當前參考圖片列表(RefPicList0或RefPicList1)中的參考圖片。運動向量具有水平和豎直分量,其提供從當前圖片中的座標位置到由參考索引辨識的參考圖片中的座標的偏移。例如,參考索引能夠指示應該用於當前圖片中的塊的特定參考圖片,並且運動向量能夠指示在參考圖片中最佳匹配塊(與當前塊最佳匹配的塊)在參考圖片中的何處。
圖片順序計數(POC)能夠用於視訊譯碼標準中以辨識圖片的顯示順序。儘管存在一個譯碼視訊序列內的兩個圖片可以具有相同POC值的情況,但其通常不在譯碼視訊序列內發生。當位元串流中存在多個譯碼視訊序列時,具有相同POC值的圖片可以在解碼順序態樣彼此更接近。圖片的POC值能夠用於參考圖片列表構造、如HEVC中的參考圖片集的匯出和運動向量縮放。
在H.264/AVC中,每個訊框間巨集塊(MB)可以以四種不同方式分割,包括:一個16×16MB分區;兩個16×8MB分區;兩個8×16MB分區;及四個8×8MB分區。一個MB中的不同MB分區可以具有用於每個方向的不同參考索引值(RefPicList0或RefPicList1)。在一些情況下,當MB沒有被分割為四個8×8MB分區時,其能夠在每個方向上針對每個MB分區僅具有一個運動向量。在一些情況下,當MB被分割為四個8×8MB分區時,每個8×8MB分區能夠進一步分割為子塊,在這種情況下,每個子塊能夠在每個方向上具有不同運動向量。在一些實例中,存在從8×8MB分區獲得子塊的四種不同方式,包括:一個8×8子塊;兩個8×4子塊;兩個4×8子塊;及四個4×4子塊。每個子塊能夠在每個方向上具有不同運動向量。因此,運動向量存在於等於高於子塊的級別中。
在AVC中,能夠針對B切片中的跳過及/或直接模式在MB級別或MB分區級別處啟用時間直接模式。對於每個MB分區,與當前塊的RefPicList1[0]中的當前MB分區共同定位的塊的運動向量用於匯出運動向量。共同定位塊之每一者運動向量基於POC距離來縮放。
空間直接模式亦能夠在AVC中執行。例如,在AVC中,直接模式亦能夠預測來自空間相鄰者的運動資訊。
在HEVC中,切片中的最大譯碼單元被稱為譯碼樹塊(CTB)。CTB包含四叉樹,其節點為譯碼單元。在HEVC主簡檔中,CTB的大小能夠在16×16到64×64的範圍內。在一些情況下,能夠支援8×8 CTB大小。譯碼單元(CU)能夠與CTB大小相同並小至8×8。在一些情況下,每個譯碼單元用一種模式來譯碼。當CU被訊框間編碼時,CU可以進一步被分割為2或4個預測單元(PU),或者當不應用進一步分割時可以變為僅一個PU。當兩個PU存在於一個CU中時,其能夠為一半大小的矩形或具有CU的1/4或3/4大小的兩個矩形。
當CU被訊框間編碼時,針對每個PU存在運動資訊集合。另外,每個PU用唯一訊框間預測模式來譯碼以匯出運動資訊集合。
對於HEVC中的運動預測,存在兩種訊框間預測模式,包括用於預測單元(PU)的合併模式和高級運動向量預測(AMVP)模式。跳過(skip)被認為是合併的特殊情況。在AMVP或合併模式中,針對多個運動向量預測符維持運動向量(MV)候選列表。經由從MV候選列表取得一個候選來產生當前PU的運動向量(或多個)以及合併模式下的參考索引。在一些實例中,如下所述,一或多個儲存的局部明度補償(LIC)標記能夠連同儲存運動向量被包括在MV候選列表中。
在MV候選列表用於塊的運動預測(並且在適用的情況下,明度補償)的實例中,MV候選列表可以由編碼設備和解碼設備單獨構造。例如,MV候選列表能夠由編碼設備在對塊進行編碼時產生,並能夠由解碼設備在對塊進行解碼時產生。能夠在編碼設備與解碼設備之間用訊號傳遞傳送與MV候選列表中的運動資訊候選相關的資訊(例如,與一或多個運動向量相關的資訊、與在一些情況下能夠儲存在MV候選列表中的一或多個LIC標記相關的資訊,及/或其他資訊)。例如,在合併模式下,到儲存的運動資訊候選的索引值能夠從編碼設備用訊號傳遞傳送到解碼設備(例如,在語法結構中,諸如圖片參數集(PPS)、序列參數集(SPS)、視訊參數集(VPS)、切片頭部、在視訊位元串流中或與視訊位元串流分開發送的補充增強資訊(SEI)訊息,及/或其他訊號傳遞)。解碼設備能夠構造MV候選列表並使用用訊號傳遞傳送的參考或索引從構造的MV候選列表獲得一或多個運動資訊候選以用於運動補償預測。例如,解碼設備112可以構造MV候選列表並使用來自用於塊的運動預測的索引位置的運動向量(並且在一些情況下為LIC標記)。在AMVP模式的情況下,除了參考或索引之外,差值或殘差值亦可以作為增量用訊號傳遞傳送。例如,對於AMVP模式,解碼設備能夠構造一或多個MV候選列表並在執行塊的運動補償預測時將增量值應用於使用用訊號傳遞傳送的索引值獲得的一或多個運動資訊候選。
在一些實例中,MV候選列表包含用於合併模式的至多五個候選和用於AMVP模式的兩個候選。在其他實例中,不同數量的候選能夠包括在用於合併模式及/或AMVP模式的MV候選列表中。合併候選可以包含運動資訊集合。例如,運動資訊集合能夠包括對應於參考圖片列表(列表0和列表1)和參考索引兩者的運動向量。若合併候選經由合併索引來辨識,則參考圖片用於當前塊的預測,並且相關聯的運動向量被決定。然而,在AMVP模式下,對於來自列表0或列表1的每個潛在預測方向,需要明確地用訊號傳遞傳送參考索引連通管到MV候選列表的MVP索引,這是因為AMVP候選僅包含運動向量。在AMVP模式下,能夠進一步細化預測運動向量。
如能夠從上文可見,合併候選對應於運動資訊的完整集合,而AMVP候選僅包含用於特定預測方向和參考索引的一個運動向量。兩種模式的候選類似地從相同空間和時間相鄰塊匯出。
在一些實例中,合併模式允許訊框間預測的PU繼承來自以下訊框間預測的PU的相同運動向量(一或多個)、預測方向和參考圖片索引(一或多個),該以下訊框間預測的PU包括從一組空間相鄰運動資料位置以及兩個時間上共同定位的運動資料位置之一選擇的運動資料位置。對於AMVP模式,能夠相對於來自由編碼器及/或解碼器構造的AMVP候選列表的一或多個運動向量預測符(MVP)預測性地譯碼PU的一或多個運動向量。在一些情況下,對於PU的單向訊框間預測,編碼器及/或解碼器能夠產生單個AMVP候選列表。在一些情況下,對於PU的雙向預測,編碼器及/或解碼器能夠產生兩個AMVP候選列表,一個使用來自前向預測方向的空間和時間相鄰PU的運動資料,並且一個使用來自後向預測方向的空間和時間相鄰PU的運動資料。
圖2是示出具有濾除膠片顆粒雜訊的編碼器290和重構膠片顆粒雜訊的解碼器295的轉碼器系統200的方塊圖。編碼器290可以為編碼設備104、編碼引擎106、計算系統1100、處理器1110或其組合的實例。解碼器295可以為解碼設備112、解碼器引擎116、計算系統1100、處理器1110或其組合的實例。
編碼器290例如從視訊源102接收具有至少一個視訊訊框的輸入視訊205。輸入視訊205包括膠片顆粒或其他雜訊資料。在一些情況下,膠片顆粒能夠在視訊中提供期望的美學效果,並且能夠期望經由編碼和解碼處理來保留膠片顆粒。然而,膠片顆粒和其他雜訊資料的隨機性和快速變化會增加視訊的複雜性,並因此降低編碼及/或壓縮的效率。例如,視訊壓縮基於空間和時間預測,而膠片顆粒和其他雜訊資料在空間和時間方向上皆具有高度的隨機性,使得預測變得困難。因此,為了降低輸入視訊205的複雜度並提高輸入視訊205的編碼及/或壓縮的效率,編碼器290使用去噪器210對輸入視訊205進行去噪以產生去噪視訊215。去噪器210能夠使用任何去噪演算法或技術,諸如空間濾波、變換域濾波、小波閾值處理或其組合。隨後,編碼器290將去噪視訊215傳遞到編碼引擎220以產生編碼視訊225。編碼引擎220能夠為編碼設備104、編碼引擎106、計算系統1100、處理器1110或其組合的實例。在一些實例中,編碼引擎220壓縮去噪視訊215以產生編碼視訊225。
編碼器290亦包括從輸入視訊205減去去噪視訊215以產生殘差255的減法器250。在一些實例中,編碼器290包括分析引擎240,其中分析引擎240接收輸入視訊205、去噪視訊215、來自去噪器210的關於去噪處理的資料及/或殘差255。基於該資料,分析引擎240執行對由去噪器210從輸入視訊205去除的雜訊的結構及/或強度的分析,以產生去噪視訊215。在一些實例中,分析引擎240產生映射245,其中映射245將由去噪器210在各個位置處從輸入視訊205移除的雜訊的結構及/或強度映射到輸入視訊205、去噪視訊215及/或編碼視訊225的視訊訊框中的對應位置。編碼器290包括顆粒估計引擎260,其中顆粒估計引擎260基於來自分析引擎240的映射245及/或基於殘差255產生顆粒參數265。在一些實例中,映射245及/或顆粒參數265可以包括由去噪器210從輸入視訊205移除的顆粒的自回歸模型。在一些實例中,映射245及/或顆粒參數265可以將顆粒強度建模為強度的函數。在一些實例中,顆粒參數265包括初始隨機狀態,以及位元深度的指示、顆粒縮放的指示或其組合。
編碼器290將編碼視訊225和顆粒參數265傳遞到解碼器295。解碼器295包括解碼引擎230,其中解碼引擎230對編碼視訊225進行解碼以產生解碼視訊235。解碼引擎230可以為解碼設備112、解碼器引擎116、計算系統1100、處理器1110或其組合的實例。在一些實例中,解碼引擎230解壓縮編碼視訊225以產生解碼視訊235。解碼視訊235是去噪視訊215的重構。
解碼器295亦包括顆粒產生器270,其基於顆粒參數265產生顆粒圖元資料275。在一些實例中,顆粒圖元資料275是由去噪器210從輸入視訊205中去除的雜訊的重構。在一些實例中,顆粒圖元資料275是殘差255的重構。在一些實例中,顆粒圖元資料275是合成顆粒資料,其與由去噪器210從輸入視訊205去除的雜訊共享一些屬性(例如,由顆粒參數265指示)。解碼器295包括加法器280,其將顆粒圖元資料275添加到解碼視訊235以產生輸出視訊285。
在一些實例中,在解碼器295使用加法器280將顆粒圖元資料275添加到解碼視訊235以產生輸出視訊285之前,顆粒產生器270產生顆粒圖元資料275的整個訊框。這種解碼器295的實例被示出為圖6的解碼器系統600的一部分。
在一些實例中,顆粒產生器270一次動態地產生顆粒圖元資料275的訊框的一部分,並且解碼器295使用加法器280一次動態地將顆粒圖元資料275添加到解碼視訊235中。因此,解碼器295能夠動態地一次一部分地產生輸出視訊285,在顆粒產生器270最終產生顆粒圖元資料275的整個訊框之後,最終產生輸出視訊285的整個訊框。這種解碼器295的實例被示出為圖7的解碼器系統700的一部分。與在將顆粒圖元資料275添加到解碼視訊235之前產生顆粒圖元資料275的整個訊框以經由允許並行顆粒產生和顆粒添加來產生輸出視訊285的解碼器相比,此類解碼器295能夠提供效率改進。例如,加法器280能夠將顆粒圖元資料275的第一部分添加到解碼視訊235,同時顆粒產生器270正在產生顆粒圖元資料275的第二部分,如圖9B的概念圖950所示。
圖3是示出基於相應偏移產生對應於視訊訊框350的各種塊的雜訊圖元資料的概念圖300。顆粒產生器270(例如,使用白色雜訊產生器610及/或自回歸濾波器615)基於顆粒參數265產生顆粒陣列305。在圖3的說明性實例中,顆粒陣列305具有82圖元(px)×73px的維度。在一些實例中,顆粒陣列305可以在任一維度上大於或小於該大小。
視訊訊框350被劃分為多個塊。在圖3的說明性實例中,視訊訊框350被劃分成至少四個塊,包括塊315、塊325、塊335和塊345。在一些實例中,視訊訊框350能夠被劃分為多於四個塊或少於四個塊。在圖3的說明性實例中,塊之每一者塊具有32px×32px的維度。在一些實例中,塊(例如,塊315、塊325、塊335及塊345)可以在任一維度上大於或小於該大小。
顆粒產生器270(例如,使用隨機偏移產生器635及/或隨機偏移產生器710)產生分別對應於視訊訊框350的每個區塊(例如,塊315、塊325、塊335和塊345)的隨機偏移。基於隨機偏移,顆粒產生器270從顆粒陣列305取回對應於塊315的雜訊圖元資料310、對應於塊325的雜訊圖元資料320、對應於塊335的雜訊圖元資料330和對應於塊345的雜訊圖元資料340。給定塊的隨機偏移集合可以包括從沿著顆粒陣列305的原點的水平偏移和豎直偏移。原點可以是在顆粒陣列305的角之一(例如左上角、左下角、右上角或右下角)處的顆粒陣列305的座標為(0, 0)的點。給定塊的隨機偏移集合指示沿著顆粒陣列305的顆粒產生器270要取回對應於該塊的雜訊圖元資料的位置。
例如,顆粒產生器270(例如,使用隨機偏移產生器635及/或隨機偏移產生器710)產生對應於塊315的第一組隨機偏移,其中第一組隨機偏移指示沿著顆粒陣列305的以下位置,其中將從該位置取回對應於塊315的雜訊圖元資料310。顆粒產生器270產生對應於塊325的第二組隨機偏移,其中第二組隨機偏移指示沿著顆粒陣列305的以下位置,其中將從該位置取回對應於塊325的雜訊圖元資料320。顆粒產生器270產生對應於塊335的第三組隨機偏移,其中第三組隨機偏移指示沿著顆粒陣列305的以下位置,其中將從該位置取回對應於塊335的雜訊圖元資料330。顆粒產生器270產生對應於塊345的第四組隨機偏移,其中第四組隨機偏移指示沿著顆粒陣列305的以下位置,其中將從該位置取回對應於塊345的雜訊圖元資料340。在圖3的說明性實例中,每組雜訊圖元資料(例如,雜訊圖元資料310、雜訊圖元資料320、雜訊圖元資料330和雜訊圖元資料340)具有34px×34px的維度。如圖4所示,每個維度中的額外2個圖元(超出塊的32px×32px的維度)可以用於混合。在一些實例中,塊(例如,塊315、塊325、塊335和塊345)可以在任一維度上大於或小於該大小。
顆粒產生器270可以根據視訊訊框350中對應塊(例如,塊315、塊325、塊335和塊345)具有的相同排列將每組雜訊圖元資料(例如,雜訊圖元資料310、雜訊圖元資料320、雜訊圖元資料330和雜訊圖元資料340)排列在一起,以產生訊框雜訊資料355。訊框雜訊資料355能夠表示顆粒圖元資料275,解碼器295能夠使用加法器280將顆粒圖元資料275添加到解碼視訊235以產生輸出視訊285。在一些實例中,雜訊圖元資料(例如,雜訊圖元資料310、雜訊圖元資料320、雜訊圖元資料330和雜訊圖元資料340)能夠表示顆粒圖元資料275,其中解碼器295能夠使用加法器280將顆粒圖元資料275添加到解碼視訊235以產生輸出視訊285。
在一些實例中,顆粒陣列305是在明度通道上具有顆粒的明度(luma)顆粒陣列305,並且雜訊圖元資料(例如,雜訊圖元資料310、雜訊圖元資料320、雜訊圖元資料330和雜訊圖元資料340)包括在明度通道上的雜訊。在一些實例中,顆粒陣列305是色度顆粒陣列305,其中一或多個色度通道上的顆粒對應於一或多個顏色,並且雜訊圖元資料(例如,雜訊圖元資料310、雜訊圖元資料320、雜訊圖元資料330和雜訊圖元資料340)包括一或多個色度通道上的雜訊。
圖4是示出在對應於視訊訊框的不同塊的雜訊圖元資料的重疊部分處使用水平混合450和豎直混合455的概念圖400。例如,圖4中示出四組雜訊圖元資料,其中每組具有34px×34px的維度。四組雜訊圖元資料包括對應於視訊訊框(例如,輸出110、輸入114、輸入視訊205、去噪視訊215、編碼視訊225、解碼視訊235及/或視訊訊框350)的塊415的雜訊圖元資料410(標記為「A」)、對應於視訊訊框的塊425的雜訊圖元資料420(標記為「B」)、對應於視訊訊框的塊435的雜訊圖元資料430(標記為「C」)和對應於視訊訊框的塊445的雜訊圖元資料440(標記為「D」)。圖4中的四組雜訊圖元資料(例如,雜訊圖元資料410、雜訊圖元資料420、雜訊圖元資料430和雜訊圖元資料440)可以是圖3中的四組雜訊圖元資料(例如,雜訊圖元資料310、雜訊圖元資料320、雜訊圖元資料330和雜訊圖元資料340)的實例,反之亦然。類似地,圖4中的四個塊(例如,塊415、塊425、塊435和塊445)可以是圖3中的四個塊(例如,塊315、塊325、塊335和塊345)的實例,反之亦然。
圖4中的四組雜訊圖元資料(例如,雜訊圖元資料410、雜訊圖元資料420、雜訊圖元資料430和雜訊圖元資料440)被排列為使得在第一組雜訊圖元資料的給定邊緣處的兩個相鄰圖元行(例如,圖元行或圖元列)在與第一組雜訊圖元資料相鄰排列的第二組雜訊圖元資料的對應邊緣處的兩個相鄰圖元行(例如,圖元行或圖元列)上重疊。例如,雜訊圖元資料410的兩個最右列與雜訊圖元資料420的兩個最左列重疊,雜訊圖元資料430的兩個最右列與雜訊圖元資料440的兩個最左列重疊,雜訊圖元資料410的兩個最底列與雜訊圖元資料430的兩個最頂列重疊,並且雜訊圖元資料420的兩個最底列與雜訊圖元資料440的兩個最頂列重疊。
顆粒產生器270能夠執行水平混合450(例如,水平混合640,由水平/豎直混合引擎715進行的水平及/或豎直混合),以混合來自不同相鄰組的雜訊圖元資料的重疊圖元列。例如,顆粒產生器270能夠執行水平混合450,以將雜訊圖元資料410的最右兩列與雜訊圖元資料420的最左兩列混合,並將雜訊圖元資料430的最右兩列與雜訊圖元資料440的最左兩列混合。
顆粒產生器270能夠執行豎直混合455(例如,豎直混合645,由水平/豎直混合引擎715進行的水平及/或豎直混合),以混合來自不同相鄰組的雜訊圖元資料的重疊圖元行。例如,顆粒產生器270能夠執行豎直混合455,以將雜訊圖元資料410的兩個最底部列與雜訊圖元資料430的兩個最頂部列混合,並且將雜訊圖元資料420的兩個最底部列與雜訊圖元資料430的兩個最頂部列混合。
在一些實例中,顆粒產生器270能夠在執行豎直混合455之前執行水平混合450(例如,如圖9A所示),反之亦然。在一些實例中,顆粒產生器270能夠在至少部分地並存執行豎直混合455之前執行水平混合450(例如,如圖9B所示)。在一些實例中,為了執行水平混合450及/或豎直混合455,顆粒產生器270能夠將來自兩組雜訊圖元資料的重疊線的雜訊圖元資料彼此相加。在一些實例中,為了執行水平混合450及/或豎直混合455,顆粒產生器270能夠將來自兩組雜訊圖元資料的重疊線的雜訊圖元資料彼此相減。在一些實例中,為了執行水平混合450及/或豎直混合455,顆粒產生器270能夠將來自兩組雜訊圖元資料的重疊線的雜訊圖元資料彼此相乘。在一些實例中,為了執行水平混合450及/或豎直混合455,顆粒產生器270能夠將來自兩組雜訊圖元資料的重疊線的雜訊圖元資料彼此相除。在一些實例中,為了執行水平混合450及/或豎直混合455,顆粒產生器270能夠將來自兩組雜訊圖元資料的重疊線的雜訊圖元資料彼此平均。在一些實例中,為了執行水平混合450及/或豎直混合455,顆粒產生器270能夠例如經由將超過上限閾值的任何混合值降至上限閾值,並且經由將小於下限閾值的任何混合值升至下限閾值,將混合值保持在預定範圍內。
圖5是示出使用加法器280將雜訊影像550添加到解碼視訊訊框505以產生輸出訊框560的概念圖500。解碼視訊訊框505被劃分為具有32px×32px的大小的至少四個塊,包括塊515、塊525、塊535和塊545。解碼視訊訊框505的雜訊影像550包括對應於解碼視訊訊框505的四個塊的四組雜訊圖元資料,包括對應於塊515的雜訊圖元資料510、對應於塊525的雜訊圖元資料520、對應於塊535的雜訊圖元資料530和對應於塊545的雜訊圖元資料540。四組雜訊圖元資料(例如,雜訊圖元資料510、雜訊圖元資料520、雜訊圖元資料530和雜訊圖元資料540)均具有34px×34px的維度,並且以與四個塊(例如,塊515、塊525、塊535和塊545)相同的順序及/或排列來排列,其中在相鄰組雜訊圖元資料之間具有一些重疊。雜訊影像550可以包括在相鄰組雜訊圖元資料之間的重疊區域處的水平混合450及/或豎直混合455。在一些實例中,雜訊影像550。在一些實例中,顆粒產生器270能夠利用解碼視訊訊框505的對應圖元,使用分段線性內插來產生雜訊影像550。
解碼器295使用加法器280將雜訊影像550添加到解碼視訊訊框505以產生輸出訊框560。輸出訊框560包括第一32px×32px塊區域,該第一32px×32px塊區域包括添加到解碼視訊訊框505的塊515的雜訊影像550的雜訊圖元資料510(例如,具有與相鄰組雜訊圖元資料的水平混合450及/或豎直混合455)。輸出訊框560亦包括第二塊區域、第三塊區域和第四塊區域,第二塊區域包括添加到解碼視訊訊框505的塊525的雜訊影像550的雜訊圖元資料520(例如,具有與相鄰組雜訊圖元資料的水平混合450及/或豎直混合455),第三塊區域包括添加到解碼視訊訊框505的塊535的雜訊影像550的雜訊圖元資料530(例如,具有與相鄰組雜訊圖元資料的水平混合450及/或豎直混合455),第四塊區域包括添加到解碼視訊訊框505的塊545的雜訊影像550的雜訊圖元資料540(例如,具有與相鄰組雜訊圖元資料的水平混合450及/或豎直混合455)。在一些實例中,解碼器295能夠在將雜訊影像550添加到解碼視訊訊框505之前縮放及/或捨入雜訊影像550。在一些實例中,解碼器295能夠在將雜訊影像550添加到解碼視訊訊框505之前利用解碼視訊訊框505的對應圖元,對雜訊影像550執行分段線性內插。
圖6是示出解碼器系統600的方塊圖,其中解碼器系統600在將雜訊資料添加到視訊訊框之前產生用於整個視訊訊框的雜訊資料。解碼器系統600接收膠片顆粒(FG)參數605,其是顆粒參數265的實例。解碼器系統600亦接收編碼視訊225及/或解碼視訊235的訊框寬度和高度625(例如,訊框維度)。解碼器視訊235包括重構圖元655,其中重構圖元655亦由解碼器系統600接收。
解碼器系統使用白色雜訊產生器610和自回歸濾波器615基於FG參數605在明度(Y)及/或色度(例如,藍差(C
B)及/或紅差(C
R))通道中產生顆粒陣列620。在說明性實例中,白色雜訊產生器610根據下文的偽代碼1基於顆粒參數265產生顆粒陣列620的白色雜訊:
偽代碼1
shift = 12 - BitDepth + grain_scale_shift for ( y = 0; y < 73; y++ ) { for ( x = 0; x < 82; x++ ) { if ( num_y_points > 0 ) { g = Gaussian_Sequence[ get_random_number( 11 ) ] } else { g = 0 } LumaGrain[ y ][ x ] = Round2( g, shift ) } } |
在上面提供的白色雜訊產生器610的偽代碼1中,LumaGrain表示明度顆粒陣列。BitDepth和grain_scale_shift能夠表示FG參數605。
在說明性實例中,自回歸濾波器615根據以下偽代碼2,基於FG參數605來依據白色雜訊(使用白色雜訊產生器610產生)產生顆粒陣列620:
偽代碼2
shift = ar_coeff_shift_minus_6 + 6 for ( y = 3; y < 73; y++ ) { for ( x = 3; x < 82 - 3; x++ ) { s = 0; pos = 0 for ( deltaRow = -ar_coeff_lag; deltaRow <= 0; deltaRow++ ) { for ( deltaCol = -ar_coeff_lag; deltaCol <= ar_coeff_lag; deltaCol++ ) { if ( deltaRow == 0 && deltaCol == 0 ) break c = ar_coeffs_y_plus_128[ pos ] - 128 s += LumaGrain[ y + deltaRow ][ x + deltaCol ] * c pos++ } } LumaGrain[ y ][ x ] = Clip3( GrainMin, GrainMax, LumaGrain[ y ][ x ] + Round2( s, shift ) ) } } |
在以上提供的自回歸濾波器615的偽代碼2中,ar_coeff_lag表示FG參數605之一。在使用偽代碼示出的實例中,在給定ar_coeff_lag等於3的情況下,使用自回歸濾波器615產生的每個濾波顆粒值能夠取決於24個白色雜訊值及/或濾波顆粒值中的最大值。自回歸濾波器615的輸出是顆粒陣列620。
解碼器系統600的雜訊影像產生器630基於顆粒陣列620、訊框寬度和高度625以及在某些情況下基於FG參數605產生雜訊影像675。雜訊影像產生器630包括隨機偏移產生器635,其產生不同組的雜訊圖元資料的隨機偏移(例如,如在雜訊圖元資料310、雜訊圖元資料320、雜訊圖元資料330和雜訊圖元資料340的隨機偏移中),以辨識應該從顆粒陣列620的哪些部分取回雜訊圖元資料。雜訊影像產生器630包括用於水平混合640(例如,用於水平混合450)和豎直混合645(例如,用於豎直混合455)的相應引擎。水平混合640和豎直混合645能夠混合來自相鄰組雜訊圖元資料的重疊線的雜訊圖元資料,如圖4所示。雜訊影像產生器630將得到的混合雜訊圖元資料寫入記憶體650,記憶體650可以包括雙倍資料速率(DDR)記憶體。雜訊影像產生器630能夠一次將來自雜訊影像及/或來自混合雜訊切片的混合雜訊圖元資料寫入32px×34px、32px×2px及/或32px×32px的部分中。
解碼器系統600從記憶體650讀取雜訊影像675。解碼器系統600使用縮放器和縮放查閱資料表(lut)660來基於重構圖元655及/或訊框寬度和高度625來縮放雜訊影像675。解碼器系統600使用移位器/捨入器/加法器/限幅器引擎665來將雜訊影像675移位、捨入、相加(例如,如在加法器280中)及/或限幅到重構圖元655,以產生膠片顆粒圖元670。膠片顆粒圖元670是輸出視訊285的圖元的實例。
在一些實例中,解碼器系統600水平地和豎直地執行膠片顆粒塊(例如,雜訊圖元資料310、雜訊圖元資料320、雜訊圖元資料330、雜訊圖元資料340、雜訊圖元資料410、雜訊圖元資料420、雜訊圖元資料430、雜訊圖元資料440、雜訊圖元資料510、雜訊圖元資料520、雜訊圖元資料530、雜訊圖元資料540)的順序混合,以產生整個訊框的雜訊影像675。解碼器系統600將水平混合雜訊切片的全訊框寬度寫入記憶體650。解碼器系統600在水平混合之後執行2個額外圖元寫入,其中在針對明度
)在高度上每32個圖元的豎直混合之後讀取2個頂行圖元並且寫入2個圖元。類似地,解碼器系統600在針對色度Cb/Cr (
在高度上每16個圖元的豎直混合之後執行1個額外圖元寫入、1個頂部圖元讀取和1個圖元寫入。
在一些實例中,由解碼器系統600用來產生膠片顆粒圖元670的記憶體650的記憶體頻寬能夠使用以下等式來決定:
等式1
在上面的等式1中,W表示訊框的寬度,H表示訊框的高度,B表示位元深度,以及F以每秒訊框(fps)來表示畫面播放速率。根據上面的等式1,解碼器系統600的記憶體650的讀/寫記憶體頻寬對於240fps畫面播放速率和8位元位元深度的4K解析度是6644Mbps。
圖7是示出解碼器系統700的方塊圖,該解碼器系統700在逐圖元基礎上產生雜訊資料,並在逐圖元基礎上將雜訊資料添加到視訊訊框中。解碼器系統700使用FG參數605、白色雜訊產生器610和自回歸濾波器615,如上面關於解碼器系統600該來產生顆粒陣列620。解碼器系統700包括儲存顆粒陣列620整體的顆粒記憶體705。顆粒陣列620的儲存是由解碼器系統700用來產生膠片顆粒圖元725的唯一寫入操作(或一組寫入操作)。這表示與由解碼器系統600對記憶體650的各種寫入操作相比,每訊框寫入操作的數量顯著減少。
解碼器系統700包括隨機偏移產生器710和水平/豎直混合引擎715(例如,用於水平混合640和豎直混合645),其中解碼器系統700使用它們來使用儲存在顆粒記憶體705中的顆粒陣列620產生雜訊影像720。解碼器系統700接收訊框寬度和高度625,解碼器系統700基於訊框寬度和高度625向顆粒記憶體705發送顆粒讀取請求730,並且作為回應從顆粒記憶體705接收顆粒讀取資料735。在一些實例中,解碼器系統700基於給定雜訊圖元將在雜訊影像720中的位置,根據需要在逐圖元基礎上從顆粒記憶體705取回顆粒讀取資料735。例如,若給定雜訊圖元處於與多組圖元雜訊資料之間的重疊相對應的雜訊切片中(例如,如圖4中的水平混合450及/或豎直混合455的雜訊切片中),則顆粒讀取請求730能夠基於對應的隨機偏移向每組重疊的圖元雜訊資料請求顆粒讀取資料735,其中解碼器系統700使用水平/豎直混合引擎715在每圖元基礎上混合顆粒讀取資料735。若給定雜訊圖元不在與多組圖元雜訊資料之間的重疊相對應的雜訊帶中,則顆粒讀取請求730能夠基於對應隨機偏移向僅一組圖元雜訊資料請求顆粒讀取資料735,其中解碼器系統700可以將其用作雜訊影像720的一部分。圖8中進一步圖示來自儲存在顆粒記憶體705中的顆粒陣列620的圖元雜訊/顆粒資料的逐圖元取回。
解碼器系統700使用縮放器和縮放查閱資料表(lut)660來基於重構圖元655及/或訊框寬度和高度625縮放雜訊影像720(或其一部分)。解碼器系統700使用移位器/捨入器/加法器/限幅器引擎665來將雜訊影像720(或其一部分)移位、捨入、相加(例如,如在加法器280中)及/或限幅到重構圖元655,以產生膠片顆粒圖元725。膠片顆粒圖元725是輸出視訊285的圖元的實例。
圖8是示出基於顆粒影像850中的雜訊圖元資料的位置產生雜訊圖元資料的方塊圖800。解碼器系統700能夠使用隨機偏移並基於雜訊圖元資料被設置為在顆粒影像850中佔據的位置,在逐圖元基礎上,在執行中動態地從儲存在顆粒記憶體705中的顆粒陣列620取回雜訊圖元資料。解碼器系統700能夠再次基於雜訊圖元資料被設置為在顆粒影像850中佔據的位置,在逐圖元基礎上,在執行中使用水平混合及/或豎直混合來動態地處理雜訊圖元資料。在一些實例中,解碼器系統700能夠一次從一個雜訊圖元資料區塊取回及/或處理雜訊圖元資料。顆粒影像850包括四個雜訊圖元資料區塊,分別標記為塊A、塊B、塊C和塊D。雜訊圖元資料區塊是以上所述的多組雜訊圖元資料的實例(例如,雜訊圖元資料310、雜訊圖元資料320、雜訊圖元資料330、雜訊圖元資料340、雜訊圖元資料410、雜訊圖元資料420、雜訊圖元資料430、雜訊圖元資料440、雜訊圖元資料510、雜訊圖元資料520、雜訊圖元資料530、雜訊圖元資料540)。
例如,解碼器系統700能夠經由從座標(32, 0)處的塊A和座標(0, 0)處的塊B讀取雜訊圖元資料,並且水平地混合這些雜訊圖元,來在塊B的處理期間取回和處理雜訊圖元805。解碼器系統700能夠在塊A的處理期間經由從座標(10, 0)處的塊A讀取雜訊圖元資料來取回和處理所示的雜訊圖元810,而不需要混合。解碼器系統700能夠經由從座標(18, 6)處的塊B讀取雜訊圖元資料來在塊B的處理期間取回和處理所示的雜訊圖元815,而不需要混合。
解碼器系統700能夠經由從座標(32, 32)處的塊A讀取雜訊圖元資料並從座標(0, 32)處的塊B讀取雜訊圖元資料,並水平混合這些雜訊圖元以產生水平混合的中間圖元資料Horz(A, B),來在塊D的處理期間取回和處理所示的雜訊圖元820。對於所示的雜訊圖元820,解碼器亦能夠從座標(32, 0)處的塊C和座標(0, 0)處的塊D讀取雜訊圖元資料,並且水平地混合這些雜訊圖元,產生水平混合的中間圖元資料Horz(C, D)。對於所示的雜訊圖元820,解碼器隨後能夠將中間圖元資料Horz(A,B)與中間圖元資料Horz(C, D)豎直混合。
解碼器系統700能夠經由從座標(28, 33)處的塊A和座標(28, 1)處的快C讀取雜訊圖元資料,並豎直混合這些雜訊圖元,來在塊C的處理期間取回和處理所示的雜訊圖元825。解碼器系統700能夠經由從座標(2, 12)處的塊D讀取雜訊圖元資料來在塊D的處理期間取回和處理所示的雜訊圖元830,而不需要混合。解碼器系統700能夠經由從座標(32, 0)處的塊A讀取雜訊圖元資料,從座標(0, 0)處的塊B讀取雜訊圖元資料,並水平地混合這些雜訊圖元來在塊B的處理期間取回和處理所示的雜訊圖元835。解碼器系統700能夠經由從座標(32, 24)處的塊C讀取雜訊圖元資料,從座標(0, 24)處的塊D讀取雜訊圖元資料,並水平地混合這些雜訊圖元來在塊D的處理期間取回和處理所示的雜訊圖元840。
解碼器系統700動態地取回對應於給定重構圖元的雜訊圖元資料,從雜訊圖元資料產生雜訊資料(例如,經由捨入、移位、限幅及/或混合雜訊圖元資料),並將雜訊資料應用於重構圖元。在說明性實例中,解碼器系統700根據下文的偽代碼3執行這些操作:
偽代碼3
lumaNum = 0 rand = 0 rand_top = 0 for ( y = 0; y < (h + 1)/2 ; y += 16 ) { // y 按照明度 32/ 色度 16 遞增,直到訊框高度for ( x = 0; x < (w + 1)/2; x += 16 ) { // x 按照明度 32/ 色度 16 遞增,直到訊框寬度rand_left = rand // 產生當前和左側亂數RandomRegister_0 = grain_seed RandomRegister_0 ^= ((lumaNum * 37 + 178) & 255) << 8 RandomRegister_0 ^= ((lumaNum * 173 + 105) & 255) rand = get_random_number_0( 8 ) // 使用 RandomRegister_0offsetX_left = rand_left >> 4 // 例如, rand_left = 1011_1100 , offsetX = 1011 ( 1011_1100 >> 4 )offsetY_left = rand_left & 15 // 例如, offsetY = 1100 ( 1011_1100 && 0000_1111 )offsetX_curr = rand >> 4 offsetY_curr = rand & 15 if ( y > 0 ) { // 產生頂端和頂端左側( top_left )亂數lumaNum_minus1 = lumaNum - 1 rand_top_left = rand_top RandomRegister_1 = grain_seed RandomRegister_1 ^= ((lumaNum_minus1 * 37 + 178) & 255) << 8 RandomRegister_1 ^= ((lumaNum_minus1 * 173 + 105) & 255) rand_top = get_random_number_1( 8 ) // 使用 RandomRegister_1 } // 結束頂端和頂端左側亂數offsetX_top_left = rand_top_left >> 4 offsetY_top_left = rand_top_left & 15 offsetX_top = rand_top >> 4 offsetY_top = rand_top & 15 for ( plane = 0 ; plane < NumPlanes; plane++ ) { // 明度(平面 =0 ) / 色度 Cb (平面 =1 ) / 色度 Cr (平面 =2 )planeSubX = ( plane > 0) ? subX : 0 planeSubY = ( plane > 0) ? subY : 0 planeOffsetX_left = planeSubX ? 6 + offset_left : 9 + offsetX_left * 2 // 顆粒陣列內的左側顆粒塊 X 偏移位址planeOffsetY_left = planeSubY ? 6 + offset_left : 9 + offsetY_left * 2 // 顆粒陣列內的左側顆粒塊 Y 偏移位址planeOffsetX_curr= planeSubY ? 6 + offset_curr : 9 + offsetX_curr * 2 // 顆粒陣列內的當前顆粒塊 X 偏移位址planeOffsetY_curr = planeSubY ? 6 + offsetY_curr : 9 + offsetY_curr * 2 // 顆粒陣列內的當前顆粒塊 Y 偏移位址planeOffsetX_top_left = 9 + offsetX_top_left * 2 // 顆粒陣列內的頂端左側顆粒塊 X 偏移位址planeOffsetY_top_left = 9 + offsetY_top_left * 2 // 顆粒陣列內的頂端左側顆粒塊 Y 偏移位址planeOffsetX_top = 9 + offsetX_top * 2 // 顆粒陣列內的頂端顆粒塊 X 偏移位址planeOffsetY_top = 9 + offsetY_top * 2 // 顆粒陣列內的頂端顆粒塊 Y 偏移位址for ( i = 0; i < 32 >> planeSubY ; i++ ) { //32/16 膠片顆粒塊內的 y 遞增for ( j = 0; j < 32 >> planeSubX ; j++ ) { //32/16 膠片顆粒塊內的 x 遞增if ( plane = 0) { left_g = LumaGrain[ planeOffsetY_left + i ][ planeOffsetX_left + 32 + j ] curr_g = LumaGrain[ planeOffsetY + i ][ planeOffsetX + j ] top_left_g = LumaGrain[ planeOffsetY_top_left + 32 + i ][ planeOffsetX_left + 32 + j ] top_g = LumaGrain[ planeOffsetY_top + 32 + i ][ planeOffsetX_top + j ] } else if ( plane == 1 ) { left_g = CbGrain[ planeOffsetY_left + i ][ planeOffsetX_left + 16 + j ] curr_g = CbGrain[ planeOffsetY + i ][ planeOffsetX + j ] top_left_g = CbGrain[ planeOffsetY_top_left + 16 + i ][ planeOffsetX_left + 16 + j ] top_g = CbGrain[ planeOffsetY_top + 16 + i ][ planeOffsetX_top + j ] } else { left_g = CrGrain[ planeOffsetY_left + i ][ planeOffsetX_left + 16 + j ] curr_g = CrGrain[ planeOffsetY + i ][ planeOffsetX + j ] top_left_g = CrGrain[ planeOffsetY_top_left + 16 + i ][ planeOffsetX_left + 16 + j ] top_g = CrGrain[ planeOffsetY_top + 16 + i ][ planeOffsetX_top + j ] } if ( j < 2 && overlap_flag && x > 0 ) { // 水平混合 1 ,其中 old 為 left_g if ( j == 0 ) { if (plane = 0) { horiz_1_g = left_g * 27 + curr_g * 17 } else { horiz_1_g = left_g * 23 + curr_g * 22 } else { horiz_1_g = left_g * 17 + curr_g * 27 } horiz_1_g = Clip3( GrainMin, GrainMax, Round2(horiz_1_g, 5) ) noiseImage[ plane ][ y ][ x ] = horiz_1_g// 只有水平混合if ( i < 2 ) { / / 水平混合 2 ,其中 old 為 top_left_g if ( j == 0 ) { if (plane = 0) { horiz_2_g = top_left_g * 27 + top_g * 17 } else { horiz_2_g = top_left_g * 23 + top_g * 22 } else { horiz_2_g = top_left_g * 17 + top_g * 27 } horiz_2_g = Clip3( GrainMin, GrainMax, Round2(horiz_2_g, 5) ) if ( i == 0 ) { if ( plane = 0 ) { vert_1_g = horiz_2_g * 27 + horiz_1_g * 17 } // 豎直混合 2 ,其中 old 為 horiz_2_g else{ vert_1_g = horiz_2_g * 23 + horiz_1_g * 22 } // else { vert_1_g = horiz_2_g * 17 + horiz_1_g * 27 } // 豎直混合 2 ,其中 old 為 horiz_2_g vert_1_g = Clip3( GrainMin, GrainMax, Round2(vert_1_g, 5) ) noiseImage[ plane ][ y ][ x ] = vert_1_g// 水平和豎直混合兩者 } // end Horizontal blending 2 } // 結束水平混合 1else if ( i < 2 && overlap_flag && y > 0 ) { // 豎直混合 2 ,其中 old 為 top_g if ( i == 0 ) { if ( plane = 0 ) { vert_2_g = top_g * 27 + curr_g * 17 } else { vert_2_g = top_g * 23 + curr_g * 22 } else { vert_2_g = top_g * 17 + curr_g * 27 } vert_2_g = Clip3( GrainMin, GrainMax, Round2(vert_2_g, 5) ) noiseImage[ plane ][ y ][ x ] = vert_2_g// 只有豎直混合 } // end Vertical blending 2 else { noiseImage[ plane ][ y ][ x ] = curr_g } // 沒有混合} // 結束平面} // 結束 x 遞增lumaNum ++ } // 結束 y 遞增 |
在上面的偽代碼3中,解碼器系統700基於lumaNum的值一次檢查訊框內的一行塊。例如,在圖8的上下文中,lumaNum==0指包括塊A和B的一行塊,而lumaNum==1是指包括塊C和D的一行塊。
解碼器系統700沿著訊框內的當前塊中的不同圖元位置(由座標x和y指示)循環(例如,使用兩個for循環)。訊框具有高度h和寬度w。每個區塊可以具有高度(h+1)/2和寬度(w+1)/2。在一些實例中,塊在明度空間中可以為32圖元×32圖元,及/或在色度空間中可以為16圖元×16圖元。
對於給定圖元,解碼器系統700基於參數grain_seed取回暫存器RandomRegister_0的值。在一些態樣,參數grain_seed是顆粒參數265及/或膠片顆粒參數605的實例。解碼器系統700使用下文在偽代碼4中進一步示出的函數get_random_number_0()來決定亂數值rand。解碼器系統700可以存取明度顆粒陣列(LumaGrain)和一或多個色度顆粒陣列(CbGrain,CrGrain)。
在給定的一行塊內,解碼器系統700可以參考當前塊(由具有術語「curr」的變數指示)、當前塊左側的左塊(由具有術語「left」的變數指示)、當前塊上方的頂塊(由具有術語「top」的變數指示)及/或當前塊上方和左側的左上塊(由具有術語「top_left」的變數指示)。例如,若當前塊是圖8的塊D,則左側塊是塊C,頂塊是塊B,並且左上塊是塊A。取決於解碼器系統700參考哪個塊作為當前塊,這些中的一些可能不適用。例如,若當前塊是塊B,則左塊是塊A,並且不存在頂塊或左上塊。
解碼器系統700使用亂數值rand在x和y維度上產生偏移,該偏移指示顆粒陣列中特定雜訊圖元在顆粒陣列內的特定組或塊的雜訊圖元資料(例如,雜訊圖元資料310、雜訊圖元資料320、雜訊圖元資料330、雜訊圖元資料340、雜訊圖元資料410、雜訊圖元資料420、雜訊圖元資料430、雜訊圖元資料440、雜訊圖元資料510、雜訊圖元資料520、雜訊圖元資料530或雜訊圖元資料540)的位置內相對於該特定組或塊的雜訊圖元資料的位置。這些偏移是每塊決定的。例如,指示當前塊的特定雜訊圖元的位置的x和y維度中的偏移分別指示為offsetX_curr和offset_curr。解碼器系統700可以將先前決定的rand值(當其他塊被設置為當前塊時由解碼器決定)分別設置為rand_left、rand_top及/或rand_top_left。解碼器系統700可以使用這些隨機值來分別產生左塊的x和y維度上的偏移(offset_left和offsetY_left)、頂塊的x和y維度上的偏移(offset_top和offsetY_top)及/或左上塊的x和y維度上的偏移(offset_top_left和offset_top_left)。若lumaNum>0(例如,在圖8的上下文中塊是C或D),則解碼器系統700能夠決定offset_top、offset_top、offset_top_left及/或offset_top_left。解碼器系統700能夠基於根據grain_seed和函數get_random_number_1()設置的暫存器RandomRegister_1中的值來決定這些,這在下文的偽代碼4中進一步示出。
解碼器系統700亦決定平面偏移,該平面偏移指示顆粒陣列內每個相應組或塊的雜訊圖元資料(例如,雜訊圖元資料310、雜訊圖元資料320、雜訊圖元資料330、雜訊圖元資料340、雜訊圖元資料410、雜訊圖元資料420、雜訊圖元資料430、雜訊圖元資料440、雜訊圖元資料510、雜訊圖元資料520、雜訊圖元資料530或雜訊圖元資料540)的位置。這些偏移是每塊決定的。例如,指示當前塊的當前組或塊的雜訊圖元資料的位置的x和y維度上的偏移分別指示為planeOffsetX_curr和planeOffsetY_curr。解碼器系統700可以類似地分別決定左側組或塊的雜訊圖元資料的x和y維度上的平面偏移(planeOffsetX_left和planeOffsetY_left)、頂部組或塊的雜訊圖元資料的x和y維度上的平面偏移(planeOffsetX_top和planeOffsetY_top)、及/或左上組或塊的雜訊圖元資料的x和y維度上的平面偏移(planeOffsetX_top_left和planeOffsetY_top_left)。這些平面偏移中的每一個可以是圖2的雜訊圖元資料區塊的偏移、使用隨機偏移產生器635產生的偏移及/或使用隨機偏移產生器710產生的偏移的實例。因此,在一些實例中,解碼器系統700能夠例如使用planeOffsetX_curr+offsetX_curr和planeOffsetY_curr+offsetY_curr、planeOffsetX_left+offsetX_left和planeOffsetY_left+offsetY_left、planeOffsetX_top+offsetX_top和planeOffsetY_top+offsetY_top及/或planeOffsetX_top_left+offsetX_top_left和planeOffsetY_top_left+offsetY_top_left。
解碼器系統700循環經由對應於不同圖元的x和y座標的i和j的不同值,以根據至少一個組或塊的雜訊圖元資料來決定那些圖元的顆粒值。例如,解碼器系統700根據上面論述的各種平面偏移及/或偏移,產生curr_g作為當前塊或組的雜訊圖元資料的由i,j指示的圖元的顆粒值。取決於哪個塊是當前塊,解碼器系統700亦能夠使用上面論述的各種平面偏移及/或偏移來產生left_g作為左側塊或組的雜訊圖元資料的由i,j指示的圖元的顆粒值,產生top_g作為頂塊或組的雜訊圖元資料的由i,j指示的圖元的顆粒值,及/或產生top_left_g作為左上塊或組的雜訊圖元資料的由i,j指示的圖元的顆粒值。
解碼器系統700隨後決定解碼器系統700正在決定其值的當前雜訊圖元是否落在其中兩個或兩個以上塊或組的雜訊圖元資料重疊的重疊區域內,如在圖4和圖8中水平混合450被執行的兩列圖元中,或者在圖4和圖8中豎直混合455被執行的兩行圖元中。若是,則解碼器系統700確保從可應用的塊或組的雜訊圖元資料中的每一個獲得圖元的雜訊圖元資料,將這些混合在一起,對混合值進行移位及/或限幅及/或捨入,並輸出結果作為雜訊影像(noiseImage)的一部分。雜訊影像可以是訊框雜訊資料355、圖4中所示的雜訊圖元資料、雜訊影像550、膠片顆粒圖元670、膠片顆粒圖元725、顆粒影像850或其組合的實例。例如,對於水平混合450(例如,雜訊圖元825),解碼器系統700將curr_g與top_g混合。對於豎直混合455(例如,雜訊圖元805、840),解碼器系統700將curr_g與left_g混合。對於具有水平混合450和豎直混合455兩者的情況(例如,雜訊圖元820),解碼器系統700混合curr_g、left_g、top_g和top_left_g。對於不在重疊區域中的圖元(例如,雜訊圖元810、815、830、835),不需要混合,並且因此解碼器能夠在不混合的情況下使用curr_g。解碼器系統700繼續遍歷其各種循環,以隨著時間的推移逐漸繼續決定noiseImage的不同圖元的越來越多的值。在一些實例中,解碼器系統700最終以此種方式產生整個noiseImage。
在說明性實例中,在上面的偽代碼3中調用的分別用於產生隨機值rand和rand_top的函數get_random_number_0()和get_random_number_1()能夠根據下面的偽代碼4操作:
偽代碼4
get_random_number_0( bits ) { r = RandomRegister_0 bit = ((r >> 0) ^ (r >> 1) ^ (r >> 3) ^ (r >> 12)) & 1 r = (r >> 1) | (bit << 15) result = (r >> (16 - bits)) & ((1 << bits) - 1) RandomRegister_0 = r return result } get_random_number_1( bits ) { r = RandomRegister_1 bit = ((r >> 0) ^ (r >> 1) ^ (r >> 3) ^ (r >> 12)) & 1 r = (r >> 1) | (bit << 15) result = (r >> (16 - bits)) & ((1 << bits) - 1) RandomRegister_1 = r return result } |
應該理解,上面在偽代碼1、偽代碼2、偽代碼3及/或偽代碼4中提供的偽代碼實例是用於產生顆粒陣列資料、動態地取回對應於給定重構圖元的雜訊圖元資料及/或從雜訊圖元資料產生雜訊資料(例如,經由捨入、移位、限幅及/或混合雜訊圖元資料)的技術的說明性非限制性實例。在一些實例中,可以修改、重新排列、添加或移除偽代碼。在一些實例中,例如,偽代碼實例中的一或多個(例如,偽代碼1、偽代碼2、偽代碼3及/或偽代碼4)能夠被配置及/或排列在解碼器系統中(及/或被修改),使得偽代碼提供用於執行的操作中的一或多個(例如,產生顆粒陣列資料、動態地取回對應於給定重構圖元的雜訊圖元資料及/或從雜訊圖元資料產生雜訊資料)能夠與偽代碼提供用於執行的一或多個其他操作並存執行,例如如圖9B所示。
圖9A是示出用於使用解碼器系統600進行水平混合905、豎直混合910和雜訊添加915的等時線920的概念圖900,其中解碼器系統600在將雜訊資料添加到解碼視訊訊框之前產生用於整個視訊訊框的雜訊資料。因為解碼器系統600針對你整個視訊訊框執行水平混合905和豎直混合910以在將雜訊影像添加到解碼視訊訊框之前產生整個雜訊影像,所以水平混合905、豎直混合910和雜訊添加915順序地而不是並行地執行。
圖9B是示出用於使用解碼器系統700進行水平混合、豎直混合和雜訊添加的等時線960的概念圖950,其中解碼器系統700以在逐圖元基礎上產生雜訊資料,並在逐圖元基礎上將雜訊資料添加到解碼視訊訊框中。因為解碼器系統700在逐圖元基礎上,在執行中動態地執行水平混合905和豎直混合910,所以解碼器系統700能夠並行地執行水平混合905、豎直混合910和雜訊添加915。例如,一旦圖元0完成水平混合905,解碼器系統700就能夠執行圖元1的水平混合905,同時亦並存執行圖元0的豎直混合910。之後,解碼器系統700能夠執行圖元2的水平混合905,同時亦並存執行圖元1的豎直混合910,並且同時亦並存執行圖元0的雜訊添加915。之後,解碼器系統700能夠執行圖元3的水平混合905,同時亦並存執行圖元2的豎直混合910,並且同時亦並存執行圖元1的雜訊添加915。與解碼器系統600相比,這種並行化處理導致解碼器系統700顯著節省時間。
圖10是示出轉碼器程序1000的流程圖。轉碼器程序1000可以由轉碼器系統執行。在一些實例中,轉碼器系統能夠包括例如視訊源102、編碼設備104、編碼引擎106、存放裝置108、輸出110、通訊鏈路120、解碼設備112、輸入114、解碼器引擎116、儲存裝置118、視訊目的地設備122、轉碼器系統200、去噪器210、編碼引擎220、解碼引擎230、分析引擎240、減法器250、細微性估計引擎260、細微性產生器270、加法器280、編碼器290、解碼器295、解碼器系統600、解碼器系統700、計算系統1100、處理器1110、裝置、儲存用於由一或多個處理器執行的指令的非暫時性電腦可讀取媒體、移動手持機、頭戴式顯示器(HMD)、無線通訊設備或其組合。
在操作1005中,轉碼器系統被配置為並且能夠從儲存在片上記憶體內的顆粒陣列取回與至少一個重構視訊圖元相關聯的雜訊圖元資料。顆粒陣列的實例包括顆粒圖元資料275、顆粒陣列305、顆粒陣列620或其組合。片上記憶體的實例包括儲存裝置118及/或顆粒記憶體705。雜訊圖元資料的實例包括以下中的任何一個的至少一個圖元:顆粒圖元資料275、雜訊圖元資料310、雜訊圖元資料320、雜訊圖元資料330、雜訊圖元資料340、訊框雜訊資料355、雜訊圖元資料410、雜訊圖元資料420、雜訊圖元資料430、雜訊圖元資料440、雜訊圖元資料510、雜訊圖元資料520、雜訊圖元資料530、雜訊圖元資料540、雜訊影像675、顆粒讀取資料735、雜訊圖元805-840或其組合。至少一個重構視訊圖元的實例包括以下任何一個的至少一個圖元:解碼視訊235、視訊訊框350、塊315、塊325、塊335、塊345、解碼視訊訊框505、塊515、塊525、塊535、塊545、重構圖元655或其組合。
在一些態樣,顆粒陣列是明度顆粒陣列,並且雜訊圖元資料包括明度雜訊圖元資料。在一些態樣,顆粒陣列是色度顆粒陣列,並且雜訊圖元資料包括色度雜訊圖元資料。
在一些態樣,轉碼器系統被配置為並且能夠使用細微性參數(例如,細微性參數265、FG參數605)來產生細微性陣列。基於視訊資料(例如,輸入視訊205、去噪視訊215、編碼視訊225及/或視訊訊框350)來決定顆粒參數。至少一個重構視訊圖元被配置為重構視訊資料的圖元。在一些態樣,轉碼器系統被配置為並且能夠將顆粒陣列儲存在片上記憶體中。
在一些態樣,轉碼器系統被配置為並且內部基於偏移來辨識顆粒陣列中的雜訊圖元資料的位置,以取回雜訊圖元資料。偏移對應於至少一個重構視訊圖元是其一部分的塊。偏移的實例包括指示圖3中的顆粒陣列305內的雜訊圖元資料310、320、330和340的位置的偏移。偏移的其他實例包括使用隨機偏移產生器635及/或隨機偏移產生器710產生的偏移、包括偽代碼3中的文字「PlaneOffsetX」的偏移、包括偽代碼3中的文字「PlaneOffsetY」的偏移、包括偽代碼3中的文字「OffsetX」的偏移、包括偽代碼3中的文字「OffsetY」的偏移或其組合。在一些態樣,偏移基於隨機產生的值(例如,來自隨機偏移產生器635及/或隨機偏移產生器710)來決定。在一些態樣,基於(例如,輸入視訊205、去噪視訊215、編碼視訊225及/或視訊訊框350的)視訊訊框的訊框大小(例如,訊框寬度、訊框高度或兩者)來決定偏移。訊框大小的實例包括訊框寬度和高度625。至少一個重構視訊圖元被配置為重構視訊訊框的至少一個圖元。在一些態樣,塊基於訊框大小。例如,塊的大小和位置(或多個)可以取決於訊框大小。
在操作1010中,轉碼器系統被配置為並且能夠將雜訊資料應用於至少一個重構視訊圖元,以產生至少一個輸出視訊圖元,其中雜訊資料基於雜訊圖元資料來決定。雜訊資料的實例包括以下任何一個中的至少一個圖元:顆粒圖元資料275、雜訊圖元資料310、雜訊圖元資料320、雜訊圖元資料330、雜訊圖元資料340、訊框雜訊資料355、雜訊圖元資料410、雜訊圖元資料420、雜訊圖元資料430、雜訊圖元資料440、水平混合450、豎直混合455、雜訊圖元資料510、雜訊圖元資料520、雜訊圖元資料530、雜訊圖元資料540、水平混合640、豎直混合645、縮放器、移位器/捨入器/加法器/限幅器引擎665、膠片顆粒圖元670、由水平/豎直混合引擎715進行的水平及/或豎直混合、膠片顆粒圖元725、雜訊圖元805-840或其組合。至少一個輸出視訊圖元的實例包括以下中的至少一個圖元:輸出視訊285、輸出訊框560、雜訊添加915或其組合。
在一些態樣,轉碼器系統被配置為並且能夠從儲存在片上記憶體內的顆粒陣列取回次級雜訊圖元資料。次級雜訊圖元資料與至少一個重構視訊圖元相關聯。基於雜訊圖元資料和次級雜訊圖元資料來決定操作1010的雜訊資料。在一些態樣,轉碼器系統被配置為並且能夠混合雜訊圖元資料和次級雜訊圖元資料以決定雜訊資料。視訊訊框中的至少一個重構視訊圖元的至少一個位置對應於視訊訊框的複數個塊被排列為重疊的重疊區域。例如,若至少一個重構視訊圖元的位置對應於重疊區域,諸如用於水平混合的區域450中的圖元列及/或用於豎直混合的區域455中的圖元行,則轉碼器系統能夠取回與多個塊相對應的雜訊圖元資料,並且能夠混合取回的雜訊圖元資料以產生操作1010的雜訊資料。另外的實例包括雜訊圖元805(具有混合在一起的來自塊A和塊B的雜訊圖元資料)、雜訊圖元820(具有混合在一起的來自塊A、B、C和D的雜訊圖元資料)、雜訊圖元825(具有混合在一起的來自塊A和C的雜訊圖元資料)和雜訊圖元825(具有混合在一起的來自塊C和D的雜訊圖元資料)。
在一些態樣,轉碼器系統被配置為並且能夠在基於次級雜訊圖元資料決定次級雜訊資料的同時將雜訊資料應用於至少一個重構視訊圖元。從儲存在片上記憶體內的顆粒陣列取回次級雜訊圖元資料。次級雜訊圖元資料與至少第二重構視訊圖元相關聯。例如,在圖9B的上下文中,轉碼器系統能夠對一個圖元(例如,圖元0)執行雜訊添加915,同時對另一圖元(例如,圖元2)執行水平混合905及/或同時對另一圖元(例如,圖元1)執行豎直混合910。
在一些態樣,轉碼器系統被配置為並且能夠在從儲存在片上記憶體內的顆粒陣列取回與至少第二重構視訊圖元相關聯的次級雜訊圖元資料的同時,將雜訊資料應用於至少一個重構視訊圖元。例如,在圖9B的上下文中,轉碼器系統能夠對一個圖元(例如,圖元0)執行雜訊添加915,同時取回要與雜訊圖元資料混合(經由水平混合905及/或豎直混合910)的另一圖元(例如,圖元1、圖元2或圖元3)的次級雜訊圖元資料。
在一些態樣,轉碼器系統被配置為並且能夠在從儲存在片上記憶體內的顆粒陣列取回與至少第二重構視訊圖元相關聯的次級雜訊圖元資料的同時決定雜訊圖元資料。例如,在圖9B的上下文中,轉碼器系統能夠對一個圖元(例如,圖元2)執行水平混合905,同時取回另一圖元(例如,圖元3)的次級雜訊圖元資料。類似地,在圖9B的上下文中,轉碼器系統能夠對一個圖元(例如,圖元1)執行豎直混合910,同時取回另一圖元(例如,圖元2或圖元3)的次級雜訊圖元資料。
在一些態樣,轉碼器系統被配置為並且能夠在逐圖元基礎上執行某些操作。例如,轉碼器系統能夠在逐圖元基礎上執行從儲存在片上記憶體內的顆粒陣列取回雜訊圖元資料(如在操作1005中),基於雜訊圖元資料決定雜訊資料(例如,包括混合),及/或將雜訊資料應用於至少一個重構視訊圖元(例如,如在操作1010中)。
在一些態樣,轉碼器系統被配置為並且能夠將縮放因數應用於至少一個輸出視訊圖元、捨入至少一個輸出視訊圖元的圖元值、限幅至少一個輸出視訊圖元的圖元值或其某個組合(例如,使用縮放查閱資料表(lut)660及/或移位器/捨入器/加法器/限幅器引擎665)。
在一些態樣,至少一個記憶體被配置為儲存至少一個重構視訊圖元。在一些態樣,轉碼器系統被配置為並且能夠將至少一個重構視訊圖元儲存在至少一個記憶體中。在一些態樣,轉碼器系統被配置為並且能夠輸出至少一個輸出視訊圖元以儲存在至少一個記憶體中。在一些態樣,轉碼器系統包括被配置為顯示至少一個輸出視訊圖元的顯示器(例如,視訊目的地設備122、輸出設備1135)。在一些態樣,轉碼器系統包括通訊介面,該通訊介面被配置為將至少一個輸出視訊圖元發送到接收方設備。
在一些態樣,轉碼器系統被配置為並且能夠編碼(例如,使用編碼設備104、編碼引擎106、編碼器290及/或編碼引擎220)視訊資料(例如,視訊源102、輸入視訊205及/或去噪視訊215)以產生編碼視訊資料(例如,輸出110、輸入114、編碼視訊225)並解碼(例如,使用解碼設備112、解碼器引擎116、解碼器295及/或解碼引擎230)至少編碼視訊資料以產生至少一個重構視訊圖元。
在一些態樣,轉碼器系統與AOMediaVideo1(AV1)格式、AV1轉碼器、AV1編碼器、AV1解碼器或其組合相關聯。
在一些實例中,成像系統能夠包括:用於從儲存在作為處理器的一部分的片上記憶體內的顆粒陣列取回與至少一個重構視訊圖元相關聯的雜訊圖元資料的部件;及用於將雜訊資料應用於至少一個重構視訊圖元以產生至少一個輸出視訊圖元的部件,其中雜訊資料基於雜訊圖元資料來決定
在一些實例中,用於取回雜訊圖元資料的部件包括解碼設備112、解碼器引擎116、解碼器295、顆粒產生器270、解碼器系統600(例如,經由雜訊影像顆粒讀取675及/或來自DDR/記憶體650的其他顆粒讀取)、DDR/記憶體650、雜訊影像產生器630、隨機偏移產生器635、解碼器系統700(例如,經由顆粒讀取請求730及/或顆粒讀取資料735)、顆粒記憶體705、計算系統1100或其組合。
在一些實例中,用於將雜訊資料應用於至少一個重構視訊圖元的部件包括解碼設備112、解碼器引擎116、解碼器295、解碼引擎230、顆粒產生器270、加法器280、解碼器系統600、雜訊影像產生器630、用於水平混合的引擎(或多個)640、用於豎直混合的引擎(或多個)645、縮放查閱資料表(lut)660、移位器/捨入器/加法器/限幅器引擎665、解碼器系統700、水平/豎直混合引擎715、計算系統1100或其組合。
在一些實例中,本文描述的程序(例如,圖1、圖2、圖3、圖5、圖6、圖7、圖8的相應程序、圖10的程序1000及/或本文描述的其他程序)可以由計算設備或裝置執行。在一些實例中,本文描述的程序能夠由及/或使用視訊源102、編碼設備104、編碼引擎106、儲存裝置108、輸出110、通訊鏈路120、解碼設備112、輸入114、解碼器引擎116、儲存裝置118、視訊目的地設備122、轉碼器系統200、去噪器210、編碼引擎220、解碼引擎230、分析引擎240、減法器250、細微性估計引擎260、細微性產生器270、加法器280、編碼器290、解碼器295、解碼器系統600、解碼器系統700、計算系統1100、處理器1110或其組合來執行。
計算設備能夠包括任何合適的設備,諸如行動設備(例如,行動電話)、臺式計算設備、平板計算設備、可穿戴設備(例如,VR頭戴式耳機、AR頭戴式耳機、AR眼鏡、網路連接手錶或智慧手錶、或其他可穿戴設備)、伺服器電腦、車輛或車輛的計算設備、機器人設備、電視、及/或具有執行這裡描述的程序的資源能力的任何其他計算設備。在一些情況下,計算設備或裝置可以包括各種部件,例如一或多個輸入設備、一或多個輸出設備、一或多個處理器、一或多個微處理器、一或多個微電腦、一或多個相機、一或多個感測器及/或被配置為執行本文描述的程序的步驟的其他部件(或多個)。在一些實例中,計算設備可以包括顯示器、被配置為傳送及/或接收資料的網路介面、其任何組合及/或其他部件(或多個)。網路介面可以被配置為傳送及/或接收基於網際網路協定(IP)的資料或其他類型的資料。
計算設備的部件能夠在電路中實現。例如,部件能夠包括電子電路或其他電子硬體及/或能夠使用電子電路或其他電子硬體來實施,電子電路或其他電子硬體能夠包括一或多個可程式設計電子電路(例如,微處理器、圖形處理單元(GPU)、數位訊號處理器(DSP)、中央處理單元(CPU)及/或其他合適的電子電路),及/或能夠包括電腦軟體、韌體或其任何組合及/或使用電腦軟體、韌體或其任何組合來實現,以執行本文描述的各種操作。
這裡描述的程序被示出為邏輯流程圖、方塊圖或概念圖,其動作表示能夠在硬體、電腦指令或其組合中實現的一系列操作。在電腦指令的上下文中,動作表示儲存在一或多個電腦可讀取儲存媒體上的電腦可執行指令,該等指令當由一或多個處理器執行時,執行操作。通常,電腦可執行指令包括執行特定功能或實現特定資料類型的常式、程式、物件、部件、資料結構等。描述操作的順序不意欲被解釋為限制,並且任何數量的所描述的操作能夠以任何順序及/或並行地組合以實現程序。在一些實例中,本文描述的某些操作的執行能夠回應於本文描述的其他操作的執行。
另外,本文描述的程序可以在配置有可執行指令的一個或一個以上電腦系統的控制下執行,並且可以被實現為在一個或一個以上處理器上、經由硬體或其組合共同執行的代碼(例如,可執行指令、一或多個電腦程式或一或多個應用)。如前述,代碼可以例如以包括可由一或多個處理器執行的複數個指令的電腦程式的形式儲存在電腦可讀或機器可讀儲存媒體上。電腦可讀或機器可讀儲存媒體可以是非暫時性的。
圖11是示出用於實現本技術的某些態樣的系統的實例的示圖。特別地,圖11圖示計算系統1100的實例,其能夠是例如構成內部計算系統、遠端計算系統、相機或其任何部件的任何計算設備,其中系統的部件使用連接1105彼此通訊。連接1105能夠是使用匯流排的實體連接,或者是到處理器1110中的直接連接,諸如在晶片組架構中。連接1105亦能夠是虛擬連接、聯網連接或邏輯連接。
在一些態樣,計算系統1100是分散式系統,其中本案中描述的功能能夠分佈在資料中心、多個資料中心、對等網路等內。在一些態樣,描述的系統部件中的一或多個表示許多此類部件,每個部件執行針對其描述部件的功能中的一些或全部。在一些態樣,部件能夠是實體或虛擬裝置。
實例系統1100包括至少一個處理單元(CPU或處理器)1110和連接1105,該連接1105將包括系統記憶體1115的各種系統部件(諸如,唯讀記憶體(ROM)1120和隨機存取記憶體(RAM)1125)耦接到處理器1110。計算系統1100能夠包括與處理器1110直接連接、緊鄰處理器1110或整合為處理器1110的一部分的高速記憶體的快取記憶體1112。
處理器1110能夠包括任何通用處理器和硬體服務或軟體服務,諸如儲存在存放裝置1130中的服務1132、1134和1136,其被配置為控制處理器1110以及專用處理器,其中軟體指令被結合到實際的處理器設計中。處理器1110可以基本上是完全自包含的計算系統,其包含多個核或處理器、匯流排、記憶體控制器、快取記憶體等。多核處理器可以是對稱的或不對稱的。
為了實現使用者互動,計算系統1100包括輸入設備1145,其能夠表示任何數量的輸入機構,諸如用於語音的麥克風、用於手勢或圖形輸入的觸敏螢幕、鍵盤、滑鼠、運動輸入、語音等。計算系統1100亦能夠包括輸出設備1135,其能夠是多個輸出機構中的一或多個。在一些實例中,多模態系統能夠使使用者能夠提供多種類型的輸入/輸出以與計算系統1100通訊。計算系統1100能夠包括通訊介面1140,其通常能夠支配和管理使用者輸入和系統輸出。通訊介面可以使用有線及/或無線收發器來執行或促進接收及/或發送有線或無線通訊,包括利用音訊插孔/插頭、麥克風插孔/插頭、通用序列匯流排(USB)埠/插頭、Apple® Lightning®埠/插頭、乙太網路埠/插頭、光纖埠/插頭、專有有線埠/插頭、BLUETOOTH®無線訊號傳送、BLUETOOTH®低功耗(BLE)無線訊號傳送、IBEACON®無線訊號傳送、射頻辨識(RFID)無線訊號傳送、近場通訊(NFC)無線訊號傳送、專用短程通訊(DSRC)無線訊號傳送、1102.11 Wi-Fi無線訊號傳送、無線區域網路(WLAN)訊號傳送、可見光通訊(VLC)、全球互通微波存取性(WiMAX)、紅外(IR)通訊無線訊號傳送、公用交換電話網絡(PSTN)訊號傳送、3G/4G/5G/LTE蜂巢資料網路無線訊號傳送、ad-hoc網路訊號傳送、無線電波訊號傳送、微波訊號傳送、紅外訊號傳送、可見光訊號傳送、紫外光訊號傳送、沿電磁頻譜的無線訊號傳送或其某種組合。通訊介面1140亦可以包括一或多個全球導航衛星系統(GNSS)接收器或收發器,其用於基於從與一或多個GNSS系統相關聯的一或多個衛星接收到一或多個訊號來決定計算系統1100的位置。GNSS系統包括但不限於基於美國的全球定位系統(GPS)、基於俄羅斯的全球導航衛星系統(GLONASS)、基於中國的北斗導航衛星系統(BDS)和基於歐洲的伽利略GNSS。對在任何特定硬體排列上操作沒有限制,並且因此這裡的基本特徵可以容易地在改進的硬體或韌體排列被開發時替換為改進的硬體或韌體排列。
存放裝置1130能夠是非揮發性及/或非暫時性及/或電腦可讀存放裝置,並且能夠是硬碟或能夠儲存可由電腦存取的資料的其他類型的電腦可讀取媒體,諸如磁帶盒、快閃記憶卡、固態存放裝置、數字通用盤、盒式磁帶、軟碟、柔性盤、硬碟、磁帶、磁條/磁切片、任何其他磁儲存媒體、快閃記憶體、憶阻器記憶體、任何其他固態記憶體、光碟唯讀記憶體(CD-ROM)光碟、可重寫光碟(CD)光碟、數位視訊盤(DVD)光碟、藍光光碟(BDD)光碟、全息光碟、另一種光學媒體、安全數位(SD)卡、微安全數位(microSD)卡、Memory Stick®卡、智慧卡晶片、EMV晶片、用戶身份模組(SIM)卡、迷你/微型/奈米/微微SIM卡、另一積體電路(IC)晶片/卡、隨機存取記憶體(RAM)、靜態RAM(SRAM)、動態RAM(DRAM)、唯讀記憶體(ROM)、可程式設計唯讀記憶體(PROM)、可抹除可程式設計唯讀記憶體(EPROM)、電子可抹除可程式設計唯讀記憶體(EEPROM)、快閃記憶體EPROM(FLASHEPROM)、快取緩衝記憶體(L1/L2/L3/L4/L5/L#)、電阻隨機存取記憶體(RRAM/ReRAM)、相變記憶體(PCM)、自旋轉移力矩RAM(STT-RAM)、另一記憶體晶片或承載及/或其組合。
存放裝置1130能夠包括軟體服務、伺服器、服務等,當定義這種軟體的代碼由處理器1110執行時,它使系統執行功能。在一些態樣,執行特定功能的硬體服務能夠包括儲存在電腦可讀取媒體中的軟體部件,其與必要的硬體部件(例如,處理器1110、連接1105、輸出設備1135等)相結合以執行該功能。
如本文中所使用,術語「電腦可讀取媒體」包括但不限於可攜式或非可攜式存放裝置、光學存放裝置和能夠儲存、包含或攜載指令(或多個)及/或資料的各種其他媒體。電腦可讀取媒體可以包括其中能夠儲存資料且不包括無線地或經由有線連接傳播的載波及/或暫時性電子訊號的非暫時性媒體。非暫時性媒體的實例可以包含(但不限於)磁碟或磁帶、光學儲存媒體(諸如光碟(CD)或數位多功能光碟(DVD))、快閃記憶體、記憶體或記憶體設備。電腦可讀取媒體可以具有儲存在其上的代碼及/或機器可執行指令,代碼及/或機器可執行指令可以表示程式、函數、副程式、程式、常式、子常式、模組、套裝軟體、類別,或指令、資料結構或程式語句的任何組合。程式碼片段可以經由傳遞及/或接收資訊、資料、引數、參數或記憶體內容而耦接到另一程式碼片段或硬體電路。可以使用包括記憶體共享、訊息傳遞、符記傳遞、網路傳輸等的任何合適的手段來傳遞、轉發或發送資訊、引數、參數、資料等。
在一些態樣,電腦可讀存放裝置、媒體和記憶體能夠包括包含位元串流等的線纜或無線訊號。然而,當提到時,非暫時性電腦可讀取儲存媒體明確地排除諸如能量、載波訊號、電磁波和訊號本身之類的媒體。
在以上描述中提供了具體細節以提供對本文提供的態樣和實例的透徹理解。然而,本發明所屬領域中具有通常知識者將理解,可以在沒有這些具體細節的情況下實踐這些態樣。為了清楚解釋,在一些情況下,本技術可以被呈現為包括單獨的功能方塊,其包括包含設備、設備部件、以軟體或硬體和軟體的組合體現的方法中的步驟或常式的功能方塊。除了在附圖中示出及/或在本文中描述的那些部件之外,可以使用額外部件。例如,電路、系統、網路、程序和其他部件可以以方塊圖形式示出為部件,以免以不必要的細節模糊這些態樣。在其他實例中,可以在沒有不必要的細節的情況下示出公知的電路、程序、演算法、結構和技術,以便避免模糊這些態樣。
以上可以將各個態樣描述為被圖示為流程圖、流程圖、資料流程圖、結構圖或方塊圖的程序或方法。儘管流程圖可以將操作描述為順序程序,但是許多操作能夠並行或同時執行。另外,可以重新排列操作的順序。程序在其操作完成時終止,但是能夠具有未包括在圖中的額外步驟。程序可以對應於方法、函數、程序、子常式、副程式等。當程序對應於函數時,其終止能夠對應於函數返回到調用函數或主函數。
根據上述實例的程序和方法能夠使用儲存在電腦可讀取媒體中或以其他方式可從電腦可讀取媒體獲得的電腦可執行指令來實現。此類指令能夠包括例如使得或以其他方式配置通用電腦、專用電腦或處理設備以執行特定功能或功能組的指令和資料。所使用的電腦資源的各部分能夠經由網路存取。電腦可執行指令可以是例如二進位檔案、諸如組合語言的中間格式指令、韌體、原始程式碼等。可以用於儲存指令、所使用的資訊及/或在根據描述的實例的方法期間建立的資訊的電腦可讀取媒體的實例包括磁碟或光碟、快閃記憶體、設置有非揮發性記憶體的USB設備、聯網存放裝置等等。
根據這些揭示的實現程序和方法的設備能夠包括硬體、軟體、韌體、中介軟體、微代碼、硬體描述語言或其任何組合,並且能夠採用各種形狀因數中的任何一種。當用於執行必要任務的程式碼或程式碼片段(例如,電腦程式產品)以軟體、韌體、中介軟體或微代碼實現時,其可以儲存在電腦可讀或機器可讀取媒體中。處理器(或多個)可以執行必要任務。形狀因數的典型實例包括膝上型電腦、智慧型電話、行動電話、平板設備或其他小形狀因數個人電腦、個人數位助理、機架式設備、獨立設備等等。本文描述的功能亦能夠體現在周邊設備或額外卡中。作為另一實例,此類功能亦能夠在電路板上在單個設備中執行的不同晶片或不同程序之間實現。
指令、用於傳送這些指令的媒體、用於執行這些指令的計算資源以及用於支援這些計算資源的其他結構是用於提供本案中描述的功能的實例部件。
在前面的描述中,參考其特定態樣描述了本案的各態樣,但是本發明所屬領域中具有通常知識者將認識到,本案不限於此。因此,儘管本文已經詳細描述了本案的說明性態樣,但是將理解,除了受現有技術的限制之外,本發明構思可以以其他方式不同地實施和採用,並且所附請求項意欲被解釋為包括此類變型。上述申請的各種特徵和態樣可以單獨地或聯合地使用。此外,在不脫離本說明書的更廣泛的精神和範疇的情況下,能夠在本文描述的環境和應用之外的任何數量的環境和應用中利用各態樣。因此,說明書和附圖被認為是說明性的而不是限制性的。出於說明的目的,以特定順序描述了方法。應該理解,在替代態樣,可以以與所描述的順序不同的順序來執行方法。
具有通常知識者將理解,在不脫離本說明書的範疇的情況下,本文使用的小於(「<」)和大於(「>」)符號或術語能夠分別用小於或等於(「≦」)和大於或等於(「≧」)符號代替。
在部件被描述為「被配置為」執行某些操作的情況下,這種配置能夠例如經由設計電子電路或其他硬體以執行操作、通程序式設計可程式設計電子電路(例如,微處理器或其他合適的電子電路)以執行操作、或其任何組合來實現。
短語「耦接到」是指直接或間接地實體連接到另一部件的任何部件,及/或直接或間接地與另一部件通訊(例如,經由有線或無線連接及/或其他合適的通訊介面連接到其他部件)的任何部件。
敘述集合中的「至少一個」及/或集合中的「一或多個」的請求項語言或其他語言指示該集合中的一個成員或該集合中的多個成員(以任何組合)滿足請求項。例如,敘述「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)、快閃記憶體、磁性或光學資料儲存媒體等。補充或替代地,該等技術可以至少部分地由電腦可讀通訊媒體實現,其中電腦可讀通訊媒體攜載或傳達呈指令或資料結構的形式且能夠由電腦存取、讀取及/或執行的程式碼,例如傳播訊號或波。
程式碼可以由處理器執行,其中處理器可以包括一或多個處理器,諸如一或多個數位訊號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、現場可程式設計邏輯陣列(FPGA)或其他等效整合或離散邏輯電路。這種處理器可以被配置為執行本案中描述的技術中的任何一種。通用處理器可以是微處理器;但在替代方案中,處理器可以為任何習知處理器、控制器、微控制器或狀態機。處理器亦可以實現為計算設備的組合,例如,DSP和微處理器的組合、多個微處理器、一或多個微處理器與DSP核的結合,或者任何其他此類配置。因此,如本文中所使用的術語「處理器」可以指前述結構中的任何一個、前述結構的任何組合或適合於實施本文描述的技術的任何其他結構或設備。另外,在一些態樣,本文描述的功能性可以被設置是在被配置為用於編碼和解碼的專用軟體模組或硬體模組內,或併入於組合的視訊轉碼器-解碼器(CODEC)中。
本案的說明性態樣包括:
態樣1:一種用於視訊解碼的裝置,該裝置包括:至少一個記憶體;和至少一個處理器,包括儲存顆粒陣列的片上記憶體,至少一個處理器被配置為:從儲存在片上記憶體內的顆粒陣列取回與至少一個重構視訊圖元相關聯的雜訊圖元資料;並將雜訊資料應用於至少一個重構視訊圖元以產生至少一個輸出視訊圖元,其中雜訊資料基於雜訊圖元資料來決定。
態樣2. 根據態樣2的裝置,其中至少一個處理器被配置為:從儲存在片上記憶體內的顆粒陣列取回次級雜訊圖元資料,其中次級雜訊圖元資料與至少一個重構視訊圖元相關聯,其中雜訊資料基於雜訊圖元資料和次級雜訊圖元資料來決定。
態樣3. 根據態樣2的裝置,其中至少一個處理器被配置為:混合雜訊圖元資料和次級雜訊圖元資料以決定雜訊資料,其中視訊訊框中的至少一個重構視訊圖元的至少一個位置對應於視訊訊框的複數個塊被排列為重疊的重疊區域。
態樣4. 根據態樣1至3中任一項的裝置,其中至少一個處理器被配置為:使用顆粒參數產生顆粒陣列,其中顆粒參數基於視訊資料來決定,其中至少一個重構視訊圖元被配置為重構視訊資料的圖元。
態樣5. 根據態樣1至4中任一項的裝置,其中至少一個處理器被配置為:將顆粒陣列儲存在片上記憶體中。
態樣6. 根據態樣1至5中任一項的裝置,其中至少一個處理器被配置為:基於偏移來辨識顆粒陣列中的雜訊圖元資料的位置以取回雜訊圖元資料,其中偏移對應於至少一個重構視訊圖元是其一部分的塊。
態樣7. 根據態樣6的裝置,其中偏移基於隨機產生的值來決定。
態樣8. 根據態樣6至7中任一項的裝置,其中偏移基於視訊訊框的訊框大小來決定,其中至少一個重構視訊圖元被配置為重構視訊訊框的至少一個圖元。
態樣9. 根據態樣8的裝置,其中塊基於訊框大小。
態樣10. 根據態樣1至9中任一項的裝置,其中至少一個處理器被配置為:在基於次級雜訊圖元資料決定次級雜訊資料的同時,將雜訊資料應用於至少一個重構視訊圖元,其中,次級雜訊圖元資料從儲存在片上記憶體內的顆粒陣列取回,次級雜訊圖元資料與至少第二重構視訊圖元相關聯。
態樣11. 根據態樣1至10中任一項的裝置,其中至少一個處理器被配置為:從儲存在片上記憶體內的顆粒陣列取回與至少第二重構視訊圖元相關聯的次級雜訊圖元資料。
態樣12. 根據態樣1至11中任一項的裝置,其中至少一個處理器被配置為:從儲存在片上記憶體內的顆粒陣列取回與至少第二重構視訊圖元相關聯的次級雜訊圖元資料。
態樣13. 根據態樣1至12中任一項的裝置,其中雜訊圖元資料被配置為在逐圖元基礎上從儲存在片上記憶體內的顆粒陣列取回。
態樣14. 根據態樣1至13中任一項的裝置,其中雜訊資料被配置為在逐圖元基礎上基於雜訊圖元資料來決定。
態樣15. 根據態樣1至14中任一項的裝置,其中雜訊資料被配置為在逐圖元基礎上應用於至少一個重構視訊圖元。
態樣16. 根據態樣1至15中任一項的裝置,其中顆粒陣列是明度顆粒陣列,並且其中雜訊圖元資料包括明度雜訊圖元資料。
態樣17. 根據態樣1至16中任一項的裝置,其中顆粒陣列是色度顆粒陣列,並且其中雜訊圖元資料包括色度雜訊圖元資料。
態樣18. 根據態樣1至17中任一項的裝置,其中至少一個處理器被配置為:將縮放因數應用於至少一個輸出視訊圖元。
態樣19. 根據態樣1至18中任一項的裝置,其中至少一個處理器被配置為:對至少一個輸出視訊圖元的圖元值進行捨入。
態樣20. 根據態樣1至19中任一項的裝置,其中至少一個處理器被配置為:對至少一個輸出視訊圖元的圖元值進行限幅。
態樣21. 根據態樣1至20中任一項的裝置,其中至少一個記憶體被配置為儲存至少一個重構視訊圖元。
態樣22. 根據態樣1至21中任一項的裝置,其中至少一個處理器被配置為:輸出至少一個輸出視訊圖元以儲存在至少一個記憶體中。
態樣23. 根據態樣1至22中任一項的裝置,亦包括:顯示器,被配置為顯示至少一個輸出視訊圖元。
態樣24. 根據態樣1至23中任一項的裝置,亦包括:通訊介面,被配置為將至少一個輸出視訊圖元發送到接收方設備。
態樣25. 根據態樣1到24中任一項的裝置,其中至少一個處理器被配置為:對視訊資料進行編碼以產生編碼視訊資料;並對至少編碼視訊資料進行解碼以產生至少一個重構視訊圖元。
態樣26. 根據態樣1至25中任一項的裝置,其中裝置包括頭戴式顯示器(HMD)、行動手機或無線通訊設備中的至少一個。
態樣27.一種用於視訊解碼的方法,該方法包括:從儲存在作為處理器的一部分的片上記憶體內的顆粒陣列取回與至少一個重構視訊圖元相關聯的雜訊圖元資料;和將雜訊資料應用於至少一個重構視訊圖元以產生至少一個輸出視訊圖元,其中雜訊資料基於雜訊圖元資料來決定。
態樣28. 根據態樣27的方法,亦包括:從儲存在片上記憶體內的顆粒陣列取回次級雜訊圖元資料,其中次級雜訊圖元資料與至少一個重構視訊圖元相關聯,其中雜訊資料基於雜訊圖元資料和次級雜訊圖元資料來決定。
態樣29. 根據態樣28的方法,亦包括:混合雜訊圖元資料和次級雜訊圖元資料以決定雜訊資料,其中視訊訊框中的至少一個重構視訊圖元的至少一個位置對應於視訊訊框的複數個塊被排列為重疊的重疊區域。
態樣30. 根據態樣27至29中任一項的方法,亦包括:使用顆粒參數產生顆粒陣列,其中顆粒參數基於視訊資料來決定,其中至少一個重構視訊圖元被配置為重構視訊資料的圖元。
態樣31 .根據態樣27至30中任一項的方法,亦包括:將顆粒陣列儲存在片上記憶體中。
態樣32. 根據態樣27至31中任一項的方法,亦包括:基於偏移來辨識顆粒陣列中的雜訊圖元資料的位置以取回雜訊圖元資料,其中偏移對應於至少一個重構視訊圖元是其一部分的塊。
態樣33. 根據態樣32的方法,其中偏移基於隨機產生的值來決定。
態樣34. 根據態樣32至33中任一項的方法,其中偏移基於視訊訊框的訊框大小來決定,其中至少一個重構視訊圖元被配置為重構視訊訊框的至少一個圖元。
態樣35. 根據態樣34的方法,其中塊基於訊框大小。
態樣36. 根據態樣27至35中任一項的方法,亦包括:在基於次級雜訊圖元資料決定次級雜訊資料的同時,將雜訊資料應用於至少一個重構視訊圖元,其中次級雜訊圖元資料從儲存在片上記憶體內的顆粒陣列取回,次級雜訊圖元資料與至少第二重構視訊圖元相關聯。
態樣37. 根據態樣27至36中任一項的方法,亦包括:從儲存在片上記憶體內的顆粒陣列取回與至少第二重構視訊圖元相關聯的次級雜訊圖元資料。
態樣38. 根據態樣27至37中任一項的方法,亦包括:從儲存在片上記憶體內的顆粒陣列取回與至少第二重構視訊圖元相關聯的次級雜訊圖元資料。
態樣39. 根據態樣27至38中任一項的方法,其中雜訊圖元資料被配置為在逐圖元基礎上從儲存在片上記憶體內的顆粒陣列取回。
態樣40. 根據態樣27至39中任一項的方法,其中雜訊資料被配置為在逐圖元基礎上基於雜訊圖元資料來決定。
態樣41. 根據態樣27至40中任一項的方法,其中雜訊資料被配置為在逐圖元基礎上應用於至少一個重構視訊圖元。
態樣42. 根據態樣27至41中任一項的方法,其中顆粒陣列是明度顆粒陣列,並且其中雜訊圖元資料包括明度雜訊圖元資料。
態樣43. 根據態樣27至42中任一項的方法,其中顆粒陣列是色度顆粒陣列,並且其中雜訊圖元資料包括色度雜訊圖元資料。
態樣44. 根據態樣27至43中任一項的方法,亦包括:將縮放因數應用於至少一個輸出視訊圖元。
態樣45. 根據態樣27至44中任一項的方法,亦包括:對至少一個輸出視訊圖元的圖元值進行捨入。
態樣46. 根據態樣27至45中任一項的方法,亦包括:對至少一個輸出視訊圖元的圖元值進行限幅。
態樣47. 根據態樣27至46中任一項的方法,其中至少一個記憶體被配置為儲存至少一個重構視訊圖元。
態樣48. 根據態樣27至47中任一項的方法,亦包括:輸出至少一個輸出視訊圖元以儲存在至少一個記憶體中。
態樣49. 根據態樣27至48中任一項的方法,亦包括:使顯示器顯示至少一個輸出視訊圖元。
態樣50. 根據態樣27至49中任一項的方法,亦包括:使通訊介面將至少一個輸出視訊圖元發送到接收方設備。
態樣51. 根據態樣27到50中任一項的方法,亦包括:對視訊資料進行編碼以產生編碼視訊資料;和對至少編碼視訊資料進行解碼以產生至少一個重構視訊圖元。
態樣52. 根據態樣27至51中任一項的方法,其中該方法使用包括頭戴式顯示器(HMD)、移動手持機或無線通訊設備中的至少一個的裝置來執行。
態樣53:一種其上儲存有指令的非暫時性電腦可讀取媒體,該等指令在由具有片上記憶體的至少一個處理器執行時使至少一個處理器:從儲存在片上記憶體內的顆粒陣列取回與至少一個重構視訊圖元相關聯的雜訊圖元資料;並將雜訊資料應用於至少一個重構視訊圖元以產生至少一個輸出視訊圖元,其中雜訊資料基於雜訊圖元資料來決定。
態樣54:根據態樣53的非暫時性電腦可讀取媒體,亦包括根據態樣2到26中任一項及/或態樣28到52中任一項的操作。
態樣55:一種用於視訊解碼的裝置,該裝置包括:用於從儲存在作為處理器的一部分的片上記憶體內的顆粒陣列取回與至少一個重構視訊圖元相關聯的雜訊圖元資料的部件;和用於將雜訊資料應用於至少一個重構視訊圖元以產生至少一個輸出視訊圖元的部件,其中雜訊資料基於雜訊圖元資料來決定。
態樣56:根據態樣55的裝置,亦包括用於執行根據態樣2到26中任一項及/或態樣28到52中任一項的操作的部件。
100:系統
102:視訊源
104:編碼設備
106:編碼器引擎
108:儲存裝置
110:輸出
112:解碼設備
114:輸入
116:解碼器引擎
118:儲存裝置
120:通訊鏈路
122:視訊目的地設備
200:轉碼器系統
205:輸入視訊
210:去噪器
215:去噪視訊
220:編碼引擎
225:編碼視訊
230:解碼引擎
235:解碼視訊
240:分析引擎
245:映射
250:減法器
255:殘差
260:細微性估計引擎
265:顆粒參數
270:細微性產生器
275:顆粒圖元資料
280:加法器
285:輸出視訊
290:編碼器
295:解碼器
300:概念圖
305:顆粒陣列
310:雜訊圖元資料
315:塊
320:雜訊圖元資料
325:塊
330:雜訊圖元資料
335:塊
340:雜訊圖元資料
345:塊
350:視訊訊框
355:訊框雜訊資料
400:概念圖
410:雜訊圖元資料
415:塊
420:雜訊圖元資料
425:塊
430:雜訊圖元資料
435:塊
440:雜訊圖元資料
445:塊
450:水平混合
455:豎直混合
500:概念圖
505:解碼視訊訊框
510:雜訊圖元資料
515:塊
520:雜訊圖元資料
525:塊
530:雜訊圖元資料
535:塊
540:雜訊圖元資料
545:塊
550:雜訊影像
560:輸出訊框
600:解碼器系統
605:膠片顆粒(FG)參數
610:白色雜訊產生器
615:回歸濾波器
620:顆粒陣列
625:訊框寬度和高度
630:雜訊影像產生器
635:隨機偏移產生器
640:水平混合
645:豎直混合
650:記憶體
655:重構圖元
660:縮放查閱資料表
665:移位器/捨入器/加法器/限幅器引擎
670:膠片顆粒圖元
675:雜訊影像
700:解碼器系統
705:顆粒記憶體
710:隨機偏移產生器
715:水平/豎直混合引擎
720:雜訊影像
725:膠片顆粒圖元
730:顆粒讀取請求
735:顆粒讀取資料
800:方塊圖
805:雜訊圖元
810:雜訊圖元
815:雜訊圖元
820:雜訊圖元
825:雜訊圖元
830:雜訊圖元
835:雜訊圖元
840:雜訊圖元
850:顆粒影像
900:概念圖
905:水平混合
910:豎直混合
915:雜訊添加
920:等時線
950:概念圖
960:等時線
1000:轉碼器程序
1005:操作
1010:操作
1100:計算系統
1105:連接
1110:處理器
1112:快取記憶體
1115:系統記憶體
1120:唯讀記憶體(ROM)
1125:隨機存取記憶體(RAM)
1130:存放裝置
1132:服務
1134:服務
1135:輸出設備
1136:服務
1140:通訊介面
1145:輸入設備
下文參考以下附圖詳細描述本案的說明性態樣:
圖1是示出根據一些實例的包括編碼設備和解碼設備的系統的實例的方塊圖;
圖2是示出根據一些實例的具有濾除膠片顆粒雜訊的編碼器和重構膠片顆粒雜訊的解碼器的轉碼器系統的方塊圖;
圖3是示出根據一些實例的基於相應偏移產生與視訊訊框的各種塊相對應的雜訊圖元資料的概念圖;
圖4是示出根據一些實例的在與視訊訊框的不同塊相對應的雜訊圖元資料的重疊部分處使用水平混合和豎直混合的概念圖;
圖5是示出根據一些實例的使用加法器將雜訊影像添加到解碼視訊訊框以產生輸出訊框的概念圖;
圖6是示出根據一些實例的解碼器系統的方塊圖,其中解碼器系統在將雜訊資料添加到視訊訊框之前產生用於整個視訊訊框的雜訊資料;
圖7是示出根據一些實例的解碼器系統的方塊圖,其中解碼器系統在逐圖元基礎上產生雜訊資料並在逐圖元基礎上將雜訊資料添加到視訊訊框;
圖8是示出根據一些實例的基於顆粒影像中的雜訊圖元資料的位置產生雜訊圖元資料的方塊圖;
圖9A是示出根據一些實例的用於使用解碼器系統進行水平混合、豎直混合和雜訊添加的等時線的概念圖,其中解碼器系統在將雜訊資料添加到視訊訊框之前產生整個視訊訊框的雜訊資料;
圖9B是示出根據一些實例的使用解碼器系統進行水平混合、豎直混合和雜訊添加的等時線的概念圖,其中解碼器系統在逐圖元基礎上產生雜訊資料並在逐圖元基礎上將雜訊資料添加到視訊訊框;
圖10是示出根據一些實例的轉碼器程序的流程圖;及
圖11是示出用於實施本文描述的某些態樣的計算系統的實例的示圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
100:系統
102:視訊源
104:編碼設備
106:編碼器引擎
108:儲存裝置
110:輸出
112:解碼設備
114:輸入
116:解碼器引擎
118:儲存裝置
120:通訊鏈路
122:視訊目的地設備
Claims (30)
- 一種用於視訊解碼的裝置,該裝置包括: 至少一個記憶體;及 至少一個處理器,包括儲存一顆粒陣列的一片上記憶體,至少一個處理器被配置為: 從儲存在該片上記憶體內的該顆粒陣列取回與該至少一個重構視訊圖元相關聯的雜訊圖元資料;並且 將雜訊資料應用於該至少一個重構視訊圖元以產生至少一個輸出視訊圖元,其中該雜訊資料基於該雜訊圖元資料來決定。
- 根據請求項1的裝置,其中該至少一個處理器被配置為: 從儲存在該片上記憶體內的該顆粒陣列取回次級雜訊圖元資料,其中該次級雜訊圖元資料與該至少一個重構視訊圖元相關聯,其中該雜訊資料基於該雜訊圖元資料和該次級雜訊圖元資料來決定。
- 根據請求項2的裝置,其中該至少一個處理器被配置為: 混合該雜訊圖元資料和該次級雜訊圖元資料以決定該雜訊資料,其中一視訊訊框中的該至少一個重構視訊圖元的至少一個位置對應於該視訊訊框的複數個塊被排列為一重疊的重疊區域。
- 根據請求項1的裝置,其中該至少一個處理器被配置為: 使用一顆粒參數產生該顆粒陣列,其中該顆粒參數基於視訊資料來決定,其中該至少一個重構視訊圖元被配置為重構該視訊資料的一圖元。
- 根據請求項1的裝置,其中該至少一個處理器被配置為: 將該顆粒陣列儲存在該片上記憶體中。
- 根據請求項1的裝置,其中該至少一個處理器被配置為: 基於一偏移來辨識該顆粒陣列中的該雜訊圖元資料的一位置以取回該雜訊圖元資料,其中該偏移對應於該至少一個重構視訊圖元是其一部分的一塊。
- 根據請求項6的裝置,其中該偏移基於一隨機產生的值來決定。
- 根據請求項6的裝置,其中該偏移基於一視訊訊框的一訊框大小來決定,其中該至少一個重構視訊圖元被配置為重構該視訊訊框的至少一個圖元。
- 根據請求項8的裝置,其中該塊基於該訊框大小。
- 根據請求項1的裝置,其中該至少一個處理器被配置為: 在基於次級雜訊圖元資料決定次級雜訊資料的同時,將該雜訊資料應用於該至少一個重構視訊圖元,其中該次級雜訊圖元資料從儲存在該片上記憶體內的該顆粒陣列取回,該次級雜訊圖元資料與至少一第二重構視訊圖元相關聯。
- 根據請求項1的裝置,其中該至少一個處理器被配置為: 在從儲存在該片上記憶體內的該顆粒陣列取回與至少一第二重構視訊圖元相關聯的次級雜訊圖元資料的同時,將該雜訊資料應用於該至少一個重構視訊圖元。
- 根據請求項1的裝置,其中該至少一個處理器被配置為: 從儲存在該片上記憶體內的該顆粒陣列取回與該至少第二重構視訊圖元相關聯的次級雜訊圖元資料的同時,決定該雜訊圖元資料。
- 根據請求項1的裝置,其中該雜訊圖元資料被配置為在逐圖元基礎上從儲存在該片上記憶體內的該顆粒陣列取回。
- 根據請求項1的裝置,其中該雜訊資料被配置為在逐圖元基礎上基於該雜訊圖元資料來決定。
- 根據請求項1的裝置,其中該雜訊資料被配置為在逐圖元基礎上應用於該至少一個重構視訊圖元。
- 根據請求項1的裝置,其中該顆粒陣列是一明度顆粒陣列,並且其中該雜訊圖元資料包括明度雜訊圖元資料。
- 根據請求項1的裝置,其中該顆粒陣列是一色度顆粒陣列,並且其中該雜訊圖元資料包括色度雜訊圖元資料。
- 根據請求項1的裝置,其中該至少一個處理器被配置為: 將一縮放因數應用於該至少一個輸出視訊圖元。
- 根據請求項1的裝置,其中該至少一個處理器被配置為: 對至少一個輸出視訊圖元的一圖元值進行捨入。
- 根據請求項1的裝置,其中該至少一個處理器被配置為: 對該至少一個輸出視訊圖元的一圖元值進行限幅。
- 根據請求項1的裝置,其中該至少一個記憶體被配置為儲存該至少一個重構視訊圖元。
- 根據請求項1的裝置,其中該至少一個處理器被配置為: 輸出該至少一個輸出視訊圖元以儲存在該至少一個記憶體中。
- 根據請求項1的裝置,亦包括: 一顯示器,被配置為顯示該至少一個輸出視訊圖元。
- 根據請求項1的裝置,亦包括: 一通訊介面,被配置為將該至少一個輸出視訊圖元發送到一接收方設備。
- 根據請求項1的裝置,其中該至少一個處理器被配置為: 對視訊資料進行編碼以產生編碼視訊資料;並且 對至少該編碼視訊資料進行解碼以產生該至少一個重構視訊圖元。
- 根據請求項1的裝置,其中該裝置包括一頭戴式顯示器(HMD)、一行動手持機或一無線通訊設備中的至少一個。
- 一種用於視訊解碼的方法,該方法包括以下步驟: 從儲存在作為一處理器的一部分的一片上記憶體內的一顆粒陣列取回與至少一個重構視訊圖元相關聯的雜訊圖元資料;和 將雜訊資料應用於該至少一個重構視訊圖元以產生至少一個輸出視訊圖元,其中該雜訊資料基於該雜訊圖元資料來決定。
- 根據請求項27的方法,亦包括以下步驟: 從儲存在該片上記憶體內的該顆粒陣列取回次級雜訊圖元資料,其中該次級雜訊圖元資料與該至少一個重構視訊圖元相關聯,其中該雜訊資料基於該雜訊圖元資料和該次級雜訊圖元資料來決定。
- 根據請求項28的方法,亦包括以下步驟: 混合該雜訊圖元資料和該次級雜訊圖元資料以決定該雜訊資料,其中一視訊訊框中的該至少一個重構視訊圖元的至少一個位置對應於該視訊訊框的複數個塊被排列為重疊的一重疊區域。
- 根據請求項27的方法,亦包括以下步驟: 基於一偏移來辨識該顆粒陣列中的該雜訊圖元資料的一位置以取回該雜訊圖元資料,其中該偏移對應於該至少一個重構視訊圖元是其一部分的一塊。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/934,141 | 2022-09-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202415069A true TW202415069A (zh) | 2024-04-01 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6644903B2 (ja) | ビデオの符号化・復号装置、方法、およびコンピュータプログラム | |
JP7465281B2 (ja) | イントラ予測モード導出のためのブロックベースの量子化された残差ドメインのパルスコード変調割り当て | |
US20160249056A1 (en) | Image decoding device, image coding device, and coded data | |
TW202046739A (zh) | 用於適應性迴圈濾波器變數之適應變數集合 | |
CN114982246B (zh) | 环路滤波器的自适应舍入 | |
TW201735608A (zh) | 用於產生對視訊之顏色再映射資訊之補充增強資訊訊息之方法及系統 | |
JP7345051B2 (ja) | サブピクチャ、スライス、およびタイルをサポートするビデオ符号化 | |
US20210329272A1 (en) | Adaptive loop filtering for color format support | |
US11432015B2 (en) | Adaptive loop filtering across raster-scan slices | |
KR20220127314A (ko) | 적응적 루프 필터링을 위한 인코더, 디코더, 및 대응하는 방법 | |
CN115104318A (zh) | 基于子画面的图像编码设备和方法 | |
CN115136607A (zh) | 基于滤波的图像编码装置和方法 | |
WO2023107790A1 (en) | Adaptive film grain synthesis | |
TW202415069A (zh) | 具有動態雜訊重構的視訊解碼的系統和方法 | |
US20240098309A1 (en) | Systems and methods of video decoding with dynamic noise reconstruction | |
CN114762349A (zh) | 用于图像/视频编译的高级别语法信令方法和装置 | |
US20240048742A1 (en) | Systems and methods of video decoding with improved buffer storage and bandwidth efficiency | |
US20240040159A1 (en) | Systems and methods for video decoding with partial-block deblocking filtering for use by constrained directional enhancement filter | |
WO2024091953A1 (en) | Systems and methods of video decoding with dynamic noise reconstruction | |
US11627341B2 (en) | Method and device for signaling information relating to slice type in picture header in image/video coding system | |
RU2803187C1 (ru) | Способ и устройство кодирования изображения на основе подкартинки | |
RU2809689C2 (ru) | Устройство и способ кодирования изображения для управления контурной фильтрацией | |
US20220417498A1 (en) | Method for coding image on basis of tmvp and apparatus therefor | |
CN115136604A (zh) | 基于nal单元类型的图像或视频编码 |