TWI797533B - 運用並行處理之低潛時視訊編解碼器及傳輸 - Google Patents

運用並行處理之低潛時視訊編解碼器及傳輸 Download PDF

Info

Publication number
TWI797533B
TWI797533B TW110100315A TW110100315A TWI797533B TW I797533 B TWI797533 B TW I797533B TW 110100315 A TW110100315 A TW 110100315A TW 110100315 A TW110100315 A TW 110100315A TW I797533 B TWI797533 B TW I797533B
Authority
TW
Taiwan
Prior art keywords
blocks
frame
parallel
processor
encoded
Prior art date
Application number
TW110100315A
Other languages
English (en)
Other versions
TW202126037A (zh
Inventor
麥可 W 布林斯
馬丁 A 亨特
曼朱納斯 H 斯德爾
約翰 C 西弗斯
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 TW202126037A publication Critical patent/TW202126037A/zh
Application granted granted Critical
Publication of TWI797533B publication Critical patent/TWI797533B/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
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/146Data rate or code amount at the encoder output
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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

Abstract

本發明描述了用於對視訊資料進行編碼之一並行多處理器編碼器系統的方法及裝置,其中所述視訊資料包括一圖框序列,其中各圖框包括順序列中之複數個像素區塊。對於各圖框,所述系統可將所述複數個區塊劃分成複數個區塊子集,其中各區塊子集經分配至所述並行多處理器系統之一各別處理器。所述並行多處理器系統之各個各別處理器可順序地對經分配至所述各別處理器之所述區塊子集的列進行編碼,且將各經編碼區塊列作為一位元串流順序傳輸至一通道上之一解碼器。對於各列,在傳輸用於任何處理器之下一各別經編碼區塊列之前,可將所述各別經編碼區塊列傳輸至用於各處理器之所述解碼器。另外,描述了一種類似並行多處理器解碼器系統。

Description

運用並行處理之低潛時視訊編解碼器及傳輸
優先權主張 本申請案主張2017年12月12日申請之標題為《提議基於滾動切片之IP HEVC編碼器/解碼器(Propose a Rolling Slice Based IP HEVC Encoder/Decoder)》之美國臨時申請案第62/597,457號及2018年4月24日申請之標題為《具有並行處理之低潛時編碼器(Low Latency Encoder with Parallel Processing)》之美國臨時申請案第62/661,779號的優先權,其皆特此以全文引用之方式併入,如同在本文中完整且完全地所闡述一般。
發明領域大體上係關於有線及無線通信中使用之視訊編碼器及解碼器。
編碼器及解碼器用於有線及無線通信之許多領域中。傳輸器可對既定用於由特定接收器接收之訊息進行編碼。視訊編碼應用(例如,對於視訊串流應用)引入嚴格的潛時及產出率要求,此係因為大量資料需要即時經編碼、傳輸及解碼,以使得接收裝置可顯示經解碼視訊,而在播放中無間隔或視訊品質不會不合需要地降低。
為了解決此等及其他擔憂,在技術領域中需要改良。
描述了用於利用並行多處理器系統來對視訊資料進行編碼及解碼之系統及方法的各種實施例。
在一些實施例中,一種包括耦接至各別非暫時性電腦可讀記憶體媒體之複數個並行處理器的並行多處理器視訊編碼器系統經組態以對視訊資料進行編碼,其中所述視訊資料包括一圖框序列,其中各圖框包括順序列中之複數個像素區塊。
在一些實施例中,針對所述視訊資料之各圖框,所述視訊編碼器系統可將所述複數個區塊劃分成複數個區塊子集,其中各區塊子集經分配至一並行多處理器系統之一各別處理器。
所述並行多處理器系統之各個各別處理器可順序地對經分配至所述各別處理器之所述區塊子集的列進行編碼,且將各經編碼區塊列作為一位元串流順序傳輸至一通道上之一解碼器。對於各列,可在傳輸與用於任何處理器之所述各別列連續的一列之經編碼區塊列之前將所述各別列之所述經編碼區塊列傳輸至用於各處理器之所述解碼器。
在一些實施例中,一種包括耦接至各別非暫時性電腦可讀記憶體媒體之複數個並行處理器的並行多處理器視訊解碼器系統可經組態以對經編碼視訊資料進行解碼,其中所述經編碼視訊資料包括一經編碼圖框序列,其中各圖框包括順序行中之複數個經編碼像素區塊。在此等實施例中,所述視訊解碼器系統可自一通道接收所述經編碼視訊資料。對於所述經編碼圖框序列中之各經編碼圖框,所述視訊解碼器系統可將所述複數個區塊劃分成複數個區塊子集,且可將各區塊子集分配至所述並行多處理器系統之一各別處理器。
所述並行多處理器系統之各處理器可順序地對所述區塊子集中之經分配至所述各別處理器的列進行解碼,且組合所述經解碼區塊列以獲得一經解碼圖框。對於各列,在組合與用於任何處理器之所述各別列連續的一列之經解碼區塊列之前,可組合用於各處理器之所述各別行之所述經解碼區塊。最後,所述視訊解碼器系統可輸出所述經解碼圖框作為一經解碼圖框序列。
此發明內容意欲提供此文件中描述主題中之一部分的簡單綜述。因此,應瞭解上述特徵僅僅為實例且不應理解為以任何方式限制本文中所描述之主題的範疇或精神。本文所描述之主題的其他特徵、態樣及優點將自以下實施方式、附圖及申請專利範圍變得顯而易見。
引用式併入
以下參考文獻特此以全文引用之方式併入,如同本文中完整且完全地闡述: 1)Ribas-Corbera、Jordi、Chou、Philip A.、Regunathan、Shankar & Chou、Philip A.(2003).《用於H.264/AVC之一般化假想參考解碼器(A generalized hypothetical reference decoder for H.264/AVC)》IEEE Trans.用於視訊技術之電路及系統( Circuits and Systems for Video Technology 》,第7卷,第7號,2013年7月,第674至687頁。 2)Sachin Deshpande、Miska M.Hannuksela、Kimihiko Kazui及Thomas Schierl、《用於HEVC之改良型假想參考解碼器(An Improved Hypothetical Reference Decoder for HEVC)》,Proceedings of the SPIE 。第8666卷,第866608號,第9頁。(2/2013). 3)Hu、Wen-Chen,《關於電信、無線系統及行動計算之多學科觀點》, Chapter 12: Intra Refresh and Data-Partitioning for Video Streaming over IEEE 802.11c ,Hershey,PA,IGI Publishing,2013年,第200頁。 4)R.Schreier、A.Rothermel,,《用於H.264視訊寫碼標準之運動適應性框內再新(Motion adaptive intra refresh for the H.264 video coding standard)》,IEEE Tr. on Consumer Electronics,第52卷,第1號,2006年2月,第249至253頁。 5)H.Chen等人,《用於低潛時誤差彈性視訊寫碼之適應性框內再新(Adaptive Intra-Refresh for Low-Delay Error-Resilient Video Coding)》,Signal and Information Processing Association Annual Summit and Conference (APSIPA), 2014 Asia-Pacific,第1至4頁,2014年。術語
以下係在本申請案中使用的術語之詞彙表:
記憶體媒體 ——各種類型之記憶體裝置或記憶體件中之任一者。術語「記憶體媒體」意欲包含安裝媒體,例如CD-ROM、軟碟、或磁帶裝置;電腦系統記憶體或隨機接入記憶體,諸如DRAM、DDR RAM、SRAM、EDO RAM、Rambus RAM等等;或非揮發性記憶體,諸如磁性媒體,例如硬碟、光學儲存裝置、或ROM、EPROM、快閃等等。記憶體媒體亦可包括其他類型之記憶體或其組合。此外,記憶體媒體可以位於其中執行程序的第一電腦中,及/或可定位於經由諸如網際網路等網路連接至第一電腦的第二不同電腦中。在後一情況下,第二電腦可將程式指令提供至第一電腦以供執行。術語「記憶體媒體」可包含可駐留於不同位置中,例如經由網路而連接之不同電腦中,之兩個或更多個記憶體媒體。
載體媒體 ——如上文所描述之記憶體媒體以及實體傳輸媒體,諸如匯流排、網路及/或傳達諸如電信號或光學信號之信號的其他實體傳輸媒體。
可程式化硬體元件 ——包含包括經由可程式化或固線式互連件連接之多個可程式化功能區塊的各種硬體裝置。實例包含場可程式化閘陣列(Field Programmable Gate Array,FPGA)、可程式化邏輯裝置(Programmable Logic Device,PLD)、場可程式化目標陣列(Field Programmable Object Array,FPOA)及複合PLD (Complex PLD,CPLD)。可程式化功能區塊可介於精細粒度級(組合邏輯或查找表)至粗糙粒度級(算術邏輯單元或處理器核心)之範圍內。可程式化硬體元件亦可稱為「可重組態邏輯」。
特殊應用積體電路Application Specific Integrated Circuit ASIC —— 此術語意欲具有其普通涵義之全部範圍。術語ASIC意欲包含針對特定應用自訂之集成電路,而非通用可程式化裝置,但ASIC可含有可程式化處理器核心作為建置區塊。蜂巢式電話晶片、MP3播放器晶片及許多其他單功能IC係ASIC之實例。通常以諸如Verilog或VHDL之硬體描述語言描述ASIC。
程式 ——術語「程式」意欲具有其普通涵義之全部範圍。術語「程式」包含1)可儲存於記憶體中且可由處理器執行之軟體程式、或2)可用於對可程式化硬體元件或ASIC進行組態之硬體組態程式。
軟體程式 ——術語「軟體程式」意欲具有其普通涵義之全部範圍,且包含可儲存於記憶體媒體中且由處理器執行之任何類型之程式指令、程式碼、指令碼及/或資料或其組合。例示性軟體程式包含以諸如C、C++、PASCAL、FORTRAN、COBOL、JAVA、組合語言等等之基於文本之程式化語言,例如必要或程序化語言,撰寫的程式;圖形程式(以圖形程式化語言撰寫的程式);組合語言程式;已經編譯成機器語言之程式;指令碼;及其他類型之可執行軟體。軟體程式可包括以某一方式交互操作之兩個或更多個軟體程式。
硬體組態程式 ——可用以程式化或對可程式化硬體元件或ASIC進行組態之程式,接線對照表或位元檔案。
電腦系統 ——各種類型之計算或處理系統中之任一者,包含個人電腦系統(personal computer,PC)、大型電腦系統、工作台、網路裝置、網際網路裝置、個人數位助理(personal digital assistant,PDA)、柵格計算系統或其他裝置或裝置組合。大體而言,術語「電腦系統」可廣泛地定義為涵蓋具有執行來自記憶體媒體的指令之至少一個處理器的任何裝置(或裝置組合)。
自動地 ——指代在無直接指定或執行行動或操作之使用者輸入的情況下,由電腦系統(例如,由電腦系統執行之軟體)或裝置(例如,電路系統、可程式化硬體元件、ASIC等等)執行之行動或操作。因此,術語「自動地」與由使用者手動執行或指定之操作相反,在由使用者手動執行或指定之操作中使用者提供輸入以直接執行操作。自動程序可藉由使用者提供之輸入起始,但「自動地」執行之後續動作未由使用者指定,亦即,未「手動地」執行,在手動之情況下,使用者指定供執行之每一動作。舉例而言,藉由選擇各場及提供輸入指定資訊以填寫電子表格(例如藉由鍵打資訊、選擇核取方塊、無線選擇等)之使用者為在人工填寫表格,儘管電腦系統必須回應使用者動作更新表格。可藉由電腦系統自動地填寫表格,其中電腦系統(例如,在電腦系統上執行之軟體)分析表格之欄位且在無需指定對所述欄位之回答之任何使用者輸入之情況下填寫表格。如上文所指示,使用者可調用表格之自動填寫,但不涉及表格之實際填寫(例如,使用者不手動地指定針對欄位之回答而是自動完成所述回答)。本說明書提供回應於使用者已採取之動作而自動執行之操作之各種實例。具體實施方式 1-- 視訊編碼器及解碼器通信系統
圖1說明例示性(且簡化)視訊編碼器/解碼器通信系統。編碼器及解碼器可經組態以實施低潛時編碼視訊傳輸,其可根諸如高效率視訊編碼(high efficiency video encoding,HEVC)或另一編碼標準之據各種視訊編碼標準而操作。圖1展示涉及視訊編碼器102經由網路104與視訊解碼器106通信之實例通信系統。視訊編碼器102可係多種類型之裝置中之任一者,諸如蜂巢式基地台、使用者設備(user equipment,UE)裝置、網路或雲端伺服器、用於諸如根據811標準或相關標準而執行Wi-Fi通信之一無線接入點、或另一種類型之計算裝置。網路104可具有多種類型之網路中之任一者,包含但不限於蜂巢式網路、有線或無線網際網路協定(internet protocol,IP)網路、無線網路或其他類型之廣播網路、私用網路、或另一類型之網路。解碼器106可係各種裝置中之任一者,諸如智慧型電話、平板電腦裝置、電腦系統、智慧型TV、攜帶型視訊播放器等等。編碼器102及解碼器106中之一或兩者可包含如本文所描述之編碼器邏輯及/或解碼器邏輯。
應注意,圖1之系統僅僅為可能系統之一個實例,且可按需要在各種系統中任一者中實施實施例。
在一些實施例中,編碼器102可經組態以將經編碼視訊廣播至解碼器106。術語「廣播」在本文中可指代針對廣播區域中之接收裝置傳輸而非經定址至特定裝置的一對多傳輸。另外,廣播傳輸通常係單向的(自傳輸器至接收器)。在一些情形下,控制信令(例如,評級資訊)可自接收器傳遞回至廣播傳送器,但僅在一個方向上傳輸內容資料。相比之下,蜂巢式通信通常係雙向的。「蜂巢式」通信亦可涉及小區之間的交遞。舉例而言,在蜂巢式通信實施例中,當解碼接收器106移動出由蜂巢式基地台編碼器102伺服之小區之外時,可將其(移交至另一蜂巢式基地台(且移交可由網路處置,包含編碼器102及其他蜂巢式基地台由執行之操作)。相比之下,當使用者由第一廣播基地台覆蓋之範圍移動至由第二廣播基地台覆蓋之範圍時,其可切換以自第二廣播基地台接收內容,但基地台不需要便於移交(例如,其僅繼續廣播且不關注特定接收器正使用哪一基地台)。
傳統上,使用與蜂巢式傳輸頻率之資源來執行廣播傳輸。然而,在一些實施例中,在此等不同類型之傳輸之間共用頻率資源。舉例而言,在一些實施例中,廣播基地台經組態以在經調度時間間隔期間轉交一或多個頻帶,以供蜂巢式基地台用於分封交換通信。
編碼器102及解碼器106可經組態以使用各種RAT(亦被稱作無線通信技術或電信標準)中之任一者來經由網路104通信,諸如LTE、5G新無線(New Radio,NR)、下一代廣播平台(Next Generation Broadcast Platform,NGBP)、W-CDMA、TDS-CDMA及GSM,以及其他可能RAT,諸如UMTS、LTE-A、CDMA2000(例如,1xRTT、1xEV-DO、HRPD、eHRPD)、先進電視系統委員會(Advanced Television Systems Committee,ATSC)標準、數位視訊廣播(Digital Video Broadcasting,DVB)等等。
在本文中論述廣播及蜂巢式網路以便於說明,但此等技術並不意欲限制本發明之範疇,且在其他實施例中,可在各種類型之有線及/或無線網路中之任一者之間使用所揭示頻譜共用技術。 2—— 編碼器 / 解碼器
圖2說明編碼器裝置102或解碼器裝置106之實例簡化方塊圖。編碼器/解碼器可係如上文所定義之各種裝置中之任一者。編碼器/解碼器裝置106可包含可由各種材料中之任一者建構之外殼。
如所展示,編碼器/解碼器裝置可包含系統單晶片(system on chip,SOC)400,所述系統單晶片可出於各種目的而包含部分。SOC 400可以耦接至編碼器/解碼器裝置之各種其他電路。舉例而言,編碼器/解碼器裝置可以包含各種類型之記憶體(例如,包含NAND快閃410)、連接器介面420(例如,用於耦接至電腦系統、基座、充電站等)、顯示器460、諸如用於LTE、5G新無線(NR)、GSM、藍芽(Bluetooth,BT)、WLAN及/或廣播等之無線通信電路430。編碼器/解碼器裝置可進一步包括實施使用者識別模組(Subscriber Identity Module,SIM)功能性之一或多個智慧卡。無線通信電路系統430可耦接至一或多個天線,諸如天線435。
如所展示,SOC 400可包含可執行用於裝置之程式指令的處理器402、及可執行圖形處理且向顯示器460提供顯示信號之顯示電路系統404。處理器402亦可耦接至記憶體管理單元(memory management unit,MMU)440,所述MMU可經組態以自處理器402接收位址並將所述位址轉換為記憶體(例如,記憶體(例如,惟讀記憶體(read only memory,ROM)或其他類型之記憶體)406,NAND閃存410)中之位置,及/或耦接至其他電路或裝置,諸如顯示電路系統404,無線通信電路系統430、連接器I/F 420及/或顯示器460。MMU 440可經組態以執行記憶體保護及傳呼表轉譯或設置。在一些實施例中,可包含MMU 440作為處理器402之一部分。在一些實施例中,處理器、MMU與記憶體可係分佈式多處理器系統。舉例而言,處理器系統可包括複數個穿插式處理器及記憶體,其中處理元件(亦稱為功能單元)各自連接至亦被稱作資料記憶體路由器之複數個記憶體。處理器系統可經程式化以實施本文中所描述之方法。
在一些實施例(未展示)中,解碼器裝置經組態以例如自圖2之視訊編碼器裝置102接收無線廣播。在此等實施例中,解碼器裝置106可包含廣播無線接收器。在一些實施例中,解碼器裝置經組態以接收廣播資料,且使用同時不同頻帶及/或在不同時間切片期間使用相同頻率資源來執行分封交換蜂巢式通信(例如,LTE)。此可允許使用者查看TV廣播,同時執行其他任務,諸如瀏覽網際網路(例如,在分屏模式下)、使用網頁應用程式、或收聽串流傳輸音訊。在其他實施例中,所公開技術可用於具有經組態為廣播接收器或經組態以用於蜂巢式通信而非兩者之裝置的系統中。
編碼器/解碼器裝置之處理器402可經組態以例如藉由執行儲存於記憶體媒體(例如,非暫時性電腦可讀記憶體媒體)上之程式指令來實施本文中所描述之特徵的部分或全部。在一些實施例中,處理器402可包括複數個並行化處理元件之多處理器陣列。舉例而言,可根據相干Logix HyperX™架構或另一並行處理器架構而設計處理器402。替代地(或另外),處理器402可經組態為可程式化硬體元件,諸如場可程式化閘陣列(FPGA,或特殊應用積體電路(ASIC)。替代地(或另外),編碼器/解碼器裝置之處理器402結合其他組件400、404、406、410、420、430、435、440、460中之一或多者可經組態以實施本文中所描述之特徵的部分或全部。
編碼器/解碼器裝置可具有顯示器460,所述顯示器可係併有電容性觸控電極之觸控螢幕。顯示器460可基於各種顯示技術中之任一者。編碼器/解碼器裝置之外殼可含有或包括用於各種元件中之任一者的開口,所述元件諸如首頁按鈕、揚聲器埠及其他元件(未展示),諸如麥克風、資料埠及可能各種其他類型之按鈕,例如音量按鈕、響鈴按鈕等。
編碼器/解碼器裝置可支持多種無線接入技術(radio access technology,RAT)。舉例而言,編碼器/解碼器裝置可經組態以使用各種RAT中之任一者來通信,諸如全球行動通信系統(Global System for Mobile Communications,GSM)、全球行動電信系統(Universal Mobile Telecommunications System,UMTS)、分碼多重接入(Code Division Multiple Access,CDMA)(例如,CDMA2000 1XRTT或其他CDMA無線接入技術)、長期演進(Long Term Evolution,LTE)、LTE進階(LTE Advanced,LTE-A)、5G NR及/或其他RAT中之兩者或更多者。舉例而言,編碼器/解碼器裝置可支持至少兩種無線接入技術,諸如LTE及GSM。可視需要支援各種不同或其他RAT。
在一些實施例中,編碼器/解碼器裝置亦經組態以傳輸及/或接收可輸送音訊及/或視訊內容之廣播無線傳輸。在另其他實施例中,解碼器裝置可經組態以接收廣播無線傳輸,且可不經組態以經由網路執行雙向通信(例如,解碼器106可係媒體播放裝置)。
圖3說明可在編碼器及/或解碼器中存在之實例並行多處理器系統。在此實例中,並行多處理器系統可包括複數個穿插式處理器及記憶體,如所展示,其中矩形係處理元件(亦稱為功能單元),且圓形係記憶體,亦被稱作資料記憶體路由器。舉例而言,可係一或多個處理元件分配視訊圖框之行子集以供編碼及/或解碼,如在下文更詳細地描述。換言之,如參考本文中所描述之並行多處理器系統所用的術語「處理器」可指代如圖3中所說明之單個處理元件或一組複數個處理元件。有利地,本文中所描述之方法可使用分佈式控制以平行化編碼或解碼程序,而不引入主控控制器以導引編碼/解碼程序。
處理器系統可經程式化以實施本文中所描述之方法。對於關於可在一些實施例中使用之實例處理器系統架構的更多資訊,請見美國專利第7,415,594及8,880,866號,所述美國專利特此以全文引用之方式併入,如同本文中完整且完全地闡述。處理器系統之另一實例係如上文所定義之可程式化硬體元件(programmable hardware element,PHE)。舉例而言,解碼器可包含可經組態以實施本文所描述之方法的PHE,諸如FPGA。具有並行處理之低潛時編碼器
視訊編碼器-解碼器解決方案廣泛地用於當今技術環境中,且需要減小由編碼及解碼程序引入之潛時,同時針對經編碼視訊流保留儘可能多之壓縮。視訊編碼器-解碼器方法中之長期存在的問題係達成具有1)小於一個圖框時間之端對端潛時;2)區塊間及區塊內預測;及3)並行處理之編碼器-解碼器解決方案。如本文所使用之並行處理可指代多個子框元素之高層級並發處理,如在下文更詳細地描述。舉例而言,並行處理實施方案可能適用於基於軟體之實施方案,但可更一般而言適用於使用並行處理以滿足產出率要求之任何實施方案。本文中所描述之實施例提供有助於可將待編碼之視訊的各圖像圖框劃分成多個影像塊以供獨立並行處理之方法,其中經由通信網路將經編碼視訊流傳輸至解碼器,且其中接收經編碼視訊流且藉由解碼器對其進行處理以供即時顯示。
本文中所描述之實施例可適用於遵循現代標準之視訊編碼器實施方案,現代標準諸如MPEG-2視訊、H.264(AVC)、H.265(HEVC)、VP8、VP9、新興AV1以及潛在的未來標準,以及其他可能性。此等標準可描述為基於區塊之經運動補償之視訊壓縮方法,其在其寫碼方法中使用框內及框間預測兩者。舉例而言,此等標準可與更簡單框內僅寫碼標準分化,諸如運動JPEG、運動JPEG-2000及VC-2。現代壓縮標準中之框內寫碼工具與框間寫碼工具的組合以達成200:1或更大之壓縮比,而有極少至不具有可見失真,此取決於源視訊內容。儘管組合之框內與框間預測相比於更簡單編碼標準提供壓縮優點,但其亦向編碼器-解碼器程序引入複雜性,此係因為框內及框間預測引入不同程度之計算潛時及額外負擔。儘管組合之框內與框間寫碼的實施方案已能夠藉由單個計算執行緒達成子框潛時,但本文實施例藉由在並行處理實施方案中達成子框潛時來在此等舊版實施方案之基礎上改良,如在下文更詳細地描述。 4-- 基礎基於圖框之編碼器
圖4說明包含處理級序列(在圖4中描繪為矩形)之典型編碼管線。基於區塊之經運動補償之編碼器的許多實施方案經設計以作為基本處理單元與視訊圖框一起操作。習知實施方案對完整圖框執行各處理級。級之間的記憶體緩衝器(在圖4中說明為傾斜平行四邊形)收集資料之完整圖框,因此編碼管線之最小潛時係兩個圖框時間。值得注意地,具有兩個或更多個圖框之潛時的許多此類編碼器在營銷及理論文獻中標記為低潛時。 5-- 子框潛時編碼器
其他舊版實施方案使用與子框工作負荷相同之簡單管線。舉例而言,在常見基於圖框之編碼器中,圖框可劃分成影像塊、切片、巨集區塊、寫碼樹單元或其他單元,前述各者在本文中且如圖5中所說明之描述中共同地稱作「區塊」。在習知子框潛時編碼器中,可對區塊單元執行編碼程序之各功能,且可自各處理平台向下一處理平台漸進地發送結果。
基於區塊之方法可應用於編碼管線中之各操作,包含速率控制(例如,其可判定各區塊之量化位準)、視訊分析(例如,其可找到用於各區塊之編碼提示)、預測/變換/模式決策(例如其可對各區塊進行操作,)及熵寫碼(例如,其可在按區塊基礎上執行熵寫碼,諸如上下文適應性二進位算術寫碼(context-adaptive binary arithmetic coding,CABAC),或其他類型之熵寫碼)。
區塊級粒度可比運用基於圖框之編碼產生短得多的潛時。潛時不會僅短達幾個區塊,此係因為編碼器之輸入必須包含足夠緩衝以將輸入光柵線轉換成區塊。舉例而言,32個緩衝線可用以將輸入圖像分割成32×32個區塊。此定義輸入記憶體緩衝器之潛時。編碼器之處理級的其餘部分可添加另外幾個潛時區塊時間,不包含經寫碼區塊緩衝,如下文更詳細地論述。端對端編碼器 - 解碼器潛時
在一些實施例中,在混合式框間與框內預測之情況下,經寫碼區塊大小可係大的。框內預測大體上產生影像區塊之糟糕預測,且可需要用於殘餘寫碼之額外位元作為經變換經量化係數。相比之下,框間預測可係幾乎完美的。若在跳過模式下運用框間預測對區塊進行寫碼,則區塊可在熵寫碼之後僅佔據經寫碼位元串流中之一個位元的一部分。
在一些實施例中,經框內寫碼區塊與經框間寫碼區塊之間的大小差可係100:1或更大。此會在編碼器之輸出處呈現緩衝問題,此係因為經框內編碼區塊之集中度會使潛時增大高於子框潛時。在如上文參考圖4所描述之習知基於圖框之編碼器中,至圖4中之經寫碼圖像緩衝器(coded picture buffer,CPB)的輸入係完整圖框,但輸出係流速率下之位元。若僅使用框內預測來對特定圖框進行寫碼,則可能需要許多圖框時間以通過CPB。可接著經由小得多之以下經框間預測圖框恢復框內圖框之額外延遲。為了避免處理瓶頸,經寫碼圖像緩衝器大小可需要足夠大以吸收圖框之間的大小變化而不溢出。
圖6說明用於即時視訊傳輸之典型端對端編碼器-解碼器系統。如所說明,解碼器處之經寫碼圖像緩衝器與編碼器之經寫碼圖像緩衝器互補。兩個緩衝器可實際上大小相同,且所得組合式潛時可等於此大小除以流速率。運用基於圖框之編碼器,經寫碼圖框緩衝器之潛時可係數個圖框時間。
上文所描述之基於區塊的編碼方法係重要的以將經寫碼區塊緩衝器對之組合式潛時減小到小於一個圖框時間。運用基於區塊之編碼,緩衝器之潛時可小至數個區塊時間。甚至在區塊位準粒度之情況下,經寫碼區塊緩衝器可引入端對端系統之大多數潛時。端對端基於區塊之系統的總潛時可係經寫碼區塊緩衝器潛時加編碼器及解碼器中之所有其他處理級之潛時的總和,所有其他處理級之潛時可短至一至二區塊列。高效率視訊寫碼( HEVC )標準中之子圖像編碼粒度
高效率視訊寫碼(HEVC)標準引入位元串流語法以形式化子圖像編碼粒度。在所述標準中,術語「解碼單元」(Decoding Unit,DU)用以表示如本文所描述之「區塊」。編碼器將各圖框分成數個DU,所述DU各自具有相同數目個編碼樹單元(Coding Tree Unit,CTU)。各CTU通常係64×64或32×32個像素(或另一數目個像素),且各DU可表示CTU之一或多個列、行或影像塊。
將DU形式化添加至HEVC標準,以特定地支持子框潛時即時視訊傳輸。然而,其在DU經指派給並發並行處理器時不提供子框潛時,此係因為用於DU之編碼程序之輸出串聯化。本文中所描述之實施例藉由跨越DU交錯輸出來解決此限制,細細因為輸出並行地經編碼,如在下文更詳細地描述。框內再新寫碼
框內再新係目前先進技術低潛時編碼器中存在之寫碼技術。典型壓縮視訊位元串流組織可包含週期性框內再新僅圖像,所述圖像用以在任何先前位元串流傳輸錯誤之後恢復正確顯示輸出。在HEVC編碼標準中,將所述圖像描述為瞬時解碼器再新(Instantaneous Decoder Refresh,IDR)圖像。此等圖像不參考任何先前經解碼資訊,因此若先前經解碼圖像包含歸因於先前封包損失之錯誤,則可自IDR(框內-僅)圖像正確地對視訊進行解碼,從而防止傳輸錯誤漸增地累積。
週期性僅框內圖像亦引入處理複雜情況,此係因為所述圖像相比於經框間預測圖像極大。其常常需要多個圖框時間以供在編碼器與解碼器之間傳輸,且其不與舊版子框潛時編碼器/解碼器系統(甚至對區塊級粒度操作之系統)相容。
使用組合式框間與框內預測子框潛時之系統的習知方法係使用通常稱為框內再新之技術,以在短時間間隔內有效地限制位元串流之速率。此約束條件可基於對上文所描述之經寫碼圖像緩衝器模型的遵守。若編碼器之經寫碼圖像緩衝器未溢出,則位元率充分地受約束,或與緩衝器之給定大小及流傳輸速率相容。可藉由編碼器中之速率控制功能實現經寫碼圖像緩衝器相容性,速率控制功能藉由選擇需要多少量化來設定各區塊之大小。
在一些實施例中,框內再新方法可分配各圖像中之列或行以僅包含具有框內預測之區塊。可選擇框內區塊之集合,以使得在位元串流中之列中存在極少框內區塊,且經寫碼圖像緩衝器或經寫碼區塊緩衝器可係小的,且仍執行其位元率平滑功能。單執行緒低潛時編碼器可以光柵次序(亦即,逐列)對圖像之區塊進行編碼。在此狀況下,在行中定向框內再新區塊可係有利的,以避免在位元串流中使過多框內區塊分組在一起。
(一或多個)框內再新行之位置可隨各圖框前進一個行(或多個行),且可因此最終環繞圖像。此週期性地再新圖像,且使得在相對小數目個圖框內校正圖像之歸因於先前傳輸錯誤而不正確地經解碼之部分(例如,圖框之數目等於行之數目除以各圖框中之框內再新行的數目)。框內再新技術可包含防止圖像跨越框內再新行之邊界參考未再新區塊的運動補償約束。用於並行處理之低潛時視訊編碼器
本文實施例解決如何將編碼程序分離成多個具有並發獨立執行之並行任務或執行緒的技術問題。圖7係經劃分成行以供並行處理之視訊圖框的示意圖。如所說明,N個行(其各自包括3行像素區塊)中之每一者經分配至並行多處理器系統之單獨處理器以供編碼。箭頭展示編碼之區塊次序。如所說明,灰色加陰影行係框內預測區塊行;而無陰影行將優選地使用框間預測(但在一些實施例中,其可在不存在良好框間預測參考之情況下替代地使用框內預測)。一些編碼標準定義用於圖框劃分之結構容器,諸如HEVC中之影像塊。有利地,若經寫碼位元串流中之行之間不存在情境相依性,則可運用並行獨立任務對其進行編碼及解碼。各任務可產生對應於圖7中之數字行中之一者的經編碼位元子串流。可在所述行之間儘可能均勻地劃分將圖像之寬度成複數個區塊單元子集。
在此資料分解中,可藉由將視訊圖框正交地劃分成列以供處理來達成低潛時。圖8係類似於圖7之說明將位元串流中之經編碼位元傳輸至解碼器之定序的示意圖。如所說明,N個處理器可用以並行地對各列進行編碼,且可經由經寫碼列緩衝器逐行遞增地輸出編碼之結果。此不同於上文所描述之解碼單元(DU)分解,原因在於DU無法定義為正交地橫跨多個部分影像塊。N個處理器中之每一者可經組態以在N個處理器中之任一者傳輸後續行之子部分之前傳輸其各列之子部分(例如,經分配至特定處理器之各列中的3個像素區塊)。因此,可在傳輸來自後續行之區塊之前傳輸特定行之區塊的所有子部分作為列單元,使得解碼器可有效率地在來自不同列之區塊之間消除歧義。特定列之經編碼區塊的各子部分可包含指示視訊圖框之與子部分相關聯之一或多行的標記。有利地,以此方式並行化編碼程序可相對於非並行化編碼顯著地減小在對視訊圖框之列進行解碼之過程中引入之潛時,且減小並行多處理器系統中之處理器的潛時。另外,在傳輸後續列之前等待直至各列完全由所有處理器編碼為止可使得解碼器能夠有效率地判定哪個列與特定經編碼區塊相關聯。
可藉由如圖7及圖8中所展示之框內再新區塊的行實施框內再新。在各列內,大多數經寫碼區塊係框間再新區塊,其在列之間平等地分佈由框內再新區塊編碼引入之潛時,且防止特定行中之過量潛時集中度,其可引起緩衝器上溢或延遲傳輸。此允許將經寫碼列緩衝器之大小減小成含有小數目個列,且延遲減小成小數目個列時間。 9 及圖 10-- 具有並行處理之編碼及解碼管線
圖9係說明根據一些實施例之具有並行處理之概念編碼器架構的示意圖。在一些實施例中,圖9中的各「行n 編碼」區塊可以表示圖5中說明之編碼編碼管線的第二處理級。在圖10中說明互補解碼程序。
在一些實施例中,視訊圖框劃分成N個區塊行以供並行處理,其中N個行中之每一者經分配至並行多處理器系統之各別處理器。應注意,在編碼程序以視訊圖框之順序列的光柵掃描(如通常執行)繼續進行的實施例中,將視訊圖框劃分成行以供並行處理。然而,希望根據本文中之實施例的程序可替代地以順序行之豎直掃描繼續進行。在此等實施例中,可將視訊圖框劃分成N個列以供並行處理,其中N個列中之每一者經分配至並行多處理器系統之各別處理器。為了大體上指代此等實施例中之任一者,引入術語「列行(rolumn)」,其中如本文所定義之列行指代視訊圖框(之像素或像素區塊)之列或行中的任一者。
對於使用HEVC標準之實施例,各行可係寬度為若干CTU之影像塊,且影像塊高度可係視訊圖框之影像塊高度。可將視訊圖框正交地劃分成列以供低潛時視訊傳輸。可自列單元中之N並行編碼任務取得編碼之遞增輸出,從而實際上傳輸N個並行交錯流。可藉由支援待運用框內預測寫碼之CTU行來支援框內再新。
有利地,此編碼器組織可產生實現並行處理以在編碼器中達成支援框間及框內預測之子框潛時的系統。此外,可使根據本文所述之實施例編碼之位元串流與HEVC視訊壓縮標準相容且可由任何相容解碼器裝置解碼。在所有HEVC規範中支援具有影像塊之編碼,包含「主規範」及HEVC版本2中引入之格式範圍擴展規範。在一些實施例中,可將圖7中之各行指派給影像塊,且各行可在其寬度係256個亮度樣本或更大之情況下與編碼標準相容,僅作為一個實例。
HEVC中之各影像塊可獨立地且與所有其他影像塊同時經編碼。運動向量參考可仍係交叉影像塊邊界,因此對於諸如AVC/H.264中之靈活巨集區塊定序(flexible macroblock ordering,FMO)之其他標準的圖像分割方案,對壓縮效率之負面影響可小得多。附錄 B 位元組流
許多現代視訊壓縮標準定義可用以自編碼器至解碼器傳輸視訊要素之位元串流的特定形式。位元串流格式規範可規定對元素進行編碼之次序、及將其編碼成可經剖析及解碼之單個位元串流的方式。在所述標準之附錄A中定義遵守編碼規範及位準之要求且遵守附錄B係單獨準則係值得注意的。
根據本文所述之實施例,編碼器藉由逐列交錯多個獨立編碼任務之輸出來達成與並行處理之子框潛時,此超出附錄B位元組流之定義。大多數相容HEVC解碼裝置確實針對其輸入需要附錄B格式,因此本文實施例可利用具有與編碼器匹配之輸入介面的特殊解碼器實施方案。本文實施例可對視訊進行編碼以形成可經後處理以將經壓縮視訊元素重新定序成HEVC標準之附錄B中指定的標準化次序的位元串流,以形成習知位元串流。格式器之輸出可接著與習知HEVC解碼裝置即時地解碼,或保存至檔案。包含此附錄B格式器及習知解碼器之端對端系統的潛時可比不具有格式器且使用特殊解碼器實施方案之系統長大致一個圖框。與其他編碼標準的相容性
圖7中所展示之影像塊組織允許N個並行任務作用於N個影像塊行。然而,比HEVC早之一些編碼標準不包含適合之語法以將圖像劃分成經獨立寫碼之行。舉例而言,高級視訊寫碼(AVC/H.264)之基線規範中的靈活巨集區塊定序(FMO)語法並不啟用至交叉切邊界之移動向量。
本文中所描述之實施例的編碼方法可仍與此等或其他編碼標準一起使用,但所得位元串流可能需要重新編碼經重新格式化成相容位元串流。基於除HEVC以外之編碼標準的一些實施例可利用專有編碼器-解碼器解決方案,而不存在與基於標準之解碼裝置之互操作性的任何益處。適用裝置技術
一些實施例可適用於使用ASIC或SOC中之固定功能邏輯區塊實施的編碼器,以及適用於以在並行處理架構上執行之軟體實施的編碼器。適合之處理器裝置的實例可包含Coherent Logix之HyperX™處理器家族的處理器-記憶體網路體系結構或對稱多處理器架構(例如,因特爾(Intel)Skylake™、具有或不具有GPU加速度)。
軟體實施方案可適合於許多應用,此係因為其允許完全可重組態性。由於涉及大量計算,並行處理方法可有利地用於軟體編碼。一些實施例可出於子框潛時而提供舊版基於軟體之編碼器的適應。
固定功能邏輯區塊方法可運用單個執行線緒中之框間及框內預測即時達成子框潛時,但其對於一些應用可能並非適合之技術。舉例而言,固定功能邏輯可不可重組態的,且其邏輯元件可能對於除編碼以外之其他功能不可用。舉例而言,其可係非可更新以添加能力、修復錯誤或支援未來編碼標準的。本文實施例仍可應用於基於同時工作之固定功能邏輯區塊的編碼器,以作為使產出率提高超出由單個裝置提供之容量的方式。影像掃描次序
將許多所描述實施例撰寫為假定習知影像光柵掃描次序,其中自左至右、自上而下掃描視訊線。然而,一些實施例可併有與編碼器之輸入緊密整合的影像感測器,從而允許替代性影像掃描次序。舉例而言,可自上而下以非優先次序且自左至右以優先次序掃描樣品。此等實施例之應用可接著呈同時且同步地編碼之獨立列影像塊的形式。可運用行粒度收集編碼之結果,以供傳輸至匹配之解碼器。框內再新頻帶可接著呈隨各連續圖像沿圖框前進之框內區塊列的形式。可達成所描述實施例之編碼方法及益處,而不論掃描次序,此係因為子框潛時編碼在並行處理實施方案中使用框內及框間預測。 11—— 並行子框潛時編碼器流程圖
圖11係說明根據一些實施例之並行多處理器編碼器系統對視訊圖框序列進行編碼且傳輸所述序列之例示性方法的流程圖。並行多處理器編碼器系統可包括於UE 106、基地台102、網際網路伺服器或另一類型之計算裝置內。並行多處理器編碼器系統可包括耦接至各別記憶體媒體之複數個並行處理器,且可進一步包括經組態以協調並行處理器之間的活動之主控處理器。可以與所展示之次序不同的次序同時地執行所展示之一些方法要素,或可省略一些方法要素。亦可按需要執行額外的方法要素。如所展示,方法可操作如下。
編碼器系統可以在其上儲存有或可接收包括圖框序列之視訊資料,其中各圖框包括順序列中之複數個像素區塊。在1102處,可將各圖框劃分成複數個像素區塊子集。複數個區塊之子集可包括其各別圖框之一或多個區塊行。
在一些實施例中,複數個區塊中之第二子集可包括框內再新區塊,其中複數個區塊中之在第二子集之外的剩餘區塊可包括非框內再新區塊(例如,框間再新區塊)。在一些實施例中,框內再新區塊平等地分佈於圖框之列之間。在一些實施例中,框內再新區塊平等地分佈於多處理器系統之處理器之間。在一些實施例中,對於各順序圖框,可將包括複數個區塊之第二子集的區塊分配至順序圖框之一或多個不同行。
在1104處,可將各區塊子集分配至並行多處理器系統之各別處理器。在一些實施例中,可將區塊子集分配且傳輸至其各別處理器。替代地,可將全部複數個區塊傳輸至各處理器,且各處理器可接著將所述複數個區塊劃分成各別區塊子集,且將此區塊子集分配至自身以供編碼。
在一些實施例中,處理器中之一或多者可執行視訊分析以判定區塊列中之每一者的編碼提示。對於區塊列中之每一者,可將各別編碼提示傳達至並行多處理器系統之各處理器。
在1106處,並行多處理器系統之各處理器可順序地對經分配至各別處理器之區塊子集的列進行編碼。
在一些實施例中,可對多處理器系統之處理器中之每一者的編碼程序實施獨立速率控制。作為一個實例,獨立速率控制可用以促進視訊圖框之列中之每一者的可比較經寫碼圖像緩衝器佔有率。替代地或另外,獨立速率控制可用以維持視訊圖框之列中之每一者的類似位元率。可獨立於所述將圖框劃分成區塊子集而針對視訊圖框之各區塊列實施速率控制。
在一些實施例中,在完成圖框之所有列的編碼之後,可即刻將區塊子集之經編碼列作為各別經編碼圖框儲存於對並行多處理器系統之處理器可接入的記憶體緩衝器(其可係單個記憶體緩衝器或複數個分佈式記憶體緩衝器)中。在此等實施例中,所述編碼可包括基於對應於先前圖框之經編碼圖框而對非框內再新區塊進行編碼,且可不參考對應於先前圖框之經編碼圖框而對框內再新區塊進行編碼。
在1108處,各處理器可將各經編碼區塊列作為位元串流順序傳輸至通道上之解碼器。對於各列,可在傳輸與用於任何處理器之各別列連續的列之經編碼區塊列之前將各別列之經編碼區塊列傳輸至用於各處理器之解碼器。
在一些實施例中,將各經編碼區塊列作為位元串流順序傳輸至解碼器包括各處理器以經編碼區塊列在圖框內之行位置的識別符標記經編碼區塊列。各處理器可將經編碼區塊列傳輸至經編碼列緩衝器以供傳輸至解碼器。
儘管圖11中描述之方法分配區塊子集作為區塊行且繼續順序逐列對各圖框進行編碼,但在其他實施例中,可將各圖框劃分成包括區塊列之子集,且並行處理器可逐行對各圖框進行編碼。換言之,在其他實施例中,圖11中所描述之列與行可交換。 12-- 並行子框潛時解碼器流程圖
圖12係說明並行多處理器解碼器系統接收且對經編碼視訊圖框之序列進行解碼之例示性方法的流程圖。並行多處理器解碼器系統可包括於UE 106、個人電腦、平板電腦、智慧型TV、攜帶型視訊播放器或另一類型之計算裝置內。並行多處理器解碼器系統可包括耦接至各別記憶體媒體之複數個並行處理器,且可進一步包括經組態以協調並行處理器之間的活動之主控處理器。可以與所展示之次序不同的次序同時地執行所展示之一些方法要素,或可省略一些方法要素。亦可按需要執行額外的方法要素。如所展示,方法可操作如下。
在1202處,解碼器系統可自通道接收經編碼視訊資料。經編碼視訊資料可包括經編碼圖框序列,其中各經編碼圖框包括順序列中之複數個經編碼像素區塊。
在1204處各可將經編碼視訊資料之經編碼圖框劃分成複數個區塊子集。在一些實施例中,複數個區塊之子集可包括其各別圖框之一或多個區塊行。
在1206處,可將各區塊子集分配至並行多處理器系統之各別處理器。替代地,在一些實施例中,可將整個經編碼視訊資料供應至並行多處理器系統之各處理器,且各處理器可將經編碼視訊資料劃分成區塊子集,以由各別處理器解碼。換言之,各處理器可接收整個經編碼視訊圖框,且可個別地將視訊圖框分配至並行解碼之子部分中。
在1208處,並行多處理器系統之各處理器可順序地對經分配至各別處理器之區塊子集的列進行解碼。在一些實施例中,可對多處理器系統之處理器中之每一者實施獨立速率控制。作為一個實例,獨立速率控制可用以促進所述處理器中之每一者的可比較經寫碼圖像緩衝器佔有率。替代地或另外,獨立速率控制可用以維持處理器中之每一者的類似位元率。
在1210處,可組合經解碼區塊列以獲得經解碼圖框。對於各列,在組合與用於任何處理器之各別列連續的列之經編碼區塊列之前,可組合用於各處理器之各別行之經解碼區塊。
在1212處,可輸出經解碼圖框作為經解碼圖框序列。
儘管圖12中描述之方法分配區塊子集作為區塊行且繼續順序逐列對各圖框進行編碼,但在其他實施例中,可將各圖框劃分成包括區塊列之子集,且並行處理器可逐行對各圖框進行編碼。換言之,在其他實施例中,圖12中所描述之列與行可交換。處理網路計算模型
以下段落提供關於處理網路計算模型之額外細節,所述模型可用以實施本文中所描述之實施例。處理網路係圖形計算模型。如此上下文中所使用之術語「圖形」可指代將設計描述為有向圖,其中節點表示並發程序,且圓弧表示單向通信通道。在圖13中展示實例處理網路。各節點可實施為在習知軟體意義上遵循指令序列之子程式,或實施為含有其自有處理網路之子圖形。以此方式,模型支援可擴展階層式設計:設計之一個階層式層級下的圖表可在僅瞭解其分界面而給其內部組合物之情況下實例化具有任意大小之子圖形。子圖形之模板被稱作小區,且可出於並行處理起見而被實例化多次。小區係組合物、抽象化及再使用之單位,其以多種方式類似於面向對象方法中之類別。
當節點實施為子程式時,其遵循必要程式化之常見語義,如以「C」程式設計語言,同時存在數個差異。資料接收及資料發送經添加至原始處理操作之集合。此等僅係節點之間的資料傳送之手段。在節點之間不存在共用狀態,且所有節點並不共用全局上下文。替代地,各節點可接入私用本端記憶體。資料通信係節點之間的功能調用之語義的替換;不需要對功能傳回進行類比。此在串流傳輸應用中係有意義的,其中節點計算之結果經轉發至計算管道中之下一級,而非返回至較早調用者。
對必要程式化之常見語義的此等限制對總體軟體設計具有重要影響。處理網路中之節點遵守定位原理;除了經由通信通道發送且接收資料指代,在一個節點中無論發生什麼計算皆無法影響另一節點。資料通信亦係程序之間的同步的手段。子程式內之不涉及資料發送及接收操作的所有操作假定與設計中之各其他節點異步。表達為階層式處理網路之設計本質上曝露演算法之可用平行性。
處理網路可實現並行處理設計圖案之豐富集合。在圖13中,小區T之各個例實施任務並行管線。小區之工作劃分成使產出率加倍之兩個步驟的序列;小區T內之兩個子程式同時作用於連續工作負荷以實施順序程序。小區T之兩個個例表示資料並行設計圖案,各個例負責處理來自程序a 之工作負荷的一半。
處理網路可包含定義連續、單調程序:自(潛在無限制)輸入資料流至一或多個輸出資料流之唯一映射。關鍵態樣係程序對輸入流之部分迭代地執行其計算,而不等待完整輸入完成。諸如視訊圖框之資料結構可以流形式存在,而不會在處理記憶體中不斷完全存在。傳達順序程序(Communicating Sequential Processe,CSP)描述與不同通道語義類似之處理網路、及多於實施HEVC編碼器所需之原始處理操作的更豐富集合。
處理網路計算模型比習知必要程式化模型更佳地適合於並行處理,習知必要程式化模型可使得程式設計師甚至在演算法不需要順序次序時亦分配功能之間的順序次序。接著,程式設計師可能需要展開人工序列約束以將程式碼分離成並發執行緒,且添加額外旗語元素以防止共用記憶體中之資料危險。諸如用於SMP及圖形處理單元(Graphics Processing Unit,GPU)裝置之OpenMP及OpenCL之並行處理共用程式庫可大體上僅提供資料並行設計分解。 ***
可以各種形式中之任一者來實現本發明之實施例。舉例而言,在一些實施例中,本發明可以電腦實施方法、電腦可讀記憶體媒體或電腦系統之形式實現。在其他實施例中,本發明可使用諸如ASIC之一或多個常規設計硬體裝置實現。在其他實施例中,本發明可使用諸如FPGA之一或多個可程式化硬體元件來實現。
在一些實施例中,非暫時性電腦可讀記憶體媒體可經組態,以使得其儲存程式指令及/或資料,其中程式指令在由電腦系統執行之情況下使得電腦系統方法,例如本文中所描述之方法實施例中之任一者、或本文中所描述之方法實施例之任何組合、或本文中所描述之方法實施例中之任一者的任何子集、或此類子集之任何組合。
在一些實施例中,計算裝置可經組態以包含處理器(或一組處理器)及記憶體媒體,其中所述記憶體媒體儲存程式指令,其中所述處理器經組態以自記憶體媒體讀取且執行程式指令,其中可執行程式指令以實施本文中所描述之各種方法實施例中之任一者(或本文中所描述之方法實施例的任何組合、或本文中所描述之方法實施例中之任一者之任何子集、或此類子集之任何組合)。裝置可以各種形式中之任一者實現。
儘管上文已經描述特定實施例,但此等實施例並不意欲限制本發明之範疇,即使僅關於特定特徵描述單一實施例。除非另外陳述,否則本發明中所提供之特徵之實例意欲為說明性的而非為限制性的。以上描述意欲涵蓋將對受益於本發明之本領域中熟習此項技術者係顯而易見之此等替代物、修改以及等效物。
本發明之範疇包含本文中所揭示之任何特徵或特徵之組合(明確地抑或隱含地)或其任何推廣,而無論其是否減輕本文中所解決之問題中的任一者或所有。因此,可在本申請案(或主張其優先權之申請案)之審查期間將新技術方案公式化為特徵之任何此類組合。特定而言,參考附加申請專利範圍,來自附屬項之特徵可與獨立項之彼等特徵組合,且來自各別獨立項之特徵可以任何適當方式而不僅僅以附加申請專利範圍中所列舉之特定組合來組合。
102:視訊編碼器/蜂巢式基地台編碼器/編碼器裝置 104:網路 106:視訊解碼器/解碼接收器/解碼器裝置 400:系統單晶片(SoC)/組件 402:處理器 404:顯示電路系統/組件 406:記憶體/組件 410:NAND快閃/組件 420:連接器介面/連接器I/F/組件 430:無線通信電路/無線通信電路系統/組件 435:天線/組件 440:記憶體管理單元(MMU)/組件 460:顯示器/組件 1102:步驟 1104:步驟 1106:步驟 1108:步驟 1202:步驟 1204:步驟 1206:步驟 1208:步驟 1210:步驟 1212:步驟
可在結合以下圖式來考慮較佳實施例之以下詳細描述時獲得對本發明之較佳理解,在所述圖式中:
圖1係說明根據一些實施例之編碼器/解碼器通信系統的圖式;
圖2係說明根據一些實施例之例示性編碼器/解碼器裝置的方塊圖;
圖3係根據一些實施例之具有穿插式處理元件、記憶體及資料記憶體路由器之並行多處理器系統的示意圖;
圖4係說明根據一些實施例之基礎基於圖框之編碼管線的流程圖;
圖5係說明根據一些實施例之基於基礎區塊之編碼管線的流程圖;
圖6係說明根據一些實施例之用於即時編碼及解碼之端對端系統的流程圖;
圖7係根據一些實施例之展示用於複數個並行處理器之處理流程之視訊圖框分配的實例;
圖8係根據一些實施例之展示複數個並行處理器經由通道傳輸經編碼列之次序之視訊圖框分配的實例;
圖9係說明根據一些實施例之利用並行處理之基於區塊之編碼管線的流程圖;
圖10係說明根據一些實施例之利用並行處理之基於區塊之解碼管線的流程圖;
圖11係說明根據一些實施例之並行多處理器編碼器系統對視訊圖框序列進行編碼且傳輸所述序列之例示性方法的流程圖;
圖12係說明根據一些實施例之並行多處理器解碼器系統接收且對經編碼視訊圖框序列進行解碼之例示性方法的流程圖;且
圖13係說明根據一些實施例之具有兩個層級之例示性階層式處理網路的示意圖。
儘管本發明易有各種修改及替代形式,但其特定實施例藉助於實例在圖式中展示,且在本文中對其進行詳細描述。然而,應理解,圖式及其詳細描述不意欲將本發明限制於所揭示之特定形式,但相反,意欲涵蓋屬於如由所附申請專利範圍所界定的本發明之精神及範疇內之所有修改、等效者及替代例。
術語「經組態以」在本文中用以藉由指示單元/電路/組件包含在操作期間執行一或多個彼等任務之結構(例如,電路)來意指結構。因而,單元/電路/組件可據稱經組態以甚至在單元/電路/組件當前未操作(例如,未接通)時亦執行任務。與語言「經組態以」一起使用之單元/電路/組件包含硬體——例如,電路、儲存可執行以實施操作之程式指令之記憶體等。敍述單元/電路/組件「經組態以」執行一或多個任務明確地既定不引用依據35 U.S.C. § 112(f)之彼單元/電路/組件的解譯。
1102:步驟
1104:步驟
1106:步驟
1108:步驟

Claims (20)

  1. 一種用於對視訊資料進行編碼之方法,其中該視訊資料包括一序列(sequence)之圖框,其中各圖框包括順序列(sequential row)中複數個像素,該方法包括:針對各圖框:將該複數個像素劃分成複數個像素區塊,其中各區塊經分配至一並行多處理器(parallel multi-processor)系統之一各別處理器;藉由該並行多處理器系統之各個各別處理器:順序地對經分配至該各別處理器之該區塊之列(rows)進行編碼;及將該區塊之各經編碼列作為一位元串流順序地傳輸至一通道上之一解碼器,其中該並行多處理器系統之各處理器在一不同通道上傳輸其各別位元串流。
  2. 如請求項1之方法,其中獨立速率控制維持各圖框之該等列之一類似位元速率。
  3. 如請求項1之方法,其中各通道包括經編碼圖像緩衝器(coded picture buffers)之一各別集合。
  4. 如請求項1之方法,其中針對經分配至該並行多處理器系統之不同處理器之該等區塊獨立地施 加(apply)一速率控制功能(function)。
  5. 如請求項1之方法,其中該編碼包括參考或不參考一先前經編碼圖框而對非框內再新(non-intra-refresh)像素進行編碼,且其中框內再新(intra-refresh)像素係不參考該先前經編碼圖框而編碼。
  6. 如請求項1之方法,該方法進一步包括:儲存該等區塊之該等經編碼列作為對該並行多處理器系統之該等處理器可接入(accessible)之一記憶體緩衝器中之一各別經編碼圖框。
  7. 如請求項1之方法,該方法進一步包括:執行視訊分析以判定該等區塊之各列之編碼提示(hint);及將該等區塊之各列之該等各別編碼提示傳達(communicate)至該並行多處理器系統之各處理器。
  8. 一種並行多處理器視訊編碼器系統,其包括:複數個並行處理器,其耦接至各別非暫時性電腦可讀記憶體媒體,其中該並行多處理器視訊編碼器系統經組態以對包括一序列之圖框之視訊資料進行編碼,其中各圖框包括像素之複數個區塊,其中,在對該視訊資料進行編碼中,該並行多處理器視訊編碼器系統經組態以針對各圖框而:將像素之該複數個區塊之像素之各區塊分配至該複數個並行處理器之 一各別處理器;及藉由該複數個並行處理器之各處理器而:順序地對經分配至該各別處理器之該區塊之列進行編碼;及將該區塊之各經編碼列作為一位元串流順序地傳輸至一通道上之一解碼器;其中該複數個並行處理器之各處理器在一不同通道上傳輸其各別位元串流。
  9. 如請求項8之並行多處理器視訊編碼器系統,其中獨立速率控制維持各圖框之該等列之一類似位元速率。
  10. 如請求項8之並行多處理器視訊編碼器系統,其中各通道包括經經碼圖像緩衝器之一各別集合。
  11. 如請求項8之並行多處理器視訊編碼器系統,其中針對經分配至該並行多處理器系統之不同處理器之該等區塊獨立地施加一速率控制功能。
  12. 如請求項8之並行多處理器視訊編碼器系統,其中該編碼包括參考或不參考一先前經編碼圖框而對非框內再新(non-intra-refresh)像素進行編碼,且其中框內再新(intra-refresh)像素是不參考該先前經編碼圖框而編碼。
  13. 如請求項8之並行多處理器視訊編碼器系統,其中該並行多處理器視訊編碼器系統進一步經組態以:儲存該等區塊之該等經編碼列作為對該並行多處理器系統之該等處理器可接入之一記憶體緩衝器中之一各別經編碼圖框。
  14. 如請求項8之並行多處理器視訊編碼器系統,其中該並行多處理器視訊編碼器系統進一步經組態以:執行視訊分析以判定該等區塊之各列之編碼提示;及將該等區塊之各列之該等各別編碼提示傳達至該並行多處理器系統之各處理器。
  15. 一種用於對經編碼視訊資料進行解碼之方法,其中該經編碼視訊資料包括一序列之經編碼圖框,其中各經編碼圖框包括經編碼像素之複數個區塊,該方法包括:針對各經編碼圖框而:接收該複數個區塊作為經由(through)複數個通道之各別位元串流;將各區塊分配至一並行多處理器系統之一各別處理器;藉由該等各別處理器並行地解碼該複數個區塊;組合該經解碼之複數個區塊以獲得一經解碼圖框;及輸出該經解碼圖框。
  16. 如請求項15之方法,其中獨立速率控制維持各圖框之該等列之一類似位元速率。
  17. 如請求項15之方法,其中各通道包括經編碼圖像緩衝器之一各別集合。
  18. 如請求項15之方法,其中針對經分配至該並行多處理器系統之不同處理器之該等區塊獨立地施加一速率控制功能。
  19. 如請求項18之方法,其中使用該速率控制功能以促進可比較經編碼圖像緩衝器佔有率(occupancy)或針對該等處理器之各者維持一類似位元速率。
  20. 如請求項15之方法,其中該等區塊包括其各別圖框之像素之列(row)或行(column)。
TW110100315A 2017-12-12 2018-12-12 運用並行處理之低潛時視訊編解碼器及傳輸 TWI797533B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762597457P 2017-12-12 2017-12-12
US62/597,457 2017-12-12
US201862661779P 2018-04-24 2018-04-24
US62/661,779 2018-04-24

Publications (2)

Publication Number Publication Date
TW202126037A TW202126037A (zh) 2021-07-01
TWI797533B true TWI797533B (zh) 2023-04-01

Family

ID=65139109

Family Applications (2)

Application Number Title Priority Date Filing Date
TW110100315A TWI797533B (zh) 2017-12-12 2018-12-12 運用並行處理之低潛時視訊編解碼器及傳輸
TW107144864A TWI718452B (zh) 2017-12-12 2018-12-12 運用並行處理之低潛時視訊編解碼器及傳輸

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW107144864A TWI718452B (zh) 2017-12-12 2018-12-12 運用並行處理之低潛時視訊編解碼器及傳輸

Country Status (5)

Country Link
US (3) US10873754B2 (zh)
EP (1) EP3725073A1 (zh)
CN (2) CN116567257A (zh)
TW (2) TWI797533B (zh)
WO (1) WO2019118566A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556390B2 (en) * 2018-10-02 2023-01-17 Brainworks Foundry, Inc. Efficient high bandwidth shared memory architectures for parallel machine learning and AI processing of large data sets and streams
US20200137134A1 (en) * 2018-10-31 2020-04-30 Ati Technologies Ulc Multi-session low latency encoding
BR112021014857A2 (pt) * 2019-02-01 2021-10-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decodificador e codificador de vídeo e seus métodos, aparelho de composição de vídeo, composição de vídeo e fluxo de dados
CN110602122A (zh) * 2019-09-20 2019-12-20 北京达佳互联信息技术有限公司 视频处理方法、装置、电子设备及存储介质
EP3829170A1 (en) * 2019-11-29 2021-06-02 Axis AB Encoding and transmitting image frames of a video stream
US20210184795A1 (en) * 2019-12-16 2021-06-17 Nvidia Corporation Accelerated parallel processing of 5g nr signal information
WO2021173539A1 (en) 2020-02-24 2021-09-02 Bytedance Inc. Partition calculation based on subpicture level
JP7479492B2 (ja) 2020-03-03 2024-05-08 バイトダンス インコーポレイテッド ビデオ・コーディングにおける低周波ノン・セパラブル変換シグナリング
US11003498B1 (en) * 2020-08-10 2021-05-11 Coupang Corp. Computerized systems and methods for fail-safe loading of information on a user interface using a circuit breaker
KR20220078258A (ko) * 2020-12-03 2022-06-10 주식회사 선테크 초고해상도 스트리밍 영상 처리 시스템 및 방법
KR20220144241A (ko) * 2021-04-19 2022-10-26 삼성전자주식회사 서버 및 그 제어 방법
US11882277B2 (en) * 2021-05-05 2024-01-23 Mediatek Inc. Video encoding method using multiple in-loop filters in low latency video encoding and associated video encoding apparatus
CN113473106A (zh) * 2021-06-18 2021-10-01 青岛小鸟看看科技有限公司 图像传输方法、图像显示及处理设备、及图像传输系统
CN114268793B (zh) * 2021-12-21 2024-04-16 北京达佳互联信息技术有限公司 编码方法及装置
CN116708787A (zh) * 2022-02-28 2023-09-05 华为技术有限公司 编解码方法和装置
US11425423B1 (en) 2022-03-10 2022-08-23 Yendo Hu Memory storage for motion estimation and visual artifact redcution
CN116389762B (zh) * 2023-06-05 2023-08-15 长沙千视电子科技有限公司 一种视频数据SpeedHQ编码方法及装置
CN117389571B (zh) * 2023-12-11 2024-04-12 芯动微电子科技(武汉)有限公司 一种基于opencl的jpeg2000中t1并行解码方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160055305A1 (en) * 2014-08-19 2016-02-25 eagleyemed, Inc. Video enhancements for live sharing of medical images
US20160142740A1 (en) * 2014-11-17 2016-05-19 Sony Corporation Data encoding and decoding
WO2017197434A1 (en) * 2016-05-20 2017-11-23 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
WO2017205597A1 (en) * 2016-05-25 2017-11-30 Gopro, Inc. Image signal processing-based encoding hints for motion estimation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7415594B2 (en) 2002-06-26 2008-08-19 Coherent Logix, Incorporated Processing system with interspersed stall propagating processors and communication elements
CN103154925B (zh) 2010-10-15 2016-08-24 相干逻辑公司 多处理器系统中的通信禁用
US9218639B2 (en) * 2013-09-27 2015-12-22 Apple Inc. Processing order in block processing pipelines
US9936207B2 (en) * 2013-10-14 2018-04-03 Qualcomm Incorporated Indication of parallel processing in video coding
KR20150057790A (ko) * 2013-11-20 2015-05-28 삼성전자주식회사 웨이브-프런트 어프로치에 기초한 비디오 프레임의 병렬 처리 방법
GB2523736B (en) * 2014-02-19 2020-03-25 Advanced Risc Mach Ltd Rate control in video encoding
US10264257B2 (en) * 2015-06-30 2019-04-16 Texas Instruments Incorporated Video encoding
US10003811B2 (en) * 2015-09-01 2018-06-19 Microsoft Technology Licensing, Llc Parallel processing of a video frame

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160055305A1 (en) * 2014-08-19 2016-02-25 eagleyemed, Inc. Video enhancements for live sharing of medical images
US20160142740A1 (en) * 2014-11-17 2016-05-19 Sony Corporation Data encoding and decoding
WO2017197434A1 (en) * 2016-05-20 2017-11-23 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
WO2017205597A1 (en) * 2016-05-25 2017-11-30 Gopro, Inc. Image signal processing-based encoding hints for motion estimation

Also Published As

Publication number Publication date
TW202322626A (zh) 2023-06-01
US11323729B2 (en) 2022-05-03
TW202126037A (zh) 2021-07-01
CN111557093A (zh) 2020-08-18
CN116567257A (zh) 2023-08-08
CN111557093B (zh) 2023-07-04
US10873754B2 (en) 2020-12-22
US20190182495A1 (en) 2019-06-13
TW201937925A (zh) 2019-09-16
US20220264130A1 (en) 2022-08-18
US20210152839A1 (en) 2021-05-20
US11849130B2 (en) 2023-12-19
EP3725073A1 (en) 2020-10-21
WO2019118566A1 (en) 2019-06-20
TWI718452B (zh) 2021-02-11

Similar Documents

Publication Publication Date Title
TWI797533B (zh) 運用並行處理之低潛時視訊編解碼器及傳輸
US11582459B2 (en) Method and system for picture segmentation using columns
TWI812694B (zh) 以角度模式延伸之位置相關框內預測組合
US9967577B2 (en) Acceleration interface for video decoding
TWI415446B (zh) 用於視頻壓縮的並行處理裝置
Zhou et al. A 530 Mpixels/s 4096x2160@ 60fps H. 264/AVC high profile video decoder chip
TWI774075B (zh) 視頻編解碼之具有不同色度格式的多假設預測模式之方法和裝置
US20080170611A1 (en) Configurable functional multi-processing architecture for video processing
RU2010135495A (ru) Видеотранскодер с гибким управлением качеством и сложностью
US11956473B2 (en) Managing coding tools combinations and restrictions
US20100246679A1 (en) Video decoding in a symmetric multiprocessor system
KR101292668B1 (ko) 멀티프로세서기반의 영상 복호화 장치 및 방법
JP5999515B2 (ja) 画像処理装置、及び、画像処理方法
JP2022511308A (ja) オーバーラップブロック動き補償のためのブロック拡張を用いた映像符号化又は復号化
Chavarrías et al. A DSP-Based HEVC decoder implementation using an actor language dataflow model
JP5265984B2 (ja) 画像符号化装置及び復号装置
JP2022523903A (ja) ビデオコード化のための残差コード化における通常のビンの柔軟な割り当て
RU2783587C2 (ru) Способ и устройство для связанной с тайлом адресации при кодировании видеосигнала