TWI806480B - 視訊編解碼方法、裝置、計算機可讀媒體及電子設備 - Google Patents

視訊編解碼方法、裝置、計算機可讀媒體及電子設備 Download PDF

Info

Publication number
TWI806480B
TWI806480B TW111108452A TW111108452A TWI806480B TW I806480 B TWI806480 B TW I806480B TW 111108452 A TW111108452 A TW 111108452A TW 111108452 A TW111108452 A TW 111108452A TW I806480 B TWI806480 B TW I806480B
Authority
TW
Taiwan
Prior art keywords
value
displacement vector
residual
direction component
serial
Prior art date
Application number
TW111108452A
Other languages
English (en)
Other versions
TW202236850A (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 TW202236850A publication Critical patent/TW202236850A/zh
Application granted granted Critical
Publication of TWI806480B publication Critical patent/TWI806480B/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本發明的實施例提供了一種視訊編解碼方法、裝置、計算機可讀媒體及電子設備。該視訊解碼方法包括:從碼流中解碼得到串位移向量殘差第一方向分量絕對值;若所述串位移向量殘差第一方向分量絕對值不爲0,則從所述碼流中解碼得到串位移向量殘差第一方向分量符號值;根據所述串位移向量殘差第一方向分量絕對值,以及所述串位移向量殘差第一方向分量符號值,確定串位移向量殘差第一方向分量的值。

Description

視訊編解碼方法、裝置、計算機可讀媒體及電子設備
本發明涉及計算機及通信技術領域,具體而言,涉及一種視訊編解碼方法、裝置、計算機可讀媒體及電子設備。
一些視訊編碼標準中,幀內串複製(Intra String Copy,簡稱ISC)模式的串位移向量(String Vector,簡稱SV)使用的運動向量編碼方法流程較爲繁瑣,編解碼複雜度較高,影響了視訊編解碼效率。
本發明的實施例提供了一種視訊編解碼方法、裝置、計算機可讀媒體及電子設備,進而至少在一定程度上可以提高視訊的編解碼效率。
本發明的其他特性和優點將通過下面的詳細描述變得顯然,或部分地通過本發明的實踐而習得。
根據本發明實施例的一個方面,提供了一種視訊解碼方法,包括:從碼流中解碼得到串位移向量殘差第一方向分量絕對值;若所述串位移向量殘差第一方向分量絕對值不爲0,則從所述碼流中解碼得到串位移向量殘差第一方向分量符號值;根據所述串位移向量殘差第一方向分量絕對值,以及所述串位移向量殘差第一方向分量符號值,確定串位移向量殘差第一方向分量的值。
根據本發明實施例的一個方面,提供了一種視訊編碼方法,包括:確定串位移向量殘差第一方向分量絕對值;若所述串位移向量殘差第一方向分量絕對值不爲0,則獲取串位移向量殘差第一方向分量符號值;根據所述串位移向量殘差第一方向分量絕對值,以及所述串位移向量殘差第一方向分量符號值,進行編碼處理。
根據本發明實施例的一個方面,提供了一種視訊解碼裝置,包括:第一解碼單元,配置爲從碼流中解碼得到串位移向量殘差第一方向分量絕對值;第二解碼單元,配置爲若所述串位移向量殘差第一方向分量絕對值不爲0,則從所述碼流中解碼得到串位移向量殘差第一方向分量符號值;第一處理單元,配置爲根據所述串位移向量殘差第一方向分量絕對值,以及所述串位移向量殘差第一方向分量符號值,確定串位移向量殘差第一方向分量的值。
根據本發明實施例的一個方面,提供了一種視訊編碼裝置,包括:第一確定單元,配置爲確定串位移向量殘差第一方向分量絕對值;第二確定單元,配置爲若所述串位移向量殘差第一方向分量絕對值不爲0,則獲取串位移向量殘差第一方向分量符號值;編碼單元,配置爲根據所述串位移向量殘差第一方向分量絕對值,以及所述串位移向量殘差第一方向分量符號值,進行編碼處理。
根據本發明實施例的一個方面,提供了一種計算機可讀媒體,其上儲存有計算機程式,所述計算機程式被處理器執行時實現如上述實施例中所述的方法。
根據本發明實施例的一個方面,提供了一種電子設備,包括:一個或多個處理器;儲存裝置,用於儲存一個或多個程式,當所述一個或多個程式被所述一個或多個處理器執行時,使得所述一個或多個處理器實現如上述實施例中所述的方法。
根據本發明實施例的一個方面,提供了一種計算機程式産品或計算機程式,該計算機程式産品或計算機程式包括計算機指令,該計算機指令儲存在計算機可讀儲存媒體中。計算機設備的處理器從計算機可讀儲存媒體讀取該計算機指令,處理器執行該計算機指令,使得該計算機設備執行上述各種可選實施例中提供的方法。
應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,並不能限制本發明。
現在將參考附圖更全面地描述示例實施方式。然而,示例實施方式能夠以多種形式實施,且不應被理解爲限於在此闡述的範例;相反,提供這些實施方式使得本發明將更加全面和完整,並將示例實施方式的構思全面地傳達給本領域的技術人員。
此外,所描述的特徵、結構或特性可以以任何合適的方式結合在一個或更多實施例中。在下面的描述中,提供許多具體細節從而給出對本發明的實施例的充分理解。然而,本領域技術人員將意識到,可以實踐本發明的技術方案而沒有特定細節中的一個或更多,或者可以採用其它的方法、組元、裝置、步驟等。在其它情況下,不詳細示出或描述公知方法、裝置、實現或者操作以避免模糊本發明的各方面。
附圖中所示的方框圖僅僅是功能實體,不一定必須與物理上獨立的實體相對應。即,可以採用軟體形式來實現這些功能實體,或在一個或多個硬體模組或積體電路中實現這些功能實體,或在不同網路和/或處理器裝置和/或微控制器裝置中實現這些功能實體。
附圖中所示的流程圖僅是示例性說明,不是必須包括所有的內容和操作/步驟,也不是必須按所描述的順序執行。例如,有的操作/步驟還可以分解,而有的操作/步驟可以合並或部分合並,因此實際執行的順序有可能根據實際情況改變。
需要說明的是:在本文中提及的“多個”是指兩個或兩個以上。“和/或”描述關聯對象的關聯關係,表示可以存在三種關係,例如,A和/或B可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。字符“/”一般表示前後關聯對象是一種“或”的關係。
圖1示出了可以應用本發明實施例的技術方案的示例性系統架構的示意圖。
如圖1所示,系統架構100包括多個終端裝置,所述終端裝置可通過例如網路150彼此通信。舉例來說,系統架構100可以包括通過網路150互連的第一終端裝置110和第二終端裝置120。在圖1的實施例中,第一終端裝置110和第二終端裝置120執行單向數據傳輸。
舉例來說,第一終端裝置110可對視訊數據(例如由終端裝置110採集的視訊圖片流)進行編碼以通過網路150傳輸到第二終端裝置120,已編碼的視訊數據以一個或多個已編碼視訊碼流形式傳輸,第二終端裝置120可從網路150接收已編碼視訊數據,對已編碼視訊數據進行解碼以恢復視訊數據,並根據恢復的視訊數據顯示視訊圖片。
在本發明的一些實施例中,系統架構100可以包括執行已編碼視訊數據的雙向傳輸的第三終端裝置130和第四終端裝置140,所述雙向傳輸比如可以發生在視訊會議期間。對於雙向數據傳輸,第三終端裝置130和第四終端裝置140中的每個終端裝置可對視訊數據(例如由終端裝置採集的視訊圖片流)進行編碼,以通過網路150傳輸到第三終端裝置130和第四終端裝置140中的另一終端裝置。第三終端裝置130和第四終端裝置140中的每個終端裝置還可接收由第三終端裝置130和第四終端裝置140中的另一終端裝置傳輸的已編碼視訊數據,且可對已編碼視訊數據進行解碼以恢復視訊數據,並可根據恢復的視訊數據在可訪問的顯示裝置上顯示視訊圖片。
在圖1的實施例中,第一終端裝置110、第二終端裝置120、第三終端裝置130和第四終端裝置140可爲伺服器、個人計算機和智能電話,但本發明公開的原理可不限於此。本發明公開的實施例適用於膝上型計算機、平板電腦、媒體播放器和/或專用視訊會議設備。網路150表示在第一終端裝置110、第二終端裝置120、第三終端裝置130和第四終端裝置140之間傳送已編碼視訊數據的任何數目的網路,包括例如有線和/或無線通信網路。通信網路150可在電路交換和/或分組交換信道中交換數據。該網路可包括電信網路、局域網、廣域網和/或互聯網。出於本發明的目的,除非在下文中有所解釋,否則網路150的架構和拓撲對於本發明公開的操作來說可能是無關緊要的。
在本發明的一些實施例中,圖2示出視訊編碼裝置和視訊解碼裝置在流式傳輸環境中的放置方式。本發明所公開主題可同等地適用於其它支持視訊的應用,包括例如視訊會議、數字TV(television,電視機)、在包括CD、DVD、儲存棒等的數字媒體上儲存壓縮視訊等等。
流式傳輸系統可包括採集子系統213,採集子系統213可包括數碼相機等視訊源201,視訊源創建未壓縮的視訊圖片流202。在實施例中,視訊圖片流202包括由數碼相機拍攝的樣本。相較於已編碼的視訊數據204(或已編碼的視訊碼流204),視訊圖片流202被描繪爲粗線以强調高數據量的視訊圖片流,視訊圖片流202可由電子裝置220處理,電子裝置220包括耦接到視訊源201的視訊編碼裝置203。視訊編碼裝置203可包括硬體、軟體或軟硬體組合以實現或實施如下文更詳細地描述的所公開主題的各方面。相較於視訊圖片流202,已編碼的視訊數據204(或已編碼的視訊碼流204)被描繪爲細線以强調較低數據量的已編碼的視訊數據204(或已編碼的視訊碼流204),其可儲存在流式傳輸伺服器205上以供將來使用。一個或多個流式傳輸客戶端子系統,例如圖2中的客戶端子系統206和客戶端子系統208,可訪問流式傳輸伺服器205以檢索已編碼的視訊數據204的副本207和副本209。客戶端子系統206可包括例如電子裝置230中的視訊解碼裝置210。視訊解碼裝置210對已編碼的視訊數據的傳入副本207進行解碼,且産生可在顯示器212(例如顯示屏)或另一呈現裝置上呈現的輸出視訊圖片流211。在一些流式傳輸系統中,可根據某些視訊編碼/壓縮標準對已編碼的視訊數據204、視訊數據207和視訊數據209(例如視訊碼流)進行編碼。
應注意,電子裝置220和電子裝置230可包括圖中未示出的其它組件。舉例來說,電子裝置220可包括視訊解碼裝置,且電子裝置230還可包括視訊編碼裝置。
在本發明的一些實施例中,以國際視訊編碼標準HEVC(High Efficiency Video Coding,高效率視訊編碼)、VVC(Versatile Video Coding,多功能視訊編碼),以及中國國家視訊編碼標準AVS爲例,當輸入一個視訊幀圖像之後,會根據一個塊大小,將視訊幀圖像劃分成若干個不重疊的處理單元,每個處理單元將進行類似的壓縮操作。這個處理單元被稱作CTU(Coding Tree Unit,編碼樹單元),或者稱之爲LCU(Largest Coding Unit,最大編碼單元)。CTU再往下可以繼續進行更加精細的劃分,得到一個或多個基本的編碼單元CU(Coding Unit,編碼單元),CU是一個編碼環節中最基本的元素。
以下介紹對CU進行編碼時的一些概念:
預測編碼(Predictive Coding):預測編碼包括了幀內預測和幀間預測等方式,原始視訊信號經過選定的已重建視訊信號的預測後,得到殘差視訊信號。編碼端需要爲當前CU決定選擇哪一種預測編碼模式,並告知解碼端。其中,幀內預測是指預測的信號來自於同一圖像內已經編碼重建過的區域;幀間預測是指預測的信號來自已經編碼過的、不同於當前圖像的其它圖像(稱之爲參考圖像)。
變換及量化(Transform & Quantization):殘差視訊信號經過DFT(Discrete Fourier Transform,離散傅裏葉變換)、DCT(Discrete Cosine Transform,離散余弦變換)等變換操作後,將信號轉換到變換域中,稱之爲變換係數。變換係數進一步進行有損的量化操作,丟失掉一定的信息,使得量化後的信號有利於壓縮表達。在一些視訊編碼標準中,可能有多於一種變換方式可以選擇,因此編碼端也需要爲當前CU選擇其中的一種變換方式,並告知解碼端。量化的精細程度通常由量化參數(Quantization Parameter,簡稱QP)來決定,QP取值較大,表示更大取值範圍的係數將被量化爲同一個輸出,因此通常會帶來更大的失真及較低的碼率;相反,QP取值較小,表示較小取值範圍的係數將被量化爲同一個輸出,因此通常會帶來較小的失真,同時對應較高的碼率。
熵編碼(Entropy Coding)或統計編碼:量化後的變換域信號將根據各個值出現的頻率進行統計壓縮編碼,最後輸出二值化(0或者1)的壓縮碼流。同時,編碼産生其他信息,例如選擇的編碼模式、運動向量數據等,也需要進行熵編碼以降低碼率。統計編碼是一種無損的編碼方式,可以有效的降低表達同樣信號所需要的碼率,常見的統計編碼方式有變長編碼(Variable Length Coding,簡稱VLC)或者基於上下文的二值化算術編碼(Content Adaptive Binary Arithmetic Coding,簡稱CABAC)。
基於上下文的二值化算術編碼(CABAC)過程主要包含3個步驟:二值化、上下文建模和二進制算術編碼。在對輸入的語法元素進行二值化處理後,可以通過常規編碼模式和旁路編碼模式(Bypass Coding Mode)對二元數據進行編碼。旁路編碼模式無須爲每個二元位bin分配特定的概率模型,輸入的二元位bin值直接用一個簡單的旁路編碼器進行編碼,以加快整個編碼以及解碼的速度。一般情況下,不同的語法元素之間並不是完全獨立的,且相同語法元素自身也具有一定的記憶性。因此,根據條件熵理論,利用其他已編碼的語法元素進行條件編碼,相對於獨立編碼或者無記憶編碼能夠進一步提高編碼性能。這些用來作爲條件的已編碼符號信息稱爲上下文。在常規編碼模式中,語法元素的二元位bin順序地進入上下文模型器,編碼器根據先前編碼過的語法元素或二元位的值,爲每一個輸入的二元位bin分配合適的概率模型,該過程即爲上下文建模。通過上下文索引增量(context index increment,ctxIdxInc)和上下文起始索引(context index Start,ctxIdxStart)即可定位到語法元素所對應的上下文模型。將bin值和分配的概率模型一起送入二元算術編碼器進行編碼後,需要根據bin值更新上下文模型,也就是編碼中的自適應過程。
環路濾波(Loop Filtering):經過變化及量化的信號會通過反量化、反變換及預測補償的操作獲得重建圖像。重建圖像與原始圖像相比由於存在量化的影響,部分信息與原始圖像有所不同,即重建圖像會産生失真(Distortion)。因此,可以對重建圖像進行濾波操作,例如去塊效應濾波(Deblocking filter,簡稱DB)、SAO(Sample Adaptive Offset,自適應像素補償)或者ALF(Adaptive Loop Filter,自適應環路濾波)等濾波器,可以有效降低量化所産生的失真程度。由於這些經過濾波後的重建圖像將作爲後續編碼圖像的參考來對將來的圖像信號進行預測,因此上述的濾波操作也被稱爲環路濾波,即在編碼環路內的濾波操作。
在本發明的一些實施例中,圖3示出了一個視訊編碼器的基本流程圖,在該流程中以幀內預測爲例進行說明。其中,原始圖像信號
Figure 02_image001
與預測圖像信號
Figure 02_image003
做差值運算,得到殘差信號
Figure 02_image005
,殘差信號
Figure 02_image005
經過變換及量化處理之後得到量化係數,量化係數一方面通過熵編碼得到編碼後的比特流,另一方面通過反量化及反變換處理得到重構殘差信號
Figure 02_image007
,預測圖像信號
Figure 02_image003
與重構殘差信號
Figure 02_image007
疊加生成圖像信號
Figure 02_image009
。圖像信號
Figure 02_image009
一方面輸入至幀內模式決策模組和幀內預測模組進行幀內預測處理,另一方面通過環路濾波輸出重建圖像信號
Figure 02_image011
,重建圖像信號
Figure 02_image011
可以作爲下一幀的參考圖像進行運動估計及運動補償預測。然後基於運動補償預測的結果
Figure 02_image013
和幀內預測結果
Figure 02_image015
得到下一幀的預測圖像信號
Figure 02_image003
,並繼續重複上述過程,直至編碼完成。
基於上述的編碼過程,在解碼端針對每一個CU,在獲取到壓縮碼流(即比特流)之後,進行熵解碼獲得各種模式信息及量化係數,量化係數經過反量化及反變換處理得到殘差信號。另一方面,根據已知的編碼模式信息,可獲得該CU對應的預測信號,然後將殘差信號與預測信號相加之後即可得到重建信號,重建信號再經過環路濾波等操作,産生最終的輸出信號。
目前主流的視訊編碼標準(如HEVC、VVC、AVS3),均採用基於塊的混合編碼框架。具體是將原始的視訊數據分成一系列的編碼塊,結合預測、變換和熵編碼等視訊編碼方法,實現視訊數據的壓縮。其中,運動補償是視訊編碼常用的一類預測方法,運動補償基於視訊內容在時域或空域的冗餘特性,從已編碼的區域導出當前編碼塊的預測值。這類預測方法包括:幀間預測、幀內塊複製預測、幀內串複製預測等,在具體的編碼實現中,可能單獨或組合使用這些預測方法。對於使用了這些預測方法的編碼塊,通常需要在碼流中顯式或隱式的編碼一個或多個二維的位移向量,指示當前塊(或當前塊的同位塊)相對它的一個或多個參考塊的位移。
需要注意的是,在不同的預測模式及不同的實現下,位移向量可能有不同的名稱,本發明的實施例中統一按照以下方式進行描述:1)幀間預測中的位移向量稱爲運動位移向量(Motion Vector,簡稱MV);2)幀內塊複製中的位移向量稱爲塊位移向量(Block Vector,簡稱BV);3)幀內串複製中的位移向量稱爲串位移向量。
如圖4所示,幀間預測利用視訊時間域的相關性,使用鄰近已編碼圖像的像素預測當前圖像的像素,以達到有效去除視訊時域冗餘的目的,能夠有效節省編碼殘差數據的比特。其中, P表示當前幀, Pr表示參考幀, B表示當前編碼塊, Br表示 B的參考塊。 B'在參考幀中的坐標與 B在當前幀中的坐標位置相同, Br的坐標爲( x r , y r ), B'的坐標爲( x, y),當前編碼塊與其參考塊之間的位移稱爲運動向量(即MV),其中,MV=( x r - x, y r - y)。
考慮到時域或空域鄰近塊具有較强的相關性,可以採用MV預測技術進一步減少編碼MV所需要的比特。在H.265/HEVC中,幀間預測包含Merge和AMVP(Advanced Motion Vector Prediction,高級運動向量預測)兩種MV預測技術。Merge模式會爲當前PU(prediction unit,預測單元)建立一個MV候選列表,其中存在5個候選MV(及其對應的參考圖像)。遍歷這5個候選MV,選取率失真代價最小的作爲最優MV。若編解碼器依照相同的方式建立候選列表,則編碼器只需要傳輸最優MV在候選列表中的索引即可。需要注意的是,HEVC的MV預測技術還有一種跳過(skip)模式,是Merge模式的一種特例,通過Merge模式找到最優MV後,如果當前塊和參考塊基本一樣,那麽不需要傳輸殘差數據,只需要傳送MV的索引和一個跳過標識(skip flag)即可。
Merge模式建立的MV候選列表中包含了空域和時域兩種情形,對於B Slice,還包含組合列表的方式。其中,空域最多提供4個候選MV,它的建立如圖5中(a)所示,空域列表按照A1->B1->B0->A0->B2的順序建立,其中B2爲替補,即當A1,B1,B0,A0中有一個或多個不存在時,則需要使用B2的運動信息;時域最多只提供1個候選MV,它的建立如圖5中(b)所示,由同位塊的MV按下式伸縮得到:
Figure 02_image017
其中, curMV和 colMV分別表示當前塊和同位塊的MV, tdtb分別表示當前圖像和同位圖像與二者的參考圖像之間的距離。若同位塊上D0位置的PU不可用,則用D1位置的同位PU進行替換;對於B Slice中的PU,由於存在兩個MV,其MV候選列表也需要提供兩個MVP。HEVC通過將MV候選列表中的前4個候選MV進行兩兩組合,産生了用於B Slice的組合列表。
類似的,AMVP模式利用空域和時域鄰近塊的MV相關性,爲當前PU建立候選預測MV列表。與Merge模式不同,AMVP模式候選預測MV列表中選擇最優的預測MV,與當前編碼塊通過運動搜索得到的最優MV進行差分編碼,即編碼MVD=MV-MVP;解碼端通過建立相同的列表,僅需要MVD(Motion Vector Difference,運動位移向量殘差)與MVP(Motion Vector Predictor,預測運動向量)在該列表中的序號即可計算當前編碼塊的MV。AMVP候選MV列表也包含空域和時域兩種情形,不同的是AMVP列表長度僅爲2。
HMVP(History based Motion Vector Prediction,基於歷史的運動向量預測)是H.266/VVC中新采納的一種MV預測技術。HMVP是基於歷史信息的運動向量預測方法,歷史編碼塊的運動信息被儲存在HMVP列表中,並且用作當前CU的MVP。H.266/VVC將HMVP添加至Merge模式的候選列表中,其順序在空域和時域MVP之後。HMVP技術以先進先出(First Input First Output,簡稱FIFO)隊列儲存先前編碼塊的運動信息,如果已儲存的預測候選信息與剛剛編碼完成的運動信息相同,這個重複的候選信息首先會被移除,然後將所有HMVP候選信息向前移動,並在FIFO隊列的尾部會加入當前編碼單元的運動信息。如果當前編碼單元的運動信息與FIFO隊列中任意候選的運動信息均不相同,則將最新的運動信息加到FIFO隊列末尾。在向HMVP列表添加新的運動信息時,如果列表已達到最大長度,就去掉FIFO隊列中的第一個候選信息,再將最新的運動信息加到FIFO隊列末尾。在遇到新的CTU行時HMVP列表將重置(即清空)。在H.266/VVC中,HMVP列表大小設置爲6,爲了減少冗餘檢查操作的數量,引入了以下簡化策略:
1、將用於Merge列表生成的HMVP候選的數量設置爲(N <= 4)? M:(8-N),其中,N表示Merge列表中現有候選的數量,M表示Merge表中可用的HMVP候選的數量。
2、一旦可用Merge列表的長度達到最大允許的長度減1,則HMVP的合並候選者列表構建過程終止。
幀內塊複製(Intra Block Copy,簡稱IBC)是HEVC螢幕內容編碼(Screen Content Coding,簡稱SCC)擴展中采納的一種編碼工具,它顯著提升了螢幕內容的編碼效率。在AVS3和VVC中,也采納了IBC技術以提升螢幕內容編碼的性能,IBC利用螢幕內容視訊在空間的相關性,使用當前圖像上已編碼圖像的像素預測當前待編碼塊的像素,能夠有效節省編碼像素所需的比特。如圖6所示,在IBC中當前塊與其參考塊之間的位移稱爲塊位移向量(Block Vector,簡稱BV)。H.266/VVC採用了類似於幀間預測BV技術進一步節省編碼BV所需的比特。
幀內串複製技術按照某種掃描順序(光栅掃描、往返掃描和Zig-Zag掃描等)將一個編碼塊分成一系列像素串或未匹配像素。類似於IBC,每個串在當前圖像已編碼區域中尋找相同形狀的參考串,導出當前串的預測值,通過編碼當前串像素值與預測值之間的殘差來代替直接編碼像素值,能夠有效節省比特。圖7給出了幀內串複製的示意圖,深灰色的區域爲已編碼區域,白色的28個像素爲串1,淺灰色的35個像素爲串2,黑色的1個像素表示未匹配像素,串1到已編碼區域中匹配到的已編碼串的位移稱之爲串向量1,串2到已編碼區域中匹配到的已編碼串的位移稱之爲串向量2。
幀內串複製技術需要編碼當前編碼塊中各個串對應的串向量(String Vector,簡稱SV)、串長度以及是否有匹配串的標誌等。其中,串向量表示待編碼串到其參考串的位移,串長度表示該串所包含的像素數量。在不同的實現方式中,串長度的編碼多種方式,以下給出幾種示例(部分示例可能組合使用):1)直接在碼流中編碼串的長度;2)在碼流中編碼處理該串後待處理像素數量,解碼端則根據當前塊的大小N、已處理的像素數量N1、解碼得到待處理像素數量N2,計算得到當前串的長度L=N-N1-N2;3)在碼流中編碼一個標誌指示該串是否爲最後一個串,如果是最後一個串,則根據當前塊的大小N和已處理的像素數量N1,計算得到當前串的長度L=N-N1。如果一個像素在可參考的區域中沒有找到對應的參考,將直接對未匹配像素的像素值進行編碼。
幀內塊複製IBC和幀內串複製ISC是AVS3中兩種螢幕內容編碼工具,其均以當前圖像爲參考,通過運動補償導出編碼單元的預測值。考慮到IBC與ISC具有相似的參考區域,塊位移向量(BV)和串位移向量(SV)具有較高的相關性,因此通過允許兩者之間的預測進一步提高編碼效率。相關技術使用一個類似於HMVP的幀內預測歷史運動信息表(即IntraHMVP)來記錄這兩類編碼塊的位移向量信息、位置信息、尺寸信息和重複次數,並由IntraHMVP導出預測塊位移向量(Block Vector Predictor,簡稱BVP)和預測串位移向量。
相關技術中使用了一種稱爲基於類別的塊位移向量預測(Class based Block Vector Prediction,簡稱CBVP)的方法導出BVP,該方法按以下條件對IntraHMVP中的候選BV進行分類:
類別0:歷史編碼塊的面積大於或等於64像素;
類別1:BV的頻率大於或等於2;
類別2:歷史編碼塊左上角的坐標位於當前塊左上角坐標的左方;
類別3:歷史編碼塊左上角的坐標位於當前塊左上角坐標的上方;
類別4:歷史編碼塊左上角的坐標位於當前塊左上角坐標的左上方;
類別5:歷史編碼塊左上角的坐標位於當前塊左上角坐標的右上方;
類別6:歷史編碼塊左上角的坐標位於當前塊左上角坐標的左下方。
其中,每個類別中的實例按編碼順序的逆序排列(即編碼順序距離當前塊越近,排序越靠前),第一個歷史編碼塊對應的BV爲該類對應的候選BV,然後按類別0到類別6的順序添加每個類別對應的候選BV至CBVP列表。在向CBVP列表中添加新的BV時,需要檢查CBVP列表中是否已存在重複的BV,僅當不存在重複的BV時,才將該BV添加至CBVP列表中。編碼端在CBVP列表中選擇最佳的候選BV作爲BVP,並在碼流中編碼一個索引,表示最佳的候選BV所對應類別在CBVP列表中的索引,解碼端根據該索引從CBVP列表中解碼得到BVP。
在完成當前預測單元的解碼後,如果當前預測單元的預測類型爲塊複製幀內預測,當NumOfIntraHmvpCand(歷史運動信息列表裏面的運動信息的個數)大於0時,根據當前預測塊的塊複製幀內預測的運動信息,按下述實施例中的方法更新IntraHMVP。當前預測塊的幀內預測運動信息包括位移向量信息、位置信息、尺寸信息和重複次數,其中塊複製幀內預測塊的位移向量信息爲塊位移向量;位置信息包括當前預測塊左上角橫坐標,左上角縱坐標;尺寸信息爲寬度與高度的乘積;當前預測塊的重複次數初始化爲0。
同時,相關技術爲ISC編碼塊中的每個串編碼一個索引,指示該串的SVP在IntraHMVP中的位置。類似於幀間預測中的skip模式,當前串的SV等於SVP,無需編碼SV與SVP之間的殘差SVD。
在完成當前預測單元的解碼後,如果當前預測單元的預測類型爲串複製幀內預測,當NumOfIntraHmvpCand大於0時,根據當前預測塊的幀內預測運動信息,按下述實施例中的方法更新IntraHMVP。幀內預測運動信息包括位移向量信息、位置信息、尺寸信息和重複次數,其中當前串的位移向量信息爲串向量;位置信息包括該串第一個像素樣本的橫坐標,縱坐標;尺寸信息爲該部分的串長度;重複次數初始化爲0。
以下介紹幀內預測歷史運動信息表IntraHMVP的更新過程:幀內預測運動信息包括位移向量信息、位置信息、尺寸信息和重複次數。在完成當前預測單元的解碼後,如果當前預測單元的預測類型爲塊複製幀內預測或串複製幀內預測,且NumOfIntraHmvpCand大於0,則根據當前預測塊的幀內預測運動信息,更新幀內預測歷史運動信息表IntraHmvpCandidateList。假設IntraHmvpCandidateList[ X]的位移向量信息、位置信息、尺寸信息和重複次數分別記爲intraMvCand X、posCand X、sizeCand X和cntCand X,則執行如下過程:
步驟101,將 X初始化爲0,將cntCur初始化爲0。
步驟102,如果CntIntraHmvp=0,則IntraHmvpCandidateList[CntIntraHmvp]爲當前預測單元的幀內預測運動信息,將CntIntraHmvp加1。
步驟103,如果CntIntraHmvp≠0,則根據intraMvCur和intraMvCand X是否相等判斷當前預測塊的幀內預測運動信息和IntraHmvpCandidateList[ X]是否相同:
步驟1031,如果intraMvCur和intraMvCand X相同,則執行步驟104,否則, X加1。
步驟1032,如果 X小於CntIntraHmvp,則執行步驟103;否則,執行步驟105。
步驟104,cntCur等於cntCand X的值加1。如果sizeCur小於 sizeCand X,則當前sizeCur分別等於sizeCand X。 步驟105,如果 X小於CntIntraHmvp,則:
步驟1051,i從 X到CntIntraHmvp-1,令IntraHmvpCandidateList[i]等於IntraHmvpCandidateList[i+1];
步驟1052,IntraHmvpCandidateList[CntIntraHmvp-1]等於當前預測單元的幀內預測運動信息。
步驟106,如果 X等於CntIntraHmvp且CntIntraHmvp等於NumOfIntraHmvpCand,則:
步驟1061,i從0到CntIntraHmvp-1,令IntraHmvpCandidateList [i]等於IntraHmvpCandidateList [i+1];
步驟1062,IntraHmvpCandidateList [CntIntraHmvp-1]等於當前預測單元的幀內預測運動信息。
步驟107,如果 X等於CntIntraHmvp且CntIntraHmvp小於NumOfIntraHmvpCand,則IntraHmvpCandidateList [CntIntraHmvp]等於當前預測單元的幀內預測運動信息,CntIntraHmvp加1。
以下介紹串位移向量SV的解碼流程,以串掃描方向爲水平方向爲例,參照表1所示,SV(IscSvX,IscSvY)解碼的主要流程如下(表1中帶下劃線加粗的字段表示需要解碼的語法元素,無下劃線首字母大寫的字段表示變量,變量的值可由語法元素解碼得到):
步驟201,解碼串向量上方標誌isc_sv_above_flag,如果isc_sv_above_flag的值爲1,則IscSvX的值爲0,IscSvY的值爲-1。
步驟202,如果isc_sv_above_flag的值爲0,則解碼串向量歷史標誌isc_sv_recent_flag。如果isc_sv_recent_flag的值爲1,繼續解碼串向量歷史索引isc_sv_recent_index,根據isc_sv_recent_index的值,結合幀內預測歷史運動信息表,查表獲得IscSvX和IscSvY的值。
步驟203,如果isc_sv_recent_flag的值爲0,則根據以下步驟解碼得到SV:
步驟2031,解碼串向量Y分量標誌isc_sv_y_non_zero_flag;
步驟2032,如果isc_sv_y_non_zero_flag的值爲0,即IscSvY的值爲0,按照以下步驟解碼得到IscSvx:
(1)如果IsOddRow的值爲1,即當前串所在行是奇數行(起始行爲第0行),則解碼串向量X分量符號位isc_sv_x_sign並得到isc_sv_x_sign的值;如果isc_sv_x_sign的值爲1,即IscSvx的值小於0;如果isc_sv_x_sign的值爲0,即IscSvx的值大於0;
(2)如果IsOddRow的值爲0,則令isc_sv_x_sign的值爲1,即IscSvx的值小於0;
(3)解碼並按照3階指數哥倫布碼的方法反二值化推導得到串向量X分量絕對值isc_sv_x_abs_minus1,那麽IscSvXAbs的值等於isc_sv_x_abs_minus1+1,然後再結合isc_sv_x_sign的值即可求得IscSvX的值。
步驟2033,如果isc_sv_y_non_zero_flag的值爲1,即IscSvY的值不爲0,則按照以下步驟依次解碼得到IscSvy和IscSvx:
(1)解碼串向量Y分量符號位isc_sv_y_sign並得到isc_sv_y_sign的值;如果isc_sv_y_sign的值爲1,即IscSvy的值小於0;如果isc_sv_y_sign的值爲0,即IscSvy的值大於0;
(2)解碼並按照3階指數哥倫布碼的方法反二值化推導得到串向量Y分量絕對值isc_sv_y_abs_minus1,那麽IscSvYAbs的值等於isc_sv_y_abs_minus1+1,再結合isc_sv_y_sign的值即可求得IscSvY的值;
(3)如果isc_sv_y_sign的值爲0,即IscSvy的值大於0,則解碼並按照3階指數哥倫布的方法反二值化推導得到串向量X分量絕對值isc_sv_x_abs_minus1,那麽IscSvXAbs的值等於isc_sv_x_abs_minus1+1+SvOffset,直接令isc_sv_x_sign的值爲1,即IscSvX的值小於0。再結合isc_sv_x_sign的值即可求得IscSvX的值。SvOffset的值通過AVS標準中定義的算法進行求得,此處不再贅述。
(4) 如果isc_sv_y_sign的值爲1,即IscSvy的值小於0,則解碼串向量X分量標誌isc_sv_x_non_zero_flag。如果isc_sv_x_non_zero_flag的值爲0,即IscSvX的值爲0;
(5)如果isc_sv_x_non_zero_flag的值爲1,則IscSvX的值不爲0。然後解碼串向量X分量符號位isc_sv_x_sign並得到isc_sv_x_sign的值;如果isc_sv_x_sign的值爲1,即IscSvx的值小於0;如果isc_sv_x_sign的值爲0,即IscSvx的值大於0;
(6)解碼並按照3階指數哥倫布碼的方法反二值化推導得到串向量X分量絕對值isc_sv_x_abs_minus1,那麽IscSvXAbs的值等於isc_sv_x_abs_minus1+1,再結合isc_sv_x_sign的值即可求得IscSvX的值。
isc_sv_above_flag [i]
if (! IscSvAboveFlag) {
isc_sv_recent_flag [i]
if (IscSvRecentFlag) {
isc_sv_recent_index [i]
}
else {
IsOddRow = StrYInCu & 0x1
SvOffset = StrXInCu
if (IsOddRow) {
SvOffset += 1
}
else {
SvOffset += StrLen[i]
}
SvOffset = min(width, SvOffset)
SvOffset --
isc_sv_y_non_zero_flag [i]
if (! IscSvYNonZeroFlag[i]) {
if (IsOddRow) {
isc_sv_x_sign [i]
}
isc_sv_x_abs_minus1[i]
}
else {
isc_sv_y_sign [i]
isc_sv_y_abs_minus1[i]
if (! IscSvYSign[i]) {
isc_sv_x_abs_minus1[i]
IscSvXAbs[i] += SvOffset
}
else {
isc_sv_x_non_zero_flag [i]
if (IscSvXNonZeroFlag[i]) {
isc_sv_x_sign [i]
isc_sv_x_abs_minus1[i]
}
}
}
}
}
表1
在表1中,串向量上方標誌isc_sv_above_flag[i]的值爲“1”表示當前編碼單元第i部分的串向量是(0,-1);值爲“0”表示串向量不是(0,-1)。並且IscSvAboveFlag[i]等於isc_sv_above_flag[i]的值。
串向量歷史標誌isc_sv_recent_flag[i]的值爲“1”表示應從幀內複製歷史信息表中導出當前編碼單元第i部分的串向量;值爲“0”表示不應從幀內複製歷史信息表中導出串向量。並且IscSvRecentFlag[i]等於isc_sv_recent_flag[i]的值。如果位流中不存在isc_sv_ recent_flag [i],那麽IscSvRecentFlag[i]的值爲0。
如果IscSvAboveFlag[i]和IscSvRecentFlag[i]的值均爲0,那麽當前編碼單元第i部分的串向量X分量的值由IscSvXNonZeroFlag[i]、IscSvXSign[i]和IscSvXAbs[i]確定,Y分量的值由IscSvYNonZeroFlag[i]、IscSvYSign[i]和IscSvYAbs[i]確定。
串向量歷史索引isc_sv_recent_index[i]表示當前編碼單元第i部分的串向量在幀內複製歷史信息表中的索引值。IscSvRecentIndex[i]的值等於isc_sv_recent_index[i]的值。
串向量X分量標誌isc_sv_x_non_zero_flag[i]的值爲“1”表示當前編碼單元第i部分的串向量的X分量的值不等於0;值爲“0”表示X分量的值等於0。並且,IscSvXNonZeroFlag[i]等於isc_sv_x_non_zero_flag [i]的值。如果位流中不存在isc_sv_x_non_zero_flag [i],則IscSvXNonZeroFlag[i]的值爲1。
串向量Y分量標誌isc_sv_y_non_zero_flag[i]的值爲“1”表示當前編碼單元第i部分的串向量的Y分量的值不等於0;值爲“0”表示Y分量的值等於0。並且,IscSvYNonZeroFlag[i]等於isc_sv_y_non_zero_flag [i]的值。如果位流中不存在isc_sv_y_non_zero_flag [i],則IscSvYNonZeroFlag[i]的值爲1。
串向量X分量符號位isc_sv_x_sign[i]表示當前編碼單元第i部分的串向量的X分量的符號位。並且IscSvXSign[i]等於isc_sv_x_sign [i]的值。如果位流中不存在isc_sv_x_sign [i],則IscSvXSign[i]的值爲1。
串向量Y分量符號位isc_sv_y_sign[i]表示當前編碼單元第i部分的串向量的Y分量的符號位。並且IscSvYSign [i]等於isc_sv_y_sign [i]的值。如果位流中不存在isc_sv_y_sign [i],則IscSvYSign[i]的值爲1。
串向量X分量絕對值isc_sv_x_abs_minus1[i]表示當前編碼單元第i部分的串向量的X分量的絕對值減1。並且IscSvXAbs[i]等於isc_sv_x_abs_minus1[i]的值加1。
串向量Y分量絕對值isc_sv_y_abs_minus1[i]表示當前編碼單元第i部分的串向量的Y分量的絕對值減1。並且IscSvYAbs[i]等於isc_sv_y_abs_minus1[i]的值加1。
同時,在上述方法中,isc_sv_x_abs_minus1和isc_sv_y_abs_minus1的反二值化處理具體可以是在解析二元符號串之後通過查詢如下表2中對應的synElVal值得到,在表2中,二元符號串是synElVal的值對應的3階指數哥倫布碼。
synElVal的值 二元符號串
0 1 0 0 0              
1 1 0 0 1              
2 1 0 1 0              
3 1 0 1 1              
4 1 1 0 0              
5 1 1 0 1              
6 1 1 1 0              
7 1 1 1 1              
8 0 1 0 0 0 0          
9 0 1 0 0 0 1          
10 0 1 0 0 1 0          
11 0 1 0 0 1 1          
12 0 1 0 1 0 0          
13 0 1 0 1 0 1          
14 0 1 0 1 1 0          
15 0 1 0 1 1 1          
16 0 1 1 0 0 0          
                     
binIdx 0 1 2 3 4 5 6 7 8 9
表2
以下介紹塊位移向量殘差BVD(Block Vector Difference,塊位移向量殘差)的解碼流程,參照表3所示,塊位移向量殘差BVD解碼的主要流程如下(表3中帶下劃線加粗的字段表示需要解碼的語法元素,無下劃線首字母大寫的字段表示變量,變量的值可由語法元素解碼得到):
步驟301,從碼流中解碼後推導出運動向量殘差水平方向的絕對值mv_diff_x_abs_bv,具體包括:
(1)從碼流中按照截斷一元碼的方式(如表4-1或表4-2所示的兩種截斷一元碼的形式,截斷值maxVal=7)解碼和反二值化得到前綴值mv_diff_x_abs_bv_pre,如果mv_diff_x_abs_bv_pre小於等於4,令offset等於mv_diff_x_abs_bv_pre,則mv_diff_x_abs_bv等於offset;
(2)如果mv_diff_x_abs_bv_pre等於5,則mv_diff_x_abs_bv的值屬區間[5, 9)。令offset等於5,從碼流中熵解碼2位比特,按照2位定長碼的方式反二值化(見表5)並推導得到後綴值mv_diff_x_abs_bv_suf,則mv_diff_x_abs_bv等於offset+mv_diff_x_abs_bv_suf;
(3)如果mv_diff_x_abs_bv_pre等於6,則mv_diff_x_abs_bv的值屬區間[9, 17)。令offset等於9,從碼流中熵解碼3位比特,按照3位定長碼的方式反二值化(見表5)並推導得到後綴值mv_diff_x_abs_bv_suf,則mv_diff_x_abs_bv等於offset+mv_diff_x_abs_bv_suf;
(4)如果mv_diff_x_abs_bv_pre等於7,則mv_diff_x_abs_bv的值屬區間[17, ∞)。令offset等於17,繼續從碼流中解碼1位比特得到指示mv_diff_x_abs_bv奇偶性的標識mv_diff_x_abs_bv_parity;
(5)在得到mv_diff_x_abs_bv_parity的值後,繼續從碼流中進行熵解碼,按照二階指數哥倫布碼的方式反二值化(見表6所示的k階指數哥倫布碼表)得到mv_diff_x_abs_bv_k_eg,則mv_diff_x_abs_bv = offset + mv_diff_x_abs_bv_parity +2×mv_diff_x_abs_bv_k_eg;
步驟302,如果mv_diff_x_abs_bv的值不爲0,則從碼流中解碼1位比特後推導出運動向量殘差水平方向值的符號mv_diff_x_sign_bv;
步驟303,從碼流中解碼後推導出運動向量殘差垂直方向的絕對值mv_diff_y_abs_bv。具體方法類似於步驟301中的(1)~(5)。
步驟304,如果mv_diff_y_abs_bv的值不爲0,則從碼流中解碼1位比特後推導出運動向量殘差垂直方向值的符號mv_diff_y_sign_bv。
mv_diff_x_abs_bv
if (MvDiffXAbsBv)
mv_diff_x_sign_bv
mv_diff_y_abs_bv
if (MvDiffYAbsBv)
mv_diff_y_sign_bv
}
}
表3
在表3中,mv_diff_x_abs_bv表示塊向量水平分量差絕對值,mv_diff_y_abs_bv表示塊向量垂直分量差絕對值。其中,MvDiffXAbsBv等於mv_diff_x_abs_bv的值,MvDiffYAbsBv等於mv_diff_y_abs_bv的值。
mv_diff_x_sign_bv表示塊向量水平分量差符號值,mv_diff_y_sign_bv表示塊向量垂直分量差符號值。並且,MvDiffXSignbV的值等於mv_diff_x_sign_bv的值,MvDiffYSignBv的值等於mv_diff_y_sign_bv。如果位流中不存在mv_diff_x_sign_bv或mv_diff_y_sign_bv,那麽MvDiffXSignBv或MvDiffYSignBv的值爲0。
塊向量水平分量差值MvDiffXBv和塊向量垂直分量差值MvDiffYBv的值表示如下,取值範圍是-32768~32767:
MvDiffXBv = (-1) MvDiffXSignBv× MvDiffXAbsBv
MvDiffYBv = (-1) MvDiffYSignBv× MvDiffYAbsBv
synElVal 二元符號串
0 1              
1 0 1            
2 0 0 1          
3 0 0 0 1        
4 0 0 0 0 1      
5 0 0 0 0 0 1    
0 0 0 0 0 0  
maxVal-1 0 0 0 0 0 0 1
maxVal 0 0 0 0 0 0 0
binIdx 0 1 2 3 4 5 maxVal-1
表4-1
synElVal 二元符號串
0 0              
1 1 0            
2 1 1 0          
3 1 1 1 0        
4 1 1 1 1 0      
5 1 1 1 1 1 0    
1 1 1 1 1 1  
maxVal-1 1 1 1 1 1 1 0
maxVal 1 1 1 1 1 1 1
binIdx 0 1 2 3 4 5 maxVal-1
表4-2
synElVal的值 二元符號串
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
       
2 len-4 1 1 0 0
2 len-3 1 1 1 0
2 len-2 1 1 1 0
2 len-1 1 1 1 1
binIdx 0 1 len-2 len-1
表5
階數 碼字結構 CodeNum取值範圍
k = 0 1 0
0 1 x 0 1~2
0 0 1 x 1x 0 3~6
0 0 0 1 x 2x 1x 0 7~14
...... ......
k = 1 1 x 0 0~1
0 1 x 1x 0 2~5
0 0 1 x 2x 1x 0 6~13
0 0 0 1 x 3x 2x 1x 0 14~29
...... ......
k = 2 1 x 1x 0 0~3
0 1 x 2x 1x 0 4~11
0 0 1 x 3x 2x 1x 0 12~27
0 0 0 1 x 4x 3x 2x 1x 0 28~59
...... ......
k = 3 1 x 2x 1x 0 0~7
0 1 x 3x 2x 1x 0 8~23
0 0 1 x 4x 3x 2x 1x 0 24~55
0 0 0 1 x 5x 4x 3x 2x 1x 0 56~119
...... ......
表6
以下介紹運動向量殘差MVD的解碼流程,參照表7所示,運動向量殘差MVD解碼的主要流程如下(表7中帶下劃線加粗的字段表示需要解碼的語法元素,無下劃線首字母大寫的字段表示變量,變量的值可由語法元素解碼得到):
步驟401,從碼流中解碼後推導出運動向量殘差水平方向的絕對值mv_diff_x_abs,具體包括:
(1)從碼流中按照截斷一元碼的方式(如表4-1或表4-2所示的兩種截斷一元碼的形式,截斷值maxVal=3)解碼和反二值化得到前綴值mv_diff_x_abs_pre,如果mv_diff_x_abs_pre小於等於2,令offset等於mv_diff_x_abs_pre,則mv_diff_x_abs等於offset;
(2)如果mv_diff_x_abs_pre等於3,則mv_diff_x_abs的值屬區間[3, ∞)。令offset等於3,繼續從碼流中解碼1位比特得到指示mv_diff_x_abs奇偶性的標識mv_diff_x_abs_parity;
(3)在得到mv_diff_x_abs_parity的值後,繼續從碼流中進行熵解碼,按照零階指數哥倫布碼的方式反二值化(見表6)得到mv_diff_x_abs_k_eg,則mv_diff_x_abs =offset+mv_diff_x_abs_parity+2×mv_diff_x_abs_k_eg;
步驟402,如果mv_diff_x_abs的值不爲0,從碼流中解碼1位比特後推導出運動向量殘差水平方向值的符號mv_diff_x_sign;
步驟403,從碼流中解碼後推導出運動向量殘差垂直方向的絕對值mv_diff_y_ab。具體方法類似於步驟401中的(1)~(5)。
步驟404,如果mv_diff_y_abs的值不爲0,則從碼流中解碼1位比特後推導出運動向量殘差垂直方向值的符號mv_diff_y_sign。
mv_diff_x_abs_l0
if (MvDiffXAbsL0)
mv_diff_x_sign_l0
mv_diff_y_abs_l0
if (MvDiffYAbsL0)
mv_diff_y_sign_l0
表7
在表7中,mv_diff_x_abs_l0表示L0運動向量水平分量差絕對值,mv_diff_y_abs_l0表示L0運動向量垂直分量差絕對值。來自參考圖像隊列0的運動向量水平分量差值的絕對值MvDiffXAbsL0的值等於mv_diff_x_abs_l0的值,來自參考圖像隊列0的運動向量垂直分量差值的絕對值MvDiffYAbsL0的值等於mv_diff_y_abs_l0的值。
mv_diff_x_sign_l0表示L0運動向量水平分量差符號值,mv_diff_y_sign_l0表示L0運動向量垂直分量差符號值。來自參考圖像隊列0的運動向量水平分量差值的符號位MvDiffXSignL0的值等於mv_diff_x_sign_l0的值,來自參考圖像隊列0的運動向量垂直分量差值的符號位MvDiffYSignL0的值等於mv_diff_y_sign_l0的值。如果位流中不存在mv_diff_x_sign_l0或mv_diff_y_sign_l0,則MvDiffXSignL0或MvDiffYSignL0的值爲0。
運動向量水平分量差值MvDiffXL0和運動向量垂直分量差值MvDiffYL0的值表示如下,取值範圍是-32768~32767:
MvDiffXL0 = (-1) MvDiffXSignL 0× MvDiffXAbsL0
MvDiffYL0 = (-1) MvDiffYSignL 0× MvDiffYAbsL0
由上述可知,在一些視訊編碼標準(如VVC、AVS3)中,幀內串複製ISC模式的串位移向量SV使用的運動向量編碼方法流程較爲繁瑣,編解碼複雜度較高,且與幀間模式的運動向量MV和幀內塊複製IBC模式的塊位移向量BV的運動向量編碼方法完全不同。本發明實施例根據SV的統計特徵,提出了一種符合SV分布特性的運動向量編碼方法,在簡化SV編解碼流程、降低SV編解碼複雜度的同時,能保證視訊的壓縮性能,總體有助於SV編解碼效率的提升。
以下對本發明實施例的技術方案的實現細節進行詳細闡述:
圖8A示出了根據本發明一些實施例的視訊解碼方法的流程圖。該視訊解碼方法可以由具有計算處理功能的設備來執行,比如可以由終端設備或伺服器來執行。參照圖8A所示,該視訊解碼方法可以包括步驟S801~S803。
S801,從碼流中解碼得到串位移向量殘差第一方向分量的絕對值。
S802,若所述串位移向量殘差第一方向分量的絕對值不爲0,則從所述碼流中解碼得到串位移向量殘差第一方向分量的符號值。
S803,根據所述串位移向量殘差第一方向分量的絕對值,以及所述串位移向量殘差第一方向分量的符號值,確定串位移向量殘差第一方向分量的值。
在本發明一些實施例所提供的技術方案中,通過從碼流中解碼得到串位移向量殘差第一方向分量絕對值,並在串位移向量殘差第一方向分量絕對值不爲0時,從碼流中解碼得到串位移向量殘差第一方向分量符號值,然後根據串位移向量殘差第一方向分量絕對值,以及串位移向量殘差第一方向分量符號值,確定串位移向量殘差第一方向分量的值,可以簡化串位移向量殘差的編解碼流程、降低了編解碼複雜度,有助於提高視訊的編解碼效率。
圖8B示出了根據本發明的一些實施例的視訊解碼方法的流程圖,該視訊解碼方法可以由具有計算處理功能的設備來執行,比如可以由終端設備或伺服器來執行。參照圖8B所示,該視訊解碼方法至少包括步驟S810至步驟S840,詳細介紹如下:
在步驟S810中,從碼流中解碼出位移向量殘差第一方向分量符號值。
在本發明的一些實施例中,位移向量殘差可以是串位移向量殘差SVD,也可以是運動位移向量殘差MVD,還可以是塊位移向量殘差BVD。第一方向分量可以是垂直方向分量,或者可以是水平方向分量。
位移向量殘差第一方向分量符號值用於指示位移向量殘差第一方向分量的值是大於0還是小於0。具體而言,如果位移向量殘差第一方向分量符號值爲第一值(比如爲1時),則確定位移向量殘差第一方向分量的值小於0,如果位移向量殘差第一方向分量符號值爲第二值(比如爲0時),則確定位移向量殘差第一方向分量的值大於0。
在本發明的一些實施例中,可以先從碼流中解碼出位移向量殘差第一方向分量的標誌位,該位移向量殘差第一方向分量的標誌位用於指示位移向量殘差第一方向分量的值是否爲0。如果位移向量殘差第一方向分量的標誌位爲第一值(比如爲1時),則從碼流中解碼出位移向量殘差第一方向分量符號值;其中,位移向量殘差第一方向分量的標誌位爲第一值表示位移向量殘差第一方向分量的值不爲0。如果位移向量殘差第一方向分量的標誌位爲第二值(比如爲0時),則可以直接確定位移向量殘差第一方向分量的值爲0。
在步驟S820中,若根據位移向量殘差第一方向分量符號值確定位移向量殘差第一方向分量的值小於0,則按照 k 1階指數哥倫布碼的方式進行反二值化處理得到位移向量殘差第一方向分量的絕對值, k 1≥0。
在步驟S830中,若根據位移向量殘差第一方向分量符號值確定位移向量殘差第一方向分量的值大於0,則按照 t 1階指數哥倫布碼的方式進行反二值化處理得到位移向量殘差第一方向分量的絕對值, t 1≥0且 t 1k 1不相等。
在步驟S840中,根據位移向量殘差第一方向分量絕對值,以及位移向量殘差第一方向分量符號值,確定位移向量殘差第一方向分量的值。
在本發明的一些實施例中,在得知位移向量殘差第一方向分量符號值之後,可以基於該符號值並根據位移向量殘差第一方向分量絕對值來得到位移向量殘差第一方向分量的值。比如,若位移向量殘差第一方向分量絕對值爲isc_sv_y_abs_minus1(即串位移向量殘差垂直方向分量絕對值),那麽若根據串位移向量殘差垂直方向分量符號值確定串位移向量殘差垂直方向分量的值IscSvY小於0,那麽IscSvY= -(isc_sv_y_abs_minus1+1);若根據串位移向量殘差垂直方向分量符號值確定IscSvY大於0,那麽IscSvY=isc_sv_y_abs_minus1+1。
圖8B所示實施例的技術方案使得能夠根據位移向量殘差第一方向分量的值採用不同階指數的哥倫布碼來確定位移向量殘差第一方向分量的絕對值,進而能夠基於該絕對值和位移向量殘差第一方向分量符號值確定位移向量殘差第一方向分量的值,簡化了位移向量殘差的編解碼流程、降低了編解碼複雜度,有助於提高視訊的編解碼效率。
需要說明的是:在圖8B所示實施例的技術方案中,位移向量殘差可以是串位移向量殘差SVD,在這種情況下,若未獲取到預測串位移向量SVP,那麽可以將串位移向量殘差SVD作爲串位移向量SV。即在沒有SVP時,圖8B所示實施例的技術方案可以用於SV的解碼,即SV=SVD。
若獲取到預測串位移向量SVP,則可以根據串位移向量殘差SVD和預測串位移向量SVP確定串位移向量SV。即在有SVP時,圖8B所示實施例的技術方案可以用於SV及SVD的解碼,即SV=SVD+SVP。
同時,圖8B所示實施例的技術方案不僅可以用於SV/SVD的解碼,而且也可以用於其它的幅值解碼中,例如對幀間預測塊的運動位移向量殘差MVD的解碼,對幀內塊複製IBC的塊運動向量殘差BVD的解碼等。
圖9示出了根據本發明的一些實施例的視訊解碼方法的流程圖,該視訊解碼方法可以由具有計算處理功能的設備來執行,比如可以由終端設備或伺服器來執行。參照圖9所示,該視訊解碼方法至少包括步驟S910至步驟S930,詳細介紹如下:
在步驟S910中,從碼流中解碼得到位移向量殘差第一方向分量絕對值。
在本發明的一些實施例中,位移向量殘差可以是串位移向量殘差SVD,也可以是運動位移向量殘差MVD,還可以是塊位移向量殘差BVD。第一方向分量可以是水平方向分量,或者可以是垂直方向分量。
在本發明的一些實施例中,從碼流中解碼得到位移向量殘差第一方向分量絕對值的過程可以是:從碼流中按照截斷一元碼的方式進行解碼並進行反二值化處理,得到位移向量殘差第一方向分量的前綴值,然後根據位移向量殘差第一方向分量的前綴值,來生成位移向量殘差第一方向分量絕對值。
在一些實施例中,在根據位移向量殘差第一方向分量的前綴值來生成位移向量殘差第一方向分量絕對值時,可以有如下實施例:
若位移向量殘差第一方向分量的前綴值小於或等於4,則將位移向量殘差第一方向分量的前綴值作爲位移向量殘差第一方向分量絕對值;
若位移向量殘差第一方向分量的前綴值等於5,則將補償值設爲5,並基於從碼流中繼續解碼得到的2位比特,按照2位定長碼的方式進行反二值化處理得到位移向量殘差第一方向分量的後綴值,根據位移向量殘差第一方向分量的後綴值和補償值生成位移向量殘差第一方向分量絕對值;
若位移向量殘差第一方向分量的前綴值等於6,則將補償值設爲9,並基於從碼流中繼續解碼得到的3位比特,按照3位定長碼的方式進行反二值化處理得到位移向量殘差第一方向分量的後綴值,根據位移向量殘差第一方向分量的後綴值和補償值生成位移向量殘差第一方向分量絕對值;
若位移向量殘差第一方向分量的前綴值等於7,則將補償值設爲17,並基於從碼流中繼續解碼得到的1位比特,確定位移向量殘差第一方向分量絕對值的奇偶性;從碼流中繼續進行解碼,按照二階指數哥倫布碼的方式進行反二值化處理,根據二階指數哥倫布碼的方式進行反二值化處理的結果、補償值和位移向量殘差第一方向分量絕對值的奇偶性生成位移向量殘差第一方向分量絕對值。
在一些實施例中,在根據位移向量殘差第一方向分量的前綴值來生成位移向量殘差第一方向分量絕對值時,還可以有如下實施例:
若位移向量殘差第一方向分量的前綴值小於或等於2,則將位移向量殘差第一方向分量的前綴值作爲位移向量殘差第一方向分量絕對值;
若位移向量殘差第一方向分量的前綴值等於3,則將補償值設爲3,並基於從碼流中繼續解碼得到的1位比特,確定位移向量殘差第一方向分量絕對值的奇偶性;從碼流中繼續進行解碼,按照零階指數哥倫布碼的方式進行反二值化處理,根據零階指數哥倫布碼的方式進行反二值化處理的結果、補償值和位移向量殘差第一方向分量絕對值的奇偶性生成位移向量殘差第一方向分量絕對值。
繼續參照圖9所示,在步驟S920中,若位移向量殘差第一方向分量絕對值不爲0,則從碼流中解碼得到位移向量殘差第一方向分量符號值。
在一些實施例中,可以在確定位移向量殘差第一方向分量絕對值不爲0時,從碼流中繼續解碼1比特來確定位移向量殘差第一方向分量符號值。
在步驟S930中,根據位移向量殘差第一方向分量絕對值,以及位移向量殘差第一方向分量符號值,確定位移向量殘差第一方向分量的值。
需要說明的是:在圖9所示實施例的技術方案中,位移向量殘差可以是串位移向量殘差SVD,在這種情況下,若未獲取到預測串位移向量SVP,那麽可以將串位移向量殘差SVD作爲串位移向量SV。即在沒有SVP時,圖9所示實施例的技術方案可以用於SV的解碼,即SV=SVD。
若獲取到預測串位移向量SVP,則可以根據串位移向量殘差SVD和預測串位移向量SVP確定串位移向量SV。即在有SVP時,圖9所示實施例的技術方案可以用於SV及SVD的解碼,即SV=SVD+SVP。
同時,圖9所示實施例的技術方案可以用於SV/SVD的解碼,在這種情況下,可以採用類似於BVD或者MVD的方式來實現對SV/SVD的解碼,簡化了SV的編解碼流程、降低了編解碼複雜度,有助於提高視訊的編解碼效率。
圖10示出了根據本發明的一些實施例的視訊解碼方法的流程圖,該視訊解碼方法可以由具有計算處理功能的設備來執行,比如可以由終端設備或伺服器來執行。參照圖10所示,該視訊解碼方法至少包括步驟S1010至步驟S1040,詳細介紹如下:
在步驟S1010中,獲取解碼得到的串位移向量殘差垂直方向分量的值。
在本發明的一些實施例中,串位移向量殘差垂直方向分量的值可以通過前述圖8B所示實施例的方法解碼得到,或者也可以通過前述圖9所示實施例的方法解碼得到,還可以通過相關標準中的解碼方法獲得。
在步驟S1020中,根據串位移向量殘差垂直方向分量的值與0之間的關係,獲得串位移向量殘差水平方向分量符號值。
在本發明的一些實施例中,如果串位移向量殘差垂直方向分量的值爲0,則可以直接從碼流中解碼出串位移向量殘差水平方向分量符號值。
在本發明的一些實施例中,當解碼的起始行是第0行的情況下,若串位移向量殘差垂直方向分量的值爲0,且當前串的起點所在行是奇數行時,可以再從碼流中解碼出串位移向量殘差水平方向分量符號值。同時,在這種情況下,如果當前串的起點所在行是偶數行,那麽可以將串位移向量殘差水平方向分量的符號位設爲第一值,以指示串位移向量殘差水平方向分量的值小於0。
在本發明的一些實施例中,如果串位移向量殘差垂直方向分量的值大於0,則可以將串位移向量殘差水平方向分量的符號位設爲第一值,以指示串位移向量殘差水平方向分量的值小於0。
在本發明的一些實施例中,如果串位移向量殘差垂直方向分量的值小於0,則可以從碼流中解碼出串位移向量殘差水平方向分量的標誌位的值。若串位移向量殘差水平方向分量的標誌位爲第一值(比如爲1時),則從碼流中解碼出串位移向量殘差水平方向分量符號值,即串位移向量殘差水平方向分量的標誌位爲第一值表示串位移向量殘差水平方向分量的值不爲0。如果串位移向量殘差水平方向分量的標誌位爲第二值(比如爲0時),則可以確定串位移向量殘差水平方向分量的值爲0。
繼續參照圖10所示,在步驟S1030中,根據串位移向量殘差水平方向分量符號值,確定指數哥倫布碼的階數,按照哥倫布碼的方式進行反二值化處理得到串位移向量殘差水平方向分量的絕對值。
在本發明的一些實施例中,如果串位移向量殘差水平方向分量符號值指示串位移向量殘差水平方向分量的值小於0,則可以按照k2階指數哥倫布碼進行反二值化處理得到串位移向量殘差水平方向分量的絕對值,k2≥0;如果串位移向量殘差水平方向分量符號值指示串位移向量殘差水平方向分量的值大於0,則按照t2階指數哥倫布碼進行反二值化處理得到串位移向量殘差水平方向分量的絕對值,t2≥0且t2與k2不相等。
即本發明實施例的技術方案可以根據串位移向量殘差水平方向分量的值採用不同階指數的哥倫布碼來確定串位移向量殘差水平方向分量的絕對值,簡化了串位移向量殘差的編解碼流程、降低了編解碼複雜度,有助於提高視訊的編解碼效率。
在步驟S1040中,根據串位移向量殘差水平方向分量絕對值,以及串位移向量殘差水平方向分量的符號位,確定串位移向量殘差水平方向分量的值。
在圖10所示實施例的技術方案中,串位移向量殘差水平方向分量的值依賴於串位移向量殘差垂直方向分量的值,在這種情況下,需要先解碼得到串位移向量殘差垂直方向分量的值,然後基於串位移向量殘差垂直方向分量的值來確定串位移向量殘差水平方向分量的值。具體分爲串位移向量殘差垂直方向分量的值爲0的情況、串位移向量殘差垂直方向分量的值大於0的情況,以及串位移向量殘差垂直方向分量的值小於0的情況。
當串位移向量殘差垂直方向分量的值爲0時,可以先從碼流中解碼出串位移向量殘差水平方向分量符號值;如果串位移向量殘差水平方向分量符號值指示串位移向量殘差水平方向分量的值小於0,那麽可以按照k2階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差水平方向分量的絕對值;如果串位移向量殘差水平方向分量符號值指示串位移向量殘差水平方向分量的值大於0,那麽可以按照t2階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差水平方向分量的絕對值,然後根據串位移向量殘差水平方向分量絕對值,以及串位移向量殘差水平方向分量符號值,確定串位移向量殘差水平方向分量的值。
當串位移向量殘差垂直方向分量的值爲0時,還可以先判斷當前串的起點所在行是奇數行(在解碼的起始行是第0行的情況下),如果是奇數行,再從碼流中解碼出串位移向量殘差水平方向分量符號值。如果是偶數行,則可以直接將串位移向量殘差水平方向分量符號值設爲第一值,以指示串位移向量殘差水平方向分量的值小於0,並按照k2階指數哥倫布碼進行反二值化處理得到串位移向量殘差水平方向分量的絕對值,然後根據串位移向量殘差水平方向分量絕對值,以及串位移向量殘差水平方向分量符號值,確定串位移向量殘差水平方向分量的值。
當串位移向量殘差垂直方向分量的值大於0時,可以將串位移向量殘差水平方向分量符號值設爲第一值,以指示串位移向量殘差水平方向分量的值小於0,然後按照k2階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差水平方向分量的絕對值,並根據串位移向量殘差水平方向分量絕對值,以及串位移向量殘差水平方向分量符號值,確定串位移向量殘差水平方向分量的值。
當串位移向量殘差垂直方向分量的值小於0時,可以從碼流中解碼出串位移向量殘差水平方向分量的標誌位。如果串位移向量殘差水平方向分量的標誌位爲第一值(指示串位移向量殘差水平方向分量的值不爲0),則從碼流中解碼出串位移向量殘差水平方向分量符號值;進而根據串位移向量殘差水平方向分量的值採用不同階指數的哥倫布碼來確定串位移向量殘差水平方向分量的絕對值,並根據串位移向量殘差水平方向分量絕對值,以及串位移向量殘差水平方向分量符號值,確定串位移向量殘差水平方向分量的值。同時,如果串位移向量殘差水平方向分量的標誌位爲第二值,則可以確定串位移向量殘差水平方向分量的值爲0。
需要說明的是:在圖10所示實施例的技術方案中,若未獲取到預測串位移向量SVP,那麽可以將串位移向量殘差SVD作爲串位移向量SV。即在沒有SVP時,圖10所示實施例的技術方案可以用於SV的解碼,即SV=SVD。若獲取到預測串位移向量SVP,則可以根據串位移向量殘差SVD和預測串位移向量SVP確定串位移向量SV。即在有SVP時,圖10所示實施例的技術方案可以用於SV及SVD的解碼,即SV=SVD+SVP。
綜合圖8A至圖10,本發明實施例的技術方案可以更符合SV分布特性,在簡化SV編解碼流程、降低SV編解碼複雜度的同時,能保證視訊的壓縮性能,總體有助於SV編解碼效率的提升。以下以串掃描方向爲水平方向爲例,從解碼端的角度對本發明實施例的技術方案應用於SV解碼場景的實現細節進行詳細介紹,主要可以包括如下步驟:
步驟501,解碼串向量上方標誌isc_sv_above_flag,如果isc_sv_above_flag的值爲1,則IscSvX的值爲0,IscSvY的值爲-1。
步驟502,如果isc_sv_above_flag的值爲0,則解碼串向量歷史標誌isc_sv_recent_flag。如果isc_sv_recent_flag的值爲1,繼續解碼串向量歷史索引isc_sv_recent_index,根據isc_sv_recent_index的值,結合幀內預測歷史運動信息表,查表獲得IscSvX和IscSvY的值。
需要說明的是,步驟502的處理過程類似於SV的skip/direct模式,可以理解爲存在SV的預測過程,即SVP不爲0。
步驟503,如果isc_sv_recent_flag的值爲0,則根據以下方法分別解碼得到SV(IscSvX ,IscSvY)。
需要說明的是:在沒有SVP時,本發明實施例的技術方案可以用於SV的解碼,即SV=SVD。若存在SVP,則本發明實施例的技術方案可以用於SV及SVD的解碼,其中SV=SVD+SVP。即,本發明實施例的技術方案在步驟501和/或步驟502不存在時,可直接用來對SV進行解碼。
從碼流中解碼推導出IscSvY的值,可採用以下任意一種方法:
方法1y:使用類似於MVD的解碼方法。具體可以參照前述實施例中步驟401至步驟403的相關內容。
方法2y:使用類似於BVD的解碼方法。具體可以參照前述實施例中步驟301至步驟304的相關內容。
方法3y:使用相關標準中對於SV的解碼方法。具體可以參照前述實施例中步驟2031至步驟2033的相關內容。
方法4y:包括如下步驟:
(4y.1)、解碼串向量Y分量標誌isc_sv_y_non_zero_flag。
(4y.2)、如果isc_sv_y_non_zero_flag的值爲0,則IscSvY的值爲0。
(4y.3)、如果isc_sv_y_non_zero_flag的值爲1,IscSvY的值不爲0。進一步解碼串向量Y分量符號位isc_sv_y_sign並得到isc_sv_y_sign的值,如果isc_sv_y_sign的值爲1,即IscSvY的值小於0;如果isc_sv_y_sign的值爲0,即IscSvY的值大於0。
(4y.4)、按照以下方法解碼和反二值化得到串向量Y分量絕對值isc_sv_y_abs_minus1:
如果isc_sv_y_sign的值爲1,即IscSvY的值小於0,則解碼並按照k階指數哥倫布(見表6所示的k階指數哥倫布碼表)的方式反二值化得到串向量Y分量絕對值isc_sv_y_abs_minus1;如果isc_sv_y_sign的值爲0,即IscSvY的值大於0,則解碼並按照t階指數哥倫布的方式反二值化得到串向量Y分量絕對值isc_sv_y_abs_minus1。
其中,k>=0,t>=0,k和t爲整數,且k不等於t。
(4y.5)、令IscSvYAbs的值等於isc_sv_y_abs_minus1+1,再結合isc_sv_y_sign的值即可求得IscSvY的值。
從碼流中解碼推導出IscSvX的值,可採用以下任意一種方法:
方法1x:使用類似於MVD的解碼方法。具體可以參照前述實施例中步驟401至步驟403的相關內容。
方法2x:使用類似於BVD的解碼方法。具體可以參照前述實施例中步驟301至步驟304的相關內容。
方法3x:使用相關標準中對於SV的解碼方法。具體可以參照前述實施例中步驟2031至步驟2033的相關內容。
方法4x:包括如下步驟:
(4x.1)、解碼串向量X分量標誌isc_sv_x_non_zero_flag。
(4x.2)、如果isc_sv_x_non_zero_flag的值爲0,則IscSvX的值爲0。
(4x.3)、如果isc_sv_x_non_zero_flag的值爲1,IscSvX的值不爲0。進一步解碼串向量X分量符號位isc_sv_x_sign並得到isc_sv_x_sign的值,如果isc_sv_x_sign的值爲1,即IscSvX的值小於0;如果isc_sv_x_sign的值爲0,即IscSvX的值大於0。
(4x.4)、按照以下方法解碼和反二值化得到串向量X分量絕對值isc_sv_x_abs_minus1:
如果isc_sv_x_sign的值爲1,即IscSvX的值小於0,則解碼並按照k階指數哥倫布(見表6所示的k階指數哥倫布碼表)的方式反二值化得到串向量X分量絕對值isc_sv_x_abs_minus1;如果isc_sv_x_sign的值爲0,即IscSvX的值大於0,則解碼並按照t階指數哥倫布的方式反二值化得到串向量X分量絕對值isc_sv_x_abs_minus1。
其中,k>=0,t>=0,k和t爲整數,且k不等於t。
(4x.5)、令IscSvXAbs的值等於isc_sv_x_abs_minus1+1,再結合isc_sv_x_sign的值即可求得IscSvX的值。
方法5x:包括如下步驟:
(5x.1)、如果IscSvY的值爲0(其中,IscSvY可以通過上述方法1y至方法4y中的任一種方法解碼得到),則按照以下步驟解碼得到IscSvx:
A、如果IsOddRow的值爲1,即當前串的起點所在行是奇數行(假設起始行爲第0行),則解碼串向量X分量符號位isc_sv_x_sign並得到isc_sv_x_sign的值;如果isc_sv_x_sign的值爲1,即IscSvx的值小於0;如果isc_sv_x_sign的值爲0,即IscSvx的值大於0。
B、如果IsOddRow的值爲0,即當前串的起點所在行是偶數行,則直接令isc_sv_x_sign的值爲1,即IscSvx的值小於0。
需要說明的是:本發明的其它實施例中也無需執行步驟A和B,即無需計算IsOddRow的值,直接從碼流中解碼串向量X分量符號位isc_sv_x_sign並得到isc_sv_x_sign的值,這種方式可以在一定程度上簡化SV的編解碼流程。
C、在得到isc_sv_x_sign的值之後,可以按照以下方法解碼和反二值化得到串向量X分量絕對值isc_sv_x_abs_minus1:
如果isc_sv_x_sign的值爲1,即IscSvx的值小於0,則解碼並按照k階指數哥倫布的方式反二值化得到串向量X分量絕對值isc_sv_x_abs_minus1;如果isc_sv_x_sign的值爲0,即IscSvx的值大於0,則解碼並按照t階指數哥倫布的方式反二值化得到串向量X分量絕對值isc_sv_x_abs_minus1。
其中,k>=0,t>=0,k和t爲整數,且k不等於t。
D、令IscSvXAbs的值等於isc_sv_x_abs_minus1+1,再結合isc_sv_x_sign的值即可求得IscSvX的值。
(5x.2)、如果IscSvy的值大於0,則可以直接令isc_sv_x_sign的值爲1,即IscSvx的值小於0,則可以解碼並按照k階指數哥倫布的方式反二值化得到串向量X分量絕對值isc_sv_x_abs_minus1。然後令IscSvXAbs的值等於isc_sv_x_abs_minus1+1,再結合isc_sv_x_sign的值即可求得IscSvX的值。
(5x.3)、如果IscSvy的值小於0,則解碼串向量X分量標誌isc_sv_x_non_zero_flag。如果isc_sv_x_non_zero_flag的值爲0,即IscSvX的值爲0。
如果isc_sv_x_non_zero_flag的值爲1,則IscSvX的值不爲0,進一步解碼串向量X分量符號位isc_sv_x_sign並得到isc_sv_x_sign的值。如果isc_sv_x_sign的值爲1,即IscSvx的值小於0,則解碼並按照k階指數哥倫布的方式反二值化得到串向量X分量絕對值isc_sv_x_abs_minus1;如果isc_sv_x_sign的值爲0,即IscSvx的值大於0,則解碼並按照t階指數哥倫布的方式反二值化得到串向量X分量絕對值isc_sv_x_abs_minus1。
其中,k>=0,t>=0,k和t爲整數,且k不等於t。
然後令IscSvXAbs的值等於isc_sv_x_abs_minus1+1,再結合isc_sv_x_sign的值即可求得IscSvX的值。
在前述實施例的技術方案中,isc_sv_x_sign和isc_sv_y_sign可以採用bypass的方式進行解碼。或者isc_sv_x_sign和isc_sv_y_sign也可以採用CABAC的方式進行解碼。
如果isc_sv_x_sign和isc_sv_y_sign採用CABAC的方式進行解碼,那麽其上下文模型的選擇和ctxIdxInc的確定可採用以下方式之一:
a)、採用單一上下文模型,且ctxIdxInc=0;
b)、針對先解碼得到IscSvY的方案,例如,前述方法5x,對於isc_sv_x_sign的ctxIdxInc,可以根據IscSvY的符號確定上下文模型:ctxIdxInc=IscSvY < 0 ? 0 : (IscSvY == 0 ? 1 : 2);
c)、如果先解碼得到IscSvX,然後再來解碼IscSvY,那麽對於isc_sv_y_sign的ctxIdxInc,可以根據IscSvX的符號確定上下文模型:ctxIdxInc=IscSvX < 0 ? 0 : (IscSvX == 0 ? 1 : 2)。
需要說明的是:在前述實施例中,IscSvY可以採用前述方法1y至方法4y中的任一種方法解碼得到;IscSvX可以採用前述方法1x至方法5x中的任一種方法解碼得到。如果IscSvX採用前述方法1x至方法4x中的任一種方法解碼得到,那麽IscSvX的解碼過程與IscSvY的解碼過程之間是沒有依賴的,並且可以並行執行;如果IscSvX採用前述方法5x,那麽需要先解碼IscSvY,再解碼IscSvX。
在一些實施例中,IscSvY可以採用前述方法2y解碼得到,IscSvX可以採用前述方法4x或方法5x解碼得到。
以上實施例主要是從解碼端的角度進行的闡述,圖8C示出了本發明實施例提供的一種視訊編碼方法的流程圖。如圖8C所示,該方法包括:
S81,確定串位移向量殘差第一方向分量絕對值。
S82,若所述串位移向量殘差第一方向分量絕對值不爲0,則獲取串位移向量殘差第一方向分量符號值。
S83,根據所述串位移向量殘差第一方向分量絕對值,以及所述串位移向量殘差第一方向分量符號值,進行編碼處理。
其中,編碼端的具體處理過程與上述的解碼端類似,不再贅述。
綜合而言,本發明實施例的技術方案根據SV的統計特徵,提出了一種符合SV分布特性的運動向量編碼方法,在簡化SV編解碼流程、降低SV編解碼複雜度的同時,能保證視訊的壓縮性能,總體有助於SV編解碼效率的提升。
以下介紹本發明的裝置實施例,可以用於執行本發明上述實施例中的方法。對於本發明裝置實施例中未披露的細節,請參照本發明上述的方法實施例。
圖11A示出了根據本發明的一些實施例的視訊解碼裝置的框圖,該視訊解碼裝置可以設置在具有計算處理功能的設備內,比如可以設置在終端設備或伺服器內。
參照圖11A所示,根據本發明的一些實施例的視訊解碼裝置1100,包括:第一解碼單元1102、第二解碼單元1104和第一處理單元1106。
其中,第一解碼單元1102配置爲從碼流中解碼得到串位移向量殘差第一方向分量絕對值;第二解碼單元1104配置爲若所述串位移向量殘差第一方向分量絕對值不爲0,則從所述碼流中解碼得到串位移向量殘差第一方向分量符號值;第一處理單元1106配置爲根據所述串位移向量殘差第一方向分量絕對值,以及所述串位移向量殘差第一方向分量符號值,確定串位移向量殘差第一方向分量的值。
在本發明的一些實施例中,基於前述方案,第一解碼單元1102配置爲:從碼流中按照截斷一元碼的方式進行解碼並進行反二值化處理,得到串位移向量殘差第一方向分量的前綴值;根據所述串位移向量殘差第一方向分量的前綴值,生成所述串位移向量殘差第一方向分量絕對值。
在本發明的一些實施例中,基於前述方案,第一解碼單元1102配置爲:若所述串位移向量殘差第一方向分量的前綴值小於或等於4,則將所述串位移向量殘差第一方向分量的前綴值作爲所述串位移向量殘差第一方向分量絕對值;
若所述串位移向量殘差第一方向分量的前綴值等於5,則將補償值設爲5,並基於從碼流中繼續解碼得到的2位比特,按照2位定長碼的方式進行反二值化處理得到串位移向量殘差第一方向分量的後綴值,根據所述串位移向量殘差第一方向分量的後綴值和所述補償值生成所述串位移向量殘差第一方向分量絕對值;
若所述串位移向量殘差第一方向分量的前綴值等於6,則將補償值設爲9,並基於從碼流中繼續解碼得到的3位比特,按照3位定長碼的方式進行反二值化處理得到串位移向量殘差第一方向分量的後綴值,根據所述串位移向量殘差第一方向分量的後綴值和所述補償值生成所述串位移向量殘差第一方向分量絕對值;
若所述串位移向量殘差第一方向分量的前綴值等於7,則將補償值設爲17,並基於從碼流中繼續解碼得到的1位比特,確定所述串位移向量殘差第一方向分量絕對值的奇偶性;從所述碼流中繼續進行解碼,按照二階指數哥倫布碼的方式進行反二值化處理,根據所述二階指數哥倫布碼的方式進行反二值化處理的結果、所述補償值和所述串位移向量殘差第一方向分量絕對值的奇偶性生成所述串位移向量殘差第一方向分量絕對值。
在本發明的一些實施例中,基於前述方案,第一解碼單元1102配置爲:若所述串位移向量殘差第一方向分量的前綴值小於或等於2,則將所述串位移向量殘差第一方向分量的前綴值作爲所述串位移向量殘差第一方向分量絕對值;
若所述串位移向量殘差第一方向分量的前綴值等於3,則將補償值設爲3,並基於從碼流中繼續解碼得到的1位比特,確定所述串位移向量殘差第一方向分量絕對值的奇偶性;從所述碼流中繼續進行解碼,按照零階指數哥倫布碼的方式進行反二值化處理,根據所述零階指數哥倫布碼的方式進行反二值化處理的結果、所述補償值和所述串位移向量殘差第一方向分量絕對值的奇偶性生成所述串位移向量殘差第一方向分量絕對值。
在本發明的一些實施例中,基於前述方案,若所述串位移向量殘差第一方向分量爲串位移向量殘差垂直方向分量,則所述視訊解碼裝置1100還包括:第二處理單元,配置爲若所述串位移向量殘差垂直方向分量的值爲0,則從所述碼流中解碼出串位移向量殘差水平方向分量符號值;若根據所述串位移向量殘差水平方向分量符號值確定串位移向量殘差水平方向分量的值小於0,則按照k1階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差水平方向分量的絕對值,k1≥0;若根據所述串位移向量殘差水平方向分量符號值確定串位移向量殘差水平方向分量的值大於0,則按照t1階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差水平方向分量的絕對值,t1≥0且t1與k1不相等;根據所述串位移向量殘差水平方向分量絕對值,以及所述串位移向量殘差水平方向分量符號值,確定所述串位移向量殘差水平方向分量的值。
在本發明的一些實施例中,基於前述方案,所述第二處理單元配置爲:在從所述碼流中解碼出串位移向量殘差水平方向分量符號值之前,若解碼的起始行是第0行、且當前串的起點所在行是奇數行,則從所述碼流中解碼出串位移向量殘差水平方向分量符號值;若當前串的起點所在行是偶數行,則將所述串位移向量殘差水平方向分量符號值設爲第一值,以指示所述串位移向量殘差水平方向分量的值小於0,並按照k1階指數哥倫布碼進行反二值化處理得到串位移向量殘差水平方向分量的絕對值;根據所述串位移向量殘差水平方向分量絕對值,以及所述串位移向量殘差水平方向分量符號值,確定所述串位移向量殘差水平方向分量的值。
在本發明的一些實施例中,基於前述方案,所述第二處理單元還配置爲:若所述串位移向量殘差垂直方向分量的值大於0,則將串位移向量殘差水平方向分量符號值設爲第一值,以指示串位移向量殘差水平方向分量的值小於0;按照k1階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差水平方向分量的絕對值;根據所述串位移向量殘差水平方向分量絕對值,以及所述串位移向量殘差水平方向分量符號值,確定所述串位移向量殘差水平方向分量的值。
在本發明的一些實施例中,基於前述方案,所述第二處理單元還配置爲:若所述串位移向量殘差垂直方向分量的值小於0,則從所述碼流中解碼出串位移向量殘差水平方向分量的標誌位;若所述串位移向量殘差水平方向分量的標誌位爲第一值,則從所述碼流中解碼出所述串位移向量殘差水平方向分量符號值;其中,所述串位移向量殘差水平方向分量的標誌位爲第一值表示所述串位移向量殘差水平方向分量的值不爲0;若根據所述串位移向量殘差水平方向分量符號值確定串位移向量殘差水平方向分量的值小於0,則按照k1階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差水平方向分量的絕對值,k1≥0;若根據所述串位移向量殘差水平方向分量符號值確定串位移向量殘差水平方向分量的值大於0,則按照t1階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差水平方向分量的絕對值,t1≥0且t1與k1不相等;根據所述串位移向量殘差水平方向分量絕對值,以及所述串位移向量殘差水平方向分量符號值,確定所述串位移向量殘差水平方向分量的值。
在本發明的一些實施例中,基於前述方案,所述第二處理單元還配置爲:若所述串位移向量殘差水平方向分量的標誌位爲第二值,則確定所述串位移向量殘差水平方向分量的值爲0。
在本發明的一些實施例中,基於前述方案,所述的視訊解碼裝置1100還包括:第三處理單元,配置爲:從碼流中解碼出串位移向量殘差第二方向分量符號值;若根據所述串位移向量殘差第二方向分量符號值確定串位移向量殘差第二方向分量的值小於0,則按照k2階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差第二方向分量的絕對值,k2≥0;若根據所述串位移向量殘差第二方向分量符號值確定串位移向量殘差第二方向分量的值大於0,則按照t2階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差第二方向分量的絕對值,t2≥0且t2與k2不相等;根據所述串位移向量殘差第二方向分量絕對值,以及所述串位移向量殘差第二方向分量符號值,確定所述串位移向量殘差第二方向分量的值。
在本發明的一些實施例中,基於前述方案,所述第三處理單元配置爲:從碼流中解碼出串位移向量殘差第二方向分量的標誌位;若所述串位移向量殘差第二方向分量的標誌位爲第一值,則從所述碼流中解碼出所述串位移向量殘差第二方向分量符號值;其中,所述串位移向量殘差第二方向分量的標誌位爲第一值表示所述串位移向量殘差第二方向分量的值不爲0。
在本發明的一些實施例中,基於前述方案,所述第三處理單元還配置爲:若所述串位移向量殘差第二方向分量的標誌位爲第二值,則確定所述串位移向量殘差第二方向分量的值爲0。
在本發明的一些實施例中,基於前述方案,所述第三處理單元配置爲:若所述串位移向量殘差第二方向分量符號值爲第一值,則確定所述串位移向量殘差第二方向分量的值小於0;若所述串位移向量殘差第二方向分量符號值爲第二值,則確定所述串位移向量殘差第二方向分量的值大於0。
在本發明的一些實施例中,基於前述方案,所述第一處理單元1106還配置爲:若未獲取到預測串位移向量SVP,則將串位移向量殘差SVD作爲串位移向量SV;若獲取到預測串位移向量SVP,則根據所述串位移向量殘差SVD和所述預測串位移向量SVP確定串位移向量SV。
圖11B示出了本發明實施例中視訊編碼裝置的結構示意圖,如圖11B所示,所述視訊編碼裝置包括:
第一確定單元11,配置爲確定串位移向量殘差第一方向分量絕對值;
第二確定單元12,配置爲若所述串位移向量殘差第一方向分量絕對值不爲0,則獲取串位移向量殘差第一方向分量符號值;
編碼單元13,配置爲根據所述串位移向量殘差第一方向分量絕對值,以及所述串位移向量殘差第一方向分量符號值,進行編碼處理。
視訊編碼裝置的具體功能可以參見上述實施例,在此不再贅述。
圖12示出了適於用來實現本發明實施例的電子設備的計算機系統的結構示意圖。
需要說明的是,圖12示出的電子設備的計算機系統1200僅是一個示例,不應對本發明實施例的功能和使用範圍帶來任何限制。
如圖12所示,計算機系統1200包括中央處理單元(Central Processing Unit,CPU)1201,其可以根據儲存在唯讀記憶體(Read-Only Memory,ROM)1202中的程式或者從儲存部分1208加載到隨機存取記憶體(Random Access Memory,RAM)1203中的程式而執行各種適當的動作和處理,例如執行上述實施例中所述的方法。在RAM 1203中,還儲存有系統操作所需的各種程式和數據。CPU 1201、ROM 1202以及RAM 1203通過匯流排1204彼此相連。輸入/輸出(Input /Output,I/O)介面1205也連接至匯流排1204。
以下部件連接至I/O介面1205:包括鍵盤、鼠標等的輸入部分1206;包括諸如陰極射線管(Cathode Ray Tube,CRT)、液晶顯示器(Liquid Crystal Display,LCD)等以及揚聲器等的輸出部分1207;包括硬盤等的儲存部分1208;以及包括諸如LAN(Local Area Network,局域網)卡、調制解調器等的網路介面卡的通信部分1209。通信部分1209經由諸如因特網的網路執行通信處理。驅動器1210也根據需要連接至I/O介面1205。可拆卸媒體1211,諸如磁碟、光碟、磁光碟、半導體記憶體等等,根據需要安裝在驅動器1210上,以便於從其上讀出的計算機程式根據需要被安裝入儲存部分1208。
特別地,根據本發明的實施例,上文參考流程圖描述的過程可以被實現爲計算機軟體程式。例如,本發明的實施例包括一種計算機程式産品,其包括承載在計算機可讀媒體上的計算機程式,該計算機程式包含用於執行流程圖所示的方法的計算機程式。在這樣的實施例中,該計算機程式可以通過通信部分1209從網路上被下載和安裝,和/或從可拆卸媒體1211被安裝。在該計算機程式被中央處理單元(CPU)1201執行時,執行本發明的系統中限定的各種功能。
需要說明的是,本發明實施例所示的計算機可讀媒體可以是計算機可讀信號媒體或者計算機可讀儲存媒體或者是上述兩者的任意組合。計算機可讀儲存媒體例如可以是——但不限於——電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合。計算機可讀儲存媒體的更具體的例子可以包括但不限於:具有一個或多個導線的電連接、便攜式計算機磁碟、硬盤、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可擦式可程式化唯讀記憶體(Erasable Programmable Read Only Memory,EPROM)、閃存、光纖、便攜式緊凑磁碟唯讀記憶體(Compact Disc Read-Only Memory,CD-ROM)、光記憶體件、磁記憶體件、或者上述的任意合適的組合。在本發明中,計算機可讀儲存媒體可以是任何包含或儲存程式的有形媒體,該程式可以被指令執行系統、裝置或者器件使用或者與其結合使用。而在本發明中,計算機可讀的信號媒體可以包括在基帶中或者作爲載波一部分傳播的數據信號,其中承載了計算機可讀的計算機程式。這種傳播的數據信號可以採用多種形式,包括但不限於電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號媒體還可以是計算機可讀儲存媒體以外的任何計算機可讀媒體,該計算機可讀媒體可以發送、傳播或者傳輸用於由指令執行系統、裝置或者器件使用或者與其結合使用的程式。計算機可讀媒體上包含的計算機程式可以用任何適當的媒體傳輸,包括但不限於:無線、有線等等,或者上述的任意合適的組合。
附圖中的流程圖和框圖,圖示了按照本發明各種實施例的系統、方法和計算機程式産品的可能實現的體系架構、功能和操作。其中,流程圖或框圖中的每個方框可以代表一個模組、程式段、或代碼的一部分,上述模組、程式段、或代碼的一部分包含一個或多個用於實現規定的邏輯功能的可執行指令。也應當注意,在有些作爲替換的實現中,方框中所標註的功能也可以以不同於附圖中所標註的順序發生。例如,兩個接連地表示的方框實際上可以基本並行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖或流程圖中的每個方框、以及框圖或流程圖中的方框的組合,可以用執行規定的功能或操作的專用的基於硬體的系統來實現,或者可以用專用硬體與計算機指令的組合來實現。
描述於本發明實施例中所涉及到的單元可以通過軟體的方式實現,也可以通過硬體的方式來實現,所描述的單元也可以設置在處理器中。其中,這些單元的名稱在某種情況下並不構成對該單元本身的限定。
作爲另一方面,本發明還提供了一種計算機可讀媒體,該計算機可讀媒體可以是上述實施例中描述的電子設備中所包含的;也可以是單獨存在,而未裝配入該電子設備中。上述計算機可讀媒體承載有一個或者多個程式,當上述一個或者多個程式被一個該電子設備執行時,使得該電子設備實現上述實施例中所述的方法。
應當注意,儘管在上文詳細描述中提及了用於動作執行的設備的若干模組或者單元,但是這種劃分並非强制性的。實際上,根據本發明的實施方式,上文描述的兩個或更多模組或者單元的特徵和功能可以在一個模組或者單元中具體化。反之,上文描述的一個模組或者單元的特徵和功能可以進一步劃分爲由多個模組或者單元來具體化。
通過以上的實施方式的描述,本領域的技術人員易於理解,這裏描述的示例實施方式可以通過軟體實現,也可以通過軟體結合必要的硬體的方式來實現。因此,根據本發明實施方式的技術方案可以以軟體産品的形式體現出來,該軟體産品可以儲存在一個非揮發性儲存媒體(可以是CD-ROM,隨身碟,移動硬盤等)中或網路上,包括若干指令以使得一台計算設備(可以是個人計算機、伺服器、觸控終端、或者網路設備等)執行根據本發明實施方式的方法。
本領域技術人員在考慮說明書及實踐這裏公開的實施方式後,將容易想到本發明的其它實施方案。本發明旨在涵蓋本發明的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本發明的一般性原理並包括本發明未公開的本技術領域中的公知常識或慣用技術手段。
應當理解的是,本發明並不局限於上面已經描述並在附圖中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本發明的範圍僅由所附的請求項來限制。
100:系統架構 110:第一終端裝置 120:第二終端裝置 130:第三終端裝置 140:第四終端裝置 150:網路 201:數碼相機等視訊源 202:視訊圖片流 203:視訊編碼裝置 204:已編碼的視訊數據 205:可訪問流式傳輸伺服器 206:客戶端子系統 207:副本 208:客戶端子系統 209:副本 210:視訊解碼裝置 211:輸出視訊圖片流 212:顯示器 213:集子系統 220:電子裝置 230:電子裝置 S801至S803:步驟 S810至S840:步驟 S81至S83:步驟 S910至S930:步驟 S1010至S1040:步驟 1100:視訊解碼裝置 1102:第一解碼單元 1104:第二解碼單元 1106:第一處理單元 11:第一確定單元   12:第二確定單元 13:編碼單元 1200:計算機系統 1201:中央處理單元 1202:唯讀記憶體 1203:隨機存取記憶體 1204:匯流排 1205:I/O介面 1206:輸入部分 1207:輸出部分 1208:儲存部分 1209:通信部分 1210:驅動器 1211:可拆卸媒體
圖1示出了可以應用本發明實施例的技術方案的示例性系統架構的示意圖;
圖2示出視訊編碼裝置和視訊解碼裝置在流式傳輸系統中的放置方式示意圖;
圖3示出了一個視訊編碼器的基本流程圖;
圖4示出了幀間預測的示意圖;
圖5示出了確定候選MV的示意圖;
圖6示出了幀內塊複製的示意圖;
圖7示出了幀內串複製的示意圖;
圖8A-8B示出了根據本發明的一些實施例的視訊解碼方法的流程圖;
圖8C示出了本發明一些實施例的視訊編碼方法的流程圖。
圖9示出了根據本發明的一些實施例的視訊解碼方法的流程圖;
圖10示出了根據本發明的一些實施例的視訊解碼方法的流程圖;
圖11A示出了根據本發明的一些實施例的視訊解碼裝置的框圖;
圖11B示出了本發明實施例的視訊編碼裝置的框圖;以及
圖12示出了適於用來實現本發明實施例的電子設備的計算機系統的結構示意圖。
100:系統架構
110:第一終端裝置
120:第二終端裝置
130:第三終端裝置
140:第四終端裝置
150:網路

Claims (21)

  1. 一種視訊解碼方法,由電子設備執行,所述視訊解碼方法包括:從碼流中解碼得到串位移向量殘差第一方向分量絕對值;若所述串位移向量殘差第一方向分量絕對值不為0,則從所述碼流中解碼得到串位移向量殘差第一方向分量符號值;根據所述串位移向量殘差第一方向分量絕對值,以及所述串位移向量殘差第一方向分量符號值,確定串位移向量殘差第一方向分量的值;其中,從碼流中解碼得到串位移向量殘差第一方向分量絕對值,包括:從碼流中按照截斷一元碼的方式進行解碼並進行反二值化處理,得到串位移向量殘差第一方向分量的前綴值;根據所述串位移向量殘差第一方向分量的前綴值,生成所述串位移向量殘差第一方向分量絕對值。
  2. 如請求項1所述的視訊解碼方法,其中,根據所述串位移向量殘差第一方向分量的前綴值,生成所述串位移向量殘差第一方向分量絕對值,包括:若所述串位移向量殘差第一方向分量的前綴值小於或等於4,則將所述串位移向量殘差第一方向分量的前綴值作為所述串位移向量殘差第一方向分量絕對值。
  3. 如請求項1所述的視訊解碼方法,其中,根據所述串位移向量殘差第一方向分量的前綴值,生成所述串位移向量殘差第一方向分量絕對值,包括:若所述串位移向量殘差第一方向分量的前綴值等於5,則將補償值設為5,並基於從碼流中繼續解碼得到的2位比特,按照2位定長碼的方式進行 反二值化處理得到串位移向量殘差第一方向分量的後綴值,根據所述串位移向量殘差第一方向分量的後綴值和所述補償值生成所述串位移向量殘差第一方向分量絕對值。
  4. 如請求項1所述的視訊解碼方法,其中,根據所述串位移向量殘差第一方向分量的前綴值,生成所述串位移向量殘差第一方向分量絕對值,包括:若所述串位移向量殘差第一方向分量的前綴值等於6,則將補償值設為9,並基於從碼流中繼續解碼得到的3位比特,按照3位定長碼的方式進行反二值化處理得到串位移向量殘差第一方向分量的後綴值,根據所述串位移向量殘差第一方向分量的後綴值和所述補償值生成所述串位移向量殘差第一方向分量絕對值。
  5. 如請求項1所述的視訊解碼方法,其中,根據所述串位移向量殘差第一方向分量的前綴值,生成所述串位移向量殘差第一方向分量絕對值,包括:若所述串位移向量殘差第一方向分量的前綴值等於7,則將補償值設為17,並基於從碼流中繼續解碼得到的1位比特,確定所述串位移向量殘差第一方向分量絕對值的奇偶性;以及從所述碼流中繼續進行解碼,按照二階指數哥倫布碼的方式進行反二值化處理,根據所述二階指數哥倫布碼的方式進行反二值化處理的結果、所述補償值和所述串位移向量殘差第一方向分量絕對值的奇偶性生成所述串位移向量殘差第一方向分量絕對值。
  6. 如請求項1所述的視訊解碼方法,其中,根據所述串位移向量殘差第一方向分量的前綴值,生成所述串位移向量殘差第一方向分量絕對值,包括: 若所述串位移向量殘差第一方向分量的前綴值小於或等於2,則將所述串位移向量殘差第一方向分量的前綴值作為所述串位移向量殘差第一方向分量絕對值。
  7. 如請求項1所述的視訊解碼方法,其中,根據所述串位移向量殘差第一方向分量的前綴值,生成所述串位移向量殘差第一方向分量絕對值,包括:若所述串位移向量殘差第一方向分量的前綴值等於3,則將補償值設為3,並基於從碼流中繼續解碼得到的1位比特,確定所述串位移向量殘差第一方向分量絕對值的奇偶性;以及從所述碼流中繼續進行解碼,按照零階指數哥倫布碼的方式進行反二值化處理,根據所述零階指數哥倫布碼的方式進行反二值化處理的結果、所述補償值和所述串位移向量殘差第一方向分量絕對值的奇偶性生成所述串位移向量殘差第一方向分量絕對值。
  8. 如請求項1至7中任一項所述的視訊解碼方法,其中,所述串位移向量殘差第一方向分量為串位移向量殘差的垂直方向分量。
  9. 如請求項8所述的視訊解碼方法,所述視訊解碼方法還包括:若所述串位移向量殘差垂直方向分量的值為0,則從所述碼流中解碼出串位移向量殘差水平方向分量符號值;若根據所述串位移向量殘差水平方向分量符號值確定串位移向量殘差水平方向分量的值小於0,則按照k1階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差水平方向分量的絕對值,k1
    Figure 111108452-A0305-02-0063-1
    0;若根據所述串位移向量殘差水平方向分量符號值確定串位移向量殘差水 平方向分量的值大於0,則按照t1階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差水平方向分量的絕對值,t1
    Figure 111108452-A0305-02-0064-2
    0且t1與k1不相等;根據所述串位移向量殘差水平方向分量絕對值,以及所述串位移向量殘差水平方向分量符號值,確定所述串位移向量殘差水平方向分量的值。
  10. 如請求項9所述的視訊解碼方法,其中,在從所述碼流中解碼出串位移向量殘差水平方向分量符號值之前,所述視訊解碼方法還包括:在解碼的起始行是第0行的情況下,若當前串的起點所在行是奇數行,則執行從所述碼流中解碼出串位移向量殘差水平方向分量符號值的過程;若當前串的起點所在行是偶數行,則將所述串位移向量殘差水平方向分量符號值設為第一值,以指示所述串位移向量殘差水平方向分量的值小於0,並按照k1階指數哥倫布碼進行反二值化處理得到串位移向量殘差水平方向分量的絕對值;根據所述串位移向量殘差水平方向分量絕對值,以及所述串位移向量殘差水平方向分量符號值,確定所述串位移向量殘差水平方向分量的值。
  11. 如請求項8所述的視訊解碼方法,所述視訊解碼方法還包括:若所述串位移向量殘差垂直方向分量的值大於0,則將串位移向量殘差水平方向分量符號值設為第一值,以指示串位移向量殘差水平方向分量的值小於0;按照k1階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差水平方向分量的絕對值;根據所述串位移向量殘差水平方向分量絕對值,以及所述串位移向量殘 差水平方向分量符號值,確定所述串位移向量殘差水平方向分量的值。
  12. 如請求項8所述的視訊解碼方法,所述視訊解碼方法還包括:若所述串位移向量殘差垂直方向分量的值小於0,則從所述碼流中解碼出串位移向量殘差水平方向分量的標誌位;若所述串位移向量殘差水平方向分量的標誌位為第一值,則從所述碼流中解碼出所述串位移向量殘差水平方向分量符號值;其中,若所述串位移向量殘差水平方向分量的標誌位為第一值,表示所述串位移向量殘差水平方向分量的值不為0;若根據所述串位移向量殘差水平方向分量符號值確定串位移向量殘差水平方向分量的值小於0,則按照k1階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差水平方向分量的絕對值,k1
    Figure 111108452-A0305-02-0065-3
    0;若根據所述串位移向量殘差水平方向分量符號值確定串位移向量殘差水平方向分量的值大於0,則按照t1階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差水平方向分量的絕對值,t1
    Figure 111108452-A0305-02-0065-6
    0且t1與k1不相等;根據所述串位移向量殘差水平方向分量絕對值,以及所述串位移向量殘差水平方向分量符號值,確定所述串位移向量殘差水平方向分量的值。
  13. 如請求項12所述的視訊解碼方法,所述視訊解碼方法還包括:若所述串位移向量殘差水平方向分量的標誌位為第二值,則確定所述串位移向量殘差水平方向分量的值為0。
  14. 如請求項1至7中任一項所述的視訊解碼方法,所述方法還包括:從碼流中解碼出串位移向量殘差第二方向分量符號值; 若根據所述串位移向量殘差第二方向分量符號值確定串位移向量殘差第二方向分量的值小於0,則按照k2階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差第二方向分量的絕對值,k2
    Figure 111108452-A0305-02-0066-7
    0;若根據所述串位移向量殘差第二方向分量符號值確定串位移向量殘差第二方向分量的值大於0,則按照t2階指數哥倫布碼的方式進行反二值化處理得到串位移向量殘差第二方向分量的絕對值,t2
    Figure 111108452-A0305-02-0066-8
    0且t2與k2不相等;根據所述串位移向量殘差第二方向分量絕對值,以及所述串位移向量殘差第二方向分量符號值,確定所述串位移向量殘差第二方向分量的值。
  15. 如請求項14所述的視訊解碼方法,其中,從碼流中解碼出串位移向量殘差第二方向分量符號值,包括:從碼流中解碼出串位移向量殘差第二方向分量的標誌位;若所述串位移向量殘差第二方向分量的標誌位為第一值,則從所述碼流中解碼出所述串位移向量殘差第二方向分量符號值;其中,若所述串位移向量殘差第二方向分量的標誌位為第一值,表示所述串位移向量殘差第二方向分量的值不為0。
  16. 如請求項15所述的視訊解碼方法,所述視訊解碼方法還包括:若所述串位移向量殘差第二方向分量的標誌位為第二值,則確定所述串位移向量殘差第二方向分量的值為0。
  17. 如請求項14所述的視訊解碼方法,所述視訊解碼方法還包括:若所述串位移向量殘差第二方向分量符號值為第一值,則確定所述串位移向量殘差第二方向分量的值小於0;若所述串位移向量殘差第二方向分量符號值為第二值,則確定所述串位 移向量殘差第二方向分量的值大於0。
  18. 如請求項1至7任一項所述的視訊解碼方法,所述視訊解碼方法還包括:若未獲取到預測串位移向量SVP,則將串位移向量殘差SVD作為串位移向量SV;若獲取到預測串位移向量SVP,則根據所述串位移向量殘差SVD和所述預測串位移向量SVP確定串位移向量SV。
  19. 一種視訊解碼裝置,包括:第一解碼單元,配置為從碼流中解碼得到串位移向量殘差第一方向分量絕對值,其中,該第一解碼單元進一步配置為:從碼流中按照截斷一元碼的方式進行解碼並進行反二值化處理,得到串位移向量殘差第一方向分量的前綴值;以及根據所述串位移向量殘差第一方向分量的前綴值,生成所述串位移向量殘差第一方向分量絕對值;第二解碼單元,配置為若所述串位移向量殘差第一方向分量絕對值不為0,則從所述碼流中解碼得到串位移向量殘差第一方向分量符號值;第一處理單元,配置為根據所述串位移向量殘差第一方向分量絕對值,以及所述串位移向量殘差第一方向分量符號值,確定串位移向量殘差第一方向分量的值。
  20. 一種計算機可讀媒體,其上儲存有計算機程式,所述計算機程式被處理器執行時實現如請求項1至18中任一項所述的方法。
  21. 一種電子設備,包括:一個或多個處理器;儲存裝置,用於儲存一個或多個程式,當所述一個或多個程式被所述一 個或多個處理器執行時,使得所述一個或多個處理器實現如請求項1至18中任一項所述的方法。
TW111108452A 2021-03-14 2022-03-08 視訊編解碼方法、裝置、計算機可讀媒體及電子設備 TWI806480B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110273048.X 2021-03-14
CN202110273048.XA CN115086657A (zh) 2021-03-14 2021-03-14 视频编解码方法、装置、计算机可读介质及电子设备

Publications (2)

Publication Number Publication Date
TW202236850A TW202236850A (zh) 2022-09-16
TWI806480B true TWI806480B (zh) 2023-06-21

Family

ID=83241083

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111108452A TWI806480B (zh) 2021-03-14 2022-03-08 視訊編解碼方法、裝置、計算機可讀媒體及電子設備

Country Status (5)

Country Link
US (1) US20230062131A1 (zh)
EP (1) EP4207763A1 (zh)
CN (1) CN115086657A (zh)
TW (1) TWI806480B (zh)
WO (1) WO2022193870A1 (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111866512A (zh) * 2020-07-29 2020-10-30 腾讯科技(深圳)有限公司 视频解码方法、视频编码方法、装置、设备及存储介质
CN112073719A (zh) * 2020-08-21 2020-12-11 浙江大华技术股份有限公司 一种串匹配预测方法、装置、系统及计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2527354A (en) * 2014-06-19 2015-12-23 Canon Kk Method and apparatus for vector encoding in video coding and decoding
CN107211136B (zh) * 2015-01-30 2019-10-29 联发科技股份有限公司 具有大字母表的源样本的熵编码与熵解码的方法
US10708164B2 (en) * 2016-05-03 2020-07-07 Qualcomm Incorporated Binarizing secondary transform index
CN112218092B (zh) * 2020-10-17 2022-09-06 浙江大华技术股份有限公司 串编码技术的编码方法、设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111866512A (zh) * 2020-07-29 2020-10-30 腾讯科技(深圳)有限公司 视频解码方法、视频编码方法、装置、设备及存储介质
CN112073719A (zh) * 2020-08-21 2020-12-11 浙江大华技术股份有限公司 一种串匹配预测方法、装置、系统及计算机可读存储介质

Also Published As

Publication number Publication date
EP4207763A1 (en) 2023-07-05
WO2022193870A1 (zh) 2022-09-22
CN115086657A (zh) 2022-09-20
US20230062131A1 (en) 2023-03-02
TW202236850A (zh) 2022-09-16

Similar Documents

Publication Publication Date Title
US11889097B2 (en) Techniques for decoding or coding images based on multiple intra-prediction modes
EP1457056B1 (en) Skip macroblock coding
CN105393537A (zh) 用于基于散列的块匹配的散列表构建和可用性检查
US11647198B2 (en) Methods and apparatuses for cross-component prediction
JP2023156438A (ja) データ符号化方法及び装置、データ復号化方法及び装置、画像処理装置
EP4246975A1 (en) Video decoding method and apparatus, video coding method and apparatus, and device
EP3836549A1 (en) Video image prediction method and apparatus
US20230283766A1 (en) Methods and apparatuses for cross-component prediction
CN112543337B (zh) 视频解码方法、装置、计算机可读介质及电子设备
CN113709458B (zh) 视频编解码中的位移矢量预测方法、装置及设备
US20240089494A1 (en) Video encoding and decoding method and apparatus, storage medium, electronic device, and computer program product
TWI806480B (zh) 視訊編解碼方法、裝置、計算機可讀媒體及電子設備
CN114071158A (zh) 视频编解码中的运动信息列表构建方法、装置及设备
CN115086656A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
CN115086655A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
CN116805969A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
WO2023051222A1 (zh) 滤波及编解码方法、装置、计算机可读介质及电子设备
WO2022037464A1 (zh) 视频解码方法、视频编码方法、装置、设备及存储介质
WO2022037458A1 (zh) 视频编解码中的运动信息列表构建方法、装置及设备
US20240015336A1 (en) Filtering method and apparatus, computer-readable medium, and electronic device
CN117560502A (zh) 视频编码方法、装置、计算机可读介质及电子设备
CN115209146A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
CN118101958A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
TW202402051A (zh) 電子設備和視訊編解碼的方法
CN115086654A (zh) 视频编解码方法、装置、计算机可读介质及电子设备