TW202234890A - 通過指示特徵圖資料進行編碼 - Google Patents

通過指示特徵圖資料進行編碼 Download PDF

Info

Publication number
TW202234890A
TW202234890A TW110148378A TW110148378A TW202234890A TW 202234890 A TW202234890 A TW 202234890A TW 110148378 A TW110148378 A TW 110148378A TW 110148378 A TW110148378 A TW 110148378A TW 202234890 A TW202234890 A TW 202234890A
Authority
TW
Taiwan
Prior art keywords
layer
feature map
layers
information
processing
Prior art date
Application number
TW110148378A
Other languages
English (en)
Other versions
TWI830107B (zh
Inventor
謝爾蓋•尤里耶維奇 伊科寧
米哈伊爾•維亞切斯拉沃維奇 索蘇爾尼科夫
亞歷山大•亞歷山德羅維奇 卡拉布托夫
蒂莫菲•米哈伊洛維奇 索洛維耶夫
王彪
伊蕾娜·亞歷山德羅夫娜 阿爾希娜
Original Assignee
大陸商華為技術有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大陸商華為技術有限公司 filed Critical 大陸商華為技術有限公司
Publication of TW202234890A publication Critical patent/TW202234890A/zh
Application granted granted Critical
Publication of TWI830107B publication Critical patent/TWI830107B/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本發明涉及用於將(用於靜止或視訊處理的)資料編碼到碼流中的方法和裝置,具體地,所述資料由包括多個級聯層的網路處理。在所述處理中,特徵圖是由所述層生成的。至少兩個不同層處理(輸出)的所述特徵圖具有不同的解析度。在所述處理中,從所述級聯層中選擇一個層,所述層與生成最低解析度特徵圖的層(例如,潛在空間)不同。所述碼流包括與所述選定層相關的資訊。通過這種方法,提供了可以應用在不同解析度上的可擴展處理,以便所述碼流可以發送與這類不同解析度相關的資訊。因此,所述資料可以根據解析度在所述碼流中高效地編解碼,所述解析度可以根據經編碼圖像資料的內容而變化。

Description

通過指示特徵圖資料進行編碼
本發明實施例通常涉及使用多個處理層將用於圖像或視訊處理的資料編碼到碼流中的領域。具體地,一些實施例涉及用於這種編碼的方法和裝置。
幾十年來,混合圖像和視訊編解碼器一直被用於壓縮圖像和視訊資料。在這種編解碼器中,通常通過對塊進行預測和通過對原始塊與其預測塊之間的差異進行編解碼來逐塊對訊號進行編碼。具體地,這種編解碼可以包括變換、量化和生成碼流,通常包括一些熵編解碼。通常,混合編解碼方法的三個組成部分——變換、量化和熵編解碼——分別進行優化。現代視訊壓縮標準,如高效視訊編碼(High-Efficiency Video Coding,HEVC)、多功能視訊編碼(Versatile Video Coding,VVC)和基本視訊編碼(Essential Video Coding,EVC)也使用變換表示對預測後的殘差訊號進行編解碼。
最近,機器學習已應用於圖像和視訊編解碼。通常,機器學習可以以各種不同的方式應用於圖像和視訊編解碼。例如,已經討論了一些端到端優化的圖像或視訊編解碼方案。此外,機器學習已被用於確定或優化端到端編解碼的某些部分,例如預測參數的選擇或壓縮等。這些應用的共同點是,產生了一些特徵圖資料,這些資料將在編碼器和解碼器之間發送。碼流的高效結構可以大大有助於減少對圖像/視訊源訊號進行編碼的比特數。
神經網路通常包括兩個或兩個以上的層。特徵圖是層的輸出。在設備之間(例如,在編碼器和解碼器之間、設備和雲之間或在不同設備之間)劃分的神經網路中,劃分位置(例如,第一設備)輸出處的特徵圖被壓縮並傳輸到神經網路的其餘層(例如,傳輸到第二設備)。
可能需要使用經過訓練的網路架構進一步改進編碼和解碼。
本發明的一些實施例提供了用於以高效的方式對圖像進行編碼並使一些可擴展性適應所需參數和內容的方法和裝置。
上述和其它目的通過獨立權利要求請求保護的主題實現。根據從屬權利要求、說明書以及附圖,其他實現方式是顯而易見的。
根據本發明的一個方面,提供了一種將用於圖像或視訊處理的資料編碼到碼流中的方法。所述方法包括:處理所述資料,所述處理包括在多個級聯層中生成特徵圖,每個特徵圖包括各自的解析度,其中,所述生成的特徵圖中的至少兩個特徵圖的解析度相互不同;從所述多個層中選擇與生成最低解析度特徵圖的層不同的層;生成所述碼流,包括將與所述選定層相關的資訊插入到所述碼流中。
這種方法可以改進這種編碼的效率,因為它可以對來自不同層的資料進行編碼,從而將不同解析度的特徵或其它類型的層相關資訊包括在所述碼流中。
根據本發明的一個方面,提供了一種將用於圖像或視訊處理的資料編碼到碼流中的設備。所述設備包括:處理單元,用於處理所述資料,其中,所述處理包括在多個級聯層中生成解析度相互不同的特徵圖,每個特徵圖包括各自的解析度,選擇單元,用於從所述多個層中選擇與生成最低解析度特徵圖的層不同的層;生成單元,用於生成所述碼流,包括將與所述選定層相關的資料的指示插入到所述碼流中。所述處理單元、所述選擇單元和所述生成單元可以由處理電路實現,例如,一個或多個處理器或軟體和硬體的任何組合。
這種設備可以改進解碼效率,因為它可以對來自不同層的資料進行解碼並用於重建,從而使能夠使用不同解析度的特徵或其它類型的層相關資訊。
在示例性實現方式中,所述處理還包括由一個或多個級聯層進行下採樣。應用下採樣一方面可以降低處理的複雜度,另一方面也可以減少在所述碼流中提供的資料。此外,處理不同解析度的層可以以這種方式關注不同尺度的特徵。因此,處理圖片(靜態或視訊)的網路可以高效地運行。
例如,一個或多個下採樣層包括用於下採樣的平均池化或最大池化。平均池化和最大池化操作是幾個框架的一部分,這些操作為低複雜度的下採樣提供了高效的方法。
在另一個示例中,卷積用於下採樣。卷積可以提供一些更複雜的下採樣方法,可以針對特定應用適當地選擇內核,甚至可以訓練內核。這使得可學習的下採樣過程能夠找到更合適的運動資訊的潛在表示,並保持表示和傳輸不同空間解析度資訊的優勢,從而提高了自我調整能力。
在一個示例性實現方式中,與所述選定層相關的資訊包括該層的特徵圖的元素。
通過提供具有不同解析度的特徵,編碼/解碼的可擴展性提高,並且這樣產生的碼流可以提供更高的靈活性,以滿足優化標準,如速率、失真、複雜度等,最終可以提高編解碼效率。
在以上任一示例中,例如,與所述選定層相關的資訊包括表示該層的所述特徵圖的所述元素是從哪個層和/或從該層的所述特徵圖的哪個部分中選擇的資訊。
指示(signal)分割資訊可以對來自不同層的特徵圖進行高效編解碼,使得原始(待編解碼)特徵圖(資料)的每個區域可以僅包括在一個層的資訊中。雖然這並不是限制本發明,在某些情況下,本發明中待編碼特徵圖(資料)中的特定區域的層間資訊可以有一定的重複。
上述方法在示例性實現方式中包括獲取待編碼資料的步驟,其中,對待編碼資料的處理包括由所述多個(N個)級聯層中的每個第j個層進行處理,包括:如果j = 1,則獲取所述待編碼資料作為層輸入,否則獲取第(j – 1)個層處理的特徵圖作為層輸入;對所述獲取的層輸入進行處理,所述處理包括下採樣;輸出所述經下採樣的特徵圖。
相應地,上述裝置在示例性實現方式中具有處理單元,其中,所述處理單元用於獲取所述待編碼資料,並對所述待編碼資料執行處理,包括:所述多個(N個)級聯層的每個第j個層的處理包括:如果j = 1,則獲取所述待編碼資料作為層輸入,否則獲取第(j – 1)個層處理的特徵圖作為層輸入;對所述獲取的層輸入進行處理,所述處理包括下採樣;輸出所述經下採樣的特徵圖。
根據上述任一示例的方法包括:在一些實施例中,選擇用於插入到所述碼流中的資訊,所述資訊與由j > 1的層處理的特徵圖中的第一區域相關,其中,所述第一區域對應於所述特徵圖中的區域或在包括多個元素的小於j的層中待編碼的初始資料;在k個層處理的特徵圖進行選擇時,不選擇與所述第一區域對應的區域,其中,k為等於或大於1的整數且k < j。
根據上述任一示例的裝置包括:在一些實施例中,所述處理電路還用於選擇用於插入到所述碼流中的資訊,所述資訊與由j > 1的層處理的特徵圖中的第一區域相關,其中,所述第一區域對應於所述特徵圖中的區域或在包括多個元素的小於j的層中待編碼的初始資料;在k個層處理的特徵圖進行選擇時,不選擇與所述第一區域對應的區域,其中,k為等於或大於1的整數且k < j。
在某些層中的這種選擇不包括由其它層包括的原始特徵圖的區域,在編解碼開銷方面特別高效。
在上述任一示例中,例如,所述待編碼資料包括圖像資訊和/或預測殘差資訊和/或預測資訊。
或者,與所述選定層相關的資訊包括預測資訊。
在上述任一示例中,例如,與所述選定層相關的所述資料包括所述特徵圖元素在所述選定層的特徵圖中的位置的指示。
這種指示能夠將所述不同解析度的特徵圖元素與所述輸入資料區域正確關聯。
在上述任一示例中,例如,選定和非選定特徵圖元素的位置由多個二值化標誌指示,該指示基於所述標誌在所述碼流中的位置。
所述二值化標誌提供了對所述分割資訊進行編解碼的特別高效的方式。
根據一個實施例,在上述方法或裝置中,所述多個(N個)級聯層中的第j個層的處理包括:確定通過使用所述第j個層輸出的特徵圖元素來重建重建圖像的一部分所產生的第一成本,確定通過使用由所述第(j – 1)個層輸出的特徵圖元素來重建所述重建圖像的所述部分所產生的第二成本;如果所述第一成本高於所述第二成本,則選擇所述第(j – 1)個層,並選擇與所述第(j – 1)個層中的所述部分相關的資訊。
提供包括失真在內的優化以更高效的方式達到所需品質。
例如,所述第一成本和所述第二成本包括資料量和/或失真。通過考慮速率(所述編碼器生成的資料量)和所述重建圖像的失真進行優化,可以靈活地滿足各種應用或用戶的要求。
可替代地,或者另外,所述待編碼資料是運動向量場。上述方法適用於壓縮運動向量場,例如密集光流或子採樣光流。這些方法的應用可以對運動向量進行高效編解碼(在速率和失真或其它標準方面),並能夠進一步減小經編碼圖像或視訊資料的碼流大小。
在一些實施例中,所述預測資訊包括參考索引和/或預測模式。除了運動向量場之外或可替代地,可以處理與預測有關的其它資訊。參考索引和預測模式可以類似於運動向量場,與圖像的內容相關,因此,對具有不同解析度的特徵圖元素進行編碼可以提高效率。
例如,所述資料量包括傳輸與所述選定層相關的資料所需的資料量。這樣,在優化期間,可以計算通過提供與輸出層不同的層相關的資訊而產生的開銷。
另外或可替代地,通過比較重建圖像與目標圖像來計算失真。這種端到端品質比較確保了所述重建圖像中的失真得到適當考慮。因此,優化能夠以高效的方式選擇編解碼方法,並以更準確的方式滿足應用或使用者提出的品質要求。
在上述任一示例中,例如,所述處理包括具有不同解析度的級聯層之間的附加卷積層。
在所述級聯層網路中提供這種附加層能夠引入額外的處理,例如各種類型的濾波,以提高編解碼的品質或效率。
根據示例性實現方式,根據上述實施例所述的方法或所述的裝置的處理電路包括:在層進行下採樣時,使用第一濾波器對輸入特徵圖進行下採樣得到第一特徵圖,使用第二濾波器對所述輸入特徵圖進行下採樣得到第二特徵圖,確定通過使用所述第一特徵圖來重建重建圖像的一部分而產生的第三成本,確定通過使用所述第二特徵圖來重建所述重建圖像的所述部分而產生的第四成本;在進行選擇時,如果所述第三成本低於所述第四成本,則選擇所述第一特徵圖。
應用不同的下採樣濾波器有助於適應內容的不同特點。
例如,所述第一濾波器和所述第二濾波器的形狀可以是方形、水準方向的矩形和垂直方向的矩形中的任何一個。
這些濾波器的形狀仍然簡單,但可以在其它方面改進,例如,適應物件邊界。
所述方法步驟或由裝置的所述處理電路執行的步驟還可以包括:獲取遮罩,其中,所述遮罩由標誌組成,所述遮罩表示任意濾波器形狀,所述第一濾波器或所述第二濾波器具有任意濾波器形狀。
可以更靈活地設計任何形狀的濾波器。
所述方法步驟或由裝置的所述處理電路執行的步驟還可以包括:在所述不同層中處理與被分割成具有不同塊大小和形狀的塊的相同圖像相關的資料,所述選擇包括:根據預定編解碼模式集的計算成本來選擇層。
在一些示例性實現方式中,所述處理包括為至少一個層確定不同編解碼模式集的成本,並根據所確定的成本選擇所述編解碼模式集中的一個。
將優化應用於編解碼模式可以實現高效的速率失真優化,從而提高編解碼效率。
例如,與所述選定層相關的資料的所述指示包括所述選定的編解碼模式集。
根據本發明的一個方面,提供了一種存儲在非暫態性介質中的電腦程式,所述電腦程式包括代碼,當所述代碼在一個或多個處理器上執行時執行上文所述的任一方法的步驟。
根據本發明的一個方面,提供了一種用於對圖像或視訊進行編碼的設備,包括處理電路,所述處理電路用於執行根據上述任一示例所述的方法。
上述任一裝置都可以實施在集成晶片上。本發明可以在硬體(HW)和/或軟體(SW)中實現。此外,基於硬體的實現可以與基於軟體的實現相結合。
需要說明的是,本發明不限於特定框架。此外,本發明不限於圖像或視訊壓縮,並且也可以應用於物件檢測、圖像生成和識別系統。
為了描述的清晰性,上述任一實施例可以與上述其它任一或多個實施例結合以創建本發明範圍內的新實施例。
一個或多個實施例的細節在附圖和說明書中闡述。其它特徵、目標和優點將從說明書、附圖和權利要求中顯而易見。
在以下描述中,參考構成本發明一部分的附圖,附圖通過說明的方式示出了本發明實施例的特定方面或可使用本發明實施例的特定方面。應理解,本發明的實施例可用於其它方面,並且包括未在附圖中描繪的結構或邏輯變化。因此,以下詳細的描述並不當作限定,本發明的範圍由所附權利要求書界定。
可以理解的是,與所描述的方法有關的公開內容對於與用於執行方法對應的設備或系統也同樣適用,反之亦然。例如,如果描述了一個或多個特定方法步驟,則對應的設備可以包括一個或多個單元,例如,功能單元,用於執行所描述的一個或多個方法步驟(例如,執行所述一個或多個步驟的一個單元,或各自執行所述多個步驟中的一個或多個步驟的多個單元),即使圖中未明確描述或說明此類一個或多個單元。另一方面,例如,如果根據一個或多個單元(例如,功能單元)來描述特定裝置,對應的方法可以包括一個步驟來執行一個或多個單元的功能(例如,執行所述一個或多個單元的功能的一個步驟,或各自執行所述多個單元中的一個或多個單元的功能的多個步驟),即使圖中未明確描述或說明此類一個或多個步驟。此外,應理解,除非另外具體指出,否則本文中描述的各種示例性實施例和/或方面的特徵可彼此組合。
一些實施例的目的是提高編碼和解碼圖像或視訊資料的品質和/或減少表示編碼圖像或視訊資料所需的資料量。一些實施例提供了高效選擇編碼器向解碼器指示的資訊的方法。在下文中,提供了對可採用本發明實施例的一些使用的技術術語和框架的概述。
人工神經網路
人工神經網路(artificial neural network,ANN)或連接主義系統是一類計算系統,大致受到構成動物大腦的生物神經網路的啟發。這些系統通過考慮示例來“學習”執行任務,通常不使用任務特定規則進行程式設計。例如,在圖像識別中,這些系統可以通過分析手動標記為“貓”或“無貓”的示例性圖像,並使用結果識別其它圖像中的貓來學習識別包含貓的圖像。這些系統如此做時沒有對貓的任何先驗知識,例如,關於貓有毛皮、尾巴、鬍鬚和貓樣臉的先驗知識。而是會從處理的示例中自動生成識別特徵。
ANN是基於稱為人工神經元的連接單元或節點的集合,這些單元或節點以鬆散方式建模生物大腦中的神經元。每個連接如同生物大腦中的突觸一樣,可以向其它神經元傳輸訊號。接收訊號的人工神經元然後處理該訊號,並可以向與該人工神經元連接的神經元傳遞訊號。
在ANN實現方式中,連接處的“訊號”是實數,每個神經元的輸出通過其輸入之和的某個非線性函數計算。這些連接稱為邊。神經元和邊通常具有隨著學習進行調整的權重。權重增加或減少連接處訊號的強度。神經元可以具有閾值,使得只有在聚合訊號超過該閾值時才會發送訊號。通常,神經元被聚集成層。不同的層可以對其輸入進行不同的變換。訊號可能在多次遍歷各層之後從第一層(輸入層)傳輸到最後一層(輸出層)。
ANN方法的最初目標是以與人腦相同的方式解決問題。隨著時間的推移,關注點轉移到執行特定任務上,導致偏離生物學。ANN已經用於各種任務,包括電腦視覺、語音辨識、機器翻譯、社交網路過濾、棋盤和視訊遊戲、醫學診斷,甚至在傳統上被認為是為人類保留的活動,如繪畫。
“卷積神經網路”(convolutional neural network,CNN)的名稱表示該網路採用了一種稱為卷積的數學運算。卷積是一種專門的線性運算。卷積網路是神經網路,在其至少一個層中使用卷積代替一般矩陣乘法。
圖1示意性地示出了神經網路(例如,CNN)的處理的一般概念。卷積神經網路由輸入層和輸出層以及多個隱藏層組成。輸入層是提供輸入(例如,圖1所示的圖像的一部分)進行處理的層。CNN的隱藏層通常由一系列卷積層組成,這些卷積層與乘法或其它點積進行卷積。層的結果是一個或多個特徵圖(圖1中為f.maps),有時也稱為通道。一些或所有層中可能涉及子採樣。因此,特徵圖可能會變小,如圖1所示。CNN中的啟動函數通常是修正線性單元(rectified linear unit,ReLU)層,隨後是附加卷積,例如池化層、全連接層和歸一化層,稱為隱藏層,因為它們的輸入和輸出被啟動函數和最終卷積掩蓋。雖然層被通俗地稱為卷積,但這只是根據慣例。從數學上講,它在技術上是滑動點積或互相關。這對矩陣中的索引具有重要意義,因為它會影響在特定索引點確定權重的方式。
當對CNN進行程式設計以處理圖像時,如圖1所示,輸入是形狀(圖像數量)×(圖像寬度)×(圖像高度)×(圖像深度)的張量。然後,在通過卷積層後,圖像被抽象為特徵圖,具有形狀(圖像數量)×(特徵圖寬度)×(特徵圖高度)×(特徵圖通道)。神經網路內的卷積層應具有以下屬性:由寬度和高度定義的卷積核(超參數);輸入通道和輸出通道的數量(超參數);卷積濾波器(輸入通道)的深度應等於輸入特徵圖的數量通道(深度)。
在過去,使用傳統的多層感知器(multilayer perceptron,MLP)模型進行圖像識別。但是,由於節點之間的完全連接,它們受到了高維度的影響,並且在較高解析度圖像中無法充分擴展。具有RGB顏色通道的1000×1000圖元圖像具有300萬個權重,權重太高,無法在完全連接的情況下高效地進行大規模處理。此外,這種網路架構不考慮資料的空間結構,以與距離近的圖元相同的方式處理距離遠的輸入圖元。這忽略了圖像資料中的參考局部性,無論是在計算上還是在語義上。因此,神經元的完全連接對於由空間局部輸入模式主導的圖像識別等目的是浪費的。
卷積神經網路是多層感知器的生物學啟發變體,專門用於類比視覺皮層的行為。這些模型通過利用自然圖像中存在的強空間局部相關性,減少了MLP架構帶來的挑戰。卷積層是CNN的核心構建塊。該層的參數由一組可學習濾波器(上述核)組成,這些濾波器具有一個小的接受視野,但擴展到輸入卷的整個深度。在前向傳遞期間,每個濾波器在輸入卷的寬度和高度上卷積,計算濾波器的條目與輸入之間的點積,並生成該濾波器的二維啟動圖。因此,網路學習濾波器,這些濾波器在輸入中的某個空間位置處檢測到某個特定類型的特徵時啟動。
沿深度維度堆疊所有濾波器的啟動圖形成卷積層的完整輸出卷。因此,輸出卷中的每個條目也可以解釋為神經元的輸出,該神經元查看輸入中的小區域,並與同一啟動圖中的神經元共用參數。特徵圖或啟動圖是給定濾波器的輸出啟動。特徵圖和啟動圖含義相同。在一些論文中,它被稱為啟動圖,因為它是對應於圖像不同部分的啟動的圖,也是特徵圖,因為它也是圖像中找到某種特徵的映射。高啟動表示找到了某個特徵。
CNN的另一個重要概念是池化,這是非線性下採樣的一種形式。有幾個非線性函數來實現池化,其中最常見的是最大池化。它將輸入圖像劃分為一組非重疊矩形,並對於每個這種子區域輸出最大值。
直觀地講,特徵的確切位置不如其相對於其它特徵的粗略位置重要。這就是在卷積神經網路中使用池化的想法。池化層用於逐步減小表示的空間大小,減少網路中的參數數量、記憶體佔用和計算量,從而也控制過擬合。在CNN架構中,通常在連續的卷積層之間週期性插入池化層。池化操作提供了另一種形式的平移不變性。
池化層在輸入的每個深度切片上獨立運行,並調整其空間大小。最常見的形式是池化層,應用大小為2×2的濾波器,步長在輸入中每個深度切片處為2,沿寬度和高度均為2,捨棄75%的啟動。在這種情況下,每個最大值操作都超過4個數字。深度維度保持不變。除了最大池化之外,池化單元還可以使用其它函數,例如平均池化或ℓ2-norm池化。平均池化在過去經常使用,但與最大池化相比,最近已經鮮少使用,實際上後者常常表現更好。由於表示大小的大幅減小,最近有一種趨勢是使用較小的濾波器或完全捨棄池化層。“感興趣區域”池化(也稱為ROI池化)是最大池化的變體,其中,輸出大小是固定的,輸入矩形是參數。池化是卷積神經網路基於快速R-CNN架構進行目標檢測的重要組成部分。
上述ReLU是修正線性單元的縮寫,它應用非飽和啟動函數。它通過將負值設置為0,有效地從啟動圖中去除這些負值。它增加了決策函數和整體網路的非線性屬性,而不影響卷積層的接受視野。其它函數也用於增加非線性,例如飽和雙曲正切和sigmoid函數。ReLU通常比其它函數更受歡迎,因為它訓練神經網路的速度快幾倍,而不會對泛化精度造成重大影響。
在經過幾個卷積層和最大池化層之後,神經網路中的高階推理通過全連接層完成。全連接層中的神經元與前一個層中的所有啟動都有連接,如常規(非卷積)人工神經網路中所示。因此,它們的啟動可以作為仿射變換計算,矩陣乘法之後跟偏置偏移(學習或固定偏置項的向量加法)。
“損失層”(包括損失函數的計算)指定訓練如何懲罰預測(輸出)標籤與真實標籤之間的偏差,通常是神經網路的最後一層。可以使用適合不同任務的各種損失函數。Softmax損失用於預測K個互斥類的單個類。Sigmoid交叉熵損失用於預測[0, 1]中的K個獨立概率值。歐氏損失(Euclidean loss)用於回歸到實值標籤。
總之,圖1示出了典型卷積神經網路中的資料流程。首先,輸入圖像通過卷積層,並抽象到包括幾個通道的特徵圖,對應於該層的一組可學習濾波器中的多個濾波器。然後,使用池化層等對特徵圖進行子採樣,該層減小了特徵圖中每個通道的維度。資料接著到達另一個卷積層,該卷積層可以具有不同數量的輸出通道。如上所述,輸入通道和輸出通道的數量是層的超參數。要建立網路的連接,這些參數需要在兩個連接的層之間同步,使得當前層的輸入通道數應等於上一層的輸出通道數。對於處理圖像等輸入資料的第一層,輸入通道的數量通常等於資料表示的通道的數量,例如,3個通道用於圖像或視訊的RGB或YUV表示,或1個通道用於灰度圖像或視訊表示。
自動編碼器和無監督學習
自動編碼器是人工神經網路的一種用於以無監督的方式學習高效的資料編解碼。示意圖如圖2所示。自動編碼器的目的是通過訓練網路忽略訊號“雜訊”來學習一組資料的表示(編碼),通常用於降維。與簡化側一起,學習重建側,其中,自動編碼器嘗試從簡化的編碼中生成盡可能接近其原始輸入的表示,因此得名。在最簡單的情況下,給定一個隱藏層,自動編碼器的編碼器級獲取輸入 x並將其映射到 h
Figure 02_image001
此圖像 h通常稱為代碼、潛在變數或潛在表示。此處,
Figure 02_image003
是逐元素啟動函數,例如,sigmoid函數或修正線性單元。 W是權重矩陣, b是偏置向量。權重和偏置通常經隨機初始化,然後在訓練期間通過反向傳播反覆運算更新。之後,自動編碼器的解碼器級將h映射到與 x相同的形狀的重建 x’
Figure 02_image005
其中,解碼器的
Figure 02_image007
W’b’可以與編碼器的對應
Figure 02_image003
Wb無關。
變分自動編碼器模型對潛在變數的分佈做出了強假設。這些模型使用變分方法進行潛在表示學習,這產生了額外的損失分量和用於訓練演算法的特定估計器,稱為隨機梯度變分貝葉斯(stochastic gradient variational Bayes,SGVB)估計器。假設資料由有向圖模型
Figure 02_image009
生成,並且編碼器正在學習後驗分佈
Figure 02_image011
的近似
Figure 02_image013
,其中,
Figure 02_image015
Figure 02_image017
分別表示編碼器(識別模型)和解碼器(生成模型)的參數。VAE的潛在向量的概率分佈通常比標準自動編碼器更接近匹配訓練資料的概率分佈。VAE的目標具有以下形式:
Figure 02_image019
此處,
Figure 02_image021
表示KL散度(Kullback–Leibler divergence)。潛在變數的先驗通常設置為中心各向同性多變數高斯(centered isotropic multivariate Gaussian)
Figure 02_image023
。通常,對變分和似然分佈的形狀進行選擇,使得它們為因數化高斯:
Figure 02_image025
Figure 02_image027
其中,
Figure 02_image029
是編碼器輸出,而
Figure 02_image031
Figure 02_image033
是解碼器輸出。
人工神經網路領域,特別是卷積神經網路的最新進展使研究人員有興趣將基於神經網路的技術應用於圖像和視訊壓縮任務。例如,提出了端到端優化的圖像壓縮,使用基於變分自動編碼器的網路。
因此,資料壓縮被認為是工程中一個基本且充分研究的問題,通常是為了為給定的離散資料集設計具有最小熵的代碼。該方案在很大程度上依賴於對資料概率結構的瞭解,因此該問題與概率源建模密切相關。但是,由於所有實用代碼都必須具有有限熵,因此連續值資料(例如圖像圖元強度的向量)必須量化為離散值的有限集,這引入了誤差。
在這種情況下,即失真壓縮問題,必須權衡兩個相互矛盾的成本:離散化表示的熵(速率)和量化引起的誤差(失真)。不同的壓縮應用,例如資料存儲或通過有限容量通道的傳輸,需要不同的速率-失真權衡。
速率和失真的聯合優化較困難。如果沒有進一步的約束,高維空間中最優量化的一般問題就難以解決。因此,大多數現有的圖像壓縮方法通過如下方式來操作:將資料向量線性變換為合適的連續值表示,獨立量化其元素,然後使用無損熵編碼編碼生成的離散表示。由於變換的核心作用,此方案稱為變換編解碼。
例如,JPEG對區塊使用離散余弦變換,JPEG 2000使用多尺度正交小波分解。通常,變換編解碼方法的三個組成部分(變換、量化器和熵編碼)分別進行優化(通常通過手動參數調整)。如HEVC、VVC和EVC等現代視訊壓縮標準也使用變換表示對預測後的殘差訊號進行編解碼。這幾個變換用於此目的,例如離散余弦變換(discrete cosine transform,DCT)和離散正弦變換(discrete sine transform,DST),以及低頻不可分離手動優化變換(low frequency non-separable manually optimized transform,LFNST)。
變分圖像壓縮
變分自動編碼器(Variable Auto-Encoder,VAE)可以認為是一個非線性變換編解碼模型。變換過程主要可分為四個部分。這在示出VAE框架的圖3A中進行了舉例說明。
變換過程主要可分為四個部分:圖3A舉例說明了VAE框架。在圖3A中,編碼器101通過函數y = f(x)將輸入圖像x映射到潛在表示(由y表示)中。在下文中,這種潛在表示也可以被稱為“潛在空間”的一部分或點。函數f()是一個轉換函數,它將輸入訊號x轉換為可以進一步壓縮的表示y。量化器102將潛在表示y轉換量化潛在表示
Figure 02_image035
,其中,(離散)值為
Figure 02_image037
,Q表示量化器函數。熵模型,或超編碼器/解碼器(也稱為超先驗)103估計量化潛在表示
Figure 02_image035
的分佈,以獲得無損熵源編解碼可實現的最小速率。
潛在空間可以理解為壓縮資料的表示,其中,類似的資料點在潛在空間中更接近。潛在空間對於學習資料特徵和查找用於分析的資料的更簡單表示非常有用。量化潛在表示T、
Figure 02_image035
和超先驗3的邊資訊
Figure 02_image039
使用算術編解碼(arithmetic coding,AE)被包括在碼流2中(被二值化)。此外,還提供了解碼器104,其將量化潛在表示轉換為重建圖像
Figure 02_image041
Figure 02_image043
。訊號
Figure 02_image041
是輸入圖像x的估計。希望x盡可能接近
Figure 02_image041
,即,重建品質盡可能高。然而,
Figure 02_image041
和x之間的相似性越高,傳輸所需的邊信息量就越大。邊資訊包括圖3A中所示的碼流1和碼流2,它們由編碼器生成並傳輸到解碼器。通常情況下,邊信息量越大,重建品質越高。然而,大量的邊資訊意味著壓縮比低。因此,圖3A中描述的系統的一個目的是平衡重建品質和碼流中傳輸的邊資訊的量。
在圖3A中,元件AE 105是算術編碼模組,將量化潛在表示
Figure 02_image035
和邊信息
Figure 02_image039
的樣本轉換為二值化表示碼流1。例如,
Figure 02_image035
Figure 02_image039
的示例可以包括整數或浮點數。算術編碼模組的一個目的是(通過二值化過程)將樣本值轉換為二值化數位字串(然後,二值化數位被包括在碼流中,碼流可以包括對應於編碼圖像或其它邊資訊的其它部分)。
算術解碼(arithmetic decoding,AD)106是恢復二值化過程的過程,其中二值化數位被轉換回樣本值。算術解碼由算術解碼模組106提供。
需要說明的是,本發明不限於此特定框架。此外,本發明不限於圖像或視訊壓縮,並且也可以應用於物件檢測、圖像生成和識別系統。
在圖3A中,有兩個子網相互級聯。在此上下文中,子網是整個網路各部分之間的邏輯劃分。例如,在圖3A中,模組101、102、104、105和106被稱為“編碼器/解碼器”子網。“編碼器/解碼器”子網負責對第一碼流“碼流1(bitstream1)”進行編碼(生成)和解碼(解析)。圖3A中的第二網路包括模組103、108、109、110和107,並被稱為“超級編碼器/解碼器”子網。第二子網負責生成第二碼流“碼流2(bitstream2)”。這兩個子網的目的不同。
第一個子網負責: -將輸入圖像x轉換101為其潛在表示y(這更容易壓縮x), -將潛在表示y量化102為量化潛在表示
Figure 02_image035
, -算術編碼模組105使用AE壓縮量化潛在表示
Figure 02_image035
,以獲得碼流“碼流1(bitstream1)”, -算術解碼模組106通過AD解析碼流1, -使用經解析的資料重建104重建重建圖像(
Figure 02_image041
)。
第二子網的目的是獲得“碼流1”樣本的統計屬性(例如,碼流1樣本之間的平均值、方差和相關性),使得第一子網對碼流1的壓縮更高效。第二子網生成第二碼流“碼流2”,其包括所述資訊(例如,碼流1樣本之間的平均值、方差和相關性)。
第二網路包括編碼部分,編碼部分包括將量化潛在表示
Figure 02_image035
變換103為邊資訊z,將邊資訊z量化為經量化的邊信息
Figure 02_image039
,以及將所述經量化的邊資訊
Figure 02_image039
編碼109(例如,二值化)到碼流2中。在本示例中,二值化由算術編碼(arithmetic encoding,AE)執行。第二網路的解碼部分包括算術解碼(arithmetic decoding,AD)110,其將輸入碼流2變換為經解碼的量化邊資訊
Figure 02_image046
Figure 02_image046
可能與
Figure 02_image039
相同,因為算術編碼和算術解碼操作是無失真壓縮方法。然後,經解碼的量化邊資訊
Figure 02_image046
被變換107為經解碼的邊資訊
Figure 02_image048
Figure 02_image048
表示
Figure 02_image035
的統計屬性(例如,
Figure 02_image035
的樣本的平均值,或樣本值的方差等)。然後,經解碼的潛在表示
Figure 02_image048
被提供給上述算術編碼器105和算術解碼器106,以控制
Figure 02_image035
的概率模型。
圖3A描述了變分自動編碼器(variational auto encoder,VAE)的示例,其細節在不同的實現方式中可能不同。例如,在特定的實現方式中,可以存在其它元件,以更高效地獲得碼流1的樣本的統計屬性。在該實現方式中,可以存在上下文建模器,其目的是提取碼流1的相關資訊。由第二子網提供的統計資訊可以由算術編碼器(arithmetic encoder,AE)105和算術解碼器(arithmetic decoder,AD)106元件使用。
圖3A在單個圖中描繪了編碼器和解碼器。本領域技術人員明白,編碼器和解碼器可以而且經常嵌入在相互不同的設備中。
圖3B描述了編碼器,圖3C描述了VAE框架的解碼器組件。根據一些實施例,編碼器接收圖像作為輸入。輸入圖像可以包括一個或多個通道,例如,顏色通道或其它類型的通道,例如,深度通道或運動資訊通道等。編碼器的輸出(如圖3B所示)是碼流1和碼流2。碼流1是編碼器的第一子網的輸出,碼流2是編碼器的第二子網的輸出。
類似地,在圖3C中,兩個碼流(碼流1和碼流2)被接收作為輸入,並且在輸出端生成重建(解碼)圖像
Figure 02_image039
。如上所述,VAE可以分為執行不同操作的不同邏輯單元。這在圖3B和圖3C中舉例說明,圖3B描繪了參與視訊等訊號編碼的元件,並提供了編碼資訊。然後,該編碼資訊由圖3C中的解碼器等元件接收,用於編碼。應當注意,用數字12x和14x表示的編碼器和解碼器的元件的功能可以對應於上面在圖3A中提到的用數位10x表示的元件。
具體來說,如圖3B中所示,編碼器包括編碼器121,所述編碼器121將輸入x轉換為訊號y,然後將訊號y提供給量化器322。量化器122向算術編碼模組125和超編碼器123提供資訊。超編碼器123將上文所述的碼流2提供給超解碼器147,超解碼器147又將資訊提供給算術編碼模組105(125)。
算術編碼模組的輸出為碼流1。碼流1和碼流2是訊號編碼的輸出,然後將該輸出提供(傳輸)給解碼過程。雖然單元101(121)被稱為“編碼器”,但也可以將圖3B中描述的完整子網稱為“編碼器”。編碼過程通常是指將輸入轉換為編碼(例如,壓縮)輸出的單元(模組)。從圖3B可以看出,單元121實際上可以被視為整個子網的核心,因為它執行輸入x到y的轉換,這是x的壓縮版本。例如,編碼器121中的壓縮可以通過應用神經網路或通常具有一個或多個層的任何處理網路來實現。在這種網路中,壓縮可以通過包括下採樣的級聯處理來執行,該下採樣減小了輸入的大小和/或通道數量。因此,例如,編碼器可以被稱為基於神經網路(neural network,NN)的編碼器等。
圖中的其餘部分(量化單元、超級編碼器、超級解碼器、算術編碼器/解碼器)都是提高編碼過程效率或負責將壓縮輸出y轉換為一系列比特(碼流)的部分。可以提供量化以通過失真壓縮進一步壓縮NN編碼器121的輸出。AE 125可以與用於配置AE 125的超編碼器123和超解碼器127一起執行二值化,可以通過無失真壓縮進一步壓縮量化訊號。因此,也可以將圖3B中的整個子網稱為“編碼器”。
大多數基於深度學習(Deep Learning,DL)的圖像/視訊壓縮系統在將訊號轉換為二值化數位(比特)之前會降低訊號的維度。例如,在VAE框架中,進行非線性變換的編碼器將輸入圖像x映射到y中,其中,y的寬度和高度小於x。由於y具有較小的寬度和高度,因此大小較小,訊號的(大小)維度被減小,因此,更容易壓縮訊號y。需要說明的是,一般來說,編碼器不一定需要在兩個(或通常所有)維度上減小大小。相反,一些示例性實現方式可以提供僅在一個(或通常是一個子集)維度中減小大小的編碼器。
在J. Balle、L. Valero Lapara和E. P. Simoncelli(2015年)“使用廣義歸一化變換對圖像進行密度建模(Density Modeling of Images Using a Generalized Normalization Transformation)”,2016年第四屆國際會議學習表示會議(以下稱為“Balle”)發表的arXiv電子列印版本中,作者提出了一個基於非線性變換的圖像壓縮模型端到端優化框架。作者對均方誤差(Mean Squared Error,MSE)進行了優化,但使用了由線性卷積和非線性級聯構建的更靈活的變換。具體來說,作者使用了廣義除法歸一化(generalized divisive normalization,GDN)聯合非線性,該非線性受到生物視覺系統中神經元模型的啟發,並已被證明在高斯化圖像密度方面是有效的。這種級聯變換之後是均勻標量量化(即,每個元素都四捨五入到最近的整數),有助於在原始圖像空間上實現向量量化的參數形式。使用近似參數非線性逆變換從這些量化值重建壓縮圖像。
VAE框架的這種示例如圖4所示,它利用6個下採樣層,標記為401至406。網路架構包括超先驗模型。左側(g a、g s)示出了圖像自動編碼器架構,右側(h a、h s)對應於實現超先驗的自動編碼器。因數化先驗模型使用相同的架構進行分析和合成變換g a和g s。Q表示量化,AE、AD分別表示算術編碼器和算術解碼器。編碼器使輸入圖像x進行g a,產生具有空間變化標準差的回應y(潛在表示)。編碼g a包括多個卷積層,具有子採樣和作為啟動函數的廣義除法歸一化(generalized divisive normalization,GDN)。
將回應饋送到h a中,匯總z中的標準差分佈。然後量化、壓縮,並作為邊資訊傳輸z。然後,編碼器使用量化向量
Figure 02_image039
來估計
Figure 02_image050
,即標準差的空間分佈,用於獲得算術編解碼(arithmetic coding,AE)的概率值(或頻率值),並使用它來壓縮和傳輸量化圖像表示(或潛在表示)。解碼器首先從壓縮訊號中恢復
Figure 02_image039
。然後,使用hs獲得
Figure 02_image035
,這為它提供了正確的概率估計,以成功恢復
Figure 02_image035
。然後,將
Figure 02_image035
饋入gs以獲得重建圖像。
包括下採樣的層在層描述中用向下箭頭指示。層描述“Conv N×5×5/2↓”意味著該層是一個卷積層,有N個通道,卷積核的大小為5×5。如上所述,2↓意指在該層中執行2倍的下採樣。2倍的下採樣會導致輸入訊號的一個維度在輸出端減小一半。在圖4中,2↓表示輸入圖像的寬度和高度都減少了2倍。由於有6個下採樣層,如果輸入圖像414(也用x表示)的寬度和高度由w和h給出,則輸出訊號z ̂413的寬度和高度分別等於w/64和h/64。由AE和AD表示的模組是算術編碼器和算術解碼器,將參考圖3A到圖3C進行解釋。算術編碼器和解碼器是熵編解碼的具體實現方式。AE和AD可以被其它熵編解碼方式取代。在資訊理論中,熵編解碼是一種無損資料壓縮方案,用於將符號的值轉換為二值化表示,這是一個相反的過程。此外,圖中的“Q”對應于上文關於圖4也提到的量化操作,並在上面的“量化”部分中進一步解釋。此外,量化操作和作為元件413或415的一部分的相應量化單元不一定存在和/或可以被另一個單元替換。
在圖4中,還示出了包括上採樣層407至412的解碼器。另一層420以輸入的處理順序提供在上採樣層411和410之間,該輸入被實現為卷積層,但不對接收到的輸入提供上採樣。還顯示了用於解碼器的相應卷積層430。這樣的層可以在NN中提供,用於對輸入執行不改變輸入大小但改變特定特徵的操作。但是,沒有必要提供這樣的層。
當從通過解碼器的碼流2的處理順序中看到時,上採樣層以相反的順序運行,即從上採樣層412到上採樣層407。這裡顯示了每個上採樣層,以提供上採樣比為2的上採樣,由↑表示。當然,不一定所有上採樣層都具有相同的上採樣比,並且也可以使用其它上採樣比,如3、4、8等。層407至412被實現為卷積層(conv)。具體來說,由於它們可以在輸入上提供與編碼器相反的操作,上採樣層可以對接收到的輸入應用反卷積運算,使得其大小增大與上採樣比對應的因數。然而,本發明通常不限於反卷積,並且上採樣可以以任何其它方式執行,例如,通過兩個相鄰樣本之間的雙線性插值,或通過最近鄰居樣本複製等。
在第一子網中,在編碼端一些卷積層(401至403)之後是廣義除法歸一化(generalized divisive normalization,GDN),在解碼端之後是逆GDN(inverse GDN,IGDN)。在第二子網中,應用的啟動函數為ReLU。需要說明的是,本發明並不限於這種實現方式,並且通常,可以使用其它啟動函數來代替GDN或ReLU。
端到端圖像或視訊壓縮
基於DNN的圖像壓縮方法可以利用大規模端到端訓練和高度非線性變換,而這些方法在傳統方法中並不使用。然而,直接應用這些技術來構建視訊壓縮的端到端學習系統並不常見。首先,學習如何生成和壓縮為視訊壓縮量身定制的運動資訊仍然是一個懸而未決的問題。視訊壓縮方法非常依賴運動資訊來減少視訊序列中的時間冗餘。
一個簡單的技術方案是使用基於學習的光流來表示運動資訊。然而,當前基於學習的光流方法的目的是盡可能準確地生成流場。精確的光流通常不是特定視訊任務的最佳選擇。此外,與傳統壓縮系統中的運動資訊相比,光流的資料量顯著增加,直接應用現有的壓縮方法來壓縮光流值將顯著增加存儲運動資訊所需的比特數。其次,目前還不清楚如何通過最小化殘差和運動資訊的基於速率失真的目的來構建基於DNN的視訊壓縮系統。速率失真優化(Rate-distortion optimization,RDO)的目的是在給出壓縮的比特數(或位元速率)時,實現更高品質(即更少的失真)的重建幀。RDO對於視訊壓縮性能非常重要。為了利用基於學習的壓縮系統的端到端訓練的力量,需要RDO策略來優化整個系統。
在Guo Lu、Wanli Ouyang、Dong Xu、Xiaoyun Zhang、Chunlei Cai、Zhiyong Gao在2019年IEEE/CVF電腦視覺與模式識別大會(Computer Vision and Pattern Recognition,CVPR)的會議記錄“DVC:端到端深度視訊壓縮框架(DVC: An End-to-end Deep Video Compression Framework)”第11006至11015頁中,作者提出了聯合學習運動估計、運動壓縮、和殘差編解碼的端到端深度視訊壓縮(deep video compression,DVC)模型。
這種編碼器如圖5A所示。具體地,圖5A示出了端到端可訓練視訊壓縮框架的總體結構。為了壓縮運動資訊,指定了CNN將光流轉換為適合更好壓縮的相應表示。具體來說,使用自動編碼器風格的網路來壓縮光流。運動向量(motion vector,MV)壓縮網路如圖5B所示。網路架構與圖4中的ga/gs有些相似。具體地,光流被饋送到包括GDN和IGDN在內的一系列卷積運算和非線性變換中。卷積(反卷積)的輸出通道數為128,但最後一個反卷積層等於2。給定光流大小為M×N×2,MV編碼器將生成大小為M/16×N/16×128的運動表示。然後,運動表示被量化,被熵編解碼並發送到碼流。MV解碼器接收量化表示並使用MV編碼器重建運動資訊。
圖5C示出了運動補償部分的結構。在這裡,使用先前重建的幀xt–1和重建的運動資訊,扭曲單元生成扭曲的幀(通常,借助於插值濾波器,例如,雙線性插值濾波器)。然後,一個具有三個輸入的單獨CNN生成預測圖像。運動補償CNN的架構也如圖5C所示。
原始幀和預測幀之間的殘差資訊由殘差編碼器網路編碼。使用高度非線性的神經網路將殘差轉換為相應的潛在表示。與傳統視訊壓縮系統中的離散余弦變換相比,該方法可以更好地利用非線性變換的力量,實現更高的壓縮效率。
從上面的概述可以看出,考慮到視訊框架的不同部分,包括運動估計、運動補償和殘差編碼,基於CNN的架構可以應用於圖像和視訊壓縮。熵編解碼是用於資料壓縮的流行方法,被業界廣泛採用,也適用於人類感知或電腦視覺任務的特徵圖壓縮。
機器視訊編碼
機器視訊編碼(Video Coding for Machine,VCM)是當今流行的另一個電腦科學方向。這種方法背後的主要思想是傳輸圖像或視訊資訊的編碼表示,以便通過電腦視覺(computer vision,CV)演算法進一步處理,如物件分割、檢測和識別。與針對人類感知的傳統圖像和視訊編碼相比,品質特徵是電腦視覺任務的性能,例如,物體檢測精度,而不是重建品質。
最近的一項研究提出了一種新的部署範式,稱為協作智慧,在移動端和雲端之間劃分深度模型。在各種硬體設定和無線連接模式下的廣泛實驗表明,能耗和/或計算時延方面的最佳操作點涉及劃分模型,通常在網路深處的某個點。現在常見解決方案,即模型完全位於雲端中或完全位於移動端中,很少(如果有的話)是最佳的。協作智慧的概念也擴展到了模型訓練。在這種情況下,資料流程雙向流動:在訓練中反向傳播期間從雲端到移動端,在訓練中正向傳遞期間從移動端到雲端,以及推理。
在最近的目標檢測深度模型的背景下,基於HEVC幀內編碼,研究了深度特徵資料的失真壓縮。隨著壓縮水準的增加,檢測性能的下降,提出了壓縮增強訓練,以通過生成一個對特徵值中的量化雜訊更穩定的模型來最大限度地減少這種損失。然而,這仍然是一個次優的技術方案,因為所使用的編解碼器非常複雜,並針對自然場景壓縮而不是深度特徵壓縮進行了優化。
通過一種利用流行的YOLOv2網路進行目標檢測任務的方法,研究了壓縮效率和識別精度之間的權衡,解決了協同智慧的深度特徵壓縮問題。在這裡,術語“深度特徵”與“特徵圖”具有相同的含義。“深度”一詞來自捕獲某些隱藏(深度)層的輸出特徵圖並傳輸到雲端中執行推理情況下的協作智慧思想。這似乎比將壓縮的自然圖像資料發送到雲並使用重建圖像執行物件檢測更高效。
特徵圖的高效壓縮有利於圖像和視訊壓縮和重建,無論是人類感知還是機器視覺。關於最先進的基於自動編碼器的壓縮方法的缺點,也適用於機器視覺任務。
具有跳躍連接的人工神經網路
殘差神經網路(residual neural network,ResNet)是一種人工神經網路(artificial neural network,ANN),它建立在大腦皮層錐體細胞已知的結構之上。殘差神經網路通過利用跳過連接或快捷方式跳過某些層來實現這一目標。典型的ResNet模型是用雙層或三層跳過實現的,這些跳過包括非線性(ReLU)和中間的批量歸一化。額外的權重矩陣可用於學習跳過權重;這些模型被稱為公路網(HighwayNets)。具有多個並行跳過的模型稱為DenseNets。在殘差神經網路的背景下,非殘差網路可以描述為普通網路。
跳過層的一個目的是通過重用前一個層的啟動,直到相鄰層學習其權重,避免梯度消失的問題。在訓練期間,權重調整以靜音上游層,並放大先前跳過的層。在最簡單的情況下,只調整相鄰層連接的權重,而不調整上游層的顯式權重。當單個非線性層被跨過時,或當中間層都是線性時,效果最好。如果沒有,則應為跳過的連接學習顯式權重矩陣(應使用公路網)。
這種跳過簡化了網路,從而在初始訓練階段減少使用的層數。這通過減少漸變消失的影響來加快學習速度,因為要傳播的層較少。然後,網路在學習特徵空間時逐漸恢復跳過的層。在訓練接近尾聲時,當所有層都被擴展時,它將保持更接近流形,從而學習更快。沒有殘差部分的神經網路可以探索更多的特徵空間。這使得它更容易受到導致它離開流形的擾動的影響,並需要額外的訓練資料來恢復。
U-Net中引入了更長的跳過連接,如圖6所示。U-Net架構源於Long和Shelhamer首次提出的“全卷積網路”。主要的想法是通過連續的層來補充通常的收縮網路,在這些層中,池化運算被上採樣運算子取代。因此,這些層提高了輸出的解析度。此外,連續的卷積層可以學習基於此資訊集合精確的輸出。
U-Net中的一個重要修改是,上採樣部分有大量的特徵通道,這樣網路可以將上下文資訊傳播到較高解析度層。因此,擴展路徑或多或少與收縮路徑對稱,並產生u形架構。網路只使用每個卷積的有效部分,沒有任何完全連接的層。要預測圖像邊界區域中的圖元,通過鏡像輸入圖像外推缺失的上下文。這種平鋪策略對於將網路應用於大圖像非常重要,因為不使用這種平鋪策略,解析度將受到GPU記憶體的限制。
引入跳過連接可以更好地捕獲不同空間解析度的特徵,這已成功地應用於電腦視覺任務,如物體檢測和分割。然而,圖像或視訊壓縮的這種跳過連接並不是微不足道的任務,因為來自編碼端的資訊需要在通信通道中傳輸,並且層的直接連接將需要傳輸大量的資料。
傳統混合視訊編解碼
神經網路框架也可以組合使用或在傳統的混合編碼和解碼中使用,如將在後面舉例說明的。在下文中,給出了關於示例性混合編碼和解碼的非常簡短的概述。
圖7A為用於實現本申請技術的示例性視訊編碼器20的示意性框圖。在圖7A的示例中,視訊編碼器20包括輸入端201(或輸入介面201)、殘差計算單元204、變換處理單元206、量化單元208、反量化單元210和逆變換處理單元212、重建單元214、環路濾波器單元220、解碼圖像緩衝器(decoded picture buffer,DPB)230、模式選擇單元260、熵編碼單元270和輸出端272(或輸出介面272)。模式選擇單元260可以包括幀間預測單元244、幀內預測單元254和分割單元262。幀間預測單元244可以包括運動估計單元和運動補償單元(未示出)。圖7A所示的視訊編碼器20也可以稱為混合視訊編碼器或基於混合視訊編解碼器的視訊編碼器。
編碼器20可用於通過輸入端201等接收圖像17(或圖像資料17),例如,形成視訊或視訊序列的圖像序列中的圖像。接收的圖像或圖像資料也可以是預處理圖像19(或預處理圖像資料19)。為了簡單起見,以下描述使用圖像17。圖像17也可稱為當前圖像或待編解碼的圖像(尤其是在視訊編解碼中將當前圖像與其它圖像區分開時,其它圖像例如同一視訊序列,即也包括當前圖像的視訊序列中的之前經編碼圖像和/或經解碼圖像)。
(數位)圖像是或可為具有強度值的樣本的二維陣列或矩陣。陣列中的樣本也可以稱為圖元(圖像元素的簡短形式)。陣列或圖像的水準和垂直方向(或軸)的樣本數限定了圖像的大小和/或解析度。為了表示顏色,通常使用三種顏色分量,即,該圖像可以表示為或包括三個樣本陣列。在RGB格式或顏色空間中,圖像包括對應的紅色、綠色和藍色圖元點陣列。但是,在視訊編解碼中,每個圖元通常以亮度和色度格式或在顏色空間中表示,例如,YCbCr,包括Y表示的亮度分量(有時也用L表示)和Cb和Cr表示的兩個色度分量。亮度分量Y表示亮度或灰階強度(例如,如同灰階圖像中),兩個色度分量Cb和Cr表示色度或顏色資訊分量。相應地,YCbCr格式的圖像包括亮度樣本值(Y)的亮度樣本陣列和色度值(Cb和Cr)的兩個色度樣本陣列。RGB格式的圖像可以轉換成YCbCr格式,反之亦然,該過程也稱為顏色變換或轉換。如果圖像是單色的,則圖像可以僅包括亮度樣本陣列。相應地,例如,圖像可以為單色格式的亮度圖元點陣列或4:2:0、4:2:2和4:4:4顏色格式的亮度圖元點陣列和兩個對應的色度圖元點陣列。
視訊編碼器20的實施例可以包括圖像分割單元(圖7A中未示出),用於將圖像17分割成多個(通常為非重疊的)圖像塊203。這些塊也可以稱為根塊、宏塊(H.264/AVC)或編碼樹塊(coding tree block,CTB),或編碼樹單元(coding tree unit,CTU)(H.265/HEVC和VVC)。分割單元可用於對視訊序列中的所有圖像使用相同的塊大小和使用限定塊大小的對應網格,或在圖像或圖像子集或圖像組之間改變塊大小,並將每個圖像分割成對應塊。縮寫AVC表示高級視訊編碼。
在另外的實施例中,視訊編碼器可用於直接接收圖像17的塊203的塊,例如,組成圖像17的一個、幾個或所有塊。圖像塊203也可以稱為當前圖像塊或待編解碼圖像塊。
與圖像17一樣,圖像塊203同樣是或可認為是具有強度值(樣本值)的樣本組成的二維陣列或矩陣,但是圖像塊203的大小比圖像17的小。即,例如,塊203可以包括,例如,一個樣本陣列(例如黑白圖像17情況下的亮度陣列,或者在彩色圖像情況下的亮度或色度陣列)或三個樣本陣列(例如,在彩色圖像17情況下的亮度陣列和兩個色度陣列)或依據所應用的色彩格式的任何其它數量和/或類型的陣列。塊203的水準和垂直方向(或軸)的樣本數限定了塊203的大小。因此,塊可以為M×N(M列×N行)個樣本陣列,或M×N個變換係數陣列等。
圖7A所示的視訊編碼器20的實施例可以用於逐塊對圖像17進行編碼,例如,對每個塊203執行編碼和預測。
圖7A所示的視訊編碼器20的實施例還可以用於使用條帶(也稱為視訊條帶)對圖像進行分割和/或編碼,其中,可以使用一個或多個條帶(通常為非重疊的)對圖像進行分割或編碼,並且每個條帶可以包括一個或多個塊(例如,CTU)。
圖7A所示的視訊編碼器20的實施例還可以用於使用分塊組(也稱為視訊分塊組)和/或分塊(也稱為視訊分塊)對圖像進行分割和/或編碼,其中,可以使用一個或多個分塊組(通常為非重疊的)對圖像進行分割或編碼,每個分塊組可以包括一個或多個塊(例如,CTU)或一個或多個分塊等,其中,每個分塊可以為矩形等形狀,可以包括一個或多個塊(例如,CTU),例如完整或部分塊。
圖7B示出了用於實現本申請技術的視訊解碼器30的示例。視訊解碼器30用於接收例如由編碼器20編碼的經編碼圖像資料21(例如,經編碼碼流21),得到經解碼圖像331。經編碼圖像資料或碼流包括用於對所述經編碼圖像資料進行解碼的資訊,例如表示經編碼視訊條帶(和/或分塊組或分塊)的圖像塊的資料和相關的語法元素。
熵解碼單元304用於解析碼流21(或通常為經編碼圖像資料21)並例如對經編碼圖像資料21進行熵解碼,以獲得量化係數309和/或經解碼的編解碼參數(圖3中未示出)等,例如幀間預測參數(例如參考圖像索引和運動向量)、幀內預測參數(例如幀內預測模式或索引)、變換參數、量化參數、環路濾波器參數和/或其它語法元素中的任一個或全部。熵解碼單元304可用于應用與針對編碼器20的熵編碼單元270描述的編碼方案對應的解碼演算法或方案。熵解碼單元304還可用于向模式應用單元360提供幀間預測參數、幀內預測參數和/或其它語法元素,以及向解碼器30的其它單元提供其它參數。視訊解碼器30可以接收視訊條帶級和/或視訊塊級的語法元素。另外或者作為條帶和相應語法元素的替代,可以接收或使用分塊組和/或分塊以及相應語法元素。
重建單元314(例如,求和器(adder或summer)314)可以用於將重建殘差塊313添加到預測塊365,得到樣本域的重建塊315,例如,將重建殘差塊313的樣本值和預測塊365的樣本值相加。
圖7B中所示的視訊解碼器30的實施例可用於使用條帶(也稱為視訊條帶)對圖像進行分割和/或解碼,其中,可以使用一個或多個條帶(通常為非重疊的)對圖像進行分割或解碼,並且每個條帶可以包括一個或多個塊(例如,CTU)。
圖7B所示的視訊解碼器30的實施例可以用於使用分塊組(也稱為視訊分塊組)和/或分塊(也稱為視訊分塊)對圖像進行分割和/或解碼,其中,可以使用一個或多個分塊組(通常為非重疊的)對圖像進行分割或解碼,每個分塊組可以包括一個或多個塊(例如,CTU)或一個或多個分塊等,其中,每個分塊可以為矩形等形狀,可以包括一個或多個塊(例如,CTU),例如完整或部分塊。
可以使用視訊解碼器30的其它變體對經編碼圖像資料21進行解碼。例如,解碼器30可以在沒有環路濾波單元320的情況下產生輸出視訊流。例如,基於非變換的解碼器30可以在沒有逆變換處理單元312的情況下直接對某些塊或幀的殘差訊號進行反量化。在另一種實現方式中,視訊解碼器30中,反量化單元310和逆變換處理單元312可以組合成一個單元。
應理解,在編碼器20和解碼器30中,可以對當前步驟的處理結果進一步處理,然後輸出到下一步驟。例如,在插值濾波、運動向量推導或環路濾波之後,可以對插值濾波、運動向量推導或環路濾波的處理結果進行進一步的運算,例如限幅(clip)或移位(shift)運算。
提高編解碼效率
如上所述,基於變分自動編碼器方法的圖像和視訊壓縮方法缺乏空間用於自我調整處理和物件分割以捕獲真實物件邊界。因此,內容適應性有限。此外,對於某些類型的視訊資訊,如運動資訊或殘差資訊,稀疏表示和編解碼是理想的,以保持指示開銷在合理的水準。
因此,本發明的一些實施例引入來自自動編碼器的不同空間解析度層的分割資訊編解碼和特徵圖編解碼,以實現內容適應性和稀疏訊號表示和傳輸。
在一些示例性實現方式中,在除較低解析度層(潛在空間)以外的編碼器和解碼器層之間引入連接,這些層在碼流中傳輸。在一些示例性實現方式中,碼流中僅提供不同解析度層的特徵圖的一部分,以節省頻寬。例如,引入訊號選擇和訊號饋送邏輯,從不同解析度層選擇、傳輸和使用特徵圖的部分。在接收端,引入了張量組合邏輯,將上一解析度層的輸出與從當前解析度層對應的碼流接收的資訊組合在一起。
下面,提供了與編碼端和解碼端相關的一些詳細實施例和示例。
編碼方法和設備
根據一個實施例,提供了一種將用於圖像或視訊處理的資料編碼到碼流中的方法。所述方法包括以下步驟:處理所述資料,包括在多個級聯層中生成特徵圖,每個特徵圖包括各自的解析度,其中,所述生成的特徵圖中的至少兩個特徵圖的解析度相互不同。
即,兩個或多個級聯層的解析度可以相互不同。這裡層的解析度指該層處理的特徵圖的解析度。在示例性實現方式中,是層輸出的特徵圖的解析度。包括解析度的特徵圖指特徵圖的至少一部分具有所述解析度。在一些實現方式中,整個特徵圖可以具有相同的解析度。例如,特徵圖的解析度可以由特徵圖中的多個特徵圖元素給出。然而,它也可以更具體地由一個或多個維度中的特徵圖元素的數量定義(例如,x、y;或者或此外,可以考慮通道的數量)。
這裡的術語層是指處理層。它不一定非得是一個具有可訓練或經過訓練參數(權重)的層,就像上面提到的一些神經網路的層。相反,層可以展示層輸入以獲得層輸出的特定處理。在一些實施例中,層可以是經過訓練的或可訓練的。這裡的訓練指的是機器學習或深度學習。
當提到級聯層時,指這些層具有一定的預定義順序(序列),並且對第一層的輸入(以所述給定順序)由第一層和其它層根據給定順序進行連續處理。即,第j個層的輸出是第(j + 1)個層的輸入,j是從1到級聯層總數的整數。在一個特定的和非限制性的示例中,對於所有可能的j值,第(j + 1)個層包括(或具有)與第j個層相同或更低的解析度。即,層的解析度不會隨著級聯(處理順序)的順序(次序)而增加(例如,在編碼端)。然而,需要說明的是,本發明不限於這種特定級聯層。在一些實施例中,級聯處理的層還可以包括提高解析度的層。在任何情況下,都可能存在不會改變解析度的層。
例如,特徵圖的解析度較低可能意味著每個特徵圖的特徵元素較少。例如,特徵圖的解析度較高可能意味著每個特徵圖的特徵元素較多。
所述方法還包括以下步驟:從多個層中選擇與生成最低解析度特徵圖的層不同的層,並且生成碼流包括將與選定層相關的資訊插入碼流中。
即,除了(或可替代地)將級聯中所有層的處理結果輸出到碼流中,還向另一個(選定)層提供資訊。可以有一個或多個選定層。與選定層相關的資訊可以是任何類型的資訊,例如,層的輸出或層的一些分割資訊(在下文描述),或者也與層處理的特徵圖和/或層執行的處理相關的其它資訊。即,在一些示例中,資訊可以是特徵圖的元素和/或特徵圖內(層內)元素的位置。
對級聯處理輸入的是用於圖像或視訊處理的資料。例如,這類資料可以與幀間或幀內預測等預測編解碼相關。它可以是運動向量或預測的其它參數,如預測模式或參考圖像或方向,或除預測外的其它編解碼部分,如變換、濾波、熵編解碼或量化。碼流生成可以包括將值轉換為包括固定碼字、可變長度代碼或算術編碼的比特(二值化)的任何轉換。
在這裡,圖像可以是靜態圖像或視訊圖像。圖像是指一個或多個樣本,例如,由攝像機捕獲的樣本或由電腦圖形等生成的樣本。圖像可以包括以灰度級表示亮度水準的樣本,或者可以具有包括亮度通道、色度通道、深度通道或其它通道中的一個或多個的多個通道。圖像或視訊編碼可以是如上所述的混合編解碼(例如,類似於HEVC或VVC等)或自動編碼器中的任何一種。
圖8為上述方法的流程圖。因此,該方法包括處理輸入資料的步驟810。在選擇步驟820中,從處理後的資料中選擇一部分,並在生成步驟830中將所述資料部分包括在碼流中。並非在處理步驟中生成的所有資料都必須包括在碼流中。
根據示例性實現方式,所述處理還包括由一個或多個級聯層進行下採樣。圖9中示出了實現(在操作中執行)這種處理的示例性網路900。
具體地,圖9示出了進入網路900的用於圖像或視訊處理901的輸入資料。用於圖像或視訊處理的輸入資料可以是用於這種處理的任何類型的資料,例如直接如上所述的圖像(image/picture)或視訊的樣本、預測模式、運動向量等。圖9中應用於輸入901的處理由多個處理層911至913進行,每個處理層降低了每個運動向量陣列的解析度。即,級聯層911至913是下採樣層。需要說明的是,當一個層被稱為下採樣層時,它執行下採樣。存在下採樣層911至913作為唯一任務執行下採樣的實施例;以及可能存在下採樣層911至913不作為唯一任務執行下採樣的實施例。相反,下採樣層通常也可以執行其它類型的處理。
如在圖9中可以看到,下採樣層911至913除了處理的資料登錄和輸出之外,還具有導致訊號選擇邏輯920的附加選擇輸出。需要說明的是,這裡的術語“邏輯”是指實現該功能的任何電路(這裡是訊號選擇)。訊號選擇邏輯920從任何層的選擇輸出中選擇資訊,以包括在碼流930中。在圖9的示例中,每個層911至913對層輸入進行下採樣。但是,在下採樣層之間也可以添加了不應用下採樣的層。例如,這些層可以通過濾波或其它操作來處理輸入。
在圖9所示的示例中,訊號選擇邏輯920從層911至913的輸出中選擇包括在碼流中的資訊。該選擇的目標可以是從不同層輸出的多個特徵圖中選擇與重建圖像或視訊相關的資訊。即,下採樣層和訊號選擇邏輯可以實現為編碼器(圖像或視訊編解碼器)的一部分。例如,編碼器可以是圖3A中所示的編碼器101、圖3B的編碼器121、MV編碼器網(圖5A中端到端壓縮的一部分、圖5B的MV編碼器,或圖7A的編碼器的一些部分(例如,環路濾波220或模式選擇單元260或預測單元244、254的一部分)等。
圖9還包括解碼端部分(可稱為擴展路徑),包括訊號饋送邏輯940和上採樣層951至953。編碼端的輸入是碼流930。例如,輸出911是重建輸入901。解碼端在下文稍後描述。
例如,下採樣可以通過最大池化、平均池化或任何其它導致下採樣的操作來完成。這種操作的另一個示例包括卷積運算。圖10A示出了最大池化的示例。在本示例中,陣列1010的每四個元素(相鄰2×2正方形)被分組,並用於確定陣列1020中的一個元素。陣列1020和1010可以對應于本發明的一些實施例中的特徵圖。然而,陣列也可以對應於本實施例的特徵圖的部分。陣列1020和1010中的欄位(元素)可以對應於特徵圖的元素。在該圖像中,特徵圖1020是通過經下採樣的特徵圖1010確定的。陣列1010和1020的欄位中的數字只是示例性的。例如,欄位還可以包括運動向量,而不是數位。在圖10A所示的最大池化示例中,陣列1010左上角的四個欄位被分組,並選擇它們的值中的最大值。這組值通過為所述欄位分配最大值來確定陣列1020的左上角欄位。即,陣列1010的四個左上角值中最大的一個被插入到陣列1020的左上角欄位中。
或者,在一些實現方式中,可以使用最小池化。在最小池化中選擇值最小的欄位,而不是選擇值最大的欄位。然而,這些下採樣技術只是示例,各種下採樣策略可以在不同的實施例中使用。一些實現方式可以在不同的層、特徵圖內的不同區域和/或對於不同類型的輸入資料使用不同的下採樣技術。
在一些實現方式中,下採樣是使用平均池執行的。在平均池化中,計算一組特徵圖元素的平均值,並與經下採樣的特徵圖的特徵圖中的相應欄位關聯。
圖10B示出了平均池化的示例。在本示例中,對特徵圖1050左上角的特徵圖元素進行平均,並且特徵圖1060的左上角元素採用該平均值。圖10B中的右上方、右下方和左下方三組顯示了同樣的情況。
在另一個實施例中,卷積運算用於部分或所有層中的下採樣。在卷積中,濾波器核應用於輸入特徵圖中的元素組或塊。內核本身可以是具有與輸入元素塊相同大小的元素陣列,其中,內核的每個元素存儲濾波器操作的權重。在下採樣中,計算輸入塊中的元素的總和,每個元素都用從內核中獲取的相應值加權。如果內核中所有元素的權重都是固定的,那麼這樣的卷積可以對應於上面描述的濾波器操作。例如,具有相同、固定權重和內核大小步長的內核的卷積對應于平均池化操作。然而,本實施例中使用的卷積的步長可以與內核大小不同,權重可以不同。在一個示例中,內核權重可以是這樣的,使得輸入特徵圖中的某些特徵可以被增強或區分於每個特徵。此外,內核的權重可以是可學習的或事先學習的。
根據一個實施例,與選定層相關的資訊包括該層的特徵圖的元素1120。例如,該資訊可以傳遞特徵圖資訊。通常,特徵圖可以包括與運動圖像相關的任何特徵。
圖11示出了特徵圖1110是寬度為W和高度為H的運動向量的密集光流的示例性實現方式。運動分割網1140包括三個下採樣層(例如,對應於圖9中的下採樣層911至913)和訊號選擇電路(邏輯)1100(例如,對應於訊號選擇邏輯920)。圖11示出了右側收縮路徑中不同層的輸出(L1至L3)的示例。
在本例中,每層的輸出(L1至L3)是解析度逐漸降低的特徵圖。對L1輸入的是密集光流1110。在本示例中,從L1輸出的特徵圖的一個元素從密集光流1110的十六(4×4)個元素確定。L1輸出中的每個方形(圖11的右下角)對應於通過從密集光流的16個運動向量中下採樣(downspl4)獲得的運動向量。這樣的下採樣可以是例如平均池化或另一個操作,如上所述。在該示例性實現方式中,資訊1120中僅包括該層的特徵圖L1的一部分。選擇層L1,並在選定資訊1120內發送對應於與選定層相關的四個運動向量(特徵圖元素)的部分。
然後,第一層的輸出L1被輸入到第二層(downspl2)。從L1的四個元素中確定第二層的輸出L2特徵圖元素。然而,在其它示例中,具有較低解析度的特徵圖的每個元素也可以由具有下一個較高解析度的特徵圖的任何其它數量的元素組成的組確定。例如,確定下一層中一個元素的組中的元素的數量也可以是2的任何冪。在本示例中,輸出L2特徵圖對應於三個運動向量,這些運動向量也包括在選定資訊1120中,因此第二層也是選定層。第三層(downspl2)在兩個維度中的每一個維度中對第二層的輸出L2進行2的下採樣。相應地,根據L2的四個元素,得到第三層輸出L3的一個特徵圖元素。在特徵圖L3中,沒有發送任何元素,即在本示例中,第三層不是選定層。
運動分割網1140的訊號選擇模組1100選擇上述運動向量(來自第一層和第二層輸出的特徵圖的元素),並將它們提供給碼流1150。該規定可能是一個簡單的二值化,可以但不一定包括熵編解碼。
元素組可以以方形形狀佈置,如在圖11的示例中所示。然而,這些組也可以佈置成任何其它形狀,例如矩形形狀,其中矩形形狀的長邊可以在水準或垂直方向上佈置。這些形狀只是示例。在一個實現方式中,可以使用任意形狀。該形狀也可以在碼流1150中指示。指示可以通過表示哪些特徵元素屬於形狀和哪些不屬於形狀的標誌圖來實現。或者,指示可以使用形狀的更抽象的描述來完成。
在該示例性實現方式中,特徵圖元素被分組,使得每個元素正好屬於確定下一層特徵圖的一個元素的一個元素組。即,特徵圖元素組是非重疊的,只有一個組貢獻于更高(在級聯處理順序中的稍後)層的特徵圖元素。然而,可以想像,一個層的元素可以用於下一層的多個元素。即,在處理810中,當根據具有較高解析度的層輸出L1生成新的層輸出,例如層輸出L2時,可以使用濾波器操作。
在本實施例中,選擇820(例如,借助於訊號選擇1100)從多個輸出特徵圖(L1至L3)中選擇要包括在碼流中的元素。通過選擇,使得發送所選資料所需的資料量較小,同時保持解碼相關的信息量盡可能大。例如,可以採用速率失真優化或其它優化。
上述示例顯示了三層的處理。一般來說,該方法並不限於此。可以使用任何數量的(一個或多個)處理層。即,根據更廣義的示例,所述方法包括獲取待編碼資料。這可以是運動向量的密集流1110,如上文所示。然而,本發明並不限於此,並且替代地或除了運動向量之外,可以處理其它資料,例如預測模式、預測方向、濾波參數,甚至空間圖像資訊(樣本)或深度資訊等。
待編碼資料的處理810包括此示例中由多個(N個)級聯層中的每個第j個層進行處理。所述第j個層的處理包括: -如果j = 1,則獲取待編碼資料作為層輸入,否則獲取第(j – 1)個層處理的特徵圖作為層輸入(即,如果第i層為當前處理層,則第(j – 1)個層為前一個層); -對所述獲取的層輸入進行處理,所述處理包括下採樣; -輸出所述經下採樣的特徵圖。
在本示例中,j = 1的層是N個處理層中解析度最高的層。需要說明的是,該層的輸入可以是密集光流(一般也可以視為特徵圖)。因此,在一些具體實施例中,j = 1的層可以是輸入層。然而,情況不一定如此,因為可以想像,N個處理層之前有一些預處理層。編碼器的一個典型特徵是,較早的處理層比較晚的處理層(收縮路徑)具有更高的解析度。在解碼端相應地是一個相反的過程。可以想像,一些處理層不會改變解析度,甚至不會增強解析度——本發明仍然可以適用。
在上述示例中,碼流1150攜帶選定資訊1120。例如,所述資訊可以是運動向量或任何其它特徵。即,碼流1150攜帶來自至少一個不是處理網路(編碼端處理網路)的輸出層的特徵圖元素。在圖11的示例中,僅在碼流中發送選定特徵圖的一部分。這部分具有一個或多個特徵元素。為了使解碼器能夠確定傳輸特徵圖的哪一部分,可以定義用於確定的規則。在一些實施例中,分割資訊可以在碼流1150中發送,以配置發送特徵圖的哪些部分。這些示例性實施例將在下文中描述。然而,需要說明的是,上述實施例僅是示例性的,並且通常不需要這樣的附加訊號化,因為可能存在用於推導資訊並取決於其它已知或指示參數的規則。
在與分割資訊相關的示例性實施例中,與選定層相關的資訊包括(另外或者替代地選定資訊1120)表示該層的特徵圖的元素是從哪個層和/或從該層的特徵圖的哪個部分中選擇的資訊1130。
在圖11所示的示例中,分割資訊通過二值化標誌來說明。例如,在右側,每個較低解析度特徵圖或特徵圖部分都賦值0或1。例如,L3賦值零(0),因為它未被選中,並且沒有為L3指示運動向量(特徵元素)訊號。特徵圖L2有四個部分。層處理L2是選定層。四個部分中的三個部分的特徵圖元素(運動向量)被指示,相應地,標誌被設置為1。特徵圖L2的剩餘一部分不包括運動向量,因此標誌被設置為0,因為與該部分對應的運動向量由L1特徵圖表示。由於L1是第一層,因此隱含地在該層中提供剩餘的運動向量。需要說明的是,當相應的特徵圖部分是部分選定資訊時,這裡的二值化標誌採用第一值(例如,1),當相應的特徵圖部分不是部分選定資訊時,採用第二值(例如,0)。由於它是二值化標誌,因此它只能接受這兩個值中的一個。
這種分割資訊可以在碼流中提供。圖11的左側示出了分割資訊1130的處理。需要說明的是,分割資訊1130也可以由運動分割網1140的層處理。它可以在與特徵圖相同的層中處理,也可以在單獨的層中處理。分割資訊1130也可以解釋如下。具有最低解析度的層的一個超級圖元覆蓋通過對密集光流1110的下採樣downspl4得到的特徵圖的16×16單元。由於分配給覆蓋16×16單元的超級圖元的標誌設置為0,這意味著特徵圖元素——這裡是運動向量——不為此層指示(未選擇該層)。因此,特徵圖元素可以指示在對應於下一層的16×16單元的區域中,該區域由四個大小相等的超級圖元表示,每個超級圖元覆蓋8×8特徵元素的單元。這四個超級圖元中的每一個都關聯了一個標誌。對於那些與具有值1的標誌關聯的超級圖元,特徵圖元素(運動向量)被指示。對於標誌設置為0的超級圖元,不指示運動向量訊號。未指示的運動向量是為覆蓋4×4元素單元的超級圖元的層指示。
更廣泛地,用於編碼用於圖像/視訊解碼的資料的方法還可以包括選擇(分割)資訊以插入碼流中。該資訊涉及由j > 1的層處理的特徵圖中的第一區域(超級圖元)。第一區域對應於特徵圖或初始資料中待編碼在包括多個元素的小於j的層中的區域。所述方法還包括以下步驟:在k個層處理的特徵圖進行選擇時,不選擇與所述第一區域對應的區域,其中,k為等於或大於1的整數且k < j。不同層之間的區域的對應關係在這裡指對應的區域(超級圖元)在空間上覆蓋待編碼的特徵圖(初始資料)中的相同特徵元素(初始資料元素)。在圖11的示例中,被分割的初始資料是L1資料。然而,該對應關係也可以參考密集光流1110。
通過圖11中的特定佈置,確保初始特徵圖(例如,L1)的每個特徵元素僅包括在N個層中僅一個層的超級圖元中。這種佈置提供了對特徵圖和分割資訊進行高效編解碼的優點。級聯層處理框架對應於神經網路處理框架,可以通過這種方式對資料進行分割,並提供不同解析度的各個分割的資料。具體地,在一些層中進行下採樣的優點可以包括減少指示初始特徵圖表示所需的資料量。具體來說,在指示運動向量的示例中,由於下採樣,類似運動向量的組可以由一個公共運動向量指示。然而,為了實現良好的幀間預測,由分組運動向量引起的預測誤差應該很小。這可能意味著,對於圖像的不同區域,運動向量的不同分組級別可能是實現所需預測品質的最佳水準,同時,需要少量資料來指示運動向量訊號。這可以使用具有不同解析度的多個層來實現。
在特徵圖元素是運動向量的實施例中,為了下採樣的目的,可以對運動向量的長度和方向進行平均,並且平均運動向量與經下採樣的特徵圖的對應特徵圖元素相關聯。在通常的平均中,與經下採樣的特徵圖中的一個元素對應的元素組的所有元素都具有相同的權重。這對應于將具有相等權重的濾波器應用於元素組或塊,以計算經下採樣的特徵圖元素。然而,在其它實現方式中,這樣的濾波器可以對層輸入中的不同元素具有不同的權重。在其它實現方式中,可以計算相應元素組的中位數,而不是計算下採樣中元素組或塊的平均值。
在圖11的示例中,下採樣濾波器操作使用輸入元素大小為2×2的方形濾波器,並根據所選濾波器操作計算映射到經下採樣的特徵圖中的一個元素的濾波器輸出。濾波器操作使用等於邊緣長度或方形濾波器的2步長。即,在兩個濾波操作之間,濾波器將移動與濾波器大小相同的步長。因此,在下採樣中,下採樣元素是根據應用下採樣濾波器的層中的非重疊塊計算的。
然而,在一些進一步可想像的實施例中,步長可以不同於濾波器的邊緣長度。例如,步長可能小於濾波器邊緣的長度。因此,用於確定下採樣層中元素的濾波器塊可以重疊,即,待下採樣的特徵圖中的一個元素有助於計算經下採樣的特徵圖中的多個元素。
通常,與選定層相關的資料包括特徵圖元素在選定層的特徵圖中的位置的指示。這裡,類似於圖11(特徵圖L1至L3)的概念,選定層的特徵圖是指來自選定層的輸出,即由選定層處理的特徵圖。
例如,選定和非選定特徵圖元素的位置由多個二值化標誌指示,該指示基於所述標誌在碼流中的位置。在上文參考圖11的描述中,二值化標誌作為分割資訊1130包括在碼流1150中。為了使解碼器能夠解析和正確解釋分割資訊,應定義由層處理的特徵圖中的標誌和層和/或區域之間的分配。這可以通過定義編碼器和解碼器都知道的標誌二值化順序來完成。
上述示例已經提供了用於編碼作為運動向量的圖像/視訊的資料。然而,本發明不限於這種實施例。在一個實施例中,待編碼資料包括圖像資訊和/或預測殘差資訊和/或預測資訊。這裡的圖像資訊是指原始圖像(或待編碼圖像)的樣本值。樣本值可以是一個或多個顏色或其它通道的樣本。
與選定層相關的資訊不一定是運動向量或超級圖元的運動向量。此外或可替代地,在一些實施例中,所述資訊包括預測資訊。預測資訊可以包括參考索引和/或預測模式。例如,參考索引可以表示來自參考圖像集中的哪個特定圖像應用於幀間預測。該索引可以相對於待預測的當前塊所在的當前圖像。例如,預測模式可以表示,是使用單個還是多個參考幀和/或不同預測的組合,例如,組合的幀內預測等。
然而,當待編碼資料是運動向量場時,可以實現高效的運動向量場編解碼和重建。圖12示出了可以執行運動場的編碼和解碼的設備的相應通用塊方案。在編碼端,運動資訊是使用一些運動估計或光流估計模組(單元)1210獲得的。對運動向量(光流)估計輸入的是當前圖像和一個或多個參考圖像(存儲在參考圖像緩衝器中)。在圖12中,圖像被稱為“幀”,這個術語有時用於視訊的圖像。光流估計單元1210輸出光流1215。在不同的實現方式中,運動估計單元可以輸出已經具有不同空間解析度的運動資訊,例如,對於一些N×N塊或對於原始解析度的每個圖元,可以被稱為密集光流。運動向量資訊旨在被傳輸(嵌入到碼流1250中)到解碼端,並用於運動補償。為了獲得運動補償區域,該區域的每個圖元都應具有定義的運動向量。為原始解析度的每個圖元傳輸運動向量資訊可能成本太高。為了減少指示開銷,使用運動規範(或分割)模組1220。解碼端的對應模組1270執行運動生成(密集)任務以重建運動向量場1275。運動規範(或分割)模組1220輸出運動資訊(例如,運動向量,和/或可能的參考圖像)和分割資訊。此資訊被添加(編碼)到碼流中。
在本實施例中,運動分割單元1220和運動生成單元1270僅包含下採樣層dwnspl和對應的上採樣層upspl,如圖13所示。最近鄰居方法可用于下採樣和上採樣;平均池化可用於下採樣。來自不同空間解析度的層的特徵圖資料由編碼器選擇,並作為選定資訊1120與分割資訊1130一起在碼流中傳輸,所述分割資訊1130指示解碼器如何解釋和利用選定資訊1120。運動分割(稀疏化)網1220在圖13中示出為網路1310。因此,密集光流1215被插入運動分割(稀疏化)網1310中。網路1310包括三個下採樣層和訊號選擇邏輯1320,訊號選擇邏輯1320選擇要包括在碼流1350中的資訊。該功能與圖9(更通用)所述的類似。
在上述實施例中,與輸出層不同的層相關的資訊的指示提高了系統的可擴展性。這樣的資訊可以是與隱藏層有關的資訊。在下文中,給出了涉及利用所提供的可擴展性和靈活性的實施例和示例。即,提供了一些關於如何選擇層和如何展示資訊的方法。
本文中的一些實施例示出了使用自動編碼器架構的圖像或視訊壓縮系統,該自動編碼器架構包括編碼部分中的一個或多個維度(或空間解析度)降低步驟(由合併下採樣操作的層實現)。與簡化(編碼)端一起,學習重建(解碼)端,其中,自動編碼器試圖從簡化的編碼生成盡可能接近其原始輸入的表示,這通常意味著解碼端的一個或幾個解析度增大步驟(由包括上採樣操作的層實現)。
在這裡及之後,在編碼器作用下,自動編碼器的編碼部分生成碼流中包括的潛在訊號表示。例如,這種編碼器是上面提到的編碼器101或121。在解碼器作用下,自動編碼器的生成部分感知從碼流獲得的潛在訊號表示。例如,這種解碼器是上面提到的解碼器104或144。
如參照圖11已經描述的,編碼器根據訊號選擇邏輯1100從不同空間解析度的層中選擇特徵圖資訊(選定資訊1120)的一部分(或多個部分),並在碼流1150中傳輸選定資訊1120。分割資訊1130表示從對應層的特徵圖的哪一層和哪一部分獲取選定資訊。
根據一個實施例,多個(N個)級聯層中的第j個層的處理包括: -確定通過使用所述第j個層輸出的特徵圖元素來重建重建圖像的一部分所產生的第一成本, -確定通過使用由所述第(j – 1)個層輸出的特徵圖元素來重建所述重建圖像的所述部分所產生的第二成本; -如果所述第一成本高於所述第二成本,則選擇所述第(j – 1)個層,並選擇與所述第(j – 1)個層中的所述部分相關的資訊。
可以根據失真或根據失真函數執行要選擇哪層。例如,對於運動向量場編解碼,重建圖像(或圖像部分)可以是運動補償圖像(或圖像部分)。
為了在本示例性實現方式中選擇選定資訊,編碼器包括成本計算單元(模組),其估計在特定位置從特定解析度層傳輸運動資訊的成本。成本是用選定運動向量的運動補償產生的失真計算的,結合傳輸運動資訊所需的比特數的估計乘以拉格朗日乘子。即,根據一個實施例,執行速率失真優化(rate-distortion optimization,RDO)。
即,在一些實施例中,第一成本和第二成本包括資料量和/或失真。例如,所述資料量包括傳輸與所述選定層相關的資料所需的資料量。可以是運動資訊或其它資訊。還可以是或包括殘差編解碼產生的開銷。失真是通過將重建圖像與目標圖像(待編碼原始圖像或待編碼原始圖像的一部分)進行比較來計算的。需要說明的是,RDO只是一種可能性。本發明不限於這種方法。此外,成本函數中可能包括複雜度或其它因素。
圖14示出了成本計算的第一部分。具體來說,成本計算(或估計)單元1400獲得由運動分割單元1140的下採樣層(downspl4)下採樣的光流L1。然後,成本計算單元1400對光流1415進行上採樣到其原始解析度,例如,在這種情況下,在兩個方向(x和y)中的每一個方向上進行上採樣4。然後,使用從1410輸出的上採樣運動向量和參考圖像1405執行運動補償1420,以獲得補償幀(圖像)或運動補償幀(圖像)1420的一部分的運動。然後,通過比較運動補償圖像(部分)1420與目標圖像1408來計算失真1430。例如,目標圖像1408可以是待編碼圖像(原始圖像)。在一些示例性實現方式中,可以通過計算目標圖像1408和運動補償圖像1420之間的均方誤差(mean squared error,MSE)或絕對差值和(sum of absolute difference,SAD)來執行比較。但是,其它類型的測量/度量也可以替代或另外使用,例如,針對主觀感知的更高級的度量,例如,MS-SSIM或VMAF。然後,計算出的失真1430被提供給成本計算模組1460。
此外,速率估計模組1440計算每個運動向量的比特量的估計值。速率估計不僅可以包括用於指示運動向量訊號的比特,而且還可以包括用於指示分割資訊的比特(在一些實施例中)。例如,如此獲得的比特數可以被逐個圖元(特徵圖元素)歸一化1450。得到的速率(比特量)提供給成本計算模組1460。為了獲得速率(比特量)估計值,例如,使用運動資訊編解碼模組(例如,通過執行編解碼並記錄結果比特量)或在一些簡化的實現方式中,使用其x或y分量的運動向量長度作為粗略估計值。可以應用另一種估計技術。為了考慮分割資訊,可以通過分割資訊編解碼模組(例如,通過生成和編解碼分割資訊並計數結果比特的數量)或在更簡單的實現方式中通過將比特添加到總比特量中來評估。
在本示例中,成本計算的下一步是成本計算1460,然後進行4的下採樣1470(downspl4),以達到運動分割單元1100的對應下採樣層的解析度。每個點(圖像樣本值)只能傳輸一個運動向量。因此,得到的成本張量可以具有對應大小(維度)。因此,比特評估值可以通過下採樣濾波器形狀的平方(例如4×4)歸一化。
然後,使用拉格朗日乘子,成本估計單元1460使用以下公式計算成本:
Figure 02_image052
Figure 02_image054
其中,D表示失真(由1430計算),R表示比特估計值(由1440或1450輸出的速率估計值),
Figure 02_image056
Figure 02_image058
是拉格朗日乘子。下採樣1470輸出成本張量1480。如本領域中已知的,拉格朗日乘子以及和
Figure 02_image058
可以通過經驗獲得。
這樣得到了具有特徵圖中每個位置的成本估計的張量1480(在這種情況下,密集光流的W×H位置)。需要說明的是,使用順序平均池化和上採樣與最近鄰居方法會導致在N×N(例如,4×4)區域中平均運動向量,其中,N×N是上採樣操作的平均池化濾波器形狀和縮放因數。在使用最近鄰居方法的上採樣期間,較低解析度層的值在與濾波器形狀對應的較高解析度層的所有點中複製(重複)。這對應於平移運動模型。
成本選擇單元的各種實現方式是可能的。例如,圖15示出了另一個示例性實現方式。在這個示例中,與圖14不同的是,在x和y維度中的每一個中對密集光流進行4的下採樣1501之後獲得的運動向量場不被上採樣1415。相反,運動向量場直接提供給運動補償1510和估計速率1540。相反,在運動補償1510和失真評估1530之前,參考圖像1505和目標圖像1505可以被下採樣1515、1518到相應的解析度。這樣不需要執行圖14中的初始運動場上採樣1415到原始解析度的步驟,以及不執行圖14的最終成本下採樣步驟1470。這也使得比特歸一化1450變得不必要。此實現方式在處理期間需要較少的記憶體來存儲張量,但可能提供的結果不夠準確。需要注意的是,為了加快或降低RDO的複雜度,可以想像對密集光流以及參考圖像和目標圖像進行下採樣,甚至比L1所做的更多。然而,這種RDO的精度可能會進一步降低。
將成本估計單元(1400、1500)應用於運動分割單元(1220、1310)的每個下採樣層,獲得具有不同運動向量平均級別(不同空間解析度)的成本。作為下一步,訊號選擇邏輯1100使用來自每個下採樣層的成本資訊來選擇不同空間解析度的運動資訊。為了實現訊號選擇邏輯1100執行來自順序(級聯)下採樣層的成本的成對比較,訊號選擇邏輯1100在每個空間位置選擇最小成本,並將其傳播到下一個(按處理順序)下採樣層。圖16示出了訊號選擇單元1600的示例性架構。
密集光流610進入三個下採樣層downspl4、downspl2和downspl2,類似於圖11中所示的下採樣層。圖16中的訊號選擇邏輯1600是圖11中的訊號選擇邏輯1100的示例性實現方式。具體地,LayerMv張量611是進入成本計算單元613的子採樣運動向量場(特徵圖)。LayerMv張量611還進入第一層的層資訊選擇單元614。層資訊選擇單元614在該(第一)層上存在選定運動向量的情況下,向碼流提供選定運動向量。其功能將在下文進一步說明。
例如,成本計算單元613計算成本,如參考圖14為成本計算單元1400所描述的。成本計算單元輸出一個成本張量,然後將其進行2的下採樣,以匹配第二層工作的解析度。在由第二下採樣層downspl2處理之後,LayerMV張量621被提供給下一(第三層)層以及第二層的成本計算單元623。成本計算單元623以與成本計算單元1400類似的方式操作。如本領域技術人員清楚的那樣,與參考圖14描述的示例中的4的上採樣/下採樣不同,在每個方向上應用2的下採樣。
為了對來自成本計算單元613和623的成本張量進行成對比較,來自前一(第一)下採樣層的成本張量已被下採樣(2)到當前解析度層(第二層)。然後,在兩個成本張量之間執行池化操作625。即,池化操作625在每個元素的成本張量中保持較低的成本。根據池化操作結果的元素索引,捕獲成本較低的層的選擇。例如,如果在一個特定張量元素中,第一張量的成本比第二張量的相應元素的成本低,則索引等於0,否則索引等於1。
為了確保用於訓練目的的梯度傳播,可以使用軟arg max來獲得具有梯度的池化索引。如果不需要梯度傳播,可以使用帶索引的常規池化。作為池化操作625的結果622,表示是否選擇了來自當前解析度層或前一解析度層的運動向量(LayerFlag張量)以及來自運動分割單元(LayerMv張量)的對應下採樣層的運動向量的索引是傳輸到當前(這裡是第二)層的層資訊選擇單元624。最佳池化成本張量傳播到下一個下採樣級別(downspl2),然後對第三層重複操作。
具體地,第二層的輸出LayerMv 621被第三層進一步下採樣(downspl2),並且所得運動向量場LayerMv 631被提供給第三層的成本計算單元633。將計算的成本張量與從第二層傳播並由MinCost池化單元625提供的下採樣成本張量逐個元素進行比較635。在MinCost池化635處理之後,索引表示是否選擇了來自當前(第三)解析度層或前一(第二)解析度層的運動向量(LayerFlag張量)以及來自運動分割單元(LayerMv張量)的對應下採樣層的運動向量的索引是傳輸到當前(這裡是第三)層的層資訊選擇單元634。在本示例中,僅顯示了三層作為示例。然而,一般來說,可能有不止三層,其中,這些層的其它層和訊號選擇邏輯具有類似於第二層和第三層所示的功能。
為了從每個空間解析度層收集池化資訊,下一個處理以相反的循序執行——使用層資訊選擇單元634、624和614從較低解析度層到較高解析度層。首先,與最低解析度層(這裡是第三層)大小相同的TakeFromPrev張量被初始化601為0。然後,對不同解析度的層重複相同的操作,如下所示。在張量(NOT TakeFromPrev)的值等於1的位置,選擇LayerFlag張量(當前層中)的值作為分割資訊在碼流中傳輸。(Not TakeFromPrev)張量是TakeFromPrev張量的逐個元素否定。因此,在第三層(這裡是最後一層)中,(Not TakeFromPrev)張量將所有值設置為1(601設置的否定0值)。因此,總是傳輸最後(這裡是第三)層的分割資訊1130(LayerFlag)。
使用邏輯運算TakeFromCurrent = (NOT TakeFromPrev) AND LayerFlag獲得TakeFromCurrent張量。此張量TakeFromCurrent的標誌表示是否選擇在當前解析度層的碼流中傳輸運動向量資訊。層資訊選擇單元(634、624、614)通過取LayerMv張量的值,從運動分割單元的對應下採樣層選擇運動向量資訊,其中,TakeFromCurrent張量的值等於1。該資訊作為選定資訊1120在碼流中傳輸。
對於最低解析度對應的第三個(倒序中的第一個)處理層,所有標誌都將傳輸,因為TakeFromPrev初始化為0,然後(Not TakeFromPrev)的所有值都等於1。對於最高解析度層對應的最後一個處理層,不需要傳輸LayerFlag標誌。假設對於未從前一個層選擇運動資訊的所有位置,這些位置應從當前或下一層(最高解析度)層選擇。
需要說明的是,如圖16所示的成本計算是可以在GPU/NPU上運行的可並行方案。該方案也是可訓練的,因為它正在傳輸梯度,可以在端到端可訓練的視訊編解碼技術方案中使用該方案。
需要說明的是,相反連續處理與解碼器在解析分割資訊和運動向量資訊時執行的處理類似,如下面討論解碼器功能時所示。
訊號選擇邏輯1700的另一個示例性實現方式在圖17中示出。與圖16相比,圖17的框圖在同一解析度層引入了多個編解碼選項。這由第一層成本計算單元710中的選項1到N來說明。需要說明的是,通常一個或多個或所有層可以包括更多的選項。即,成本計算單元613、623、633中的任何一個都可以提供更多的選項。例如,這些選項可以是以下一個或多個或全部:用於運動估計/補償的不同參考圖像、單向預測、雙向預測或多假設預測、不同預測方法(例如,幀間預測或幀內預測)不預測的直接編解碼、多假設預測、殘差資訊的存在或不存在、殘差的量化水準等。在成本計算單元710中,為每個編解碼選項計算成本。然後,使用最小成本池化720選擇最佳選項。最佳選擇選項的指示符(例如,索引)705被傳輸到層資訊選擇模組730,然後,如果將選擇當前層的相應點來傳輸資訊,則在碼流中傳輸指示符BestOpt。在給定的示例中,僅針對第一層示出了選項,但是應該理解,類似的選項選擇邏輯也可以應用於不同解析度的其它層,或應用於所有層。
上述方法還適用於邏輯資訊的分割和傳輸,如控制圖像重建過程的標誌或切換器,以及用於在解碼後保持不變並與編碼端保持相同的資訊。即,代替在圖16的示例性實現方式中處理的運動向量場(密集光流),任何一個或多個其它參數可以以類似的方式編碼,包括分割。參數可以是以下一個或多個或全部:指示用於運動估計/補償的不同參考圖像等的指示符,單向、雙向或多假設預測指示符,不同的預測方法,例如,幀間或幀內預測,不預測的直接編解碼指示符,多假設預測,殘差資訊的存在或不存在,殘差的量化水準,環內濾波器的參數等。
對上述實施例和示例的進一步修改
根據第一修改,運動分割單元1310的下採樣層和/或運動生成單元1360的上採樣層包括卷積運算。這在圖18中示出。如圖18所示,與圖13相比,下採樣層“dwnspl”和上採樣層“upspl”分別在運動分割單元1810中被下採樣卷積層“conv ↓”替換,以及在運動生成單元1860中被上採樣卷積層“conv ↑”替換。卷積重新縮放(下採樣、上採樣)層的一些優點是實現了可學習的下採樣和上採樣過程。例如,在用於運動資訊密集的情況下,有助於找到最佳的上採樣變換,並因此可以減少由使用塊平均運動向量資訊的運動補償引起的方塊效應,如上述實施例和示例中所述。同樣的情況也適用於紋理恢復過程,例如,用於由級聯層處理的原始圖像強度值或預測殘差生成。
在上文圖18的示例中,所有的下採樣層和上採樣層都是卷積層。通常,本發明不限於這種實現方式。通常,在分割單元(1310、1810)和/或在生成單元(1360、1860)內,下採樣和對應的上採樣操作的子集(一個或多個)可以實現為卷積。
請回顧,即使本文描述的示例是用於密集光流/運動向量場處理的,因此參考運動分割單元(1310、1810)和/或運動生成單元(1360、1860),但本發明不限於這種資料/特徵圖。相反,在本文的任何實施例和示例中,可以處理任何編解碼參數或甚至紋理,例如,圖像的樣本或預測殘差(預測誤差)等。或除了運動向量場之外,可以處理任何編解碼參數或甚至紋理。
需要說明的是,例如,具有在下採樣中平均的運動資訊的編碼器可以與包括卷積上採樣層的解碼器結合使用。此外,具有卷積層的編碼器的目的是尋找更好的潛在表示,可以與實現基於最近鄰居的上採樣層的運動生成網路(解碼器)結合。可以有其它組合。即,上採樣層和下採樣層不一定是相似的類型。
根據可與前述實施例和示例中的任何一個(以及第一修改)組合的第二修改,網路的處理包括具有上述不同解析度的級聯層之間的一個或多個附加卷積層。例如,運動分割單元1310和/或運動生成單元1360還包括在部分或全部下採樣層和上採樣層之間的一個或多個中間卷積層。這在圖19中示出,圖19示出了這種運動分割網路(模組)1910和運動生成網路(模組)1860的示例性實現方式。需要說明的是,術語“模組”和“單元”在這裡可互換地用於表示功能單元。在這個具體實施例中,單元1910和1960更具體地是具有多個級聯層的網路結構。
例如,與運動分割單元1310相比,運動分割單元1910在每個下採樣層“conv ↓”(這也可以是其它類型的下採樣)之前具有額外的卷積層“conv”。此外,與運動生成單元1360相比,運動生成單元1960在每個上採樣層“conv ↑”(也可以是其它類型的上採樣)之前具有附加的卷積層“conv”。
這可以進一步減少運動資訊稀疏化引起的阻塞偽影,並增加尋找更好的潛在表示的泛化效果。與上面關於第一修改提到的類似,來自上述不同實施例/修改的編碼器和解碼器可以組合在一個壓縮系統中。例如,可以僅具有在下採樣層之間具有附加層的編碼器,並且具有沒有這種附加層的解碼器,反之亦然。可替代地或此外,可以在編碼器和解碼器處具有不同數量和位置的這種附加層。
根據第三修改,如圖19所示,提供了輸入和輸出訊號的直接連接。需要說明的是,即使在這裡的同一圖中示出,第二修改和第三修改是獨立的。它們可以一起或單獨應用於之前描述的實施例和示例以及其它修改。直接連接用虛線表示。
除了自動編碼器的潛在表示(最低解析度層的輸出)的瓶頸資訊外,在一些實施例中,來自較高解析度層的資訊被添加到碼流中。為了優化指示開銷,只有來自不同解析度層的部分資訊被插入碼流中,由訊號選擇邏輯控制。在接收(解碼器)側,對應的訊號饋送邏輯將資訊從碼流饋送到不同空間解析度的層,如下文詳細描述。此外,來自下採樣層之前輸入訊號的資訊可以添加到碼流中,通過該碼流可以進一步增加可變性和靈活性。例如,編解碼可以對齊到具有較高空間解析度的真實物件邊界和分割,並根據特定序列的特徵調整。
根據第四修改,下採樣和上採樣濾波器的形狀可以為方形以外的形狀,例如矩形,具有水準或垂直方向、非對稱形狀或通過採用遮罩操作的其它更任意的形狀。這有助於進一步增加分割過程的可變性,以更好地捕獲真實物件邊界。該修改在圖20中示出。在運動分割單元2010中,在第一下採樣層之後,在可以與上述實施例中的任何一個相同的第一下採樣層之後,兩個其它下採樣層使用濾波器形狀集合中的選定濾波器。此修改不限於運動向量資訊的處理。
通常,在層進行下採樣時,應用的是使用第一濾波器對輸入特徵圖進行下採樣得到第一特徵圖,使用第二濾波器對所述輸入特徵圖進行下採樣得到第二特徵圖。成本計算包括確定通過使用第一特徵圖來重建重建圖像的一部分而產生的第三成本,以及確定通過使用第二特徵圖來重建重建圖像的一部分而產生的第四成本。然後,在選擇時,如果第三成本小於第四成本,則選擇第一特徵圖,如果第三成本大於第四成本,則選擇第二特徵圖。在此示例中,選擇來自兩個濾波器。然而,本發明並不限於兩個濾波器,而是可以以類似的方式從預定義數量的濾波器中進行選擇,例如,通過估計所有可選擇濾波器的成本和通過選擇濾波器最小化成本。
第一濾波器和第二濾波器的形狀可以是方形、水準方向的矩形和垂直方向的矩形中的任何一個。然而,本發明不限於這些形狀。通常,可以設計任何任意濾波器形狀。濾波器還可以包括可以用任意期望形狀定義的濾波器。這種形狀可以通過獲取遮罩來表示,其中,遮罩由標誌組成,遮罩表示任意濾波器形狀,並且第一濾波器和第二濾波器(通常來自濾波器集合的任何可選擇濾波器)中的一個具有任意濾波器形狀。
在示例性實現方式中,為了提供可變性,編碼器還包括在借助具有相互不同形狀的濾波器獲取的成本張量之間的池化。選定濾波器形狀的索引在碼流中作為分割資訊的(一部分)指示,類似於上述運動向量。例如,對於在水準方向和垂直方向的矩形形狀之間進行選擇,對應的標誌可以在碼流中指示。例如,參考圖17描述的選擇多個編碼選項的方法可用於在同一解析度層選擇不同的濾波器形狀。
根據第五修改,可以在同一解析度層中選擇預定義的不同運動模型集合中的運動模型。在之前的實施例中,已經描述了下採樣和/或上採樣濾波器的特定情況。在這種情況下,運動資訊可以在表示平移運動模型的方塊上進行平均。在第五修改中,除了平移運動模型外,還可以採用其它運動模型。此類其它運動模型可包括以下一種或多種: -仿射運動模型, -高階運動模型,或 -專門訓練成表示縮放、旋轉、仿射、透視等特定運動模型的CNN層。
在第五修改的示例性實現方式中,自動編碼器還包括表示平移運動模型以外的CNN層和/或“手工製作”層的集合。這種自動編碼器(和解碼器)如圖21所示。在圖21中,自動編碼器包括在編碼端和解碼端提供的包括表示為“卷積擬合集”的濾波器集的層。
例如,在每個空間層,編碼器從濾波器集合中選擇對應於特定運動模型的適當濾波器,並將指示插入碼流中。在接收端,訊號饋送邏輯解釋指示符,並使用集合中對應的濾波器在特定層執行卷積。
上述方法的示例使用運動資訊,特別是運動向量,作為用於編碼的示例性輸入。再次需要說明的是,這些方法也適用於不同類型的圖像或視訊資訊的壓縮,如直接圖像樣本值、預測殘差資訊、幀內預測參數和幀間預測參數等。
根據第六修改,上文參考圖16或圖17舉例說明的RDO可以應用于傳統的基於塊的編解碼器。
傳統的視訊編碼方法,例如,AVC、HEVC、VVC或EVC等最先進的視訊編碼標準,使用基於塊的編碼概念,根據該概念,圖像被遞迴地劃分成方形或矩形形狀的塊。對於這些塊,訊號重建參數在編碼端估計或評估,並在碼流中傳輸到解碼器。通常,編碼器的目標是在速率失真成本方面為表示圖像的塊集找到最佳重建參數,試圖最大限度地提高重建品質(即,最大限度地減少原始圖像的失真),並最大限度地減少傳輸重建過程參數所需的比特量。參數選擇(或編解碼模式決策)的任務是一項複雜和資源要求高的任務,也是編碼器複雜度的主要來源。例如,在即時應用中,編碼器可能會犧牲模式決策的品質,而模式決策又會影響重建訊號的品質。優化模式決策過程一直是一項理想的技術改進。
編解碼模式決策之一是是否根據分割方法將當前塊(或編碼單元(Coding Unit,CU))劃分為多個塊的決策。
根據第六修改,上述運動分割單元1310(或1810)適於基於最小化成本(例如,速率失真優化準則)的劃分模式決策。圖22示出了這種優化的示例。
如圖22所示,塊分割結構用於表示不同空間解析度的資訊,而不是下採樣層。對於圖像或圖像的一部分的給定大小N×N(考慮方塊)的每個塊,成本計算單元計算失真張量,並將解析度進一步進行因數16的下採樣(以匹配原始解析度)。在圖22上的給定示例中,第一塊大小為16×16(例如,下採樣通過平均池化操作執行),以獲取張量,每個元素表示每個16×16塊中的平均失真。在第一層中,圖像以初始最高解析度分割為16×16塊2201。在第二層中,解析度被降低,使得圖像中的塊大小2202為32×32(對應於連接前一層的四個塊)。在第三層中,解析度再次降低,使得塊大小2203為64×64(對應於連接前一層的四個塊)。需要說明的是,在這種情況下,從上一層連接四個塊可以被視為塊相關資訊的子採樣。這是因為在第一層中,為每個16×16塊提供塊相關資訊,而在第二層中,塊相關資訊僅為32×32塊提供,即提供的參數少4倍。類似地,在第三層中,塊相關資訊僅為64×64塊提供,即提供的參數比第二層少4個定時參數,比第一層少16倍。
在此上下文中,塊相關資訊是每個塊編解碼的任何資訊,例如,預測模式;預測模式特定資訊,例如運動向量、預測方向、參考圖像等;濾波參數;量化參數;轉換參數或其它可能在塊(編碼單元)級別更改的設置。
然後,相應的第一層、第二層和第三層的成本計算單元2211、2212和2213根據用於相應塊大小2201、2202和2203的塊重建參數以及根據大小為W×H的輸入圖像來計算成本。
輸出成本張量作為每個塊中的平均失真獲取,並結合使用拉格朗日乘子傳輸N×N(例如,第一層為16×16)塊的編解碼參數所需的比特估計值。圖23示出了用於塊N×N的成本計算單元2300(可以對應于成本計算單元2211、2212和2213中的每一個或任何一個)的示例性結構。
圖23示出了N×N的一般塊大小230x的成本計算單元2300的示例性框圖。成本計算單元2300獲取2310與大小為N×N的塊相關聯的塊重建參數(塊相關參數)。這種獲取可以對應於從記憶體等中獲取參數(參數值)。例如,塊相關參數可以是特定的預測模式,例如,幀間預測模式。在單元2310中,獲取塊重建參數,在重建單元2320中,使用這些參數來重建圖像的一部分(在本示例中,所有塊都使用幀間預測模式重建)。失真計算單元2330通過將圖像的重建部分與目標圖像的對應部分進行比較,計算圖像的重建部分的失真,目標圖像可以是待編碼原始圖像。由於失真可以針對每個樣本計算,為了在塊基礎上獲取失真,可以對失真執行下採樣2340(每個N×N塊一個值)。在較低的分支中,估計2360編解碼圖像所需的速率或比特數。具體地,比特估計單元2360可以估計每個N×N大小的塊待指示的比特數。例如,可以計算幀間預測模式所需的每個塊的比特數。具有估計的失真和比特量(或速率),例如,根據上文提到的拉格朗日優化,可以計算2350成本。輸出是一個成本張量。
需要說明的是,在整個描述中,如果僅僅觀察到樣本的2D圖像,例如灰度圖像,這裡的術語“張量”可以是矩陣。然而,圖像可能有多個通道,如顏色或深度通道,因此輸出也可能具有更多的維度。一般特徵圖也可以超過2維或3維。
對於第一層(具有16×16塊細微性)和下一級四叉樹劃分為大小為32×32樣本的塊,執行相同的成本評估過程。要決定是使用一個32×32塊作為重建參數(塊相關參數)還是使用四個16×16塊更好,為16×16塊評估的成本張量進行因數2的下採樣(參見圖22)。然後,最小成本池化操作2222為每個32×32塊提供最佳決策。池化成本的索引被傳遞到層資訊選擇單元2232,以作為split_flags在碼流中傳輸。根據池化索引的最佳選定塊的重建參數blk_rec_params也被傳遞到層資訊選擇單元2231。池化成本張量進一步傳遞(2的下採樣)到大小為64×64的塊的下一個四叉樹聚合級別,即,到MinCost池化2223。MinCost池化2223還接收成本計算單元2213中針對64×64塊解析度2203計算的成本。它將池化成本的索引作為split_flags傳遞給層資訊選擇單元2233,以在碼流中指示。還根據池化索引的最佳選定塊的重建參數blk_rec_params也被傳遞到層資訊選擇單元2233。
要從每個塊聚合級別收集池化資訊,使用層資訊選擇單元2233、2232和2231以上文參考圖16描述的方式,按從較高(在本示例中最高)聚合級別(64×64樣本)到較低(在本示例中最低)聚合級別(16×16樣本)的相反循序執行處理。
這樣得到編碼通過優化獲取的四叉樹劃分的碼流,以及編碼值和可能的結果分塊(塊)的進一步編解碼參數。上述方法可以對塊分割的劃分標誌做出決策。為了獲得每個塊的重建參數,可以使用基於評估每種或部分可能編解碼模式的傳統方法。
圖24示出了第七修改的示例。第七修改是上文參考圖22和圖23描述的第六修改的演變。第七修改代表了一種方案,其中,編解碼模式的評估被納入設計中。具體地,如圖中所示,成本計算單元710可以評估N個選項。需要說明的是,術語“N”在這裡是某個整數的預留位置。表示選項數量的“N”不一定與表示一般塊大小的“N×N”中的“N”相同。在成本計算單元710中,對於相同級別的分塊劃分,例如,對於大小為16×16樣本的塊(如在第一層中),編碼器反覆運算每個塊的所有可能(或其有限集合)編解碼模式。
需要考慮有N個選項來編解碼每個16×16塊,塊表示為blk_rec_params 0、blk_rec_params 1……blk_rec_params N。例如,參數組合blk_rec_params k(k是從0到N的整數)可以是某些預測模式(例如,幀間預測或幀內預測)的組合,某些變換(例如,DCT或KLT)、某些濾波階數或濾波器係數集(在預定義的濾波器中)等。在一些實現方式中,如果只優化了一個參數,blk_rec_params k可以是單個參數的值k。本領域技術人員明白,任何一個或多個參數都可以通過檢查其使用成本進行優化。
對於每個給定的塊重建參數集(blk_rec_params k),成本計算單元2410計算表示每個塊的成本的張量。然後,使用最小成本池化2420,選擇每個塊的最佳編解碼模式,並將其傳輸到層資訊選擇單元2430。最佳池化成本張量進一步進行因數2的下採樣,並傳輸到下一個四叉樹聚合級別(在本例中,第二層對應於塊大小為32×32的聚合)。然後,以與上述第六修改相同的方式做出劃分(分割)決策。在圖24中,選項0……N僅在第一層(聚合級別16×16)中計算。然而,本發明不限於這種方法。相反,可以在每個聚合級別執行選項0……N的評估。
例如,在下一個四叉樹聚合級別(32×32、64×64),編碼器評估(通過計算相應成本單元中的成本)和池化(通過相應的MinCost池化單元)每個塊的最佳編解碼模式(為了便於理解,未在圖片中描述),與前一聚合級別進行了比較。關於最佳模式和對應重建參數集的決策被提供給層資訊選擇單元(例如,為第一層示出的層資訊選擇單元2430)。為了從每個塊聚合級別收集池化資訊,使用層資訊選擇單元,按照第六修改中所述的方式,以從較高聚合級別(64×64)到較低聚合級別(16×16)的相反循序執行處理。
不同的塊形狀可以用來表示更高級的分割方法,例如,二叉樹、三叉樹、非對稱和幾何分割。圖25舉例說明了塊的這種分割。即,優化不一定只在不同的塊大小上執行,它也可以針對不同的分割類型執行(例如,通過對應的選項)。圖25示出了以下示例: -四叉樹分割2510:在四叉樹分割中,一個塊被劃分(分割)為四個大小相同的塊。 -(對稱)二叉樹分割2520:在對稱二叉樹分割中,一個塊被劃分為兩個大小相同的塊。劃分可以是垂直劃分或水準劃分。垂直或水準是劃分的附加參數。 -(不對稱)二叉樹分割2530:在不對稱二叉樹分割中,一個塊被劃分為兩個大小不同的塊。大小比可以是固定的(以節省指示引起的開銷)或可變的(在這種情況下,一些比率選項也可以優化,即可配置)。 -三叉樹分割2540:在三叉樹分割中,一個塊被兩條垂直線或兩條水平線劃分為三個分塊。垂直或水準是劃分的附加參數。
本發明不限於這些示例性分割模式。可以使用三叉樹分割或任何其它類型的分割。
在第七修改中,適用於流行視訊編碼標準的混合架構得到了基於強大的(神經)網路的方法的支援和授權。所描述的方法的技術優點可以提供高度可並行的GPU/NPU友好方案,該方案可以有助於加快模式決策過程的計算速度。所述方法可以使全域圖像優化成為可能,因為多個塊在同一決策級別被考慮,因此,包括可學習的部分以加快決策速度,例如,用於評估重建參數編解碼所需的比特量。
總之,根據第六或第七修改,級聯層結構的處理包括在不同層中處理與被分割(即劃分/分割)為分別具有不同塊大小和/或形狀的塊有關的相同圖像的資料。層的選擇包括:根據預定編解碼模式集的計算成本來選擇層。
即,不同的層可以以不同的塊大小處理圖像資料。因此,級聯層包括至少兩個處理相互不同塊大小的層。當在這裡提到“塊”時,意思是一個單元,即對其執行編解碼的圖像的一部分。該塊也可以稱為編解碼單元或處理單元等。
預定的編解碼模式集對應於編解碼參數值的組合。不同的塊大小可以在一個編解碼模式集(一個或多個編解碼參數的值的組合)下評估。或者,評估可以包括塊大小和分割形狀的各種組合(例如,圖25的組合)。然而,本發明並不限於此,並且,如在第七修改中特別提到的,可以有幾個預定的編解碼模式集(編解碼參數值的組合),編解碼模式集還可以包括例如每個塊的幀內/幀間預測類型等編解碼模式、幀內預測模式、殘差跳過、殘差數據等。
例如,處理包括為至少一層確定不同編解碼模式集的成本(編解碼參數值的組合),並根據所確定的成本選擇編解碼模式集中的一個。圖24示出了僅第一層執行這種選擇的情況。然而,這並不限制。快速地,每個成本計算單元可以具有與第一成本計算單元2410相同的結構,包括選項0……N。為了使圖更簡單,圖中沒有顯示這一點。
如上所述,這是一個GPU友好的RDO,可以由編解碼器執行,並選擇每個塊的最佳編解碼模式。在圖24中,輸入圖像(image/picture)在每一層中都是相同的。然而,圖像的編解碼(計算成本)是在具有不同塊大小的每一層中執行的。除了塊大小,對於一個或多個塊大小,可以根據RDO測試和選擇其它編解碼參數。
具體地,在這些修改中,與選定層相關的資料的指示包括選定的編解碼模式集(例如,blk_rec_params)。
總之,在一些實施例中,可以提供編碼器,所述編碼器的結構對應於用於視訊或圖像資訊編解碼的神經網路自動編碼器。這種編碼器可以用於:通過包括不同空間解析度層的神經網路分析輸入圖像或視訊資訊;在碼流中傳輸對應於最低解析度層輸出的潛在表示;在碼流中傳輸除最低解析度層以外的輸出。
解碼
上述編碼器提供碼流,所述碼流包括用於選定層的特徵資料和/或分割資訊。相應地,解碼器對從碼流接收的資料進行多層處理。此外,選定層從位流接收額外的(直接)輸入。輸入可以是一些特徵資料資訊和/或分割資訊。
相應地,在下文中,描述側重于與作為特徵資料的選定層相關的資訊的實施例。其它描述的實施例集中在與作為分割資訊的選定層相關的資訊上。也存在碼流承載和層處理特徵資料和分割資訊的混合實施例。
作為一個簡單的示例,可以提供神經網路自動編碼器的解碼器用於視訊或圖像資訊編解碼。解碼器可用於:從碼流中讀取對應於較低解析度層輸入的潛在表示;根據從碼流中讀取的除較低解析度層以外的對應資訊,獲取層輸入資訊;根據從碼流中獲取的層資訊和上一層的輸出,獲取該層的組合輸入;將組合輸入饋送到該層;根據該層的輸出合成圖像。
在這裡,術語“較低解析度”是指處理具有較低解析度的特徵圖的層,例如,從碼流提供的潛在空間的特徵圖。較低解析度實際上可以是網路的最低解析度。
解碼器還可以用於:根據從碼流中讀取的對應資訊獲取分割資訊;根據分割資訊獲取層的組合輸入。分割資訊可以是四叉樹、二叉樹或三叉樹資料結構或它們的組合。例如,層輸入資訊可以對應於運動資訊、圖像資訊和/或預測殘差資訊等。
在一些示例中,使用超先驗神經網路對從碼流中獲取的對應於層輸入資訊的資訊進行解碼。可以使用超先驗神經網路對從碼流中獲取的對應於分割資訊的資訊進行解碼。
解碼器可以容易地應用於運動向量(例如,運動向量場或光流)的解碼。這些運動向量中的一部分可以是相似的或相關的。例如,在顯示物件在恒定背景上移動的視訊中,可以有兩組相似的運動向量。作為運動向量的第一組可以是用於預測顯示物件的圖元的向量,第二組可以是用於預測背景的圖元的向量。因此,與其指示經編碼資料中的所有運動向量,不如指示運動向量組,以減少表示經編碼視訊的資料量。這可以有助於指示需要較小資料量的運動向量場的表示。
圖9示出了在解碼端接收的由上文所述編碼器生成的碼流930。在解碼端,系統900的解碼器部分包括訊號饋送邏輯940,在一些實施例中,訊號饋送邏輯940解譯從碼流930中獲取的分割資訊。根據分割資訊,訊號饋送邏輯940標識特徵圖部分的特定(選定)層、空間大小(解析度)和位置,對應的選定資訊(也從碼流中獲取)應該放置在這些資訊中。
需要說明的是,在一些實施例中,分割資訊不一定由級聯網路處理。分割資訊可以獨立提供,也可以從碼流中的其它參數推導出。在其它實施例中,特徵資料不一定在級聯網路中處理,但分割資訊是在級聯網路中處理。因此,“使用特徵資訊解碼”和“使用分割資訊解碼”兩個部分描述了這些實施例的示例,以及這些實施例的組合。
需要說明的是,對於兩個部分的實施例,上述編碼端修改(第一至第七修改)相應地應用於解碼端。為了便於理解,修改的其它特徵不會在兩個部分中重複。然而,如本領域技術人員所清楚的,它們可以替代地或組合地應用於兩個部分的解碼方法。
使用特徵資訊解碼
在本發明實施例中,提供了一種從碼流中解碼用於圖像或視訊處理的資料的方法,如圖33所示。相應地,提供了一種從碼流中解碼用於圖像或視訊處理的資料的裝置。所述裝置可以包括用於執行所述方法步驟的處理電路。
所述方法包括從碼流中獲取3310兩個或多個特徵圖元素集,其中,每個特徵圖元素集與(各自的)特徵圖相關。獲取可以通過解析碼流進行。在一些示例性實現方式中,碼流解析還可以包括熵解碼。本發明不限於從碼流中獲取資料的任何特定方式。
所述方法還包括將兩個或多個特徵圖元素集中的每一個分別輸入3320到多個級聯層中的兩個或多個特徵圖處理層中的步驟。
級聯層可以形成處理網路的一部分。在本發明中,術語“級聯”是指一個層的輸出稍後由另一個層處理。級聯層不必緊密相鄰(其中一個級聯層的輸出直接進入第二個級聯層的輸入)。當參考圖9時,來自碼流930的資料被輸入到訊號饋送邏輯940,訊號饋送邏輯940將特徵圖元素集饋送到適當的層(由箭頭指示)953、952和/或951。例如,第一特徵元素集插入到第一層953(處理序列中的第一個),第二特徵元素集插入到第三層951。沒有必要在第二層中插入集合。層的數量和位置(在處理順序內)可以變化,本發明不限於任何特定數量和位置。
所述方法還包括獲取3330用於圖像或視訊處理的所述經解碼資料,作為多個級聯層的處理結果。例如,第一集合是由網路的所有層處理的潛在特徵圖元素集。第二集合是提供給另一層的附加集合。當參考圖9時,經解碼資料911是在由三個層953、952和951(按此順序)處理第一集合之後獲取的。
在示例性實現方式中,在兩個或多個特徵圖處理層中的每一個中處理特徵圖,其中,在兩個或多個特徵圖處理層中分別處理的特徵圖的解析度不同。例如,第一層處理的第一特徵圖的解析度與第二層處理的第二特徵圖的解析度不同。
具體地,在兩個或多個特徵圖處理層中對特徵圖進行的處理包括上採樣。圖9示出了解碼部分包括三個(直接)級聯上採樣層953、952和951的網路。
在示例性實現方式中,解碼器僅包括不同空間解析度的上採樣層,並且最近鄰居方法用於上採樣。最近鄰居方法在與給定形狀相對應的較高解析度區域中重複較低解析度的值。例如,如果一個較低解析度的元素對應於四個較高解析度的元素,則一個元素的值在較高解析度區域重複四次。在這種情況下,術語“對應”是指描述最高解析度資料(初始特徵圖、初始資料)中的相同區域。這種上採樣方式有助於在無修改的情況下將資訊從較低解析度層傳輸到較高解析度層,這種方式可以適用於一些種類的資料,例如,邏輯標誌或指示符資訊,或希望保持與在編碼端獲取的相同的資訊,例如,一些卷積層的修改。這種資料的一個示例是預測資訊,例如,可以包括在編碼端估計的運動向量的運動資訊、表示應該使用來自參考圖像集中的哪個特定圖像的參考索引、表示是使用單個參考幀還是多個參考幀的預測模式,或不同預測的組合(如組合的幀內幀間預測)、殘差資訊的存在或不存在等。
然而,本發明不限於通過最近鄰居方法執行的上採樣。或者,上採樣可以通過應用一些插值或外插,或通過應用卷積等來執行。這些方法可能特別適合於對預期具有平滑特性的資料(例如,運動向量或殘差或其它與樣本相關的資料)進行上採樣。
在圖9中,編碼器(例如,符號911至920)和解碼器(例如,符號940至951)相應地具有相同數量的下採樣層和上採樣層,最近鄰居方法可以用於上採樣,平均池化可以用於下採樣。池化層的形狀和大小與上採樣層的比例因數對齊。在一些其它可能的實現方式中,可以使用另一種池化方法,例如,最大池化。
如在幾個編碼器實施例中已經舉例說明,用於圖像或視訊處理的資料可以包括運動向量場。例如,圖12示出了編碼端和解碼端。在解碼端,解析碼流1250,並從碼流中獲取運動資訊1260(可以具有下文將討論的分割資訊)。然後,所獲取的運動資訊被提供給運動生成網路1270。運動生成網路可以增加運動資訊的解析度,即密集運動資訊。然後,重建的運動向量場(例如,密集光流)1275被提供給運動補償單元1280。運動補償單元1280使用重建的運動向量場以根據參考幀獲取預測圖像/視訊資料,並根據參考幀重建運動補償幀(例如,通過添加解碼殘差,如圖5A中所示,編碼器的解碼器部分,或在圖7B中,重建單元314)。
圖13還示出了解碼端運動生成(密集)網路1360。網路1360包括訊號饋送邏輯1370,訊號饋送邏輯1370的功能類似於圖9的訊號饋送邏輯940的功能,以及包括三個上採樣(處理)層。與上面參考圖9描述的實施例的主要區別是,在圖13中,網路1360專門用於運動向量資訊處理,輸出運動向量場。
如上所述,根據一個實施例,所述方法還包括從碼流中獲取與兩層或多個層相關的分割資訊。然後,根據分割資訊從碼流中獲取特徵圖元素。根據分割資訊,將特徵圖元素集分別輸入到兩個或多個特徵圖處理層中。下面在與使用分割資訊解碼有關的部分中提供了與在解析和處理中使用分割資訊有關的一些詳細示例。例如,圖28和圖29提供了非常具體的(並且僅僅是示例性的)層處理選項。
在一些實施例中,多個級聯層還包括多個分割資訊處理層。所述方法還包括在多個分割資訊處理層中處理分割資訊。例如,在多個分割資訊處理層中的至少一個中處理分割資訊包括上採樣。在一些實施例中,分割資訊的這種上採樣和/或特徵圖的所述上採樣包括最近鄰居上採樣。通常,應用於特徵圖資訊的上採樣和應用於分割資訊的上採樣可以不同。此外,同一網路內的上採樣可以不同,因此一個網路(分割資訊處理或特徵圖處理)可以包括不同類型的上採樣層。例如,在圖20或圖21中顯示了這樣的示例。需要說明的是,除最近鄰居之外的上採樣類型可以包括一些插值方法,例如多項式方法,例如雙線性、三次方等。
根據示例性實現方式,所述分割資訊的上採樣和/或所述特徵圖的上採樣包括(轉置)卷積。這對應于上文討論的編碼器的第一修改。圖18在解碼端示出了運動生成單元1869,包括卷積運算“conv ↑”而不是最近鄰上採樣。所述運動生成單元可以進行可學習上採樣過程,例如,在用於運動資訊密集的情況下,有助於找到最佳的上採樣變換,並可以通過使用如上文參考編碼器描述的塊平均運動向量資訊來減少由運動補償引起的方塊效應。同樣的情況也適用於紋理恢復過程,例如,用於原始圖像強度值或預測殘差生成。運動生成單元1869還包括訊號饋送邏輯,訊號饋送邏輯的功能與圖9的訊號饋送邏輯940和圖13的訊號饋送邏輯1370的功能相同。
圖30示出了根據第一修改的示例性解碼端的層處理的框圖。具體地,解析碼流3030,並且訊號饋送邏輯3040(功能與訊號饋送邏輯940或1370的功能相同)向卷積上採樣濾波器300提供選擇指令。在一些實施例中,可從N個濾波器(表示為濾波器1至N)的集合中選擇卷積濾波器。可以根據表示選定濾波器並從碼流中解析的資訊來選擇濾波器。選定濾波器的指示可以由編碼器根據RDO等優化方法提供(生成並插入到碼流中)。具體地,可以應用圖17或圖24中舉例說明的RDO(將濾波器大小/形狀/順序作為選項之一處理,即要優化的編解碼參數)。然而,本發明並不限於此,並且通常,濾波器可以根據其它指示參數(例如,編解碼模式、插值方向等)推導出。
總之,訊號饋送邏輯單元控制具有不同濾波器形狀的不同層的輸入,並根據從碼流中獲取的分割資訊和運動資訊選擇性地旁路繞過輸出到下一層的層。卷積濾波器單元3000對應於由一個層執行的卷積。可以級聯幾個這樣的卷積淹沒濾波器,如圖18所示。需要說明的是,本發明不限於可變的或可訓練的濾波器設置。通常,卷積上採樣也可以用固定的卷積運算執行。
本實施例的方面可以與其它實施例的方面結合。例如,具有在下採樣層中平均的運動資訊的編碼器可以與包括卷積上採樣層的解碼器結合使用。具有卷積層的編碼器的目的是尋找更好的潛在表示,可以與包括基於最近鄰居的上採樣層的運動生成網路結合。可以有其它組合。即,編碼器和解碼器的實現方式不必是對稱的。
圖32A示出了應用最近鄰居方法的重建的兩個示例。具體地,示例1示出了最低解析度層的分割資訊具有標誌集的值(為1)的情況。相應地,運動資訊表示一個運動向量。由於運動向量已經在最低解析度層中表示,因此在碼流中沒有其它運動向量和其它分割資訊。網路通過在最近鄰居上採樣期間複製一個指示的運動向量,從一個指示的運動向量生成分別具有較高解析度(2×2)的運動向量場和最高解析度(4×4)的運動向量場。得到所有16個運動向量相同且等於指示的運動向量的4×4區域。
圖32B示出了應用基於卷積層的方法的重建的兩個示例。示例1具有與圖32A的示例1相同的輸入。具體地,最低解析度層的分割資訊具有標誌集的值(為1)。相應地,運動資訊表示一個運動向量。然而,在應用卷積層(可能經過訓練)之後,較高層和最高層中的運動向量並不完全一樣,而不是僅僅複製一個運動向量。
類似地,圖32A中的示例2示出了最低解析度層中0的分割資訊,以及下一個(較高解析度)層的分割資訊0101。相應地,由分割資訊表示的位置的兩個運動向量在碼流中指示為運動資訊。這些顯示在中間層。從底層可以看出,指示的運動向量被複製,每個運動向量都被複製四次,以包括最高解析度區域。最高解析度(底)層的其餘8個運動向量在碼流中指示。圖32B的示例2應用卷積而不是最近鄰居複製。不再複製運動向量。圖32A中複製的運動向量之間的過渡現在更加平滑,從而減少了方塊偽影。
與上面討論的編碼器的第二修改類似,在解碼端,多個級聯層包括卷積層,而不在具有不同解析度的層之間進行上採樣。需要說明的是,編碼器和解碼器在這方面不一定是對稱的:編碼器可以具有這些附加層,而解碼器則不具有,反之亦然。當然,編碼器和解碼器也可以對稱設計,並在編碼器和解碼器的對應下採樣和上採樣層之間具有附加層。
關於分割資訊處理和特徵圖處理的組合,從碼流中獲取特徵圖元素是根據由多個分割資訊處理層中的至少一個處理的經處理分割資訊進行的。分割層可以解析和解譯分割資訊,如下面在使用分割資訊解碼章節中更詳細地描述的那樣。需要說明的是,這部分中描述的實施例和示例可與本章節中的實施例結合使用。具體地,參考圖26至圖32B描述的分割資訊的層處理也可以與本文描述的特徵圖處理結合執行。
例如,將兩個或多個特徵圖元素集中的每個集合分別輸入到兩個或多個特徵圖處理層中是根據多個分割資訊處理層中的至少一個處理的經處理分割資訊進行的。獲取的分割資訊由語法元素集表示,其中,元素在語法元素集中的位置表示語法元素與哪個特徵圖元素位置相關。例如,語法元素集是碼流部分,碼流可以使用固定代碼、熵代碼(例如,可變長度代碼或算術代碼)進行二值化,這些代碼中的任何一個可以是上下文自我調整的。如果本發明具有編碼端和解碼端都已知的預定義結構,本發明不限於碼流的任何特定編解碼形式。這樣,解析和處理分割資訊和特徵圖資訊可以關聯地進行。例如,對於每個語法元素,特徵圖的處理包括:(i)當語法元素具有第一值時,在由語法元素在碼流中的位置表示的位置上從碼流中解析特徵圖的元素,(ii)否則(或更一般地,當語法元素具有第二值時),在由語法元素在碼流中的位置表示的位置上不從碼流中解析特徵圖的元素。語法元素可以是二值化標誌,這些標誌在編碼端被有序地排列到碼流中,並由處理網路的特定層結構以正確的順序從解碼器中解析出來。
需要說明的是,選項(i)和(ii)也可以提供給未二值化的語法元素。在這種情況下,第一值指解析,第二值指不解析。語法元素可以取除第一值和第二值之外的一些其它值。這些還可以導致解析或不解析,或者可以表示特定類型的解析等。解析出的特徵圖元素的數量可以對應於等於第一值的語法元素的數量。
根據示例性實現方式,多個(N個)特徵圖處理層中的每個1 < j < N的層對特徵圖的處理還包括:從碼流中解析第j個特徵圖處理層的分割資訊元素;獲取由前一特徵圖處理層處理的特徵圖,以及從碼流中解析特徵圖元素並將解析出的特徵圖元素與獲取的特徵圖關聯,其中,特徵圖元素在經處理特徵圖中的位置由解析出的分割資訊元素表示,所述分割資訊由前一分割資訊處理層處理。例如,關聯可以是之前處理的特徵圖元素的替換,或組合,例如,加法、減法或乘法。下面提供了一些示例性實現方式。解析可以取決於之前處理的分割資訊,可以提供非常緊湊和高效的語法。
例如,所述方法可以包括:當語法元素具有第一值時,從碼流中解析特徵圖的元素;當語法元素具有第二值或前一分割信息處理層處理的分割資訊具有第一值時,不從碼流中解析特徵圖的元素。即,如果相關部分在前一個層解析,則不進行解析。例如,從表示分割資訊的碼流中解析的語法元素是二值化標誌。如上所述,經處理分割資訊由二值化標誌的集合表示是有益的。二值化標誌的集合是各自的值為1或0(對應于上文提到的第一值和第二值)的二值化標誌的序列。
在一些實施例中,每個分割資訊處理層j中的分割資訊的上採樣還包括:對於輸入的分割資訊表示的獲取的特徵圖中的每個第p個位置,確定用於重建圖像中與第p個位置相同的區域中包括的特徵圖位置的指示,作為上採樣的分割資訊。這樣提供了重建圖像(或重建特徵圖或一般資料)、子採樣特徵圖中的位置和對應的分割標誌之間的空間關係。
如上所述,以及在編碼器實施例中,用於圖像或視訊處理的資料可以包括圖像資料(例如,圖像樣本)和/或預測殘差數據和/或預測資訊資料。當在本發明中提到“殘差”時,需要說明的是,這些殘差可以是圖元域殘差或變換(光譜)係數(即,變換殘差,與樣本/圖元域不同的域中表示的殘差)。
類似於上面針對編碼端描述的第四修改,根據示例性實現方式,濾波器用於特徵圖的上採樣,並且濾波器的形狀是方形、水準矩形和垂直矩形中的任一個。需要說明的是,濾波器的形狀可以與圖25中所示的分塊形狀類似。
圖20中示出了示例性解碼端的層處理。運動生成網路(單元)2060包括訊號饋送邏輯和使用濾波器(上採樣濾波器)的一個或多個(這裡是兩個)上採樣層,該濾波器可以從預定或預定義的濾波器集中選擇。選擇可以在編碼端執行,例如,通過RDO或其它設置,並在碼流中指示。在解碼端,從碼流中解析濾波器選擇的指示並應用。或者,可以在解碼端選擇濾波器,不用根據碼流推導出的其它編解碼參數來指示所述濾波器。這些參數可以是與內容相關的任何參數,例如,預測類型、方向、運動資訊、殘差、環路濾波特性等。
圖31示出了支持在N個濾波器1至N中選擇一個濾波器的上採樣濾波器單元3100的框圖。濾波器選擇的指示可以直接包括N個濾波器中的一個濾波器的索引。所述索引可以包括濾波器方向、濾波器順序、濾波器形狀和/或係數。在解碼端,訊號饋送邏輯解譯濾波器選擇標誌(例如,用於區分垂直濾波器和水準濾波器的方向標誌或其它方向),並將特徵圖值饋送到具有對應濾波器形狀集的層。在圖31中,從訊號饋送邏輯到選擇性旁路邏輯的直接連接可以不選擇任何濾波器。濾波器選擇指示符的對應值也可以在碼流中指示或推導出。
通常,特徵圖的上採樣使用濾波器,從碼流輸入資訊還包括:從碼流中獲取表示濾波器形狀和/或濾波器方向和/或濾波器係數的資訊。可以存在每層具有要選擇的濾波器集合的實現方式,或者每層是一個濾波器,並且根據濾波器選擇標誌(指示符)確定哪些層要被選擇,哪些層要被旁路繞過的訊號饋送邏輯的實現方式。
在一些實施例中,可以提供柔性濾波器形狀,其中,表示濾波器形狀的所述資訊表示由標誌組成的遮罩,並且遮罩表示濾波器形狀,因為具有第三值的標誌表示非零濾波器係數,並且具有與第三值不同的第四值的標誌表示濾波器係數為0。即,正如已經為編碼端描述的那樣,濾波器形狀可以通過表示非零係數的位置來定義。非零係數可以根據預定義的規則推導出,也可以指示。
上述解碼器實施例可以實現為存儲在非暫態性介質中的電腦程式產品,當在一個或多個處理器上執行時,該電腦程式產品執行上述任何方法的步驟。類似地,上述解碼器實施例可以實現為用於對圖像或視訊進行解碼的設備,包括處理電路,該處理電路用於執行上述任何方法的步驟。具體地,可以提供一種用於從碼流中解碼用於圖像或視訊處理的資料的設備,所述設備包括:獲取單元,用於從碼流中獲取兩個或多個特徵圖元素集,其中,每個特徵圖元素集與特徵圖相關;輸入單元,用於將兩個或多個特徵圖元素集中的每個特徵圖元素集分別輸入到多個級聯層中的兩個或多個特徵圖處理層;經解碼資料獲取單元,用於獲取用於圖像或視訊處理的所述經解碼資料,作為多個級聯層的處理結果。這些單元可以以軟體或硬體或兩者的組合實現,如下文更詳細地討論。
使用分割資訊解碼
在接收端,本實施例的解碼器執行分割資訊的解析和解譯。因此,如圖34所示,提供了一種用於從碼流中解碼用於圖像或視訊處理的資料的方法。相應地,提供了一種從碼流中解碼用於圖像或視訊處理的資料的裝置。所述裝置可以包括用於執行所述方法步驟的處理電路。
所述方法包括從碼流中獲取3410兩個或多個分割資訊元素集。獲取可以通過解析碼流進行。在一些示例性實現方式中,碼流解析還可以包括熵解碼。本發明不限於從碼流中獲取資料的任何特定方式。所述方法還包括將兩個或多個分割資訊元素集中的每一個分別輸入3420到多個級聯層中的兩個或多個分割資訊處理層中。需要說明的是,分割資訊處理層可以是與特徵圖處理層相同的層或不同的層。即,一個層可以具有一個或多個功能。
此外,在兩個或多個分割資訊處理層中的每一個中,所述方法包括處理相應的分割資訊集。獲取3430用於圖像或視訊處理的所述經解碼資料是根據多個級聯層處理的分割資訊進行的。
圖26示出了用於三層解碼的示例性分割資訊。分割資訊可以被視為選擇(參見編碼端描述)將被解析或以其它方式獲取特徵圖元素的層。未選擇特徵圖元素2610。因此,編碼器將標誌2611設置為0。即,碼流中不包括具有最低解析度的特徵圖元素2610。然而,碼流中包括表示特徵圖元素未被選擇的標誌2611。例如,如果特徵圖元素是運動向量,則最大塊的運動向量2610沒有被選擇,並且不包括在碼流中。
在圖26所示的示例中,在特徵圖2620中,在用於確定特徵圖2610的特徵圖元素的四個特徵圖元素中,選擇三個特徵圖元素用於指示(由標誌2621、2622和2624表示),而一個特徵圖元素2623未被選擇。在使用運動向量的示例中,則從特徵圖2620中選擇三個運動向量,並將它們各自的標誌設置為1,而不選擇一個特徵圖元素,並將其各自的標誌2623設置為0。
然後,碼流可以包括所有四個標誌2621至2624和三個選定運動向量。通常,碼流可以包括四個標誌2621至2624和三個選定的特徵圖元素。在特徵圖2630中,可以選擇確定特徵圖2620的未選擇特徵圖元素的一個或多個元素。
在此示例中,當選擇特徵圖元素時,不會選擇較高解析度特徵圖的任何元素。在本示例中,沒有選擇用於確定由標誌2621、2622和2624表示的特徵圖元素的特徵圖2630的特徵圖元素。在一個實施例中,這些特徵圖元素的標誌都不包括在碼流中。相反,碼流中僅包括特徵圖2630的特徵圖元素的標誌,這些標誌確定具有標誌2623的特徵圖元素。
在特徵圖元素是運動向量的示例中,特徵圖元素2621、2622和2624分別可以由特徵圖2630中的每個四個運動向量的組確定。在確定具有標誌2621、2622和2624的運動向量的每個組中,運動向量可以比未選擇的(由標誌2623指示)特徵圖2630中確定特徵圖2620中的運動向量(特徵圖元素)的四個運動向量彼此具有更多的相似性。
圖26是上文通過碼流的特徵描述的。需要說明的是,解碼器相應地解碼(解析)這些碼流:所述解碼器根據如上所述的標誌的值確定包括(指示)哪些資訊,並相應地解析/解譯所述解析的資訊。
在示例性實現方式中,分割資訊被組織如圖27所示。對於被視為圖像序列的圖像或視訊等2D資訊,一些層的特徵圖可以在二維空間中表示。分割資訊包括用於2D空間位置的指示符(二值化標誌),表示是否在碼流中呈現與該位置對應的特徵圖值。
在圖27中,存在用於對分割資訊進行解碼的起始層(層0),例如,最低解析度層,即潛在展示層。對於此起始層,每個2D位置包括一個二值化標誌。如果這種標誌等於1,則選定資訊包括此特定層上此位置的特徵圖值。另一方面,如果這種標誌等於0,則在此特定層上沒有此位置的資訊。這組標誌(或通常為標誌張量,這裡是標誌矩陣)被稱為TakeFromCurrent。TakeFromCurrent張量被上採樣到下一層解析度,例如,使用最近鄰居方法。讓我們將此張量表示為TakeFromPrev。此張量中的標誌表示對應的樣本位置是否在前一個層(此處為第0層)填充。
作為下一步,訊號饋送邏輯讀取當前解析度層位置的標誌(LayerFlag)。在該示例性實現方式中,僅指示在之前層中未填充的位置(未設置為1,未填充特徵圖元素值)。使用邏輯運算,可以表示為TakeFromPrev == 0或!TakeFromPrev == 1,其中“!”表示邏輯NOT運算(取反)。
此層所需的標誌量可以計算為TakeFromPrev張量中的0(邏輯假)元素量,或反轉(!TakeFromPrev)張量中值為1(邏輯真)的量。對於TakeFromPrev張量中的非零元素,碼流中不需要任何標誌。這在圖中通過在不需要讀取的位置上顯示“-”來表示。從實現的角度來看,將倒張量上的元素之和計算為sum(!TakeFromPrev)可能更容易。訊號饋送邏輯可以使用此演算法來標識需要從碼流中解析多少標誌。讀取標誌放置在!TakeFromPrev值等於1的位置,以獲取LayerFlag張量。然後,通過將標誌保持在從當前解析度層的碼流讀取的位置,並將在之前解析度層(LayerFlag標記為“-”的位置)讀取的位置的值歸零,獲取當前解析度層(此處為第1層)的TakeFromCurrent張量作為TakeFromPrev和LayerFlag張量的組合。可以使用邏輯AND運算子表示和實現,如下所示:TakeFromCurrent = !TakeFromPrev AND LayerFlag。然後,為了考慮在之前解析度層讀取的位置,使用TakeFromCurrent = TakeFromCurrent OR TakeFromPrev等邏輯OR運算獲取TakeFromCurrent張量。應該理解的是,布耳運算可以使用常規數學運算來實現,例如,AND的乘法和OR的求和。這將提供保留和轉移梯度的好處,可以在端到端訓練中使用上述方法。
然後,將獲取的TakeFromCurrent張量上採樣到下一個解析度層(此處為第2層),並重複上述操作。
為了通用性和簡化實現方式,不特別考慮第一解析度層的情況下統一所有解析度層的處理是有益的,其中,所有標誌都是針對第一解析度層從碼流中解析的。這可以通過在第一個(較低解析度)層(第0層)中處理之前將TakeFromPrev初始化為0,並為每個解析度層重複上述步驟來實現。
為了進一步減少指示開銷,在一些其它實現方式中,最後一個解析度層(這裡是第三層,即第2層)的LayerFlags不需要傳輸(包括在編碼器處,在解碼端解析)到碼流中。即,對於最後一個解析度層,特徵圖值作為最後一個解析度層的所有位置的選定資訊(參見圖11中的1120)在碼流中傳輸,這些位置不是在(所有)之前解析度層(在任何之前解析度層)獲取的。即,對於最後一個解析度層,TakeFromCurrent = !TakeFromPrev,即TakeFromCurrent對應於取反的TakeFromPrev。同樣,為了保持最後一個解析度層處理的通用性,LayerFlag可以初始化為1,並且可以使用相同的公式:TakeFromCurrent = !TakeFromPrev AND LayerFlag。
在一些其它可能的實現方式中,最後一個解析度層具有與原始圖像相同的解析度。如果最後一個解析度層沒有其它處理步驟,則傳輸原始張量的一些值,不在自動編碼器進行壓縮。
下面,參考圖28描述訊號饋送邏輯2800的示例。在圖28中,解碼器的訊號饋送邏輯2800使用分割資訊(LayerFlag)來獲得和利用在碼流中傳輸的選定資訊(LayerMv)。具體地,在每一層,解析碼流以獲取相應語法解譯單元2823、2822和2821中的分割資訊(LayerFlag),以及可能的選擇資訊(LayerMv)(按此順序)。如上所述,為了在第一層(語法解譯2823)中啟用與其它層相同的操作,TakeFromPrev張量在2820中初始化為0。TakeFromPrev張量按從早期層的語法解譯(例如,從2823)到之後層的語法解譯(例如,2822)的處理順序傳播。這裡的傳播包括2的上採樣,如上面參考圖27所解釋的。
在解譯每個解析度層的分割資訊(LayerFlag)時,獲取(生成)張量TakeFromCurrent。此張量TakeFromCurrent包括表示當前解析度層的每個特定位置的碼流中是否存在特徵圖資訊(LayerMv)的標誌。解碼器從碼流中讀取特徵圖LayerMv的值,並將這些值放置在TakeFromCurrent張量的標誌等於1的位置。當前解析度層的碼流中包括的特徵圖值的總量可以根據TakeFromCurrent中的非零元素的數量或作為sum(TakeFromCurrent)(TakeFromCurrent張量的所有元素的總和)計算。在下一步,每個層(例如,在2812)中的張量通過將TakeFromCurrent張量的值等於1的位置處的特徵圖的值替換為作為選定資訊的碼流中傳輸的特徵圖值(LayerMv)的方式,組合邏輯2813、2812和2811組合之前解析度層(例如,由2813生成和上採樣2801生成,以匹配之後的層處理2812)的輸出。如上所述,為了在第一層(張量組合2813)中啟用與其它層相同的操作,組合張量在2810中初始化為0。在處理來自所有層的LayerFlags並生成最後一個層的輸出張量(在2811中)之後,在2801中對組合張量進行4的上採樣,以獲取密集光流的原始大小,即W×H。
圖28的示例性實現方式提供了一個完全可並行的方案,該方案可以在GPU/NPU上運行,並可以利用並行性。傳輸梯度的完全可訓練方案可以在端到端可訓練的視訊編解碼技術方案中使用它。
圖29示出了訊號饋送邏輯2900的另一種可能的和示例性的實現方式。此實現方式生成LayerIdx張量(圖29中稱為LayerIdxUp),包括不同解析度層的索引,表示應使用哪一層來獲取碼流中傳輸的運動資訊(包括在編碼器中,在解碼端中解析)。在每個語法解譯塊(2923、2922、2923),通過添加TakeFromCurrent張量乘以從最高解析度到最低解析度編號的上採樣層索引來更新LayerIdx張量。然後,LayerIdx張量被上採樣並按處理順序傳輸(傳遞)到下一層,例如,從2923到2922,從2922到2921。為了使所有層中的處理相似,張量LayerIdx在2920中初始化為0,並傳遞給第一層的語法解譯2923。
在最後一層(這裡是第三層)之後,LayerIdx張量被上採樣到原始解析度(4的上採樣2995)。因此,LayerIdx的每個位置都包括要從中獲取運動資訊的層的索引。LayerIdx的位置以相同的解析度對應於特徵圖資料的原始解析度(這裡是密集光流),在本示例中是2D(矩陣)。因此,對於重建光流中的每個位置,LayerIdx表示從中獲取運動資訊的位置(哪一層的MayerMV)。
運動資訊(LayerMv,在圖29中也稱為LayerMvUp)用以下方式生成。在每個空間解析度層,張量組合塊(2913、2912、2911)根據上文所述的方法,根據從碼流中獲取的分割資訊(LayerFlag)將從碼流中獲取的LayerMv(經過相應的語法解譯單元2923、2922、2921)與中間張量以及中間TakeFromCurrent布林張量組合。中間張量可以初始化為0(參見初始化單元2910、2919、2918)或初始化為任何其它值。初始化值並不重要,因為最終在完成所有步驟之後,根據該方法,這些值不會被選擇用於密集光流重建2990。包括運動資訊的組合張量(從2913、2912、2911中的每一個輸出)被上採樣並與之前空間解析度層的組合張量級聯(2902、2901)。級聯沿著對應於從不同解析度的層獲取的運動資訊的附加維度執行(即,級聯2902之前的2D張量成為級聯之後的3D張量;級聯2901之前的3D張量在級聯後保持3D張量,但張量的大小增大)。最後,在完成LayerIdxUp和LayerMvUp的所有上採樣步驟後,通過使用LayerIdxUp的值作為LayerMvUp中軸上的索引,從LayerMvUp中選擇運動資訊,獲取重建的密集光流,其中,軸是在LayerMvUp級聯步驟期間增加的維度。即,LayerMvUp中添加的維度是層數上的維度,LayerIdxUp為每個位置選擇適當的層。
上述特定的示例性實現方式並不限制本發明。一般來說,分割可以以各種可想像的方式在碼流中執行和指示。通常,獲取分割資訊元素集是根據由多個級聯層中的至少一個分割資訊處理層處理的分割資訊進行的。如圖28所示,這樣的層可以包括語法解譯單元(2823、2822、2821),所述語法解譯單元解析/解譯所述解析後的分割資訊LayerFlag的含義(語義)。
更具體地,輸入分割資訊元素集是根據由多個級聯層中的至少一個級聯層輸出的經處理分割資訊進行的。例如,在圖28中,通過在語法解譯單元(2823、2822、2821)之間傳遞TakeFromPrev張量來說明這一點。如在編碼端的描述中已經解釋的,在一些示例性實現方式中,分別在兩個或多個分割資訊處理層中處理的分割資訊的解析度不同。
此外,在兩個或多個分割資訊處理層中對分割資訊的處理包括上採樣,如已經參考圖9、13和其它圖舉例說明。例如,分割資訊的所述上採樣包括最近鄰居上採樣。需要說明的是,在本實施例中以及在上述實施例中,本發明不因應用最近鄰居上採樣而受到限制。上採樣可以包括插值,而不是簡單複製相鄰樣本(元素)值。插值可以是任何已知的插值,例如,線性或多項式插值,例如三次上採樣等。關於複製,需要說明的是,最近鄰居執行的複製是從預定義(可用)最近鄰居(例如,上或左)複製元素值。如果與要填充的位置有相同距離的鄰居,則可能需要複製該鄰居的預定義。
如上文針對第一修改所述,在一些示例性實現方式中,所述上採樣包括轉置卷積。除了或可替代地將卷積上採樣應用於特徵圖資訊之外,卷積上採樣也可以應用於分割資訊。需要說明的是,針對分割資訊執行的上採樣類型不一定是應用於特徵圖元素的相同上採樣類型。
通常,對於多個級聯層中的多個(N個)分割資訊處理層中的每個分割資訊處理層j,輸入包括: -如果j = 1,則從碼流輸入初始分割資訊(和/或基於初始化,例如,在2820中初始化為0),否則輸入由第(j – 1)個分割資訊處理層處理的分割資訊; -輸出經處理分割資訊。
這是與輸入層相關的分割資訊,不一定(仍然可能)來自碼流的整個分割資訊。第j個層中的上採樣分割資訊是第j個層中上採樣的分割資訊,即由第j個層輸出。通常,分割層的處理包括上採樣(TakeFromPrev)和包括來自碼流的新元素(LayerFlag)。
例如,多個(N個)分割資訊處理層中的每個j < N的層對輸入的分割資訊的處理還包括從碼流中解析分割資訊元素(LayerFlag),以及將解析後的分割資訊元素與前一個層輸出的分割資訊(TakeFromPrev)相關聯(例如,在圖28中的語法解譯單元282x中)。解析後的分割資訊元素(LayerFlag)在關聯的分割資訊中的位置是根據前一個層輸出的分割資訊確定的。正如在圖28和圖29中可見,可以有各種不同的方式來關聯和傳播位置資訊。本發明不限於任何特定的實現方式。
例如,根據前一個層輸出的分割資訊確定從碼流中解析的分割資訊元素的數量。具體地,如果某些區域已經被前一個層的分割資訊覆蓋,則不必在之後層上再次覆蓋。值得說明的是,這種設計提供了一種高效的解析方法。與結果重建分割資訊的位置相對應的結果重建特徵圖資料的每個位置僅與屬於單層(在N個處理層中)的分割資訊相關聯。因此,沒有資訊重複。然而,本發明不限於這種方法。可以想像,分割資訊是重複的,即使這樣可能導致一些冗餘資訊。
如圖27中已經所示,在一些實施例中,解析後的分割資訊元素由一組二值化標誌表示。碼流(語法)中標誌的排序可以傳達標誌與其所屬層之間的關聯關係。順序(序列)可以由編碼端的預定義處理順序給出,相應地,也可以由解碼端的預定義處理順序給出。例如,圖16和圖28中舉例說明了。
在一些示例性實施例中,例如上面參考第七修改提到的實施例中,獲取用於圖像或視訊處理的經解碼資料包括根據分割資訊確定以下參數中的至少一個。分割資訊可以與運動資訊類似的方式確定編解碼參數等附加資訊的解析,所述編解碼參數可以包括:幀內或幀間預測模式;圖像參考索引;單參考或多參考預測(包括雙向預測);存在或不存在預測殘差資訊;量化步長;運動資訊預測類型;運動向量長度;運動向量解析度;運動向量預測索引;運動向量差大小;運動向量差解析度;運動插值濾波器;環內濾波器參數;和/或後濾波器參數等。即,當被分割資訊處理層處理時,分割資訊可以表示從編解碼參數的哪個處理層可以獲取編解碼參數。例如,在圖22或圖23的上述編碼器方法中,重建(編解碼)參數可以從碼流中接收,而不是(或除了)從運動資訊(LayerMv)中接收。這種重建(編解碼)參數blk_rec_params可以在解碼端以與圖28和圖29中所示的運動資訊相同的方式被解析。
通常,分割資訊用於特徵圖元素(運動資訊或上述任何重建參數或樣本相關資料)解析和輸入。所述方法還可以包括從碼流中獲取特徵圖元素集,並根據由分割資訊處理層處理的分割資訊,將特徵圖元素集分別輸入到多個層中的特徵圖處理層。此外,所述方法還包括根據多個級聯層處理的特徵圖,獲取用於圖像或視訊處理的經解碼資料。具體地,在一些實施例中,多個級聯層中的至少一個是分割資訊處理層以及特徵圖處理層。如上所述,網路可以設計有分離的分割資訊處理層和特徵圖處理層,或者設計有兩種功能的組合層。在一些實現方式中,多個層中的每一層要麼是分割資訊處理層,要麼是特徵圖處理層。
上述方法可以體現為存儲在非暫態性介質中的電腦程式產品,當在一個或多個處理器上執行時,該電腦程式產品使處理器執行這些方法中的任何一個的步驟。類似地,提供了一種用於對圖像或視訊進行解碼的設備,包括處理電路,用於執行上文所論述的任一方法的方法步驟。本發明提供的裝置的功能結構可以對應於上述實施例和步驟提供的功能。例如,提供了一種用於從碼流中解碼用於圖像或視訊處理的資料的設備,其中,所述設備包括:獲取單元,用於從碼流中獲取兩個或多個分割資訊元素集;輸入單元,用於將兩個或多個分割資訊元素集中的每個分割資訊元素集分別輸入到多個級聯層中的兩個或多個分割資訊處理層;處理單元,用於在兩個或多個分割資訊處理層的每個分割資訊處理層中,處理各自的分割資訊集;經解碼資料獲取單元,用於根據在多個級聯層中處理的分割資訊,獲取用於圖像或視訊處理的所述經解碼資料。這些單元和其它單元可以執行上述方法的所有功能。
一些實施例的簡要概述
關於使用特徵資訊解碼的實施例
根據一個實施例,提供了一種用於從碼流中解碼用於圖像或視訊處理的方法,其中,所述方法包括:從碼流中獲取兩個或多個特徵圖元素集,其中,每個特徵圖元素集與特徵圖相關;將兩個或多個特徵圖元素集中的每個特徵圖元素集分別輸入到多個級聯層中的兩個或多個特徵圖處理層;獲取用於圖像或視訊處理的所述經解碼資料,作為多個級聯層的處理結果。
這種方法可以提高效率,因為所述方法使來自不同層的資料能夠用於解碼,從而從碼流中解析特徵或其它類型的層相關資訊。
例如,在兩個或多個特徵圖處理層中的每一個中處理特徵圖,其中,在兩個或多個特徵圖處理層中分別處理的特徵圖的解析度不同。
在一些實施例中,在兩個或多個特徵圖處理層中對特徵圖進行的處理包括上採樣。
應用上採樣一方面可以降低處理的複雜度(因為第一層具有較低解析度),另一方面也可以減少在碼流中提供並在解碼端解析的資料。此外,處理不同解析度的層可以以這種方式關注不同尺度的特徵。因此,處理圖片(靜態或視訊)的網路可以高效地運行。
在示例性實現方式中,所述方法還包括以下步驟:從碼流中獲取與兩個或多個層相關的分割資訊,其中,從碼流中獲取特徵圖元素是根據分割資訊進行的,將特徵圖元素集分別輸入到兩個或多個特徵圖處理層中是根據分割資訊進行的。
使用分割資訊可以對來自不同層的特徵圖進行高效解碼,使得原始(待重建)的每個區域可以僅包括在一個層的資訊中。雖然這並不是限制本發明,在某些情況下,本發明還可以為特徵圖(資料)中的特定區域的層間資訊可以有一定的重複。例如,多個級聯層還包括多個分割資訊處理層,所述方法還包括對多個分割資訊處理層中的分割資訊的處理。這種方法提供了控制來自不同層的特徵元素的解析的可能性。
在一些實施例中,在多個分割資訊處理層中的至少一個中處理分割資訊包括上採樣。分割資訊的分層結構可以提供要插入碼流中的少量邊資訊,從而提高效率和/或縮短處理時間。
例如,分割資訊的這種上採樣和/或特徵圖的所述上採樣包括最近鄰居上採樣。最近鄰居上採樣具有較低的計算複雜度,並且可以很容易地實現。儘管如此,最近鄰居上採樣還是很高效的,特別是對於標誌等邏輯指示。
在一些實施例和示例中,所述分割資訊的上採樣和/或所述特徵圖的上採樣包括轉置卷積。卷積的使用有助於減少方塊偽影,並啟用可訓練的解決方案,其中,上採樣濾波器是可選擇的。
在示例性實現方式中,從碼流中獲取特徵圖元素是根據由多個分割資訊處理層中的至少一個處理的經處理分割資訊進行的。
在示例性實現方式中,將兩個或多個特徵圖元素集中的每個集合分別輸入到兩個或多個特徵圖處理層中是根據多個分割資訊處理層中的至少一個處理的經處理分割資訊進行的。
根據一個實施例,獲取的分割資訊由語法元素集表示,其中,元素在語法元素集中的位置表示語法元素與哪個特徵圖元素位置相關。對於每個語法元素,特徵圖的處理包括:當語法元素具有第一值時,在由語法元素在碼流中的位置表示的位置上從碼流中解析特徵圖的元素,否則,在由語法元素在碼流中的位置表示的位置上不從碼流中解析特徵圖的元素。
分割資訊和特徵圖資訊之間的這種關係能夠高效地編解碼頻率資訊,並通過考慮不同的解析度在分層結構中進行解析。
例如,多個(N個)特徵圖處理層中的每個1 < j < N的層對特徵圖的處理還包括:從碼流中解析第j個特徵圖處理層的分割資訊元素;獲取由前一特徵圖處理層處理的特徵圖;從碼流中解析特徵圖元素並將解析出的特徵圖元素與獲取的特徵圖關聯,其中,特徵圖元素在經處理特徵圖中的位置由解析出的分割資訊元素表示,所述分割資訊由前一分割資訊處理層處理。
具體地,所述方法可以包括:當語法元素具有第一值時,從碼流中解析特徵圖的元素;當語法元素具有第二值或前一分割信息處理層處理的分割資訊具有第一值時,不從碼流中解析特徵圖的元素。
例如,從表示分割資訊的碼流中解析的語法元素是二值化標誌。具體地,經處理分割資訊由二值化標誌的集合表示。
提供二值化標誌可實現高效編解碼。在解碼端,邏輯標誌的處理可以以低複雜度執行。
根據示例性實現方式,每個分割資訊處理層j中的分割資訊的上採樣還包括:對於輸入的分割資訊表示的獲取的特徵圖中的每個第p個位置,確定用於重建圖像中與第p個位置相同的區域中包括的特徵圖位置的指示,作為上採樣的分割資訊。
例如,用於圖像或視訊處理的資料包括運動向量場。由於需要具有與圖像解析度相似的解析度的密集光流或運動向量場來建模運動,因此本發明的分層結構適用于高效地重建這種運動資訊。通過層處理和指示,可以在速率和失真之間實現良好的權衡。
例如,用於圖像或視訊處理的資料包括圖像資料和/或預測殘差數據和/或預測資訊資料。本發明可用於各種不同的參數。然而,圖像資料和/或預測殘差數據和/或預測資訊資料在空域中仍然可以具有一些冗余,並且本文描述的分層方法可以提供使用不同解析度從碼流中進行高效解碼。
在一些實施例和示例中,濾波器用於特徵圖的上採樣,並且濾波器的形狀是方形、水準矩形和垂直矩形中的任一個。
應用不同的上採樣濾波器有助於適應內容的不同特徵。例如,特徵圖的上採樣使用濾波器,從碼流輸入資訊還包括:從碼流中獲取表示濾波器形狀和/或濾波器係數的資訊。
相應地,解碼器可以根據在碼流中發送的來自編碼器的資訊提供更好的重建品質。
例如,表示濾波器形狀的所述資訊表示由標誌組成的遮罩,並且遮罩表示濾波器形狀,因為具有第三值的標誌表示非零濾波器係數,並且具有與第三值不同的第四值的標誌表示濾波器係數為0。可以更靈活地設計任何形狀的濾波器。
例如,多個級聯層包括卷積層,而不在具有不同解析度的層之間進行上採樣。
在所述級聯層網路中提供這種附加層能夠引入額外的處理,例如各種類型的濾波,以提高編解碼的品質或效率。
根據一個實施例,提供了一種存儲在非暫態性介質中的電腦程式產品,當在一個或多個處理器上執行時,執行根據上述任一方法所述的方法。
根據一個實施例,提供了一種用於對圖像或視訊進行解碼的設備,包括處理電路,用於執行根據上述實施例和示例中的任何一個所述的方法。
根據一個方面,可以提供一種用於從碼流中解碼用於圖像或視訊處理的資料的設備,所述設備包括:獲取單元,用於從碼流中獲取兩個或多個特徵圖元素集,其中,每個特徵圖元素集與特徵圖相關;輸入單元,用於將兩個或多個特徵圖元素集中的每個特徵圖元素集分別輸入到多個級聯層中的兩個或多個特徵圖處理層;經解碼資料獲取單元,用於獲取用於圖像或視訊處理的所述經解碼資料,作為多個級聯層的處理結果。
上述任一裝置都可以實施在集成晶片上。本發明可以在硬體(HW)和/或軟體(SW)中實現。此外,基於硬體的實現可以與基於軟體的實現相結合。
需要說明的是,本發明不限於特定框架。此外,本發明不限於圖像或視訊壓縮,並且也可以應用於物件檢測、圖像生成和識別系統。
關於使用分割資訊解碼的實施例
根據一個方面,提供了一種用於從碼流中解碼用於圖像或視訊處理的資料的方法,其中,所述方法包括:從碼流中獲取兩個或多個分割資訊元素集;將兩個或多個分割資訊元素集中的每個分割資訊元素集分別輸入到多個級聯層中的兩個或多個分割資訊處理層;在兩個或多個分割資訊處理層的每個分割資訊處理層中,處理各自的分割資訊集,其中,獲取用於圖像或視訊處理的所述經解碼資料是根據在多個級聯層中處理的分割資訊進行的。
這種方法可以提高效率,因為它能夠解碼可在分層結構中基於層配置的各種分割中的資料。提供分割可以考慮經解碼資料的特徵。
例如,獲取分割資訊元素集是根據由多個級聯層中的至少一個分割資訊處理層處理的分割資訊進行的。
在一些示例性實施例中,輸入分割資訊元素集是根據由多個級聯層中的至少一個級聯層輸出的經處理分割資訊進行的。
級聯分割資訊處理能夠高效地解析分割資訊。
例如,在兩個或多個分割資訊處理層中分別處理的分割資訊的解析度不同。
在一些實施例和示例中,在兩個或多個分割資訊處理層中對特徵圖進行的處理包括上採樣。
分割資訊的分層結構可以提供要插入碼流中的少量邊資訊,從而提高效率和/或縮短處理時間。
具體地,分割資訊的所述上採樣包括最近鄰居上採樣。最近鄰居上採樣具有較低的計算複雜度,並且可以很容易地實現。儘管如此,最近鄰居上採樣還是很高效的,特別是對於標誌等邏輯指示。例如,分割資訊的所述上採樣包括轉置卷積。執行上採樣可以提高上採樣品質。此外,這種卷積上採樣層可以提供為可訓練的,或者在解碼端提供為可配置的,使得卷積內核可以由從碼流中解析或以其它方式推導出的指示控制。
在示例性實現方式中,對於多個級聯層中的多個(N個)分割資訊處理層中的每個分割資訊處理層j,輸入包括:如果j = 1,則從碼流輸入初始分割資訊,否則,輸入第(j – 1)個分割資訊處理層處理的分割資訊;輸出經處理分割資訊。
例如,多個(N個)分割資訊處理層中的每個j < N的層對輸入的分割資訊的處理還包括:從碼流中解析分割資訊元素,以及將解析後的分割資訊元素與前一個層輸出的分割資訊相關聯,其中,解析後的分割資訊元素在關聯分割資訊中的位置是根據前一個層輸出的分割資訊確定的。具體地,從碼流中解析的分割資訊元素的數量是根據前一個層輸出的分割資訊確定的。例如,解析後的分割資訊元素由二值化標誌集表示。
這種分層結構提供了可以並行的處理,並且可以容易地在GPU/NPU上運行,並可以利用並行性。傳輸梯度的完全可訓練方案可以在端到端可訓練的視訊編解碼技術方案中使用它。
在一些示例性實施例和示例中,獲取用於圖像或視訊處理的經解碼資料包括根據分割資訊確定以下中的至少一個:幀內或幀間預測模式;圖像參考索引;單參考或多參考預測(包括雙向預測);存在或不存在預測殘差資訊;量化步長;運動資訊預測類型;運動向量長度;運動向量解析度;運動向量預測索引;運動向量差大小;運動向量差解析度;運動插值濾波器;環內濾波器參數;後濾波器參數。本發明的解碼通常適用於與圖像或視訊編解碼相關的任何類型的資料。
上述實施例或示例提供的方法還可以包括:從碼流中獲取特徵圖元素集,並根據由分割資訊處理層處理的分割資訊,將特徵圖元素集分別輸入到多個層中的特徵圖處理層;根據多個級聯層處理的特徵圖,獲取用於圖像或視訊處理的經解碼資料。
具體地,多個級聯層中的至少一個是分割資訊處理層以及特徵圖處理層。在其它實施例中,多個層中的每一層要麼是分割資訊處理層,要麼是特徵圖處理層。
分離的層功能提供了簡潔的設計和功能分離。然而,如果層實現了這兩個功能,本發明也可以工作。
根據一個方面,提供了一種存儲在非暫態性介質中的電腦程式產品,當在一個或多個處理器上執行時,執行根據上述示例和實施例所述的方法。
根據一個方面,提供了一種用於對圖像或視訊進行解碼的設備,包括處理電路,用於執行根據上述示例和實施例中的任何一個所述的方法。
根據一個方面,提供了一種用於從碼流中解碼用於圖像或視訊處理的資料的設備,其中,所述設備包括:獲取單元,用於從碼流中獲取兩個或多個分割資訊元素集;輸入單元,用於將兩個或多個分割資訊元素集中的每個分割資訊元素集分別輸入到多個級聯層中的兩個或多個分割資訊處理層;處理單元,用於在兩個或多個分割資訊處理層的每個分割資訊處理層中,處理各自的分割資訊集;經解碼資料獲取單元,用於根據在多個級聯層中處理的分割資訊,獲取用於圖像或視訊處理的所述經解碼資料。
上述任一裝置都可以實施在集成晶片上。本發明可以在硬體(HW)和/或軟體(SW)中實現。此外,基於硬體的實現可以與基於軟體的實現相結合。
需要說明的是,本發明不限於特定框架。此外,本發明不限於圖像或視訊壓縮,並且也可以應用於物件檢測、圖像生成和識別系統。
硬體和軟體中的一些示例性實現方式
圖35示出了可以部署上述編碼器-解碼器處理鏈的對應系統。圖35為示例性編解碼系統的示意性框圖,例如可以利用本申請技術的視訊、圖像、音訊和/或其它編解碼系統(或簡稱為編解碼系統)。視訊編解碼系統10的視訊編碼器20(或簡稱為編碼器20)和視訊解碼器30(或簡稱為解碼器30)表示可用於根據本申請中描述的各種示例執行各技術的設備示例。例如,視訊編碼和解碼可以使用神經網路或通常使用上述實施例和示例中描述的處理網路。
如圖35所示,編解碼系統10包括源設備12,例如,所述源設備12用於將經編碼圖像資料21提供到目的地設備14以對經編碼圖像資料13進行解碼。
源設備12包括編碼器20,另外即可選地,可包括圖像源16、圖像前置處理器18等前置處理器(或預處理單元)18、通信介面或通信單元22。
圖像源16可以包括或可以是任何類型的圖像擷取裝置,例如用於捕獲真實世界圖像的攝像機,和/或任何類型的圖像生成設備,例如用於生成電腦動畫圖像的電腦圖形處理器,或用於獲取和/或提供真實世界圖像、電腦生成圖像(例如,螢幕內容、虛擬實境(virtual reality,VR)圖像)和/或其任何組合(例如,增強現實(augmented reality,AR)圖像)的任何類型的其它設備。所述圖像源可以為存儲任一上述圖像的任何類型的記憶體(memory/storage)。
區別於前置處理器18和預處理單元18執行的處理,圖像或圖像資料17也可以稱為原始圖像或原始圖像資料17。
前置處理器18用於接收(原始)圖像資料17,對圖像資料17進行預處理,以獲得經預處理圖像19或經預處理圖像資料19。前置處理器18執行的預處理可包括修剪(trimming)、顏色格式轉換(例如從RGB轉換為YCbCr)、顏色校正或去噪等。應理解,預處理單元18可以是可選元件。需要說明的是,預處理也可以採用神經網路。
視訊編碼器20用於接收經預處理圖像資料19並提供經編碼圖像資料21。
源設備12中的通信介面22可用於:接收經編碼圖像資料21並通過通信通道13向目的地設備14等另一設備或任何其它設備發送經編碼圖像資料21(或其它任何處理後的版本),以便存儲或直接重建。
目的地設備14包括解碼器30(例如視訊解碼器30),另外即可選地,可包括通信介面或通信單元28、後處理器32(或後處理單元32)和顯示裝置34。
目的地設備14中的通信介面28用於直接從源設備12或從存放裝置等任何其它源設備接收經編碼圖像資料21(或其它任何處理後的版本),例如,存放裝置為經編碼圖像資料存放裝置,並將經編碼圖像資料21提供給解碼器30。
通信介面22和通信介面28可以用於通過源設備12與目的地設備14之間的直接通信鏈路(例如,直接有線或無線連接),或通過任何類型的網路(例如,有線或無線網路或其任何組合,或任何類型的專用和公共網路),或其任何組合發送或接收經編碼圖像資料21或經編碼資料13。
例如,通信介面22可用於將經編碼圖像資料21封裝為報文等合適的格式,和/或使用任何類型的傳輸編碼或處理來處理經編碼圖像資料,以便在通信鏈路或通信網路上進行傳輸。
例如,與通信介面22對應的通信介面28可用於接收發送的資料,並採用任何類型的對應傳輸解碼或處理和/或解封裝對發送的資料進行處理,以獲得經編碼圖像資料21。
通信介面22和通信介面28均可配置為圖35中從源設備12指向目的地設備14的通信通道13的箭頭所表示的單向通信介面,或者配置為雙向通信介面,並且可以用於發送和接收消息等,以建立連接、確認並交換與通信鏈路和/或資料傳輸(例如經編碼的圖像資料傳輸)相關的任何其它資訊等。解碼器30用於接收經編碼圖像資料21並提供經解碼圖像資料31或經解碼圖像31(例如,使用上文所述實施例或示例中描述的神經網路)。
目的地設備14的後處理器32用於對經解碼圖像資料31(也稱為經重建圖像資料)(例如,經解碼圖像31)進行後處理,以獲取後處理圖像資料33(例如,後處理圖像33)。例如,後處理單元32執行的後處理可以包括顏色格式轉換(例如從YCbCr轉換為RGB)、調色、修剪或重採樣,或者用於產生供顯示裝置34等顯示的經解碼圖像資料31等任何其它處理。
目的地設備14中的顯示裝置34用於接收後處理圖像資料33,以向使用者或觀看者等顯示圖像。顯示裝置34可以為或包括用於表示經重建圖像的任何類型的顯示器,例如,集成或外部顯示器或監視器。例如,顯示器可以包括液晶顯示器(liquid crystal display,LCD)、有機發光二極體(organic light emitting diode,OLED)顯示器、等離子顯示器、投影儀、微型LED顯示器、矽基液晶顯示器(liquid crystal on silicon,LCoS)、數位光處理器(digital light processor,DLP)或任何類型的其它顯示器。
儘管圖35將源設備12和目的地設備14描繪為單獨的設備,但是設備的實施例也可以包括源設備12和目的地設備14或同時包括源設備12的對應功能和目的地設備14的對應功能。在這些實施例中,源設備12或對應功能以及目的地設備14或對應功能可以使用相同的硬體和/或軟體或通過單獨的硬體和/或軟體或其任意組合來實現。
根據所述描述,技術人員將清楚地看到,如圖35所示的源設備12和/或目的地設備14中的不同單元或功能的存在和(精確)劃分可以根據實際設備和應用而變化。
編碼器20(例如,視訊編碼器20)或解碼器30(例如,視訊解碼器30)或兩者都可以通過處理電路實現,例如,一個或多個微處理器,數位訊號處理器(digital signal processor,DSP)、專用積體電路(application-specific integrated circuit,ASIC)、現場可程式設計閘陣列(field-programmable gate array,FPGA)、離散邏輯、硬體、視訊編解碼專用處理器或其任意組合。編碼器20可以通過處理電路46實現,以涵蓋包括神經網路的各種模組。解碼器30可以通過處理電路46實現,以包含以上實施例和示例中論述的各種模組。處理電路可用於執行稍後將論述的各種操作。當所述技術部分地以軟體形式實現時,設備可將軟體的指令存儲在合適的非暫態性電腦可讀存儲介質中,並且可以使用一個或多個處理器以硬體形式執行所述指令,以執行本發明的技術。視訊編碼器20或視訊解碼器30可作為組合編碼器/解碼器(編解碼器)的一部分集成在單個設備中,如圖36所示。
源設備12和目的地設備14可以包括多種設備中的任一種,包括任何類型的手持或固定設備,例如,筆記型電腦或膝上型電腦、手機、智慧手機、平板電腦(tablet/tablet computer)、攝像機、臺式電腦、機上盒、電視機、顯示裝置、數位媒體播放機、視訊遊戲機、視訊流設備(如內容服務伺服器或內容分佈伺服器)、廣播接收器設備、廣播發射器設備等,並且可以不使用或使用任何類型的作業系統。在一些情況下,源設備12和目的地設備14可配備用於無線通訊的組件。因此,源設備12和目的地設備14可以是無線通訊設備。
在一些情況下,圖35所示的視訊編解碼系統10僅僅是示例性的,本申請提供的技術可適用於視訊編解碼設置(例如,視訊編碼或視訊解碼),這些設置不一定包括編碼設備與解碼設備之間的任何資料通信。在其它示例中,資料從本機存放區器中檢索,通過網路發送,等等。視訊編碼設備可以對資料進行編碼並將資料存儲到記憶體中,和/或視訊解碼設備可以從記憶體中檢索資料並對資料進行解碼。在一些示例中,編碼和解碼由相互不通信而只是將資料編碼到記憶體和/或從記憶體中檢索資料並對資料進行解碼的設備來執行。
圖37為本發明實施例提供的視訊編解碼設備3700的示意圖。視訊編解碼設備3700適用于實現本文描述的公開實施例。在一個實施例中,視訊編解碼設備3700可以是解碼器(如圖35的視訊解碼器30)或編碼器(如圖35的視訊編碼器20)。
視訊編解碼設備3700包括用於接收資料的入埠3710(或輸入埠3710)和接收單元(receiver unit,Rx)3720,用於處理資料的處理器、邏輯單元或中央處理單元(central processing unit,CPU)3730,用於發送資料的發送單元(transmitter unit,Tx)3740和出埠3750(或輸出埠3750)以及用於存儲資料的記憶體3760。視訊編解碼設備3700還可包括耦合到入埠3710、接收單元3720、發送單元3740和出埠3750的光電(optical-to-electrical,OE)組件和電光(electrical-to-optical,EO)元件,用於光訊號或電訊號的出口或入口。
處理器3730通過硬體和軟體實現。處理器3730可實現為一個或多個CPU晶片、核(例如,多核處理器)、FPGA、ASIC和DSP。處理器3730與入埠3710、接收單元3720、發送單元3740、出埠3750和記憶體3760通信。處理器3730包括編解碼模組3770。編解碼模組3770實現上文所公開的實施例。例如,編解碼模組3770執行、處理、準備或提供各種編解碼操作。因此,通過編解碼模組3770為視訊編解碼設備3700的功能提供了實質性的改進,並且影響了視訊編解碼設備3700到不同狀態的切換。或者,以存儲在記憶體3760中並由處理器3730執行的指令來實現編解碼模組3770。
記憶體3760可以包括一個或多個磁片、磁帶機和固態硬碟,可以用作溢出資料存放裝置,用於在選擇執行程式時存儲這些程式,並且存儲在程式執行過程中讀取的指令和資料。例如,記憶體3760可以是易失性和/或非易失性的,並且可以是唯讀記憶體(read-only memory,ROM)、隨機存取記憶體(random access memory,RAM)、三態內容定址記憶體(ternary content-addressable memory,TCAM)和/或靜態隨機存取記憶體(static random-access memory,SRAM)。
圖38為示例性實施例提供的裝置3800的簡化框圖,所述裝置3800可用作圖35中的源設備12和目的地設備14中的任一個或兩個。
裝置3800中的處理器3802可以是中央處理器。或者,處理器3802可以是現有的或今後將研發出的能夠操控或處理資訊的任何其它類型的設備或多個設備。雖然可以使用如圖所示的處理器3802等單個處理器來實現所公開的實現方式,但使用一個以上的處理器可以提高速度和效率。
在一種實現方式中,裝置1100中的記憶體3804可以是唯讀記憶體(read only memory,ROM)設備或隨機存取記憶體(random access memory,RAM)設備。任何其它合適類型的存放裝置都可以用作記憶體3804。記憶體3804可以包括處理器3802通過匯流排3812訪問的代碼和資料3806。記憶體3804還可包括作業系統3808和應用程式3810,應用程式3810包括使得處理器3802執行本文所述方法的至少一個程式。例如,應用程式3810可以包括應用1至N,還包括執行本文所述方法的圖像編解碼(編碼或解碼)應用。
裝置3800還可以包括一個或多個輸出設備,例如顯示器3818。在一個示例中,顯示器3818可以是將顯示器與可用於感測觸摸輸入的觸敏元件組合的觸敏顯示器。顯示器3818可以通過匯流排3812耦合到處理器3802。
雖然裝置3800中的匯流排3812在本文中描述為單個匯流排,但是匯流排3812可以包括多個匯流排。此外,次要存放裝置可以直接與裝置3800的其它元件耦合或可以通過網路訪問,並且可以包括單個集成單元(例如一個存儲卡)或多個單元(例如多個存儲卡)。因此,裝置3800可以具有各種各樣的配置。
概括地說,本發明涉及用於將(用於靜止或視訊處理的)資料編碼到碼流中的方法和裝置。具體地,資料由包括多個級聯層的網路處理。在處理中,特徵圖是由層生成的。至少兩個不同層處理(輸出)的所述特徵圖具有不同的解析度。在所述處理中,從所述級聯層中選擇一個層,所述層與生成最低解析度特徵圖的層(例如,潛在空間)不同。所述碼流包括與所述選定層相關的資訊。通過這種方法,提供了可以應用在不同解析度上的可擴展處理,以便所述碼流可以發送與這類不同解析度相關的資訊。因此,所述資料可以根據解析度在所述碼流中高效地編解碼,所述解析度可以根據經編碼圖像資料的內容而變化。
本發明還涉及用於從碼流中解碼(用於靜止或視訊處理的)資料的方法和裝置。具體地,從碼流中獲取兩個或多個特徵圖元素集。每個特徵圖元素集都與特徵圖相關。將兩個或多個特徵圖元素集中的每一個分別輸入到多個級聯層中的兩個或多個特徵圖處理層中。然後,獲取用於圖像或視訊處理的經解碼資料作為多個級聯層的處理結果。因此,可以在分層結構中以高效的方式從碼流中解碼資料。
本發明還涉及用於從碼流中解碼(用於靜止或視訊處理的)資料的方法和裝置。從碼流中獲取兩個或多個分割資訊元素集。然後,將兩個或多個分割資訊元素集中的每一個分別輸入到多個級聯層中的兩個或多個分割資訊處理層中。在兩個或多個分割資訊處理層中的每一個中,處理各自的分割資訊集。根據多個級聯層處理的分割資訊,獲取用於圖像或視訊處理的經解碼資料。因此,可以在分層結構中以高效的方式從碼流中解碼資料。
20、101、121:編碼器、視訊編碼器 102、108、122、413、415:Q 103、123:超編碼器 30、104、144:解碼器 105、109、125:AE 106、110、146:AD 107、127、147:超解碼器 401、402、403、404、405、406:下採樣層 407、408、409、410、411、412:上採樣層 420、430:卷積層 17:圖像 21:經編碼圖像資料 201:輸入端、輸入介面 203:塊、圖像塊 204:殘差計算單元 205:殘差塊 206:變換處理單元 207:變換係數 208:量化單元 209、309:量化係數 210、310:反量化單元 211、311:解量化係數 212、312:逆變換處理單元 213、313:重建殘差塊 214、314:重建單元 215、315:重建塊 220、320:環路濾波器單元 221、321:濾波塊 230:經解碼圖像緩衝器 330:解碼圖像緩衝器 231、331:經解碼圖像 260:模式選擇單元 265、365:預測塊 266、366:語法元素 270:熵編碼單元 272、332:輸出端、輸出介面 244、344:幀間預測單元 254、354:幀內預測單元 262:分割單元 304:熵解碼單元 360:模式應用單元 810、820、830:步驟 900:示例性網路 911、912、913:處理層、下採樣層、級聯層 920、1320:訊號選擇邏輯 930、1150、1250、1350、3030:碼流 940、1370、2800、2900、3040:訊號饋送邏輯 951、952、953:上採樣層 1010、1020:陣列 1050、1060:特徵圖 1100、1600、1700:訊號選擇電路、訊號選擇邏輯 1120:資訊、選定資訊 1130:分割資訊 1140:運動分割網 1210:運動估計或光流估計模組(單元)、光流估計 1215、610:輸出光流、密集光流 1220:運動規範(或分割)模組 1260:運動資訊 1270:運動生成單元 1275:重建的運動向量場、重建密集光 1280:運動補償單元 1360、1860、1960:運動生成(密集)網路 1310、1810、1910:網路、運動分割(稀疏化)網 1400、1500、613、623、633、710、2211、2212、2213、2300、2410:成本計算單元 1405:上採樣運動向量和參考圖像 1408:目標圖像 1410、1510:運動補償 1415、2801、2802、2803:上採樣 1420、1520:運動補償幀 1430、1530、2330:失真 1440:速率估計模組 1450:比特歸一化 1470、2340、1501、1515:下採樣 1480、1580:成本張量 1505:參考圖像 1508:目標圖像 1560、2350:計算成本 611、621、631:LayerMv 625、635:池化操作 612:LayerFlag 622、631:LayerFlag LayerMv 614、634、624:層資訊選擇單元 601、2249、2810、2820、2910、2918、2919、2920:初始化為0的張量 602、2241:初始化為真的張量 730、2231、2232、2233、2430:層資訊選擇 720、2222、2223、2420:MinCost池化 2060:運動生成網路 2010:運動分割網 2200:基於網路的RDO決策單元 2201、2202、2203:塊大小 2310:獲取塊重建參數 2320:重建 230x:塊大小N×N 2401、2402、2403:塊大小 2360:獲取比特估計 2510:四叉樹分割 2520:(對稱)二叉樹分割 2530:(不對稱)二叉樹分割 2540:三叉樹分割 2610:特徵圖元素 2611、2621、2622、2623、2624:標誌 2620、2630:特徵圖 2823、2822、2821:語法解譯單元 2921、2922、2923:語法解譯 2811、2812、2813、2911、2912、2913:張量組合 2990:密集光流重建 2901、2902:級聯 3000:卷積濾波器集合 3100:上採樣濾波器單元 3310、3320、3330、3410、3420、3430:步驟 10、40:視訊編解碼系統 12:源設備 13:通信通道 14:目的地設備 16:圖像源 18:預處理器 19:經預處理圖像資料 22、28:通信介面 31:經解碼圖像資料 32:後處理器 33:後處理圖像資料 34:顯示裝置 41:成像設備 42:天線 43、3730、3802:處理器 44、3760:儲存器 45、3818:顯示設備,顯示器 46:處理電路 3700:視訊編解碼設備 3710:入埠、輸入埠 3720、3740:接收單元 3750:出埠、輸出埠 3770:編解碼模塊 3800:裝置 3806:代碼和資料 3804:記憶體 3808:作業系統 3810:應用程式 3812:匯流排
下文參考以下附圖詳細描述本發明實施例,其中: 圖1為由神經網路的層處理的通道的示意圖; 圖2為神經網路的自動編碼器類型的示意圖; 圖3A為包括超先驗模型的編碼端和解碼端的示例性網路架構的示意圖; 圖3B為包括超先驗模型的編碼端的一般網路架構的示意圖; 圖3C為包括超先驗模型的解碼端的一般網路架構的示意圖; 圖4為包括超先驗模型的編碼端和解碼端的示例性網路架構的示意圖; 圖5A為基於神經網路的端到端視訊壓縮框架的框圖; 圖5B為用於運動場壓縮的神經網路應用的一些示例性細節的框圖; 圖5C為用於運動補償的神經網路應用的一些示例性細節的框圖; 圖6為U-net的層的示意圖; 圖7A為示例性混合編碼器的框圖; 圖7B為示例性混合解碼器的框圖; 圖8為用於編碼用於圖像/視訊處理(例如,編碼)的資料的示例性方法的流程圖; 圖9為從碼流中不同解析度的層傳輸資訊的網路結構的框圖; 圖10A為最大池化的示意圖; 圖10B為平均池化的示意圖; 圖11為由示例性編碼端對特徵圖和分割資訊的處理的示意圖; 圖12為編碼端和解碼端對運動資訊特徵圖的一般化處理的框圖; 圖13為從碼流中不同解析度的層傳輸資訊的用於處理運動向量相關資訊的網路結構的框圖; 圖14為具有較高成本張量解析度的示例性成本計算單元的框圖; 圖15為具有較低成本張量解析度的示例性成本計算單元的框圖; 圖16為舉例說明訊號選擇邏輯的功能結構的框圖; 圖17為舉例說明提供幾個編解碼選項的具有一個或多個成本計算單元的訊號選擇邏輯的功能結構的框圖; 圖18為從碼流中不同解析度的層傳輸資訊的具有卷積下採樣和上採樣層的網路結構的框圖; 圖19為從碼流中不同解析度的層傳輸資訊的具有附加層的結構的框圖; 圖20為從碼流中不同解析度的層傳輸資訊的具有能夠進行下採樣或上採樣濾波器選擇的層的結構的框圖; 圖21為從碼流中不同解析度的層傳輸資訊的能夠進行卷積濾波器選擇的網路結構的框圖; 圖22為舉例說明用於選擇編解碼模式的基於網路的RDO決策單元的功能結構的框圖; 圖23為舉例說明用於選擇編解碼模式的基於網路的RDO決策單元中可以使用的示例性成本計算單元的框圖; 圖24為用於選擇支援多個選項的編解碼模式的基於網路的RDO決策單元中可以使用的示例性成本計算單元的框圖; 圖25為可能的塊分割或濾波器形狀的示意圖; 圖26為分割資訊的推導的示意圖; 圖27為由解碼端對分割資訊的處理的示意圖; 圖28為用於重建密集光流的示例性訊號饋送邏輯的框圖; 圖29為用於重建密集光流的示例性訊號饋送邏輯的框圖; 圖30為卷積濾波器組的框圖; 圖31為上採樣濾波器組的框圖; 圖32A為在解碼端使用最近鄰居複製的上採樣處理的示意圖; 圖32B為在解碼端使用卷積處理的上採樣處理的示意圖; 圖33為用於對在解碼圖像或視訊時使用的特徵圖資訊等資料進行解碼的示例性方法的流程圖; 圖34為用於對在編碼圖像或視訊時使用的分割資訊等資料進行編碼的示例性方法的流程圖; 圖35為用於實現本發明實施例的視訊編碼系統的示例的框圖; 圖36為用於實現本發明實施例的視訊編解碼系統的另一示例的框圖; 圖37為編碼裝置或解碼裝置的示例的框圖; 圖38為編碼裝置或解碼裝置的另一示例的框圖。
900:示例性網路
911、912、913:處理層、下採樣層、級聯層
920:訊號選擇邏輯
930:碼流
940:訊號饋送邏輯
951、952、953:上採樣層

Claims (28)

  1. 一種將用於圖像或視訊處理的資料編碼到碼流中的方法,其中,所述方法包括: 處理所述資料,所述處理包括在多個級聯層中生成特徵圖,每個特徵圖包括各自的解析度,其中,所述生成的特徵圖中的至少兩個特徵圖的解析度相互不同; 從所述多個層中選擇與生成最低解析度特徵圖的層不同的層; 生成所述碼流,包括將與所述選定層相關的資訊插入到所述碼流中。
  2. 如請求項1所述的方法,其中,所述處理還包括由一個或多個級聯層進行下採樣。
  3. 如請求項2所述的方法,其中,所述層包括用於所述下採樣的平均池化或最大池化。
  4. 如請求項2所述的方法,其中,卷積用於所述下採樣。
  5. 如請求項1至4中任一項所述的方法,其中, 與所述選定層相關的資訊包括該層的特徵圖的元素。
  6. 如請求項1至5中任一項所述的方法,其中, 與所述選定層相關的資訊包括表示該層的所述特徵圖的所述元素是從哪個層和/或從該層的所述特徵圖的哪個部分中選擇的資訊。
  7. 如請求項1至6中任一項所述的方法,其中,所述方法包括: 獲取待編碼資料, 其中,所述待編碼資料的處理包括由所述多個(N個)級聯層中的每個第j個層進行處理,包括: 如果j = 1,則獲取所述待編碼資料作為層輸入,否則獲取第(j – 1)個層處理的特徵圖作為層輸入; 對所述獲取的層輸入進行處理,所述處理包括下採樣; 輸出所述經下採樣的特徵圖。
  8. 如請求項7所述的方法,其中,所述方法還包括: 選擇用於插入到所述碼流中的資訊,所述資訊與由j > 1的層處理的特徵圖中的第一區域相關,其中,所述第一區域對應於所述特徵圖中的區域或在包括多個元素的小於j的層中待編碼的初始資料; 在k個層處理的特徵圖進行選擇時,不選擇與所述第一區域對應的區域,其中,k為等於或大於1的整數且k < j。
  9. 如請求項1至8中任一項所述的方法,其中,所述待編碼資料包括圖像資訊和/或預測殘差資訊和/或預測資訊。
  10. 如請求項1至8中任一項所述的方法,其中,與所述選定層相關的所述資訊包括預測資訊。
  11. 如請求項1至10中任一項所述的方法,其中, 與所述選定層相關的所述資料包括所述特徵圖元素在所述選定層的特徵圖中的位置的指示。
  12. 如請求項11所述的方法,其中, 選定和非選定特徵圖元素的位置由多個二值化標誌指示,該指示基於所述標誌在所述碼流中的位置。
  13. 如請求項8至12中任一項所述的方法,其中,所述多個(N個)級聯層中的第j個層的處理包括: 確定通過使用所述第j個層輸出的特徵圖元素來重建重建圖像的一部分所產生的第一成本; 確定通過使用由所述第(j – 1)個層輸出的特徵圖元素來重建所述重建圖像的所述部分所產生的第二成本; 如果所述第一成本高於所述第二成本,則選擇所述第(j – 1)個層,並選擇與所述第(j – 1)個層中的所述部分相關的資訊。
  14. 如請求項13所述的方法,其中,所述第一成本和所述第二成本包括資料量和/或失真。
  15. 如請求項1至14中任一項所述的方法,其中,所述待編碼資料是運動向量場。
  16. 如請求項10至13中任一項所述的方法,其中,所述預測資訊包括參考索引和/或預測模式。
  17. 如請求項14至16中任一項所述的方法,其中,所述資料量包括傳輸與所述選定層相關的資料所需的資料量。
  18. 如請求項14至17中任一項所述的方法,其中,所述失真是通過將重建圖像與目標圖像進行比較來計算的。
  19. 如請求項1至18中任一項所述的方法,其中,所述處理包括具有不同解析度的級聯層之間的附加卷積層。
  20. 如請求項3至19中任一項所述的方法,其中,所述方法還包括: 在層進行下採樣時,使用第一濾波器對輸入特徵圖進行下採樣得到第一特徵圖,使用第二濾波器對所述輸入特徵圖進行下採樣得到第二特徵圖, 確定通過使用所述第一特徵圖來重建重建圖像的一部分而產生的第三成本, 確定通過使用所述第二特徵圖來重建所述重建圖像的所述部分而產生的第四成本; 在進行選擇時,如果所述第三成本低於所述第四成本,則選擇所述第一特徵圖。
  21. 如請求項20所述的方法,其中, 所述第一濾波器和所述第二濾波器的形狀可以是方形、水準方向的矩形和垂直方向的矩形中的任何一個。
  22. 如請求項20或21所述的方法,其中,所述方法還包括: 獲取遮罩,其中,所述遮罩由標誌組成,所述遮罩表示任意濾波器形狀, 所述第一濾波器或所述第二濾波器具有任意濾波器形狀。
  23. 如請求項1所述的方法,其中,所述處理包括: 在所述不同層中處理與被分割成具有不同塊大小和形狀的塊的相同圖像相關的資料,所述選擇包括: 根據預定編解碼模式集的計算成本來選擇層。
  24. 如請求項23所述的方法,其中,所述處理包括為至少一個層確定不同編解碼模式集的成本,並根據所確定的成本選擇所述編解碼模式集中的一個。
  25. 如請求項24所述的方法,其中,與所述選定層相關的資料的所述指示包括所述選定的編解碼模式集。
  26. 一種存儲在非暫態性介質中的電腦程式產品,其中,當在一個或多個處理器上執行所述電腦程式產品時,執行如請求項1至25中任一項所述的方法。
  27. 一種用於對圖像或視訊進行編碼的設備,其中,包括處理電路,所述處理電路用於執行如請求項1至25中任一項所述的方法。
  28. 一種將用於圖像或視訊處理的資料編碼到碼流中的設備,其中,所述設備包括: 處理單元,用於處理所述資料,其中,所述處理包括在多個級聯層中生成解析度相互不同的特徵圖,每個特徵圖包括各自的解析度; 選擇單元,用於從所述多個層中選擇與生成最低解析度特徵圖的層不同的層; 生成單元,用於生成所述碼流,包括將與所述選定層相關的資料的指示插入到所述碼流中。
TW110148378A 2020-12-24 2021-12-23 通過指示特徵圖資料進行編碼 TWI830107B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/RU2020/000749 WO2022139617A1 (en) 2020-12-24 2020-12-24 Encoding with signaling of feature map data
WOPCT/RU2020/000749 2020-12-24

Publications (2)

Publication Number Publication Date
TW202234890A true TW202234890A (zh) 2022-09-01
TWI830107B TWI830107B (zh) 2024-01-21

Family

ID=82159968

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110148378A TWI830107B (zh) 2020-12-24 2021-12-23 通過指示特徵圖資料進行編碼

Country Status (5)

Country Link
US (1) US20230336758A1 (zh)
EP (1) EP4205395A4 (zh)
CN (1) CN116648906A (zh)
TW (1) TWI830107B (zh)
WO (1) WO2022139617A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11445252B1 (en) * 2021-07-08 2022-09-13 Meta Platforms, Inc. Prioritizing encoding of video data received by an online system to maximize visual quality while accounting for fixed computing capacity
CN117173442A (zh) * 2022-05-24 2023-12-05 鸿海精密工业股份有限公司 图像识别方法、电子设备及存储介质
AU2022204911A1 (en) * 2022-07-08 2024-01-25 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a tensor
WO2024015638A2 (en) * 2022-07-15 2024-01-18 Bytedance Inc. A neural network-based image and video compression method with conditional coding
WO2024015639A1 (en) * 2022-07-15 2024-01-18 Bytedance Inc. Neural network-based image and video compression method with parallel processing
WO2024020053A1 (en) * 2022-07-18 2024-01-25 Bytedance Inc. Neural network-based adaptive image and video compression method
WO2024070273A1 (ja) * 2022-09-28 2024-04-04 日本電気株式会社 データ符号化装置、データ復号装置およびデータ処理システム
AU2022252784A1 (en) * 2022-10-13 2024-05-02 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a tensor
WO2024208149A1 (en) * 2023-04-01 2024-10-10 Douyin Vision Co., Ltd. Method, apparatus, and medium for visual data processing

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2901683A1 (en) * 2012-09-28 2015-08-05 VID SCALE, Inc. Adaptive upsampling for multi-layer video coding
CN106937121B (zh) * 2015-12-31 2021-12-10 中兴通讯股份有限公司 图像解码和编码方法、解码和编码装置、解码器及编码器
WO2019009448A1 (ko) * 2017-07-06 2019-01-10 삼성전자 주식회사 영상을 부호화 또는 복호화하는 방법 및 장치
JP7189230B2 (ja) * 2018-04-09 2022-12-13 ドルビー ラボラトリーズ ライセンシング コーポレイション ニューラルネットワークマッピングを用いるhdr画像表現
EP3743855A1 (en) * 2018-09-18 2020-12-02 Google LLC Receptive-field-conforming convolution models for video coding
US11405626B2 (en) * 2020-03-03 2022-08-02 Qualcomm Incorporated Video compression using recurrent-based machine learning systems

Also Published As

Publication number Publication date
TWI830107B (zh) 2024-01-21
WO2022139617A1 (en) 2022-06-30
CN116648906A (zh) 2023-08-25
US20230336758A1 (en) 2023-10-19
EP4205395A1 (en) 2023-07-05
EP4205395A4 (en) 2023-07-12

Similar Documents

Publication Publication Date Title
TWI830107B (zh) 通過指示特徵圖資料進行編碼
US20230336759A1 (en) Decoding with signaling of segmentation information
TWI834087B (zh) 用於從位元流重建圖像及用於將圖像編碼到位元流中的方法及裝置、電腦程式產品
US20230353764A1 (en) Method and apparatus for decoding with signaling of feature map data
US20240064318A1 (en) Apparatus and method for coding pictures using a convolutional neural network
CN116547969A (zh) 基于机器学习的图像译码中色度子采样格式的处理方法
WO2023172153A1 (en) Method of video coding by multi-modal processing
CN117501696A (zh) 使用在分块之间共享的信息进行并行上下文建模
EP4193595A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
TW202337211A (zh) 條件圖像壓縮
TW202420815A (zh) 使用神經網路進行圖像區域的並行處理-解碼、後濾波和rdoq
CN118786462A (zh) 使用通道间关联信息进行基于空间频率变换的图像修改
WO2024005660A1 (en) Method and apparatus for image encoding and decoding
WO2024217530A1 (en) Method and apparatus for image encoding and decoding
TWI850806B (zh) 基於注意力的圖像和視訊壓縮上下文建模
JP7571363B2 (ja) ニューラルネットワーク・ベースのビットストリームのデコードとエンコード
CN118872266A (zh) 基于多模态处理的视频译码方法
TW202416712A (zh) 使用神經網路進行圖像區域的並行處理-解碼、後濾波和rdoq
WO2024083405A1 (en) Neural network with a variable number of channels and method of operating the same
TW202318265A (zh) 基於注意力的圖像和視訊壓縮上下文建模