以下所述的本發明之實施例係有關於使用CABAC以增進指標之編碼及解碼。應理解:依據本發明之替代實施例,一種用以增進其他背景為基的算術編碼方案(功能上類似於CABAC)之實施方式亦為可能的。在描述實施例之前,將描述視頻編碼和解碼技術以及相關的編碼器和解碼器。
圖1係相關於高效率視頻編碼(High Efficiency Video Coding(HEVC))視頻標準中所使用的編碼結構。視頻序列1係由一連串數位影像i所組成。各此等數位影像係由一或更多矩陣所表示。矩陣係數代表像素。
該序列之影像2可被分割為切片3。切片可於某些例子中構成完整影像。這些切片被分割為無重疊編碼樹單元(CTU)。編碼樹單元(CTU)是高效率視頻編碼(HEVC)視頻標準之基本處理單元且觀念上其結構係相應於數種先前視頻標準中所使用的巨集區塊單元。CTU亦有時被稱為最大編碼單元(LCU)。CTU具有亮度及色度成分部分,其成分部分之各者被稱為編碼樹區塊(CTB)。這些不同顏色成分未顯示於圖1中。
CTU針對HEVC通常為大小64像素×64像素,而針對VVC此大小可為128像素×128像素。各CTU可接著使用四元樹分解而被疊代地分割為較小的可變大小編碼單元(CU)5。
編碼單元為基本編碼元件且係由稱為預測單元(PU)及變換單元(TU)之兩種子單元所構成。PU或TU之最大大小係等於CU大小。預測單元係相應於針對像素值之預測的CU之劃分。CU之各種不同劃分為PU是可能的,如所示6個,包括劃分為4個方形PU及兩個不同劃分為2個矩形PU。變換單元為基本單元,其係接受使用DCT之空間變換。CU可根據四元樹表示7而被劃分為TU。
各切片被嵌入一個網路抽象化層(NAL)單元中。此外,視頻序列之編碼參數被儲存在專屬NAL單元(稱為參數集)中。在HEVC及H.264/AVC中,兩種參數集NAL單元被利用:第一,序列參數集(SPS)NAL單元,其係收集在整個視頻序列期間未改變的所有參數。通常,其係處置編碼輪廓、視頻框之大小及其他參數。第二,圖片參數集(PPS)NAL單元包括其可從序列中之一個影像(或框)改變至另一個的參數。HEVC亦包括視頻參數集(VPS)NAL單元,其含有描述位元流之整體結構的參數。VPS是一種於HEVC中定義的新類型參數集,且應用於位元流之所有層。一層可含有多數時間子層,且所有版本1位元流被限制於單一層。HEVC具有用於可擴縮性及多重視角之分層延伸,且這些將致能多數層,具有向後相容的版本1基礎層。
圖2及圖18繪示一(資料)通訊系統,其中本發明之一或更多實施例可被實施。資料通訊系統包含傳輸裝置191(例如,伺服器201),其可操作以經由資料通訊網路200而傳輸資料流(例如,位元流101)之資料封包至接收裝置195(例如,客戶終端202)。資料通訊網路200可為廣域網路(WAN)或區域網路(LAN)。此一網路可為(例如)無線網路(Wifi/802.11a或b或g)、乙太網路、網際網路或由數個不同網路所組成的混合網路。於本發明之特定實施例中,資料通訊系統可為數位電視廣播系統,其中伺服器201傳送相同的資料內容至多數客戶。
由伺服器201所提供的資料流204(或位元流101)可由其表示視頻(例如,影像之序列151)及音頻資料之多媒體資料所組成。音頻及視頻資料流可(於本發明之一些實施例中)由伺服器201個別地使用麥克風及相機來擷取。於一些實施例中,資料流可被儲存在伺服器201上或者由伺服器201從另一資料提供器所接收、或者被產生在伺服器201上。伺服器201被提供有一用以編碼視頻及音頻流之編碼器150,特別是用以提供用於傳輸之壓縮位元流101,其為被提出為針對編碼器之輸入的資料之更簡潔的表示。
為了獲得已傳輸資料之品質相對於已傳輸資料之量的較佳比例,視頻資料之壓縮可(例如)依據HEVC格式或H.264/AVC格式或VVC格式。
客戶202接收已傳輸位元流101且其解碼器100解碼已重建位元流以將視頻影像(例如,視頻信號109)再生於顯示裝置上並由揚聲器再生音頻資料。
雖然串流情境被考量於圖2及圖18之範例中,但應理解:於本發明之一些實施例中,介於編碼器與解碼器之間的資料通訊可使用例如媒體儲存裝置(諸如光碟)來履行。
於本發明之一或更多實施例中,視頻影像被傳輸以其代表補償偏移之資料以利供應至影像之已重建像素來提供已過濾像素於最終影像中。
圖3概略地繪示處理裝置300,其係組態成實施本發明之至少一實施例。處理裝置300可為一種裝置,諸如微電腦、工作站或輕型可攜式裝置。裝置300包含一連接至以下的通訊匯流排313:
- 中央處理單元311,諸如微處理器,標示為CPU;
- 唯讀記憶體307,標示為ROM,用以儲存供實施本發明之電腦程式;
- 隨機存取記憶體312,標示為RAM,用以儲存本發明之實施例的方法之可執行碼、以及暫存器,調適成記錄用以實施依據本發明之實施例之編碼數位影像的序列之方法及/或解碼位元流之方法所需的變數和參數;及
- 通訊介面302,連接至通訊網路303,待處理數位資料係透過該通訊網路來傳輸或接收。
選擇性地,設備300亦可包括以下組件:
- 資料儲存機構304(諸如硬碟),用以儲存電腦程式及資料,該等電腦程式係用以實施本發明之一或更多實施例的方法,該資料係在本發明之一或更多實施例的實施期間所使用或產生的;
- 碟片306之碟片驅動305,該碟片驅動被調適成從碟片306讀取資料或將資料寫至該碟片上;及
- 螢幕309,用以顯示資料及/或作用為與使用者之圖形介面,藉由鍵盤310或任何其他指針機構。
設備300可被連接至各種周邊,諸如(例如)數位相機320或麥克風308,各被連接至輸入/輸出卡(未顯示)以供應多媒體資料至設備300。
通訊匯流排313提供介於設備300中所包括的或連接至該設備300的各個元件之間的通訊及可交互操作性。匯流排之表示是非限制性的;且特別地,中央處理單元可操作以將通訊指令傳遞至設備300之任何元件,直接地或者藉由設備300之另一元件。
碟片306可被取代以任何資訊媒體,諸如(例如)光碟(CD-ROM)(可寫入或不可寫入)、ZIP碟或記憶卡;及(以一般性術語)藉由資訊儲存機構,其可由微電腦或由微處理器所讀取、被集成(或不集成)入該設備、可能為可移除的且調適成儲存一或更多程式,該等程式的執行係致能依據待實施之本發明之編碼數位影像之序列的方法及/或解碼位元流的方法。
可執行碼可被儲存於唯讀記憶體307中、於硬碟304上或者於可移除數位媒體(諸如,例如碟片306,如先前所述)上。依據變體,程式之可執行碼可藉由通訊網路303來接收,經由介面302,以被儲存於設備300(在被執行前)的儲存機構(諸如硬碟304)之一中。
中央處理單元311係調適成依據本發明以控制並指導程式或多數程式之指令或軟體碼部分的執行,該些指令係儲存於前述儲存機構之一中。在開機時,其被儲存於非揮發性記憶體(例如在硬碟304上或者在唯讀記憶體307中)中之程式或多數程式被轉移入隨機存取記憶體312,其接著含有程式或多數程式之可執行碼、以及用以儲存供實施本發明所需之變數和參數的暫存器。
於此實施例中,該設備為可編程設備,其係使用軟體以實施本發明。然而,替代地,本發明可被實施以硬體(例如,以特定應用積體電路或ASIC之形式)。
圖4繪示一種依據本發明之至少一實施例的編碼器之方塊圖。編碼器係由已連接模組所表示,各模組係調適成實施(例如以將由裝置300之CPU 311所執行的編程指令之形式)一種方法之至少一相應步驟,該方法係依據本發明之一或更多實施例以實施編碼影像序列之影像的至少一實施例。
數位影像
i
0至
i
n 401之原始序列係由編碼器400接收為輸入。各數位影像係由一組樣本來表示,有時亦稱為像素(於下文中,其被稱為像素)。
位元流410係由編碼器400所輸出,在編碼程序之實施後。位元流410包含複數編碼單元或切片,各切片包含切片標頭及切片本體,該切片標頭係用以傳輸其用來編碼該切片之編碼參數的編碼值,而該切片本體包含已編碼視頻資料。
輸入數位影像
i
0至
i
n 401係由模組402分割為像素之區塊。該等區塊係相應於影像部分且可有可變大小(例如,4×4、8×8、16×16、32×32、64×64、128×128像素且數個矩形區塊大小亦可被考量)。編碼模式係針對各輸入區塊來選擇。編碼模式之兩個家族被提供:根據空間預測編碼之編碼模式(內預測)、及根據時間預測之編碼模式(間編碼、合併、SKIP)。可能的編碼模式被測試。
模組403係實施內預測程序,其中待編碼的既定區塊係藉由預測子來預測,該預測子係從待編碼的該區塊附近之像素所計算。選定的內預測子以及介於既定區塊與其預測子之間的差異之指示被編碼以提供殘餘,假如內編碼被選擇的話。
時間預測係由移動估計模組404及移動補償模組405來實施。首先來自一組參考影像416中的參考影像被選擇,且該參考影像之一部分,亦稱為參考區域或影像部分,其為針對待編碼的既定區塊之最接近區域(就像素值類似度而言最接近)係由移動估計模組404所選擇。移動補償模組405接著使用該選定區域以預測待編碼的區塊。介於選定參考區域與既定區塊(亦稱為殘餘區塊)之間的差異係由移動補償模組405所計算。選定參考區域係使用移動向量來指示。
因此,於兩情況(空間及時間預測)下,殘餘係藉由從原始區塊減去該預測子來計算。
於藉由模組403所實施的INTRA預測中,預測方向被編碼。在由模組404、405、416、418、417所實施的間預測中,用以識別此移動向量之至少一移動向量或資料係針對時間預測來編碼。
相關於移動向量及殘餘區塊之資訊被編碼,假如間預測被選擇的話。為了進一步減少位元率,假設其移動為同質的,則移動向量係藉由相關於移動向量預測子之差異而被編碼。來自一組移動資訊預測子候選者之移動向量預測子係由移動向量預測及編碼模組417從移動向量場418獲得。
編碼器400進一步包含選擇模組406,用於藉由應用編碼成本準則(諸如率-失真準則)來選擇編碼模式。為了進一步減少冗餘,由變換模組407對殘餘區塊應用變換(諸如DCT),所獲得的變換資料接著係藉由量化模組408而被量化且藉由熵編碼模組409而被熵編碼。最後,目前正被編碼之區塊的已編碼殘餘區塊被插入位元流410中。
編碼器400亦履行已編碼影像之解碼以產生用於後續影像之移動估計的參考影像(例如,在參考影像/圖片416中的那些)。此致能編碼器及解碼器接收位元流以具有相同的參考框(重建影像或影像部分被使用)。反量化(「去量化」)模組411履行已量化資料之反量化(「去量化」),接續以藉由反變換模組412之反變換。內預測模組413使用預測資訊以判定應使用哪個預測子於給定區塊,而移動補償模組414實際地將由模組412所獲得的殘餘加至從該組參考影像416所獲得的參考區域。
接著由模組415應用後過濾以過濾像素之已重建框(影像或影像部分)。於本發明之實施例中,SAO迴路過濾器被使用,其中補償偏移被加至已重建影像之已重建像素的像素值。應理解:後過濾並非總是需要被履行。同時,任何其他類型的後過濾亦可被履行,除了(或替代)SAO迴路過濾以外。
圖5繪示其可被用以從編碼器接收資料的解碼器60之方塊圖,依據本發明之實施例。解碼器係由已連接模組所表示,各模組係調適成實施(例如以將由裝置300之CPU 311所執行的編程指令之形式)一種由解碼器60所實施之方法的相應步驟。
解碼器60接收一包含已編碼單元(例如,相應於區塊或編碼單元之資料)之位元流61,各編碼單元係由標頭及本體所組成,該標頭含有關於編碼參數之資訊而該本體含有已編碼視頻資料。如相關於圖4所解釋,已編碼視頻資料被熵編碼,而移動向量預測子的指標被編碼(針對既定區塊)於預定數目的位元上。所接收的已編碼視頻資料係由模組62所熵解碼。殘餘資料接著由模組63所去量化,且接著由模組64應用反變換以獲得像素值。
指示編碼模式之模式資料亦被熵解碼;且根據該模式,INTRA類型解碼或INTER類型解碼被履行在影像資料之已編碼區塊(單元/集/群組)上。
在INTRA模式之情況下,INTRA預測子係由內預測模組65基於位元流中所指明的內預測模式來判定。
假如該模式為INTER,則移動預測資訊被提取自該位元流以找出(識別)由編碼器所使用的參考區域。移動預測資訊包含參考框指標及移動向量殘餘。移動向量預測子係由移動向量解碼模組70所加至移動向量殘餘以獲得移動向量。
移動向量解碼模組70將移動向量解碼應用於其由移動預測所編碼的各目前區塊。一旦移動向量預測子之指標(針對目前區塊)已被獲得,則與目前區塊相關聯的移動向量之實際值可被解碼並用以由模組66應用移動補償。由已解碼移動向量所指示之參考影像部分被提取自參考影像68以應用移動補償66。移動向量場資料71被更新以已解碼移動向量來用於後續已解碼移動向量之預測。
最後,獲得已解碼區塊。當適合時,由後過濾模組67應用後過濾。已解碼視頻信號69最後由解碼器60所獲得並提供。
CABAC
HEVC使用數種類型的熵編碼,如背景為基的調適性二元算術編碼(CABAC)、哥倫布(Golomb-rice)碼、或者稱為固定長度編碼之簡單二元表示。在大部分時間,二元編碼程序被履行以表示不同的語法元素。此二元編碼程序亦為極特定的並取決於不同語法元素。算術編碼代表依據其目前機率之語法元素。CABAC為算術編碼之延伸,其係根據由背景變數所界定的「背景」來分離語法元素之機率。此係相應於條件式機率。背景變數可被導出自其已被解碼之左上區塊(圖6b中之A2,如以下更詳細地描述)以及上方左邊區塊(圖6b中之B3)的目前語法之值。
CABAC已被採用為H.264/AVC及H.265/HEVC標準之規範部分。在H.264/AVC中,其為熵編碼的兩個替代方法之一。H.264/AVC中所指明的另一方法為一種使用基於可變長度碼之背景調適性切換集的低複雜度熵編碼技術,所謂的背景調適性可變長度編碼(CAVLC)。相較於CABAC,CAVLC提供了減少的實施成本,以較低壓縮效率為代價。針對以標準或高畫質解析度之TV信號,CABAC通常係提供10-20%的位元率減省,相對於在相同目標視頻品質上的CAVLC。於HEVC,CABAC是所使用的熵編碼方法之一。許多位元亦被旁路CABAC編碼。再者,某些語法元素係以一元碼或哥倫布(Golomb)碼來編碼,其為其他類型的熵碼。
圖17顯示CABAC編碼器之主區塊。
其為非二元值的輸入語法元素係由二元化器1701所二元化。CABAC之編碼策略係基於發現其在併合型區塊為基的視頻編碼器中之語法元素值的極有效率編碼(如移動向量差或變換係數階值之成分)可藉由利用當作一種針對背景模擬及二元算術編碼之後續階段的預處理單元之二元化方案來達成。通常,二元化方案係界定語法元素值相對於二元決定之序列(所謂的二元(bins))的獨特映射,其亦可被解讀成二元編碼樹。CABAC中之二元化方案的設計係基於數個基本原型,其結構係致能簡單的線上計算且其適應於某些適當的模型機率分佈。
各二元可被處理以依據開關1702之設定的兩種基本方式之一。當該開關處於「正規」設定時,該二元被供應至背景模擬器1703及正規編碼引擎1704。當該開關處於「旁路」設定時,該背景模擬器被旁路且該二元被供應至旁路編碼引擎1705。另一開關1706具有「正規」及「旁路」設定,類似於開關1702,以使得由編碼引擎1704及1705之可適用一者所編碼的二元可形成位元流以當作CABAC編碼器之輸出。
應理解:其他開關1706可配合一儲存使用以群集其由編碼引擎1705所編碼的部分二元(例如,用以編碼一區塊或一編碼單元之二元)來提供位元流中之已旁路編碼資料的一區塊,以及群集其由編碼引擎1704所編碼的部分二元(例如,用以編碼一區塊或一編碼單元之二元)來提供位元流中之已「正規」(或算術地)編碼資料的另一區塊。已旁路編碼資料與已正規編碼資料之此分離的群集可導致解碼程序之增進的產出量。
藉由將各語法元素分解為二元之序列,則CABAC中之各二元值的進一步處理係根據相關的編碼模式決定,其可被選為正規或旁路模式。後者係針對關於符號資訊之二元或針對較不重要二元來選擇,其被假設為均勻地分佈,且因此,整個正規二元算術編碼程序被逕行旁路。在正規編碼模式中,各二元值係藉由使用正規二元算術編碼引擎來編碼,其中相關的機率模型是由固定選擇來判定(無任何背景模擬)或者是根據相關的背景模型來調適性地選擇。當作一種重要的設計決定,後者通常僅被應用於最常觀察到的二元,而另一者(常為較少觀察到的二元)將使用聯合(通常為零階機率模型)來處置。以此方式,CABAC致能在子符號階上之選擇性背景模擬,而因此,提供一種有效率的工具以在顯著減少的總模擬或學習成本下利用符號間冗餘。針對背景模型之特定選擇,四個基礎設計類型被利用於CABAC,其中該些類型的兩個僅被應用於變換係數階之編碼。這四個原型之設計係基於有關待模擬來源資料之典型特性的先驗知識,且其反映欲在以下兩衝突目標之間找出良好妥協的目的:避免不必要的模擬成本負擔與大量地利用統計依存性。
在CABAC下之處理的最低階上,各二元值進入二元算術編碼器,於正規或旁路編碼模式。針對後者,具有可觀地減少了複雜度之編碼引擎的快速分支被使用;而針對前者編碼模式,既定二元值之編碼係取決於相關調適性機率模型之實際狀態,其係連同二元值被傳遞至M編碼器-一個已針對CABAC中之表為基的調適性二元算術編碼引擎而選的術語。
間編碼
HEVC使用3個不同的INTER模式:間模式(先進移動向量預測(AMVP))、「傳統」合併模式(亦即,「非仿射合併模式」或已知為「正規」合併模式)及「傳統」合併跳躍模式(亦即,「非仿射合併跳躍」模式或已知為「正規」合併跳躍模式)。介於這些模式之間的主要差異是位元流中之資料告知。針對移動向量編碼,目前HEVC標準包括用於移動向量預測之競爭為基的方案,其並未出現在該標準的較早版本中。其表示數個候選者正以率失真準則競爭(在編碼器側上)以找出個別地針對內或合併模式(亦即,「傳統/正規」合併模式或「傳統/正規」合併跳躍模式)之最佳移動向量預測子或最佳移動資訊。相應於最佳預測子或移動資訊之最佳候選者的指標被接著插入位元流中。解碼器可導出預測子或候選者的相同集並使用依據該已解碼指標之最佳一者。於HEVC之螢幕內容延伸(Screen Content Extension)中,稱為內區塊複製(Intra Block Copy(IBC))的新編碼工具被告知為那三種INTER模式之任一者,藉由檢查參考框是否為目前框以發現介於IBC與同等INTER模式之間的差異。此可藉由(例如以下)來實施:檢查列表L0之參考指標、及推斷此為內區塊複製(假如此為該列表中之最後框的話)。另一執行方式是比較目前與參考框之圖片順序計數:假如相等的話,則此為內區塊複製。
預測子及候選者之導出的設計對於獲得最佳編碼效率而沒有對於複雜度之不成比例的影響是很重要的。於HEVC中使用兩種移動向量導出:一種係用於間模式(先進移動向量預測(AMVP))及一種用於合併模式(合併導出程序-用於傳統合併模式及傳統合併跳躍模式)。以下描述這些程序。
圖6a及6b繪示空間及時間區塊,其可被用以產生移動向量預測子,於HEVC編碼及解碼系統之先進移動向量預測(AMVP)及合併模式中,而圖7顯示AMVP預測子集導出之程序的簡化步驟。
兩個空間預測子(亦即,AMVP模式之兩個空間移動向量)在包括頂部角落區塊(區塊B2)及左角落區塊(區塊A0)的頂部區塊(由字母「B」所指示)與左區塊(由字母「A」所指示)的移動向量之中被選擇,而一個時間預測子在如圖6a中所示之共置區塊的右下區塊(H)與中心區塊(中心)的移動向量之中被選擇。
以下表1概述當參考相對於如圖6a及6b中所述之目前區塊時所使用的術語。此術語被使用為簡寫,但應理解:可使用標記之其他系統,特別是在標準之未來版本中。
表
1
應注意:「目前區塊」可為大小上可變的,例如4×4、16×16、32×32、64×64、128×128或介於其間的任何大小。區塊之尺寸最好是2的倍數(亦即,2^n×2^m,其中n及m為正整數)因為此導致位元之更有效率的使用(當使用二元編碼時)。目前區塊無須為方形,雖然此經常為用於編碼複雜度之較佳實施例。
回到圖7,第一步驟旨在選擇在左下區塊A0及A1之中的第一空間預測子(Cand 1,
706
),其空間位置被繪示於圖6a中。至此,這些區塊一個接一個被選擇(
700
,
702
),依既定順序;且(針對各選定區塊)後續條件依既定順序被評估(
704
),滿足以下條件之第一區塊被設為預測子:
- 來自相同參考列表之移動向量及相同參考影像;
- 來自其他參考列表之移動向量及相同參考影像;
- 來自相同參考列表之經擴縮移動向量及不同參考影像;或
- 來自其他參考列表之經擴縮移動向量及不同參考影像。
假如無值被發現,則左預測子被視為不可用的。於此情況下,其指示相關區塊被INTRA編碼或那些區塊不存在。
接下來的步驟旨在選擇在右上區塊B0、上方區塊B1、及左上區塊B2之中的第二空間預測子(Cand 2, 716),其空間位置被繪示於圖6a中。至此,這些區塊一個接一個被選擇(
708
,
710
,
712
),依既定順序;且(針對各選定區塊)上述條件依既定順序被評估(
714
),滿足上述條件之第一區塊被設為預測子。
再次地,假如無值被發現,則頂部預測子被視為不可用的。於此情況下,其指示相關區塊被INTRA編碼或那些區塊不存在。
在下一步驟(718)中,兩個預測子(假如兩者均可用的話)被相互比較以移除其中之一,假如其相等的話(亦即,相同移動向量值、相同參考列表、相同參考指標及相同方向類型)。假如僅有一個空間預測子為可用的,則演算法便在以下步驟中找尋時間預測子。
時間移動預測子(Cand 3,
726
)被導出如下:在先前/參考框中之共置區塊的右下(H, 720)位置被首先考量於可用性檢查模組722中。假如其不存在或假如移動向量預測子為不可用,則共置區塊之中心(中心, 724)被選擇為待檢查。這些時間位置(中心及H)被描繪在圖6a中。於任何情況下,擴縮723被應用於那些候選者以匹配介於目前框與參考列表中的第一框之間的時間距離。
移動預測子值被接著加至該預測子集。接下來,預測子之數目(
Nb_Cand
)與預測子之最大數目(
Max_Cand
)進行比較(728)。如上所述,AMVP之導出程序所必須產生之移動向量預測子的預測子之最大數目(
Max
_
Cand
)是二,在HEVC標準之目前版本中。
假如到達此最大數目,則AMVP預測子之最後列表或集(732)被建立。否則,零預測子被加(730)至該列表。零預測子為等於(0, 0)之移動向量。
如圖7中所繪示,AMVP預測子之最後列表或集(732)被建立自空間移動預測子候選者之子集(700至712)以及自時間移動預測子候選者之子集(720, 724)。
如上所述,傳統合併模式或傳統合併跳躍模式之移動預測子候選者代表所有必要的移動資訊:方向、列表、參考框指標、及移動向量。數個候選者之經編排列表係由合併導出程序所產生。於目前HEVC設計中,針對兩合併模式(亦即,傳統合併模式及傳統合併跳躍模式)之候選者的最大數目等於五(4個空間候選者及1個時間候選者)。
圖8為合併模式(傳統合併模式及傳統合併跳躍模式)之移動向量導出程序的概圖。在該導出程序之第一步驟中,五個區塊位置被考量(800至808)。這些位置為圖6a中所描繪之空間位置,參考編號A1、B1、B0、A0、及B2。在以下步驟中,空間移動向量之可用性被檢查且最多五個移動向量被選擇/獲得以供考量(810)。預測子被視為可用的,假如其存在的話以及假如該區塊未被INTRA編碼的話。因此,將相應於該等五個區塊之移動向量選擇為候選者係依據以下條件來進行:
假如「左」A1移動向量(800)為可用(810),亦即,假如其存在以及假如此區塊未被INTRA編碼,則「左」區塊之移動向量被選擇並使用為候選者之列表(814)中的第一候選者;
假如「上方」B1移動向量(802)為可用(810),則候選者「上方」區塊移動向量與「左」A1移動向量進行比較(812),假如其存在的話。假如B1移動向量等於A1移動向量,則B1不被加至空間候選者之列表(814)。反之,假如B1移動向量不等於A1移動向量,則B1被加至空間候選者之列表(814);
假如「右上」B0移動向量(804)為可用(810),則「右上」之移動向量與B1移動向量進行比較(812)。假如B0移動向量等於B1移動向量,則B0移動向量不被加至空間候選者之列表(814)。反之,假如B0移動向量不等於B1移動向量,則B0移動向量被加至空間候選者之列表(814);
假如「左下」A0移動向量(806)為可用(810),則「左下」之移動向量與A1移動向量進行比較(812)。假如A0移動向量等於A1移動向量,則A0移動向量不被加至空間候選者之列表(814)。反之,假如A0移動向量不等於A1移動向量,則A0移動向量被加至空間候選者之列表(814);及
假如空間候選者之列表不含四個候選者,則「左上」B2移動向量(808)之可用性被檢查(810)。假如其為可用,則其與A1移動向量以及B2移動向量進行比較。假如B2移動向量等於A1移動向量或等於B1移動向量,則B2移動向量不被加至空間候選者之列表(814)。反之,假如B2移動向量不等於A1移動向量或B1移動向量,則B2移動向量被加至空間候選者之列表(814)。
在此階段之結束時,空間候選者之列表包含高達四個候選者。
針對時間候選者,可使用兩個位置:共置區塊之右下位置(816,圖6a中標示為H)以及共置區塊之中心(818)。這些位置被描繪在圖6a中。
如相關於圖7所述,針對AMVP移動向量導出程序之時間移動預測子,第一步驟旨在檢查(820)H位置上之區塊的可用性。接下來,假如其不是可用的,則在中心位置上之區塊的可用性被檢查(820)。假如這些位置之至少一個移動向量是可用的,則時間移動向量可被擴縮(822),假如需要的話,至具有指標0之參考框,針對兩列表L0及L1,以產生其被加至合併移動向量預測子候選者之列表的時間候選者(824)。其被定位在該列表中之空間候選者後。列表L0及L1為含有零、一或更多參考框之2參考框列表。
假如候選者之數目(
Nb_Cand
)絕對地少(826)於候選者之最大數目(
Max_Cand
,該值被告知在位元流切片標頭中且在HEVC設計中係等於五)且假如目前框屬於B類型,則產生結合候選者(828)。結合候選者係基於合併移動向量預測子候選者之列表之可用候選者來產生。其主要包括結合(配對)列表L0之一個候選者的移動資訊與列表L1之一個候選者的移動資訊。
假如候選者之數目(
Nb_Cand
)維持絕對地少(830)於候選者之最大數目(
Max_Cand
),則零移動候選者被產生(832)直到合併移動向量預測子候選者之列表的候選者數目到達候選者之最大數目。
在此程序之結束時,合併移動向量預測子候選者之列表或集(亦即,合併模式之候選者的列表或集,其為傳統合併模式及傳統合併跳躍模式)被建立(834)。如圖8中所示,合併移動向量預測子候選者之列表或集被建立(834)自空間候選者之子集(800至808)以及自時間候選者之子集(816, 818)。
替代時間移動向量預測(ATMVP)
替代時間移動向量預測(ATMVP)是一種特殊類型的移動補償。取代僅考量來自時間參考框之目前區塊的一個移動資訊,各共置區塊之各移動資訊被考量。所以此時間移動向量預測提供了具有各子區塊之相關移動資訊的目前區塊之分段,如圖9中所描繪。
在目前VTM參考軟體中,ATMVP被告知為插入合併候選者之列表(亦即,合併模式之候選者的列表或集,其為傳統合併模式及傳統合併跳躍模式)中的合併候選者。當ATMVP被致能在SPS階時,最大數目的合併候選者被增加一。因此6個候選者被考量而非5個(假如此ATMVP模式被除能的話則其將已為此情況)。
此外,當此預測被致能在SPS階時,合併指標(亦即,用以從合併候選者之列表識別候選者的識別符或指標)之所有二元係由CABAC所背景編碼。而在HEVC中、或者當ATMVP不被致能在JEM中的SPS階時,僅有第一二元被背景編碼而剩餘的二元被背景旁路編碼(亦即,旁路CABAC編碼)。圖10(a)繪示針對HEVC(或者當ATMVP不被致能在JEM中的SPS階時)之合併指標的編碼。此係相應於一元最大編碼。此外,第一位元被CABAC編碼而其他位元被旁路CABAC編碼。
圖10(b)繪示當ATMVP被致能在SPS階時之合併指標的編碼。此外,所有位元被CABAC編碼(從第1至第5位元)。應注意:用以編碼該指標之各位元具有其本身的背景-換言之,其等的機率是分離的。
仿射 模式
在HEVC中,僅有變換移動模型被應用於移動補償預測(MCP)。而在真實世界中,有許多種移動,例如,放大/縮小、旋轉、透視移動及其他不規則移動。
在JEM中,簡化的仿射變換移動補償預測被應用而仿射模式之一般原則被描述於下,基於在Torino(2017年七月13-21)之JVET會議上所提出的文件JVET-G1001之摘錄。此完整文件被併入於此以供參考,只要其描述JEM中所使用的其他演算法。
如圖11(a)中所示,區塊之仿射移動場係由兩個控制點移動向量所描述。
區塊之移動向量場(MVF)係由以下方程式所描述:
其中(
v0x
,
v0y
)為左上角落控制點之移動向量,而(
v1x
,
v1y
)為右上角落控制點之移動向量。而
w
是區塊Cur(目前區塊)之寬度。
為了進一步簡化移動補償預測,子區塊為基的仿射變換預測被應用。子區塊大小
被導出如在方程式2中,其中
MvPre
為移動向量分數準確度(JEM中之1/16),(
v2x
,
v2y
)為左上控制點之移動向量,依據方程式1所計算。
在由方程式2導出後,M及N可被向下調整(假如需要的話)以使其成為
w
及
h
之除數(個別地)。
h
是區塊Cur(目前區塊)之高度。
為了導出各M×N子區塊之移動向量,各子區塊之中心樣本的移動向量(如圖6a所示)係依據方程式1而被計算,且被捨入至1/16分數準確度。接著移動補償內插過濾器被應用以產生具有已導出移動向量之各子區塊的預測。
仿射模式是移動補償模式,如間模式(AMVP、「傳統」合併、或「傳統」合併跳躍)。其原理係依據2或3相鄰移動資訊以產生每像素一移動資訊。在JEM中,仿射模式係導出如圖11(a)/(b)中所示之各4×4區塊的一移動資訊(各方形為4×4區塊,而圖11(a)/(b)中之整個區塊為16×16區塊,其被分割為4×4大小之此方形的16個區塊-各4×4方形區塊具有與其相關聯的移動向量)。應理解:在本發明之實施例中,仿射模式可導出不同大小或形狀之區塊的一移動資訊,只要該一移動資訊可被導出。此模式可用於AMVP模式及合併模式(亦即,亦稱為「非仿射合併模式」之傳統合併模式以及亦稱為「非仿射合併跳躍模式」之傳統合併跳躍模式),藉由以旗標致能仿射模式。此旗標被CABAC編碼。於一實施例中,該背景係取決於左區塊(圖6b之位置A2)與左上區塊(圖6b之位置B3)之仿射旗標的總和。
因此三個背景變數(0、1或2)在JEM中是可能的,針對由以下式所給定的仿射旗標:
其中IsAffine(區塊)是函數,其在該區塊不是仿射區塊時回覆0而在該區塊是仿射區塊時回覆1。
仿射合併候選者導出
在JEM中,仿射合併模式(或仿射合併跳躍模式)從位置A1、B1、B0、A0、B2上的區塊中其為仿射之第一相鄰區塊(亦即,使用仿射模式而被編碼之第一相鄰區塊)導出目前區塊之移動資訊。這些位置被描繪在圖6a及6b中。然而,如何導出仿射參數並未被完全地界定,且本發明旨在藉由(例如)以下方式來增進至少此形態:界定仿射合併模式之仿射參數以使得其致能針對仿射合併候選者之更廣的選擇(亦即,不僅其為仿射之第一相鄰區塊而還包括至少一其他候選者可用於利用諸如指標之識別符的選擇)。
例如,依據本發明之一些實施例,使用一仿射合併模式以編碼或解碼區塊,該仿射合併模式具有仿射合併候選者之其本身的列表(用以導出/獲得仿射模式之移動資訊的候選者)及仿射合併指標(用以從仿射合併候選者之該列表識別一仿射合併候選者)。
仿射合併告知
圖12為相關於用以告知仿射合併模式之使用的編碼模式之一些語法元素的部分解碼程序之流程圖。於此圖形中,跳躍旗標(1201)、預測模式(1211)、合併旗標(1203)、合併指標(1208)及仿射旗標(1206)可被解碼。
針對間切片之所有CU,跳躍旗標被解碼(1201)。假如CU不是跳躍(1202),pred模式(預測模式)被解碼(1211)。此語法元素指示該目前CU是被編碼於(將被解碼於)間模式或是內模式。請注意:假如CU是跳躍(1202),則其目前模式是間模式。假如CU不是跳躍(1202:否),則CU被編碼於AMVP或者於合併模式。假如CU不是間(1212),則合併旗標被解碼(1203)。假如CU是合併(1204)或假如CU是跳躍(1202:是),則驗證/檢查(1205)仿射旗標(1206)是否需被解碼,亦即,在(1205)做出目前CU是否可能已被編碼於仿射模式之判定。假如目前CU為2N×2N CU則此旗標被解碼,其表示在目前VVC中該CU之高度與寬度應相等。此外,至少一個相鄰CU A1或B1或B0或A0或B2需被編碼以仿射模式(於仿射合併模式或者已致能仿射模式之AMVP模式)。最後,目前CU不應為4×4 CU但預設其CU 4×4被除能在VTM參考軟體中。假如此狀況(1205)為錯誤,則確定其目前CU被編碼以傳統合併模式(或傳統合併跳躍模式),如HEVC中所指明;且合併指標被解碼(1208)。假如仿射旗標(1206)被設為等於1(1207),則CU為合併仿射CU(亦即,於仿射合併模式中所編碼的CU)或合併跳躍仿射CU(亦即,於仿射合併跳躍模式中所編碼的CU),且合併指標(1208)無須被解碼(因為仿射合併模式被使用,亦即,CU將使用仿射模式而被解碼,以該第一相鄰區塊為仿射)。否則,目前CU為傳統(基本)合併或合併跳躍CU(亦即,於傳統合併或合併跳躍模式中所編碼的CU)且合併指標候選者(1208)被解碼。
於本說明書中,「告知」可指稱將一或更多語法元素插入(提供/包括在)、或提取/獲得自位元流,該語法元素代表模式或其他資訊之致能或除能。
仿射候選者導出
圖13為繪示合併候選者(亦即,傳統合併模式或傳統合併跳躍模式之候選者)導出之流程圖。此導出已被建立在圖8中所表示之合併模式的移動向量導出程序之頂部上(亦即,HEVC之合併候選者列表導出)。相較於HEVC之主要改變是ATMVP候選者(1319, 1321, 1323)之加入、候選者(1325)之全複製檢查以及候選者之新順序。ATMVP預測被設為特殊候選者,因為其代表目前CU之數個移動資訊。第一子區塊(左上)之值係與時間候選者進行比較,而假如其相等的話則該時間候選者不被加入合併之列表中(1320)。ATMVP候選者不與其他空間候選者進行比較。相反於時間候選者,其係與已經在該列表中之各空間候選者進行比較(1325)且不被加入合併候選者列表中(假如其為複製候選者的話)。
當空間候選者被加入該列表中時,該空間候選者便與該列表中之其他空間候選者進行比較(1312),其在HEVC之最終版本中並非如此。
在目前VTM版本中,合併候選者之列表被設為以下順序,因為其已被判定為提供涵蓋編碼測試條件之最佳結果:
• A1
• B1
• B0
• A0
• ATMVP
• B2
• 時間
• 已結合
• Zero_MV
重要的是注意其空間候選者B2被設定在ATMVP候選者之後。
此外,當ATMVP被致能在切片階時,候選者之列表中的最大數目是6而非HEVC之5。
現在將參考圖12-16及22-24以描述本發明之範例實施例。應注意:除非另外明確地聲明否則實施例可被結合;例如實施例之某些結合可增進編碼效率而增加複雜度,但此為某些使用情況下所能接受的。
第一實施例
如上所述,在目前VTM參考軟體中,ATMVP被告知為插入合併候選者之列表中的合併候選者。ATMVP可針對整個序列而被致能或除能(在SPS階)。當ATMVP被除能時,合併候選者之最大數目為5。當ATMVP被致能時,合併候選者之最大數目被增加一(從5至6)。
在編碼器中,合併候選者之列表係使用圖13之方法而被產生。一個合併候選者被選自合併候選者之列表,例如基於率-失真準則。選定的合併候選者被告知給位元流中之解碼器,使用稱為合併指標之語法元素。
在目前VTM參考軟體中,編碼合併指標之方式是根據ATMVP是被致能或是被除能而有所不同。
圖10(a)繪示當ATMVP不被致能在SPS階時之合併指標的編碼。5個合併候選者Cand0、Cand1、Cand2、Cand3及Cand4被個別地編碼0、10、110、1110及1111。此係相應於一元最大編碼。此外,第一位元係使用單一背景而被CABAC編碼而其他位元被旁路編碼。
圖10(b)繪示當ATMVP被致能時之合併指標的編碼。6個合併候選者Cand0、Cand1、Cand2、Cand3、Cand4及Cand5被個別地編碼0、10、110、1110、11110及11111。於此情況下,合併指標之所有位元(從第1至第5位元)被CABAC所背景編碼。各位元具有其本身的背景且有針對不同位元之分離的機率模型。
在本發明之第一實施例中,如圖14中所示,當ATMVP被包括為合併候選者之列表中的合併候選者時(例如,當ATMVP被致能在SPS階時),合併指標之編碼被修改以使得僅有合併指標之第一位元使用單一背景而被CABAC所編碼。背景被設定以如目前VTM參考軟體中之相同方式,當ATMVP不被致能在SPS階時。其他位元(從第2至第5位元)被旁路編碼。當ATMVP不被包括為合併候選者之列表中的合併候選者時(例如,當ATMVP被除能在SPS階時),有5個合併候選者。僅有合併指標之第一位元使用單一背景而被CABAC所編碼。背景被設定以如目前VTM參考軟體中之相同方式,當ATMVP不被致能在SPS階時。其他位元(從第2至第4位元)被旁路解碼。
解碼器產生如編碼器的合併候選者之相同列表。此可藉由使用圖13之方法來完成。當ATMVP不被包括為合併候選者之列表中的合併候選者時(例如,當ATMVP被除能在SPS階時),有5個合併候選者。僅有合併指標之第一位元使用單一背景而被CABAC所解碼。其他位元(從第2至第4位元)被旁路解碼。相反於目前參考軟體,在合併指標之解碼中,當ATMVP被包括為合併候選者之列表中之合併候選者時(例如,當ATMVP被致能在SPS階時),僅有合併指標之第一位元使用單一背景而被CABAC所解碼。其他位元(從第2至第5位元)被旁路解碼。已解碼合併指標被用以識別由編碼器從合併候選者之列表中所選擇的合併候選者。
此實施例之優點(相較於VTM2.0參考軟體)是合併指標解碼及解碼器設計(和編碼器設計)的複雜度減少而沒有對於編碼效率的影響。確實,利用此實施例,針對合併指標僅需要1個CABAC狀態而非針對目前VTM合併指標編碼/解碼之5個。此外,其減少最差情況複雜度,因為其他位元被CABAC旁路編碼,其減少操作之數目(相較於以CABAC編碼所有位元)。
第二實施例
在第二實施例中,合併指標之所有位元被CABAC編碼但其均共用相同背景。可有如第一實施例中之單一背景,其於此情況下被共用於該等位元之間。結果,當ATMVP被包括為合併候選者之列表中的合併候選者時(例如,當ATMVP被致能在SPS階時),僅有一個背景被使用,相較於VTM2.0參考軟體中的5個。此實施例之優點(相較於VTM2.0參考軟體)是合併指標解碼及解碼器設計(和編碼器設計)的複雜度減少而沒有對於編碼效率的影響。
替代地,如以下連結第三至第十五實施例所述,背景變數可被共用於該等位元之間以使得二或更多背景為可用的但目前背景係由該等位元所共用。
當ATMVP被除能時,相同背景仍被用於所有位元。
此實施例及所有後續實施例可被應用,即使ATMVP不是可用的模式或是被除能。
在第二實施例之變體中,合併指標之任何二或更多位元被CABAC編碼且共用相同背景。合併指標之其他位元被旁路編碼。例如,合併指標之前N個位元可被CABAC編碼,其中N為二或更多。
第三實施例
在第一實施例中,合併指標之第一位元使用單一背景而被CABAC編碼。
在第三實施例中,合併指標之位元的背景變數係取決於相鄰區塊之合併指標的值。如此容許針對目標位元之多於一個背景,以各背景相應於背景變數之不同值。
相鄰區塊可為已解碼之任何區塊,以使得其合併指標可用於解碼器,在目前區塊被解碼的時刻下。例如,相鄰區塊可為圖6b中所示之區塊A0、A1、A2、B0、B1、B2及B3的任一者。
在第一變體中,僅第一位元使用此背景變數而被CABAC編碼。
在第二變體中,合併指標之前N個位元(其中N為二或更大)被CABAC編碼且背景變數被共用於那些N個位元之間。
在第三變體中,合併指標之任何N個位元(其中N為二或更大)被CABAC編碼且背景變數被共用於那些N個位元之間。
在第四變體中,合併指標之前N個位元(其中N為二或更大)被CABAC編碼且N個背景變數被共用於那些N個位元。假設背景變數具有K個值,則K×N CABAC狀態被使用。例如,在本實施例中,利用一個相鄰區塊,背景變數可便利地具有2個值,例如,0及1。換言之,2N CABAC狀態被使用。
在第五變體中,合併指標之任何N個位元(其中N為二或更大)被調適性PM編碼且N個背景變數被用於那些N個位元。
相同變體可應用於下文中所述之第四至第十六實施例。
第四實施例
在第四實施例中,合併指標之位元的背景變數係取決於二或更多相鄰區塊之合併指標的個別值。例如,第一相鄰區塊可為左區塊A0、A1或A2,而第二相鄰區塊可為上區塊B0、B1、B2或B3。結合二或更多合併指標值之方式未被特別地限制。範例被提供如下。
背景變數可便利地具有3個不同值(例如,0、1及2),於此情況下,如有兩個相鄰區塊。假如連結第三實施例所述之第四變體被應用於具有3個不同值之此實施例,因此,K為3而非2。換言之,3N CABAC狀態被使用。
第五實施例
在第五實施例中,合併指標之位元的背景變數係取決於相鄰區塊A2及B3之合併指標的個別值。
第六實施例
在第六實施例中,合併指標之位元的背景變數係取決於相鄰區塊A1及B1之合併指標的個別值。此變體之優點係符合併候選者導出。結果,在一些解碼器及編碼器實施方式中,記憶體存取減少可被達成。
第七實施例
在第七實施例中,針對具有目前區塊之合併指標中的位元位置idx_num之位元的背景變數係依據以下式子而被獲得:
ctxIdx=(Merge_index_left==idx_num)+(Merge_index_up==idx_num)
其中Merge_index_left為左區塊之合併指標,Merge_ index_up為上區塊之合併指標,且符號==為相等符號。
當有6個合併候選者時,例如,0<=idx_num<=5。
左區塊可為區塊A1而上區塊可為區塊B1(如在第六實施例中)。替代地,左區塊可為區塊A2而上區塊可為區塊B3(如在第五實施例中)。
式子(Merge_index_left==idx_num)等於1,假如左區塊之合併指標等於idx_num的話。下表提供此式子(Merge_ index_left==idx_num)之結果:
當然該式子(Merge_index_up==idx_num)的表是相同的。
下表提供各合併指標值之一元最大碼以及各位元之相對位元位置。此表係相應於圖10(b)。
假如左區塊不是合併區塊或仿射合併區塊(亦即,使用仿射合併模式所編碼),則視為其左區塊不是可用的。相同狀況被應用於上區塊。
例如,當僅有第一位元被CABAC編碼時,背景變數ctxIdx被設為等於:
0,假如無左及上/上方區塊具有合併指標或假如左區塊合併指標不是第一指標(亦即,不是0)以及假如上方區塊合併指標不是第一指標(亦即,不是0);
1,假如一個但非左及上區塊之其他者具有其合併指標等於第一指標;以及
2,假如針對左及上區塊之各者,該合併指標等於第一指標。
更一般地,針對其被CABAC編碼之位置idx_num上的目標位元,背景變數ctxIdx被設為等於:
0,假如無左及上/上方區塊具有合併指標或假如左區塊合併指標不是第i指標(其中i=idx_num)以及假如上方區塊合併指標不是第i指標;
1,假如一個但非左及上區塊之其他者具有其合併指標等於第i指標;以及
2,假如針對左及上區塊之各者,該合併指標等於第i指標。於此,第i指標表示第一指標(當i=0時)、第二指標(當i=1時),依此類推。
第八實施例
在第八實施例中,針對具有目前區塊之合併指標中的位元位置idx_num之位元的背景變數係依據以下式子而被獲得:
Ctx=(Merge_index_left > idx_num)+(Merge_index_up > idx_num)其中Merge_index_left為左區塊之合併指標,Merge_index_up為上區塊之合併指標,且符號>表示「大於」。
當有6個合併候選者時,例如,0<=idx_num<=5。
左區塊可為區塊A1而上區塊可為區塊B1(如在第五實施例中)。替代地,左區塊可為區塊A2而上區塊可為區塊B3(如在第六實施例中)。
式子(Merge_index_left > idx_num)等於1,假如左區塊之合併指標大於idx_num的話。假如左區塊不是合併區塊或仿射合併區塊(亦即,使用仿射合併模式所編碼),則視為其左區塊不是可用的。相同狀況被應用於上區塊。
下表提供此式子(Merge_index_left > idx_num)之結果:
例如,當僅有第一位元被CABAC編碼時,背景變數ctxIdx被設為等於:
0,假如無左及上/上方區塊具有合併指標或假如左區塊合併指標小於或等於第一指標(亦即,不是0)以及假如上方區塊合併指標小於或等於第一指標(亦即,不是0);
1,假如一個但非左及上區塊之其他者具有其合併指標大於第一指標;以及
2,假如針對左及上區塊之各者,該合併指標大於第一指標。
更一般地,針對其被CABAC編碼之位置idx_num上的目標位元,背景變數ctxIdx被設為等於:
0,假如無左及上/上方區塊具有合併指標或假如左區塊合併指標小於第i指標(其中i=idx_num)以及假如上方區塊合併指標小於或等於第i指標;
1,假如一個但非左及上區塊之其他者具有其合併指標大於第i指標;以及
2,假如針對左及上區塊之各者,該合併指標大於第i指標。
第八實施例提供超越第七實施例之進一步編碼效率增加。
第九實施例
在第四至第八實施例中,目前區塊的合併指標之位元的背景變數係取決於二或更多相鄰區塊之合併指標的個別值。
在第九實施例中,目前區塊的合併指標之位元的背景變數係取決於二或更多相鄰區塊之個別合併旗標。例如,第一相鄰區塊可為左區塊A0、A1或A2,而第二相鄰區塊可為上區塊B0、B1、B2或B3。
合併旗標被設為1(當區塊係使用合併模式而被編碼時),以及被設為0(當諸如跳躍模式或仿射合併模式之另一模式被使用時)。注意:在VMT2.0中,仿射合併是與基本或「傳統」合併模式不同的模式。仿射合併模式可使用專屬仿射旗標而被告知。替代地,合併候選者之列表可包括仿射合併候選者,於該情況下仿射合併模式可使用合併指標而被選擇並告知。
背景變數被接著設為:
0,假如左及上相鄰區塊均不使其合併旗標被設為1;
1,假如一個但非左及上相鄰區塊之其他者使其合併旗標被設為1;以及
2,假如左及上相鄰區塊之各者均使其合併旗標被設為1。
此簡單手段達成超越VTM2.0之編碼效率增進。另一優點(相較於第七及第八實施例)是較低的複雜度,因為僅有相鄰區塊之合併旗標而非合併指標需被檢查。
在一變體中,目前區塊的合併指標之位元的背景變數係取決於單一相鄰區塊之合併旗標。
第十實施例
在第三至第九實施例中,目前區塊的合併指標之位元的背景變數係取決於一或更多相鄰區塊之合併指標值或合併旗標。
在第十實施例中,目前區塊的合併指標之位元的背景變數係取決於目前區塊(目前編碼單元,或CU)之跳躍旗標的值。當目前區塊使用合併跳躍模式時跳躍旗標等於1,而否則係等於0。
跳躍旗標是其已針對目前區塊而被解碼或剖析的另一變數或語法元素之第一範例。此其他變數或語法元素最好是目前區塊中之移動資訊的複雜度之指示符。因為合併指標值之發生係取決於移動資訊之複雜度,所以諸如跳躍旗標之變數或語法元素一般係與合併指標值相關聯。
更明確地,合併跳躍模式通常係針對靜態場景或涉及恆定移動之場景來選擇。因此,合併指標值通常針對合併跳躍模式是較低的,相較於針對其被用以編碼含有區塊殘餘之間預測的傳統合併模式。此通常係發生於更複雜的移動。然而,介於這些模式之間的選擇亦常相關於量化及/或RD準則。
此簡單手段提供了超越VTM2.0之編碼效率增加。其亦極易於實施,因為不涉及相鄰區塊或檢查合併指標值。
在第一變體中,目前區塊的合併指標之位元的背景變數被簡單設為等於目前區塊之跳躍旗標。該位元可僅為第一位元。其他位元被旁路編碼,如在第一實施例中。
在第二變體中,合併指標之所有位元被CABAC編碼且其各者具有根據合併旗標之其本身的背景變數。此需要機率的10個狀態,當有5個CABAC編碼的位元在合併指標中(相應於6個合併候選者)時。
在第三變體中,為了限制狀態之數目,僅有合併指標之N個位元被CABAC編碼,其中N為二或更大,例如前N個位元。此需要2N個狀態。例如,當前2位元被CABAC編碼時,則需要4個狀態。
通常,取代跳躍旗標,有可能使用任何其他變數或語法元素,其已針對目前區塊而被解碼或剖析且其為目前區塊中之移動資訊的複雜度之指示符。
第十一實施例
第十一實施例係相關於仿射合併告知,如先前參考圖11(a)、11(b)及12所述。
在第十一實施例中,目前區塊(目前CU)的合併指標之CABAC編碼位元的背景變數係取決於合併候選者之列表中的仿射合併候選者(假如有的話)。該位元可為合併指標之僅第一位元、或前N位元(其中N為二或更多)、或任何N位元。其他位元被旁路編碼。
仿射預測被設計以補償複雜移動。因此,針對複雜移動,合併指標通常具有比較不複雜移動更高的值。因此假如第一仿射合併候選者在該列表中的很底部、或假如完全沒有仿射合併候選者,則目前CU之合併指標極可能具有小的值。
因此對於背景變數有效的是根據該列表中之至少一仿射合併候選者的存在及/或位置。
例如,背景變數可被設為等於:
1,假如A1是仿射的話
2,假如B1是仿射的話
3,假如B0是仿射的話
4,假如A0是仿射的話
5,假如B2是仿射的話
0,假如無相鄰區塊是仿射的話。
當目前區塊之合併指標被解碼或剖析時,在這些位置上之合併候選者的仿射旗標已被檢查。因此,無須進一步記憶體存取以導出目前區塊之合併指標的背景。
此實施例提供了超越VTM2.0之編碼效率增加。無須額外的記憶體存取,因為步驟1205已涉及檢查相鄰CU仿射模式。
在第一變體中,為了限制狀態之數目,背景變數可被設為等於:
0,假如無相鄰區塊是仿射的話、或者假如A1或B1是仿射的話
1,假如B0、A0或B2是仿射的話
在第二變體中,為了限制狀態之數目,背景變數可被設為等於:
0,假如無相鄰區塊是仿射的話
1,假如A1或B1是仿射的話
2,假如B0、A0或B2是仿射的話
在第三變體中,背景變數可被設為等於:
1,假如A1是仿射的話
2,假如B1是仿射的話
3,假如B0是仿射的話
4,假如A0或B2是仿射的話
0,假如無相鄰區塊是仿射的話。
請注意:在當合併指標被解碼或剖析時這些位置已被檢查,因為仿射旗標解碼係根據這些位置。因此,無須額外的記憶體存取以導出合併指標背景,其被編碼在仿射旗標後。
第十二實施例
在第十二實施例中,告知仿射模式包含將仿射模式插入為候選移動預測子。
在第十二實施例之一範例中,仿射合併(及仿射合併跳躍)被告知為合併候選者(亦即,為配合傳統合併模式或傳統合併跳躍模式而使用的合併候選者之一)。在該情況下,圖12之模組1205、1206及1207被移除。此外,不影響合併模式之編碼效率,合併候選者之最大可能數目被遞增。例如,在目前VTM版本中,此值被設為等於6;因此假如將此實施例應用於VTM之目前版本,則該值將為7。
優點是合併模式之語法元素的設計簡化,因為較少的語法元素需被解碼。在一些情況下,可觀察到編碼效率增進/改變。
現在將描述用以實施此範例的兩個可能性:
仿射合併候選者之合併指標在該列表內部總是具有相同位置,無論其他合併MV之值為何。候選移動預測子之位置係指示其被選擇的可能性,而如此一來假如其位於該列表中的較高處(較低的指標值),則該移動向量預測子更可能被選擇。
在第一範例中,仿射合併候選者之合併指標在合併候選者之列表內部總是具有的相同位置。此表示其具有固定「合併指標」值。例如,此值可被設為等於5,因為仿射合併模式應代表其不是最可能內容的複雜移動。此實施例之額外優點在於當目前區塊被剖析(僅解碼/讀取語法元素但不解碼該資料本身)時,目前區塊可被設為仿射區塊。因此,該值可被用以判定其被用於AMVP之仿射旗標的CABAC背景。因此條件式機率應針對此仿射旗標而被增進且編碼效率應是較佳的。
在第二範例中,該仿射合併候選者與其他合併候選者一起被導出。於此範例中,新仿射合併候選者被加入合併候選者之列表(針對傳統合併模式或傳統合併跳躍模式)。圖16繪示此範例。相較於圖13,仿射候選者是來自A1、B1、B0、A0、及B2之第一仿射相鄰區塊(1917)。假如相同狀況(如圖12之1205)是有效的(1927),則以仿射參數所產生的移動向量場被產生以獲得仿射候選者(1929)。初始合併候選者之列表可具有4、5、6或7個候選者,依據ATMVP、時間及仿射合併候選者之使用。
介於所有這些候選者之間的順序是重要的,因為較可能的候選者應被首先處理以確保其更可能成為移動向量候選者-較佳的排序係如下:
A1
B1
B0
A0
仿射合併
ATMVP
B2
時間
已結合
Zero_MV
重要的是注意到:仿射合併候選者是位在ATMVP候選者前但是在四個主相鄰區塊後。將仿射合併候選者設在ATMVP候選者前的優點是編碼效率增加,如相較於將其設在ATMVP及時間預測子候選者後。此編碼效率增加係根據GOP(圖片之群組)結構以及該GOP中之各圖片的量化參數(QP)設定。但是針對大部分使用,設定此順序之GOP及QP係提供編碼效率增加。
此解決方式之進一步優點是傳統合併及傳統合併跳躍模式之乾淨設計(亦即,具有諸如ATMVP或仿射合併候選者之額外候選者之合併模式),針對語法及導出程序兩者。再者,仿射合併候選者之合併指標可依據合併候選者之列表中之先前候選者的可用性或值(重複檢查)而改變。因此可獲得有效率的告知。
在進一步範例中,仿射合併候選者之合併指標是依據一或數個條件而可變的。
例如,在與仿射合併候選者關聯的列表內部之合併指標或位置係依據一準則而改變。其原理是針對相應於仿射合併候選者之合併指標設定低值,當仿射合併候選者具有被選擇的高機率時(以及更高的值,當有被選擇的低機率時)。
在第十二實施例中,仿射合併候選者具有合併指標值。為了增進合併指標之編碼效率,有效的是使合併指標之位元的背景變數根據相鄰區塊及/或目前區塊之仿射旗標。
例如,背景變數可使用以下式子來判定:
ctxIdx=IsAffine(A1)+IsAffine(B1)+IsAffine(B0)+
IsAffine(A0)+IsAffine(B2)
所得背景值可具有值0、1、2、3、4或5。
仿射旗標增加了編碼效率。
在第一變體中,為了涉及較少相鄰區塊,ctxIdx= IsAffine(A1)+IsAffine(B1)。所得背景值可具有值0、1、或2。
在第二變體中,亦涉及較少相鄰區塊,ctxIdx= IsAffine(A2)+IsAffine(B3)。再次地,所得背景值可具有值0、1、或2。
在第三變體中,不涉及相鄰區塊,ctxIdx=IsAffine(目前區塊)。所得背景值可具有值0或1。
圖15為相關於具有第三變體的編碼模式之一些語法元素的部分解碼程序之流程圖。於此圖形中,跳躍旗標(1601)、預測模式(1611)、合併旗標(1603)、合併指標(1608)及仿射旗標(1606)可被解碼。此流程圖係類似於圖12之流程圖(描述於上文中),而詳細描述因此被省略。差別在於其合併指標解碼程序係考量仿射旗標,以使得有可能使用仿射旗標,其被解碼在合併指標前,當獲得合併指標之背景變數時,其並非VTM 2.0中之情況。在VTM2.0中,目前區塊之仿射旗標無法被用以獲得合併指標之背景變數,因為其總是具有相同值「0」。
第十三實施例
在第十實施例中,目前區塊的合併指標之位元的背景變數係取決於目前區塊(目前編碼單元,或CU)之跳躍旗標的值。
在第十三實施例中,取代直接地使用跳躍旗標值以導出合併指標之目標位元的背景變數,該目標位元的背景值被導出自其用於編碼目前CU之跳躍旗標的背景變數。此係可能的,因為跳躍旗標本身被CABAC編碼而因此具有背景變數。
較佳地,目前CU之合併指標的目標位元之背景變數被設為等於(或複製自)其用於編碼目前CU之跳躍旗標的背景變數。
該目標位元可僅為第一位元。其他位元可被旁路編碼,如在第一實施例中。
目前CU之跳躍旗標的背景變數被導出,以VTM2.0中所規定的方式。此實施例之優點(相較於VTM2.0參考軟體)是合併指標解碼及解碼器設計(和編碼器設計)的複雜度減少而沒有對於編碼效率的影響。確實,利用此實施例,用於編碼合併指標最少僅需要1個CABAC狀態而非目前VTM合併指標編碼(編碼/解碼)之5個。此外,其減少最差情況複雜度,因為其他位元被CABAC旁路編碼,其減少操作之數目(相較於以CABAC編碼所有位元)。
第十四實施例
在第十三實施例中,目標位元之背景值被導出自目前CU之跳躍旗標的背景變數。
在第十四實施例中,目標位元之背景值被導出自目前CU之仿射旗標的背景變數。
此係可能的,因為仿射旗標本身被CABAC編碼而因此具有背景變數。
較佳地,目前CU之合併指標的目標位元之背景變數被設為等於(或複製自)目前CU之仿射旗標的背景變數。
該目標位元可僅為第一位元。其他位元被旁路編碼,如在第一實施例中。
目前CU之仿射旗標的背景變數被導出,以VTM2.0中所規定的方式。
此實施例之優點(相較於VTM2.0參考軟體)是合併指標解碼及解碼器設計(和編碼器設計)的複雜度減少而沒有對於編碼效率的影響。確實,利用此實施例,針對合併指標最少僅需要1個CABAC狀態而非目前VTM合併指標編碼(編碼/解碼)之5個。此外,其減少最差情況複雜度,因為其他位元被CABAC旁路編碼,其減少操作之數目(相較於以CABAC編碼所有位元)。
第十五實施例
在數個前述實施例中,背景變數具有多於2個值,例如三個值0、1及2。然而,為了減少複雜度,並減少待處置的狀態數,有可能限制允許的背景變數值上限於2(例如,0及1)。此可(例如)藉由將具有值2之任何初始背景變數改變至1來完成。實際上,此簡化對於編碼效率不具或僅具有限的影響。
實施例與其他實施例之結合
前述實施例之任何二或更多者可被結合。
先前描述已集中於合併指標之編碼及解碼。例如,第一實施例涉及:產生包括ATMVP候選者的合併候選者之列表(針對傳統合併模式或傳統合併跳躍模式,亦即,非仿射合併模式或非仿射合併跳躍模式);選擇該列表中的合併候選者之一;及使用CABAC編碼以產生該選定合併候選者之一合併指標,該合併指標之一或更多位元被旁路CABAC編碼。原則上,本發明可應用於除了合併模式以外的模式(例如,仿射合併模式),其涉及:產生移動資訊預測子候選者之列表(例如,仿射合併候選者或移動向量預測子(MVP)候選者之列表);選擇該列表中的該等移動資訊預測子候選者(例如,MVP候選者)之一;及產生該列表中的該選定移動資訊預測子候選者之識別符或指標(例如,用以預測目前區塊之移動向量的選定仿射合併候選者或選定MVP候選者)。因此,本發明不限於合併模式(亦即,傳統合併模式及傳統合併跳躍模式),且待編碼或解碼之該指標不限於合併指標。例如,在VVC之開發中,可想到:前述實施例之技術可被應用於(或延伸至)除了該等合併模式以外之模式,諸如HEVC之AMVP模式或VVC中之其同等模式或仿射合併模式。後附申請專利範圍應被依此解讀。
如上所討論,在前述實施例中,仿射合併模式(仿射合併或仿射合併跳躍模式)之一或更多移動資訊候選者(例如,移動向量)及/或一或更多仿射參數被獲得自第一相鄰區塊,其係於空間相鄰區塊(例如,在位置A1、B1、B0、A0、B2上)或時間關聯區塊(例如,具有共置區塊之「中心」區塊或其空間鄰居(諸如「H」))之間被仿射編碼。這些位置被描繪在圖6a及6b中。為了致能介於目前區塊(或其目前正被編碼/解碼之樣本/像素值的群組,例如,目前CU)與相鄰區塊(空間地相鄰於或時間地關聯於目前區塊)之間的一或更多移動資訊及/或仿射參數之此獲得(例如,導出或共用或「合併」),一或更多仿射合併候選者被加至合併候選者(亦即,傳統合併模式候選者)之列表以使得當該選定合併候選者(其接著係使用合併指標來告知,例如使用於HEVC之諸如「merge_idx」的語法元素或者其功能上同等的語法元素)為仿射合併候選者時,該目前CU/區塊係使用具有仿射合併候選者之仿射合併模式而被編碼/解碼。
如上所述,用於獲得(例如,導出或共用)仿射合併模式及/或仿射參數之一或更多移動資訊的此等一或更多仿射合併候選者亦可使用仿射合併候選者之分離列表(或集)而被告知(其可相同或不同於用於傳統合併模式的合併候選者之列表)。
依據本發明之實施例,當前述實施例之技術被應用於仿射合併模式時,仿射合併候選者之列表可使用如傳統合併模式之移動向量導出程序的相同技術來產生,如圖8中所示(以及相關於圖8所描述)、或者如圖13中所示(以及相關於圖13所描述)之合併候選者導出程序。共用相同技術以產生/編譯仿射合併候選者之此列表(針對仿射合併模式或仿射合併跳躍模式)以及合併候選者之列表(針對傳統合併模式或傳統合併跳躍模式)的優點是編碼/解碼程序中之複雜度的減少,當與具有分離的技術相比時。
依據另一實施例,以下相關於圖24所示之一分離的技術可被使用以產生/編譯仿射合併候選者之列表。
圖24為繪示仿射合併模式(仿射合併模式及仿射合併跳躍模式)之仿射合併候選者導出程序的流程圖。在該導出程序之第一步驟中,五個區塊位置被考量(2401至2405)以供獲得/導出空間仿射合併候選者2413。這些位置為圖6a(及圖6b)中所描繪之空間位置,參考編號A1、B1、B0、A0、及B2。在以下步驟中,空間移動向量之可用性被檢查並判定其與各位置A1、B1、B0、A0、及B2相關聯的間模式編碼區塊之各者是否被編碼以仿射模式(例如,使用仿射合併、仿射合併跳躍或仿射AMVP模式之任一者)(2410)。最多五個移動向量(亦即,空間仿射合併候選者)被選擇/獲得/導出。預測子被視為可用的,假如其存在的話(例如,有用以獲得/導出與該位置相關聯的移動向量之資訊)以及假如該區塊未被INTRA編碼的話以及假如該區塊是仿射的話(亦即,使用仿射模式而被編碼)。
接著仿射移動資訊係針對各可用區塊位置(2410)而被導出/獲得(2411)。此導出係根據區塊位置之仿射模型(及相關於圖11(a)及11(b)而討論之其仿射模型參數,舉例而言)而被履行於目前區塊。接著修剪程序(2412)被應用以移除其提供如另一先前已加至該列表之相同的仿射移動補償(或者其具有相同的仿射模型參數)之候選者。
在此階段之結束時,空間仿射合併候選者之列表包含高達五個候選者。
假如候選者之數目(
Nb_Cand
)絕對地少(2426)於候選者之最大數目(於此,
Max_Cand
為被告知在位元流切片標頭中之值且針對仿射合併模式是等於五,但可根據實施方式而為不同的/可變的)。
接著已建構仿射合併候選者(亦即,其被產生以提供一些多樣性並且接近目標數目之額外仿射合併候選者,其係扮演如HEVC中之已結合雙預測性合併候選者的類似角色,舉例而言)被產生(2428)。這些已建構仿射合併候選者係基於與目前區塊之相鄰空間及時間位置相關聯的移動向量。首先,控制點被界定(2418、2419、2420、2421)以產生用於產生仿射模型之移動資訊。這些控制點之兩個係相應於圖11(a)及11(b)之
v0
及
v1
,舉例而言。這四個控制點係相應於目前區塊之四個角落。
控制點左上(2418)的移動資訊被獲得自(例如,藉由使其等於)在位置B2(2405)上之區塊位置的移動資訊,假如其存在且假如此區塊被編碼以INTER模式(2414)的話。否則,控制點左上(2418)的移動資訊被獲得自(例如,藉由使其等於)在位置B3(2406)上之區塊位置的移動資訊(如圖6b中所示),假如其存在且假如此區塊被編碼以INTER模式(2414)的話;而假如非此情況的話,則控制點左上(2418)的移動資訊被獲得自(例如,等於)在位置A2(2407)上之區塊位置的移動資訊(如圖6b中所示),假如其存在且假如此區塊被編碼以INTER模式(2414)的話。當無區塊可用於此控制點時,其被視為不可用的(非可用的)。
控制點右上(2419)的移動資訊被獲得自(例如,等於)在位置B1(2402)上之區塊位置的移動資訊,假如其存在且假如此區塊被編碼以INTER模式(2415)的話。否則,控制點右上(2419)的移動資訊被獲得自(例如,等於)在位置B0(2403)上之區塊位置的移動資訊,假如其存在且假如此區塊被編碼以INTER模式(2415)的話。當無區塊可用於此控制點時,其被視為不可用的(非可用的)。
控制點左下(2420)的移動資訊被獲得自(例如,等於)在位置A1(2401)上之區塊位置的移動資訊,假如其存在且假如此區塊被編碼以INTER模式(2416)的話。否則,控制點左下(2420)的移動資訊被獲得自(例如,等於)在位置A0(2404)上之區塊位置的移動資訊,假如其存在且假如此區塊被編碼以INTER模式(2416)的話。當無區塊可用於此控制點時,其被視為不可用的(非可用的)。
控制點右下(2421)的移動資訊被獲得自(例如,等於)時間候選者的移動資訊,例如,在位置H(2408)上之共置區塊位置(如圖6a中所示),假如其存在且假如此區塊被編碼以INTER模式(2417)的話。當無區塊可用於此控制點時,其被視為不可用的(非可用的)。
基於這些控制點,高達10個已建構仿射合併候選者可被產生(2428)。這些候選者係基於具有4、3或2個控制點之仿射模型而被產生。例如,第一已建構仿射合併候選者可使用4個控制點來產生。接著4個後續已建構仿射合併候選者為4個可能性,其可使用3個控制點之4個不同集來產生(亦即,含有4個可用控制點中之3個的集之4個不同的可能組合)。接著其他的已建構仿射合併候選者為使用2個控制點之不同集所產生的那些(亦即,含有4個控制點中之2個的集之不同的可能組合)。
假如在加入這些額外(已建構)仿射合併候選者後候選者之數目(
Nb_Cand
)仍維持絕對地少(2430)於候選者之最大數目(
Max_Cand
)的話,則諸如零移動向量候選者(或甚至可用處的已結合雙預測性合併候選者)之其他額外虛擬移動向量候選者被加入/產生(2432)直到仿射合併候選者之列表中的候選者之數目到達目標數目(例如,候選者之最大數目)。
在此程序之結束時,仿射合併模式候選者之列表或集(亦即,仿射合併模式之候選者的列表或集,該模式為仿射合併模式及仿射合併跳躍模式)被產生/建立(2434)。如圖24中所示,仿射合併(移動向量預測子)候選者之列表或集被建立/產生(2434)自空間候選者之子集(2401至2407)以及時間候選者(2408)。應理解:依據本發明之實施例,具有用以檢查可用性之不同順序的其他仿射合併候選者導出程序、修剪程序、或潛在候選者之數目/類型(例如,ATMVP候選者亦可被加入,以如圖13或圖16中之合併候選者列表導出程序的類似方式)亦可被用以產生仿射合併候選者之列表/集。
以下實施例係繪示仿射合併候選者之列表(或集)可如何被使用以告知(例如,編碼或解碼)選定的仿射合併候選者(其可使用一用於合併模式之合併指標或者一特別用於仿射合併模式之分離的仿射合併指標而被告知)。
在以下實施例中:MERGE模式(亦即,除了稍後定義的AFFINE MERGE模式之外的合併模式,換言之傳統非仿射合併模式或傳統非仿射合併跳躍模式)是合併模式的一種類型,其中空間相鄰或時間關聯區塊之任一者的移動資訊被獲得給(或導出給或共用與)目前區塊;MERGE模式預測子候選者(亦即,合併候選者)是關於一或更多空間相鄰或時間關聯區塊之資訊,目前區塊可從該資訊獲得/導出MERGE模式中之移動資訊;MERGE模式預測子是選定的MERGE模式預測子候選者,其資訊被使用在當在MERGE模式(例如,編碼或解碼)程序中預測目前區塊之移動資訊以及告知期間一指標(例如,MERGE指標)(該指標係從MERGE模式預測子候選者之列表(或集)識別該MERGE模式預測子)被告知時;AFFINE MERGE模式是合併模式的一種類型,其中空間相鄰或時間關聯區塊之任一者的移動資訊被獲得給(或導出給或共用與)目前區塊以使得目前區塊之仿射模式處理(或仿射移動模型處理)的移動資訊及/或仿射參數可利用此獲得的/導出的/共用的移動資訊;AFFINE MERGE模式預測子候選者(亦即,仿射合併候選者)是關於一或更多空間相鄰或時間關聯區塊之資訊,目前區塊可從該資訊獲得/導出AFFINE MERGE模式中之移動資訊;及AFFINE MERGE模式預測子是選定的AFFINE MERGE模式預測子候選者,其資訊可使用於仿射移動模型中,在當在AFFINE MERGE模式(例如,編碼或解碼)程序中預測目前區塊之移動資訊以及告知期間一指標(例如,AFFINE MERGE指標)(該指標係從AFFINE MERGE模式預測子候選者之列表(或集)識別該AFFINE MERGE模式預測子)被告知時。應理解:在以下實施例中,AFFINE MERGE模式是一種合併模式,該模式具有用以從候選者之列表/集(亦已知為「仿射合併列表」或「子區塊合併列表」)識別一個AFFINE MERGE模式預測子候選者的其本身AFFINE MERGE指標(其為變數的識別符),相反於具有與其相關聯的單一指標值,其中AFFINE MERGE指標被告知以識別該特定AFFINE MERGE模式預測子候選者。
應理解:在以下實施例中,「MERGE模式」係指稱HEVC/JEM/VTM中之傳統合併模式或傳統合併跳躍模式或任何功能上同等的模式之任一者,前提是移動資訊之此獲得(例如,導出或共用)及合併指標之告知(如上所述者)被使用於該模式中的話。「AFFINE MERGE模式」亦指稱仿射合併模式或仿射合併跳躍模式之任一者(假如存在且使用此獲得/導出的話)或者任何其他功能上同等的模式,前提是相同特徵被使用於該模式中的話。
第十六實施例
在第十六實施例中,用以從AFFINE MERGE候選者之列表識別AFFINE MERGE模式預測子(候選者)的移動資訊預測子指標係使用CABAC編碼而被告知,其中移動資訊預測指標之一或更多位元被旁路CABAC編碼。
依據該實施例之第一變體,在編碼器上,AFFINE MERGE模式之移動資訊預測子指標係藉由以下方式而被編碼:產生移動資訊預測子候選者之一列表;選擇該列表中的該等移動資訊預測子候選者之一為一AFFINE MERGE模式預測子;及使用CABAC編碼以產生該選定移動資訊預測子候選者之一移動資訊預測子指標,該移動資訊預測子指標之一或更多位元被旁路CABAC編碼。指示此選定移動資訊預測子候選者之指標的資料被接著包括在位元流中。解碼器接著(從包括此資料之位元流)藉由以下方式以解碼AFFINE MERGE模式之移動資訊預測子指標:產生移動資訊預測子候選者之一列表;使用CABAC解碼以解碼該移動資訊預測子指標,該移動資訊預測子指標之一或更多位元被旁路CABAC解碼;及當該AFFINE MERGE模式被使用時,使用該已解碼移動資訊預測子指標以識別該列表中的該等移動資訊預測子候選者之一為一AFFINE MERGE模式預測子。
依據第一變體之進一步變體,該列表中的移動資訊預測子候選者之一亦可選擇為MERGE模式候選者在當MERGE模式被使用時,以使得當MERGE模式被使用時,解碼器可使用已解碼移動資訊預測子指標(例如,MERGE指標)來識別該列表中的移動資訊預測子候選者之一為MERGE模式預測子。於此進一步變體中,AFFINE MERGE指標被用以告知AFFINE MERGE模式預測子(候選者),而AFFINE MERGE指標告知係使用一種類似於依據第一至第十五實施例之任一者的MERGE指標告知或者目前VTM或HEVC中所使用的MERGE指標告知之指標告知來實施。
於此變體中,當MERGE模式被使用時,MERGE指標可告知使用依據第一至第十五實施例之任一者的MERGE指標告知或者目前VTM或HEVC中所使用的MERGE指標告知來實施。於此變體中,AFFINE MERGE指標告知及MERGE指標告知可使用不同的指標告知方案。此變體之優點在於其藉由使用針對AFFINE MERGE模式及MERGE模式兩者之有效率的指標編碼/告知而達成較佳的編碼效率。再者,於此變體中,分離的語法元素可被用於MERGE指標(諸如HEVC中之「Merge idx[ ][ ]或其功能上同等物」)及AFFINE MERGE指標(諸如「A_Merge_idx[ ][ ]」)。此致能MERGE指標及AFFINE MERGE指標被獨立地告知(編碼/解碼)。
依據又另一進一步變體,當MERGE模式被使用且該列表中的移動資訊預測子候選者之一亦可選擇為MERGE模式預測子時,CABAC編碼係使用相同的背景變數於針對兩模式之目前區塊的移動資訊預測子指標(例如,MERGE指標或AFFINE MERGE指標)之至少一位元,亦即,當AFFINE MERGE模式被使用時以及當MERGE模式被使用時,以使得AFFINE MERGE指標及MERGE指標之至少一位元係共用相同的背景變數。解碼器接著(當MERGE模式被使用時)使用已解碼移動資訊預測子指標以識別該列表中的移動資訊預測子候選者之一為MERGE模式預測子,其中CABAC解碼係使用相同的背景變數於針對兩模式之目前區塊的移動資訊預測子指標之至少一位元,亦即,當AFFINE MERGE模式被使用時以及當MERGE模式被使用時。
依據該實施例之第二變體,在編碼器上,移動資訊預測子指標係藉由以下方式而被編碼:產生移動資訊預測子候選者之一列表;當一AFFINE MERGE模式被使用時,選擇該列表中的該等移動資訊預測子候選者之一為一AFFINE MERGE模式預測子;當一MERGE模式被使用時,選擇該列表中的該等移動資訊預測子候選者之一為一MERGE模式預測子;及使用CABAC編碼以產生該選定移動資訊預測子候選者之一移動資訊預測子指標,該移動資訊預測子指標之一或更多位元被旁路CABAC編碼。指示此選定移動資訊預測子候選者之指標的資料被接著包括在位元流中。解碼器接著(從該位元流)藉由以下方式以解碼該移動資訊預測子指標:產生移動資訊預測子候選者之一列表;使用CABAC解碼以解碼該移動資訊預測子指標,該移動資訊預測子指標之一或更多位元被旁路CABAC解碼;當該AFFINE MERGE模式被使用時,使用該已解碼移動資訊預測子指標以識別該列表中的該等移動資訊預測子候選者之一為該AFFINE MERGE模式預測子;及當該MERGE模式被使用時,使用該已解碼移動資訊預測子指標以識別該列表中的該等移動資訊預測子候選者之一為該MERGE模式預測子。
依據第二變體之進一步變體,AFFINE MERGE指標告知與MERGE指標告知係使用依據第一至第十五實施例之任一者的相同指標告知方案或者目前VTM或HEVC中所使用的MERGE指標告知。此進一步變體之優點是在實施期間的簡單設計,其亦可導致較少的複雜度。於此變體中,當該AFFINE MERGE模式被使用時,該編碼器之該CABAC編碼包含使用一目前區塊之該移動資訊預測子指標(AFFINE MERGE指標)的至少一位元之一背景變數,該背景變數係與當MERGE模式被使用時之該移動資訊預測子指標(MERGE指標)的該至少一位元之另一背景變數分離;而用以指示該AFFINE MERGE模式之使用的資料被包括在一位元流中以使得該AFFINE MERGE模式及該MERGE模式之該等背景變數可針對CABAC解碼程序而被分辨(不同地識別)。該解碼器接著獲得(從該位元流)用以指示一位元流中之該AFFINE MERGE模式的使用之資料;且當該AFFINE MERGE模式被使用時,該CABAC解碼係使用此資料以分辨於該AFFINE MERGE指標與該MERGE指標的該等背景變數之間。再者,在該解碼器上,用以指示該AFFINE MERGE模式之使用的該資料亦可被用以產生AFFINE MERGE模式預測子候選者之一列表(或集),當該獲得的資料指示該AFFINE MERGE模式之使用時;或者產生MERGE模式預測子候選者之一列表(或集),當該獲得的資料指示該MERGE模式之使用時。
此變體致能該MERGE指標及該AFFINE MERGE指標兩者使用相同的指標告知方案來被告知,而該MERGE指標及該AFFINE MERGE指標仍彼此獨立地被編碼/解碼(例如,藉由使用分離的背景變數)。
使用相同指標告知方案的一種方式是使用相同的語法元素於該AFFINE MERGE指標及該MERGE指標兩者,亦即,該選定移動資訊預測子候選者之該移動資訊預測子指標係使用針對兩情況之相同語法元素而被編碼,當該AFFINE MERGE模式被使用時以及當該MERGE模式被使用時。接著在該解碼器上,該移動資訊預測子指標係藉由從該位元流剖析該相同語法元素而被解碼,無論該目前區塊係使用該AFFINE MERGE模式或該MERGE模式而被編碼(以及被解碼)。
圖22繪示相關於一編碼模式(亦即,相同指標告知方案)之一些語法元素的部分解碼程序,依據第十六實施例的此變體。此圖形繪示具有相同指標告知方案之AFFINE MERGE模式(2257:是)的AFFINE MERGE指標(2255-「Merge idx Affine」)以及MERGE模式(2257:否)的MERGE指標(2258-「Merge idx」)之告知。應理解:在一些變體中,AFFINE MERGE候選者列表可包括ATMVP候選者,如於目前VTM之合併候選者列表中。AFFINE MERGE指標之編碼係類似於針對MERGE模式的MERGE指標之編碼,如圖10(a)及圖10(b)中所示。在一些變體中,即使AFFINE MERGE候選者導出並未界定ATMVP合併候選者,AFFINE MERGE指標仍被編碼如圖10(b)中所述,當ATMVP係針對具有最多5個其他候選者(亦即,總共6個候選者)之MERGE模式而被致能時,以使得AFFINE MERGE候選者列表中之候選者的最大數目係吻合MERGE候選者列表中之候選者的最大數目。因此,AFFINE MERGE指標之各位元具有其本身的背景。用於MERGE指標告知之位元的所有背景變數係獨立於用於AFFINE MERGE指標告知之位元的背景變數。
依據進一步變體,由MERGE指標與AFFINE MERGE指標告知所共用的此相同指標告知方案係使用CABAC編碼於僅第一二元上,如在第一實施例中。亦即,除了該移動資訊預測子指標之一第一位元以外的所有位元被旁路CABAC編碼。於第十六實施例之此進一步變體中,當ATMVP被包括為MERGE候選者之列表或AFFINE MERGE候選者之列表之一中的候選者時(例如,當ATMVP被致能在SPS階時),各指標(亦即,MERGE指標或AFFINE MERGE指標)之編碼被修改以使得該指標之僅第一位元係使用如圖14中所示之單一背景變數而被編碼。此單一背景被設定以如目前VTM參考軟體中之相同方式,當ATMVP不被致能在SPS階時。其他位元(從第2至第5位元或第4位元(假如該列表中僅有5個候選者的話))被旁路編碼。當ATMVP不被包括為MERGE候選者之列表中的候選者時(例如,當ATMVP被除能在SPS階時),有5個MERGE候選者及5個AFFINE MERGE候選者可供使用。僅有MERGE模式之MERGE指標的第一位元使用第一單一背景變數而被CABAC所編碼。且僅有AFFINE MERGE模式之AFFINE MERGE指標的第一位元使用第二單一背景變數而被CABAC所編碼。這些第一及第二背景變數係以如目前VTM參考軟體中之相同方式被設定,當ATMVP不被致能在SPS階(針對MERGE指標及AFFINE MERGE指標兩者)時。其他位元(從第2至第4位元)被旁路解碼。
解碼器產生如編碼器之MERGE候選者的相同列表以及AFFINE MERGE候選者的相同列表。此係藉由使用圖22之方法來完成。雖然相同的指標告知方案被用於MERGE模式及AFFINE MERGE模式兩者,但仿射旗標(2256)被用以判定其目前被解碼的資料係針對MERGE指標或是AFFINE MERGE指標以使得第一及第二背景變數針對CABAC解碼程序是彼此可分離的(或可分辨的)。亦即,仿射旗標(2256)被使用在指標解碼程序期間(亦即,被使用在步驟2257)以判定是解碼「merge idx 2258」或是「merge idx Affine 2255」。當ATMVP不被包括為MERGE候選者之列表中的候選者時(例如,當ATMVP被除能在SPS階時),則針對候選者之兩列表(針對MERGE模式及AFFINE MERGE模式)有5個MERGE候選者。僅有MERGE指標之第一位元使用第一單一背景變數而被CABAC所解碼。且僅有AFFINE MERGE指標之第一位元使用第二單一背景變數而被CABAC所解碼。所有其他位元(從第2至第4位元)被旁路解碼。相反於目前參考軟體,當ATMVP被包括為MERGE候選者之列表中之候選者時(例如,當ATMVP被致能在SPS階時),僅有MERGE指標之第一位元使用在MERGE指標之解碼中的第一單一背景變數以及使用在AFFINE MERGE指標之解碼中的第二單一背景變數而被CABAC所解碼。其他位元(從第2至第5位元或第4位元)被旁路解碼。已解碼指標被接著用以識別由編碼器從候選者(亦即,MERGE候選者或AFFINE MERGE候選者)之相應列表所選擇的候選者。
此變體之優點是其針對MERGE指標及AFFINE MERGE指標兩者之相同指標告知方案的使用導致用以實施這兩個不同模式之指標解碼及解碼器設計(和編碼器設計)的複雜度減少,而沒有對於編碼效率之顯著影響。確實,利用此變數,僅需要2個CABAC狀態(針對第一及第二單一背景變數之各者各一個)以供指標告知,而非9或10個,其將是假如MERGE指標之所有位元以及AFFINE MERGE指標之所有位元被CABAC編碼/解碼的情況。此外,其減少最差情況複雜度,因為所有其他位元(除了第一位元之外)被CABAC旁路編碼,其減少CABAC編碼/解碼程序期間所需的操作之數目(相較於以CABAC編碼所有位元)。
依據又另一進一步變體,該CABAC編碼或解碼使用一目前區塊之該移動資訊預測子指標的至少一位元之相同背景變數,針對當該AFFINE MERGE模式被使用時以及當該MERGE模式被使用時兩者。於此進一步變體中,用於MERGE指標之第一位元及AFFINE MERGE指標之第一位元的背景變數係獨立於哪個指標正被編碼或解碼,亦即,第一及第二單一背景變數(來自先前變體)不是可分辨的/可分離的並為該一個且相同的單一背景變數。因此相反於先前變體,MERGE指標及AFFINE MERGE指標在CABAC程序期間共用一個背景變數。如圖23中所示,指標告知方案針對MERGE指標及AFFINE MERGE指標兩者是相同的,亦即,針對兩模式僅一類型指標「Merge idx(2308)」被編碼或解碼。就CABAC解碼器而言,相同語法元素被用於MERGE指標及AFFINE MERGE指標兩者,且當考量背景變數時無須分辨該等指標。因此無須使用仿射旗標(2306)以判定目前區塊是否被編碼(以被解碼)於AFFINE MERGE模式,如圖22之步驟(2257)中,且在圖23中之步驟2306後沒有分支,因為僅有一個指標(「merge idx」)需要解碼。該仿射旗標被用以履行具有AFFINE MERGE模式之移動資訊預測,亦即,在CABAC解碼器已解碼該指標(「merge idx」)後之預測程序期間。此外,此指標(亦即,MERGE指標及AFFINE MERGE指標)之僅第一位元係使用一個單一背景來被CABAC所編碼,而其他位元被旁路編碼,如針對第一實施例所述。因此於此進一步變體中,針對MERGE指標及AFFINE MERGE指標之第一位元的一個背景變數係由MERGE指標及AFFINE MERGE指標告知兩者所共用。假如候選者之列表的大小針對MERGE指標及AFFINE MERGE指標為不同的,則用以告知各情況之相關指標的位元之最大數目可亦為不同的,亦即,其係彼此獨立的。因此,已旁路編碼位元之數目可因此被調適(假如需要的話),依據仿射旗標(2306)之值,例如用以致能來自該位元流之相關指標的資料之剖析。
此變體之優點是MERGE指標和AFFINE MERGE指標解碼程序以及解碼器設計(和編碼器設計)的複雜度減少,而沒有對於編碼效率之顯著影響。確實,利用此進一步變體,當告知MERGE指標及AFFINE MERGE指標兩者時僅需要1個CABAC狀態,而非先前變體的或9或10個CABAC狀態。此外,其減少最差情況複雜度,因為所有其他位元(除了第一位元之外)被CABAC旁路編碼,其減少CABAC編碼/解碼程序期間所需的操作之數目(相較於以CABAC編碼所有位元)。
在此實施例之前述變體中,AFFINE MERGE指標告知及MERGE指標告知可共用一或更多背景,如第一至第十五實施例之任一者中所述。此之優點是複雜度減少,其係來自用以編碼或解碼這些指標所需之背景數目的減少。
在此實施例之前述變體中,移動資訊預測子候選者包含用以獲得(或導出)以下之一或更多者的資訊:方向、列表之識別、參考框指標、及移動向量。最好是移動資訊預測子候選者包含用以獲得移動向量預測子候選者之資訊。在較佳變體中,移動資訊預測子指標(例如,AFFINE MERGE指標)被用以告知AFFINE MERGE模式預測子候選者,而AFFINE MERGE指標告知係使用一種類似於依據第一至第十五實施例之任一者的MERGE指標告知或者目前VTM或HEVC中所使用的MERGE指標告知之指標告知來實施(以AFFINE MERGE模式之移動資訊預測子候選者為MERGE候選者)。
在此實施例之前述變體中,移動資訊預測子候選者之已產生列表包括ATMVP候選者,如在第一實施例中或者如在其他前述第二至第十五實施例之一些的變體中。替代地,移動資訊預測子候選者之該已產生列表不包括該ATMVP候選者。
在此實施例之前述變體中,可包括在MERGE指標及AFFINE MERGE指標之候選者的列表中之候選者的最大數目是固定的。可包括在MERGE指標及AFFINE MERGE指標之候選者的列表中之候選者的最大數目可為相同的。用以判定(或指示)可包括在移動資訊預測子候選者之已產生列表中的移動資訊預測子候選者之最大數目(或目標數目)係由編碼器所包括在位元流中,而解碼器係從該位元流獲得用以判定可包括在移動資訊預測子候選者之已產生列表中的移動資訊預測子候選者之最大數目(或目標數目)的資料。如此致能從該位元流剖析用以解碼MERGE指標或AFFINE MERGE指標之資料。用以判定(或指示)該最大數目(或目標數目)之此資料可為當解碼時其本身的最大數目(或目標數目),或者其可致能解碼器配合其他參數/語法元素(例如,HEVC中所使用的「five_minus_max_num_
merge_cand」或「MaxNumMergeCand-1」或者其功能上同等的參數)來判定此最大/目標數目。
替代地,假如針對MERGE指標及AFFINE MERGE指標的候選者之列表中的候選者之最大數目(或目標數目)可改變或可為不同的(例如,因為ATMVP候選者或任何其他選擇性候選者之使用可針對一個列表而非針對其他列表被致能或除能,或者因為該等列表使用不同候選者列表產生/導出程序),則當AFFINE MERGE模式被使用時以及單MERGE模式被使用時可包括在移動資訊預測子候選者之已產生列表中的移動資訊預測子候選者之最大數目(或目標數目)為可分離判定的,且編碼器包括(在該位元流中)用以判定最大數目/目標數目之資料。解碼器接著從該位元流獲得用以判定最大/目標數目之資料、並使用該已獲得資料來剖析或解碼移動資訊預測子指標。仿射旗標可接著被用以於MERGE指標與AFFINE MERGE指標的剖析或解碼之間切換,舉例而言。
本發明之實施例的實施方式
前述實施例之一或更多者係藉由以下來實施:圖3中之處理裝置300的處理器311、或者圖4中之編碼器400、圖5中之解碼器60、圖17中之CABAC編碼器或其相應CABAC解碼器的相應功能性模組/單元,其係履行一或更多前述實施例的方法步驟。
圖19為一用於實施本發明之一或更多實施例的計算裝置1300之概略方塊圖。計算裝置1300可為一種裝置,諸如微電腦、工作站或輕型可攜式裝置。計算裝置1300包含一連接至以下的通訊匯流排:-中央處理單元(CPU)2001,諸如微處理器;-隨機存取記憶體(RAM)2002,用以儲存本發明之實施例的方法之可執行碼、以及暫存器,調適成記錄用以實施方法所需的變數和參數,該方法係依據本發明之實施例以編碼或解碼影像之至少部分,其記憶體容量可藉由一連接至(例如)擴充埠之選擇性RAM來擴充;-唯讀記憶體(ROM)2003,用以儲存供實施本發明之實施例的電腦程式;-網路介面(NET)2004,通常連接至通訊網路,待處理數位資料係透過該網路介面來傳輸或接收。網路介面(NET)2004可為單一網路介面,或者由不同網路介面之集所組成(例如有線及無線介面、或者不同種類的有線或無線介面)。資料封包被寫入至網路介面以供傳輸或者從網路介面讀取以供接收,在CPU 2001中所運行之軟體應用程式的控制下;-使用者介面(UI)2005可用於從使用者接收輸入或者用以顯示資訊給使用者;-硬碟(HD)2006,可被提供為大量儲存裝置;-輸入/輸出模組(IO)2007可用於接收/傳送資料自/至外部裝置,諸如視頻來源或顯示器。可執行碼可被儲存於ROM 2003中、於HD 2006上或者於可移除數位媒體(諸如,例如碟片)上。依據變體,程式之可執行碼可藉由通訊網路來接收,經由NET 2004,以儲存於通訊裝置1300的儲存機構(諸如HD 2006)之一中,在執行之前。CPU 2001係調適成依據本發明之實施例以控制並指導程式或多數程式之指令或軟體碼部分的執行,該些指令係儲存於前述儲存機構之一中。在開機之後,CPU 2001能夠執行相關於軟體應用程式之來自主RAM記憶體2002的指令,在那些指令已從(例如)程式ROM 2003或HD 2006載入之後。此一軟體應用程式(當由CPU 2001所執行時)係致使依據本發明之方法的步驟被履行。
亦應理解:依據本發明之另一實施例,一種依據前述實施例之解碼器被提供於使用者終端,諸如電腦、行動電話(蜂巢式電話)、平板或任何其他類型的裝置(例如,顯示設備),其能夠提供/顯示內容給使用者。依據又另一實施例,一種依據前述實施例之編碼器被提供於一種影像擷取設備,其亦包含相機、視頻相機或網路相機(例如,閉路電視或視頻監視相機),其係擷取並提供內容給編碼器來編碼。兩個此類範例係參考圖20及21而被提供於下。
圖20為一圖形,其繪示網路相機系統2100,包括網路相機2102及客戶設備2104。
網路相機2102包括成像單元2106、編碼單元2108、通訊單元2110、及控制單元2112。
網路相機2102與客戶設備2104被相互連接以能夠經由網路200而彼此通訊。
成像單元2106包括透鏡及影像感測器(例如,電荷耦合裝置(CCD)或互補金氧半導體(CMOS)),並擷取物件之影像且根據該影像以產生影像資料。此影像可為靜止影像或視頻影像。成像單元亦可包含調焦機構及/或平移機構,其係調適成個別地調焦或平移(光學地或數位地)。
編碼單元2108係藉由使用第一至第十六實施例中所解釋的該編碼方法以編碼影像資料。編碼單元2108使用第一至第十六實施例中所解釋的編碼方法之至少一者。針對另一例子,編碼單元2108可使用第一至第十六實施例中所解釋的編碼方法之組合。
網路相機2102之通訊單元2110將其由編碼單元2108所編碼的已編碼影像資料傳輸至客戶設備2104。
再者,通訊單元2110從客戶設備2104接收命令。該等命令包括用以設定編碼單元2108之編碼的參數之命令。
控制單元2112依據由通訊單元2110所接收的命令以控制網路相機2102中之其他單元。
客戶設備2104包括通訊單元2114、解碼單元2116、及控制單元2118。
客戶設備2104之通訊單元2114傳輸命令至網路相機2102。
再者,客戶設備2104之通訊單元2114從網路相機2102接收已編碼影像資料。
解碼單元2116係藉由使用第一至第十六實施例之任一者中所解釋的該解碼方法以解碼該已編碼影像資料。針對另一例子,解碼單元2116可使用第一至第十六實施例中所解釋的解碼方法之組合。
客戶設備2104之控制單元2118依據由通訊單元2114所接收的使用者操作或命令以控制客戶設備2104中之其他單元。
客戶設備2104之控制單元2118控制顯示設備2120以顯示由解碼單元2116所解碼的影像。
客戶設備2104之控制單元2118亦控制顯示設備2120以顯示GUI(圖形使用者介面)來指定用於網路相機2102之參數的值,包括用於編碼單元2108之編碼的參數。
客戶設備2104之控制單元2118亦依據由顯示設備2120所顯示之輸入至GUI的使用者操作以控制客戶設備2104中之其他單元。
客戶設備2104之控制單元2118依據由顯示設備2120所顯示之輸入至GUI的使用者操作控制客戶設備2104之通訊單元2114以傳輸命令至網路相機2102,其指定用於網路相機2102之參數的值。
網路相機系統2100可判定相機2102在視頻之記錄期間是利用調焦或是平移,而此等資訊可被使用在當編碼視頻流時,因為在拍攝期間之調焦和平移可受益自仿射模式之使用,該仿射模式極適於編碼諸如調焦、旋轉及/或伸展(其可為平移之副效應,特別假如鏡頭是「魚眼」鏡頭的話)之複雜移動。
圖21為繪示智慧型手機2200之圖形。
智慧型手機2200包括通訊單元2202、解碼/編碼單元2204、控制單元2206、及顯示單元2208。
通訊單元2202經由網路200以接收已編碼影像資料。
解碼單元2204解碼其由通訊單元2202所接收的已編碼影像資料。
解碼單元2204係藉由使用第一至第十六實施例中所解釋的該解碼方法以解碼該已編碼影像資料。解碼單元2204可使用第一至第十六實施例中所解釋的解碼方法之至少一者。針對另一例子,解碼/編碼單元2204可使用第一至第十六實施例中所解釋的解碼方法之組合。
控制單元2206依據由通訊單元2202所接收的使用者操作或命令以控制智慧型手機2200中之其他單元。
例如,控制單元2206控制顯示設備2208以顯示由解碼單元2204所解碼的影像。
智慧型手機可進一步包含影像記錄裝置2210(例如數位相機及相關電路)以記錄影像或視頻。此等已記錄影像或視頻可由解碼/編碼單元2204所編碼,在控制單元2206之指示下。
智慧型手機可進一步包含感測器2212,其被調適以感測行動裝置之定向。此等感測器可包括加速計、迴轉儀、羅盤、全球定位(GPS)單元或類似位置感測器。此等感測器2212可判定智慧型手機是否改變定向且此等資訊可被使用在當編碼視頻流時,因為在拍攝期間之定向的改變可受益自仿射模式之使用,該仿射模式極適於編碼諸如旋轉之複雜移動。
替代物及修改
應理解:本發明之目的係確保其仿射模式被利用以最有效率的方式,且以上所討論的某些範例係相關於告知仿射模式之使用,根據可使用的仿射模式之察覺到的可能性。此之進一步範例可應用於編碼器,當已知其複雜移動(其中仿射變換可為特別有效率的)正被編碼時。此等情況之範例包括:
a)相機放大/縮小
b)可攜式相機(例如,行動電話)在拍攝(例如,旋轉移動)期間改變定向
c)「魚眼」鏡頭相機平移(例如,影像之部分的伸展/變形
如此一來,複雜移動之指示在記錄程序期間可被提出以使得仿射模式可被賦予被用於框之切片、序列或(確實)整個視頻流的較高可能性。
在進一步範例中,仿射模式可根據用以記錄視頻之裝置的特徵或功能而被賦予被使用的較高可能性。例如,行動裝置可比固定式保全相機更可能改變定向,所以仿射模式可更適於編碼來自前者的視頻。特徵或功能之範例包括:調焦機構之存在/使用、位置感測器之存在/使用平移機構之存在/使用,無論該裝置是否可攜式的、或是該裝置上之使用者選擇。
雖然已參考了實施例來描述本發明,但應理解其本發明不限於所揭露的範例實施例。那些熟悉此技藝人士應理解:可做出各種改變及修改而不背離本發明之範圍,如後附申請專利範圍中所界定者。本說明書(包括任何伴隨的申請專利範圍、摘要及圖式)中所揭露的所有特徵、及/或所揭露的任何方法或程序之步驟,可以任何組合方式結合,除了其中此等特徵及/或步驟之至少部分是互斥的組合以外。本說明書(包括任何伴隨的申請專利範圍、摘要及圖式)中所揭露的各特徵可被取代以替代特徵(其係適用相同的、同等的或類似的目的)除非另外明確地聲明。因此,除非另外明確地聲明,所揭露的各特徵僅為同等或類似特徵之一般序列的一個範例。
亦應理解:上述比較、判定、評估、選擇、執行、履行、或考量之任何結果(例如於編碼或過濾程序期間所做的選擇)可指示於或者可判定/可推理自位元流中之資料(例如指示該結果之旗標或資料),以使得經指示的或經判定/經推理的結果可用於該處理,以取代實際地履行比較、判定、評估、選擇、執行、履行、或考量(例如於解碼程序期間)。
於申請專利範圍中,文字「包含」不排除其他元件或步驟,而不定冠詞「一(a)」或「一(an)」不排除複數。不同特徵在彼此不同的附屬項申請專利範圍中陳述之單純事實並不指示其這些特徵之組合無法被有利地使用。
出現在申請專利範圍中之參考數字僅為繪示且對於申請專利範圍之範圍應無限制性效果。
在前述實施例中,所述之功能可被實施以硬體、軟體、韌體、或其任何組合。假如以軟體來實施,則該等功能可被儲存在或傳輸於(當作一或更多指令或碼)電腦可讀取媒體上且由硬體為基的處理單元所執行。
電腦可讀取媒體可包括電腦可讀取儲存媒體,其係相應於有形媒體(諸如資料儲存媒體)、或通訊媒體(包括其協助從一地點至另一地點之電腦程式的轉移之任何媒體,例如,依據通訊協定)。以此方式,電腦可讀取媒體通常可相應於(1)有形電腦可讀取儲存媒體(其為非暫態)或(2)通訊媒體(諸如信號或載波)。資料儲存媒體可為任何可用的媒體,其可由一或更多電腦一或更多處理器所存取以提取指令、碼及/或資料結構,用以實施本說明書中所描述的技術。電腦程式產品可包括電腦可讀取媒體。
舉例而言(且非限制),此等電腦可讀取儲存媒體可包含RAM、ROM、EEPROM、CD-ROM或其他光碟儲存、磁碟儲存、或其他磁性儲存裝置、快閃記憶體、或任何其他媒體,其可被用以儲存所欲的程式碼(以指令或資料結構之形式)且其可由電腦所存取。同時,任何連接被適當的稱為電腦可讀取媒體。例如,假如指令係使用同軸纜線、光纖纜線、雙絞線、數位用戶線(DSL)、或無線科技(諸如紅外線、無線電、微波)而被傳輸自網站、伺服器、或其他遠端來源,則該等同軸纜線、光纖纜線、雙絞線、DSL、或無線科技(諸如紅外線、無線電、微波)被包括在媒體之定義中。然而,應理解:電腦可讀取儲存媒體及資料儲存媒體不包括連接、載波、信號、或其他暫態媒體,而替代地係有關於非暫態、有形儲存媒體。碟及碟片(如文中所使用)包括光碟(CD)、雷射碟、光學碟片、數位多功能光碟(DVD)、軟碟及藍光碟片,其中碟片通常係磁性地再生資料,而光碟係利用雷射以光學地再生資料。以上之組合應被包括在電腦可讀取媒體之範圍內。
指令可由一或更多處理器所執行,諸如一或更多數位信號處理器(DSP)、通用微處理器、特定應用積體電路(ASIC)、場可編程閘/邏輯陣列(FPGA)、或其他等效的集成或離散邏輯電路。因此,如文中所使用之術語「處理器」可指稱前述結構之任一者或者適於文中所述之技術的實施之任何其他結構。此外,在一些形態中,文中所述之功能可被提供在專屬硬體及/或軟體模組內,其被組態以編碼並解碼、或者併入結合編碼解碼器中。同時,該等技術可被完全地實施在一或更多電路或邏輯元件中,