TWI832628B - 視訊編解碼方法及其裝置 - Google Patents

視訊編解碼方法及其裝置 Download PDF

Info

Publication number
TWI832628B
TWI832628B TW111149218A TW111149218A TWI832628B TW I832628 B TWI832628 B TW I832628B TW 111149218 A TW111149218 A TW 111149218A TW 111149218 A TW111149218 A TW 111149218A TW I832628 B TWI832628 B TW I832628B
Authority
TW
Taiwan
Prior art keywords
picture
size
reference pictures
search range
reference picture
Prior art date
Application number
TW111149218A
Other languages
English (en)
Other versions
TW202327354A (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 TW202327354A publication Critical patent/TW202327354A/zh
Application granted granted Critical
Publication of TWI832628B publication Critical patent/TWI832628B/zh

Links

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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/172Methods 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 picture, frame or field
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/423Methods 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 characterised by memory arrangements
    • 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
    • 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
    • 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/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

用於管理搜索記憶體的各種方案被描述,其有利於實現增強的編解碼增益,低延遲和/或視訊編碼器或解碼器的減少的硬體。在處理當前圖片的當前塊時,裝置確定當前圖片的多個參考圖片的數量。該裝置隨後基於該數量決定至少一個參考圖片的對應的搜索範圍大小。然後,該裝置基於搜索範圍大小和當前塊的位置決定參考圖片的搜索範圍,以及該裝置基於該搜索範圍對當前塊進行編碼或解碼。

Description

視訊編解碼方法及其裝置
本公開總體上涉及視訊編解碼,以及更具體地,本公開涉及藉由有效的搜索記憶體管理來提高視訊編碼器或解碼器的編解碼效率的方法和裝置。
除非本文另有說明,否則本節中描述的方法不是下面列出的申請專利範圍的習知技術,以及不被包含在本節中而被承認為習知技術。
視訊編解碼通常涉及由編碼器將視訊(即,源視訊)編碼成位元流,將位元流傳輸到解碼器,以及由解碼器解析和處理位元流從位元流解碼視訊以產生重構的視訊。視訊編解碼器(即,編碼器和解碼器)可以在編碼和解碼視訊時採用各種編解碼模式或工具,其目的之一是實現例如表現為高編解碼增益的高效視訊編解碼。即,視訊編解碼器旨在減少需要從編碼器傳輸到解碼器的位元流的總大小,同時仍向解碼器提供有關原始視訊的足夠資訊,以便解碼器生成可以令人滿意地忠實於原始視訊的重構的視訊。
許多編解碼工具是基於塊的編解碼工具,其中待編解碼的圖片或幀被劃分為許多不重疊的矩形區域或“塊”。塊構成編解碼工具處理的基本元素,如幀內預測和幀間預測中常見的那樣,用於視訊編解碼的這兩種主要技術,分別藉由去除源視訊中的空間和時間冗餘來實現高效的視訊編解碼。通常,視訊冗餘藉由在被稱為“候選參考塊”的多個已編碼塊中搜索以及找到最類似於當前待編解碼塊的一個或多個參考塊來去除。包含候選參考塊的幀被稱為“候選參考幀”。找到參考塊後,使用參考塊本身以及參考塊和當前塊之間的差值(被稱為“殘差”),當前塊可被編解碼或以其他方式表示,從而消除冗餘。幀內預測利用在當前塊的同一幀內找到的參考塊來去除冗餘,而幀間預測利用不在當前塊的同一幀內而是在另一幀內找到的每個參考塊,另一幀通常被稱為源視訊的“參考幀”或“參考圖片”。
作為基於塊的處理器,視訊編碼器通常以管線方式順序編解碼塊。即,視訊編解碼器可以是具有多個級的編解碼管線,每個級被配置為在將塊傳遞到管線中的下一級之前對要編解碼的塊執行特定功能。塊可以逐步經過編解碼管線,直到它被編解碼為止。在幀內的所有塊經過編解碼管線後,幀被編解碼。並非所有已經編解碼的塊都可以作為用於幀內或幀間預測的候選參考塊。同樣,並不是所有已經編解碼的幀都可以作為候選參考幀。通常,只有候選參考幀的特定塊可以作為候選參考塊。候選塊通常是在空間或時間上接近正在編解碼的當前塊的塊,因為與在空間或時間上遠離當前塊的塊相比,視訊編解碼器有更高的機會在這些候選塊中找到與當前塊最相似的塊。候選塊可以載入到實體記憶體中,通常是靜態隨機存取記憶體(static random-access memory,簡稱SRAM),例如3級(L3)記憶體,其視訊編碼器和/解碼器的幀內預測引擎或幀間預測引擎存取,以對當前塊執行幀內或幀間預測。實體記憶體通常被稱為視訊編碼器或解碼器的“搜索記憶體”。
視訊編解碼器可以採用特定演算法來管理搜索記憶體。例如,演算法可以確定將哪些塊載入到搜索記憶體中作為幀內和幀間預測引擎存取的候選塊。演算法可以是編解碼工具特定的以及可以被修改以適應視訊編碼器可以採用的各種並行處理方案,例如波前並行處理(wavefront parallel processing,簡稱WPP)。用於管理搜索記憶體的演算法在視訊編碼器編解碼視訊的效率方面起著重要作用。視訊編解碼器的效率可以在編解碼視訊的品質因數中體現,比如編解碼增益(例如,位元速率增益,例如Bjontegaard Delta-Rate增益)或主觀/客觀品質(例如,峰值訊噪比)。
以下概述僅是說明性的並且不旨在以任何方式進行限制。即,以下概述被提供以介紹本文所述的新穎且非顯而易見的技術的概念,亮點,益處和優點。選擇而不是所有的實施方式在下面的詳細描述中被進一步描述。因此,以下概述並非旨在識別所要求保護的主題的基本特徵,也不旨在用於確定所要求保護的主題的範圍。
本公開的目的是提供與管理用於視訊編解碼的搜索記憶體有關的方案、概念、設計、技術、方法和裝置。利用本公開中的各種實施例,可實現包括增強的編解碼增益、改進的編解碼時延、簡化的搜索記憶體訪問和/或減少的硬體開銷的益處。
在一個方面,基於多個參考圖片使用基於塊的幀間預測來編碼或解碼視訊的圖片的當前塊的方法被呈現,該參考圖片與當前圖片相關聯或對應於當前圖片。參考圖片與當前圖片在同一視訊中,基於該方法可以有效地去除當前圖片中的時間冗餘。該方法可以涉及確定參考圖片的數量,即,表示對應於當前圖片的參考圖片的數量。每個參考圖片都有一個唯一的索引,例如圖片順序計數(picture order count,簡稱POC),用於識別視訊的時間序列中相應的參考圖片。在一些實施例中,該方法可以涉及使用一個或多個有序列表來存儲參考圖片的索引,以及該方法可以藉由檢查索引列表來確定參考圖片的數量。該方法可以涉及決定每個參考圖片或至少一個參考圖片的相應的搜索範圍大小(SR大小),而SR大小至少部分地基於參考圖片的數量來決定。該方法還可以涉及識別當前塊的位置。例如,該方法可以將當前塊的第一像素(例如,當前塊的左上角或中心的像素)的像素座標識別為當前塊的位置。基於當前塊的位置和SR大小,該方法可以涉及決定參考圖片中的每個參考圖片或至少一個參考圖片中包含參考圖片的多個塊的搜索範圍(SR),所述多個塊可以作為用於編解碼當前塊的候選參考塊。然後,該方法可以涉及基於多個參考圖片中的每個參考圖片或至少一個參考圖片的SR內的候選參考塊對當前塊進行編解碼。在一些實施例中,該方法可以涉及除了參考圖片的數量之外還基於搜索記憶體的大小來決定SR大小,其中搜索記憶體被配置為存儲來自每個參考圖片或者來自至少一個參考圖片的候選參考塊。
在一些實施例中,該方法可以涉及使用兩個有序列表而不是一個有序列表來追蹤參考圖片。例如,在當前圖片是當代視訊編解碼標準中定義的所謂“雙向預測幀”或“B幀”的情況下,幀間預測可以使用兩個有序列表(每個預測方向一個)來執行。這兩個列表可以有也可以沒有重複的參考圖片。如果相同的參考圖片重複出現,即出現在兩個列表中,則參考圖片在數量上計算兩次。例如,被稱為“列表0”和“列表1”的兩個列表可以分別包括第一數量的索引和第二數量的索引。不管是否有索引同時出現在列表0和列表1中,參考圖片的數量都是第一數量和第二數量之總和。該方法可以涉及對出現在列表0和列表1中的參考圖片指定較大的SR大小,以及對僅出現在兩個列表之一中的參考圖片指定較小的SR大小。也就是說,該方法旨在將更多的搜索記憶體分配給出現在兩個列表中的參考圖片,因為該參考圖片比僅出現在兩個列表(即僅用於從一個方向進行的預測)中之一的另一參考圖片更多地被使用。
在另一方面,一種裝置被提供,其包括參考圖片緩衝器(reference picture buffer,簡稱RPB)、一個或多個參考圖片列表(reference picture list,簡稱RPL)、搜索記憶體、處理器和編解碼模組。RPB被配置為存儲當前圖片的多個參考圖片,其中每個RPL被配置為存儲一個或多個索引,以及該一個或多個索引中的每個索引對應於參考圖片之一。在一些實施例中,參考圖片的POC可被用作索引。處理器被配置為基於一個或多個RPL來確定多個參考圖片的數量。處理器隨後可以基於該數量決定多個參考圖片中的每個參考圖片或者至少一個參考圖片所對應的SR大小。此外,處理器可以識別當前圖片的當前塊的位置,例如當前塊的左上角或中心的像素的像素座標。基於當前塊的位置以及對應於參考圖片的SR大小,處理器可以決定包含相應參考圖片的多個塊的搜索範圍(SR)作為用於對當前塊進行編解碼的候選參考塊。處理器可以以相同的方式對當前圖片中的另一個或多個參考圖片或每個參考圖片確定候選參考塊。處理器還可以將決定的候選參考塊存儲到搜索記憶體。搜索記憶圖可以由編解碼模組存取,使得編解碼模組可以使用參考圖片的SR內的參考圖片的多個塊,即存儲在搜索記憶體中的候選參考塊,對當前塊進行編解碼。
在一些實施例中,該裝置還可以包括運動估計模組。運動估計模組被配置為對每個參考圖片或至少一個參考圖片決定相應巨集運動向量(macro motion vector,簡稱MMV),該相應巨集運動向量表示從當前圖片指向相應參考圖片或從相應的參考圖片到當前圖片的圖片級空間位移。即,MMV可被視為相應參考圖片的圖片級運動向量。處理器可以進一步基於MMV來決定相應參考圖片的SR。在一些實施例中,運動估計模組可以是編解碼模組的一部分。
在以下詳細描述中,藉由示例的方式闡述了許多具體細節,以便提供對相關教導的透徹理解。基於本文描述的教導的任何變化,衍生和/或擴展都在本公開的保護範圍內。在一些情況下,與在此公開的一個或多個示例實施方式有關的眾所周知的方法,處理,組件和/或電路可以在相對較高的水準上進行描述而沒有細節,以避免不必要地模糊本公開的教導的方面。
根據本公開的實施方式涉及與實現視訊編碼器或解碼器的高效搜索記憶體管理有關的各種技術、方法、方案和/或解決方案。根據本發明,多種可能的方案可以單獨或聯合實施。也就是說,雖然這些可能的解決方案可以在下面單獨描述,但是這些可能的解決方案中的兩個或更多個可以以一種或另一種組合來實現。
如上文別處所述,影響視訊編解碼器的編解碼效率的重要因素是視訊編解碼器如何管理用於存儲正被編解碼的當前塊的候選參考塊的搜索記憶體。為此,視訊編解碼器可以採用各種搜索記憶體管理方案,這些方案可能特定於或可能不特定用於所使用的編解碼工具。舉例來說,視訊編解碼器可採用演算法來確定哪些已編解碼塊可用作用於編解碼當前塊的候選參考塊。
下面詳細描述幾種搜索記憶體管理方案。首先,使用適應性搜索範圍大小的搜索記憶體管理被描述,其中不同的參考圖片可以具有不同大小的搜索範圍,候選參考塊駐留在搜索範圍內。其次,使用適應性搜索範圍位置的搜索記憶體管理被描述,其中每個參考圖片的搜索範圍的位置相對於正在編解碼的當前塊可能具有或不具有相應的移位。適應性搜索範圍定位旨在增加找到更好的參考塊的機會,例如,具有較低的殘差。第三,基於編解碼樹單元(coding tree unit,簡稱CTU)的並行處理的搜索記憶體管理被描述。 一、適應性搜索範圍大小
第1圖示出根據本公開的實施方式的示例設計的圖,其中搜索記憶體管理模組(search memory management,簡稱SMM)180被用來提供搜索記憶體管理方案,該搜索記憶體管理方案用於對視訊的當前圖片的當前塊進行編解碼。視訊包括多個圖片或“幀”,它們以時間序列呈現或以其他方式顯示,例如時間序列160。如第1圖所示,時間序列160包括一系列圖片,例如圖片100、圖片101、圖片102、圖片103、圖片104、...、圖片107、圖片108、圖片109和圖片110,其中,圖片之間存在時間關係。當時間序列160根據順序顯示為視訊時,時間關係以圖片的順序顯示。例如,圖片100是時間序列160的第一圖片。也就是說,當時間序列160被呈現(例如,記錄或顯示)為視訊時,圖片100表示第一幀。在時間序列160中,圖片102在時間上顯示在圖片101之後,接著是圖片103,接著是圖片104等。類似地,圖片107之後是圖片108,圖片108後面跟著圖片109,接著是圖片110,依此類推。此外,時間序列160的每張圖片都具有時間識別字,稱為“圖片順序計數(picture order count,簡稱POC)”,其是用於記錄或以其他方式識別時間序列160中的各個圖片的時間位置的整數索引。如第1圖所示,圖片100具有指定或以其他方式記錄為POC=0的相應時間識別字,而圖片101的POC被指定為POC=1。類似地,圖片102、103、104、107、108、109和110的POC值分別被指定為POC=2、3、4、7、8、9和10,如第3圖所示。使用此方案,圖片被顯示為視訊時的時間關係可以被記錄。特定圖片的POC值可以標識圖片在視訊的時間序列中的時間位置。時間序列中的每張圖片都具有唯一的POC值,在時間序列被顯示時,POC值小於第二圖片的第一圖片必須在第二圖片之前。POC資訊對於SMM 180執行搜索記憶體管理功能很重要,這將在下文別處詳細公開。
根據本公開的搜索記憶體管理的總體思路如下。在本公開中,術語“幀”、“圖片”和“圖片幀”可互換地用於指代視訊中的圖片,例如圖片100-110中的任一圖片。幀間預測模組140被配置為使用基於塊的方法對時間序列160的當前圖片進行編碼或解碼。幀間預測模組140可以採用在幀間編解碼中通常採用的基於塊的運動估計(motion estimation,簡稱ME)和運動補償(motion compensation,簡稱MC)技術,尤其是使用塊匹配演算法的技術。如上文別處所述,在基於塊的方法中,時間序列160中的每個圖片被分成多個不重疊的矩形區域,被稱為“塊”。幀間預測模組140藉由依次處理當前圖片的塊來對當前圖片進行編碼,直到當前圖片的所有塊被處理。幀間預測模組140正在處理的當前圖片的塊被稱為“當前塊”。例如,幀間預測模組140可以正在處理圖片103。也就是說,圖片103是當前圖片。幀間預測模組140可以藉由將ME和MC技術應用於對應於當前圖片103的多個參考圖片,即時間序列160中的一些其他幀,來對當前圖片103進行編碼或解碼。例如, 當前圖片103對應的參考圖片可以包括圖片100、102、104和108。
時間序列160的每個圖片可以具有對應的參考圖片組。一般而言,並非時間序列160的每張圖片都是時間序列160的一個或多個其他圖片的參考圖片。即,時間序列160的圖片可被分為兩組,即,第一組162包括參考圖片,以及第二組164包括非參考圖片。屬於第一組162的圖片可以被存儲在參考圖片緩衝器(reference picture buffer,簡稱RPB) 150中,其中RPB 150可由SMM 180存取。
除了存儲參考圖片162之外,RPB 150還可以存儲一個或多個列表,被稱為參考圖片列表或RPL。每個RPL包括一個或多個索引,其中一個或多個索引中的每個索引對應於當前圖片的參考圖片。基於存儲在RPL中的索引,SMM 180能夠將參考圖片的資訊轉發到幀間預測模組140。具體地,SMM 180可以包括處理器182和搜索記憶體184。對於當前圖片103的參考圖片中的至少一個(即,圖片100、102、104和108中的任一或每個),處理器182可以確定包括相應參考圖片的一部分的相應搜索範圍(search range,簡稱SR)。處理器182還可以針對當前圖片103的至少一個參考圖片,將SR內的像素資料存儲到搜索記憶體184。幀間預測模組140可以存取搜索記憶體184,以及基於存儲在搜索記憶體184中的像素資料對當前圖片103進行編碼或解碼。
在一些實施例中,存儲在RPB 150中的每個RPL可以是有序列表。即,記錄在每個RPL中的索引按順序記錄,當幀間預測模組140應用使用當前幀的參考圖像的像素資料的ME和MC技術時,該順序可以是相應參考圖片的優先順序的指示。在一些實施例中,索引可以是參考圖片162的POC。與當前圖片103相關聯的RPL的數量取決於當前圖片103的圖片類型。圖片類型可以指示當前圖片103是現代視訊編解碼標準中所定義的預測幀(P幀)或雙向預測幀(B幀),現代視訊編解碼標準比如是多功能視訊編解碼(Versatile Video Coding,簡稱VVC)、高效視訊編解碼(High Efficiency Video Coding,簡稱HEVC)或高級視訊編解碼(Advanced Video Coding,簡稱AVC)。在當前圖片103是P幀的情況下,RPB 150可以僅存儲一個RPL,例如RPL 157。在當前圖片103是B幀的情況下,RPB 150可以存儲兩個RPL,例如RPL 157和另一個RPL 158。對應於P幀的一個RPL通常被稱為“列表0”,而對應於B幀的兩個RPL通常被稱為“列表0”和分別為“列表1”。
第2圖示出根據本公開的實施方式的示例設計的圖,其中當前圖片103可以被劃分為多個不重疊的矩形塊,例如塊211、212、213、214、215、216 和217。幀間預測模組140可以順序地處理當前圖片103的塊。具體地,對於當前圖片103的每個塊,幀間預測模組140被配置為尋找每個參考圖片100、102、104和108中的最佳匹配塊,其中最佳匹配塊是如下塊:與當前圖片103的相應塊相似以及具有相同大小。最佳匹配塊的邊界可以與當前圖片103的不重疊矩形塊的邊界對齊或不對齊。幀間預測模組140可以藉由使用整數像素搜索演算法在至少一個參考圖片以及至多每個參考圖片中搜索相應的搜索範圍(search range,簡稱SR)來找到最佳匹配塊。在一些實施例中,幀間預測模組140可以在整數像素搜索演算法之後使用分數像素搜索演算法來找到最佳匹配塊。
如第2圖所示,幀間預測模組140當前正在處理圖片103的塊217;即,圖片103是當前圖片,而塊217是當前塊。對應於當前圖片103的一個或多個RPL上記錄有POC 0、2、4和8。即,對應於當前圖片103的參考圖片是圖片100、102、104和108。因此,幀間預測模組140可以藉由搜索圖片100內的SR 209從圖片100中找到最佳匹配塊203。類似地,幀間預測模組140可以藉由搜索圖片102內的SR 229從圖片102中找到最佳匹配塊223。同樣地,幀間預測模組140藉由分別搜索圖片104和108中的SR 249和SR 289可以從圖片102中找到最佳匹配塊243和283。
如上所述,處理器182分別確定參考圖片100、102、104和108的搜索範圍209、229、249和289。通常,搜索範圍具有矩形形狀。搜索範圍209、229、249和289中的每一個由其大小和位置定義。搜索範圍的大小,或“SR大小”,可以用搜索範圍的高度和寬度來表示,也可以用搜索範圍的總面積來表示。搜索範圍的位置可以使用參考圖片內的搜索範圍的像素座標來識別。例如,搜索範圍的左上像素的座標可以用於標識搜索範圍的位置。作為另一個例子,搜索範圍的位置可以使用搜索範圍中心的像素座標來標識。
在一些實施例中,每個搜索範圍都以當前塊為中心。因此,標識當前塊的座標可足以標識每個搜索範圍的位置。例如,在一些實施例中,SR 209、229、249和289中的每一個可以以當前塊217為中心。因此,用於標識當前塊217的位置的像素座標(例如,當前塊217左上角的像素的坐標)可用於識別SR 209、229、249和289中的每一個的位置。
在一些實施例中,所有搜索範圍可以不以當前塊為中心。也就是說,當前塊的中心與搜索範圍的中心之間可能存在位移。例如,SR 209和SR 289 可能不以當前塊217為中心,以及位移可被用來識別SR 209或289的位置與當前塊217的位置相比的相對移位。位移可以是從當前塊217的中心指向SR 209或289的中心的向量。可選地,位移可以是從SR 209或289的中心指向當前塊217的中心的向量。
在一些實施例中,所有SR可以具有相同的SR大小,以及SR大小等於默認大小。在一些實施例中,默認大小可以是當前塊大小的倍數。例如,SR209、229、249和289中的每一個可以具有寬度和高度,該寬度x倍於當前塊217的寬度,以及該高度y倍於當前塊217的寬度。在一些實施例中 ,x可以等於y,例如x=y=2.5或x=y=5。在一些實施例中,x可以不等於y,例如x=5和y=2.5。
在一些實施例中,所有SR可以具有相同的SR大小,以及處理器182可以基於當前圖片的參考圖片的數量來決定SR大小。此外,處理器182可以決定SR大小,使得所有SR的總大小保持恒定值,而不考慮參考圖片的數量。處理器182可以藉由存取RPB 150找到或以其他方式確定當前圖片的參考圖片的數量。具體地,處理器182可以藉由檢查存儲在RPB 150中的一個或多個RPL(例如,RPL 157和158),因為每個RPL都包含參考圖片的POC值。例如,處理器182可以檢查RPL 157和158,從而確定圖片103具有四個參考圖片(即,圖片100、102、104和108)。同樣,處理器182可以檢查RPL 157和158以及確定圖片108僅具有兩個參考圖片(例如,圖片107和109)。由於當前圖片103的參考圖片的數量是當前圖片108的兩倍,處理器182可以決定當前圖片103的參考圖片的SR大小是當前圖片108的一半,使得當前圖片103的SR的總大小與當前圖片108的SR的總大小相同。即,SR大小是除以當前圖片的參考圖片的數量的恒定值。在一些實施例中,SR的總大小的恒定值可以基本上等於搜索記憶體184的大小,其中搜索記憶體184的大小與搜索記憶體184的總容量成比例,以及可以使用搜索記憶體184能夠存儲的像素資料量來測量。在視訊編解碼器是使用諸如半導體積體電路(intefrated circuit,簡稱IC)晶片中的那些物理電子組件來實現的情況下,搜索記憶體184可以使用靜態隨機存取記憶體(static random-access memory,簡稱SRAM)來實現,例如level-3(L3)記憶體,是IC晶片的組成部分。因此,搜索記憶體184的容量是固定值,該固定值取決於包括在IC晶片上的SRAM的大小。處理器182因此可以藉由將搜索記憶體184的大小除以當前圖片的參考圖片的數量來決定每個參考圖片的SR大小。
在一些實施例中,每個參考圖片可以或可以不具有分別不同大小的SR。為了決定每個參考圖片的相應SR大小,處理器182可以首先決定基本SR大小或“基本大小”。處理器182然後可以基於當前圖片的基本大小和圖片類型來確定相應的SR大小。例如,如果當前圖片是P幀,則每個參考圖片可以具有SR,其SR大小相同。具體地,處理器182可以將基本大小指定為每個參考圖片的SR大小。如果當前圖片是B幀,則可能存在其中參考圖片具有比另一參考圖片更大或更小的SR大小的場景。下面介紹不同類型的當前圖片基本大小的決定及其與SR大小的關係。
在當前圖片是P幀的情況下,只有一個對應的RPL(例如,RPL 157或158)被存儲在RPB 150中。處理器182可以藉由檢查存儲在RPB 150中的RPL來確定當前圖片的參考圖片的數量。處理器182然後可以基於數量決定當前圖片的參考圖片的SR的基本大小。例如,圖片108可以是具有兩個參考圖片的P幀:POC=0圖片(即,圖片100)和POC=16圖片(第1圖中未示出)。因此,當圖片108是當前圖片時,POC=0圖片和POC=16圖片被存儲為參考圖片162的一部分。而且,RPB 150可以包括RPL 157,其包括POC值0和16作為索引,該索引將POC=0圖片和POC=16圖片識別為當前圖片108的參考圖片。處理器182可檢查RPL 157以及因此確定當前圖片108的參考圖片的數量為二,因為RPL 157包括兩個索引。然後處理器182可以將SR的基本大小決定為默認大小除以數量(即,二)。或者,處理器182可將SR的基本大小決定為搜索記憶體184的大小除以數量(即,二)。在基本大小被決定之後,處理器182可以將基本大小指定為當前圖片108的每個參考圖片的SR大小,即,POC=0圖片和POC=16圖片。
在當前圖片是B幀的情況下,在RPB 150中存儲有兩個對應的RPL (例如,RPL 157和158)。處理器182可以藉由檢查存儲在RPB 150中的RPL決定當前圖片的參考圖片的數量。這兩個RPL可以分別包括第一數量的索引和第二數量的索引。需要注意的是,同一個索引可能同時出現在兩個RPL中。即,可能存在在兩個RPL中重複的索引。處理器182可以將數量確定為第一數量和第二數量的總和,而不考慮任一重複的索引或者其缺失。然後處理器182可以基於數量決定當前圖片的參考圖片的SR的基本大小。例如,圖片108可以是具有記錄在RPL 157和158中的每個RPL中的兩個參考圖片索引的B幀。具體地,RPL 157可以包括兩個索引0和16,其標識POC=0圖片(即, 圖片100)和POC=16圖片(第1圖中未示出)作為圖片108的參考圖片,而RPL 158可以包括兩個索引16和32,其標識POC=16圖片和POC=32圖片(未在第1圖中示出)作為圖片108的參考圖片。因此,當圖片108是當前圖片時,POC=0圖片、POC=16圖片和POC=32圖片被存儲為參考圖片162的一部分。注意POC=16圖片出現在RPL 157和RPL 158中。處理器182可以檢查RPL 157和158以及計算第一數量(即,二)和第二數量(即,二)的總和。處理器182可以藉由將第一數量和第二數量的總和(即,四)指定為數量來相應地確定當前圖片108的參考圖片的數量。值得注意的是,數量被確定為四,即使對於當前圖片108只有三個不同的參考圖片(即,POC=0圖片、POC=16圖片和POC=32圖片)。這是因為POC=16的圖片同時出現在RPL 157和RPL 158中,因此兩次被計入數量。處理器182然後可以將SR的基本大小決定為默認大小除以數量(即,四)。或者,處理器182可將SR的基本大小決定為搜索記憶體184的大小除以數量(即,四)。在基本大小被決定之後,處理器182可以基於相應參考圖片是否在RPL 157和158中的一個或兩個中來決定當前圖片108的每個參考圖片的SR大小。對於僅出現在RPL 157和158之一的參考圖片,即POC=0圖片和POC=32圖片,處理器182可以將基本大小指定為SR大小。對於同時出現在RPL 157和158中的參考圖片,即POC=16圖片,處理器182可以將基本大小的兩倍指定為SR大小。即,POC=16圖片的SR大小是POC=0或32圖片的SR大小的兩倍。SR大小的兩倍可以表現為SR的更大寬度,SR的更大高度,或者SR的更大寬度和更大高度。
在如上所述用於編解碼B幀當前圖片的實施例中,與僅出現在列表0或列表1中的另一參考圖片相比,處理器182旨在將搜索記憶體184的較大部分分配給出現在列表0(即,RPL 157)和列表1(即RPL 158)。較大的SR增加了找到更好參考塊的可能性。也就是說,幀間預測模組140在較大SR內找到的參考塊與在較小SR內找到的參考塊相比預期具有較小的MC殘差。處理器182被配置為將搜索記憶體184的較大部分分配給同時出現在列表0和列表1中的參考圖片,因為用於參考圖片的更好的參考塊有利於編解碼B幀當前圖片的兩個方向上的幀間預測。相比之下,處理器182被制止將搜索記憶體184的較大部分分配給僅出現在列表0或列表1中的參考圖片,因為參考圖片的更好參考塊將有利於編解碼B幀當前圖片的僅在一個方向上的幀間預測。
第3圖示出根據本公開的實施方式的示例設計的圖,其中表310和表320被示出為使用上述搜索記憶體管理方案分別編解碼示例P幀和B幀。如表310所示,在當前圖片(即,具有POC=32、16、8或3的圖片)是P幀的情況下,相應參考圖片的一個索引或多個索引(即,POC值)被存儲在列表0(即,RPL 157)中,而列表1(即,RPL 158)是空的。處理器182可以檢查列表0以及對於具有POC=32、16、8和3的當前圖片分別確定參考圖片的數量為1、2、2和2。處理器182還可以基於參考圖片的數量決定基本SR大小分別為A、A/2、A/2和A/2,其中A可以是默認值,或者可選地,是搜索記憶體184的大小。然後,處理器182可以將基本SR大小指定為每個參考圖片的SR大小。例如,對於POC=32當前圖片,POC=0參考圖片的SR大小是A。對於POC=16當前圖片,POC=0參考圖片和POC=32參考圖片中的每個參考圖片的SR大小是A/2。對於POC=8當前圖片,POC=0參考圖片和POC=16參考圖片中的每個參考圖片的SR大小是A/2。對於POC=3當前圖片,POC=2參考圖片和POC=0參考圖片中的每個參考圖片的SR大小是A/2。
同樣地,如表320所示,在當前圖片(即,具有POC = 32、16、8或3的圖片)是B幀的情況下,相應參考圖片的一個索引或多個索引(即,POC值)被存儲在列表0(即,RPL 157)和列表1(即,RPL 158)中的至少一個中。處理器182可同時檢查列表0和列表1,從而決定具有POC=32、16、8和3的當前圖片的參考圖片的數量分別為2、4、4和4。處理器182還可以基於參考圖片的數量決定基本SR大小分別為A/2、A/4、A/4和A/4,其中A可以是默認值,或者可選地,是搜索記憶體184的大小。然後,處理器182可以將基本SR大小指定為僅出現在列表0和列表1之一中的每個參考圖片的SR大小,以及將基本SR大小的兩倍指定為均出現在列表0和列表1中的每個參考圖片的SR大小。例如,對於POC=32當前圖片,POC=0參考圖片的SR大小是基本SR大小的兩倍,即為A。對於POC=16的當前圖片,POC=0參考圖片和POC=32參考圖片中的每個參考圖片的SR大小是基本SR大小的兩倍,即為A/2。對於POC=8當前圖片,POC=0參考圖片和POC=32參考圖片中的每個參考圖片的SR大小是基本SR大小,即為A/4。然而,POC=16參考圖片的SR大小是基本SR大小的兩倍,即為A/2。對於POC=3當前圖片,POC=2參考圖片、POC=2參考圖片、POC=4參考圖片和POC=8參考圖片中的每個參考圖片的SR大小是基本SR大小,即為A/4。
值得注意的是,在表格310與表格320的每一行中,參考圖片的SR的總集合面積等於A,其可以是默認值,或搜索記憶體184的大小。
在一些實施例中,在處理器182如上所述決定基本大小之後,與時間上更接近當前圖片的參考圖片相比,處理器182隨後可以為時間上更遠離當前圖片的參考圖片分配搜索記憶體184的更大部分。在第2圖中,當前圖片是圖片103,而參考圖片是圖片100、102、104和108。由處理器182決定的基本大小由標有數字299的方框表示,其大小等於搜索記憶體184的大小除以參考圖片的數量(即四)。處理器182可以為參考圖片100、102、104和108中的每個參考圖片決定相對於當前圖片103的時間距離。時間距離可以藉由處理器182計算相應參考圖片的POC和當前圖片的POC之間的差值的絕對值來確定。因此,處理器182可以計算出參考圖片101相對於當前圖片103的時間距離是2個計數,而參考圖片102和104中的每個參考圖片相對於當前圖片103的時間距離是1個計數。同樣,參考圖片108相對於當前圖片103的時間距離是5計數。處理器182隨後可以基於基本大小以及各自的時間距離來決定參考圖片100、102、104和108中的每個參考圖片的SR大小。即,處理器182可以將較大的SR大小指定給相對於當前圖片具有較大時間距離的參考圖片。因此,SR 289的大小大於SR 209的大小,SR 209的大小大於SR 249的大小,SR 249的大小等於SR 229的大小。具體而言,SR 289的大小大於基本大小299,而SR 229和SR 249的大小小於基本大小299。
在一些實施例中,在處理器182如上所述確定基本大小之後,與在空間上更接近當前圖片的參考圖片(即低運動參考圖片)相比,處理器182可以隨後為在空間上遠離當前圖片的參考圖片(即,高運動參考圖片)分配搜索記憶體184的較大部分。例如,如第2圖所示,當前圖片是圖片103,而參考圖片是圖片100、102、104和108。由處理器182確定的基本大小由標有數字299的方框表示,其大小等於搜索記憶體184的大小除以參考圖片的數量(即四)。SMM 180的運動估計(motion estimation,簡稱ME)模組186可以針對參考圖片100、102、104和108中的每個參考圖片決定關於當前圖片103的巨集運動向量(macro motion Vector,簡稱MMV)。MMV表示從當前圖片到相應參考圖片的空間位移。MMV可以由ME模組186使用當前圖片103和相應的參考圖片100、102、104或108執行基於幀的率失真優化操作來確定。具有較大幅度的MMV的參考圖片在空間上離當前圖片更遠,而具有較小幅度的MMV的參考圖片在空間上更接近當前圖片。MMV可以藉由在相應參考圖片和當前圖片103之間執行圖片級運動估計來決定。可選地,MMV可以藉由不基於整個幀而是基於當前圖片的一個或多個塊以及相應參考圖片的一個或多個對應塊執行運動估計來決定。當前圖片的一個或多個塊可以包括當前塊以及當前塊的一些相鄰塊。例如,在塊217是當前塊的情況下,用於決定MMV的當前圖片的一個或多個塊可以包括當前塊217和當前塊217的幾個相鄰塊,例如塊211、212、213和216。基於相應MMV的幅度,可以決定參考圖片102和104中的每個參考圖片是低運動參考圖片,因為其相應MMV的幅度小,而參考圖片108是高運動參考圖片,因為其相應的MMV幅度較大。處理器182可以隨後基於相應MMV的大小來決定參考圖片100、102、104和108的SR大小。也就是說,處理器182可以將較大的SR大小指定給具有較大的相應MMV幅度的參考圖片。因此,處理器182可以決定SR 289的大小大於SR 249的大小,SR 259大小與SR 229的大小相等。具體地,SR 289的大小大於基本大小SR 299,而SR 229和SR 249的大小小於基本大小299。
在一些實施例中,在處理器182如上所述決定基本大小之後,與具有主題變化的參考圖片相比,處理器182可以隨後為沒有主題變化的參考圖片分配搜索記憶體184的更大部分。例如,當前圖片是圖片103,而參考圖片是圖片 100、102、104和108。由處理器182決定的基本大小由標有數字299的塊表示,其大小等於搜索記憶體184的大小除以參考圖片的數量(即四)。SMM 180的ME模組186可以決定相應參考圖片相對於當前圖片103是否具有主題變化。例如,SMM 180的運動估計模組可以在相應參考圖片和當前圖片103之間的運動補償產生的運動補償殘差大於預定閾值的情況下確定相應參考圖片相對於當前圖片103具有主題變化。因此,SMM 180的運動估計模組可以決定參考圖片100、102和104中的每個參考圖片與當前圖片103相比沒有主題變化,而參考圖片108與當前圖片103相比具有主題變化。處理器182可以隨後基於參考圖片100、102、104和108中的每個參考圖片與當前圖片103之間是否存在主題變化來決定參考圖片100、102、104和108的SR大小。處理器182可以將較小的SR大小指定給相對於當前圖片103具有主題變化的參考圖片。因此,SR 209、229和249中的每個的大小大於SR 289的大小。具體地,SR 289的大小小於基本大小299,而SR 209、229和249中的每個都大於基本大小299。在一些實施例中,處理器182可以將零指定給相對於當前圖片103具有主題變化的參考圖片。即,SR 289的大小可以是零。 二、適應性搜索範圍定位
為了決定或以其他方式定義搜索範圍,有必要決定搜索範圍的大小以及搜索範圍的位置。例如,在對當前圖片103的當前塊217進行編解碼時,SMM 180需要確定SR 209、229、249和289中的每個的大小,以及每個SR 209、229、249 和289在參考圖片100、102、104和108中的位置。上一節著重於公開SMM 180如何決定搜索範圍的大小,而本節著重於公開SMM 180如何決定搜索範圍的位置。
通常,SR在參考圖片內的位置與當前塊在當前圖片內的位置相關。在一些實施例中,每個搜索範圍都以當前塊為中心。即,SR的中心在幀內與當前塊的中心處於相同位置。由此可見,每個搜索範圍的位置可以藉由參考標識當前塊的位置的像素座標來決定。例如,在一些實施例中,SR 209、229、249和289中的每個可以以當前塊217為中心。因此,SR 209、229、249和289中的每個的位置(例如,標識相應SR的中心像素的像素位置)可以藉由參考標識當前塊217的位置的像素座標(例如,當前塊217的中心像素的座標)來決定。
在一些實施例中,所有搜索範圍可以不以當前塊為中心。也就是說,在當前塊的中心(第2圖中用符號“✚”標記)和搜索範圍的中心(第2圖中用符號“⛛”標記)之間可能存在位移或“移位”。例如,SR 209和SR 289可能不以當前塊217為中心,以及位移可被用來識別SR 209或289的位置與當前塊217的位置相比的相對移位。位移可以用從當前塊217的中心指向SR 209或289的中心的向量來表示,例如向量201或向量281。可選地,位移可以是從中心指向的向量SR 209或289到當前塊217的中心。
位移如第2圖的向量(例如,向量201或281)基於塊且可由執行基於塊的估計的ME模組186決定。例如,在決定向量281時,ME模組186可以使用當前塊217內的像素資料以及與當前塊217相同區域內但是來自參考圖片108(即,參考圖片108的塊277內的像素資料)的像素資料來執行基於塊的低複雜度率失真優化(low-complexity rate-distortion optimization,簡稱LC-RDO)。
在一些實施例中,位移(displacement)或“移位”可能不是基於塊,而是基於幀。也就是說,無論當前圖片的哪個塊是當前塊,對應的SR都具有相同的移位。例如,當塊217是幀間預測模組140正在處理的當前塊時,對應的SR 289具有由向量281表示的位移。同樣地,當圖片103的任一其他塊是當前塊時 ,參考圖片108中的相應SR具有從當前塊的移位,由向量表示,其中該向量具有與向量281相同的方向和相同的幅度。在SR移位是基於幀的一些實施例中,ME模組186可以決定當前圖片的MMV,如上文別處所述。此外,ME模組186可以應用MMV作為當前圖片的每個塊的SR移位(shift)。
在一些實施例中,當前圖片可以被劃分成幾個分區,以及SMM 180可以向分區的每個塊指定相同的SR移位。例如,分區可以是編解碼單元(coding unit,簡稱CU)或編解碼樹單元(coding tree unit,簡稱CTU),如在諸如VVC、HEVC或AVC的現代視訊編解碼標準中所定義。在一些其他實施例中,分區可以是包含多個空間相鄰CTU的圖片片段。在一些實施例中,分區可以是包含串聯成一行的多個CTU的CTU行(row)。
在一些實施例中,SMM 180可以向RPL中的每個參考圖片指定相同的SR移位。即,其索引(例如,POC)在列表0(即,RPL 157)中的每個參考圖片具有相同的SR移位。同樣,其索引在列表1(即,RPL 158)中的每個參考圖片都具有相同的SR移位。列表0中參考圖片的SR移位可以與列表1中參考圖片的SR移位相同或不同。 三、 並行處理
為了提高編解碼速度或輸送量,視訊編解碼器可以採用各種並行處理方案。例如,幀間預測模組140可以包含兩個或更多基本相同的處理單元,通常被稱為“處理核心”或簡稱為“核心”,以處理當前圖片的塊。因此,SMM 180需要為並行處理方案提供對兩個或更多核的併發支援。
第4圖根據本公開的實施方式的示例設計的圖,其中當前圖片499由包括四個並行處理核心的幀間預測模組140處理。因此,可能需要SMM 180具有四個SRAM組491、492、493和494,每個SRAM組被配置為支援四個處理核心之一。如第4圖所示,當前圖片499包括多個塊,例如塊400-489。具體地,塊400-489組成一個10×9的陣列,陣列的每一行有10個塊,陣列的每一列有9個塊。在一些實施例中,當前圖片499的每個塊可以是CTU,因此當前圖片400包括九個CTU行,每個行具有十個CTU。幀間預測模組140可以使用波前並行處理(wavefront parallel processing,簡稱WPP)來處理當前圖片499。具體地,幀間預測模組140可以包括四個WPP核141、142、143和144,用於同時處理當前圖片499的四個CTU行。例如,WPP核心141正在處理包含塊420-429的CTU行,而WPP核心142、143和144正在分別處理塊430-439、440-449和450-459的CTU行。WPP核心141、142、143和144中的每個核心都被配置為沿x方向連續地處理相應CTU行的CTU,如第4圖所示。
WPP核心141-144可以管線方式處理CTU。具體地,每個WPP核心141-144可以在三個管線級處理CTU:預載入級、運動估計(motin estimation,簡稱ME)級和率失真優化(rate-distortion optimazation,簡稱RDO)級。以WPP核心141為例。在第4圖所示的管線迴圈中,WPP核心141正在對塊426執行ME以及對塊425執行RDO。在下一個管線週期,WPP核心141將對塊427執行ME以及對塊426執行RDO。此外,WPP核心141 – 144可以處理多個CTU行,其中在兩個相鄰的CTU行之間有一個CTU的滯後。例如,在第4圖所示的管線迴圈中。如第4圖所示,WPP核心141正在對塊425執行RDO,而WPP核心142、143和144正在分別對塊434、443和452執行RDO。同樣,在第4圖中描述的管線迴圈中,WPP核心141正在對塊426執行ME,而WPP核心142、143和144正在分別對塊435、444和453執行ME。
在下文的描述中,符號{左上角塊,右下角塊}用於指代包含多個塊的矩形區域。在一些實施例中,幀間預測模組可以在當前塊周圍的五個塊×5個塊的搜索範圍(search range,簡稱SR)下執行ME和RDO操作。例如,在第4圖所示的管線迴圈中,WPP核心141藉由存取包含塊403-407、413-417、423-427、433-437和443-447的SR內的像素資料來對塊425執行RDO,即{塊403,塊447}的SR。同時,WPP核心141藉由存取{塊404,塊448}的SR中的像素資料來執行塊426的ME。同時,處理器182將塊409、419、429、439和449從參考圖片緩衝器150載入到搜索記憶體184,以便塊409、419、429、439和449可用於WPP核心141在下一個管線週期對塊427執行ME。
如第4圖所示,每個SRAM儲存單元491、492、493和494需要存儲35個CTU的像素資料。具體地,在第4圖所示的管線迴圈中,{塊403, 塊449}內的像素資料被存儲在儲存單元491中,{塊412, 塊458}內的像素資料被存儲在儲存單元492中,{塊421, 塊467}內的像素資料被存儲在儲存單元493,以及{塊430,塊476}內的像素資料被存儲在儲存單元494中。也就是說,搜索記憶體184需要具有至少35×4=140CTU的大小。
此外,在第4圖所示的管線迴圈中。儲存單元491預載{塊409,塊449}的像素資料,儲存單元492預載入{塊418,塊458}的像素資料,儲存單元493預載入{塊427,塊467}的像素資料,儲存單元494預載入{塊436,塊476}的像素資料。即,搜索記憶體184需要具有5×4=20個CTU的預載入頻寬。
第5圖示出根據本公開的實施方式的示例設計的圖,其中示出搜索記憶體管理方案500。在搜索記憶體管理方案500中,搜索記憶體184具有四個SRAM儲存單元591-594。與第5圖的相比,搜索記憶體管理方案500能夠減少搜索記憶體184的預載入頻寬。與儲存單元491– 494(每個儲存單元都有35個CTU)不同,儲存單元591 – 594的儲存單元大小不統一。具體地,{塊403, 塊449}內的像素資料被存儲在儲存單元591中,{塊412,塊459}內的像素資料存儲在儲存單元592中,{塊421, 塊469}內的像素資料被存儲在儲存單元593,{塊430,塊479}內的像素資料被存儲在儲存單元594中。雖然儲存單元591的大小與儲存單元491相同,均為35個CTU,但儲存單元592的大小大於儲存單元492,以及能夠存儲8 x 5 = 40個CTU。儲存單元593能夠存儲9 x 5 = 45個CTU,而儲存單元594能夠存儲10 x 5 = 50個CTU。因此,在搜索記憶體管理方案500中,搜索記憶體184需要具有至少35+40+45+50=170個CTU的大小,與第4圖中描述的搜索記憶體管理方案相比多了30個CTU。此外,不統一的儲存單元大小使SRAM儲存單元的索引更加複雜。然而,由於僅需要預載入{塊409、塊479},實現搜索記憶體管理方案500的搜索記憶體184僅需要具有8個CTU的預載入頻寬,而不是第4圖中所需的20個CTU,從而大大減少幀間預測模組140的處理延遲。
第6圖示出根據本公開的實施方式的示例設計的圖,其中示出搜索記憶體管理方案600。在搜索記憶體管理方案600中,搜索記憶體184具有SRAM儲存單元691-694,加上第五個SRAM儲存單元695。搜索記憶體管理方案600具有與搜索記憶體管理方案500相同的預載入頻寬,其提供減少幀間預測模組140的處理延遲的相同好處。同時,與SRAM儲存單元591-594的非統一儲存單元大小不同,四個SRAM儲存單元691-694共用統一的儲存單元大小,這使得與搜索記憶體管理方案500相比,SRAM儲存單元的索引更簡單。與儲存單元491–494(每個儲存單元都有35個CTU)一樣,儲存單元691 – 694也有統一的儲存單元大小,但更小,為6 x 5 = 30個CTU。具體地,{塊403, 塊448}內的像素資料存儲在儲存單元691中,{塊412, 塊457}內的像素資料被存儲在儲存單元692中,{塊421, 塊466}內的像素資料被存儲在儲存單元693,{塊430,塊475}內的像素資料被存儲在儲存單元594中。搜索記憶體184需要預載入{塊409,塊479},這轉化為8個CTU的預載入頻寬,與搜索記憶體管理方案500的相同。然而,搜索記憶體184需要包括存儲體695作為用於存儲{塊409,塊479}內的像素資料的預載入緩衝器,即搜索記憶體184中32個CTU的大小。搜索記憶體184因此需要至少包括SRAM儲存單元691-695,總大小為152個CTU。與搜索記憶體管理方案500所需的170個CTU相比,這更具成本效益。
因此,在搜索記憶體管理方案600中,搜索記憶體184需要具有至少30+30+30+30+32=152個CTU的大小,與第4圖中描述的搜索記憶體管理方案相比多了12個CTU,但與搜索記憶體管理方案500相比少了18個CTU。而且,統一的儲存單元大小使得SRAM儲存單元的索引更容易。 與搜索記憶體管理方案500的情況相同,僅需要預載入{塊409,塊479},實現搜索記憶體管理方案600的搜索記憶體184僅需要具有8的預載入頻寬CTU,而不是第4圖中所需的20個CTU,從而大大減少幀間預測模組140的處理延遲。
當採用像WPP這樣的並行處理方案時,重要的是幀間預測模組140從相鄰塊存取適當類型的運動向量(motion vector,簡稱MV)作為運動估計的預測子。參考第4圖所示,WPP核心142正在對塊435執行ME以及需要來自相鄰塊425的MV作為預測子。然而,在同一個管線週期,WPP核心141正在對塊425執行RDO,以及RDO產生的MV仍在更新。因此,在對塊435執行ME時,WPP核心142可以利用已經由在先前管線週期執行ME的WPP核心141生成的塊425的MV,而不是由在當前管線週期對塊425執行RDO的WPP核心141生成或以其他方式更新的塊425的MV。
在一些實施例中,當幀間預測模組140的WPP核心需要使用來自相鄰塊的MV來對當前塊執行ME時,WPP核心可以通用地使用ME MV(即,由ME產生的MV)來代替RDO MVs(即,由RDO產生的MV)。在一些可選實施例中,WPP核心可以避免使用來自當前幀的相鄰塊的MV,而是使用時間MV,即來自其他幀的相鄰塊的MV。 四、 說明性實施方式
第7圖示出示例視訊編碼器700,其中可以採用上文別處描述的各種實施例、並行處理方案和記憶體管理方案。如圖所示,視訊編碼器700從視訊源705接收輸入視訊訊號以及將該訊號編碼為位元流795。視訊編碼器700具有用於對來自視訊源705的訊號進行編碼的若干組件或模組,至少包括選自以下的一些組件:變換模組710、量化模組711、逆量化模組714、逆變換模組715、幀內估計模組720、幀內預測模組725、運動補償模組730、運動估計模組735、環路濾波器745、重構圖片緩衝器750、運動向量(motion vector,簡稱MV)緩衝器765、MV預測模組775、搜索記憶體管理模組(search memory management module,簡稱SMM)780以及熵編碼器790。運動補償模組730和運動估計模組735是幀間預測模組740的一部分。幀間預測模組740可以包括被配置為執行整數像素搜索的整數運動估計(integer motion estimation,簡稱IME)內核,以及被配置為執行分數像素搜索的分數運動估計(fractional motion estimation,簡稱FME)內核。整數像素搜索和分數像素搜索都是運動補償模組730和運動估計模組735的基本功能。
在一些實施例中,如上所列的模組710-790是由計算設備或電子裝置的一個或多個處理單元(例如,處理器)執行的軟體指令的模組。在一些實施例中,模組710-790是由電子裝置的一個或多個積體電路(integrated circuit,簡稱IC)實現的硬體電路模組。儘管模組710-790被示為單獨的模組,但是一些模組可以組合成單個模組。
視訊源705提供原始視訊訊號,其呈現每個視訊幀的像素資料而沒有壓縮。即,視訊源705提供包括以時間序列呈現的圖片的視訊流。減法器708計算來自視訊源705的視訊資料與來自運動補償模組730或幀內預測模組725的預測像素資料713之間的差值。變換模組710將差值(或殘差像素資料或殘差訊號 709)轉化為變換係數(例如,藉由執行離散余弦變換或DCT)。量化模組711將變換係數量化為量化資料(或量化係數)712,其由熵編碼器790編碼為位元流795。
逆量化模組714對量化資料(或量化係數)712進行逆量化以獲得變換係數,逆變換模組715對變換係數進行逆變換以產生重構殘差719。重構殘差719被添加與預測像素資料713一起生成重構像素資料717。在一些實施例中,重構像素資料717被臨時存儲在行緩衝器(未示出)中用於幀內預測和空間MV預測。重構像素由環路濾波器745濾波以及被存儲在重構圖片緩衝器750中。在一些實施例中,重構圖片緩衝器750是視訊編碼器700外部的記憶體。在一些實施例中,重構圖片緩衝器750是視訊編碼器700內部的記憶體。
幀內估計模組720基於重構像素資料717執行幀內預測以產生幀內預測資料。幀內預測資料被提供給熵編碼器790以被編碼成位元流795。幀內預測資料也被幀內預測模組725用來產生預測像素資料713。
運動估計模組735藉由產生MV以參考存儲在重構圖片緩衝器750中的先前解碼幀的像素資料來執行幀間預測。這些MV被提供給運動補償模組730以產生預測像素資料。
視訊編碼器700不是在位元流中編碼完整的實際MV,而是使用MV預測來生成預測的MV,以及用於運動補償的MV和預測的MV之間的差值被編碼為殘差運動資料以及被存儲在位元流795中。
MV預測模組775基於為編碼先前視頻幀而生成的參考MV,即用於執行運動補償的運動補償MV,生成預測MV。 MV預測模組775從MV緩衝器765中檢索來自先前視頻幀的參考MV。視訊編碼器700將為當前視頻幀生成的MV存儲在MV緩衝器765中作為用於生成預測MV的參考MV。
MV預測模組775使用參考MV來創建預測的MV。預測的MV可以藉由空間MV預測或時間MV預測來計算。預測的MV和當前幀的運動補償MV(MC MV)之間的差值(殘差運動資料)由熵編碼器790編碼到位元流795中。
搜索記憶體管理模組(search memory management module,簡稱SMM)780決定正在編碼的當前圖片的一個或多個參考圖片的搜索範圍。參考圖片被存儲在重構圖片緩衝器750中。SMM 780將搜索範圍內的像素資料轉發到幀間預測模組740以用於運動估計和運動補償。SMM 780可以實施SMM 180(至少處理器182和搜索記憶體184),因為ME模組186可以分時方式由ME模組735實施。重構圖片緩衝器750可以實施參考圖片緩衝器150。幀間預測模組740可以實施幀間預測模組140。
熵編碼器790藉由使用諸如上下文適應性二進位算術編解碼(entropy-coding techniques such as context-adaptive binary arithmetic coding,簡稱CABAC)或霍夫曼編碼的熵編碼技術將各種參數和資料編碼到位元流795中。熵編碼器790將各種報頭元素、標誌連同量化變換係數712和殘差運動資料作為語法元素編碼到位元流795中。位元流795又被存儲在存放設備中或藉由比如網路等通訊媒介傳輸到解碼器。
環路濾波器745對重構的像素資料717執行濾波或平滑操作以減少編解碼的偽影,特別是在像素塊的邊界處。在一些實施例中,所執行的濾波操作包括樣本適應性偏移(sample adaptive offset,簡稱SAO)。在一些實施例中,濾波操作包括適應性環路濾波器(adaptive loop filter,簡稱ALF)。
第8圖示出示例視訊解碼器800。如圖所示,視訊解碼器800是圖像解碼或視訊解碼電路,其接收位元流895以及將位元流895的內容解碼成視訊幀的像素資料以供顯示。視訊解碼器800具有用於解碼位元流895的若干組件或模組,包括選自以下的一些組件:逆量化模組811、逆變換模組810、幀內預測模組825、運動補償模組830、環路濾波器845、解碼圖片緩衝器850、MV緩衝器865、MV預測模組875、搜索記憶體管理模組(search memory management module,簡稱SMM)880和解析器890。運動補償模組830是幀間預測模組840的一部分。
在一些實施例中,模組810-890是由計算設備的一個或多個處理單元(例如,處理器)執行的軟體指令模組。在一些實施例中,模組810-890是由電子裝置的一個或多個積體電路(integrated circuit,簡稱IC)實現的硬體電路模組。儘管模組810-890被示為單獨的模組,但是一些模組可以組合成單個模組。
解析器(例如,熵解碼器)890接收位元流895以及根據由視訊編解碼或圖像編解碼標準定義的語法執行初始解析。解析的語法元素包括各種頭部元素、標誌以及量化資料(或量化係數)812。解析器890藉由使用熵編解碼技術解析出各種語法元素,例如上下文適應性二進位算術編解碼(context-adaptive binary arithmetic coding,簡稱CABAC)或霍夫曼編碼。
逆量化模組811對量化資料(或量化係數)812進行逆量化以獲得變換係數,以及逆變換模組810對變換係數816執行逆變換以產生重構殘差訊號819。重構殘差訊號819與來自幀內預測模組825或運動補償模組830的預測像素資料813相加以產生解碼像素資料817。解碼像素資料由環路濾波器845濾波以及被存儲在解碼圖片緩衝器850中。在一些實施例中,解碼圖片緩衝器850是視訊解碼器800外部的存儲。在一些實施例中,解碼圖片緩衝器850是視訊解碼器800內部的存儲。
幀內預測模組825從位元流895接收幀內預測資料,以及據此從解碼圖片緩衝器850中存儲的解碼像素資料817產生預測像素資料813。在一些實施例中,解碼像素資料817還存儲在行緩衝器(未示出)中用於幀內預測和空間MV預測。
在一些實施例中,解碼圖片緩衝器850的內容用於顯示。顯示裝置855獲取解碼圖片緩衝器850的內容以直接顯示或獲取解碼圖片緩衝器的內容到顯示緩衝器。在一些實施例中,顯示設備藉由像素傳輸從解碼圖片緩衝器850接收像素值。
運動補償模組830根據運動補償MV(motion compensation,簡稱MC MV)從存儲在解碼圖片緩衝器850中的解碼像素資料817產生預測像素資料813。藉由將從位元流895接收的殘差運動資料與從MV預測模組875接收的預測MV相加來解碼這些運動補償MV。
MV預測模組875基於為解碼先前視訊幀而生成的參考MV生成預測的MV,例如,用於執行運動補償的運動補償MV。MV預測模組875從MV緩衝器865中獲取先前視訊幀的參考MV。視訊解碼器800將為解碼當前視訊幀而生成的運動補償MV存儲在MV緩衝器865中作為用於產生預測MV的參考MV。
環內濾波器845對解碼像素資料817執行濾波或平滑操作以減少編碼偽像,特別是在像素塊的邊界處。在一些實施例中,執行的濾波操作包括樣本適應性偏移(sample adaptive offset,簡稱SAO)。在一些實施例中,濾波操作包括適應性環路濾波器(adaptive loop filter,簡稱ALF)。
搜索記憶體管理模組(search memory management module,簡稱SMM)880決定正在編碼的當前圖片的一個或多個參考圖片的搜索範圍。參考圖片被存儲在解碼圖片緩衝器850中。SMM 880將搜索範圍內的像素資料轉發到幀間預測模組840以用於運動估計和運動補償。SMM 880可以實施SMM 180。解碼圖片緩衝器850可以實施參考圖片緩衝器150。幀間預測模組840可以實施幀間預測模組140。
第9圖示出能夠根據上文別處描述的各種搜索記憶體管理方案對視訊進行編碼或解碼的視訊編解碼器900。視訊編解碼器900可以使用基於塊的管線處理來處理視訊的當前圖片以進行幀間預測。視訊編解碼器900具有若干元件或模組,包括選自以下的一些組件:參考圖片緩衝器(reference picture buffer,簡稱RPB)910、搜索記憶體920、處理器930、編解碼模組940以及運動估計模組950。在一些實施例中,運動估計模組950可以是編解碼模組940的一部分。
RPB 910可以被配置為存儲當前圖片的多個參考圖片。例如,視訊編解碼器900正在處理圖片103,以及RPB 910可以被配置為存儲圖片100、102、104和108,它們是當前圖片103的參考圖片。RPB 910可以被配置為進一步存儲一個或多個參考圖片列表(reference picture list,簡稱RPL),例如RPL 157和/或RPL 158。每個RPL可以被配置為存儲分別對應於多個參考圖片中的一個或多個參考圖片的一個或多個索引。在一些實施例中,索引可以是參考圖片的圖片順序計數(picture order count,簡稱POC)值。RPB 910可以由參考圖片緩衝器150、重構圖片緩衝器750或解碼圖片緩衝器850來實施。
搜索記憶體920可以被配置為對RPL中指示的一個或多個參考圖片存儲相應參考圖片的搜索範圍內的像素資料。在一些實施例中,搜索記憶體920可以是編解碼模組940可存取的SRAM。搜索記憶體920可以由搜索記憶體管理模組180的搜索記憶體184實施。
處理器930可以由搜索記憶體管理模組180的處理器182實施。處理器930可以被配置為決定當前圖片的參考圖片的數量。處理器930可基於存儲在RPB 910中的一個或多個RPL來決定數量。例如,處理器930可檢查RPL 157和/或RPL 158以及決定當前圖片103的參考圖片的數量為四。處理器930還可以被配置為基於該數量決定一個或多個參考圖片對應的搜索範圍(search range,簡稱SR)大小。在一些實施例中,處理器930可以首先基於數量確定基本大小,然後基於基本大小決定參考圖片的SR大小。例如,處理器930可以首先決定基本大小299,以及隨後根據上文別處描述的適應性SR大小方案基於該基本大小299決定SR 209、229、249和289的大小。
除了SR的大小之外,處理器930還可以被配置為決定SR的位置。處理器930可以基於當前塊(即,正被處理的塊)的位置來確定每個SR的位置。在一些實施例中,SR的中心與塊的中心對齊,因此SR的位置基於當前塊的位置唯一確定。在一些可選實施例中,SR的位置與當前塊的位置之間可能存在空間位移。空間位移可由向量表示,例如向量201或281。在一些實施例中,處理器930可指定巨集運動向量(macro motion vector,簡稱MMV)作為空間位移,其中MMV表示當前圖片到相應參考圖片的空間位移。視訊解碼器900可包括運動估計(motion estimation,簡稱ME)模組950,其可被配置以決定MMV。ME模組950可以由ME模組186或ME模組735來實施。ME模組950可以包括整數運動估計(integer motion estimation,簡稱IME)內核952。在一些實施例中,ME模組950還可以包括分數運動估計(fractional motion estimation,簡稱FME)內核954。IME內核952被配置為執行整數像素搜索,而FME內核954被配置為執行小數像素搜索。
此外,處理器930還可以被配置為將每個參考圖片的SR內的像素資料存儲到搜索記憶體920。例如,處理器930可以將SR 209、229、249和289內的像素資料存儲到搜索記憶體920,使得編解碼模組940可以隨後存取搜索記憶體920以及使用存儲在搜索記憶體920中的像素資料編碼或解碼當前圖片103。 五、說明性處理
第10圖示出根據本公開的實施方式的示例處理1000。處理1000可以表示實現上述各種提議的設計、概念、方案、系統和方法的方面。更具體地,根據本公開,處理1000可以表示涉及基於涉及適應性搜索範圍的搜索記憶體管理方案對當前圖片的當前塊進行編解碼的所提出的概念和方案的方面。處理1000可以包括一個或多個操作、動作或功能,如塊1010、1020、1030和1040中的一個或多個所示。雖然被說明為離散的塊,但是處理1000的各個方框可以被劃分成另外的塊,組合成更少的塊,或被消除,這取決於所需的實施方式。此外,處理1000的塊/子塊可以第10圖所示的循序執行,或者以不同的順序。此外,處理1000的塊/子塊中的一個或多個可被重複或反覆運算地執行。處理1000可由裝置900及其任一變型實施或在裝置900中實施。僅出於說明的目的並且不限制範圍,處理1000在下文中在裝置900的上下文中被描述。處理1000可以在塊1010處開始。
在1010,處理1000可以涉及處理器930確定當前圖片的多個參考圖片的數量。例如,處理器930可以檢查存儲在參考圖片緩衝器(RPB)910中的一個或多個參考圖片列表(RPL),其中每個RPL可以包括一個或多個索引,例如POC值,其對應於多個參考圖片。處理1000可以從1010進行到1020。
在1020,處理1000可以涉及處理器930基於數量確定多個參考圖片中的至少一個參考圖片所對應的搜索範圍(SR)大小。例如,處理器930可以基於表310或320中列出的數量來確定SR大小。在一些實施例中,處理器930可以基於數量決定基本大小,然後基於基本大小確定SR大小,如表310和320中所示。處理1000可以從1020進行到1030。
在1030,處理1000可以涉及處理器930基於在1020決定的SR大小以及當前塊的位置,決定多個參考圖片中的至少一個參考圖片所對應的參考圖片的相應SR。例如,處理器930可以確定SR的位置由當前塊的位置唯一決定。藉由決定SR的位置和SR的大小,處理器930決定SR。例如,處理器930可以基於表310或320中列出的SR大小以及當前塊217的位置來決定SR,例如SR 209、229、249和289之一。在一些實施例中,SR的位置不僅僅基於當前塊的位置來確定。例如,運動估計模組950可以以當前圖片和參考圖片作為輸入來執行運動估計,從而決定表示當前圖片和參考圖片之間的空間位移(例如,向量201或281)的巨集運動向量(macro motion vector,簡稱MMV),然後根據當前塊的位置和空間位移決定SR的位置。處理1000可以從1030進行到1040。
在1040,處理1000可以涉及編解碼模組940基於多個參考圖片中的至少一個參考圖片的SR內的像素資料對當前塊進行編解碼。例如,編解碼模組940可以基於SR 209、229、249和289中的像素資料對當前塊217進行編碼或解碼。具體地,編解碼模組940首先可以分別基於SR 209、229、249和289內的像素資料決定最佳匹配塊203、223、243和283。編解碼模組940隨後可以基於最佳匹配塊203、223、243和283對當前塊217進行編碼。 六、說明性電子系統
許多上述特徵和應用被實現為軟體處理,這些軟體處理被指定為記錄在電腦可讀存儲介質(也稱為電腦可讀介質)上的一組指令。當這些指令由一個或多個計算或處理單元(例如,一個或多個處理器,處理器內核或其他處理單元)執行時,它們使處理單元執行指令中指示的動作。電腦可讀介質的示例包括但不限於唯讀光碟驅動器(compact disc read-only memory,簡稱CD-ROM),快閃記憶體驅動器,隨機存取記憶體(random-access memroy,簡稱RAM)晶片,硬碟驅動器,可擦除可程式設計唯讀記憶體(erasable programmble read-only memory,簡稱EPROM),電可擦除可程式設計唯讀記憶體 (electrically erasable proagrammble read-only memory,簡稱EEPROM)等。電腦可讀介質不包括藉由無線或有線連接傳遞的載波和電子訊號。
在本說明書中,術語“軟體”意在包括駐留在唯讀記憶體中的韌體或存儲在磁記憶體中的應用程式,其可以讀入記憶體以供處理器處理。此外,在一些實施例中,多個軟體發明可以實現為更大程式的子部分,同時保留不同的軟體發明。在一些實施例中,多個軟體發明也可以實現為單獨的程式。最後,共同實現此處描述的軟體發明的單獨程式的任一組合都在本公開的範圍內。在一些實施例中,軟體程式,在被安裝以在一個或多個電子系統上運行時,定義一個或多個特定機器實施方式,該實施方式處理和執行軟體程式的操作。
第11圖概念性地示出了實現本公開的一些實施例的電子系統1100。電子系統1100可以是電腦(例如,臺式電腦,個人電腦,平板電腦等),電話,PDA或任一其他類型的電子設備。這種電子系統包括各種類型的電腦可讀介質和用於各種其他類型的電腦可讀介質的介面。電子系統1100包括匯流排1105,處理單元1110,圖形處理單元(graphics-processing unit,簡稱GPU)1115,系統記憶體1120,網路1125,唯讀記憶體1130,永久存放設備1135,輸入設備1140 , 和輸出設備1145。
匯流排1105共同表示與電子系統1100通訊連接的眾多內部設備的所有系統,週邊設備和晶片組匯流排。例如,匯流排1105將處理單元1110與GPU 1115,唯讀記憶體1130,系統記憶體1120和永久存放設備1135通訊地連接。
處理單元1110從這些各種記憶體單元中獲取要執行的指令和要處理的資料,以便執行本公開的處理。在不同的實施例中,處理單元可以是單個處理器或多核處理器。一些指令被傳遞到GPU 1115並由其執行。GPU 1115可以卸載各種計算或補充由處理單元1110提供的影像處理。
唯讀記憶體(read-only-memory,簡稱ROM)1130存儲由處理單元1110和電子系統的其他模組使用的靜態資料和指令。另一方面,永久存放設備1135是讀寫存放設備。該設備是即使在電子系統1100關閉時也存儲指令和資料的非易失性存儲單元。本公開的一些實施例使用大容量記憶裝置(例如磁片或光碟及其對應的磁碟機)作為永久存放設備1135。
其他實施例使用卸載式存放裝置設備(例如軟碟,快閃記憶體設備等,及其對應的磁碟機)作為永久存放裝置。與永久存放設備1135一樣,系統記憶體1120是讀寫記憶體設備。然而,與永久存放設備1135不同,系統記憶體1120是易失性(volatile)讀寫記憶體,例如隨機存取記憶體。系統記憶體1120存儲處理器在運行時使用的一些指令和資料。在一些實施例中,根據本公開的處理被存儲在系統記憶體1120,永久存放設備1135和/或唯讀記憶體1130中。例如,根據本公開的一些實施例,各種記憶體單元包括用於根據處理多媒體剪輯的指令。從這些各種記憶體單元中,處理單元1110獲取要執行的指令和要處理的資料,以便執行一些實施例的處理。
匯流排1105還連接到輸入設備1140和輸出設備1145。輸入設備1140使使用者能夠向電子系統傳達資訊和選擇命令。輸入設備1140包括字母數位元元鍵盤和定點設備(也被稱為“遊標控制設備”),照相機(例如,網路攝像頭),麥克風或用於接收語音命令的類似設備等。輸出設備1145顯示由電子系統生成的圖像或者輸出資料。輸出設備1145包括印表機和顯示裝置,例如陰極射線管(cathode ray tubes,簡稱CRT)或液晶顯示器(liquid crystal display,簡稱LCD),以及揚聲器或類似的音訊輸出設備。一些實施例包括用作輸入和輸出設備的設備,例如觸控式螢幕。
最後,如第11圖所示,匯流排1105還藉由網路介面卡(未示出)將電子系統1100耦合到網路1125。以這種方式,電腦可以是電腦網路(例如局域網(“LAN”),廣域網路(“WAN”)或內聯網的一部分,或者是多種網路的一個網路,例如互聯網。電子系統1100的任一或所有組件可以與本公開結合使用。
一些實施例包括電子組件,例如微處理器,存儲裝置和記憶體,其將電腦程式指令存儲在機器可讀或電腦可讀介質(或者被稱為電腦可讀存儲介質,機器可讀介質或機器可讀存儲介質)中。這種電腦可讀介質的一些示例包括RAM,ROM,唯讀光碟(read-only compact discs,簡稱CD-ROM),可記錄光碟(recordable compact discs,簡稱CD-R),可重寫光碟(rewritable compact discs,簡稱CD-RW),唯讀數位多功能光碟(read-only digital versatile discs)(例如, DVD-ROM, 雙層DVD-ROM),各種可燒錄/可重寫DVD (例如, DVD-RAM, DVD-RW, DVD+RW等),快閃記憶體(例如, SD卡, 迷你SD卡,微型SD卡等),磁性和/或固態硬碟驅動器,唯讀和可記錄Blu-Ray®光碟,超密度光碟,任一其他光學或磁性介質以及軟碟。電腦可讀介質可以存儲可由至少一個處理單元執行以及包括用於執行各種操作的指令集合的電腦程式。電腦程式或電腦代碼的示例包括諸如由編譯器產生的機器代碼,以及包括由電腦,電子組件或使用注釋器(interpreter)的微處理器執行的高級代碼的文檔。
雖然上述討論主要涉及執行軟體的微處理器或多核處理器,但許多上述特徵和應用由一個或多個積體電路執行,例如專用積體電路(application specific integrated circuit,簡稱ASIC)或現場可程式設計閘陣列(field programmable gate array,簡稱FPGA)。在一些實施例中,這樣的積體電路執行存儲在電路本身上的指令。此外,一些實施例執行存儲在可程式設計邏輯器件(programmable logic device,簡稱PLD),ROM或RAM器件中的軟體。
如在本說明書和本申請的任一申請專利範圍中使用的,術語“電腦”,“伺服器”,“處理器”和“記憶體”均指電子或其他技術設備。這些術語不包括人或人群。出於本說明書的目的,術語顯示或顯示是指在電子設備上顯示。如在本說明書和本申請的任何申請專利範圍中所使用的,術語“電腦可讀介質”,“電腦可讀介質”和“機器可讀介質”完全限於以電腦可讀形式存儲資訊的有形物理物件。這些術語不包括任何無線訊號,有線下載訊號和任何其他短暫訊號。儘管已經參考許多具體細節描述了本公開,但是本領域之通常知識者將認識到,在不脫離本公開的精神的情況下,可以以其他特定形式來實施本公開。 補充說明
本文所描述的主題有時表示不同的組件,其包含在或者連接到其他不同的組件。可以理解的是,所描述的結構僅是示例,實際上可以由許多其他結構來實施,以實現相同的功能,從概念上講,任何實現相同功能的組件的排列實際上是“相關聯的”,以便實現所需功能。因此,不論結構或中間部件,為實現特定的功能而組合的任何兩個組件被視爲“相互關聯”,以實現所需的功能。同樣,任何兩個相關聯的組件被看作是相互“可操作連接”或“可操作耦接”,以實現特定功能。能相互關聯的任何兩個組件也被視爲相互“可操作地耦接”,以實現特定功能。能相互關聯的任何兩個組件也被視為相互“可操作地耦合”以實現特定功能。可操作連接的具體例子包括但不限於物理可配對和/或物理上相互作用的組件,和/或無線可交互和/或無線上相互作用的組件,和/或邏輯上相互作用和/或邏輯上可交互的組件。
此外,關於基本上任何複數和/或單數術語的使用,本領域之通常知識者可以根據上下文和/或應用從複數變換為單數和/或從單數到複數。為清楚起見,本發明明確闡述了不同的單數/複數排列。
此外,本領域之通常知識者可以理解,通常,本發明所使用的術語特別是申請專利範圍中的,如申請專利範圍的主題,通常用作“開放”術語,例如,“包括”應解釋為“包括但不限於”,“有”應理解為“至少有”“包括”應解釋為“包括但不限於”等。本領域之通常知識者可以進一步理解,若計畫介紹特定數量的申請專利範圍內容,將在申請專利範圍內明確表示,並且,在沒有這類內容時將不顯示。例如,為幫助理解,下面申請專利範圍可能包含短語“至少一個”和“一個或複數個”,以介紹申請專利範圍的內容。然而,這些短語的使用不應理解為暗示使用不定冠詞“一個”或“一種”介紹申請專利範圍內容,而限制了任何特定神專利範圍。甚至當相同的申請專利範圍包括介紹性短語“一個或複數個”或“至少有一個”,不定冠詞,例如“一個”或“一種”,則應被解釋為表示至少一個或者更多,對於用於介紹申請專利範圍的明確描述的使用而言,同樣成立。此外,即使明確引用特定數量的介紹性內容,本領域之通常知識者可以認識到,這樣的內容應被解釋為表示所引用的數量,例如,沒有其他修改的“兩個引用”,意味著至少兩個引用,或兩個或兩個以上的引用。此外,在使用類似於“A,B和C中的至少一個”的表述的情況下,通常如此表述是為了本領域之通常知識者可以理解該表述,例如,“系統包括A,B和C中的至少一個”將包括但不限於單獨具有A的系統,單獨具有B的系統,單獨具有C的系統,具有A和B的系統,具有A和C的系統,具有B和C的系統,和/或具有A,B和C的系統等。本領域之通常知識者進一步可理解,無論在説明書中,申請專利範圍中或者附圖中,由兩個或兩個以上的替代術語所表現的任何分隔的單詞和/或短語應理解為,包括這些術語中的一個,其中一個,或者這兩個術語的可能性。例如,“A或B”應理解為,“A”,或者“B”,或者“A和B”的可能性。
從前述可知,出於説明目的,本發明已描述了各種實施方案,並且在不偏離本發明的範圍和精神的情況下,可以進行各種變形。因此,此處所公開的各種實施方式不用於限制,真實的範圍和申請由申請專利範圍表示。
100、101、102、103、104、107、108、109、110:圖片 140:幀間預測 141、142、143、144:WPP核心 150:參考圖片緩衝器 157:RPL 158:RPL 160:時間序列 162:參考圖片 164:非參考圖片 180:搜索記憶體管理模組 182:處理器 184:搜索記憶體 186:ME模組 201:向量 203:塊 209:SR 211:塊 212:塊 213:塊 214:塊 215:塊 216:塊 217:塊 223:塊 229:SR 243:塊 249:SR 277:塊 281:向量 283:塊 289:SR 310:表 320:表 400-489:塊 491:儲存單元 492:儲存單元 493:儲存單元 494:儲存單元 499:當前圖片 500:搜索記憶體管理方案 591:儲存單元 592:儲存單元 593:儲存單元 594:儲存單元 691:儲存單元 692:儲存單元 693:儲存單元 694:儲存單元 700:視訊編碼器 705:視訊源 708:減法器 710:變換模組 711:量化模組 712:量化變換係數 713:像素資料 714:逆量化模組 715:逆變換模組 716:變換係數 717:重構的像素資料 719:重構殘差 720:幀內估計模組 725:幀內預測模組 730:運動補償模組 735:ME模組 740:幀間預測模組 745:環路濾波器 750:重構圖片緩衝器 765:MV緩衝器 775:MV預測模組 790:熵編碼器 795:位元流 800:視訊解碼器 810:逆變換模組 811:逆量化模組 812:量化資料 813:預測像素資料 816:變換係數 817:解碼像素資料 819:重構殘差訊號 825:幀內預測模組 830:運動補償模組 840:幀間預測模組 845:環內濾波器 850:解碼圖片緩衝器 855:顯示裝置 865:MV緩衝器 875:MV預測模組 890:解析器 895:位元流 900:視訊編解碼器 910:參考圖片緩衝器 920:搜索記憶體 930:處理器 940:編解碼模組 950:運動估計模組 952:IME內核 954:FME內核 1000:處理 1010、1020、1030、1040:步驟 1100:電子系統 1105:匯流排 1110:處理單元 1115:GPU 1120:系統記憶體 1125:網路 1130:唯讀記憶體 1135:永久存放設備 1140:輸入設備 1145:輸出設備
附圖被包括以提供對本公開的進一步理解並且被併入並構成本公開的一部分。附圖說明瞭本公開的實施方式,並且與描述一起用於解釋本公開的原理。值得注意的是,附圖不一定是按比例繪製的,因為在實際實施中特定組件可能被顯示為與大小不成比例,以便清楚地說明本公開的概念。 第1圖示出根據本公開的實施方式的示例設計的圖。 第2圖示出根據本公開的實施方式的示例設計的圖。 第3圖示出根據本公開的實施方式的示例設計的圖。 第4圖示出根據本公開的實施方式的示例設計的圖。 第5圖示出根據本公開的實施方式的示例設計的圖。 第6圖示出根據本公開的實施方式的示例設計的圖。 第7圖示出根據本公開的實施方式的示例視訊編碼器的圖。 第8圖示出根據本公開的實施方式的示例視訊編碼器的圖。 第9圖示出根據本公開的實施方式的示例裝置的圖。 第10圖示出根據本公開的實施方式的示例處理的流程圖。 第11圖示出根據本公開的實施方式的示例電子系統的圖。
1000:處理
1010、1020、1030、1040:步驟

Claims (20)

  1. 一種視訊編解碼方法,用於處理一當前圖片的一當前塊,包括: 確定該當前圖片的多個參考圖片的一數量; 相對於該等參考圖片中至少一個參考圖片,基於該數量決定一搜索範圍大小; 相對於該等參考圖片中該至少一個參考圖片,基於該搜索範圍大小以及該當前塊的一位置決定該等參考圖片中該至少一個參考圖片的一搜索範圍;以及 基於該搜索範圍中的像素資料對該當前塊進行編解碼。
  2. 如請求項1所述之視訊編解碼方法,其中,該數量的決定包括檢查一個或多個列表,其中每個列表包括一個或多個索引,一個或多個索引中的每個索引對應於該等參考圖片之一。
  3. 如請求項2所述之視訊編解碼方法,其中,該一個或多個列表包括一第一列表和一第二列表,該第一列表包含一第一數量的索引,該第二列表包含一第二數量的索引,其中決定該數量的步驟還包括計算該第一數量與該第二數量的一總和,以及其中基於該數量決定相應的該搜索範圍大小的步驟包括: 根據該總和決定一基本大小; 響應於該等參考圖片中該至少一個參考圖片僅位於該第一列表和該第二列表中的一個,將該基本大小指定為該搜索範圍大小;以及 響應於該等參考圖片中該至少一個參考圖片位於該第一列表和該第二列表中,將該基本大小的兩倍指定為該搜索範圍大小。
  4. 如請求項3所述之視訊編解碼方法,其中,決定該基本大小的步驟進一步基於被配置為將該像素資料存儲在該搜索範圍内的一搜索記憶體的一大小。
  5. 如請求項1所述之視訊編解碼方法,其中,該等參考圖片中該至少一個參考圖片包括該等參考圖片中的兩個或更多個,以及其中決定相應的該搜索範圍大小的步驟包括: 根據該等參考圖片的該數量決定一基本大小; 對該等參考圖片中的兩個或更多個參考圖片中的每個參考圖片決定相對於該當前圖片的一相應時間距離; 將小於該基本大小的一第一大小指定為該等參考圖片中的兩個或更多個參考圖片中的一第一參考圖片的該搜索範圍大小;以及 將大於該基本大小的一第二大小指定為該等參考圖片中的兩個或更多個參考圖片中的一第二參考圖片的該搜索範圍大小,其中對應於該第二參考圖片的該時間距離大於對應於該第一參考圖片的該時間距離。
  6. 如請求項5所述之視訊編解碼方法,其中,決定相對於該當前圖片的該時間距離的步驟包括計算該等參考圖片中該至少一個參考圖片的一圖片順序計數與該當前圖片的一圖片順序計數之間的一差值的一絕對值。
  7. 如請求項1所述之視訊編解碼方法,其中,該等參考圖片中該至少一個參考圖片包括該等參考圖片中的兩個或更多個參考圖片,以及其中決定該參考圖片中的兩個或更多個參考圖片中的每個參考圖片的該搜索範圍大小的步驟包括: 根據該等參考圖片的該數量決定一基本大小; 對該等參考圖片中的兩個或更多參考圖片中的每個參考圖片決定相對於該當前圖片的一相應空間距離; 將小於該基本大小的一第一大小指定為該等參考圖片中的兩個或更多個參考圖片的一第一參考圖片的該搜索範圍大小;以及 將大於該基本尺寸的一第二大小指定為該等參考圖片中的兩個或更多個參考圖片的一第二參考圖片的該搜索範圍大小,其中對應於該第二參考圖片的該空間距離大於對應於該第一參考圖片的該空間距離。
  8. 如請求項7所述之視訊編解碼方法,其中,決定相對於該當前圖片的該空間距離的步驟包括基於該當前圖片的一個或多個塊以及對應於該當前圖片的該一個或多個塊的該等參考圖片中該至少一個參考圖片的一個或多個塊來執行運動估計。
  9. 如請求項1所述之視訊編解碼方法,其中,該等參考圖片中該至少一個參考圖片包括兩個或更多個參考圖片,以及其中決定該等參考圖片中的該兩個或更多個參考圖片中每個參考圖片的該搜索範圍大小的步驟包括: 基於該等參考圖片的該數量決定一基本大小; 將小於該基本大小的一第一大小指定為該兩個或更多個參考圖片中的一第一參考圖片的該搜索範圍大小,與該當前圖片相比該第一參考圖片具有一主題變化;以及 將大於該基本大小的一第二大小指定為該兩個或更多個參考圖片中的一第二參考圖片的該搜索範圍大小,與該當前圖片相比該第二參考圖片不具有一主題變化。
  10. 如請求項9所述之視訊編解碼方法,其中,該第一大小為零。
  11. 一種視訊編解碼裝置,包括: 一參考圖片緩衝器,被配置為存儲一當前圖片的多個參考圖片和一個或多個參考圖片列表,每個參考圖片列表被配置為存儲一個或多個索引,一個或多個索引中的每個索引對應於該等參考圖片中的一參考圖片; 一搜索記憶體; 一處理器,被配置為執行多個操作,包括: 基於該一個或多個參考圖片列表決定該等參考圖片的一數量; 相對於該等參考圖片中至少一個參考圖片,基於該數量決定一搜索範圍大小; 基於該搜索範圍大小和該當前塊的一位置決定該等參考圖片中該至少一個參考圖片的一搜索範圍;以及 將該搜索範圍中的像素資料存儲到該搜索記憶體中;以及 一編解碼模組,用於使用存儲在該搜索記憶體中的該像素資料對該當前塊進行編解碼。
  12. 如請求項11所述之視訊編解碼裝置,進一步包括: 一運動估計模組,被配置為相對於該等參考圖片中該至少一個參考圖片決定一巨集運動向量,該巨集運動向量表示從該當前圖片到該等參考圖片中該至少一個參考圖片的一空間位移, 其中決定該搜索範圍的步驟進一步基於該巨集運動向量。
  13. 如請求項11所述之視訊編解碼裝置,其中,該一個或多個參考圖片列表包括一第一列表和一第二列表,該第一列表包含一第一數量的索引,以及該第二列表包含一第二數量的索引,以及其中基於該數量決定該搜索範圍大小的步驟: 基於該第一數量和該第二數量的一總和決定一基本大小; 響應於該等參考圖片中該至少一個參考圖片僅位於該第一列表和該第二列表中的一個,將該基本大小指定為該搜索範圍大小;以及 響應於該等參考圖片中該至少一個參考圖片位於該第一列表和該第二列表中,將該基本大小的兩倍指定為該搜索範圍大小。
  14. 如請求項13所述之視訊編解碼裝置,其中,決定該基本大小的步驟進一步基於該搜索記憶體的一大小。
  15. 如請求項11所述之視訊編解碼裝置,其中,該等參考圖片中該至少一個參考圖片包括該等參考圖片中的兩個或更多個參考圖片,以及其中決定該參考圖片中的兩個或更多個參考圖片中的每個參考圖片的該搜索範圍大小的步驟包括: 根據該數量決定一基本大小; 對該等參考圖片中的兩個或更多參考圖片中的每個參考圖片決定相對於該當前圖片的一相應空間距離; 將小於該基本大小的一第一大小指定為該等參考圖片中的兩個或更多個參考圖片的一第一參考圖片的該搜索範圍大小;以及 將大於該基本尺寸的一第二大小指定為該等參考圖片中的兩個或更多個參考圖片的一第二參考圖片的該搜索範圍大小,其中對應於該第二參考圖片的該空間距離大於對應於該第一參考圖片的該空間距離。
  16. 如請求項15所述之視訊編解碼裝置,其中,決定相對於該當前圖片的該時間距離的步驟包括計算該等參考圖片中該至少一個參考圖片的一圖片順序計數與該當前圖片的一圖片順序計數之間的一差值的一絕對值。
  17. 如請求項11所述之視訊編解碼裝置,還包括: 一運動估計模組, 其中,該等參考圖片中的至少一個參考圖片包括該等參考圖片中的兩個或更多個參考圖片, 其中,該運動估計模組被配置為對該等參考圖片中的該兩個或更多個參考圖片中的每個參考圖片,決定表示一相應的巨集運動向量,該相應的巨集運動向量表示從該當前圖片到該等參考圖片中該至少一個參考圖片的一空間位移,以及 其中,該運動估計模組基於該當前圖片的一個或多個塊和該等參考圖片中該至少一個參考圖片中對應的一個或多個塊來決定該相應的巨集運動向量。
  18. 如請求項17所述之視訊編解碼裝置,其中,決定該等參考圖片中的該兩個或更多個參考圖片中每個參考圖片的該搜索範圍大小的步驟包括: 基於該等參考圖片的該數量決定一基本大小; 將小於該基本大小的一第一大小指定為該兩個或更多個參考圖片中的一第一參考圖片的該搜索範圍大小;以及 將大於該基本大小的一第二大小指定為該兩個或更多個參考圖片中的一第二參考圖片的該搜索範圍大小,其中與該第二參考圖片對應的該巨集運動向量的一幅度大於該第一參考圖片對應的該巨集運動向量的一幅度。
  19. 如請求項11所述之視訊編解碼裝置,其中,該等參考圖片中該至少一個參考圖片包括兩個或更多個參考圖片,以及其中決定該等參考圖片中的該兩個或更多個參考圖片中每個參考圖片的該搜索範圍大小的步驟包括: 基於該等參考圖片的該數量決定一基本大小; 將小於該基本大小的一第一大小指定為該兩個或更多個參考圖片中的一第一參考圖片的該搜索範圍大小,與該當前圖片相比該第一參考圖片具有一主題變化;以及 將大於該基本大小的一第二大小指定為該兩個或更多個參考圖片中的一第二參考圖片的該搜索範圍大小,與該當前圖片相比該第二參考圖片不具有一主題變化。
  20. 如請求項19所述之視訊編解碼裝置,其中該第一大小是零。
TW111149218A 2021-12-21 2022-12-21 視訊編解碼方法及其裝置 TWI832628B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163291970P 2021-12-21 2021-12-21
US63/291,970 2021-12-21
US17/994,400 US20230199171A1 (en) 2021-12-21 2022-11-28 Search Memory Management For Video Coding
US17/994,400 2022-11-28

Publications (2)

Publication Number Publication Date
TW202327354A TW202327354A (zh) 2023-07-01
TWI832628B true TWI832628B (zh) 2024-02-11

Family

ID=86769455

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111149218A TWI832628B (zh) 2021-12-21 2022-12-21 視訊編解碼方法及其裝置

Country Status (3)

Country Link
US (1) US20230199171A1 (zh)
CN (1) CN116320401A (zh)
TW (1) TWI832628B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201931857A (zh) * 2017-12-31 2019-08-01 大陸商華為技術有限公司 圖像預測方法、裝置以及視訊編碼器、視訊解碼器
TW202106009A (zh) * 2019-06-24 2021-02-01 大陸商華為技術有限公司 視訊編碼器、視訊解碼器及相應方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201931857A (zh) * 2017-12-31 2019-08-01 大陸商華為技術有限公司 圖像預測方法、裝置以及視訊編碼器、視訊解碼器
TW202106009A (zh) * 2019-06-24 2021-02-01 大陸商華為技術有限公司 視訊編碼器、視訊解碼器及相應方法

Also Published As

Publication number Publication date
TW202327354A (zh) 2023-07-01
US20230199171A1 (en) 2023-06-22
CN116320401A (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
US10523934B2 (en) Split based motion vector operation reduction
US9247248B2 (en) Mode searching and early termination of a video picture and fast compression of variable length symbols
JP5869122B2 (ja) ビデオコーディングにおける予測データのバッファリング
US20080025412A1 (en) Method and apparatus for processing video stream
US10757440B2 (en) Motion vector prediction using co-located prediction units
JP2008259174A (ja) コンピュータにより実施される動きベクトルのマッピング方法、動きベクトルをマッピングするトランスコーダ及び動きベクトルをマッピングするデコーダ
US10999604B2 (en) Adaptive implicit transform setting
US20110249959A1 (en) Video storing method and device based on variable bit allocation and related video encoding and decoding apparatuses
TWI832628B (zh) 視訊編解碼方法及其裝置
TWI814540B (zh) 視訊編解碼方法及裝置
KR101602871B1 (ko) 데이터 부호화 방법 및 장치와 데이터 복호화 방법 및 장치
TWI833327B (zh) 視訊編解碼方法及裝置
TWI834269B (zh) 視訊處理方法及裝置
TWI332795B (en) Hardware implementation of inverse scan for a plurality of standards
US11973985B2 (en) Video encoder with motion compensated temporal filtering
TWI805534B (zh) 使用時間交錯緩存訪問的視頻編碼並行化
US11622106B2 (en) Supporting multiple partition sizes using a unified pixel input data interface for fetching reference pixels in video encoders
TWI836792B (zh) 視訊編解碼方法及相關裝置
WO2022021310A1 (zh) 编码方法、装置、计算处理设备、计算机程序及存储介质
TW202402057A (zh) 視訊處理方法及裝置
TW202406334A (zh) 電子設備和視訊編解碼的方法
CN118160301A (zh) 重新排序预测候选的延迟减少
TW202315405A (zh) 視訊編解碼方法及其裝置
TW202327361A (zh) 視訊編解碼方法及相關裝置
TW202341733A (zh) 視訊編解碼方法及相關裝置