TWI806199B - 特徵圖資訊的指示方法,設備以及電腦程式 - Google Patents

特徵圖資訊的指示方法,設備以及電腦程式 Download PDF

Info

Publication number
TWI806199B
TWI806199B TW110138702A TW110138702A TWI806199B TW I806199 B TWI806199 B TW I806199B TW 110138702 A TW110138702 A TW 110138702A TW 110138702 A TW110138702 A TW 110138702A TW I806199 B TWI806199 B TW I806199B
Authority
TW
Taiwan
Prior art keywords
feature map
region
code stream
side information
indicator
Prior art date
Application number
TW110138702A
Other languages
English (en)
Other versions
TW202223762A (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 TW202223762A publication Critical patent/TW202223762A/zh
Application granted granted Critical
Publication of TWI806199B publication Critical patent/TWI806199B/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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
    • 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/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • 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
    • 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
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本發明涉及為採用神經網路的系統高效指示特徵圖資訊的。具體地,在解碼器側,從碼流中解析存在指示符;根據所述解析出的存在指示符的值,解析不解析與特徵圖區域相關的其它資料。例如,所述存在指示符可以是區域存在指示符,表示所述碼流中是否包括特徵圖資訊,或者可以是邊資訊存在指示符,表示所述碼流中是否包括與所述特徵圖資訊相關的邊資訊。類似地,提供了一種編碼方法,以及編碼和解碼設備。因此,所述特徵圖資訊可以更高效地處理,包括透過不解析降低解碼複雜度以及減少傳輸資料量。

Description

特徵圖資訊的指示方法,設備以及電腦程式
本發明實施例大體上涉及指示與神經網路處理有關的資訊(例如特徵圖或其它邊資訊)的領域。
幾十年來,混合圖像和影片轉碼器一直用於壓縮圖像和影片資料。在這些轉碼器中,信號通常以方塊為單位進行編碼,即透過預測一個方塊,然後只對該原始方塊與其預測方塊之間的差值進行編碼。具體地,這種編碼可以包括變換、量化和生成碼流,通常包括某種熵編碼。通常,混合編碼方法的三個組成部分是變換、量化和熵編碼,它們單獨進行優化。現代視訊壓縮標準,例如高效影片編碼(High-Efficiency Video Coding,HEVC)、通用影片編碼(Versatile Video Coding,VVC)和基本影片編碼(Essential Video Coding,EVC)也使用變換後的表示對預測之後的殘差信號進行解碼。
最近,人們已經將機器學習應用於圖像和影片編碼。一般而言,機器學習可以透過各種不同的方式應用於圖像和影片編 碼。例如,人們已經討論了一些端到端優化的圖像或影片編碼方案。此外,機器學習已經用於確定或優化端到端編碼的一些部分,例如選擇或壓縮預測參數等。這些應用的共同點在於,它們產生了一些特徵圖資訊,這些資料要在編碼器和解碼器之間傳輸。碼流的高效結構可以大大有助於減少對圖像/影片源信號進行編碼的比特數。
特徵圖資訊的高效指示也有利於其它機器學習應用或有利於在機器學習系統的分散式各層之間傳輸特徵圖資訊或相關資訊。
協同智慧一直是在移動雲基礎設施中高效部署深度神經網路的幾個新範式(paradigm)之一。透過在(移動)設備和雲之間等劃分網路,可以分配計算工作負載,從而將系統的整體能量和/或延遲降至最低。一般而言,分配計算工作負載可以在神經網路部署中使用資源有限的設備。此外,電腦視覺任務或機器的圖像/影片編碼屬於應用,它們也可以分散式運行並可以利用協同智慧。
神經網路通常包括兩層或兩層以上。特徵圖是層的輸出。神經網路在設備之間劃分,例如在設備和雲之間或在不同設備之間劃分,在該神經網路中,劃分位置(例如第一設備)輸出側的特徵圖被壓縮並發送到該神經網路的其餘層(例如第二設備)。
傳輸資源通常是有限的,因此需要減少傳輸資料量,同 時仍然要提供支援不同品質要求的可配置性。
本發明涉及用於壓縮在神經網路中使用的資料的方法和設備。這些資料可以包括但不限於特徵(例如特徵圖)。
本發明由獨立請求項的範圍限定。一些有利實施例提供在從屬請求項中。
具體地,本發明的一些實施例涉及指示(signal)神經網路可使用的特徵圖的資料。效率可以透過仔細設計碼流結構來提高。具體地,指示存在指示符(presence indicator)以表示特徵圖資訊或一般意義上的邊資訊是否存在。根據所述存在指示符,執行或不執行(skip)所述特徵圖或其區域的編碼和/或解碼。
一方面,提供了一種基於碼流的經神經網路處理的特徵圖進行解碼的方法。所述方法包括:從所述碼流中獲取所述特徵圖中的區域的區域存在指示符;對所述區域進行解碼,包括:當所述區域存在指示符具有第一值時,從所述碼流中解析資料以對所述區域進行解碼;當所述區域存在指示符具有第二值時,不從所述碼流中解析資料以對所述區域進行解碼。因此,特徵圖資訊可以高效地解碼到所述碼流中。具體地,不執行所述解析可以降低熵解碼的複雜度,同時降低速率(減少要包括到所述碼流中的資料量)。
例如,當所述區域存在指示符具有所述第二值時,所述 對所述區域進行解碼更包括:根據預定規則,設置所述區域。可以在特徵圖資訊各部分不存在的情況下設置如何填充各部分的規則使得解碼器能夠適當地補償未指示的資料。
例如,所述預定規則指定將所述區域的特徵設置為常數。常數填充是一種計算簡單、高效的填充缺失部分的方法,而且也不涉及每個特徵元素的熵解碼。在一些實施例中,所述常數為0。
所述方法可以包括從所述碼流中解碼所述常數的步驟。指示所述常數比較靈活,而且可以改善重建結果。
在一種示例性實現方式中,所述方法包括:從所述碼流中獲取邊資訊存在指示符;當所述邊資訊存在指示符具有第三值時,從所述碼流中解析邊資訊;當所述邊資訊存在指示符具有第四值時,不從所述碼流中解析邊資訊,其中,所述邊資訊更包括所述區域存在指示符和資訊中的至少一種,所述資訊正由所述神經網路處理以獲得在所述區域的熵解碼中使用的估計概率模型。其它邊資訊可以支援更複雜的設置。所述邊資訊的存在指示符可以使解碼模式更高效。
例如,當所述邊資訊存在指示符具有所述第四值時,所述方法包括將所述邊資訊設置為預定邊資訊值。填充所述邊資訊能夠處理缺失(未指示)的資料。
在一些實施例中,所述區域存在指示符為標誌,所述標誌能夠只取所述第一值和所述第二值中的一個值。二進位標誌提 供了一種速率特別高效的指示。
在一些實施例中,所述區域為所述特徵圖中的通道。通道級別是一個理想的層細微性。由於通道已經可以單獨(可分離)使用,所以不需要進一步分割。因此,利用通道級細微性是控制速率和失真的高效方法。
所述方法還可以包括:獲取重要性順序,其中,所述重要性順序指示所述特徵圖中的多個通道的重要性;獲取最後重要通道指示符;根據所述最後重要通道指示符,獲取所述區域存在指示符。對所述通道或一般意義上的特徵圖中的區域進行排序可以有助於簡化區域存在的指示。在一些實施例中,最後重要通道的指示對應於所述最後重要通道在所述重要性順序內的索引。不指示每個區域的標誌,而是指示最後重要區域,這樣可能更高效。
最後重要通道的指示對應於從所述碼流中解碼的品質指示符,所述品質指示符指示壓縮所述特徵圖中的所述區域產生的經解碼特徵圖的品質。因此,區域通道存在可以在沒有額外指示的情況下推導出,因為通常也出於其它目的在碼流中指示品質。
例如,所述獲取重要性順序包括從所述碼流中解碼所述重要性順序的指示。顯式指示可以完全靈活地設置/配置所述順序。但是,本發明並不限於顯式指示所述重要性順序。
在一種示例性實現方式中,所述獲取重要性順序包括根據關於所述特徵圖已經從中生成的來源資料的先前已解碼的資訊推導所述重要性順序。本實現方式的優點之一是額外信令開銷很 低。
例如,所述獲取重要性順序包括根據關於所述特徵圖已經從中生成的先前已解碼的來源資料的類型的資訊推導所述重要性順序。來源資料的類型可以很好地指示資料的目的和特徵,從而也可以很好地指示資料重建所需的品質。
例如,所述方法包括從所述碼流中解碼在所述碼流中按照從最重要通道到所述最後重要通道的所述重要性順序進行排序的通道。這將支持碼率可控性功能,從而透過根據期望品質等級丟棄(移除)最不重要通道,在不需要重新編碼的情況下降低碼率。
在一種示例性實現方式中,所述方法更包括以下步驟:從所述碼流中解碼區域劃分資訊,其中,所述區域劃分資訊表示所述特徵圖中的所述區域劃分成多個單元;根據所述劃分資訊,解碼或不解碼單元存在指示,其中,所述單元存在指示表示特徵圖資訊是否要從所述碼流中解析以對所述區域中的一個單元進行解碼。通道等區域進一步劃分(分割)成多個單元(分區)可以提供更細的細微性來指示這些單元是否存在,因此可以更靈活地控制開銷。
例如,所述區域的所述區域劃分資訊包括標誌,所述標誌表示所述碼流是否包括單元資訊,所述單元資訊指定所述區域中的所述多個單元的大小和/或位置;所述方法包括從所述碼流中解碼所述區域中的每個單元的單元存在指示;根據所述單元的所 述單元存在指示的值,從所述碼流中解析或不解析所述單元的特徵圖資訊。透過指示所述劃分的參數,速率和失真之間的關係可以更自由地控制。
在一些實施例中,所述單元資訊指定所述區域的層次劃分,包括四叉樹、二叉樹、三叉樹或三角劃分中的至少一個。這些劃分的優點是為混合轉碼器等開發的高效指示。
在一些示例性實現方式中,所述從所述碼流中解碼所述區域包括:從所述碼流中提取最後重要係數指示符,其中,所述最後重要係數指示符表示所述區域的係數中的最後係數的位置;從所述碼流中解碼所述區域的重要係數;根據預定規則,將所述係數設置在所述最後重要係數指示符之後;透過所述區域的所述係數的逆變換,獲取所述區域的特徵資料。對係數進行變換並在變換之後對係數進行解碼能夠很容易地識別所述重要係數,因為這些重要係數通常位於索引小的係數區域內。這可以進一步提高指示效率。
例如,所述逆變換是離散餘弦逆變換、離散正弦逆變換、修改所述離散餘弦逆變換或離散正弦逆變換得到的逆變換,或卷積神經網路變換。這些示例性變換已經用於殘差編碼目的,並且可以透過現有的硬體/軟體/演算法方法等高效地實現。
所述方法還可以包括從所述碼流中解碼邊資訊存在標誌,其中,所述邊資訊存在標誌表示所述碼流是否包括所述特徵圖的任何邊資訊,所述邊資訊包括正由所述神經網路處理以獲得 在所述特徵圖的熵解碼中使用的估計概率模型的資訊。邊資訊的存在指示可以提供更高效的指示,類似於特徵圖區域存在指示。
例如,所述區域存在指示符的解碼包括上下文自我調整熵解碼器進行的解碼。透過自我調整熵解碼進行進一步編碼/解碼可以進一步壓縮所述碼流。
一方面,提供了一種從碼流中解碼經神經網路處理的特徵圖的方法。所述方法包括:從所述碼流中獲取關於所述特徵圖的邊資訊指示符;對所述特徵圖進行解碼,包括:當所述邊資訊指示符具有第五值時,從所述碼流中解析所述邊資訊以對所述特徵圖進行解碼;當所述邊資訊指示符具有第六值時,不從所述碼流中解析所述邊資訊以對所述特徵圖進行解碼。邊資訊的存在指示可以提供更高效的指示,類似於特徵圖區域存在指示。
所述方法更包括熵解碼,其中,所述熵解碼以所述神經網路處理的經解碼特徵圖為基礎。這使得熵解碼器能夠高效地適應內容。
例如,當所述邊資訊指示符具有所述第六值時,所述方法包括將所述邊資訊設置為預定邊資訊值。因此,可以省略邊資訊值的指示,從而提高速率。例如,所述預定邊資訊值為0。
在一些實施例中,所述方法包括從所述碼流中解碼所述預定邊資訊值的步驟。將所述值設置為預設值提高了其設置的靈活性。
一方面,提供了一種對圖像進行解碼的方法。所述方法 包括:根據任一上述方法所述的從碼流中解碼經神經網路處理的特徵圖的方法;獲取經解碼圖像的步驟,包括使用所述神經網路處理所述經解碼特徵圖。將上述方法應用於基於機器學習的圖像或影片編碼可以顯著提高這種解碼的效率。例如,所述特徵圖表示:經解碼圖像資料,和/或用於對所述圖像資料進行解碼的經解碼邊資訊。
另一方面,提供了一種用於電腦視覺的方法。所述方法包括:根據任一上述方法所述的從碼流中解碼經神經網路處理的特徵圖的方法;執行電腦視覺任務的步驟,包括使用所述神經網路處理所述經解碼特徵圖。將上述方法應用於機器視覺任務可以有助於降低在基於機器學習的模型(例如神經網路)內傳輸資訊所需的速率,特別是在所述神經網路分散式實現的情況下。例如,所述電腦視覺任務為物件檢測、物件分類和/或物件識別。
一方面,提供了一種經神經網路處理的特徵圖編碼到碼流中的方法。所述方法包括:獲取所述特徵圖中的區域;根據在所述特徵圖中獲取的所述區域,決定指示並在所述碼流中指示具有第一值的區域存在指示符和所述特徵圖中的所述區域,或者指示具有第二值的區域存在指示符但不包括所述特徵圖中的所述區域。
這裡提到的編碼方法為所述碼流提供了特定結構,這樣能夠實現上述對應解碼方法提到的優點。
例如,所述決定包括評估所述區域的特徵的值。基於上 下文/內容的適應性指示能夠利用特定的相關性,並相應地降低經解碼流的速率。
在一些實施例中,所述決定基於所述區域對所述神經網路的處理結果的品質產生的影響。這種決定降低了對移除資訊造成的失真很敏感的速率。
根據一種示例性實現方式,所述決定包括:從最重要區域的比特開始並繼續到重要性遞減的區域,以增量方式確定所述特徵圖傳輸所需的比特之和,直到所述和超過預配置閾值;對所述和未超過所述預配置閾值的區域進行編碼並對所述經編碼區域的具有所述第一值的所述區域存在指示符進行編碼;對未經編碼區域的具有所述第二值的所述區域存在指示符進行編碼。這種方法的計算效率高,滿足對所得流的速率和失真施加的限制條件。
一方面,提供了一種經神經網路處理的特徵圖編碼到碼流中的方法。所述方法包括:獲取所述特徵圖;決定是否指示關於所述特徵圖的邊資訊並在所述碼流中指示表示第三值的邊資訊指示符和所述邊資訊,或者指示表示第四值的邊資訊指示符但不包括所述邊資訊。因此,編碼能夠只指示實現所需品質/速率所需要的資訊。
在一些實施例中,所述區域存在指示符和/或所述邊資訊指示符為標誌,所述標誌能夠只取所述第一值和所述第二值中的一個值。二進位標誌提供了一種速率特別高效的指示。
在一些實施例中,所述區域為所述特徵圖中的通道。
所述方法還可以包括:獲取重要性順序,其中,所述重要性順序指示所述特徵圖中的多個通道的重要性;獲取最後重要通道指示符;根據所述最後重要通道指示符,獲取所述區域存在指示符。在一些實施例中,最後重要通道的指示對應於所述最後重要通道在所述重要性順序內的索引。
最後重要通道的指示對應於編碼(***)到所述碼流中的品質指示符,所述品質指示符表示壓縮所述特徵圖中的所述區域產生的經解碼特徵圖的品質。
例如,重要性順序指示被***(編碼)到所述碼流中。
在一種示例性實現方式中,所述獲取重要性順序包括根據關於所述特徵圖已經從中生成的來源資料的先前已編碼的資訊推導所述重要性順序。例如,所述獲取重要性順序包括根據關於所述特徵圖已經從中生成的來源資料的類型的先前已編碼的資訊推導所述重要性順序。
例如,所述方法包括將在所述碼流中按照從最重要通道到所述最後重要通道的所述重要性順序進行排序的通道編碼到所述碼流中。
在一種示例性實現方式中,所述方法更包括以下步驟:將區域劃分資訊編碼到所述碼流中,其中,所述區域劃分資訊表示所述特徵圖中的所述區域劃分成多個單元;根據所述劃分資訊,對單元存在指示進行編碼(***到所述碼流中)或不編碼(不***到所述碼流中),其中,所述單元存在指示表示特徵圖資訊是 否包括在所述碼流中以對所述區域中的單元進行解碼。
例如,所述區域的所述區域劃分資訊包括標誌,所述標誌表示所述碼流是否包括單元資訊,所述單元資訊指定所述區域中的所述多個單元的大小和/或位置;所述方法包括從所述碼流中解碼所述區域中的每個單元的單元存在指示;根據所述單元的所述單元存在指示的值,從所述碼流中解析或不解析所述單元的特徵圖資訊。透過指示所述劃分的參數,速率和失真之間的關係可以更自由地控制。
在一些實施例中,所述單元資訊指定所述區域的層次劃分,包括四叉樹、二叉樹、三叉樹或三角劃分中的至少一個。
在一些示例性實現方式中,所述將區域編碼到所述碼流中包括:將最後重要係數指示符包括到所述碼流中,其中,所述最後重要係數指示符表示所述區域的係數中的最後係數的位置;將所述區域的重要係數編碼到所述碼流中;透過變換對所述區域的特徵資料進行變換,從而獲取所述區域的所述係數。
例如,所述逆變換是離散餘弦逆變換、離散正弦逆變換、修改所述離散餘弦逆變換或離散正弦逆變換得到的逆變換,或卷積神經網路變換。
所述方法還可以包括將邊資訊存在標誌編碼到所述碼流中,其中,所述邊資訊存在標誌表示所述碼流是否包括所述特徵圖的任何邊資訊,所述邊資訊包括正由所述神經網路處理以獲得在所述特徵圖的熵解碼中使用的估計概率模型的資訊。
例如,所述區域存在指示符和/或所述邊資訊指示符的編碼包括上下文自我調整熵編碼器進行的編碼。
一方面,提供了一種經神經網路處理的特徵圖編碼到碼流中的方法。所述方法包括:將關於所述特徵圖的邊資訊指示符包括到所述碼流中;對所述特徵圖進行編碼,包括:將所述邊資訊指示符的第五值***到所述碼流,其中,邊資訊用於對所述特徵圖進行解碼;將所述邊資訊包括到所述碼流中;或者將所述邊資訊指示符的第六值包括到所述碼流中並不將所述特徵圖區域的所述邊資訊***到所述碼流中。
所述方法可以包括熵編碼,其中,所述熵編碼以所述神經網路處理的經編碼特徵圖為基礎。
例如,當所述邊資訊指示符具有所述第六值時,編碼器由此控制在解碼器側將所述邊資訊設置為預定邊資訊值。在一些實施例中,所述方法包括將所述預定邊資訊值編碼到所述碼流中的步驟。
一方面,提供了一種對圖像進行編碼的方法。所述方法包括:透過使用神經網路處理輸入圖像,獲取經編碼圖像,從而獲取特徵圖;根據任一上述方法所述的將特徵圖編碼到碼流中的方法。例如,所述特徵圖表示:經解碼圖像資料,和/或用於對所述圖像資料進行解碼的經解碼邊資訊。
另一方面,提供了一種用於電腦視覺的方法。所述方法包括:根據任一上述方法所述的經神經網路處理的特徵圖編碼到 碼流中的方法;以及處理圖像從而使用所述神經網路獲取特徵圖的步驟,以向解碼器提供所述特徵圖,以便根據所述特徵圖執行電腦視覺任務。例如,所述電腦視覺任務為物件檢測、物件分類和/或物件識別。
一方面,一種存儲在非暫態性介質中的電腦程式。所述電腦程式包括代碼,當所述代碼在一個或多個處理器上執行時,執行任一上述方法所述的步驟。
一方面,提供了一種基於碼流的經神經網路處理的特徵圖進行解碼的設備。所述設備包括:區域存在指示符獲取模組,用於從所述碼流中獲取所述特徵圖中的區域的區域存在指示符;解碼模組,用於對所述區域進行解碼,包括:當所述區域存在指示符具有第一值時,從所述碼流中解析資料以對所述區域進行解碼;當所述區域存在指示符具有第二值時,不從所述碼流中解析資料以對所述區域進行解碼。
一方面,提供了一種從碼流中解碼經神經網路處理的特徵圖的設備。所述設備包括:邊資訊指示符獲取模組,用於從所述碼流中獲取關於所述特徵圖的邊資訊指示符;解碼模組,用於對所述特徵圖進行解碼,包括:當所述邊資訊指示符具有第五值時,從所述碼流中解析邊資訊以對所述特徵圖進行解碼;當所述邊資訊指示符具有第六值時,不從所述碼流中解析邊資訊以對所述特徵圖進行解碼。
一方面,提供了一種經神經網路處理的特徵圖編碼到碼 流中的設備。所述設備包括:特徵圖獲取模組,用於獲取所述特徵圖;編碼控制模組,用於根據所述獲取到的特徵圖,決定指示並在所述碼流中指示具有第一值的區域存在指示符和所述特徵圖中的區域,或者指示具有第二值的區域存在指示符但不包括所述特徵圖中的區域。
一方面,提供了一種經神經網路處理的特徵圖編碼到碼流中的設備。所述設備包括:特徵圖獲取模組,用於獲取所述特徵圖;編碼控制模組,用於決定是否指示關於所述特徵圖的邊資訊並在所述碼流中指示表示第三值的邊資訊指示符和所述邊資訊,或者指示表示第四值的邊資訊指示符但不包括所述邊資訊。
一方面,提供了一種基於碼流的經神經網路處理的特徵圖進行解碼的設備。所述設備包括處理電路,用於執行根據任一上述方法所述的方法的步驟。
一方面,提供了一種經神經網路處理的特徵圖編碼到碼流中的設備。所述設備包括處理電路,用於執行根據任一上述方法所述的方法的步驟。
一方面,解碼器設備由雲實現。在這種場景下,一些實施例可以很好地平衡傳輸所需的速率和神經網路準確度。
任一上述設備都可以在集成晶片上實現。
任一上述實施例和示例性實現方式可以組合在一起。
S110~S190:步驟
S205~S280:步驟
S310~S390:步驟
S410~S470:步驟
S510~S595:步驟
S610~S690:步驟
S710~S780:步驟
S810~S890:步驟
10:影片解碼系統
12:源設備
13:通信訊道
14:目的地設備
16:圖像源
17:圖像資料
18:預處理器
19:預處理圖像資料
20:影片編碼器
21:經編碼圖像資料
22:通信介面
30:影片解碼器
31:顯示設備
32:後處理器
33:後處理圖像資料
40:影片譯碼系統
41:一個或多個成像設備
42:天線
43:一個或多個處理器
44:一個或多個記憶體
45:顯示設備
46:處理電路
1000:影片譯碼設備
1010:入埠
1020:接收單元
1030:處理器
1040:發送單元
1050:出埠
1060:記憶體
1070:譯碼模組
1102:處理器
1106:資料
1108:操作系統
1110:應用程式
1112:匯流排
1118:顯示器
2000:方塊
2010:方塊
2020:方塊
2030:方塊
2300:設備
2310:區域存在指示符獲取模組
2320:區域解碼模組
2350:設備
2360:特徵圖獲取模組
2370:區域編碼控制模組
2400:設備
2410:邊訊息指示符獲取模組
2420:邊訊息解碼模組
2450:設備
2460:特徵圖獲取模組
2470:邊訊息編碼控制模組
下面參考所附附圖和示意圖更詳細地描述本發明實施例。
圖1為由神經網路各層處理的通道的示意圖。
圖2為神經網路的自動編碼器類型的示意圖。
圖3為包括超先驗模型的網路架構的示意圖。
圖4為機器任務(例如機器視覺任務)的雲技術方案的結構的框圖。
圖5為端到端可訓練視訊壓縮框架的結構的框圖。
圖6為用於運動向量(motion vector,MV)壓縮的網路的框圖。
圖7為用於運動補償的網路的框圖。
圖8為對圖像區域的特徵圖資訊進行解碼的示例性方法的流程圖。
圖9為對圖像區域的特徵圖資訊進行編碼的示例性方法的流程圖。
圖10為對圖像區域的包括預設值設置的特徵圖資訊進行解碼的示例性方法的流程圖。
圖11為對圖像區域的特徵圖資訊進行編碼的示例性方法的流程圖。
圖12為根據特徵圖資訊的重要性在速率限制條件下對特徵圖資訊進行編碼的示例性方法的流程圖。
圖13為對圖像區域的包括邊資訊的特徵圖資訊進行解碼的 示例性方法的流程圖。
圖14為對圖像區域的包括邊資訊的特徵圖資訊進行編碼的示例性方法的流程圖。
圖15為根據包括最後重要通道指示符的碼流對特徵資料進行解碼的示例性方法的流程圖。
圖16為通道的品質等級、通道的設計順序和品質參數之間的隱式關係的示意圖。
圖17為根據碼流對包括最後重要通道指示符和重要性順序的特徵資料進行解碼的示例性方法的流程圖。
圖18為通道的重要性順序、通道的設計順序和品質參數之間的顯式關係的示意圖。
圖19為碼流結構的示意圖,該碼流結構包括按照通道資訊的重要性順序存儲的通道資訊以及品質可控性等級。
圖20為透過四叉樹方法分割的特徵圖單元以及包括特徵圖資訊的單元的示意圖。
圖21為對特徵資料進行解碼的示例性方法的流程圖,解碼包括最後重要係數位置的解碼。
圖22為對特徵資料進行編碼的示例性方法的流程圖,編碼包括最後重要係數位置的編碼。
圖23為對特徵圖資訊進行解碼和編碼的示例性設備的框圖。
圖24為對邊資訊資料進行解碼和編碼的示例性設備的框圖。
圖25是用於實現本發明實施例的一種示例性影片解碼系統 的框圖。
圖26為用於實現本發明實施例的另一種示例性影片解碼系統的框圖。
圖27為一種示例性編碼設備或解碼設備的框圖。
圖28為另一種示例性編碼設備或解碼設備的框圖。
以下描述中,參考組成本發明一部分並以說明的方式示出本發明實施例的具體方面或可以使用本發明實施例的具體方面的附圖。應當理解的是,本發明實施例可以在其它方面中使用,並且可以包括附圖中未描繪的結構變化或邏輯變化。因此,以下詳細描述不應以限制性的意義來理解,且本發明的範圍由所附申請專利範圍界定。
例如,應當理解的是,與描述方法有關的公開內容可以對用於執行所述方法的對應設備或系統也同樣適用,反之亦然。例如,如果描述一個或多個具體方法步驟,則對應的設備可以包括一個或多個單元(例如,功能單元)來執行所描述的一個或多個方法步驟(例如,一個單元執行一個或多個步驟,或多個單元各自執行多個步驟中的一個或多個步驟),即使附圖中未明確描述或示出這種一個或多個單元。另一方面,例如,如果根據一個或多個單元(例如,功能單元)來描述具體設備,則對應的方法可以包括一個步驟來執行一個或多個單元的功能(例如,一個步驟 實現一個或多個單元的功能,或多個步驟各自實現多個單元中一個或多個單元的功能),即使附圖中未明確描述或示出這種一個或多個單元。此外,應當理解的是,除非另外明確說明,本文中描述的各個示例性實施例和/或方面的特徵可以相互組合。
一些實施例的目的是為神經網路提供低複雜度的資料壓縮。例如,資料可以包括特徵圖或神經網路中使用的其它資料,例如權重或其它參數。在一些示例性實現方式中,提供了信令,能夠為神經網路產生高效碼流。根據協同智慧範式(collaborative intelligence paradigm),移動設備或邊緣設備如果需要回饋,可以從雲中獲得。但是,需要說明的是,本發明並不限於包括雲在內的協作網路的框架。本發明可以用於任何分散式神經網路系統。此外,本發明也可以用於在神經網路中存儲特徵圖,而這些神經網路不一定是分散式的。
下面概述了一些使用的技術術語。
人工神經網路
人工神經網路(artificial neural network,ANN)或連接主義系統是受構成動物大腦的生物神經網路模糊啟發而產生的計算系統。這些系統透過舉例“學習”執行任務,通常不使用任務特定規則進行程式設計。例如,在圖像識別中,這些系統可能會學習識別包括貓的圖像,即透過分析手動標記為“貓”或“沒有貓”的示例性圖像並使用結果來識別其它圖像中的貓。這些系統這樣做的時候不知道貓的任何資訊,例如,它們有毛皮、尾巴、 鬍鬚和貓臉。相反,這些系統會從處理的示例中自動生成識別特徵。
ANN基於一組稱為人工神經元(artificial neuron)的連接單元或節點,這些單元或節點對生物大腦中的神經元進行不嚴格的建模。每個連接,就像生物大腦中的突觸(synapse)一樣,可以向其它神經元發送信號。然後,接收信號的人工神經元處理這個信號,並可以向連接到人工神經元的神經元發出信號。
在ANN實現方式中,連接處的“信號”是實數,每個神經元的輸出由每個神經元的輸入之和的某個非線性函數計算得到。這些連接稱為邊(edge)。神經元和邊通常具有隨著學習的進行而調整的權重。權重增加或減少連接處信號的強度。神經元可以有一個閾值,這樣只有在聚合信號超過該閾值時,才會發送該信號。通常,神經元被聚集到各層中。不同的層可以對其輸入執行不同的變換。信號可能在多次遍歷各層之後,從第一層(輸入層)傳輸到最後一層(輸出層)。
ANN方法的最初目標是以與人腦相同的方式解決問題。隨著時間的推移,注意力轉移到執行特定任務上,導致偏離生物學。ANN已經用於各種任務,包括電腦視覺、語音辨識、機器翻譯、社交網路過濾、棋盤遊戲和影片遊戲、醫學診斷、甚至傳統上被認為是留給人類的活動,例如繪畫。
卷積神經網路
名稱“卷積神經網路(convolutional neural network, CNN)”表示網路採用一種稱為卷積的數學運算。卷積是一種特殊的線性運算。卷積網路簡單地稱為神經網路,它們在其至少一個層中使用卷積代替一般的矩陣乘法。
圖1為由CNN等神經網路進行的處理的通用概念的示意圖。卷積神經網路包括輸入層、輸出層以及多個隱藏層。輸入層是將輸入(例如圖1所示的圖像的一部分)提供到其中進行處理的層。CNN中的隱藏層通常包括一系列卷積層,這些卷積層透過乘法或其它點積進行卷積。層的結果是一個或多個特徵圖(圖1中的f.map),有時也稱為通道(channel)。部分或所有層中可能會涉及子採樣(subsampling)。因此,特徵圖可能會變小,如圖1所示。CNN中的啟動函數通常是修正線性單元(Rectified Linear Unit,ReLU)層,後面是其它卷積層,例如池化層、全連接層和歸一化層,它們稱為隱藏層,因為它們的輸入和輸出被啟動函數和最終卷積所掩蓋。雖然各層通俗地稱為卷積,但這只是依照慣例。從數學上講,卷積在技術上是一個滑動點積(sliding dot product)或互相關(cross-correlation)。這對矩陣中的索引具有重要性,因為影響到在特定索引點確定權重的方式。
當程式設計CNN以處理圖像時,如圖1所示,輸入是具有形狀(圖像數量)×(圖像寬度)×(圖像高度)×(圖像深度)的張量。然後,在經過卷積層之後,圖像被抽象為特徵圖,具有形狀(圖像數量)×(特徵圖寬度)×(特徵圖高度)×(特徵圖通道)。神經網路內的卷積層應該具有以下屬性:由寬度和高度定義 的卷積核(超參數),輸入通道和輸出通道的數量(超參數)。卷積濾波器(輸入通道)的深度需要等於輸入特徵圖的通道數量(深度)。
在過去,傳統的多層感知(multilayer perceptron,MLP)模型已經用於圖像識別。但是,由於節點之間的全連接,這些多層感知模型受到高維度的影響,並且在高解析度圖像中無法很好地擴展。具有RGB顏色通道的1000×1000圖元圖像具有3百萬個權重,權重太高,以至於無法在全連接的情況下切實高效地進行大規模處理。此外,這種網路架構不考慮資料的空間結構,使得相距遠的圖元與相距近的圖元以相同方式處理。這在計算上和語義上都忽略了圖像資料中的參考局部性。因此,神經元的全連接對於由空間局部輸入模式占主導的圖像識別等目的是浪費的。
卷積神經網路是多層感知機(perceptron)的生物學啟發變體,專門設計用於類比視覺皮層的行為。這些模型透過利用自然圖像中存在的強空間局部相關性,減輕了MLP架構帶來的挑戰。卷積層是CNN中的核心構建方塊。該層的參數包括一組可學習的濾波器(上述內核),這些濾波器具有一個小的感受野(receptive filed),但延伸到輸入體積(input volume)的整個深度。在前向傳播(forward pass)期間,每個濾波器跨輸入體積的寬度和高度進行卷積,從而計算濾波器的係數(entry)與輸入之間的點積,並生成該濾波器的二維啟動圖(activation map)。因此,當網路在輸入中的某個空間位置上檢測到某種特定類型的特徵 時,網路學習濾波器啟動它們。
沿深度維度堆疊所有濾波器的啟動圖構成卷積層的完整輸出體積。因此,輸出體積中的每個係數還可以被解釋為神經元的輸出,該神經元觀察輸入中的一個小區域,並與同一啟動圖中的神經元共用參數。特徵圖或啟動圖是給定濾波器的輸出啟動。特徵圖和啟動具有相同的含義。在一些論文中,稱為啟動圖,是因為它是一種與圖像中不同部分的啟動對應的映射關係,也稱為特徵圖,是因為它也是一種在圖像中找到某種特徵所在的映射關係。高啟動表示找到了某個特徵。
CNN的另一個重要概念是池化(pooling),它是非線性下採樣的一種形式。有幾個非線性函數可以實現池化,其中,最大池化(max pooling)是最常見的,它將輸入圖像分割成一組不重疊的矩形,並輸出每個子區域的最大值。
直觀地,特徵的確切位置沒有該特徵相對於其它特徵的粗略位置重要。這就是在卷積神經網路中使用池化背後的原因。池化層用於逐步減小表示的空間大小,減少網路中的參數數量、記憶體佔用和計算量,從而也控制過擬合(overfitting)。在CNN架構中的連續卷積層之間定期***池化層是常見的。池化操作提供了另一種形式的平移不變性。
池化層在輸入的每個深度切片(slice)上獨立運行,並在空間上調整每個深度切片的大小。最常見的形式是池化層具有大小為2×2的濾波器,這些濾波器在輸入中的每個深度切片上應 用步幅為2的下採樣,沿寬度和高度均縮小二分之一,從而丟棄75%的啟動。在這種情況下,每個最大運算都在4個係數上。深度維度保持不變。
除最大池化之外,池化單元還可以使用其它功能,例如平均池化或l2-範數池化。歷史上經常使用的是平均池化,但與實踐中表現更好的最大池化相比,平均池化最近已經不受歡迎。由於表示的大小大幅減小,最近出現使用較小的濾波器或完全丟棄池化層的趨勢。“感興趣區域(Region of Interest)”池化(也稱為ROI池化)是最大池化的變體,其中的輸出大小是固定的,輸入矩形是參數。池化是用於基於快速R-CNN架構的物件檢測的卷積神經網路的一個重要組成部分。
上述ReLU是修正線性單元的縮寫,採用非飽和啟動函數(non-saturating activation function)。ReLU透過將負值設置為0,有效地從啟動圖中刪除這些負值;增加了決策函數和整體網路的非線性,但不影響卷積層的感受野。其它函數也用於增加非線性,例如飽和雙曲正切(saturating hyperbolic tangent)和S形函數(sigmoid function)。ReLU通常比其它函數更受歡迎,因為它訓練神經網路的速度要快幾倍,但不會大大降低泛化精度(generalization accuracy)。
在經過幾個卷積層和最大池層之後,神經網路中的高層推理透過全連接層完成。全連接層中的神經元與前一層中的所有啟動都有連接,如常規(非卷積)人工神經網路中所示。因此, 神經元的啟動可以計算為仿射變換,矩陣乘法之後是偏差偏移(bias offset)(學習到或固定的偏差項的向量加法)。
“損失層(loss layer)”指定訓練如何影響預測(輸出)標籤與真實標籤之間的偏差(deviation),並且通常是神經網路的最後一層。可以使用適合不同任務的各種損失函數。softmax損失用於預測K個互斥類(mutually exclusive class)中的一類。S形交叉熵損失(sigmoid cross-entropy loss)用於預測[0,1]中的K個獨立概率值。歐幾裡得損失(Euclidean loss)用於回歸到實值標籤。
總之,圖1示出了典型卷積神經網路中的資料流程。首先,輸入圖像透過卷積層並抽象到包括幾個通道的特徵圖,這些通道對應於該層的一組可學習濾波器中的濾波器的數量(例如,每個濾波器對應一個通道)。然後,特徵圖使用池化層等進行子採樣,這樣減小了特徵圖中每個通道的大小。下一個資料到達另一個卷積層,該卷積層可能具有不同數量的輸出通道,導致特徵圖中具有不同數量的通道。如上所述,輸入通道和輸出通道的數量是層的超參數。為了建立網路連接,這些參數需要在兩個連接層之間同步,例如,當前層的輸入通道數量需要等於上一層的輸出通道數量。對於處理圖像等輸入資料的第一層,輸入通道數量通常等於資料表示的通道數量,例如,用於圖像或影片的RGB或YUV表示的3個通道或用於灰度圖像或影片表示的1個通道。
自動編碼器和無監督學習
自動編碼器是一種人工神經網路,用於以無監督的方式學習高效資料編碼。圖2為自動編碼器的示意圖。自動編碼器的目的是透過訓練網路忽略信號“雜訊”來學習一組資料的表示(編碼),通常用於降維(dimensionality reduction)。除了簡化側,還學習了重建側,其中,自動編碼器試圖從簡化的編碼中生成盡可能接近其原始輸入的表示,因此得名。在最簡單的情況下,給定一個隱藏層,自動編碼器的編碼器級獲取輸入x並將輸入映射到hh=σ(Wx+b)
圖像h通常稱為代碼、潛在變數(latent variable)或潛在表示。這裡,σ是以元素為單位的啟動函數,例如S形函數或修正線性單位。W是權重矩陣,b是偏差向量。權重和偏差通常是隨機初始化的,然後在訓練期間透過反向傳播反覆運算更新。之後,自動編碼器的解碼器級將h映射到形狀與x相同的重建x'x'=σ'(W'h'+b')
其中,解碼器的σ'W'b'可以與編碼器的對應σWb無關。
變分自動編碼器模型對潛在變數的分佈做出了強假設。這些模型使用變分方法進行潛在表示學習,產生了額外的損失分量,和訓練演算法的特定估計器,稱為隨機梯度變分貝葉斯(Stochastic Gradient Variational Bayes,SGVB)估計器。該估計器假設資料是由有向圖模型(directed graphical model)pθ(x|h)生成 的,並且假設編碼器正在學習後驗分佈pθ(h|x)的近似值qΦ(h|x),其中,Φ和θ分別表示編碼器(識別模型)和解碼器(生成模型)的參數。VAE的潛在向量的概率分佈通常比標準自動編碼器更接近訓練資料的概率分佈。VAE的目標具有以下形式:
Figure 110138702-A0305-02-0029-1
這裡,D KL 表示KL散度(Kullback-Leibler divergence)。潛在變數的先驗通常被設置為中心各向同性多元高斯(isotropic multivariate Gaussian)p θ (h)=N(0,1).。通常情況下,選擇變分分佈和似然分佈的形狀,使得它們是分解高斯(factorized Gaussian):
Figure 110138702-A0305-02-0029-2
Figure 110138702-A0305-02-0029-3
其中,ρ(x)和ω 2(x)是編碼器輸出,而μ(h)和σ 2(h)是解碼器輸出。
人工神經網路領域(特別是卷積神經網路)的最新進展使得研究人員有興趣將基於神經網路的技術應用於圖像和視訊壓縮任務。例如,人們已經提出端到端優化圖像壓縮,這種技術使用基於變分自動編碼器的網路。因此,資料壓縮被認為是工程中一個基礎且經過深入研究的問題,通常用於為具有最小熵的給定離散資料集合(discrete data ensemble)設計代碼的目的而制定。該技術方案在很大程度上依賴於資料概率結構的知識,因此該問題與概率源建模密切相關。但是,由於所有實際代碼必須具有有 限熵,因此必須將連續值資料(例如圖像圖元強度的向量)量化為有限的離散值集,這會引入誤差。在這種情況下,稱為失真壓縮問題,必須權衡兩個相互矛盾的成本:離散表示的熵(速率)和量化產生的誤差(失真)。不同的壓縮應用,例如資料存儲或有限容量通道上的傳輸,需要不同地平衡速率和失真。速率和失真的聯合優化是困難的。如果沒有進一步的限制條件,高維空間中的最佳量化的一般問題是難以處理的。出於這個原因,大多數現有的圖像壓縮方法透過將資料向量線性地變換為合適的連續值表示,獨立地量化表示的元素,然後使用無損熵代碼對所得到的離散表示進行編碼來進行操作。由於變換起核心作用,所以該方案稱為變換編碼(transform coding)。例如,JPEG對區方塊使用離散餘弦變換,而JPEG 2000使用多尺度正交小波分解(multi-scale orthogonal wavelet decomposition)。通常,變換編碼方法的三個組成部分是變換、量化器和熵編碼,它們單獨進行優化(通常透過手動參數調整)。現代視訊壓縮標準,例如HEVC、VVC和EVC也使用變換後的表示對預測之後的殘差信號進行解碼。下面幾種變換用於此目的,例如離散餘弦和正弦變換(DCT、DST),以及手動優化的低頻不可分離變換(low frequency non-separable transform,LFNST)。
變分圖像壓縮
J.Balle、L.Valero Lapara和E.P.Simoncelli(2015年)在2016年第4屆學習表示國際會議上發表的arXiv電子預印本 “使用廣義歸一化變換的圖像密度建模(Density Modeling of Images Using a Generalized Normalization Transformation)”(下文稱為“Balle”),作者在其中提出了基於非線性變換的圖像壓縮模型的端到端優化框架。在此之前,作者證明了,一個由線性-非線性方塊變換組成的模型,針對感知失真度量進行了優化,與針對均方誤差(mean squared error,MSE)優化的模型相比,在視覺上表現出優越性。這裡,作者針對MSE進行了優化,但使用了由線性卷積和非線性級聯構建的更靈活的變換。具體地,作者使用廣義***歸一化(generalized divisive normalization,GDN)聯合非線性,其受到生物視覺系統中神經元模型的啟發,並已經證明在高斯化圖像密度方面是有效的。這種級聯變換之後是均勻標量量化(即,每個元素被舍入到最接近的整數),這有效地實現了原始圖像空間上的向量量化的參數形式。使用近似參數非線性逆變換從這些量化值中重建壓縮圖像。
對於沿速率和失真曲線的任何期望點,使用隨機梯度下降來聯合優化分析和合成變換的參數。為了在存在量化(幾乎在任何地方產生零梯度)的情況下實現這一點,作者使用基於概率模型的連續馳豫的代理(proxy)損失函數,用加性均勻雜訊代替量化步長。寬鬆的速率和失真優化問題與用於擬合生成圖像模型的問題有些相似,特別是變分自動編碼器,但在作者為了確保速率和失真優化問題沿速率和失真曲線近似離散問題而施加的限制條件方面不同。最後,作者不是報告差分或離散熵估計,而是使 用實際碼率實現熵編碼和報告性能,從而證明了該技術方案作為完全失真壓縮方法的可行性。
在J.Balle中,描述了一種基於變分自動編碼器的圖像壓縮的端到端可訓練模型。該模型包含了超先驗,以有效地捕獲潛在表示中的空間依賴關係。這種超先驗涉及也發送到解碼側的邊資訊,這是一個幾乎所有現代圖像轉碼器都通用的概念,但在使用ANN的圖像壓縮中基本上沒有被探索。與現有的自動編碼器壓縮方法不同,這種模型與底層自動編碼器聯合訓練複雜的先驗。作者證明,在使用常見的MS-SSIM指標來測量視覺品質時,這個模型會產生最先進的圖像壓縮,並在使用基於平方誤差(PSNR)的更傳統度量進行評估時,產生的速率和失真性能超過了已發表的基於ANN的方法。
圖3示出了包括超先驗模型的網路架構。左側(ga、gs)示出了圖像自動編碼器架構,右側(ha、hs)對應於實現超先驗的自動編碼器。分解先驗模型使用相同的架構進行分析和合成變換ga和gs。Q表示量化,AE、AD分別表示算術編碼器和算術解碼器。編碼器將輸入圖像x輸入到ga,產生具有空間變化標準差的回應y(潛在表示)。編碼ga包括具有下採樣的多個卷積層和作為啟動函數的廣義***歸一化(generalized divisive normalization,GDN)。
將回應輸入到ha中,將標準差分佈匯總到z中,然後將z作為邊信息量化、壓縮和發送。然後,編碼器使用量化向量
Figure 110138702-A0305-02-0032-35
來 估計標準差的空間分佈
Figure 110138702-A0305-02-0033-36
,空間分佈用於獲取算術編碼(arithmetic coding,AE)的概率值(或頻率值),並使用量化向量來壓縮和發送量化圖像表示
Figure 110138702-A0305-02-0033-37
(或潛在表示)。解碼器首先從壓縮信號中恢復
Figure 110138702-A0305-02-0033-38
。然後,解碼器使用hs來獲取
Figure 110138702-A0305-02-0033-39
,這樣可以提供正確的概率估計,以同樣成功恢復
Figure 110138702-A0305-02-0033-40
。接著,解碼器將
Figure 110138702-A0305-02-0033-41
輸入到gs中,得到重建圖像。
在其它文獻中,基於超先驗的概率建模透過引入基於PixelCNN++架構等的自回歸模型得到進一步改進,使得可以利用潛在空間的已解碼符號的上下文,以更好地估計待解碼的其它符號的概率,例如,L.Zhou、Zh.Sun、X.Wu、J.Wu在2019年CVPR上發表的“注意力機制下的端到端優化圖像壓縮(End-to-end Optimized Image Compression with Attention Mechanism)”(下文稱為“Zhou”)中的圖2示出了這一點。
用於機器任務的雲方案
機器影片編碼(Video Coding for Machine,VCM)是當今常見的另一個電腦科學方向。這種方法背後的主要思想是發送圖像或影片資訊的經解碼表示,這些表示的目的是透過電腦視覺(computer vision,CV)演算法進一步處理,例如物件分割、檢測和識別。與針對人類感知的傳統圖像和影片編碼相比,品質特徵是物件檢測精度等電腦視覺任務的性能,而不是重建品質。圖4說明了這一點。
機器影片編碼也稱為協同智慧,它是一個相對較新的範式,用於在移動雲基礎設施中高效部署深度神經網路。透過在移 動設備和雲之間劃分網路,可以分配計算工作負載,從而將系統的整體能量和/或延遲降至最低。一般而言,協同智慧是一種範式,其中神經網路的處理分佈在兩個或兩個以上不同的計算節點之間,例如在設備之間,但一般是在任何功能上定義的節點之間。這裡,術語“節點”並不是指上述神經網路節點。相反,這裡的(計算)節點指的是(物理上或至少邏輯上)分開的設備/模組,它們實現神經網路的各個部分。這些設備可以是不同的伺服器、不同的終端使用者設備、伺服器和/或使用者設備和/或雲和/或處理器的混合物,等等。換句話說,可以認為計算節點是屬於同一神經網路且相互通信以在神經網路內/為神經網路傳輸經解碼資料的節點。例如,為了能夠執行複雜的計算,一個或多個層可以在第一設備上執行,一個或多個層可以在另一個設備上執行。但是,分佈也可以更精細,並且單個層可以在多個設備上執行。在本發明中,術語“多個”是指兩個或兩個以上。在一些現有技術方案中,神經網路功能的一部分在設備(使用者設備或邊緣設備等)或多個這樣的設備中執行,然後將輸出(特徵圖)發送到雲。雲是位於設備外部的處理系統或計算系統的集合,該設備運行神經網路的一部分。協同智慧的概念也擴展到了模型訓練。在這種情況下,資料雙向流動:在訓練的反向傳播期間從雲流向移動設備,在訓練的前向傳播和推理期間從移動設備流向雲。
一些文獻透過編碼深度特徵,然後從深度特徵中重建輸入圖像,提出了語義圖像壓縮。示出了基於均勻量化的壓縮,然 後示出了H.264中的基於上下文的自我調整算術編碼(context-based adaptive arithmetic coding,CABAC)。在一些場景中,從移動設備向雲發送隱藏層的輸出(深度特徵圖),而不是向雲發送壓縮後的自然圖像資料,然後使用重建圖像執行物件檢測,可能更高效。特徵圖的高效壓縮有利於人類感知和機器視覺的圖像和視訊壓縮和重建。熵編碼方法,例如算術編碼,是深度特徵(即特徵圖)壓縮的一種流行方法。
現今,影片內容占互聯網流量的80%以上,這一比例預計還會進一步增加。因此,建立一個高效的視訊壓縮系統並在給定的頻寬預算下生成高品質的幀是至關重要的。另外,大多數影片相關的電腦視覺任務(例如影片物件檢測或影片物件跟蹤)對壓縮影片的品質很敏感,而高效的視訊壓縮可能會為其它電腦視覺任務帶來好處。同時,視訊壓縮技術也有助於動作識別和模型壓縮。但是,在過去的幾十年裡,視訊壓縮演算法依賴於手工模組,例如基於方塊的運動估計和離散餘弦變換(Discrete Cosine Transform,DCT),來說減少影片序列中的冗餘,如上所述。雖然每個模組都設計得很好,但整個壓縮系統並沒有端到端優化。希望透過聯合優化整個壓縮系統來進一步提高視訊壓縮性能。
端到端圖像或視訊壓縮
最近,用於圖像壓縮的基於深度神經網路(deep neural network,DNN)的自動編碼器已經獲得了與傳統圖像轉碼器(例如JPEG、JPEG2000或BPG)相當甚至更好的性能。一種可能的 解釋是,基於DNN的圖像壓縮方法可以利用傳統方法中沒有使用的大規模端到端訓練和高度非線性變換。但是,直接應用這些技術來構建視訊壓縮的端到端學習系統並不簡單。首先,學習如何生成和壓縮為視訊壓縮定制的運動資訊仍然是一個未解決的問題。視訊壓縮方法很大程度上依賴於運動資訊來減少影片序列中的時間冗餘。一個簡單的技術方案是使用基於學習的光流(optical flow)來表示運動資訊。但是,當前基於學習的光流方法的目的是盡可能準確地生成流場(flow field)。對於特定的影片任務,精確的光流通常不是最佳的。另外,與傳統壓縮系統中的運動資訊相比,光流的資料量顯著增加,而且直接應用現有的壓縮方法來壓縮光流值會大大增加存儲運動資訊所需的比特數。其次,目前還不清楚如何透過最小化殘差資訊和運動資訊的基於速率失真的目標來構建基於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)會議會刊的第11006至11015頁上發表了“DVC:端到端深度視訊壓縮框架(DVC:An End-to-end Deep Video Compression Framework)”, 作者在其中提出了聯合學習運動估計、運動補償和殘差編碼的端到端深度視訊壓縮(deep video compression,DVC)模型。
圖5示出了這種編碼器。具體地,圖5示出了端到端可訓練視訊壓縮框架的總結構。為了壓縮運動資訊,指定了CNN將光流變換為適合更好壓縮的對應表示。具體地,使用自動編碼器型網路來壓縮光流。運動向量(motion vector,MV)壓縮網路如圖6所示。網路架構與圖3中的ga/gs有些相似。具體地,將光流輸入到包括GDN和IGDN在內的一系列卷積運算和非線性變換中。卷積(反卷積)的輸出通道數量為128,但最後一個反卷積層除外,其輸出通道數量等於2。假設光流的大小為M×N×2,MV編碼器會生成大小為M/16×N/16×128的運動表示。然後,對運動表示進行量化、熵編碼並發送到碼流。MV解碼器接收量化表示並使用MV編碼器重建運動資訊。
圖7示出了運動補償部分的結構。這裡,使用先前重建的幀xt-1和重建運動資訊,扭曲單元生成扭曲幀(通常借助於插值濾波器,例如雙線性插值濾波器)。然後,一個具有三個輸入的單獨CNN生成預測圖像。運動補償CNN的架構也如圖7所示。
原始幀與預測幀之間的殘差資訊由殘差編碼器網路進行編碼。高度非線性神經網路用於將殘差變換為對應的潛在表示。與傳統視訊壓縮系統中的離散餘弦變換相比,該方法可以更好地利用非線性變換的作用並獲得更高的壓縮效率。
從上面的概述可以看出,考慮到影片框架的不同部分, 包括運動估計、運動補償和殘差編碼,基於CNN的架構可以應用於圖像和視訊壓縮。熵編碼是用於資料壓縮的常見方法,業界廣泛採用,也適用於人類感知或電腦視覺任務的特徵圖壓縮。
提高解碼效率
通道資訊對於最終任務並不同等重要。據觀察,某個通道的資訊可以會被丟棄,例如不發送到解碼器,但不會對最終圖像、影片重建品質或物件檢測準確度造成重大損害。同時,由於丟棄不重要資訊而節省的比特量可以改善整體的速率和失真平衡。
此外,編碼和解碼延遲是壓縮系統實際實現的重要參數之一。由於人工神經網路的性質,一層內的操作可以並存執行,整體網路延遲由後面的連接層數決定,通常並不高。利用現代圖形處理單元(graphic processing unit,GPU)或網路處理單元(network processing unit,NPU),它們可以支援大規模並行性,能夠實現可接受的執行時間。但是,算術編碼或範圍編碼等熵編碼方法意味著對範圍區間計算、歸一化和概率區間匹配進行順序操作。在不影響壓縮效率的情況下,這些操作很難並行處理。因此,熵編碼可能成為一個瓶頸,限制了整體系統延遲。希望減少透過熵編碼的資料量。
本發明的一些實施例可以提高壓縮效率。此外,還可以加快不發送基於CNN的圖像和影片轉碼器的潛在空間中的一些特徵圖資訊。基於這些方法,可以增加熵編碼和解碼過程的速度, 這對於實際實現可能具有重要性。
具體地,可以不發送一些特徵圖區域或通道的資訊。具體地,可以跳過這些特徵圖資訊,因為缺少這些資料不會導致重建品質明顯下降。因此,可以提高壓縮效率。此外,透過熵編碼和解碼的資料量可以減少,這可以進一步減少編碼和解碼時間並降低整體端到端壓縮系統延遲。
根據一個實施例,提供了一種基於碼流的經神經網路處理的特徵圖進行解碼的方法。所述方法如圖8所示。所述方法包括步驟S110:從所述碼流中獲取所述特徵圖中的區域的區域存在指示符(region presence indicator)。所述獲取步驟S110之後是對所述區域進行解碼的解碼步驟S150。所述解碼步驟S150包括步驟S130:當所述區域存在指示符具有第一值時,從所述碼流中解析資料以對所述區域進行解碼。所述區域存在指示符是否具有第一值可以在判斷步驟S120中確定。另一方面,當(例如在步驟S120中)所述區域存在指示符具有所述第二值時,所述解碼S150可以包括步驟S140:不從所述碼流中解析資料以對所述區域進行解碼。
所述獲取S110區域存在指示符可以對應於從所述碼流中解析所述存在指示符。換句話說,所述碼流可以包括所述指示符。所述獲取還可以包括熵解碼器等對所述存在指示符進行解碼。所述區域存在指示符可以是標誌,所述標誌可以從所述第一值和所述第二值中取一個值。例如,所述標誌可以透過一個比特 進行解碼。但是,本發明並不限於此。一般而言,所述獲取步驟S110可以對應於根據從所述碼流中解析的其它參數的值進行的間接獲取。
所述解碼S150可以是指所述碼流的廣義處理,可以包括以下一種或多種:解析資訊、熵解碼資訊、不解析資訊(不執行資訊解析)、根據一個或多個已經解析的資訊元素推導用於進一步解析的資訊,等等。
根據一個實施例,提供了一種經神經網路處理的特徵圖編碼到碼流中的方法。所述方法如圖9所示,並且可以提供碼流部分,所述碼流部分可以很容易透過參考圖8描述的解碼方法進行解碼。所述方法包括步驟S160:獲取所述特徵圖中的區域。所述特徵圖中的所述區域可以從由所述神經網路的一個或多個層生成的特徵圖中獲取。所述特徵圖可以存儲在記憶體或其它記憶體中。此外,所述方法包括步驟S170:根據在所述特徵圖中獲取到的所述區域,決定是否在所述碼流中指示所述特徵圖中的所述區域。因此,如果在步驟S170中決定在所述碼流中指示所述區域,則所述碼流應包括具有第一值的區域存在指示符(region presence indicator)和所述特徵圖中的所述區域。如果在步驟S170中決定在所述碼流中不指示所述區域,則所述碼流應包括具有第二值的所述區域存在指示符,但不包括所述特徵圖中的所述區域。可以認為步驟S170至S190是生成碼流(也稱為編碼)的通用步驟S165的一部分。
需要說明的是,術語“包括具有特定值的區域存在指示符”在這裡實際上指的是以二進位形式和可能的熵編碼形式等將所述特定值包括到所述碼流中。依照慣例,例如標準定義的語義,將所述區域存在指示符的含義賦予所述特定值。
處理缺少的特徵圖區域
根據一種示例性實現方式,當所述區域存在指示符具有所述第二值時,所述對所述區域進行解碼更包括根據預定規則,設置所述區域。例如,所述預定的規則指定將所述區域的特徵設置為常數。但是,需要說明的是,本發明並不限於所述預定規則是指定所述特徵要被設置為常數的規則。相反,所述規則可以定義所述特徵的確定/計算方式,例如根據先前從所述碼流中解碼的特徵或資訊。
圖10示出了對碼流進行解碼的方法。在本示例中,特徵圖中的區域對應於CNN通道。具體地,圖像或影片資訊解碼方法包括從碼流中解析語法元素,其中,語法元素表示碼流中是否存在對應的CNN通道資訊。CNN通道資訊可以包括對應通道的特徵圖或與特定通道相關的其它資訊。在圖10所示的示例性實現方式中,解碼器在生成模型(或重建網路)的輸入通道上反覆運算S205。在每次反覆運算S205中,從碼流中讀取S210通道存在標誌(對應於上述區域存在標誌)。如果通道存在標誌為真(true),則從碼流中讀取S235對應的通道資訊。資料可以進一步由熵解碼器(例如算術解碼器)解碼S240。如果通道存在標誌為假(false), 則不讀取通道資訊;根據預定規則,例如透過將所有通道值設置為常數,初始化S230對應的通道資訊。例如,所述常數為0。然後,對每個通道重複步驟S210至S240。之後,在步驟S244中,將重建通道輸入到神經網路中(例如,輸入到神經網路的合適層中,其中,該層可以是神經網路的隱藏層或輸出層之一)。然後,神經網路進一步處理所述輸入通道資訊。
下表提供了碼流語法的一種示例性實現方式:
Figure 110138702-A0305-02-0042-4
變數channels_num限定在其上反覆運算的通道的數量(參見圖10中的步驟S205)。變數latent_space_height和 latent_space_width可以根據關於圖像寬度和高度的高層語法資訊和生成模型(例如重建網路)的架構推導出。產生相同邏輯的其它實現方式也是可能的。例如,channel_presence_flag的條件檢查可以在反覆運算潛在空間寬度和高度的迴圈之外執行。在輸入通道中,值y_cap[i]可以在單獨的迴圈中初始化,而不是在通道資料讀取迴圈中。
可選地,通道存在指示符可以具有相反的解釋,例如channel_skip_flag(或通道繞過標誌),表示應該不執行對應通道資訊的讀取。換句話說,通道(或一般稱為區域)指示可以是存在指示或不存在指示。這種指示可以取第一值和第二值中的一個值。這些值中的一個值表示存在,另一個值表示通道(特徵圖)資料不存在。還需要說明的是,在圖10中,指示通道指示符,表示整個通道存在/不存在。但是,本發明並不限於此,指示符可以針對特徵圖的一部分(區域)進行指示,也可以針對以某種預定義的方式分組的通道組進行指示。
本實施例的技術優點之一可以是透過不發送對圖像或影片重建不必要或不重要的資訊或次要的資訊來減少信令開銷。另一個技術優勢是透過熵解碼不處理不必要或不重要的資訊來加快熵解碼過程,熵解碼過程已知是圖像和視訊壓縮系統的瓶頸。
子過程decode_latent_value()(對應於語法部分的解析過程)可以包括熵解碼。channel_presence_flag可以透過使用上下文自我調整熵編碼(表示為ae(v))或不使用上下文自我調整熵編碼 (表示為u(1))解碼為不帶正負號的整數的一個位元(bin)標誌。使用上下文自我調整熵編碼可以減少由channel_presence_flag帶來的信令開銷,並可以進一步提高壓縮效率。
在上述語法中,如果channel_presence_flag表示通道資料未指示,則將輸入通道值設置為常數,這裡為0(y_cap[i][y][x]=0)。但是,本發明並不限於常數為值0。常數可以取不同的值,或者甚至可以由編碼器等預設,然後在碼流中指示。換句話說,在一些實施例中,上述方法更包括從碼流中解碼所述常數的步驟。
對應於參考圖10描述的解碼方法,可以提供圖11所示的編碼方法。該編碼方法可以生成遵循上文論述的語法的碼流。相應地,圖像或視訊轉碼器可以包括用於決定是否向接收側發送或不發送對應通道資訊的單元。對於編碼模型的每個輸出通道(假設是生成模型的輸入通道),編碼器絕對對應通道對圖像或影片重建或機器視覺任務的重要性。
圖11的這種編碼方法包括所有通道上的迴圈。在每個步驟S208中,獲取一個通道,並在步驟S250中決定是否存在該通道。編碼器可以基於一些先驗知識或度量做出決定,從而評估通道重要性。
例如,潛在表示的對應通道的特徵圖的絕對值之和可以用作在編碼器側做出決定的度量:
Figure 110138702-A0305-02-0044-5
其中,ChannelPresenceFlag i 是表示編碼器決定碼流中存在第i個CNN通道的標誌,w、h分別是第i個通道的潛在表示
Figure 110138702-A0305-02-0045-42
(x,y)的寬度和高度,threshold是某個預定義值,例如0。在另一種實現方式中,絕對值之和可以根據通道中的元素數量進行歸一化:
Figure 110138702-A0305-02-0045-6
在另一種可能的實現方式中,可以使用平方值之和,而不使用絕對值之和。另一個可能的標準可以是潛在表示的對應通道的特徵圖的方差定義為通道中的每個特徵圖元素與通道中的特徵圖元素的平均值的平方距離之和除以通道中的特徵圖元素的數量:
Figure 110138702-A0305-02-0045-7
其中,μ是通道中的特徵圖元素的平均值,threshold_var是閾值。本發明並不限於任何特定的決策演算法或度量。其它可選實現方式也是可能的。
在決策步驟S250之後,將確定的通道存在標誌寫入S255碼流中。然後,根據通道存在標誌的值,在步驟S260中決定將通道資料(特徵圖資訊的區域)寫入或不寫入碼流中。具體地,如果通道存在標誌為真,則在步驟270中,將通道資料寫入到碼流中,這個步驟還可以包括算術編碼器等熵編碼器對通道資料進行編碼S280。另一方面,如果通道存在標誌為假,則在步驟270中,將通道資料不寫入到碼流中,即不寫入(或不執行寫入)。
圖12示出了編碼器側方法的一種示例性實現方式,該方法用於根據通道對重建圖像品質的相對重要性,對碼流中是否存在特定通道做出決定。編碼方法的步驟針對每個通道執行。在圖12中,通道上的迴圈由步驟S410示出,設置對其執行以下步驟的通道。
在第一步驟S420中,確定每個通道的重要性度量。例如,該度量可以透過計算通道中的所有特徵圖元素的絕對值之和來確定,或確定為通道中的特徵圖元素的方差。特徵圖的值分佈可以是特徵圖對重建資料的影響的指示。執行排序的另一個可能度量可以是發送通道資訊所需的比特量(換句話說,發送特定通道的特徵圖資訊所需的比特量)的估計,該比特量對應於速率。執行排序的另一個可能度量可以是特定通道對重建圖像品質的貢獻,例如以dB或其它品質度量(像多尺度結構相似性指標度量(multi-scale structural similarity index measure,MS-SSIM))評估,還可以是任何其它目標或感知加權/設計的度量。上述度量和其它度量可以組合在一起。可能有其它適用於機器視覺任務等的性能標準,例如物件檢測準確度,透過比較除特定通道重建性能之外的全通道重建性能等方式評估。換句話說,通道資料對機器視覺任務品質/準確度的貢獻的一些估計值可以用作排序標準。
在下一步驟中,根據計算到的重要性度量對所有通道進行排序或排名,例如,從最重要(索引=0或索引=1,取決於計數索引的開始)到最不重要。
在以下步驟(S430至S470)中,將每個通道對碼流的貢獻(發送通道特徵圖值所需的比特量)的估計和期望目的碼率作為輸入參數,編碼器決定將特定通道資訊放入到碼流中。具體地,在步驟S430中,將所得碼流部分的比特數numOfBits初始化為零。此外,將每個通道的通道存在標誌初始化為0,表示不將通道包括到碼流中。然後,在步驟S440中啟動通道上的迴圈。迴圈按照從最重要到最不重要的順序掃描通道。對於迴圈中的每個通道,在步驟S450中,獲取對通道資料進行解碼所需的比特數channelNumOfBits,並將總比特數numOfBits遞增對通道資料進行解碼所需的比特數channelNumOfBits:numOfBits+=channelNumOfBits(表示numOfBits=numOfBits+channelNumOfBits)。
在迴圈的步驟S460中,將總比特數numOfBits與所需比特數requiredNumOfBits進行比較。requiredNumOfBits是一個參數,可以根據期望速率設置。如果比較結果numOfBits>=requiredNumOfBits為真,則表示總比特數達到或超過所需比特數,在這種情況下,方法結束。這表示,對於當前通道i,通道存在標誌如在步驟S430中初始化那樣保持為0,不將通道資料包括到碼流中。如果在步驟S460中,比較結果numOfBits>=requiredNumOfBits為假,則表示當通道i的資料被添加到碼流中時,總比特數還沒有達到所需比特數。因此,在步驟S470中,將當前通道i的通道存在標誌設置為1,將通道資料包括到碼流中。
總之,編碼器從最重要通道開始計算通道傳輸所需的增量比特和,並將channel_presence_flag[i]設置為真。一旦總比特數達到所需比特數,則決定不發送剩餘的最不重要通道,並且將這些通道的channel_presence_flag[i]設置為假。
或者,期望重建圖像品質等級(例如,以dB或像MS-SSIM等其它度量評估)可以作為確定要發送的通道數量的標準。從最重要通道開始,編碼器透過最重要通道的貢獻來評估重建品質,一旦達到期望品質,則決定不需要其餘通道,並將其對應的channel_presence_flag[i]設置為假。換句話說,反覆運算S440至S470可以透過累積隨每個通道i增加的品質計數器,並在透過增加當前通道i達到或超過期望品質等級時透過停止反覆運算來執行。本領域技術人員很清楚,碼率和品質只是示例性的,可以使用兩者的組合,或者可以添加或使用其它標準,例如複雜度。
參考圖12描述的方法只是示例性的。決定發送哪些通道的另一種替代方法是使用速率失真優化(Rate-Distortion Optimization,RDO)流程,使成本值降至最低,成本值計算為:Cost=Distortion+Lambda*Rate,或Cost=Rate+Beta*Distortion,其中,Lambda和Beta是約束最優化方法(constrained optimization method)的拉格朗日乘子(Lagrange multiplier)。上述技術方案的技術優勢之一是能夠匹配期望重建品質的期望目的碼率,這是壓縮系統實際使用的一個重要方面。
在參考圖10和圖11描述的實施例中,特徵圖中的區域就是整個特徵圖。但是,如下文所示,本發明並不限於這種資料細微性。
邊資訊指示
如參考圖3所述,Balle中提出的超先驗可以用於生成邊資訊,以與輸入信號的潛在表示一起發送,從而得到算術解碼器所需的概率(或頻率)估計值,這使得解碼系統可以捕獲給定輸入信號特有的統計特性。Zhou進一步證明,可能的估計可以透過結合基於潛在表示的已解碼符號的上下文得到進一步改進。從圖3可以看出,邊資訊z基於卷積層的輸出。一般可以認為特徵圖本身表示邊資訊。
根據本發明一個實施例,提供了一種從碼流中解碼經神經網路處理的特徵圖的方法。所述方法如圖13所示,包括步驟S310:從所述碼流中獲取邊資訊指示符,其中,所述邊資訊指示符表示所述碼流中是否存在邊資訊。所述方法更包括對所述特徵圖進行解碼S350。所述對所述特徵圖解碼S350更包括步驟S320:判斷所述邊資訊指示符的值並根據所述值進行操作。具體地,當所述邊資訊指示符具有第五值時,所述方法包括步驟S330:從所述碼流中解析所述邊資訊以對所述特徵圖進行解碼。否則,當所述邊資訊指示符具有第六值時,所述方法更包括不從所述碼流中解析S340所述邊資訊以對所述特徵圖進行解碼。所述第五值表示所述碼流包括所述邊資訊,而所述第六值表示所述碼流不包括所 述特徵圖的某一部分(例如區域)或整個特徵圖等的邊資訊。
由於超先驗模型可能包括基於已解碼符號的自回歸上下文建模,因此可能不需要發送邊資訊,而且超先驗網路可以只根據上下文對分佈進行高效建模。同時,上下文建模的效率在很大程度上取決於輸入圖像或影片內容的統計特性。有些內容可以很好預測,但有些則不然。為了靈活起見,選擇發送和使用邊資訊是有好處的,可以由編碼器根據輸入內容的統計特性確定。這將進一步增加壓縮系統適應輸入內容屬性的可能性。
對應於圖13的解碼器過程,碼流的實施例可以包括語法元素side_information_available,其控制碼流中是否存在邊資訊(z_cap)。如果邊資訊不可用(例如,編碼器決定不需要獲取算術編碼的符號概率),則解碼器不讀取邊資訊的值,並在將
Figure 110138702-A0305-02-0050-43
發送到超先驗的生成部分(gs)之前使用0等一些值初始化
Figure 110138702-A0305-02-0050-44
。這可以進一步優化指示。下麵示出了示例性碼流。
Figure 110138702-A0305-02-0050-8
Figure 110138702-A0305-02-0051-10
對應於解碼方法,根據一個實施例,提供了一種經神經網路處理的特徵圖編碼到碼流中的方法。所述方法如圖14所示,可以包括步驟S360:獲取特徵圖(或特徵圖中的至少一個區域)。該方法更包括編碼S365的步驟,可以包括步驟S370,決定是否在碼流中指示關於特徵圖的邊資訊。如果決定結果為是,則該方法還可以包括將邊資訊指示符***到S380碼流中,其中,邊資訊指示符指示第三值(例如,對應於上述第五值,這樣編碼器和解碼器可以相互理解或可以是同一系統的一部分)和邊資訊。如果決定結果為否,則該方法還可以包括將邊資訊指示符***到S390碼流中,其中,邊資訊指示符指示第四值(例如,對應於上述第六值,這樣編碼器和解碼器可以相互理解或可以是同一系統的一部分)但不包括邊資訊。邊資訊可以對應於特徵圖中的區域,也可以對應於整個特徵圖。
需要說明的是,邊資訊可以對應於參考圖3的自動編碼器描述的邊資訊。例如,解碼方法還可以包括熵解碼,其中,熵 解碼基於所述神經網路處理的經解碼特徵圖。相應地,編碼方法還可以包括熵編碼,其中,熵編碼基於所述神經網路處理的經編碼特徵圖。具體地,特徵圖可以對應於圖3所示的超先驗ha/hs中的特徵圖。基於特徵圖的邊資訊可以對應於匯總到z中的標準差的分佈。z可以作為所述邊信息量化,進一步壓縮(例如熵編碼)和發送。編碼器(以及解碼器)使用量化向量
Figure 110138702-A0305-02-0052-45
來估計
Figure 110138702-A0305-02-0052-46
,即標準差的空間分佈,標準差實際上用於獲取算術編碼(或另一種熵編碼)的概率值(或頻率值、出現次數),並使用量化向量對量化圖像表示
Figure 110138702-A0305-02-0052-47
(或潛在表示)進行編碼。解碼器首先從壓縮信號中恢復
Figure 110138702-A0305-02-0052-48
,並相應地對潛在表示進行解碼。如上所述,分佈建模網路可以透過基於潛在表示的已解碼符號的上下文建模進一步增強。在一些情況下,可能不需要發送z,並且超先驗網路(hs)的生成部分的輸入可以使用根據規則確定的常數值初始化。
需要說明的是,圖3的編碼器和解碼器只是示例。一般而言,邊資訊可以攜帶其它資訊(不同於
Figure 110138702-A0305-02-0052-49
)。例如,熵編碼的概率模型可以直接指示,或者從在邊資訊中指示的其它參數中推導出。熵編碼不需要是算術編碼,它可以是另一種熵編碼或可變長度編碼,例如,可以是上下文自我調整的並由邊資訊進行控制。
在一種示例性實現方式中,邊資訊指示符具有第六值時,上述解碼方法包括將邊資訊設置為預定邊資訊值。例如,預定邊資訊值為0。解碼方法還可以包括從碼流中解碼預定邊資訊值的步驟。
相應地,在一種示例性實現方式中的編碼方法中,當邊資訊指示符具有第四值時,編碼方法可以應用於根據0等預定邊資訊值推導出的一個或多個編碼參數。編碼方法還可以包括將預定邊資訊值編碼到碼流中的步驟。換句話說,碼流可以攜帶預定邊資訊,例如特徵圖中的多個區域或整個特徵圖或多個特徵圖對應一個值。換句話說,預定值(可以是常數)相比于邊資訊指示符,指示頻率可以較小。但是,情況並非如此,在一些實施例中,預定值可以針對每個通道(特徵圖資訊的一部分)或每個通道區域等單獨指示。
本發明不限於指示預定值,預定值可以由標準指定,或者從碼流中包括的一些其它參數推導出。此外,可以指示表示規則的資訊,而不是指示預定值,預定資訊將根據該規則確定。
因此,上述方法也適用于優化邊資訊的潛在表示
Figure 110138702-A0305-02-0053-50
的傳輸。如上所述,邊信息
Figure 110138702-A0305-02-0053-51
(圖3)基於包括幾個輸出通道的卷積層的輸出。一般可以認為特徵圖本身表示邊資訊。因此,上述和圖10所示的方法也適用于優化邊資訊指示,並可以與邊資訊存在指示符相結合。
下面是示例性語法表,說明了如何組合這兩種方法。
Figure 110138702-A0305-02-0053-11
Figure 110138702-A0305-02-0054-12
用於解析碼流的方法可以包括從碼流中獲取邊資訊存在指示符(side_information_available)。該方法還可以包括:當邊資訊存在指示符具有第三值(例如,side_information_available為真)時,從碼流中解析邊資訊(z_cap);當邊資訊存在指示符具有第四值(例如,side_information_available為假)時,完全不從碼流中解析邊資訊。此外,在碼流中指示的邊資訊可以包括區域存在指示符(例如,上述語法中示出並參考圖8至圖11描述的side_information_available)和資訊(z_cap)中的至少一種,該資 訊正由神經網路處理以獲得在區域的熵解碼中使用的估計概率模型。根據區域存在指示符(side_infromation_channel_presence_flag)的值,特徵圖資訊(z_cap)可以包括在碼流中。
換句話說,在本示例中,類似於為潛在空間y_cap描述的方法應用于邊資訊z_cap,邊資訊也可以是包括通道的特徵圖。 z_cap透過decode_latent_value解碼。該方法可以使用與y_cap相同但不一定必須相同的過程進行解碼。
對應的編碼方法和解碼方法可以包括參考圖8至圖14描述的步驟及其組合。
此外,編碼器可以決定需要使用哪個常量值來初始化超先驗的潛在表示中的值。在這種情況下,值(side_information_init_value)在碼流中發送,如以下語法所示。
Figure 110138702-A0305-02-0055-13
Figure 110138702-A0305-02-0056-15
換句話說,在一些實施例中,邊資訊存在指示符具有第四值,上述方法包括在解碼器側將邊資訊設置為預定邊資訊值(如果邊資訊用於編碼中,也可以在編碼器側執行)。在上述示例性語法中,如果side_information_channel_presence_flag為假,則特徵圖值(z_cap)被設置為0(或被設置為在碼流中預定或發送的另一值,如語法元素side_information_init_value,在這種情況下,該語法元素需要在賦值之前提前解析)。但是,常數0只是示例性的。如上述實施例所論述,特徵圖資訊可以被設置為預定特徵圖資訊,其可以由標準預定義,在碼流中指示(例如,因為在這種情況下,上面示例中的語法元素side_information_init_value需要在賦值之前提前解析),或根據預定或指示規則推導出。
在一些實施例中,所述區域存在指示符為標誌,所述標 誌能夠只取所述第一值和所述第二值中的一個值。在一些實施例中,邊資訊存在指示符為標誌,該標誌能夠只取第三值和第四值中的一個值。在一些實施例中,邊資訊存在指示符為標誌,該標誌能夠只取第五值和第六值中的一個值。這些實施例可以透過只使用一個比特來實現高效指示。
不發送一些次要的深度特徵或特徵圖可以提高編碼和解碼的速率和複雜度方面的效率。不發送可以基於通道或通道的區域等。本發明並不限於不發送的任何特定細微性。
還應當理解的是,上述方法適用於任何要發送和從碼流中獲取的特徵圖,假設這些特徵圖被輸入到生成模型(或重建網路)。生成模型可以用於圖像重建、運動資訊重建、殘差息重建、獲取用於算術編碼(例如基於上述超先驗)的概率值(或頻率值)、物件檢測和識別或用於其它應用等。
排序順序
本發明的另一個實施例是根據通道的相對重要性對通道進行排序。在一些示例性實現方式中,在碼流中攜帶關於順序的資訊也是可能的,簡化指示,並支援碼率可控性功能。換句話說,在本實施例中,應用了通道重要性排序,而且排序順序透過在碼流中發送或者透過參考預定資訊,在編碼器和解碼器側都是已知的。
具體地,一種對特徵圖資訊(通道資料)進行解碼的方法可以包括獲取重要性順序的步驟。重要性順序表示特定層的多 個通道(特徵圖資訊的一部分)的重要性。這裡的術語“通道重要性”指的是通道對神經網路執行的任務的品質的重要性的度量。例如,如果任務是影片編碼,則重要性可以是測量經編碼影片的重建品質和/或最終速率的度量(measure/metric)。如果任務是機器視覺,例如物件識別,則重要性可以測量通道對識別準確度等的貢獻。獲取重要性順序通常可以由任何模組執行。例如,重要性順序可以在碼流中顯式指示,還可以在標準或其它慣例中預定義,還可以根據其它指示的參數等隱式推導出。
該方法還可以包括獲取最後重要通道指示符,並根據最後重要通道指示獲取區域存在指示符。最後重要通道指示符表示特定層或網路部分或網路的通道中的最後重要通道。術語“最後”應當在重要性順序的上下文中理解。根據一些實施例,這種最後重要通道指示也可以被解釋為最不重要通道指示符。最後重要通道是按照通道的重要性進行排序的通道中的通道,緊跟其後的是重要性較低的通道,這些通道被認為對神經網路任務不重要。例如,如果通道1至M按照其重要性(從最重要到最不重要)從大到小進行排序,則如果通道k+1至M被認為對神經網路任務不重要(important/significant),通道k是最後重要通道。此時,通道k+1至M不需要包括到碼流中等。在這種情況下,最後重要通道指示符可以用於表示碼流中不存在通道k+1至M,這樣可以不執行這些通道的編碼/解碼。然後,在碼流中發送與通道1至k相關的資料,以便執行這些通道的編碼/解碼。
在一種示例性實現方式中,排序順序在設計階段是預定義的,而且在解碼器側(以及編碼器側)是已知的,所以不需要發送。在編碼器側將最後重要係數的索引***到碼流中。圖15示出了解碼器側的示例性方法。在步驟S510中,在解碼器側從碼流中獲取最後重要係數的索引。最後重要通道索引可以直接在碼流中指示,即語法元素last_significant_channel_idx可以包括在碼流中(可能是經過熵編碼的)。下面論述可選方法和間接指示。
在步驟S520中,執行神經網路層或多層的所有通道上的迴圈。當前通道是當前反覆運算i中的通道,即第i個通道。然後,對於每個第i個通道,解碼器透過比較S530索引i與最後重要通道索引,確定channel_presence_flag[i]。如果i大於最後重要通道索引,則在步驟S540中,將channel_presence_flag[i]設置為假(FALSE)。否則,在步驟S550中,將channel_presence_flag[i]設置為真(TRUE)。需要說明的是,在本實施例中,關於最後重要通道的指示,通道存在標誌不是碼流中實際包括的標誌。相反,在這種情況下,通道存在標誌僅僅是內部變數,其從指示的最後重要通道索引中推導出,如上文在步驟S520至S550中所示。
下面提供了說明碼流生成和解析過程的對應示例性語法表:
Figure 110138702-A0305-02-0059-16
Figure 110138702-A0305-02-0060-17
然後,在通道資訊(資料)解析階段,在步驟S560中,解碼器使用推導出的channel_presence_flag[i]來決定是在步驟S570中從碼流中解析通道資訊(如果channel_presence_flag[i]=真)還是在步驟S580中不執行解析(不解析)(如果channel_presence_flag[i]=假)。如上述實施例所述,不解析可以包括在步驟S580中使用預定義值(例如0)初始化通道資訊。圖15中示出通道存在標誌推導的流程圖是出於解釋目的,只表示一個示例。一般而言,步驟S530可以直接決定是繼續步驟S570還是步驟S580,不需要通道存在標誌的中間推導。換句話說,通道 存在標誌只是隱式推導出的,如果有利於解析或語義解釋過程的其它部分進一步使用,則可以根據實現方式進行存儲。這也適用於上述語法。
在本示例中,解碼是透過從碼流中解碼在碼流中按照從最重要通道到最後重要通道的重要性順序進行排序的通道。通道資訊(資料)可以進行熵編碼,在這種情況下,上述方法可以包括對通道資料進行熵解碼的步驟S590。在收集所有通道之後,在步驟S595中,將通道輸入到神經網路的對應層。
然而,本發明並不限於重要性順序在編碼器和解碼器側推導出或已知的情況。根據一種示例性實現方式,獲取重要性順序包括從碼流中解碼重要性順序的指示。
具體地,在一種示例性實現方式中,解碼器透過解析對應的語法元素從碼流中獲取重要性順序。重要性順序可以建立每個重要性索引與通道設計索引之間的對應關係。這裡,在通道設計索引下理解通道在模型設計中進行索引所依據的索引。例如,通道設計順序可以是在神經網路處理期間根據與通道內容無關的預定義慣例對一層的通道進行編號的順序。
包括重要索引和對應的設計索引在內的重要性順序資訊的示例在圖18的(A)部分中給出。如圖所示,具有值0到191的設計索引表示通道,例如神經網路中特定層的通道。在如上所述根據預定重要性執行索引的特定情況下,索引到通道的分配稱為重要性順序。在圖18的(A)部分中,最不重要通道索引是190, 表示191個通道0到190的資料在碼流中指示,而索引為191的第192個通道的資料未指示。
類似地,圖17示出了一種方法,其中,在步驟S610中,從碼流中獲取最後重要通道指示符。然後,步驟S620表示通道上的環路。對於每個第i個通道,根據從碼流中獲取的重要性順序,解碼器確定S630設計索引d,並透過比較S635索引i與最後重要通道索引,確定對應的channel_presence_flag[d]。如果i大於最後重要通道索引,則在步驟S645中,將channel_presence_flag[d]設置為假(FALSE)。否則,在步驟S640中,將channel_presence_flag[d]設置為真(TRUE)。然後,在通道資訊解析階段,解碼器使用channel_presence_flag[d]來決定(例如在決策步驟S650中)是在步驟S670中從碼流中解析通道資訊(如果channel_presence_flag[d]=真)還是在步驟S660中使用預定義值(例如0)初始化通道資訊(如果channel_presence_flag[d]=假)。此外,在步驟S680中,算術解碼器等熵解碼器可以對通道資訊進一步解碼。最後,在步驟S690中,將所有通道的經解碼通道資訊提供給對應的神經網路層。
下面提供了示例性語法表,說明了用於在碼流中指示重要性順序的實施例的碼流生成和解析過程:
Figure 110138702-A0305-02-0062-18
Figure 110138702-A0305-02-0063-19
重要性順序獲取元素的示例性語法如下所示:
Figure 110138702-A0305-02-0063-20
從obtain_significance_order()的語法可以看出,重要性順序是透過在通道索引i上反覆運算並將設計通道索引 design_channel_idx分配給每個通道i來獲得的,每個通道i具有第i個最高重要性。語法也可以被視為設計通道索引的清單,這些索引按照對應通道的重要性進行排序。但是,需要說明的是,該語法只是示例性的,並不限制在編碼器和解碼器之間傳輸重要性順序的方式。
這種方法的技術優勢之一(指示最後重要通道指示符)是內容適應性。事實上,CNN的不同通道可以表示自然圖像或影片的不同特徵。為了通用性,在設計和訓練階段,CNN可以針對性地覆蓋更廣泛的可能輸入信號可變性。在一些實施例中,編碼器可以靈活地識別和優化用於指示的信息量,例如透過使用上述方法之一。需要說明的是,重要性順序資訊(指示符)可以透過不同的細微性級別發送,例如每個圖像發送一次,每個圖像部分發送一次,每個圖像序列或圖像組發送一次。細微性可以是預設的,也可以是由標準預定義的。可選地,編碼器可以靈活地根據內容屬性決定何時和多久指示重要性順序資訊。例如,一旦在序列中檢測到新場景,由於統計屬性發生更改,發送或更新重要性順序資訊可能是有益的。
在一些實施例中,在解碼器側,獲取重要性順序包括根據關於特徵圖已經從中生成的來源資料的先前已解碼的資訊推導重要性順序。具體地,解碼器可以使用關於在碼流中發送的經編碼內容的類型的補充資訊來確定重要性順序。例如,補充資訊可以區分專業生成的內容、使用者生成的內容、相機捕獲或電腦生 成的內容、影片遊戲等。可選地或另外,補充資訊可以區分不同的色度取樣速率類型,例如YUV420、YUV422或YUV444。可以另外或可選地使用描述資訊的其它源。
根據一種示例性實現方式,獲取重要性順序包括根據關於特徵圖已經從中生成的來源資料的類型的先前已解碼的資訊推導重要性順序。
在任一上述實施例和實現方式中,經編碼碼流可以透過提供某種碼率可控性支援的方式組織。這一點可以實現,例如,因為CNN通道資訊根據通道的相對重要性放置在碼流中,最重要的通道在前,最不重要的通道在後。如上所述,碼流中定義通道順序的相對通道重要性可以在設計階段定義,並且對編碼器和解碼器都是已知的,這樣就不需要在碼流中發送。可選地,重要性順序資訊可以在編碼過程中定義或調整,並可以包括在碼流中。後一種選擇可以更靈活,更適應內容的具體特徵,這樣能夠提高壓縮效率。
根據一種示例性實現方式,最後重要通道的指示對應於從碼流中解碼的品質指示符,該品質指示符表示壓縮特徵圖中的區域產生的經解碼特徵圖的品質。最後重要通道索引可以透過使用查閱資料表和在碼流中發送的品質指示符等方式間接指示。查閱資料表定義品質等級和用於重建具有期望品質等級的圖像的通道之間的對應關係。例如,圖16的部分(A)和(B)示出了這種查閱資料表,其中,每個品質等級與對應的最後重要通道的設計 索引相關聯。換句話說,對於輸入(期望)品質等級,查閱資料表提供最後重要通道索引。因此,如果碼流的品質等級在解碼器側被指示或可推導出,則最後重要通道指示不需要在碼流中指示。
需要說明的是,品質等級數量可能與模型中的通道數量不對應。例如,在圖16的(B)部分所示的給定示例中,品質等級數量為100(從0到99),通道數量為192(從0到191)。例如,在給定示例中,對於品質等級0,最後重要通道索引為1,對於品質等級98,最後重要通道索引為190。
圖18示出了查閱資料表的其它示例。如上所述,例如參考圖17,最後重要通道索引可以在碼流中指示直接指示,還可以透過使用查閱資料表和在碼流中發送的品質指示符等方式間接指示。查閱資料表定義品質等級和用於重建具有期望品質等級的圖像的通道之間的對應關係。同樣在圖18中,品質等級數量為100(從0到99),通道數量為192(從0到191)。在這種情況下,最後重要通道被定義為與指定(期望)品質等級相對應的重要性順序中的最後通道。例如,在給定示例中,對於品質等級0,最後重要通道索引為1,對於品質等級98,最後重要通道索引為190。在圖18的(B)部分中,示出了品質等級、重要性索引和設計索引之間的關係。可以看出,重要性索引可能與設計索引有很大差異。
一般而言,最後重要通道的指示對應於最後重要通道在重要性順序內的索引。換句話說,M個通道按照從1到M的重要性順序進行排序和索引。
例如,在包括圖像或影片編碼的應用中,在編碼器側(例如使用者或應用等)可以選擇品質設置。然後,這種品質設置(指示符)可以與圖16和圖18所示的最後重要通道的特定值相關聯。例如,重建後的期望圖像/影片品質越高,指示的通道就越多,即,最後重要通道索引(在按照重要性從大到小排序的所有通道的索引中)越高。需要說明的是,這些只是示例,通道排序可以按照從小到大的循序執行,甚至還可以選擇和指示從小到大/從大到小排序。
根據按照應用要求等定義的期望細微性級別,可控性級別可以在每個CNN通道上定義,也可以透過將幾個通道分組到一個可控性級別中定義,如圖19所示。這提供了額外的靈活性,以更好地適應應用特定的任務,從而可以透過丟棄與可控性級別對應的最不重要特徵圖通道,無需重新編碼即可降低碼率。
存在一部分特徵圖
區域存在指示符和/或邊資訊存在指示符的指示可以針對特徵圖中的區域執行。在一些實施例中,區域為特徵圖中的通道。由卷積層生成的特徵圖可以(至少部分)保留特徵圖值之間的空間關係,類似於輸入圖像樣本之間的空間關係。因此,特徵圖通道可以具有對重建品質具有不同重要性的區域,例如包括物件邊緣的平坦和非平坦區域。將特徵圖資訊劃分為多個單元可以捕獲這種區域結構,並利用它來提高壓縮效率,例如,透過不傳輸平坦區域特徵值。
根據一種示例性實現方式,包括通道特徵圖的通道資訊具有一個或多個指示符,表示碼流中是否存在通道的特定空間區域。換句話說,CNN區域是CNN通道的任意區域,碼流更包括用於任意區域定義的資訊。為了指定區域,可以使用已知的二維空間分割方法。例如,可以應用四叉樹分割或其它層次樹分割方法。四叉樹分割是一種分割方法,可以透過遞迴地將二維空間細分為四個象限或區域來分割二維空間。
例如,解碼方法(例如根據任一上述實施例和示例性實現方式所述的方法)還可以包括從碼流中解碼區域劃分資訊的步驟,其中,區域劃分資訊表示特徵圖中的區域劃分成多個單元;根據劃分資訊,解碼(從碼流中解析)或不解碼(不解析)單元存在指示,其中,單位存在指示表示特徵圖資訊是否要從碼流中解析以對區域中的一個單元進行解碼。
相應地,編碼方法判斷特徵圖中的區域是否需要進一步劃分成多個單元。如果是,則將表示特徵圖中的區域劃分成多個單元的劃分資訊***碼流中。否則,將表示特徵圖中的區域不劃分成多個單元的劃分資訊***到碼流中。需要說明的是,劃分資訊可以是可以進一步熵編碼的標誌。但是,本發明並不限於此,在應用劃分的情況下,劃分資訊還可以聯合指示劃分的參數。
如果應用了劃分,則編碼器可以進一步決定碼流中是否存在特定單元。相應地,提供了單元存在指示,表示碼流中是否包括與單元對應的特徵圖資訊。需要說明的是,可以認為單元存 在指示符是上述區域存在指示符的特殊情況,上文的描述也適用於本實施例。
在一些實施例中,區域的區域劃分資訊包括標誌,該標誌表示碼流是否包括單元資訊,該單元資訊指定區域中的多個單元的大小和/或位置。解碼方法包括從碼流中解碼區域中的每個單元的單元存在指示。根據單元的單元存在指示的值,解碼方法包括從碼流中解析或不解析單元的特徵圖資訊。
在一些實施例中,單元資訊指定區域的層次劃分,包括四叉樹、二叉樹、三叉樹或三角劃分中的至少一個。
四叉樹是一種樹資料結構,其中的每個內部節點正好有4個子節點。四叉樹最常用於透過遞迴地將二維空間細分為四個象限或區域來分割二維空間。與葉單元相關聯的資料因應用而異,但葉單元表示“空間資訊的單元”。在四叉樹分割方法中,細分的區域是正方形,每個區域可以進一步劃分成4個子區域。二叉樹和三叉樹方法還可以包括矩形單元,每個內部節點相應地具有2個或3個子節點。此外,可以透過使用遮罩或幾何規則來實現任意的劃分形狀,得到三角單元形狀,等等。這種資料結構名為分區樹(partition tree)。分割方法可以包括一個樹結構中的四叉樹、二叉樹和/或三叉樹等不同樹的組合。擁有不同的單元形狀和劃分規則可以更好地捕獲特徵圖資訊的空間結構,並以最高效的方式在碼流中指示。所有形式的分區樹都有一些共同的特徵:它們將空間分解為可適應的單元;每個單元(或桶)都有最大容量;當 達到最大容量時,桶進行劃分;樹目錄遵循分區樹的空間分解。
圖20為方塊(二維圖像或特徵圖中的單元)2000的四叉樹分割的示意圖。在層次劃分的每個步驟中,每個方塊可以但不是必須要被劃分成4個部分。在第一步驟中,將方塊2000劃分成4個相等的方塊,其中一個是2010。在第二步驟中,進一步分割4個方塊中的2個方塊(本例中為右側的2個方塊),每個方塊再次分割成4個同等大小的方塊,包括方塊2020。在第三步驟中,將8個方塊中的一個方塊進一步劃分成4個同等大小的方塊,包括方塊2030。
值得注意的是,其它分割方法,例如二叉樹和三叉樹分割,也可以用於實現任意區域定義和解析對應存在標誌的相同目的。下面示出了一個語法表,說明了語法的可能實現方式和對應的解析過程(以及對應的碼流生成過程)。對於每個CNN通道,首先調用函數parse_quad_tree_presence,該函數讀取有關任意區域定義(split_qt_flag)的資訊,填充有關區域大小(寬度、高度)和位置(x,y)的資訊,解析與通道的每個任意區域對應的presence_flag。
需要說明的是,產生相同結果的其它實現方式變體也是可能的。例如,解析區域存在標誌可以與解析迴圈的一次反覆運算中的通道資訊解析相結合,或者區域劃分資訊可以在所有通道的通道組中共用,以減少分割資訊的信令開銷。換句話說,區域劃分資訊可以指定(將)應用於特徵圖的多個(兩個或兩個以上 或全部)通道(區域)的劃分。
Figure 110138702-A0305-02-0071-21
在下面的語法表中,提供了解析區域劃分資訊的一種實現方式。以四叉樹方法為例。
Figure 110138702-A0305-02-0071-22
Figure 110138702-A0305-02-0072-23
以下語法表說明了在通道組中共用區域劃分資訊(channel_regions_info)的示例,這些通道也可以是特徵圖中的所有通道。
Figure 110138702-A0305-02-0072-24
Figure 110138702-A0305-02-0073-25
存在資訊可以分層組織。例如,如果某個通道(在一些上述示例和實施例中描述)的channel_presence_flag在碼流中為假(FALSE)(表示省略所有通道相關資訊),則不再對通道執行通道相關資訊的進一步解析。如果channel_presence_flag為真(TRUE),則解碼器解析與特定通道對應的區域存在資訊,然後從碼流中檢索可能與通道中的單元相關的區域通道資訊。下面示出的示例性語法說明了這一點。
Figure 110138702-A0305-02-0073-26
Figure 110138702-A0305-02-0074-27
可選地,或與上述實施例相結合,其它語法元素可以用於表示任意區域存在指示機制是否需要啟用。具體地,啟用標誌可以用於指示通道分割是否被啟用(允許)。
Figure 110138702-A0305-02-0074-28
Figure 110138702-A0305-02-0075-29
Figure 110138702-A0305-02-0076-30
如果碼流中存在通道i(由標誌channel_presence_flag[i]控制),則為通道i指示元素enable_channel_regions_flag[i],表示通道分割成單元是否被啟用。如果分割被啟用,則解碼器透過調用函數parse_quad_tree_presence(),從碼流中解析區域劃分資訊以及與劃分單元對應的存在標誌。一旦獲得了單元存在標誌(channel_regions_info[i][n].presence_flag),則解碼器在劃分單元中的特徵圖元素上反覆運算。如果單元存在標誌為真,則解碼器解析特徵圖值(decode_latent_value(i,x,y))。否則,特徵圖值y_cap[i][y][x]被設置為常數,例如給定示例中的0。
變換的應用
根據本實施例,表示通道資訊的(CNN)通道特徵圖在碼流中指示之前進行變換。碼流更包括定義最後重要變換通道特徵圖係數的位置的一個或多個語法元素。變換(transformation/transform)可以是任何合適的可以減少能量等的變換。在完成特徵圖資訊的正變換之後,編碼器從變換後的係數矩陣的左上角開始的最後一個非零係數執行Z形掃描(左上角是x=0,y=0的起點)。在另一種可能的實現方式中,編碼器可以決定丟棄一些非零係數,認為它們最不重要。最後重要係數的位置(x,y)在碼流中指示。
例如,在接收側,解碼器解析對應的一個或多個語法元 素,以定義對應通道的特徵圖的最後重要變換係數的位置。一旦定義了位置,則解碼器解析屬於從左上角(x=0,y=0)開始的區域的變換後特徵圖資訊,並在最後重要係數位置(x=last_significant_x,y=last_significant_y)上結束。變換後特徵圖資訊的其餘部分透過常數值(例如0)初始化。當對應CNN通道的變換後係數已知時,可以執行逆變換。基於此,可以獲得通道特徵地圖資料。這種過程可以對所有輸入通道完成。然後,特徵圖資訊可以輸入到表示生成模型的重建網路。
一般而言,圖21示出了從碼流中解碼區域的方法,其中,該區域是通道。具體地,在步驟S710中,在所有待處理的通道中提取通道。步驟S710對應於待處理的通道上的迴圈。上述解碼更包括從碼流中提取S720最後重要係數指示符。該指示符表示區域(這裡,示例性地是通道)的係數中的最後係數的位置。步驟S730對應於係數上的迴圈。具體地,該迴圈從最重要係數到最後重要係數遍歷每個係數。在該迴圈中,方法實現從碼流中(對於S710迴圈的區域)解碼(包括解析S750和可能的熵解碼S760)重要係數,根據預定規則將係數設置S740在最後重要係數指示符之後。在圖21的示例性流程圖中,預定規則是將重要性順序中在最後重要係數之後的係數設置為0。但是,如前面對術語“預定規則”所述,該規則還可以定義將係數設置為不同的值,或者可以定義待設置的值將從碼流中或透過特定方法(例如從先前使用的值中推導出)獲取,等等。一般而言,本實施例並不限於任何特 定的預定規則。
在方法步驟方面,在步驟S735中,測試(判斷、檢查)當前係數(由迴圈S730的步驟給出的係數)是重要係數還是不重要係數。這裡,重要係數是樣本位置低於並等於最後重要係數的係數。不重要係數是高於(超過)最後重要係數的係數。在本示例中,假設重要性順序與變換後的樣本順序對應。這通常假設DC和低頻係數比高頻係數重要。樣本位置是區域特徵圖進行1D變換(可能事先掃描為1D)而產生的變換後係數的位置(索引)。需要說明的是,本發明並不限於1D變換的應用或任何特定的資料格式。係數的重要性順序可以透過不同的方式定義,例如,在標準中或按照慣例,甚至在碼流中提供,等等。
在獲取所有係數之後(在完成迴圈S730之後),解碼方法包括透過區域的係數的逆變換獲取S770區域的特徵資料。如圖21所示,當解碼所有通道的資料時,解碼方法還可以包括步驟S780,將所有通道的資料登錄到重建網路。
根據一種示例性實現方式,逆變換是離散餘弦逆變換、離散正弦逆變換、修改離散餘弦逆變換或離散正弦逆變換得到的逆變換,或卷積神經網路變換。例如,卷積神經網路層可以被視為變換,並且使用如上所述的最後重要係數指示方法進行訓練會根據需要減少能量。此外,可以認為自動編碼器的最後一層分析部分(生成潛在空間表示y)和自動編碼器的第一層生成部分(接受量化後的潛在表示)分別是正變換和逆變換。因此,在特徵圖 解碼階段內在正變換和逆變換之間執行上述最後重要係數指示方法會產生在聯合訓練期間獲得的卷積層正變換的期望能量收縮。本發明並不限於這些類型的變換。相反,還可以使用其它變換,例如KLT、傅裡葉(Fourier)變換、哈達瑪(Hadamard)變換或其它正交變換和可能的么正變換(unitary transformation)。
下面示出了一個語法表,說明了當變換應用於二維通道的特徵圖資訊時的解析過程,大小由索引x和y表示。需要說明的是,本發明並不限於特徵圖資訊的任何特定大小。變換可以在掃描之後或在將某個預定義重要性順序內的位置分配給資料之後應用。
Figure 110138702-A0305-02-0079-31
Figure 110138702-A0305-02-0080-32
在上面的示例中,最後重要係數位置由與2D特徵圖(或其區域)中的最後重要係數位置的x和y座標對應的兩個數字表示。在另一種可能的實現方式中,最後重要係數位置可以在語法中由與2D特徵圖(其區域)的Z形掃描順序對應的單個數位表示。
圖22為可以在編碼器側執行的示例性方法的流程圖。需要說明的是,圖22的編碼與圖21的解碼相容,這樣透過圖22的編碼方法生成的碼流可以由圖21的解碼方法進行解析/解碼。
編碼方法包括特徵圖(由神經網路等機器學習模型的層輸出的資料)中的通道上的迴圈S810。在步驟S820中,透過正變換對當前通道(迴圈S810的當前步驟中的通道)的資料進行變換。如上所述,正變換在這裡可以包括將通道特徵掃描成1D樣本序列,然後透過1D變換進行變換,得到1D係數序列。可以認為這種1D係數序列遵循重要性順序。如上所述,本示例並不是限制性的。變換可以具有更多的維度,掃描和/或重要性順序可以不同。
在步驟S830中,確定最後重要位置。最後重要位置的確定可以根據期望重建品質和/或速率執行。例如,類似於參考圖12所示的方法,可以累積係數的品質和/或速率,並且一旦品質和/或速率或兩者的組合超過期望閾值,則認為當前字數是最後重要係數。但是,其它方法也是可能的。在步驟S840中,將在步驟S830中確定的最後重要係數的位置(其指示)***到碼流中。在***到碼流中之前,位置的指示可以由算術編碼模組或其它可變 長度編碼模組等熵編碼模組進行編碼。步驟S850表示每個變換後係數上的迴圈。如果係數位置低於或等於最後重要係數的位置,則在步驟S880中,將當前係數***到碼流中(還可能在步驟S870中透過算術編碼器進行編碼)。在對所有通道的係數進行編碼之後,可以將碼流輸入到(或發送)到重建網路。
本領域技術人員很清楚,本實施例可以與上述任一實施例組合在一起。換句話說,最後重要係數指示可以與最後重要通道指示在一起。指示可以對比通道小(例如透過分割獲得)或更大的區域執行。還可以提供邊資訊。一般而言,可以組合上述實施例,以便提供更多的靈活性。
此外,如上所述,本發明還提供了用於執行上述方法的步驟的設備。圖23示出了基於碼流經神經網路處理的特徵圖進行解碼的設備2300。所述設備包括區域存在指示符獲取模組2310,用於從所述碼流中獲取所述特徵圖中的區域的區域存在指示符。此外,設備2300還可以包括解碼模組,用於對所述區域進行解碼,包括:當所述區域存在指示符具有第一值時,從所述碼流中解析資料以對所述區域進行解碼;當所述區域存在指示符具有第二值時,不從所述碼流中解析資料以對所述區域進行解碼。
此外,圖24示出了從碼流中解碼經神經網路處理的特徵圖的設備2400。所述設備包括:邊資訊指示符獲取模組2410,用於從所述碼流中獲取關於所述特徵圖的邊資訊指示符;解碼模組2420,用於對所述特徵圖進行解碼,包括:當所述邊資訊指示 符具有第五值時,從所述碼流中解析邊資訊以對所述特徵圖進行解碼;當所述邊資訊指示符具有第六值時,不從所述碼流中解析邊資訊以對所述特徵圖進行解碼。
對應於上述解碼設備2300,圖23示出了經神經網路處理的特徵圖編碼到碼流中的設備2350。所述設備包括特徵圖獲取模組2360,用於獲取所述特徵圖。此外,所述設備包括編碼控制模組2370,用於根據所述獲取到的特徵圖,決定指示並在所述碼流中指示具有第一值的區域存在指示符和所述特徵圖中的所述區域,或者指示具有第二值的區域存在指示符但不包括所述特徵圖中的所述區域。
對應於上述解碼設備2400,圖24示出了經神經網路處理的特徵圖編碼到碼流中的設備2450。所述設備可以包括:特徵圖獲取模組2460,用於獲取所述特徵圖。此外,設備2450還可以包括編碼控制模組2470,用於決定是否指示關於所述特徵圖的邊資訊並在所述碼流中指示表示第三值的邊資訊指示符和所述邊資訊,或者指示表示第四值的邊資訊指示符但不包括所述邊資訊。
需要說明的是,這些設備可以進一步用於執行包括上述示例性實現的任一其它特徵。例如,提供了一種基於碼流經神經網路處理的特徵圖進行解碼的設備。所述設備包括處理電路,用於執行任一上述解碼方法的步驟。類似地,提供了一種將供神經網路處理的特徵圖編碼到碼流中的設備。所述設備包括處理電路,用於執行任一上述編碼方法的步驟。
還可以提供利用設備2300、2350、2400和/或2450的其它設備。例如,一種用於圖像或影片編碼的設備可以包括編碼設備2400和/或2450。另外,所述設備可以包括解碼設備2300或/或2350。一種用於圖像或影片解碼的設備可以包括解碼設備2300和/或2350。
總之,在本發明的一些實施例中,解碼器(影片或圖像或特徵圖)可以包括用於從碼流獲取特徵圖資訊的人工神經網路。解碼器可以用於:從所述碼流中讀取區域存在標誌;如果所述區域存在標誌為真(TRUE),則讀取與區域對應的特徵圖資訊;如果所述區域存在標誌為假(FALSE),則使用預定義值(其中,預定義值示例性地為0)初始化特徵圖資訊的區域;根據所述獲取到的特徵圖資訊,向人工神經網路輸入所述資料。所述人工神經網路可以是卷積神經網路。所述區域可以是所述卷積神經網路的通道輸出。可選地或另外,所述區域可以是卷積神經網路的通道輸出的一部分,所述碼流還可以包括用於區域定義(位置、形狀、大小)的資訊。換句話說,區域參數可以在所述碼流中定義。所述人工神經網路不一定非得是CNN。一般而言,所述神經網路可以是全連接的神經網路。
解碼器還可以用於透過熵解碼讀取(從所述碼流中提取)所述特徵圖資訊,熵解碼可以是哈夫曼(解碼)編碼、範圍編碼、算術編碼,非對稱數位系統(Asymmetric numeral systems,ANS)或其它類型的可變長度碼的熵。所述區域存在標誌可以被 解碼為具有相應概率更新的經上下文解碼的位元元。
硬體和軟體中的一些示例性實現方式
可以部署上述編碼器和解碼器處理鏈的對應系統如圖25所示。圖25為示例性解碼系統的示意框圖,該示例性解碼系統可以是利用本申請中技術的影片、圖像、音訊和/或其它解碼系統(或簡稱為解碼系統)等。影片解碼系統10中的視訊轉碼器20(或簡稱為編碼器20)和影片解碼器30(或簡稱為解碼器30)表示兩個示例,即可以用於根據本申請中描述的各種示例執行各種技術的設備。例如,影片編碼和解碼可以採用神經網路,例如圖1至圖7中所示的神經網路,該神經網路可以是分散式的並且可以應用上述碼流解析和/或碼流生成在分散式運算節點(兩個或兩個以上)之間傳輸特徵圖。
如圖25所示,解碼系統10包括源設備12,源設備12用於將經編碼圖像資料21提供給目的地設備14等,以對經編碼資料21進行解碼。
源設備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可以為可選元件。需要說明的是,預處理還可以採用使用存在指示符指示的神經網路(例如在圖1至圖7中的任一個中)。
視訊轉碼器20用於接收預處理圖像資料19並提供經編碼圖像資料21。
源設備12中的通信介面22可以用於接收經編碼圖像資料21,並透過通信通道13將經編碼圖像資料21(或對經編碼圖像資料21進一步處理後得到的資料)發送給另一設備(例如目的地設備14)或任何其它設備,以便進行存儲或直接重建。
目的地設備14包括解碼器30(例如影片解碼器30),並且可以另外(即可選地)包括通信介面或通信單元28、後處理器32(或後處理單元32)和顯示設備34。
目的地設備14中的通信介面28用於直接從源設備12 或從存放設備(例如經編碼圖像資料存放設備)等任何其它源,接收經編碼圖像資料21(或對經編碼圖像資料21進一步處理後得到的資料),並將經編碼圖像資料21提供給解碼器30。
通信介面22和通信介面28可以用於經由源設備12與目的地設備14之間的直接通信鏈路(例如直接有線或無線連接)或者經由任何類型的網路(例如有線網路、無線網路或其任何組合,或者任何類型的私網和公網或其任何類型的組合)發送或接收經編碼圖像資料21或經編碼資料21。
例如,通信介面22可以用於將經編碼圖像資料21封裝成合適的格式(例如資料包),和/或透過任何類型的傳輸編碼或處理方式來處理經編碼圖像資料,以便透過通信鏈路或通信網路進行傳輸。
例如,與通信介面22對應的通信介面28可以用於接收傳輸資料,並透過任何類型的對應傳輸解碼或處理和/或解封裝方式來處理傳輸資料,得到經編碼圖像資料21。
通信介面22和通信介面28都可以配置為圖25中從源設備12指向目的地設備14的通信訊道13的箭頭所表示的單向通信介面,或者配置為雙向通信介面,並且可以用於發送和接收消息等,以建立連接、確認並交換與通信鏈路和/或資料傳輸(例如經編碼圖像資料傳輸)相關的任何其它資訊,等等。解碼器30用於接收經編碼圖像資料21並提供經解碼圖像資料31或經解碼圖像31(例如採用基於圖1至圖7中的一個或多個的神經網路)。
目的地設備14中的後處理器32用於對經解碼圖像資料31(也稱為重建圖像資料)(例如經解碼圖像31)進行後處理,得到後處理圖像資料33(例如後處理圖像33)。後處理單元32執行的後處理可以包括,例如顏色格式轉換(例如從YCbCr轉換為RGB)、調色、修剪(trimming)或重採樣,或者任何其它處理,以便提供經解碼圖像資料31由顯示設備34等顯示,等等。
目的地設備14中的顯示設備34用於接收後處理圖像資料33,以便向使用者或觀看者等顯示圖像。顯示設備34可以為或可以包括任何類型的用於表示重建圖像的顯示器,例如集成或外部顯示器或顯示幕。例如,顯示器可以包括液晶顯示器(liquid crystal display,LCD)、有機發光二極體(organic light emitting diode,OLED)顯示器、等離子顯示器、投影儀、微型LED顯示器、矽基液晶(liquid crystal on silicon,LCoS)顯示器、數位光處理器(digital light processor,DLP)或任何類型的其它顯示器。
雖然圖25示出了源設備12和目的地設備14作為單獨的設備,但是設備的實施例還可以同時包括兩種設備或兩種功能、源設備12或對應功能以及目的地設備14或對應功能。在這些實施例中,源設備12或對應功能以及目的地設備14或對應功能可以使用相同的硬體和/或軟體或透過單獨的硬體和/或軟體或其任意組合來實現。
根據描述,圖25所示的源設備12和/或目的地設備14中的不同單元或功能的存在和(精確)劃分可以根據實際設備和 應用而有所不同,這對技術人員來說是顯而易見的。
編碼器20(例如視訊轉碼器20)或解碼器30(例如影片解碼器30)或者編碼器20和解碼器30兩者可以透過處理電路來實現,例如一個或多個微處理器、一個或多個數位訊號處理器(digital signal processor,DSP)、一個或多個專用積體電路(application-specific integrated circuit,ASIC)、一個或多個現場可程式設計閘陣列(field-programmable gate array,FPGA)、一個或多個離散邏輯、一個或多個影片解碼專用處理器或其任意組合。編碼器20可以透過處理電路46實現,以體現包括神經網路的各種模組,例如圖1至7中任一個所示的神經網路或其部分。解碼器30可以透過處理電路46實現,以體現參照圖1至圖7論述的各種模組和/或本文描述的任何其它解碼器系統或子系統。處理電路可以用於執行下文描述的各種操作。如果上述技術部分在軟體中實現,則一種設備可以將該軟體的指令存儲在合適的非暫態性電腦可讀介質中,並且可以使用一個或多個處理器在硬體中執行這些指令,以執行本發明中的技術。視訊轉碼器20或影片解碼器30可以作為組合轉碼器(CODEC)的一部分集成在單個設備中,如圖26所示。
源設備12和目的地設備14可以包括多種設備中的任一種,包括任何類型的手持設備或固定設備,例如筆記型電腦或膝上型電腦、手機、智慧手機、平板或平板電腦、相機、臺式電腦、機上盒、電視機、顯示設備、數位媒體播放機、影片遊戲機、影 片流設備(例如內容業務伺服器或內容分佈伺服器)、廣播接收器設備、廣播發射器設備等,並且可以不使用或使用任何類型的作業系統。在一些情況下,源設備12和目的地設備14可以用於無線通訊。因此,源設備12和目的地設備14可以是無線通訊設備。
在一些情況下,圖25所示的影片解碼系統10僅僅是示例性的,本申請中的技術可以適用於不一定包括編碼設備與解碼設備之間的任何資料通信的影片解碼設置(例如影片編碼或影片解碼)。在其它示例中,資料是從本機存放區器中檢索到的,透過網路資料流,等等。影片編碼設備可以對資料進行編碼並將資料存儲到記憶體中,和/或影片解碼設備可以從記憶體檢索資料並對資料進行解碼。在一些示例中,編碼和解碼由相互不通信而只是將資料編碼到記憶體和/或從記憶體檢索資料並對資料進行解碼的設備來執行。
圖27為本發明一個實施例提供的影片解碼設備1000的示意圖。影片解碼設備1000適用于實現本文描述的公開實施例。在一個實施例中,解碼設備1000可以是解碼器(例如圖25中的影片解碼器30)或編碼器(例如圖25中的視訊轉碼器20)
影片解碼設備1000包括:用於接收資料的入埠1010(或輸入埠1010)和接收單元(Rx)1020,用於處理資料的處理器、邏輯單元或中央處理單元(central processing unit,CPU)1030,用於發送資料的發送單元(Tx)1040和出埠1050(或輸出埠1050);用於存儲資料的記憶體1060。影片解碼設備1000還可以 包括與到入埠1010、接收單元1020、發送單元1040和出埠1050耦合的光電(optical-to-electrical,OE)組件和電光(electrical-to-optical,EO)元件,用於光信號或電信號的出入。
處理器1030透過硬體和軟體實現。處理器1030可以實現為一個或多個CPU晶片、一個或多個核(例如多核處理器)、一個或多個FPGA、一個或多個ASIC和一個或多個DSP。處理器1030與入埠1010、接收單元1020、發送單元1040、出埠1050和記憶體1060通信。處理器1030包括解碼模組1070。解碼模組1070實現上文描述的公開實施例。例如,解碼模組1070執行、處理、準備或提供各種解碼操作。因此,將解碼模組1070包含在內為影片解碼設備1000的功能得到了實質性的改進,並且影響了影片解碼設備1000到不同狀態的轉換。或者,以存儲在記憶體1060中並由處理器1030執行的指令來實現解碼模組1070。
記憶體1060可以包括一個或多個磁片、一個或多個磁帶機以及一個或多個固態硬碟,並且可以用作溢出資料存放設備,以在選擇程式來執行時存儲這些程式以及存儲在執行程式過程中讀取的指令和資料。例如,記憶體1060可以是易失性和/或非易失性的,並且可以是唯讀記憶體(read-only memory,ROM)、隨機存取記憶體(random access memory,RAM)、三態內容定址記憶體(ternary content-addressable memory,TCAM)和/或靜態隨機存取記憶體(static random-access memory,SRAM)。
圖28為一個示例性實施例提供的設備1100的簡化框 圖。設備1100可以用作圖25的源設備12和目的地設備14中的任一個或兩個。
設備1100中的處理器1102可以是中央處理單元。或者,處理器1102可以是現有的或今後將研發出的能夠操控或處理資訊的任何其它類型的設備或多個設備。雖然可以使用如圖所示的處理器1102等單個處理器來實施所公開的實現方式,但使用多個處理器可以提高速度和效率。
在一種實現方式中,設備1100中的記憶體1104可以是唯讀記憶體(read only memory,ROM)設備或隨機存取記憶體(random access memory,RAM)設備。任何其它合適類型的存放設備都可以用作記憶體1104。記憶體1104可以包括處理器1102透過匯流排1112訪問的代碼和資料1106。記憶體1104還可包括作業系統1108和應用程式1110,應用程式1110包括至少一個程式,這個程式使得處理器1102執行本文所述方法。例如,應用程式1110可以包括應用1至應用N,更包括執行本文所述方法的影片解碼應用。
設備1100還可以包括一個或多個輸出設備,例如顯示器1118。在一個示例中,顯示器1118可以是將顯示器與觸敏元件組合的觸敏顯示器,該觸敏元件能夠用於感測觸摸輸入。顯示器1118可以透過匯流排1112與處理器1102耦合。
雖然設備1100的匯流排1112在這裡示為單個匯流排,但是匯流排1112可以包括多個匯流排。此外,次要存放設備可以 直接與設備1100中的其它元件耦合或可以透過網路訪問,並且可以包括單個集成單元(例如一個存儲卡)或多個單元(例如多個存儲卡)。因此,設備1100可以透過各種各樣的配置實現。
一些數學運算子和符號
本申請中使用的示例性語法描述中的數學運算子與用於描述現有轉碼器中語法的運算子類似。編號和計數規範通常從0開始,例如,“第一個”相當於第0個,“第二個”相當於第1個,等等。
算術運算子定義如下:
+ 加法運算
- 減法運算(二元運算子)或者取反(一元首碼運算子)
* 乘法運算,包括矩陣乘法運算
/ 整除運算,沿向0的方向對結果進行截斷。例如,7/4和-7/-4截斷至1,-7/4和7/-4截斷至-1
x%y 模運算,表示x除y的餘數,其中,x和y都是整數,並且x>=0和y>0
邏輯運算子定義如下:
x&&y x和y的布林邏輯“與”運算
x∥y x和y的布林邏輯“或”運算
! 布林邏輯“非”運算
x?y:z 如果x為真(TRUE)或不等於0,則求y的值,否則, 求z的值
關係運算子定義如下:
> 大於
>= 大於或等於
< 小於
<= 小於或等於
== 等於
!= 不等於
當一個關係運算子應用於一個已被賦值“na”(不適用)的語法元素或變數時,值“na”被視為該語法元素或變數的不同值。值“na”被視為不等於任何其它值。
按位運算子定義如下:
& 按位“與”運算。當對整數參數運算時,運算的是整數值的補數表示。當對二進位參數運算時,如果它包含的位比另一個參數少,則透過添加更多等於0的有效位來擴展較短的參數。
| 按位“或”運算。當對整數參數運算時,運算的是整數值的補數表示。當對二進位參數運算時,如果它包含的位比另一個參數少,則透過添加更多等於0的有效位來擴展較短的參數。
^ 按位“異或”運算。當對整數參數運算時,運算的是整數值的補數表示。當對二進位參數運算時,如果它包含 的位比另一個參數少,則透過添加更多等於0的有效位來擴展較短的參數。
x>>y 將x以2的補數整數表示的形式向右算術移動y個二進位位元。只有y為非負整數值時才有這個函式定義。右移的結果是移進最高有效位(most significant bit,MSB)的比特位等於移位操作之前的x的MSB。
x<<y 將x以2的補數整數表示的形式向左算術移動y個二進位位元。只有y為非負整數值時才有這個函式定義。左移的結果是移進最低有效位(least significant bit,LSB)的位的值等於0。
算術運算子定義如下:
= 設定運算子
++ 遞增,即,x++相當於x=x+1;當用於陣列下標時,在自加增量運算前先求變數值。
- 遞減,即,x--等於x=x-1;當用於陣列下標時,在減量運算前先求變數值。
+= 遞增指定值,即,x+=3相當於x=x+3,x+=(-3)相當於x=x+(-3)。
-= 遞減指定值,即,x-=3相當於x=x-3,x-=(-3)相當於x=x-(-3)。
下面的標記法用於指定取值範圍:
x=y..z x取從y到z(包括y和z)的整數值,其中,x、y 和z是整數,z大於y。
當沒有使用括弧來顯式表示運算式中的優先順序時,以下規則適用:
-高優先順序的運算在低優先順序的任何運算之前計算。
-相同優先順序的運算從左到右依次計算。
下表從最高到最低的順序說明運算的優先順序,表中位置越高,優先順序越高。
對於C程式設計語言中也使用的運算子,本規範中運算子優先順序順序與C程式設計語言中優先順序順序相同。
Figure 110138702-A0305-02-0095-33
Figure 110138702-A0305-02-0096-34
在文本中,用數學形式描述如下的邏輯運算語句:
if(condition 0)
statement 0
else if(condition 1)
statement 1
else/* informative remark on remaining condition */
statement n
可以用以下方式描述:
……如下/……以下為准:
-如果條件0,則語句0
-否則,如果條件1,則語句1
-……
-否則(關於剩餘條件的提示性說明),則語句n
文本中的每個“如果……否則,如果……否則,……”語句都以“……如下”或……以下為准”引入,後面緊跟著“如果……”。“如果……否則,如果……否則,……”的最後一個條件總有一個“否則,……”。中間有“如果……否則,如果……否則”語句可以透過使“……如下”或“……以下為准”與結尾“否則……”匹配來識別。
在文本中,用數學形式描述如下的邏輯運算語句:
if(condition 0a && condition 0b)
statement 0
else if(condition 1a || condition 1b)
statement 1
else
statement n
可以用以下方式描述:
……如下/……以下為准:
-如果以下所有條件為真(true),則語句0:
-條件0a
-條件0b
-否則,如果以下一個或多個條件為真,則語句1:
-條件1a
-條件1b
-……
-否則,語句n
在文本中,用數學形式描述如下的邏輯運算語句:
if(condition 0)
statement 0
if(condition 1)
statement 1
可以用以下方式描述:
當條件0時,語句0
當條件1時,語句1
總之,本發明涉及為採用神經網路的系統高效指示特徵圖資訊。具體地,在解碼器側,從碼流中解析存在指示符;根據所述解析出的存在指示符的值,解析或或不解析與特徵圖區域相 關的其它資料。例如,所述存在指示符可以是區域存在指示符,表示所述碼流中是否包括特徵圖資訊,或者可以是邊資訊存在指示符,表示所述碼流中是否包括與所述特徵圖資訊相關的邊資訊。類似地,提供了一種編碼方法,以及編碼和解碼設備。
S110:步驟
S120:步驟
S130:步驟
S140:步驟
S150:步驟

Claims (44)

  1. 一種基於碼流經神經網路處理的特徵圖解碼方法,其特徵在於,所述方法包括:從所述碼流中獲取(S110)所述特徵圖中的區域的區域存在指示符,其中,所述區域存在指示符指示所述碼流中是否存在所述特徵圖中的所述區域;對所述區域進行解碼(S150),包括:當所述區域存在指示符具有第一值時,從所述碼流中解析(S130)資料以對所述區域進行解碼;當所述區域存在指示符具有第二值時,不從所述碼流中解析(S140)資料以對所述區域進行解碼。
  2. 如請求項1所述的方法,其特徵在於,當所述區域存在指示符具有所述第二值時,所述對所述區域進行解碼(S150)更包括:根據預定規則,設置(S230)所述區域。
  3. 如請求項2所述的方法,其特徵在於,所述預定規則指定將所述區域的特徵設置為常數。
  4. 如請求項3所述的方法,其特徵在於,所述常數為0。
  5. 如請求項3所述的方法,其特徵在於,所述方法包括從所述碼流中解碼所述常數的步驟(S240)。
  6. 如請求項1至5中任一項所述的方法,其特徵在於,從所述碼流中獲取(S310)邊資訊存在指示符,其中,所述 邊資訊指示符指示所述碼流中是否存在邊資訊;當所述邊資訊存在指示符具有第三值時,從所述碼流中解析(S330)邊資訊;當所述邊資訊存在指示符具有第四值時,不從所述碼流中解析(S340)所述邊資訊,其中,所述邊資訊包括所述區域存在指示符和資訊中的至少一種,所述資訊正由所述神經網路處理以獲得在所述區域的熵解碼中使用的估計概率模型。
  7. 如請求項6所述的方法,當所述邊資訊存在指示符具有所述第四值時,所述方法包括將所述邊資訊設置(S580)為預定邊資訊值。
  8. 如請求項1至5中任一項所述的方法,其特徵在於,所述區域存在指示符為標誌,所述標誌能夠只取所述第一值和所述第二值中的一個值。
  9. 如請求項1至5中任一項所述的方法,其特徵在於,所述區域為所述特徵圖中的通道。
  10. 如請求項9所述的方法,其特徵在於,所述方法更包括:獲取(S610)重要性順序,其中,所述重要性順序指示所述特徵圖中的多個通道的重要性;獲取(S630)最後重要通道指示符;根據所述最後重要通道指示符,獲取(S640、S645)所述區 域存在指示符。
  11. 如請求項10所述的方法,其特徵在於,所述最後重要通道的指示對應於從所述碼流中解碼的品質指示符,所述品質指示符表示壓縮所述特徵圖中的所述區域產生的經解碼特徵圖的品質。
  12. 如請求項10所述的方法,其特徵在於,所述最後重要通道的指示對應於所述最後重要通道在所述重要性順序內的索引。
  13. 如請求項10所述的方法,其特徵在於,所述獲取重要性順序包括從所述碼流中解碼所述重要性順序的指示。
  14. 如請求項10所述的方法,其特徵在於,所述獲取(S630)重要性順序包括根據關於所述特徵圖已經從中生成的來源資料的先前已解碼的資訊推導所述重要性順序。
  15. 如請求項10所述的方法,其特徵在於,所述獲取(S630)重要性順序包括根據關於所述特徵圖已經從中生成的先前已解碼的來源資料的類型的資訊推導所述重要性順序。
  16. 如請求項10所述的方法,其特徵在於,所述方法更包括從所述碼流中解碼(S680)在所述碼流中按照從最重要通道到所述最後重要通道的所述重要性順序進行排序的通道。
  17. 如請求項1至5中任一項所述的方法,其特徵在於,所述方法更包括以下步驟:根據劃分資訊,解碼或不解碼單元存在指示,其中,所述單 元存在指示表示特徵圖資料是否要從所述碼流中解析以對所述區域中的一個單元進行解碼。
  18. 如請求項17所述的方法,其特徵在於,所述區域的所述區域劃分資訊包括標誌,所述標誌表示所述碼流是否包括單元資訊,所述單元資訊指定所述區域中的所述多個單元的大小和/或位置;所述方法包括從所述碼流中解碼所述區域中的每個單元的單元存在指示;根據所述單元的所述單元存在指示的值,從所述碼流中解析或不解析所述單元的特徵圖資料。
  19. 如請求項18所述的方法,其特徵在於,所述單元資訊指定所述區域(2000)的層次劃分,包括四叉樹、二叉樹、三叉樹或三角劃分中的至少一個。
  20. 如請求項1至5中任一項所述的方法,其特徵在於,從所述碼流中解碼所述區域包括:從所述碼流中提取(S720)最後重要係數指示符,其中,所述最後重要係數指示符表示所述區域的係數中的最後係數的位置;從所述碼流中解碼(S750、S760)所述區域的重要係數;根據預定規則,將所述係數設置(S740)在所述最後重要係數指示符之後;透過所述區域的所述係數的逆變換,獲取(S770)所述區域 的特徵資料。
  21. 如請求項20所述的方法,其特徵在於,所述逆變換(S770)是離散余弦逆變換、離散正弦逆變換、修改所述離散余弦逆變換或離散正弦逆變換得到的逆變換,或卷積神經網路變換。
  22. 如請求項6所述的方法,其特徵在於,所述方法更包括從所述碼流中解碼邊資訊存在標誌,其中,所述邊資訊存在標誌表示所述碼流是否包括所述特徵圖的任何所述邊資訊,所述邊資訊包括正由所述神經網路處理以獲得在所述特徵圖的熵解碼中使用的估計概率模型的資訊。
  23. 如請求項1至5中任一項所述的方法,其特徵在於,所述區域存在指示符的解碼包括上下文自我調整熵解碼器進行的解碼。
  24. 一種基於碼流經神經網路處理的特徵圖解碼方法,其特徵在於,所述方法包括:從所述碼流中獲取(S310)關於所述特徵圖的邊資訊指示符,其中,所述邊資訊指示符指示所述碼流中是否存在邊資訊;對所述特徵圖進行解碼(S350),包括:當所述邊資訊指示符具有第五值時,從所述碼流中解析(S330)所述邊資訊以對所述特徵圖進行解碼;當所述邊資訊指示符具有第六值時,不從所述碼流中解析(S340)所述邊資訊以對所述特徵圖進行解碼。
  25. 如請求項24所述的方法,其特徵在於,所述方法更包括熵解碼(S590),其中,所述熵解碼以所述神經網路處理的經解碼特徵圖為基礎。
  26. 如請求項25所述的方法,其特徵在於,當所述邊資訊指示符具有所述第六值時,所述方法包括將所述邊資訊設置(S580)為預定邊資訊值。
  27. 如請求項26所述的方法,其特徵在於,所述預定邊資訊值為0。
  28. 如請求項26或27所述的方法,其特徵在於,所述方法包括從所述碼流中解碼(S590)所述預定邊資訊值的步驟。
  29. 一種對圖像進行解碼的方法,其特徵在於,所述方法包括:根據請求項1至28中任一項所述的基於碼流經神經網路處理的特徵圖解碼方法;獲取經解碼圖像,包括使用所述神經網路處理所述經解碼特徵圖。
  30. 如請求項29所述的方法,其特徵在於,所述特徵圖表示:經解碼圖像資料,和/或用於對所述圖像資料進行解碼的經解碼邊資訊。
  31. 一種用於電腦視覺的方法,其特徵在於,所述方法包括: 根據請求項1至28中任一項所述的基於碼流經神經網路處理的特徵圖解碼方法;執行電腦視覺任務,包括使用所述神經網路處理所述經解碼特徵圖。
  32. 如請求項31所述的方法,其特徵在於,所述電腦視覺任務為物件檢測、物件分類和/或物件識別。
  33. 一種經神經網路處理的特徵圖編碼到碼流中的方法,其特徵在於,所述方法包括:獲取(S160)所述特徵圖中的區域;根據在所述特徵圖中獲取的所述區域,決定(S170)指示並在所述碼流中指示(S180)具有第一值的區域存在指示符和所述特徵圖中的所述區域,其中,具有所述第一值的所述區域存在指示符指示所述碼流中存在所述特徵圖中的所述區域,或者指示(S190)具有第二值的所述區域存在指示符但不包括所述特徵圖中的所述區域,其中,具有所述第二值的所述區域存在指示符指示所述碼流中不存在所述特徵圖中的所述區域。
  34. 如請求項33所述的編碼方法,其特徵在於,所述決定(S170)包括評估所述區域的特徵的值。
  35. 如請求項33所述的編碼方法,其特徵在於,所述決定(S170)基於所述區域對所述神經網路的處理結果的品質產生的影響。
  36. 如請求項33至35中任一項所述的方法,其特徵在於,所述決定(S170)包括:從最重要區域的比特開始並繼續到重要性遞減的區域,以增量方式確定(S450)所述特徵圖傳輸所需的比特之和,直到所述和超過預配置閾值;對所述和未超過所述預配置閾值的區域進行編碼(S270)並對所述經編碼區域的具有所述第一值的所述區域存在指示符進行編碼(S270、S280);對未經編碼區域的具有所述第二值的所述區域存在指示符進行編碼(S470)。
  37. 一種經神經網路處理的特徵圖編碼到碼流中的方法,其特徵在於,所述方法包括:獲取(S360)所述特徵圖;決定(S370)是否指示關於所述特徵圖的邊資訊並在所述碼流中指示(S380)表示第三值的邊資訊指示符和所述邊資訊,其中,表示所述第三值的所述邊資訊指示符指示所述碼流中存在所述邊資訊,或者指示(S390)表示第四值的邊資訊指示符但不包括所述邊資訊,其中,表示所述第四值的所述邊資訊指示符指示所述碼流中不存在所述邊資訊。
  38. 一種存儲在非暫態性介質中的電腦程式,其特徵在於,所述電腦程式包括代碼,當所述代碼在一個或多個處理器上執行時,執行根據請求項1至37中任一項所述的方法的步驟。
  39. 一種基於碼流經神經網路處理的特徵圖解碼的設備(1100),其特徵在於,所述設備包括處理器(1102)以及通過匯流排(1112)與所述處理器(1102)耦合的記憶體(1060),其中,所述記憶體(1060)包括程式以使得所述處理器(1102)執行:從所述碼流中獲取所述特徵圖中的區域的區域存在指示符,其中,所述區域存在指示符指示所述碼流中是否存在所述特徵圖中的所述區域;對所述區域進行解碼,包括:當所述區域存在指示符具有第一值時,從所述碼流中解析資料以對所述區域進行解碼;當所述區域存在指示符具有第二值時,不從所述碼流中解析資料以對所述區域進行解碼。
  40. 一種從碼流中解碼經神經網路處理的特徵圖的設備(1100),其特徵在於,所述設備包括處理器(1102)以及通過匯流排(1112)與所述處理器(1102)耦合的記憶體(1060),其中,所述記憶體(1060)包括程式以使得所述處理器(1102)執行:從所述碼流中獲取關於所述特徵圖的邊資訊指示符,其中, 所述邊資訊指示符指示所述碼流中是否存在邊資訊;對所述特徵圖進行解碼,包括:當所述邊資訊指示符具有第五值時,從所述碼流中解析所述邊資訊以對所述特徵圖進行解碼;當所述邊資訊指示符具有第六值時,不從所述碼流中解析所述邊資訊以對所述特徵圖進行解碼。
  41. 一種經神經網路處理的特徵圖編碼到碼流中的設備(1100),其特徵在於,所述設備包括處理器(1102)以及通過匯流排(1112)與所述處理器(1102)耦合的記憶體(1060),其中,所述記憶體(1060)包括程式以使得所述處理器(1102)執行:獲取所述特徵圖;根據所述獲取到的特徵圖,決定指示並在所述碼流中指示具有第一值的區域存在指示符和所述特徵圖中的區域,其中,具有所述第一值的所述區域存在指示符指示所述碼流中存在所述特徵圖中的所述區域,或者指示具有第二值的所述區域存在指示符但不包括所述特徵圖中的所述區域,其中,具有所述第二值的所述區域存在指示符指示所述碼流中不存在所述特徵圖中的所述區域。
  42. 一種經神經網路處理的特徵圖編碼到碼流中的設備(1100),其特徵在於,所述設備包括處理器(1102)以及通過匯流排(1112)與所述處理器(1102)耦合的記憶體(1060), 其中,所述記憶體(1060)包括程式以使得所述處理器(1102)執行:獲取所述特徵圖;決定是否指示關於所述特徵圖的邊資訊並在所述碼流中指示表示第三值的邊資訊指示符和所述邊資訊,其中,表示所述第三值的所述邊資訊指示符指示所述碼流中存在所述邊資訊,或者指示表示第四值的邊資訊指示符但不包括所述邊資訊,其中,表示所述第四值的所述邊資訊指示符指示所述碼流中不存在所述邊資訊。
  43. 一種基於碼流的經神經網路處理的特徵圖解碼的設備,其特徵在於,所述設備包括處理電路,用於執行根據請求項1至28中任一項所述的方法的步驟。
  44. 一種經神經網路處理的特徵圖編碼到碼流中的設備,其特徵在於,所述設備包括處理電路,用於執行根據請求項33至37中任一項所述的方法的步驟。
TW110138702A 2020-10-20 2021-10-19 特徵圖資訊的指示方法,設備以及電腦程式 TWI806199B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2020000559 2020-10-20
WOPCT/RU2020/000559 2020-10-20

Publications (2)

Publication Number Publication Date
TW202223762A TW202223762A (zh) 2022-06-16
TWI806199B true TWI806199B (zh) 2023-06-21

Family

ID=81290913

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110138702A TWI806199B (zh) 2020-10-20 2021-10-19 特徵圖資訊的指示方法,設備以及電腦程式

Country Status (7)

Country Link
US (1) US20230262243A1 (zh)
EP (1) EP4197193A1 (zh)
JP (1) JP2023542876A (zh)
KR (1) KR20230046310A (zh)
CN (1) CN116917926A (zh)
TW (1) TWI806199B (zh)
WO (1) WO2022086376A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230186620A1 (en) * 2021-12-15 2023-06-15 Intelligent Fusion Technology, Inc. Methods and systems of resilient mobile distributed computing
WO2024015639A1 (en) * 2022-07-15 2024-01-18 Bytedance Inc. Neural network-based image and video compression method with parallel processing
WO2024017173A1 (en) * 2022-07-16 2024-01-25 Douyin Vision (Beijing) Co., Ltd. Method, apparatus, and medium for visual data processing
WO2024057721A1 (ja) * 2022-09-16 2024-03-21 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号装置、符号化装置、復号方法、及び符号化方法
WO2024080623A1 (ko) * 2022-10-12 2024-04-18 삼성전자 주식회사 Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법
WO2024078920A1 (en) * 2022-10-12 2024-04-18 Interdigital Ce Patent Holdings, Sas Latent coding for end-to-end image/video compression

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200910987A (en) * 2007-05-01 2009-03-01 Qualcomm Inc Application logging interface for a mobile device
US20200021813A1 (en) * 2019-09-25 2020-01-16 Intel Corporation Method and system of multiple channel video coding with cross-channel referencing
EP3672241A1 (en) * 2018-12-17 2020-06-24 Nokia Technologies Oy A method, an apparatus and a computer program product for video encoding and video decoding
US20200304832A1 (en) * 2019-03-21 2020-09-24 Qualcomm Incorporated Generalized reference sample derivation methods for intra prediction in video coding

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160358069A1 (en) * 2015-06-03 2016-12-08 Samsung Electronics Co., Ltd. Neural network suppression
WO2019009448A1 (ko) * 2017-07-06 2019-01-10 삼성전자 주식회사 영상을 부호화 또는 복호화하는 방법 및 장치
US10869036B2 (en) * 2018-09-18 2020-12-15 Google Llc Receptive-field-conforming convolutional models for video coding
CN110971901B (zh) * 2018-09-29 2022-08-02 杭州海康威视数字技术股份有限公司 卷积神经网络的处理方法、装置、设备及存储介质
US11159789B2 (en) * 2018-10-24 2021-10-26 City University Of Hong Kong Generative adversarial network based intra prediction for video coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200910987A (en) * 2007-05-01 2009-03-01 Qualcomm Inc Application logging interface for a mobile device
EP3672241A1 (en) * 2018-12-17 2020-06-24 Nokia Technologies Oy A method, an apparatus and a computer program product for video encoding and video decoding
US20200304832A1 (en) * 2019-03-21 2020-09-24 Qualcomm Incorporated Generalized reference sample derivation methods for intra prediction in video coding
US20200021813A1 (en) * 2019-09-25 2020-01-16 Intel Corporation Method and system of multiple channel video coding with cross-channel referencing

Also Published As

Publication number Publication date
JP2023542876A (ja) 2023-10-12
EP4197193A1 (en) 2023-06-21
WO2022086376A1 (en) 2022-04-28
US20230262243A1 (en) 2023-08-17
CN116917926A (zh) 2023-10-20
KR20230046310A (ko) 2023-04-05
TW202223762A (zh) 2022-06-16

Similar Documents

Publication Publication Date Title
TWI806199B (zh) 特徵圖資訊的指示方法,設備以及電腦程式
TWI830107B (zh) 通過指示特徵圖資料進行編碼
US20230336759A1 (en) Decoding with signaling of segmentation information
US20230336776A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
US20240064318A1 (en) Apparatus and method for coding pictures using a convolutional neural network
US20230353764A1 (en) Method and apparatus for decoding with signaling of feature map data
US20230336736A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
TW202337211A (zh) 條件圖像壓縮
CN117501696A (zh) 使用在分块之间共享的信息进行并行上下文建模
TW202348029A (zh) 使用限幅輸入數據操作神經網路
TW202318265A (zh) 基於注意力的圖像和視訊壓縮上下文建模
WO2023172153A1 (en) Method of video coding by multi-modal processing
TW202326594A (zh) 使用可變輔助輸入的基於變換器的神經網路
Le Still image coding for machines: an end-to-end learned approach
Ahonen Image coding for machines: Deep learning based post-processing filters
WO2024005660A1 (en) Method and apparatus for image encoding and decoding
Abbas Adapting Computer Vision Models To Limitations On Input Dimensionality And Model Complexity
WO2024083405A1 (en) Neural network with a variable number of channels and method of operating the same
WO2023121499A1 (en) Methods and apparatus for approximating a cumulative distribution function for use in entropy coding or decoding data
WO2024005659A1 (en) Adaptive selection of entropy coding parameters
TW202345034A (zh) 使用條件權重操作神經網路