<address id="pnrlx"></address>

<progress id="pnrlx"><track id="pnrlx"><ol id="pnrlx"></ol></track></progress>

<font id="pnrlx"></font>

<dl id="pnrlx"></dl>

基于變換的圖像編譯方法及其設備與流程

文檔序號:29648732發布日期:2022-04-13 22:17來源:國知局
基于變換的圖像編譯方法及其設備與流程

1.本公開涉及一種圖像編譯技術,并且更具體地,涉及圖像編譯系統中的用于基于變換對圖像進行編譯的方法和設備。


背景技術:

2.如今,在各個領域中對諸如4k、8k或更高的超高清(uhd)圖像/視頻這樣的高分辨率和高質量圖像/視頻的需求已經不斷增長。隨著圖像/視頻數據變成更高分辨率和更高質量,與傳統圖像數據相比,所發送的信息量或比特量增加。因此,當使用諸如傳統有線/無線寬帶線這樣的介質來發送圖像數據或者使用現有存儲介質來存儲圖像/視頻數據時,其傳輸成本和存儲成本增加。
3.另外,如今,對于諸如虛擬現實(vr)和人工現實(ar)內容或全息圖等這樣的沉浸式媒體的興趣和需求正在增加,并且對具有與諸如游戲圖像這樣的真實圖像不同的圖像特征的圖像/視頻的廣播正在增加。
4.因此,需要有效地壓縮并發送或存儲以及再現具有如上所述的各種特征的高分辨率和高質量圖像/視頻的信息的高效圖像/視頻壓縮技術。


技術實現要素:

5.技術問題
6.本公開的技術方面在于提供用于增加圖像編譯效率的方法和設備。
7.本公開的另一技術方面在于提供用于增加變換索引編譯的效率的方法和設備。
8.本公開的又一技術方面在于提供使用lfnst的圖像編譯方法和設備。
9.本公開的又一技術方面在于提供一種用于在應用lfnst時執行的清零(zero-out)的圖像編譯方法和設備。
10.技術方案
11.根據本公開的實施例,提供了一種由解碼裝置執行的圖像解碼方法。該方法可以包括:基于殘差信息來推導當前塊中的最后有效系數的位置和用于當前塊的變換系數;確定是否包括最后有效系數的子塊的索引為0并且子塊中的最后有效系數的位置大于0;確定在除了當前塊的左頂部處的第一區域以外的第二區域中是否存在有效系數;當確定在具有索引0的子塊中的最后有效系數的位置大于0并且在第二區域中不存在有效系數時,從比特流解析lfnst索引;以及通過對第一區域中的變換系數應用基于lfnst索引所推導的lfnst矩陣來推導修改的變換系數。
12.該方法進一步包括:將指示最后有效系數的位置在具有索引0的子塊中是否大于0的第一標志信息設置為1;以及當在具有索引0的子塊中的最后有效系數的位置大于0時,將第一標志信息改變為0并且解析lfnst索引。
13.該方法進一步包括:將指示在除了第一區域之外的第二區域中是否存在有效系數的第二標志信息設置為1;以及當在第二區域中不存在有效系數時,使第二標志信息維持為
1并且解析lfnst索引。
14.在當前塊中包括最后有效系數的子塊的索引大于0并且當前塊的寬度和高度是4或更大時,第二標志信息被推導為0,并且當第二標志信息是0時不解析lfnst索引。
15.在當前塊的大小是4x4或8x8并且最后有效系數的位置大于或等于8時,第二標志信息被推導為0,并且當第二標志信息是0時不解析lfnst索引。
16.根據本公開的另一實施例,提供了一種由編碼裝置執行的圖像編碼方法。該方法可以包括:基于用于殘差樣本的初級變換(primary transform)推導用于當前塊的變換系數;基于當前塊的左頂部處的第一區域的變換系數和預定lfnst矩陣來推導用于當前塊的修改的變換系數;將其中不存在修改的變換系數的當前塊的第二區域清零;構建圖像信息,使得在當前塊中包括最后有效系數的子塊的索引是0,子塊中的最后有效系數的位置大于0,并且在第二區域中不存在有效系數時,發送指示lfnst矩陣的lfnst索引;以及輸出包括通過修改的變換系數和lfnst索引的量化所推導的殘差信息的圖像信息。
17.根據本公開的再一實施例,可以提供一種數字存儲介質,該數字存儲介質存儲包括編碼圖像信息的圖像數據和根據由編碼裝置執行的圖像編碼方法生成的比特流。
18.根據本公開的又一實施例,可以提供一種數字存儲介質,該數字存儲介質存儲包括編碼圖像信息的圖像數據和用于使解碼裝置執行圖像解碼方法的比特流。
19.有益效果
20.根據本公開,可以提高整體圖像/視頻壓縮效率。
21.根據本公開,可以提高變換索引編譯的效率。
22.本公開的技術方面可以提供一種使用lfnst的圖像編譯方法和裝置。
23.本公開的技術方面可以提供一種用于在應用lfnst時執行的清零的圖像編譯方法和裝置。
24.能夠通過本公開的特定示例獲得的效果不限于上面列舉的效果。例如,可以存在相關領域普通技術人員能夠根據本公開理解或推導的各種技術效果。因此,本公開的特定效果不限于本公開中顯式地描述的那些,并且可以包括能夠根據本公開的技術特征理解或推導的各種效果。
附圖說明
25.圖1是示意性地圖示本公開適用于的視頻/圖像編碼裝置的配置的圖。
26.圖2是示意性地圖示本公開適用于的視頻/圖像解碼裝置的配置的圖。
27.圖3示意性地圖示根據本文檔的實施例的多重變換方案。
28.圖4示例性地示出65個預測方向的幀內定向模式。
29.圖5是用于說明根據本文檔的實施例的rst的圖。
30.圖6是圖示根據示例將前向初級變換的輸出數據布置成一維矢量的序列的圖。
31.圖7是圖示根據示例將前向次級變換的輸出數據布置成二維矢量的序列的圖。
32.圖8是圖示根據本文檔的實施例的廣角幀內預測模式的圖。
33.圖9是圖示被應用lfnst的塊形狀的圖。
34.圖10是圖示根據示例的前向lfnst的輸出數據的布置的圖。
35.圖11是圖示根據示例將用于前向lfnst的輸出數據的數目限制為最大值16的圖。
36.圖12是圖示根據示例的被應用4x4 lfnst的塊中的清零(zero-out)的圖。
37.圖13是圖示根據示例的被應用8x8 lfnst的塊中的清零的圖。
38.圖14是圖示根據另一示例的被應用8x8 lfnst的塊中的清零的圖。
39.圖15是用于說明根據示例的圖像解碼方法的流程圖。
40.圖16是用于說明根據示例的圖像編碼方法的流程圖。
41.圖17示意性地圖示本公開適用于的視頻/圖像編譯系統的示例。
42.圖18圖示本公開被應用于的內容流傳輸系統的結構。
具體實施方式
43.盡管本公開可能易于進行各種修改并且包括各種實施方式,但是其具體實施方式已在附圖中通過示例的方式示出,并且現在將對其進行詳細描述。然而,這并不旨在將本公開限制于本文公開的具體實施方式。本文中使用的術語只是出于描述特定實施方式的目的,并不旨在限制本公開的技術思路。除非上下文另外清楚指示,否則單數形式可以包括復數形式。諸如“包括”和“具有”之類的術語旨在指示存在以下描述中使用的特征、數字、步驟、操作、元件、組件或其組合,因此不應被理解為預先排除了存在或添加一個或更多個不同特征、數字、步驟、操作、元件、組件或其組合的可能性。
44.此外,為了方便描述彼此不同的特性功能,獨立地例示了本文中描述的附圖上的各組件,然而,并不意指各組件由單獨的硬件或軟件來實現。例如,可以組合這些組件中的任何兩個或更多個以形成單個組件,并且任何單個組件可以被劃分成多個組件。其中組件被組合和/或劃分的實施方式將屬于本公開的專利權的范圍,只要它們不脫離本公開的實質即可。
45.在下文中,將參照附圖更詳細地說明本公開的優選實施方式。另外,在附圖中,相同的附圖標號用于相同的組件,并且將省略對相同組件的重復描述。
46.本文檔涉及視頻/圖像編譯。例如,本文檔中公開的方法/示例可以涉及vvc(通用視頻編譯)標準(itu-t rec.h.266)、vvc之后的下一代視頻/圖像編譯標準、或其他視頻編譯相關標準(例如,hevc(高效視頻編譯)標準(itu-t rec.h.265)、evc(基本視頻編譯)標準、avs2標準等)。
47.在本文檔中,可以提供與視頻/圖像編譯相關的各種實施方式,并且除非相反地指定,否則這些實施方式可以彼此組合并執行。
48.在本文檔中,視頻可以是指一段時間內一系列圖像的集合。通常,圖片是指表示特定時間區域的圖像的單元,而條帶/貼片是構成圖片的一部分的單元。條帶/貼片可以包括一個或更多個編譯樹單元(ctu)。一幅圖片可以由一個或更多個條帶/貼片組成。一幅圖片可以由一個或多個貼片組組成。一個貼片組可以包括一個或更多個貼片。
49.像素或圖元(pel)可以是指構成一幅圖片(或圖像)的最小單元。另外,“樣本”可用作與像素相對應的術語。樣本通??梢员硎鞠袼鼗蛳袼刂?,并且可以僅表示亮度分量的像素/像素值或僅表示色度分量的像素/像素值。另選地,樣本可以意指空間域中的像素值,或者當該像素值被變換為頻域時,其可以意指頻域中的變換系數。
50.單元可以表示圖像處理的基本單位。單元可以包括特定區域和與該區域相關的信息中的至少一個。一個單元可以包括一個亮度塊和兩個色度(例如,cb、cr)塊。根據情況,可
以將單元和諸如塊、區域等這樣的術語互換地使用。在通常情況下,m
×
n塊可以包括由m列和n行組成的樣本(或樣本陣列)或變換系數的集(或陣列)。
51.在本文檔中,術語“/”和“,”應該被解釋為指示“和/或”。例如,表述“a/b”可以意指“a和/或b”。另外,“a、b”可以意指“a和/或b”。另外,“a/b/c”可以意指“a、b和/或c中的至少一個”。另外,“a/b/c”可以意指“a、b和/或c中的至少一個”。
52.另外,在該文檔中,術語“或”應該被解釋為指示“和/或”。例如,表述“a或b”可以包括1)僅a、2)僅b和/或3)a和b這二者。換句話說,本文檔中的術語“或”應該被解釋為指示“附加地或另選地”。
53.在本公開中,“a和b中的至少一個”可以意指“僅a”、“僅b”或“a和b兩者”。此外,在本公開中,表述“a或b中的至少一個”或者“a和/或b中的至少一個”可以被解釋為“a和b中的至少一個”。
54.此外,在本公開中,“a、b和c中的至少一個”可以意指“僅a”、“僅b”、“僅c”或“a、b和c的任何組合”。此外,“a、b或c中的至少一個”或“a、b和/或c中的至少一個”可以意指“a、b和c中的至少一個”。
55.另外,本公開中使用的括號可以表示“例如”。具體地,當指示為“預測(幀內預測)”時,可以意指“幀內預測”被提出為“預測”的示例。換句話說,本公開的“預測”不限于“幀內預測”,并且“幀內預測”是作為“預測”的示例而提出的。另外,當指示為“預測(即,幀內預測)”時,這也可以意指“幀內預測”被提出為“預測”的示例。
56.在本公開中的一個附圖中單獨描述的技術特征可以單獨地實現或可以同時實現。
57.圖1是圖示可以應用本文檔的實施例的視頻/圖像編碼裝置的配置的示意圖。在下文中,視頻編碼裝置可以包括圖像編碼裝置。
58.參考圖1,編碼裝置100包括圖像分區器110、預測器120、殘差處理器130以及熵編碼器140、加法器150、濾波器160和存儲器170。預測器120可以包括幀間預測器121和幀內預測器122。殘差處理器130可以包括變換器132、量化器133、解量化器134和逆變換器135。殘差處理器130還可以包括減法器131??梢詫⒓臃ㄆ?50稱作重構器或重構塊生成器。根據實施例,圖像分區器110、預測器120、殘差處理器130、熵編碼器140、加法器150和濾波器160可以由至少一個硬件組件(例如,編碼器芯片組或處理器)配置。另外,存儲器170可以包括解碼圖片緩沖器(dpb)或者可以由數字存儲介質配置。硬件組件還可以包括存儲器170作為內部/外部組件。
59.圖像分區器110可以將輸入到編碼裝置100的輸入圖像(或圖片或幀)分區成一個或多個處理單元。例如,可以將處理器稱作編譯單元(cu)。在這種情況下,可以從編譯樹單元(ctu)或最大編譯單元(lcu)根據四叉樹二叉樹三叉樹(qtbttt)結構遞歸地對編譯單元進行分區。例如,可以基于四叉樹結構、二叉樹結構和/或三叉樹結構將一個編譯單元分區成更深深度的多個編譯單元。在這種情況下,例如,可以首先應用四叉樹結構并且可以稍后應用二叉樹結構和/或三叉樹結構??商孢x地,可以首先應用二叉樹結構??梢曰诓辉俦环謪^的最終編譯單元來執行根據本文檔的編譯過程。在這種情況下,可以根據圖像特性基于編譯效率將最大編譯單元用作最終編譯單元,或者必要時,可以將編譯單元遞歸地分區成更深的編譯單元并且可以將具有最佳大小的編譯單元用作最終編譯單元。這里,編譯過程可以包括預測、變換和重構的過程,將稍后對此進行描述。作為另一示例,處理器還可以
包括預測單元(pu)或變換單元(tu)。在這種情況下,可以從前述最終編譯單元對預測單元和變換單元進行分割或分區。預測單元可以是樣本預測的單元,并且變換單元可以是用于推導變換系數的單元和/或用于從變換系數推導殘差信號的單元。
60.在一些情況下,單元可以與諸如塊或區域的術語互換地使用。在一般情況下,m
×
n塊可以表示由m列和n行組成的樣本或變換系數的集合。樣本可以通常表示像素或像素的值,可以僅表示亮度分量的像素/像素值或者僅表示色度分量的像素/像素值??梢詫颖居米髋c像素或像元(pel)的一個圖片(或圖像)相對應的術語。
61.在編碼裝置100中,從輸入圖像信號(原始塊、原始樣本數組)減去從幀間預測器121或幀內預測器122輸出的預測信號(預測塊、預測樣本數組)以生成殘差信號(殘差塊、殘差樣本數組),并且將所生成的殘差信號發送到變換器132。在這種情況下,如所示,可以將編碼裝置100中用于從輸入圖像信號(原始塊、原始樣本數組)減去預測信號(預測塊、預測樣本數組)的單元稱作減法器131。預測器可以對要處理的塊(在下文中,稱為當前塊)執行預測,并且生成包括用于當前塊的預測樣本的預測塊。預測器可以確定在當前塊或cu基礎上應用幀內預測還是幀間預測。如稍后在每種預測模式的描述中描述的,預測器可以生成與預測相關的各種信息,諸如預測模式信息,并且將所生成的信息發送到熵編碼器140。關于預測的信息可以在熵編碼器140中被編碼并且以比特流的形式輸出。
62.幀內預測器122可以通過參考當前圖片中的樣本來預測當前塊。所參考的樣本可以位于當前塊的附近或者可以根據預測模式間隔開。在幀內預測中,預測模式可以包括多個非定向模式和多個定向模式。非定向模式可以包括例如dc模式和平面模式。根據預測方向的詳細程度,定向模式可以包括例如33個定向預測模式或65個定向預測模式。然而,這僅僅是示例,可以取決于設置而使用更多或更少的定向預測模式。幀內預測器122可以通過使用應用于鄰近塊的預測模式來確定應用于當前塊的預測模式。
63.幀間預測器121可以基于由參考圖片上的運動矢量指定的參考塊(參考樣本數組)來推導當前塊的預測塊。這里,為了減少在幀間預測模式中發送的運動信息的量,可以基于鄰近塊與當前塊之間的運動信息的相關性以塊、子塊或樣本為單位預測運動信息。運動信息可以包括運動矢量和參考圖片索引。運動信息還可以包括幀間預測方向(l0預測、l1預測、bi預測等)信息。在幀間預測的情況下,鄰近塊可以包括存在于當前圖片中的空間鄰近塊和存在于參考圖片中的時間鄰近塊。包括參考塊的參考圖片和包括時間鄰近塊的參考圖片可以是相同或不同的??梢詫r間鄰近塊稱作并置參考塊、并置cu(colcu)等,并且可以將包括時間鄰近塊的參考圖片稱作并置圖片(colpic)。例如,幀間預測器121可以基于鄰近塊構建運動信息候選列表并且生成指示哪個候選被用于推導當前塊的運動矢量和/或參考圖片索引的信息??梢曰诟鞣N預測模式來執行幀間預測。例如,在跳過模式和合并模式的情況下,幀間預測器121可以使用鄰近塊的運動信息作為當前塊的運動信息。在跳過模式中,與合并模式不同,可以不發送殘差信號。在運動矢量預測(mvp)模式的情況下,可以將鄰近塊的運動矢量用作運動矢量預測器并且可以通過用信號通知運動矢量差來指示當前塊的運動矢量。
64.預測器120可以基于下述各種預測方法來生成預測信號。例如,預測器可以不僅應用幀內預測或幀間預測來預測一個塊,而且還同時地應用幀內預測和幀間預測。這可以被稱作組合幀間和幀內預測(ciip)。另外,預測器可以基于幀內塊復制(ibc)預測模式或用于
塊的預測的調色板模式。ibc預測模式或調色板模式可以被用于游戲等的內容圖像/視頻編譯,例如屏幕內容編譯(scc)。ibc基本上在當前圖片中執行預測,但是可以類似于幀間預測被執行,因為在當前圖片中推導參考塊。也就是說,ibc可以使用本文檔中描述的幀間預測技術中的至少一個??梢詫⒄{色板模式認為是幀內編譯或幀內編譯的示例。當應用調色板模式時,可以基于關于調色板表和調色板索引的信息用信號通知圖片內的樣本值。
65.由預測器(包括幀間預測器121和/或幀內預測器122)生成的預測信號可以用于生成重構信號或者生成殘差信號。變換器132可以通過對殘差信號應用變換技術來生成變換系數。例如,變換技術可以包括離散余弦變換(dct)、離散正弦變換(dst)、karhunen-lo
è
ve變換(klt)、基于圖的變換(gbt)或條件非線性變換(cnt)中的至少一個。這里,gbt意指當像素之間的關系信息由圖表示時從圖獲得的變換。cnt是指基于使用所有先前重構的像素生成的預測信號所生成的變換。另外,變換過程可以被應用于具有相同大小的正方形像素塊或者可以被應用于具有可變大小而不是正方形的塊。
66.量化器133可以量化變換系數并且將它們發送到熵編碼器140,并且熵編碼器140可以對量化信號(關于量化變換系數的信息)進行編碼并且輸出比特流??梢詫㈥P于量化變換系數的信息稱為殘差信息。量化器133可以基于系數掃描順序將塊類型量化變換系數重新布置成一維矢量形式并且基于一維矢量形式的量化變換系數生成關于量化變換系數的信息??梢陨申P于變換系數的信息。熵編碼器140可以執行諸如例如指數哥倫布(exponential golomb)、上下文自適應可變長度編譯(cavlc)、上下文自適應二進制算術編譯(cabac)等的各種編碼方法。熵編碼器140可以一起或分開地對除了量化變換系數(例如,語法元素的值等)以外的視頻/圖像重構所必需的信息進行編碼。編碼信息(例如,編碼視頻/圖像信息)可以被以比特流的形式以nal(網絡抽象層)為單位發送或存儲。視頻/圖像信息還可以包括關于諸如自適應參數集(aps)、圖片參數集(pps)、序列參數集(sps)或視頻參數集(vps)的各種參數集的信息。另外,視頻/圖像信息還可以包括一般約束信息。在本文檔中,從編碼裝置發送/用信號通知到解碼裝置的信息和/或語法元素可以被包括在視頻/圖片信息中。視頻/圖像信息可以通過上述編碼過程來編碼并且被包括在比特流中。比特流可以通過網絡發送或者可以被存儲在數字存儲介質中。網絡可以包括廣播網絡和/或通信網絡,并且數字存儲介質可以包括諸如usb、sd、cd、dvd、藍光、hdd、ssd等的各種存儲介質。發送從熵編碼器140輸出的信號的發送器(未示出)和/或存儲該信號的存儲單元(未示出)可以作為編碼裝置100的內部/外部元件被包括,并且可替選地,發送器可以被包括在熵編碼器140中。
67.從量化器133輸出的量化變換系數可以用于生成預測信號。例如,可以通過經由解量化器134和逆變換器135對量化變換系數應用解量化和逆變換來重構殘差信號(殘差塊或殘差樣本)。加法器150將重構殘差信號加到從幀間預測器121或幀內預測器122輸出的預測信號以生成重構信號(重構圖像、重構塊、重構樣本數組)。如果要處理的塊沒有殘差,諸如應用跳過模式的情況,則可以將預測塊用作重構塊??梢詫⒓臃ㄆ?50稱作重構器或重構塊生成器。所生成的重構信號可以被用于對當前圖片中要處理的下一塊進行幀內預測并且可以被用于通過如下所述的濾波對下一圖片進行幀間預測。
68.同時,可以在圖片編碼和/或重構期間應用具有色度縮放的亮度映射(lmcs)。
69.濾波器160可以通過對重構信號應用濾波來提高主觀/客觀圖像質量。例如,濾波
器160可以通過對重構圖片應用各種濾波方法來生成修改的重構圖片并且將該修改的重構圖片存儲在存儲器170(具體地,存儲器170的dpb)中。各種濾波方法可以包括例如解塊濾波、樣本自適應偏移、自適應環路濾波器、雙邊濾波器等。濾波器160可以如稍后在每個濾波方法的描述中描述的那樣生成與濾波相關的各種信息并且將所生成的信息發送到熵編碼器140。與濾波相關的信息可以由熵編碼器140編碼并且以比特流的形式輸出。
70.可以將發送到存儲器170的修改的重構圖片用作幀間預測器121中的參考圖片。當通過編碼裝置來應用幀間預測時,可以避免編碼裝置100與解碼裝置之間的預測失配并且可以提高編碼效率。
71.存儲器170的dpb可以存儲修改的重構圖片以供用作幀間預測器121中的參考圖片。存儲器170可以存儲從中推導當前圖片中的運動信息(或對其進行編碼)的塊的運動信息和/或圖片中已經被重構的塊的運動信息。所存儲的運動信息可以被發送到幀間預測器121并且用作空間鄰近塊的運動信息或時間鄰近塊的運動信息。存儲器170可以存儲當前圖片中的重構塊的重構樣本并且可以將重構樣本傳送到幀內預測器122。
72.圖2是圖示本文檔的實施例可以被應用于的視頻/圖像解碼裝置的配置的示意圖。
73.參考圖2,解碼裝置200可以包括熵解碼器210、殘差處理器220、預測器230、加法器240、濾波器250、存儲器260。預測器230可以包括幀間預測器231和幀內預測器232。殘差處理器220可以包括解量化器221和逆變換器221。根據實施例,熵解碼器210、殘差處理器220、預測器230、加法器240和濾波器250可以由硬件組件(例如,解碼器芯片組或處理器)配置。另外,存儲器260可以包括解碼圖片緩沖器(dpb)或者可以由數字存儲介質配置。硬件組件還可以包括存儲器260作為內部/外部組件。
74.當輸入了包括視頻/圖像信息的比特流時,解碼裝置200可以重構與在圖1的編碼裝置中處理視頻/圖像信息的過程相對應的圖像。例如,解碼裝置200可以基于從比特流獲得的塊分區相關信息來推導單元/塊。解碼裝置200可以使用在編碼裝置中應用的處理器來執行解碼。因此,解碼的處理器可以是例如編譯單元,并且可以從編譯樹單元或最大編譯單元根據四叉樹結構、二叉樹結構和/或三叉樹結構對編譯單元進行分區??梢詮木幾g單元推導一個或多個變換單元??梢酝ㄟ^再現裝置來再現通過解碼裝置200解碼和輸出的重構圖像信號。
75.解碼裝置200能夠以比特流的形式接收從圖1的編碼裝置輸出的信號,并且可以通過熵解碼器210對所接收到的信號進行解碼。例如,熵解碼器210可以解析比特流以推導圖像重構(或圖片重構)所必需的信息(例如,視頻/圖像信息)。視頻/圖像信息還可以包括關于諸如自適應參數集(aps)、圖片參數集(pps)、序列參數集(sps)或視頻參數集(vps)的各種參數集的信息。另外,視頻/圖像信息還可以包括一般約束信息。解碼裝置還可以基于關于參數集的信息和/或一般約束信息對圖片進行解碼。在本文檔中稍后描述的用信號通知/接收的信息和/或語法元素可以通過解碼過程被解碼并且從比特流獲得。例如,熵解碼器210基于諸如指數哥倫布編譯(exponential golomb coding)、cavlc或cabac的編譯方法對比特流中的信息進行解碼,并且輸出圖像重構所需要的語法元素和用于殘差的變換系數的量化值。更具體地,cabac熵解碼方法可以接收與比特流中的每個語法元素相對應的bin,使用解碼目標語法元素信息、解碼目標塊的解碼信息或前一級中解碼的符號/bin的信息來確定上下文模型,并且通過根據所確定的上下文模型預測bin的發生概率來對bin執行算術解
碼,以及生成與每個語法元素的值相對應的符號。在這種情況下,cabac熵解碼方法可以在確定上下文模型之后通過針對下一符號/bin的上下文模型使用經解碼的符號/bin的信息來更新上下文模型??梢詫⒂伸亟獯a器210解碼的信息之中與預測相關的信息提供給預測器(幀間預測器232和幀內預測器231),并且可以將在熵解碼器210中對其執行熵解碼的殘差值即量化變換系數和相關參數信息輸入到殘差處理器220。殘差處理器220可以推導殘差信號(殘差塊、殘差樣本、殘差樣本數組)。另外,可以將由熵解碼器210解碼的信息之中關于濾波的信息提供給濾波器250。同時,可以將用于接收從編碼裝置輸出的信號的接收器(未示出)進一步配置為解碼裝置200的內部/外部元件,或者接收器可以是熵解碼器210的組件。同時,可以將根據本文檔的解碼裝置稱為視頻/圖像/圖片解碼裝置,并且可以將解碼裝置分類為信息解碼器(視頻/圖像/圖片信息解碼器)和樣本解碼器(視頻/圖像/圖片樣本解碼器)。信息解碼器可以包括熵解碼器210,并且樣本解碼器可以包括解量化器221、逆變換器222、加法器240、濾波器250、存儲器260、幀間預測器232和幀內預測器231中的至少一個。
76.解量化器221可以將量化的變換系數解量化并且輸出變換系數。解量化器221能夠以二維塊形式的形式重新布置量化變換系數。在這種情況下,可以基于在編碼裝置中執行的系數掃描順序執行重新布置。解量化器221可以通過使用量化參數(例如,量化步長信息)來對量化變換系數執行解量化并且獲得變換系數。
77.逆變換器222對變換系數進行逆變換以獲得殘差信號(殘差塊、殘差樣本數組)。
78.預測器可以對當前塊執行預測并且生成包括當前塊的預測樣本的預測塊。預測器可以基于關于從熵解碼器210輸出的預測的信息來確定是否對當前塊應用幀內預測或幀間預測并且可以確定特定幀內/幀間預測模式。
79.預測器220可以基于下述各種預測方法來生成預測信號。例如,預測器可以不僅應用幀內預測或幀間預測來預測一個塊,而且還同時地應用幀內預測和幀間預測。這可以被稱作組合幀間和幀內預測(ciip)。另外,預測器可以基于幀內塊復制(ibc)預測模式或用于塊的預測的調色板模式。ibc預測模式或調色板模式可以被用于游戲等的內容圖像/視頻編譯,例如屏幕內容編譯(scc)。ibc基本上在當前圖片中執行預測,但是可以類似于幀間預測被執行,因為在當前圖片中推導參考塊。也就是說,ibc可以使用本文檔中描述的幀間預測技術中的至少一個??梢詫⒄{色板模式認為是幀內編譯或幀內編譯的示例。當應用調色板模式時,可以基于關于調色板表和調色板索引的信息用信號通知圖片內的樣本值。
80.幀內預測器231可以通過參考當前圖片中的樣本來預測當前塊。參考樣本可以位于當前塊的附近或者可以根據預測模式間隔開。在幀內預測中,預測模式可以包括多個非定向模式和多個定向模式。幀內預測器231可以通過使用應用于鄰近塊的預測模式來確定應用于當前塊的預測模式。
81.幀間預測器232可以基于參考圖片上的由運動矢量指定的參考塊(參考樣本數組)來推導用于當前塊的預測塊。在這種情況下,為了減少在幀間預測模式中發送的運動信息的量,可以基于鄰近塊與當前塊之間的運動信息的相關性以塊、子塊或樣本為單位預測運動信息。運動信息可以包括運動矢量和參考圖片索引。運動信息還可以包括幀間預測方向(l0預測、l1預測、bi預測等)信息。在幀間預測的情況下,鄰近塊可以包括存在于當前圖片中的空間鄰近塊和存在于參考圖片中的時間鄰近塊。例如,幀間預測器232可以基于鄰近塊構建運動信息候選列表并且基于所接收到的候選選擇信息來推導當前塊的運動矢量和/或
參考圖片索引??梢曰诟鞣N預測模式來執行幀間預測,并且關于預測的信息可以包括指示用于當前塊的幀間預測的模式的信息。
82.加法器240可以通過將所獲得的殘差信號加到從預測器(包括幀間預測器232和/或幀內預測器231)輸出的預測信號(預測塊、預測樣本數組)來生成重構信號(重構圖片、重構塊、重構樣本數組)。如果要處理的塊沒有殘差,諸如當應用跳過模式時,則可以將預測塊用作重構塊。
83.可以將加法器240稱作重構器或重構塊生成器。所生成的重構信號可以被用于當前圖片中要處理的下一塊的幀內預測,可以通過如下所述的濾波來輸出,或者可以被用于下一圖片的幀間預測。
84.同時,可以在圖片解碼過程中應用具有色度縮放的亮度映射(lmcs)。
85.濾波器250可以通過對重構信號應用濾波來提高主觀/客觀圖像質量。例如,濾波器250可以通過對重構圖片應用各種濾波方法來生成修改的重構圖片并且將該修改的重構圖片存儲在存儲器260(具體地,存儲器260的dpb)中。各種濾波方法可以包括例如解塊濾波、樣本自適應偏移、自適應環路濾波器、雙邊濾波器等。
86.可以將存儲器260的dpb中存儲的(修改的)重構圖片用作幀間預測器232中的參考圖片。存儲器260可以存儲從其推導(或解碼)當前圖片中的運動信息的塊的運動信息和/或圖片中已經被重構的塊的運動信息??梢詫⑺鎯Φ倪\動信息發送到幀間預測器160以便被用作空間鄰近塊的運動信息或時間鄰近塊的運動信息。存儲器260可以存儲當前圖片中的重構塊的重構樣本并且將重構樣本發送到幀內預測器231。
87.在本文檔中,在編碼裝置100的濾波器160、幀間預測器121和幀內預測器122中描述的實施例可以與解碼裝置200的濾波器250、幀間預測器232和幀內預測器231相同或者分別對應于解碼裝置200的濾波器250、幀間預測器232和幀內預測器231。
88.如上所述,在執行視頻編譯中,執行預測以提高壓縮效率。能夠通過預測來生成包括用于當前塊的預測樣本的預測塊,即目標編譯塊。在這種情況下,預測塊包括空間域(或像素域)中的預測樣本。在編碼裝置和解碼裝置中相同地推導預測塊。編碼裝置能夠通過向解碼裝置用信號通知關于在原始塊,而不是原始塊的原始樣本值本身,與預測塊之間的殘差的信息(殘差信息)來提高圖像編譯效率。解碼裝置可以基于殘差信息推導包括殘差樣本的殘差塊,可以通過將殘差塊和預測塊相加來生成包括重構樣本的重構圖像,并且可以生成包括重構塊的重構圖片。
89.可以通過變換和量化過程來生成殘差信息。例如,編碼裝置可以推導原始塊與預測塊之間的殘差塊,可以通過對包括在殘差塊中的殘差樣本(殘差樣本數組)執行變換過程來推導變換系數,可以通過對變換系數執行量化過程來推導量化變換系數,并且可以(通過比特流)向解碼裝置用信號通知相關殘差信息。在這種情況下,殘差信息可以包括諸如量化變換系數的值信息、位置信息、變換方案、變換核、量化參數的信息。解碼裝置可以基于殘差信息執行解量化/逆變換過程,并且可以推導殘差樣本(或殘差塊)。解碼裝置可以基于預測塊和殘差塊來生成重構圖片。此外,編碼裝置可以通過對量化變換系數進行解量化/逆變換來推導殘差塊以供參考后續圖片的幀間預測,并且可以生成重構圖片。
90.圖3示意性地圖示根據本公開的實施例的多重變換技術。
91.參考圖3,變換器可以對應于前面圖1的編碼裝置中的變換器,并且逆變換器可以
對應于前面圖1的編碼裝置中的逆變換器,或者對應于圖2的解碼裝置中的逆變換器。
92.變換器可以通過基于殘差塊中的殘差樣本(殘差樣本數組)執行初級變換來推導(初級)變換系數(s310)??梢詫⒋顺跫壸儞Q稱為核心變換。在本文中,初級變換可以基于多變換選擇(mts),并且當應用多變換作為初級變換時,可以將它稱為多核心變換。
93.多核心變換可以表示附加地使用離散余弦變換(dct)類型2和離散正弦變換(dst)類型7、dct類型8和/或dst類型1進行變換的方法。也就是說,多核心變換可以表示基于從dct類型2、dst類型7、dct類型8和dst類型1之中選擇的多個變換核將空間域的殘差信號(或殘差塊)變換為頻域的變換系數(或初級變換系數)的變換方法。在本文中,從變換器的視角來看初級變換系數可以稱為臨時變換系數。
94.換句話說,當應用常規變換方法時,可以通過基于dct類型2對殘差信號(或殘差塊)應用從空間域到頻率域的變換來生成變換系數。與此不同,當應用多核心變換時,可以通過基于dct類型2、dst類型7、dct類型8和/或dst類型1對殘差信號(或殘差塊)應用從空間域到頻率域的變換來生成變換系數(或初級變換系數)。在本文中,dct類型2、dst類型7、dct類型8和dst類型1可以被稱為變換類型、變換核或變換核心??梢曰诨瘮祦矶x這些dct/dst變換類型。
95.當執行多核心變換時,可以從變換核之中選擇用于目標塊的垂直變換核和水平變換核,可以基于垂直變換核對目標塊執行垂直變換,并且可以基于水平變換核對目標塊執行水平變換。這里,水平變換可以指示對目標塊的水平分量的變換,并且垂直變換可以指示對目標塊的垂直分量的變換??梢曰诎埐顗K的目標(cu或子塊)的預測模式和/或變換索引來適應性地確定垂直變換核/水平變換核。
96.此外,根據示例,如果通過應用mts來執行初級變換,則可以通過將特定基函數設置為預定值并組合要在垂直變換或水平變換中應用的基函數來設置變換核的映射關系。例如,當水平變換核表示為trtypehor,并且垂直方向變換核表示為trtypever時,可以將值為0的trtypehor或trtypever設置給dct2,將值為1的trtypehor或trtypever設置給dst7,并且將值為2的trtypehor或trtypever可以設置給dct8。
97.在這種情況下,mts索引信息可以被編碼并且發信號通知到解碼設備以指示多個變換核集中的任何一個。例如,mts索引0可以指示trtypehor和trtypever值均為0,mts索引1可以指示trtypehor和trtypever值均為1,mts索引2可以指示trtypehor值為2并且trtypever值為1,mts索引為3可以指示trtypehor值為1并且trtypever值為2,而mts索引4可以指示trtypehor和trtypever值均為2。
98.在一個示例中,根據mts索引信息的變換核集在下表中示出。
99.[表1]
[0100]
tu_mts_idx[x0][y0]01234trtypehor01212tetvpever01122
[0101]
變換器可以通過基于(初級)變換系數執行次級變換(secondary transform)來推導修改的(次級)變換系數(s320)。初級變換是從空間域到頻域的變換,而次級變換是指通過使用(初級)變換系數之間存在的相關性,變換為更具壓縮性的表示。次級變換可以包括不可分離的變換。在這種情況下,次級變換可以稱為不可分離的次級變換(nsst)或模式相
關的不可分離的次級變換(mdnsst)。不可分離的次級變換可以表示這樣的變換,其通過基于不可分離的變換矩陣對通過初級變換推導出的(初級)變換系數進行次級變換來生成針對殘差信號的修改的變換系數(或次級變換系數)。此時,垂直變換和水平變換可以不單獨應用于(初級)變換系數(或者水平變換和垂直變換可以不獨立應用),但是可以基于不可分離變換矩陣一次地應用變換。換句話說,不可分離的次級變換可以表示這樣的變換方法,其中,(初級)變換系數的垂直分量和水平分量不分離,并且例如,將二維信號(變換系數)通過某個確定的方向(例如,行第一方向或列第一方向)重新布置為一維信號,然后基于不可分離的變換矩陣生成修改的變換系數(或次級變換系數)。例如,根據行優先順序,m
×
n個塊以第一行、第二行、

和第n行的順序設置成排。根據列優先順序,m
×
n個塊以第一列、第二列、

和第m列的順序設置成排。不可分離的次級變換可以應用于配置有(初級)變換系數的塊(在下文中,可以稱為變換系數塊)的左頂部區域。例如,如果變換系數塊的寬度(w)和高度(h)均等于或大于8,則可以將8
×
8不可分離的次級變換應用于變換系數塊的左頂部8
×
8區域。此外,如果變換系數塊的寬度(w)和高度(h)均等于或大于4,并且變換系數塊的寬度(w)或高度(h)小于8,那么可以將4
×
4不可分離的次級變換應用于變換系數塊的左頂部min(8,w)
×
min(8,h)區域。然而,實施方式不限于此,并且例如,即使僅滿足變換系數塊的寬度(w)或高度(h)等于或大于4的條件,4
×
4不可分離的次級變換也可以應用于變換系數塊的左頂部min(8,w)
×
min(8,h)區域。
[0102]
具體地,例如,如果使用4
×
4輸入塊,則不可分離的次級變換可以如下執行。
[0103]4×
4輸入塊x可以表示如下。
[0104]
[式1]
[0105][0106]
如果x以向量的形式表示,則向量可以如下表示。
[0107]
[式2]
[0108][0109]
在式2中,向量是通過根據行優先順序重新布置式1的二維塊x而獲得的一維向量。
[0110]
在這種情況下,可以如下計算不可分離的次級變換。
[0111]
[式3]
[0112][0113]
在此式中,表示變換系數向量,而t表示16
×
16(不可分離的)變換矩陣。
[0114]
通過前述式3,可以推導16
×
1變換系數向量并且可以通過掃描順序(水平、垂直和對角線等)將向量重新組織為4
×
4塊。然而,上述計算是示例,并且超立方體-吉文斯變換(hygt)等也可以用于不可分離的次級變換的計算,以便降低不可分離的次級變換的計算復雜度。
[0115]
此外,在不可分離的次級變換中,可以將變換核(或變換核心、變換類型)選擇為模
式相關。在這種情況下,模式可以包括幀內預測模式和/或幀間預測模式。
[0116]
如上所述,可以基于以變換系數塊的寬度(w)和高度(h)為基礎確定的8
×
8變換或4
×
4變換來執行不可分離的次級變換。8
×
8變換是指當w和h二者都等于或大于8時可應用于變換系數塊中包含的8
×
8區域的變換,并且8
×
8區域可以是變換系數塊中的左頂部8
×
8區域。類似地,4
×
4變換是指當w和h二者都等于或大于4時可應用于變換系數塊中包含的4
×
4區域的變換,并且4
×
4區域可以是變換系數塊中的左頂部4
×
4區域。例如,8
×
8變換核矩陣可以是64
×
64/16
×
64矩陣,而4
×
4變換核矩陣可以是16
×
16/8
×
16矩陣。
[0117]
這里,為了選擇模式相關的變換核,可以針對8
×
8變換和4
×
4變換二者配置用于不可分離的次級變換的每個變換集二個不可分離的次級變換核,并且可以存在四個變換集。也就是說,可以針對8
×
8變換配置四個變換集,并且可以針對4
×
4變換配置四個變換集。在這種情況下,針對8
×
8變換的四個變換集中的每個變換集可以包括二個8
×
8變換核,并且針對4
×
4變換的四個變換集中的每個變換集可以包括二個4
×
4變換核。
[0118]
然而,隨著變換的大小(即,變換所應用于的區域的大小)可以為例如除了8
×
8或4
×
4之外的大小,集的數量可以是n,并且每個集中的變換核的數量可以是k。
[0119]
變換集可以被稱為nsst集或lfnst集??梢岳缁诋斍皦K(cu或子塊)的幀內預測模式來選擇變換集之中的特定集。低頻不可分離的變換(lfnst)可以是縮減不可分離的變換的示例,其將稍后描述,并且表示用于低頻分量的不可分離的變換。
[0120]
作為參考,例如,幀內預測模式可以包括兩個非定向(或非角度)幀內預測模式和65個定向(或角度)幀內預測模式。非定向幀內預測模式可以包括0號的平面幀內預測模式和1號的dc幀內預測模式,并且定向幀內預測模式可以包括2號至66號的65個幀內預測模式。然而,這是示例,并且即使幀內預測模式的數量不同也可以應用本文檔。此外,在一些情況下,還可以使用67號幀內預測模式,并且67號幀內預測模式可以表示線性模型(lm)模式。
[0121]
圖4示意性地示出了65個預測方向的幀內定向模式。
[0122]
參照圖4,基于具有左上對角預測方向的幀內預測模式34,幀內預測模式可以劃分為具有水平方向性的幀內預測模式和具有垂直方向性的幀內預測模式。在圖4中,h和v分別標示水平方向性和垂直方向性,并且數字-32至32指示樣本網格位置上的1/32單位的位移。這些數字可以表示對于模式索引值的偏移。幀內預測模式2至33具有水平方向性,并且幀內預測模式34至66具有垂直方向性。嚴格地說,幀內預測模式34可以被視為既不是水平的也不是垂直的,但在確定次級變換的變換集時可以被分類為屬于水平方向性。這是因為輸入數據被轉置以用于基于幀內預測模式34對稱的垂直定向模式,并且針對水平模式的輸入數據對準方法用于幀內預測模式34。對輸入數據進行轉置意指將二維的m
×
n塊數據的行和列切換成n
×
m數據。幀內預測模式18和幀內預測模式50可以分別表示水平幀內預測模式和垂直幀內預測模式,并且幀內預測模式2可以被稱為右上對角幀內預測模式,因為幀內預測模式2具有左參考像素并且在右上方向中執行預測。類似地,幀內預測模式34可以被稱為右下對角幀內預測模式,而幀內預測模式66可以被稱為左下對角幀內預測模式。
[0123]
根據示例,可以映射根據幀內預測模式的四個變換集,例如,如下表所示。
[0124]
[表2]
[0125]
lfnstpredmodeintralfnsttrsetidxlfnstpredmodeintra<01
0<=lfnstpredmodeintra<=102<=lfnstpredmodeintra<=12113<=lfnstpredmodeintra<=23224<=lfnstpredmodeinntra<=44345<=lfnstpredmodeintra<=55256<=lfnstpredmodeintra<=80181<=lfnstpredmodeintra<=830
[0126]
如表2所示,根據幀內預測模式,四個變換集中的任何一個,即,lfnsttrsetidx,可以映射到四個索引(即,0至3)中的任何一個。
[0127]
當確定特定集用于不可分離的變換時,可以通過不可分離的次級變換索引來選擇特定集中的k個變換核之一。編碼設備可以基于率失真(rd)校驗來推導指示特定變換核的不可分離的次級變換索引,并且可以將不可分離的次級變換索引發信號通知給解碼設備。解碼設備可以基于不可分離的次級變換索引來選擇特定集中的k個變換核中的一個。例如,lfnst索引值0可以指代第一不可分離的次級變換核,lfnst索引值1可以指代第二不可分離的次級變換核,lfnst索引值2可以指代第三不可分離的次級變換核。另選地,lfnst索引值0可以指示第一不可分離的次級變換沒有被應用于目標塊,并且lfnst索引值1至3可以指示三個變換核。
[0128]
變換器可以基于所選擇的變換核來執行不可分離的次級變換,并且可以獲得修改的(次級)變換系數。如上所述,修改的變換系數可以被推導為通過量化器量化的變換系數,并且可以被編碼并發信號通知給解碼設備,并且被傳送到編碼設備中的解量化器/逆變換器。
[0129]
此外,如上所述,如果省略了次級變換,則可以將作為初級(可分離的)變換的輸出的(初級)變換系數推導為如上所述通過量化器量化的變換系數,并且可以被編碼并發信號通知給解碼設備,并傳送到編碼設備中的解量化器/逆變換器。
[0130]
逆變換器可以與在上述變換器中已經執行的順序相反的順序執行一系列過程。逆變換器可以接收(解量化的)變換系數,并且通過執行次級(逆)變換來推導(初級)變換系數(s350),并且可以通過對(初級)變換系數執行初級(逆)變換來獲得殘差塊(殘差樣本)(s360)。就此而言,從逆變換器的視角來看,初級變換系數可以被稱為修改的變換系數。如上所述,編碼設備和解碼設備可以基于殘差塊和預測塊來生成重構塊,并且可以基于重構塊來生成重構圖片。
[0131]
解碼設備還可以包括次級逆變換應用確定器(或用于確定是否應用次級逆變換的元件)和次級逆變換確定器(或用于確定次級逆變換的元件)。次級逆變換應用確定器可以確定是否應用次級逆變換。例如,次級逆變換可以是nsst、rst或lfnst,并且次級逆變換應用確定器可以基于通過解析比特流而獲得的次級變換標志來確定是否應用次級逆變換。在另一示例中,次級逆變換應用確定器可以基于殘差塊的變換系數來確定是否應用次級逆變換。
[0132]
次級逆變換確定器可以確定次級逆變換。在這種情況下,次級逆變換確定器可以基于根據幀內預測模式指定的lfnst(nsst或rst)變換集來確定應用于當前塊的次級逆變換。在實施方式中,可以取決于初級變換確定方法來確定次級變換確定方法??梢愿鶕瑑?br/>預測模式來確定初級變換和次級變換的各種組合。此外,在示例中,次級逆變換確定器可以基于當前塊的大小來確定應用次級逆變換的區域。
[0133]
此外,如上所述,如果省略次級(逆)變換,則可以接收(解量化的)變換系數,可以執行初級(可分離的)逆變換,并且可以獲得殘差塊(殘差樣本)。如上所述,編碼設備和解碼設備可以基于殘差塊和預測塊來生成重構塊,并且可以基于重構塊來生成重構圖片。
[0134]
此外,在本公開中,可以在nsst的概念中應用其中減小了變換矩陣(核)的大小的縮減次級變換(rst),以便減少不可分離的次級變換所需的計算量和存儲量。
[0135]
此外,本公開中描述的變換核、變換矩陣以及構成變換核矩陣的系數,即,核系數或矩陣系數,能夠以8比特來表示。這可以是在解碼設備和編碼設備中實現的條件,并且與現有的9比特或10比特相比,可以減少存儲變換核所需的存儲量,并且可以合理地適應性能劣化。另外,以8比特表示核矩陣可以允許使用小的乘法器,并且可以更適合于用于最佳軟件實現的單指令多數據(simd)指令。
[0136]
在本說明書中,術語“rst”可以是指基于大小根據縮減因子而減小的變換矩陣來對目標塊的殘差樣本執行的變換。在執行縮減變換的情況下,由于變換矩陣的大小的減小,可以減少變換所需的計算量。也就是說,rst可以用于解決在大小大的塊的變換或不可分離的變換時發生的計算復雜性問題。
[0137]
rst可以被稱為諸如縮減變換、縮減次級變換、縮小變換、簡化變換和簡單變換等之類的各種術語,并且rst可以被稱為的名稱不限于所列示例。另選地,由于rst主要在變換塊中的包括非零系數的低頻區域中執行,因此它可以被稱為低頻不可分離的變換(lfnst)。變換索引可以被稱作lfnst索引。
[0138]
同時,當基于rst執行次級逆變換時,編碼裝置100的逆變換器135和解碼裝置200的逆變換器222可以包括基于變換系數的逆rst推導修改的變換系數的逆縮減次級變換器,以及基于對修改的變換系數的逆初級變換推導用于目標塊的殘差樣本的逆初級變換器。逆初級變換是指應用于殘差的初級變換的逆變換。在本公開中,基于變換推導變換系數可以是指通過應用變換來推導變換系數。
[0139]
圖5是例示根據本公開的實施方式的rst的圖。
[0140]
在本公開中,“目標塊”可以指代要編碼的當前塊,殘差塊或變換塊。
[0141]
在根據示例的rst中,可以將n維向量映射到位于另一個空間中的r維向量,從而可以確定縮減變換矩陣,其中r小于n。n可以是指應用了變換的塊的側邊的長度的平方,或與應用了變換的塊相對應的變換系數的總數,并且縮減因子可以是指r/n值??s減因子可以被稱為縮減因子、縮小因子、簡化因子、簡單因子或其他各種術語。此外,r可以被稱為縮減系數,但是根據情況,縮減因子可以是指r。此外,根據情況,縮減因子可以是指n/r值。
[0142]
在示例中,可以通過比特流來用信號通知縮減因子或縮減系數,但是示例不限于此。例如,可以在編碼設備200和解碼設備300中的每個中存儲針對縮減因子或縮減系數的預定值,并且在這種情況下,可以不單獨發信號通知縮減因子或縮減系數。
[0143]
根據示例的縮減變換矩陣的大小可以是小于n
×
n(常規變換矩陣的大小)的r
×
n,并且可以如下面的式4所限定。
[0144]
[式4]
[0145][0146]
圖5(a)中所示的縮減變換塊中的矩陣t可以是指式4的矩陣tr×n。如圖5(a)所示,當將縮減變換矩陣tr×n乘以用于目標塊的殘差樣本時,可以推導用于當前塊的變換系數。
[0147]
在示例中,如果應用了變換的塊的大小是8
×
8并且r=16(即,r/n=16/64=1/4),則根據圖5(a)的rst可以被表示為以下式5所示的矩陣運算。在這種情況下,存儲和乘法計算可以通過縮減因子縮減至大約1/4。
[0148]
在本公開中,矩陣運算可以理解為通過將列向量與設置在列向量的左側的矩陣相乘來獲得列向量的運算。
[0149]
[式5]
[0150][0151]
在式6中,r1至r
64
可以表示用于目標塊的殘差樣本,并且具體地可以是通過應用初級變換而生成的變換系數。作為式5的計算的結果,可以推導目標塊的變換系數ci,并且推導ci的過程可以如式6所示。
[0152]
[式6]
[0153][0154]
作為式6的計算的結果,可以推導目標塊的變換系數c1至cr。也就是說,當r=16時,可以推導目標塊的變換系數c1至c
16
。如果應用常規變換而不是rst,并將64
×
64(n
×
n)大小的變換矩陣與64
×
1(n
×
1)大小的殘差樣本相乘,則因為應用了rst而針對目標塊僅推導16(r)個變換系數,盡管針對目標塊推導了64(n)個變換系數。由于用于目標塊的變換系數的總數從n縮減到r,所以編碼設備200向解碼設備300發送的數據量減少,因此編碼設備200與解碼設備300之間的傳輸效率可以提高。
[0155]
當從變換矩陣的大小的視角考慮時,常規變換矩陣的大小為64
×
64(n
×
n),但縮減變換矩陣的大小縮減為16
×
64(r
×
n),因此與執行常規變換的情況相比,執行rst的情況下的存儲使用率可以減小r/n比率。另外,當與使用常規變換矩陣的情況下的乘法計算的數量n
×
n相比時,使用縮減變換矩陣可以將乘法計算的數量(r
×
n)減小r/n比率。
[0156]
在示例中,編碼裝置100的變換器132可以通過對用于目標塊的殘差樣本執行初級變換和基于rst的次級變換來推導用于目標塊的變換系數??梢詫⑦@些變換系數傳送到解
碼裝置200的逆變換器,并且解碼裝置200的逆變換器222可以基于針對變換系數的逆縮減次級變換(rst)來推導修改的變換系數,并且可以基于針對修改的變換系數的逆初級變換來推導用于目標塊的殘差樣本。
[0157]
根據示例的逆rst矩陣tn×r的大小為比常規逆變換矩陣n
×
n的大小小的n
×
r,并且與式4中所示的縮減變換矩陣tr×n具有轉置關系。
[0158]
圖5(b)所示的縮減逆變換塊中的矩陣t
t
可以是指逆rst矩陣tn×
rt
(上標t是指轉置)。如圖5(b)所示,當將逆rst矩陣tn×
rt
乘以目標塊的變換系數時,可以推導目標塊的修改的變換系數或目標塊的殘差樣本。逆rst矩陣tr×
nt
可以表示為(tr×
nt
)n×r。
[0159]
更具體地,當逆rst被用作次級逆變換時,當逆rst矩陣tn×
rt
被乘以目標塊的變換系數時,可以推導目標塊的修改的變換系數。此外,可以將逆rst用作逆初級變換,并且在這種情況下,當將逆rst矩陣tn×
rt
與目標塊的變換系數相乘時,可以推導目標塊的殘差樣本。
[0160]
在示例中,如果應用逆變換的塊的大小是8
×
8并且r=16(即,r/n=16/64=1/4),則根據圖5(b)的rst可以被表示為以下式7所示的矩陣運算。
[0161]
[式7]
[0162][0163]
在式7中,c1至c
16
可以表示目標塊的變換系數。作為式7的計算的結果,可以推導表示目標塊的修改的變換系數或目標塊的殘差樣本的rj,并且推導rj的過程可以如式8所示。
[0164]
[式8]
[0165][0166]
作為式8的計算的結果,可以推導表示目標塊的修改的變換系數或目標塊的殘差樣本的r1至rn。從逆變換矩陣的大小的視角考慮,常規逆變換矩陣的大小為64
×
64(n
×
n),但逆縮減變換矩陣的大小縮減為64
×
16(r
×
n),因此與執行常規逆變換的情況相比,執行逆rst的情況下的存儲使用率可以減小r/n比率。另外,當與使用常規逆變換矩陣的情況下的乘法計算的數量n
×
n相比時,使用逆縮減變換矩陣可以將乘法計算的數量(n
×
r)減少r/n比率。
[0167]
表2所示的變換集配置也可以應用于8
×
8rst。也就是說,可以根據表2中的變換集來應用8
×
8rst。由于根據幀內預測模式,一個變換集包括兩個或三個變換(核),因此可以將其配置為選擇包括在不應用次級變換的情況下在內的至多四個變換中的一個。在不應用
次級變換的變換中,可以考慮應用恒等矩陣(identity matrix)。假設分別將索引0、1、2和3分配給四個變換(例如,可以將索引0分配給應用恒等矩陣的情況,即,不應用次級變換的情況),可以針對每個變換系數塊發信號通知作為語法元素的變換索引或lfnst索引,由此指定要應用的變換。也就是說,針對左頂部8
×
8塊,通過變換索引,可以指定rst配置中的8
×
8nsst,或者當應用lfnst時可以指定8
×
8lfnst。8
×
8lfnst和8
×
8rst指代當要變換的目標塊的w和h均等于或大于8時可應用于變換系數塊中包括的8
×
8區域的變換,并且8
×
8區域可以是變換系數塊中的左頂部8
×
8區域。類似地,4
×
4lfnst和4
×
4rst指代當目標塊的w和h均等于或大于4時可應用于變換系數塊中包括的4
×
4區域的變換,并且4
×
4區域可以是變換系數塊中的左頂部4
×
4區域。
[0168]
根據本公開的實施方式,對于編碼過程中的變換,可以僅選擇48條數據,并且可以向其應用最大16
×
48變換核矩陣,而不是將16
×
64變換核矩陣應用于形成8
×
8區域的64條數據。此處,“最大”意味著m在m
×
48變換核矩陣中具有最大值16以用于生成m個系數。也就是說,當通過將m
×
48變換核矩陣(m≤16)應用于8
×
8區域來執行rst時,輸入48條數據,并且生成m個系數。當m是16時,輸入48條數據并且生成16個系數。也就是說,假設48條數據形成48
×
1向量,16
×
48矩陣和48
×
1向量依次相乘,由此生成16
×
1向量。這里,形成8
×
8區域的48條數據可以被適當地布置,由此形成48
×
1向量。例如,可以基于構成8
×
8區域之中的除了右底部4
×
4區域之外的區域的48條數據來構造48
×
1向量。這里,當通過應用最大16
×
48變換核矩陣來執行矩陣運算時,生成16個修改的變換系數,并且可以根據掃描順序將16個修改的變換系數布置在左頂部4
×
4區域中,并且可以用零填充右頂部4
×
4區域和左底部4
×
4區域。
[0169]
對于解碼過程中的逆變換,可以使用前述變換核矩陣的轉置矩陣。也就是說,當在由解碼設備執行的逆變換過程中執行逆rst或lfnst時,根據預定布置順序在一維向量中配置應用逆rst的輸入系數數據,并且可以根據預定布置順序將通過將一維向量與在一維向量左側的對應的逆rst矩陣相乘而獲得的修改的系數向量布置到二維塊中。
[0170]
總之,在變換過程中,當rst或lfnst被應用于8
×
8區域時,在8
×
8區域的除了右底部區域之外的左頂部區域、右頂部區域和左底部區域中的48個變換系數與16
×
48變換核矩陣的矩陣運算。對于矩陣運算,以一維陣列輸入48個變換系數。當執行矩陣運算時,推導出16個修改的變換系數,并且可以將修改的變換系數布置于8
×
8區域的左頂部區域中。
[0171]
相反,在逆變換過程中,當將逆rst或lfnst應用于8
×
8區域時,可以根據掃描順序以一維陣列輸入8
×
8區域中的變換系數之中的對應于8
×
8區域的左頂部區域的16個變換系數,并且可以經歷與48
×
16變換核矩陣的矩陣運算。也就是說,矩陣運算可以表示為(48
×
16矩陣)*(16
×
1變換系數向量)=(48
×
1修改的變換系數向量)。這里,n
×
1向量可以被解釋為具有與n
×
1矩陣相同的含義,并且因此可以被表示為n
×
1列向量。此外,*表示矩陣乘法。當執行矩陣運算時,可以推導出48個修改的變換系數,并且可以將48個修改的變換系數布置在8
×
8區域中的除了右底部區域之外的左頂部區域、右頂部區域和左底部區域中。
[0172]
當次級逆變換基于rst時,編碼裝置100的逆變換器135和解碼裝置200的逆變換器222可以包括用于基于對變換系數的逆rst推導修改的變換系數的逆縮減次級變換器以及用于基于對修改的變換系數的逆初級變換推導用于目標塊的殘差樣本的逆初級變換器。逆初級變換是指應用于殘差的初級變換的逆變換。在本公開中,基于變換推導變換系數可以
是指通過應用變換來推導變換系數。
[0173]
上面描述的不可分離的變換(lfnst)將如下詳細描述。lfnst可以包括由編碼設備進行的正向變換和由解碼設備進行的逆變換。
[0174]
編碼設備接收在應用初級(核心)變換之后推導出的結果(或結果的一部分)作為輸入,并且應用正向次級變換(次級變換)。
[0175]
[式9]
[0176]
y=c
t
x
[0177]
在式9中,x和y分別是次級變換的輸入和輸出,g是表示次級變換的矩陣,并且變換基向量由列向量組成。在逆lfnst的情況下,當變換矩陣g的維度表示為[行的數量
×
列的數量]時,在正向lfnst的情況下,矩陣g的轉置變成g
t
的維度。
[0178]
對于逆lfnst,矩陣g的維度是[48
×
16]、[48
×
8]、[16
×
16]、[16
×
8],并且[48
×
8]矩陣和[16
×
8]矩陣是分別從[48
×
16]矩陣和[16
×
16]矩陣的左側采樣的8個變換基向量的部分矩陣。
[0179]
另一方面,對于正向lfnst,矩陣g
t
的維度是[16
×
48]、[8
×
48]、[16
×
16]、[8
×
16],并且[8
×
48]矩陣和[8
×
16]矩陣是通過分別從[16
×
48]矩陣和[16
×
16]矩陣的上部采樣8個變換基向量而獲得的部分矩陣。
[0180]
因此,在正向lfnst的情況下,[48
×
1]向量或[16
×
1]向量可以作為輸入x,并且[16
×
1]向量或[8
×
1]向量可以作為輸出y。在視頻編譯和解碼中,正向初級變換的輸出是二維(2d)數據,因此為了構造[48
×
1]向量或[16
×
1]向量作為輸入x,需要通過將作為正向變換的輸出的2d數據適當地布置來構造一維向量。
[0181]
圖6是例示根據示例的將正向初級變換的輸出數據布置成一維向量的順序的圖。圖6的(a)和(b)的左圖示出了用于構造[48
×
1]向量的順序,并且圖6的(a)和(b)的右圖示出了用于構造[16
×
1]向量的順序。在lfnst的情況下,可以通過將2d數據按與圖6的(a)和(b)中相同的次序順序地布置來獲得一維向量x。
[0182]
可以根據當前塊的幀內預測模式確定正向初級變換的輸出數據的布置方向。例如,在當前塊的幀內預測模式相對于對角線方向處于水平方向時,可以按圖6的(a)的次序布置正向初級變換的輸出數據,并且在當前塊的幀內預測模式相對于對角線方向處于垂直方向時,可以按圖6的(b)的次序布置正向初級變換的輸出數據。
[0183]
根據示例,可以應用不同于圖6的(a)和(b)的布置次序的布置次序,并且為了推導與應用圖6的(a)和(b)的布置次序時相同的結果(y向量),可以根據布置次序重新布置矩陣g的列向量。也就是說,可以重新布置g的列向量,使得構成x向量的每個元素總是乘以相同的變換基向量。
[0184]
由于通過式9推導的輸出y是一維向量,因此當在使用正向次級變換的結果作為輸入的過程中(例如,在執行量化或殘差編譯的過程中)需要二維數據作為輸入數據時,式9的輸出y向量需要再次被適當地布置為2d數據。
[0185]
圖7是例示根據示例的將正向次級變換的輸出數據布置成二維向量的順序的圖。
[0186]
在lfnst的情況下,輸出值可以根據預定掃描次序布置在2d塊中。圖7的(a)示出了當輸出y是[16
×
1]向量時,根據對角線掃描次序將輸出值布置在2d塊的16個位置處。圖7的(b)示出了當輸出y是[8
×
1]向量時,根據對角線掃描次序將輸出值布置在2d塊的8個位置
處,并且用零填充其余的8個位置。圖7的(b)中的x指示它被填充有零。
[0187]
根據另一示例,由于可以預設在執行量化或殘差編譯時處理輸出向量y的次序,因此輸出向量y可以不布置在如圖7中所示的2d塊中。然而,在殘差編譯的情況下,可以在2d塊(例如,4
×
4)單元(例如,cg(系數組))中執行數據編譯,并且在此情況下,根據如圖7的對角線掃描次序中的特定次序來布置數據。
[0188]
此外,解碼設備可以通過根據用于逆變換的預設掃描次序來布置通過解量化過程輸出的二維數據來配置一維輸入向量y。輸入向量y可以通過下式輸出為輸出向量x。
[0189]
[式10]
[0190]
x=gy
[0191]
在逆lfnst的情況下,可以通過將作為[16
×
1]向量或[8
×
1]向量的輸入向量y乘以g矩陣來推導輸出向量x。對于逆lfnst,輸出向量x可以是[48
×
1]向量或[16
×
1]向量。
[0192]
輸出向量x根據圖6中所示的次序布置在二維塊中,并且被布置為二維數據,并且該二維數據成為逆初級變換的輸入數據(或輸入數據的一部分)。
[0193]
因此,逆次級變換整體上是正向次級變換過程的相反,并且在逆變換的情況下,與在正向方向中不同,首先應用逆次級變換,然后應用逆初級變換。
[0194]
在逆lfnst中,可以選擇8個[48
×
16]矩陣和8個[16
×
16]矩陣中的一個作為變換矩陣g。是應用[48
×
16]矩陣還是應用[16
×
16]矩陣取決于塊的大小和形狀。
[0195]
另外,可以從如上表2所示的四個變換集中推導8個矩陣,并且每個變換集可以由兩個矩陣組成。根據幀內預測模式確定在4個變換集之中使用哪個變換集,并且更具體地,基于通過考慮廣角幀內預測(waip)而擴展的幀內預測模式的值來確定變換集。通過索引信令來推導從構成所選擇的變換集的兩個矩陣之中選擇哪個矩陣。更具體地,0、1和2可以作為發送的索引值,0可以指示不應用lfnst,并且1和2可以指示構成基于幀內預測模式值選擇的變換集的兩個變換矩陣中的任何一個。
[0196]
圖8是例示根據本文檔的實施方式的廣角幀內預測模式的圖。
[0197]
一般幀內預測模式值可以具有從0到66以及從81到83的值,并且由于waip而擴展的幀內預測模式值可以具有所示的從-14到83的值。從81到83的值指示cclm(跨分量線性模型)模式,并且從-14到-1的值和從67到80的值指示由于waip應用而擴展的幀內預測模式。
[0198]
在當前預測塊的寬度大于高度時,上參考像素通常更接近要預測的塊內部的位置。因此,在左底部方向中比在右頂部方向中進行預測可以更準確。相反,當塊的高度大于寬度時,左參考像素通常更接近要預測的塊內部的位置。因此,在右頂部方向中比在左底部方向中進行預測可以更準確。因此,將重映射(即,模式索引修改)應用到廣角幀內預測模式的索引可以是有利的。
[0199]
當應用廣角幀內預測時,關于現有幀內預測的信息可以被發信號通知,并且在信息被解析之后,該信息可以被重映射到廣角幀內預測模式的索引。因此,可以不改變用于特定塊(例如,特定大小的非正方形塊)的幀內預測模式的總數量,也就是說,幀內預測模式的總數量是67,并且可以不改變用于特定塊的幀內預測模式編譯。
[0200]
下表3示出了通過將幀內預測模式重映射到廣角幀內預測模式來推導修改的幀內模式的過程。
[0201]
[表3]
[0202][0203]
在表3中,擴展的幀內預測模式值最終存儲在predmodeintra變量中,并且isp_no_split指示cu塊不通過當前在vvc標準中采用的幀內子分區(isp)技術劃分成子分區,并且0、1和2的cidx變量值分別指示亮度分量、cb分量和cr分量的情況。表3所示的log2函數返回基數為2的log值,并且abs函數返回絕對值。
[0204]
指示幀內預測模式的變量predmodeintra以及變換塊的高度和寬度等用作廣角幀內預測模式映射過程的輸入值,并且輸出值是修改的幀內預測模式predmodeintra。變換塊或編譯塊的高度和寬度可以為用于幀內預測模式的重映射的當前塊的高度和寬度。此時,反映寬度與寬度的比率的變量whratio可以被設置為abs(log2(nw/nh))。
[0205]
對于非正方形塊,幀內預測模式可以劃分成兩種情況并且被修改。
[0206]
首先,如果條件(1)至(3)全部被滿足,(1)當前塊的寬度大于高度、(2)在修改之前的幀內預測模式等于或大于2、以及(3)幀內預測模式當變量whratio大于1時小于被推導為(8+2*whratio)的值并且當變量whratio小于或等于1時小于8(predmodeintra小于(whratio》1)?(8+2*whratio):8),則幀內預測模式被設置為比predmodeintra大65的值[predmodeintra被設置為等于(predmodeintra+65)]。
[0207]
如果與以上不同,即,如果條件(1)至(3)被滿足,(1)當前塊的高度大于寬度、(2)
在修改之前的幀內預測模式小于或等于66、以及(3)幀內預測模式當whratio大于1時大于被推導為(60-2*whratio)的值并且當whratio小于或等于1時大于60(predmodeintra大于(whratio》1)?(60-2*whratio):60),則幀內預測模式被設置為比predmodeintra小67的值[predmodeintra被設置為等于(predmodeintra-67)]。
[0208]
上表2示出了如何在lfnst中基于由waip擴展的幀內預測模式值選擇變換集。如圖8所示,模式14到33和模式35到80關于模式34周圍的預測方向對稱。例如,模式14和模式54關于對應于模式34的方向是對稱的。因此,相同的變換集應用于位于相互對稱的方向中的模式,并且這種對稱性也反映在表2中。
[0209]
此外,假設模式54的正向lfnst輸入數據與模式14的正向lfnst輸入數據對稱。例如,對于模式14和模式54,根據圖6的(a)和圖6的(b)所示的布置次序將二維數據重新布置為一維數據。另外,可以看出,圖6的(a)和圖6的(b)所示的次序的圖案關于由模式34指示的方向(對角線方向)是對稱的。
[0210]
此外,如上所述,由變換目標塊的大小和形狀來確定將[48
×
16]矩陣和[16
×
16]矩陣中的哪個變換矩陣應用于lfnst。
[0211]
圖9是例示lfnst被應用于的塊形狀的圖。圖9的(a)示出了4
×
4塊,(b)示出了4
×
8塊和8
×
4塊,(c)示出了4
×
n塊或n
×
4塊,其中n為16或更大,(d)示出了8
×
8塊,(e)示出了m
×
n塊,其中m≥8、n≥8并且n》8或m》8。
[0212]
在圖9中,具有厚邊界的塊指示lfnst被應用到的區域。對于圖9(a)和(b)的塊,lfnst被應用于左頂部4
×
4區域,并且對于圖9(c)的塊,lfnst被單獨地應用于被連續地布置的兩個左頂部4
×
4區域。在圖9的(a)、(b)和(c)中,由于lfnst以4
×
4區域為單位應用,所以該lfnst在下文中將被稱為“4
×
4lfnst”。作為對應的變換矩陣,可以基于圖9和圖10中的g的矩陣維度來應用[16
×
16]或[16
×
8]矩陣。
[0213]
更具體地,[16
×
8]矩陣被應用到圖9的(a)的4
×
4塊(4
×
4tu或4
×
4cu),并且[16
×
16]矩陣被應用到圖9的(b)和(c)中的塊。這是為了將最壞情況的計算復雜度調整為每個樣本8次乘法。
[0214]
關于圖9的(d)和(e),lfnst被應用于左頂部8
×
8區域,并且該lfnst在下文中被稱為“8
×
8lfnst”。作為對應的變換矩陣,可以應用[48
×
16]矩陣或[48
×
8]矩陣。在正向lfnst的情況下,由于[48
×
1]向量(式9中的x向量)作為輸入數據被輸入,所以不是左頂部8
×
8區域的所有樣本值都被用作正向lfnst的輸入值。也就是說,如可以從圖6(a)的左側次序或圖6(b)的左側次序看出的,可以基于屬于在將右底部4
×
4塊原樣留下的同時的其余3個4
×
4塊的樣本來構造[48
×
1]向量。
[0215]
[48
×
8]矩陣可以應用于圖9(d)中的8
×
8塊(8
×
8tu或8
×
8cu),并且[48
×
16]矩陣可以應用于圖9(e)中的8
×
8塊。這也是為了將最壞情況的計算復雜度調整為每個樣本8次乘法。
[0216]
取決于塊形狀,當對應的正向lfnst(4
×
4或8
×
8lfnst)被應用時,生成8或16個輸出數據(式9中的y向量,[8
×
1]或[16
×
1]向量)。在正向lfnst中,由于矩陣g
t
的特性,輸出數據的數量等于或小于輸入數據的數量。
[0217]
圖10是例示根據示例的正向lfnst的輸出數據的布置的圖,并且示出了其中根據塊形狀布置正向lfnst的輸出數據的塊。
[0218]
在圖10所示的塊的左頂部的陰影區域對應于正向lfnst的輸出數據所位于的區域,用0標記的位置指示填充有0值的樣本,并且其余區域表示未被正向lfnst改變的區域。在未被lfnst改變的區域中,正向初級變換的輸出數據保持不變。
[0219]
如上所述,由于所應用的變換矩陣的尺寸根據塊的形狀而變化,因此輸出數據的數量也變化。如圖10,正向lfnst的輸出數據可能不完全填充左頂部4
×
4塊。在圖10的(a)和(d)的情況下,將[16
×
8]矩陣和a[48
×
8]矩陣分別應用于由粗線指示的塊或塊內部的部分區域,并且生成作為正向lfnst的輸出的[8
×
1]向量。也就是說,根據圖7的(b)所示的掃描次序,可以僅填充8個輸出數據,如圖10的(a)和(d)所示,并且可以在其余的8個位置中填充0。在圖9(d)的lfnst應用的塊的情況下,如圖10(d)所示,與左頂部4
×
4塊相鄰的右頂部和左底部的兩個4
×
4塊也被填充有0值。
[0220]
如上所述,基本上,通過發信號通知lfnst索引,規定了是否應用lfnst和要應用的變換矩陣。如圖10所示,當lfnst被應用時,由于正向lfnst的輸出數據的數量可以等于或小于輸入數據的數量,所以出現如下填充有零值的區域。
[0221]
1)如圖10的(a)所示,來自左頂部4
×
4塊中的掃描次序上的第八個位置和后面的位置的樣本,即,來自第九到第十六的樣本。
[0222]
2)如圖10的(d)和(e)中所示,當應用[16
×
48]矩陣或[8
×
48]矩陣時,與左頂部4
×
4塊相鄰的兩個4
×
4塊或者掃描次序上的第二和第三4
×
4塊。
[0223]
因此,如果通過檢查區域1)和2)存在非零數據,則確定未應用lfnst,使得可以省略對應的lfnst索引的信令。
[0224]
根據示例,例如,在vvc標準中采用的lfnst的情況下,由于在殘差編譯之后執行lfnst索引的信令,因此編碼設備可以通過殘差編譯來知道在tu或cu塊內的所有位置是否存在非零數據(有效系數)。因此,編碼設備可以基于非零數據的存在來確定是否執行關于lfnst索引的信令,并且解碼設備可以確定是否解析lfnst索引。當非零數據不存在于以上1)和2)中指定的區域中時,執行lfnst索引的信令。
[0225]
由于截短的一元碼被應用為lfnst索引的二值化方法,所以lfnst索引由多達兩個bin組成,并且0、10和11分別被指派為用于可能的lfnst索引值0、1和2的二進制碼。在當前用于vvc的lfnst的情況下,將基于上下文的cabac編譯應用于第一bin(常規編譯),并且將旁通編譯應用于第二bin。第一bin的上下文的總數量為2,當(dct-2,dct-2)被應用為用于水平和垂直方向的初級變換對并且亮度分量和色度分量以雙樹類型編譯時,一個上下文被分配并且另一上下文應用于其余情況。lfnst索引的編譯如下表所示。
[0226]
[表4]
[0227][0228]
此外,對于采用的lfnst,可以應用以下簡化方法。
[0229]
根據示例,正向lfnst的輸出數據的數量可以被限于最大值16。
[0230]
在圖9的(c)的情況下,4
×
4lfnst可以分別應用于與左頂部相鄰的兩個4
×
4區域,
并且在這種情況下,可以生成最大32個lfnst輸出數據。當正向lfnst的輸出數據的數量被限制為最大值16時,在4
×
n/n
×
4(n≥16)塊(tu或cu)的情況下,4
×
4lfnst僅應用于左頂部的一個4
×
4區域,lfnst可以僅應用于圖9的所有塊一次。通過此,可以簡化圖像編譯的實現方式。
[0231]
圖11示出了根據示例的正向lfnst的輸出數據的數量被限制為最大值16。如圖11,當lfnst被應用到4
×
n或n
×
4塊(其中n為16或更大)中的最左頂部的4
×
4區域時,正向lfnst的輸出數據成為16個。
[0232]
(ii)根據示例,可以附加地清零應用到未應用lfnst的區域。在本文檔中,清零可以表示用為0的值填充屬于特定區域的所有位置。也就是說,可以將清零應用于由于lfnst而未改變的區域,并且維持正向初級變換的結果。如上所述,由于lfnst被劃分為4
×
4lfnst和8
×
8lfnst,所以清零可以如下劃分為兩種類型((ii)-(a)和(ii)-(b))。
[0233]
(ii)-(a)當應用4
×
4lfnst時,未應用4
×
4lfnst的區域可以被清零。圖12是例示根據示例的應用4
×
4lfnst的塊中的清零的圖。
[0234]
如圖12所示,關于應用了4
×
4lfnst的塊,即,對于圖10的(a)、(b)和(c)中的所有塊,未應用lfnst的整個區域可以用零填充。
[0235]
另一方面,圖12的(d)示出當正向lfnst的輸出數據的數量的最大值被限制為16(如圖11所示)時,對未應用4
×
4lfnst的其余塊執行清零。
[0236]
(ii)-(b)當應用8
×
8lfnst時,未應用8
×
8lfnst的區域可以被清零。圖13是例示根據示例的應用8
×
8lfnst的塊中的清零的圖。
[0237]
如圖13所示,關于應用8
×
8lfnst的塊,即,對于圖10的(d)和(e)中的所有塊,lfnst未被應用到的整個區域可以用零填充。
[0238]
(iii)由于以上(ii)中呈現的清零,用零填充的區域可以不與當lfnst被應用時相同。因此,可以根據對比圖10的lfnst的情況更寬的區域進行(ii)中提出的清零來檢查是否存在非零數據。
[0239]
例如,當(ii)-(b)被應用時,在檢查圖10的(d)和(e)中的用零值填充的區域是否存在非零數據之后,另外附加地檢查圖13中填充有0的區域是否存在非零數據,可以僅當不存在非零數據時執行針對lfnst索引的信令。
[0240]
當然,即使應用(ii)中提出的清零,也可以與現有lfnst索引信令相同的方式檢查非零數據是否存在。也就是說,在檢查在圖10中用零填充的塊中是否存在非零數據之后,可以應用lfnst索引信令。在此情況下,編碼設備僅執行清零并且解碼設備不假設清零,也就是,僅檢查非零數據是否僅存在于圖10中明確標記為0的區域中,可以執行lfnst索引解析。
[0241]
另選地,根據另一示例,可以執行如圖14所示的清零。圖14是例示根據另一示例的應用8
×
8lfnst的塊中的清零的圖。
[0242]
如圖12和圖13所示,可以將清零應用于除了應用lfnst的區域之外的所有區域,或者可以將清零僅應用于局部區域,如圖14所示。清零僅應用于除了圖14的左頂部8
×
8區域之外的區域,清零可以不應用于左頂部8
×
8區域內的右底部4
×
4塊。
[0243]
可以推導出應用lfnst的簡化方法((i)、(ii)-(a)、(ii)-(b)、(iii))的組合的各種實施方式。當然,以上簡化方法的組合不限于以下實施方式,并且可以將任何組合應用于lfnst。
[0244]
實施方式
[0245]
將正向lfnst的輸出數據的數量限制為最大值16
→(i)[0246]
當應用4
×
4lfnst時,未應用4
×
4lfnst的所有區域被清零

(ii)-(a)
[0247]
當應用8
×
8lfnst時,未應用8
×
8lfnst的所有區域被清零

(ii)-(b)
[0248]
在檢查非零數據是否也存在于填充有零值的現有區域以及由于附加的清零而填充有零的區域中((ii)-(a)、(ii)-(b))之后,僅在不存在非零數據時發信號通知lfnst索引

(iii)。
[0249]
在實施方式的情況下,當應用lfnst時,可以存在非零輸出數據的區域限于左頂部4
×
4區域的內部。更詳細地,在圖12的(a)和圖13的(a)的情況下,掃描次序上的第八個位置是其中可以存在非零數據的最后位置。在圖12的(b)和(c)以及圖13的(b)的情況下,掃描次序上的第十六個位置(即,左頂部4
×
4塊的右底部邊緣的位置)是其中可以存在除了0以外的數據的最后位置。
[0250]
因此,在應用lfnst時,在檢查非零數據是否存在于殘差編譯過程不被允許的位置(在超出最后位置的位置處)之后,可以確定是否發信號通知lfnst索引。
[0251]
在(ii)中提出的清零方法的情況下,由于當應用了初級變換和lfnst兩者時最終生成的數據的數量,所以執行整個變換過程所需的計算量可以降低。也就是說,當lfnst被應用時,由于清零被應用于正向初級變換輸出數據存在于未應用lfnst的區域中,因此不需要為在執行正向初級變換期間成為清零的區域生成數據。因此,可以降低生成對應的數據所需的計算量。在(ii)中提出的清零方法的附加效果總結如下。
[0252]
首先,如上所述,減少執行整個變換過程所需的計算量。
[0253]
特別地,當應用(ii)-(b)時,最壞情況的計算量被減少,使得變換過程可以被變輕。換句話說,一般來說,需要大量的計算來執行大尺寸的初級變換。通過應用(ii)-(b),作為執行正向lfnst的結果而推導出的數據的數量可以減小到16或更小。另外,隨著整個塊(tu或cu)的大小增加,減少變換操作的量的效果進一步增加。
[0254]
第二,可以減少整個變換過程所需的計算量,由此降低執行變換所需的功耗。
[0255]
第三,減小了變換過程中涉及的延遲。
[0256]
諸如lfnst之類的次級變換向現有的初級變換添加了計算量,因而增加了執行變換時涉及的總體延遲時間。特別地,在幀內預測的情況下,由于在預測過程中使用相鄰塊的重構數據,所以在編碼期間,由于次級變換導致的延遲的增加導致直到重構的延遲的增加。這可以導致幀內預測編碼的總體延遲的增加。
[0257]
然而,如果應用(ii)中提出的清零,則當應用lfnst時可以極大地減少執行初級變換的延遲時間,保持或減少整個變換的延遲時間,使得可以更簡單地實現編碼設備。
[0258]
在下文中,表中示出了反映實施方式的圖像解碼處理。
[0259]
[表5]
[0260][0261]
表5示出了通過序列參數集語法發信號通知作為關于變換塊的大小的語法信息的sps_log2_max_luma_transform_size_minus5。根據語義,sps_log2_max_luma_transform_size_minus5表示在將最大變換大小取以2為底的對數后減去5得到的值。
[0262]
可以執行變換的變換塊的最小大小(mintbsizey)設置為4(mintbsizey=1《《mintblog2sizey),并且可以執行變換的變換塊的最大大小可以被推導為通過sps_log2_max_luma_transform_size_minus5加5獲得的值的2的冪(maxtblog2sizey=sps_log2_max_luma_transform_size_minus5+5,maxtbsizey=1《《maxtblog2sizey)。
[0263]
由于sps_log2_max_luma_transform_size_minus5由1位組成,并且具有值0或1,最大變換塊的寬度和高度可以基于表5的sps_log2_max_luma_transform_size_minus5設置為32或64。
[0264]
此外,根據另一實施方式,可以發信號通知最大變換塊的大小的標志信息sps_max_luma_transform_size_64_flag。當sps_max_luma_transform_size_64_flag為1時,變換塊的最大大小為64,當sps_max_luma_transform_size_64_flag為0時,變換塊的最大大
小為32。
[0265]
[表6]
[0266][0267]
表6示出了在編譯單元層級發信號通知的lfnst_idx[x0][y0]語法元素。lfnst_idx[x0][y0]可以指示變換集中所包括的兩個變換核矩陣中的任何一個。如果lfnst_idx為0,則它可以指示不應用不可分離的次級變換(即,lfnst)。
[0268]
為了使lfnst_idx被解碼設備解析,需要滿足很多條件。首先,變量lfnstdconly和變量lfnstzerooutsigcoeffflag初始設置為1。在解析變換樹的語法(transform_tree(x0,y0,cbwidth,cbheight,treetype))之后,當設置為1的變量lfnstdconly變為0,并且變量lfnstzerooutsigcoeffflag的值保持為1時,可以解析lfnst_idx[if(lfnstdconly==0&amp;&amp;lfnstzerooutsigcoeffflag==1)]??梢酝ㄟ^殘差編譯語法信息推導變量lfnstdconly和變量lfnstzerooutsigcoeffflag。
[0269]
此外,lfnst_idx[x0][y0]可以被編譯的最大編譯塊大小被限制為最大變換大小(max(cbwidth,cbheight)《=maxtbsizey)。
[0270]
另外,由于編譯塊的寬度(cbwidth)和編譯塊的高度(cbheight)分別指示亮度分量的編譯塊的寬度和編譯塊的高度,在色度分量的情況下,lfnst可以根據圖像顏色格式(例如,4:2:0)應用于大小較小的每個塊。
[0271]
具體地,如表6所示,如果目標塊的樹類型為雙樹色度,則lfnst可以應用于具有如
下大小的色度塊:在亮度編譯塊的大小中除以了指示對于色度塊的變量的subwidthc和subheight的大小[lfnstwidth=(treetype==dual_tree_chroma)?cbwidth/subwidthc:cbwidth,lfnstheight=(treetype==dual_tree_chroma)?cbheight/subheightc:cbheight]。
[0272]
如果顏色格式為4:2:0,則subwidthc和subheight變為2,因此lfnst可以應用于具有通過將亮度塊的寬度和高度除以2得到的寬度和高度的色度塊。因此,由于在亮度塊的大小等于或小于64
×
64塊時可以應用lfnst,所以在顏色格式為4:2:0時當色度塊的大小等于或小于32
×
32塊時,可以應用lfnst。
[0273]
此外,在本文檔中,當塊a的水平長度和垂直長度分別為wa和ha時,并且當塊b的水平長度和垂直長度分別為wb和hb時,塊a小于塊b意味著wa等于或小于wb,ha等于或小于hb,并且wa和wb不相等或ha和hb不相等。另外,塊a小于或等于塊b的意思指示wa等于或小于wb并且ha等于或小于hb。
[0274]
綜上所述,當目標塊的大小等于或小于預設的最大大小時,可以應用lfnst,該最大大小可以應用于亮度塊的大小,并且相應地,可以推導出可以應用lfnst的色度塊的最大大小。
[0275]
[表7]
[0276][0277]
表7示出了指示對于變換塊是否跳過變換的transform_skip_flag以及作為用于初級變換的變換核索引信息tu_mts_idx[x0][y0]。
[0278]
如表7所示,為了發信號通知tu_mts_idx[x0][y0],可以存在當前塊的預測模式是幀間模式或者當顯式地指示mts是否可以應用于通過幀間預測所生成的殘差數據的標志信息sps_explicit_mts_inter_enabled_flag為1時[(cupredmode[x0][y0]==mode_inter&amp;&amp;sps_explicit_mts_inter_enabled_flag)]的情況,或者當前塊的預測模式是幀內模式或者當顯式地指示mts是否可以應用于通過幀內預測所生成的殘差數據的標志信息sps_explicit_mts_intra_enabled_flag為1時[(cupredmode[x0][y0]==mode_intra&amp;&amp;sps_explicit_mts_intra_enabled_flag)]的情況。
[0279]
另外,當滿足transform_skip_flag不為0的條件時,可以解析tu_mts_idx[x0]
[y0]。
[0280]
此外,根據另一示例,可以在表6的編譯單元層級而不是變換單元層級發信號通知tu_mts_idx[x0][y0]。
[0281]
[表8]
[0282]
[0283][0284]
表8示出了殘差編譯語法,并且示出推導表6的變量lfnstdconly和變量lfnstzerooutsigcoeffflag的過程。
[0285]
基于變換塊的大小,可以推導指示子塊的高度和寬度的變量log2sbw和變量log2sbh,可以基于變量log2sbw和變量log2sbh設置表示子塊中可以存在的系數的數量的numsbcoeff[numsbcoeff=1《《(log2sbw+log2sbh)]。
[0286]
指示子塊內的最后有效系數的位置的變量lastscanpos初始被設置為numsbcoeff,指示存在最后非零系數的子塊的變量lastsubblock初始被設置為“(1《《(log2tbwidth+log2tbheight

(log2sbw+log2sbh)))

1”。
[0287]
在與lastsubblock[lastscanpos
??
]相對應的子塊中進行對角線掃描時,檢查最后非零有效系數是否存在于相應位置處。
[0288]
當在lastsubblock所指向的子塊內直至變量lastscanpos變為0沒有發現任何有效系數時,變量lastscanpos再次被設置為numsbcoeff,并且變量lastsubblock也變為在掃描方向中的下一個子塊。
[0289]
也就是說,隨著變量lastscanpos和變量lastsubblock根據掃描方向而更新,最后非零系數所在的位置被識別。
[0290]
變量lfnstdconly指示非零系數是否存在于對于一個編譯單元中的至少一個變換
塊的不是dc分量的位置處,當非零系數存在于對于一個編譯單元中的至少一個變換塊的不是dc分量的位置處時,它變為0,并且當非零系數不存在于對于一個編譯單元中的至少一個變換塊的不是dc分量的位置時,它變為1。在本文檔中,dc分量是指相對于2d分量的左頂部位置或(0,0)。
[0291]
一個編譯單元內可以存在若干個變換塊。例如,在色度分量的情況下,可以存在針對cb和cr的變換塊,而在單樹類型的情況下,可以存在針對亮度、cb和cr的變換塊。根據示例,當在構成當前編譯塊的變換塊之中的一個變換塊中發現除了dc分量的位置之外的非零系數時,變量lnfstdconly值可以被設置為0。
[0292]
同時,由于如果在變換塊中不存在非零系數,則不對相應變換塊執行殘差編譯,所以變量lfnstdconly的值未被相應變換塊改變。因此,當在變換塊中不是dc分量的位置中不存在非零系數時,變量lfnstdconly的值未發生改變并且維持先前值。例如,如果編譯單元被編譯為單樹類型并且變量lfnstdconly的值由于亮度變換塊而被改變為0,則即使僅在cb/cr變換塊中的dc分量中存在非零系數或者在cb/cr變換塊中不存在非零系數,變量lfnstdconly也保持0值。變量lfnstdconly的值初始地被初始化為1,并且如果當前編譯單元中的沒有分量能夠將變量lfnstdconly的值更新為0,則它照原樣保持1值,并且當變量lfnstdconly的值在構成相應編譯單元的任何一個處被更新為0時,它最終被維持在0。
[0293]
如表8所示,當存在最后非零系數的子塊的索引為0時[lastsubblock==0]且子塊中的最后非零系數的位置大于0[lastscanpos》0]時,變量lfnstdconly可以被推導為0。變量lfnstdconly只有在變換塊的寬度和高度為4或更大[log2tbwidth》=2&amp;&amp;log2tbheight》=2]并且沒有應用變換跳過[!transform_skip_flag[x0][y0]]時才可以被推導為0。
[0294]
假設應用了lfnst,在存在最后非零系數的子塊的索引大于0且變換塊的寬度和高度二者都大于或等于4[(lastsubblock》0&amp;&amp;log2tbwidth》=2&amp;&amp;log2tbheight》=2)]的情況下,或者在當存在最后非零系數的子塊內的非零系數的最后位置大于7且變換塊的大小為4
×
4或8
×
8[(lastscanpos》7&amp;&amp;(log2tbwidth==2||log2tbheight==3)&amp;&amp;log2tbwidth==log2tbheight)]的情況下,可以指示是否適當地執行了清零的變量lfnstzerooutsigcoeffflag被設置為0。
[0295]
也就是說,變量lfnstzerooutsigcoeffflag的第一條件是在變換塊中除了可以應用lfnst的左頂部區域以外的區域中推導出非零系數的條件(即,當推導出在除了左頂部子塊(4
×
4)以外的子塊中的有效系數時)。當滿足第一條件時,用于lfnst的清零的標志變量lfnstzerooutsigcoeffflag被設置為0。滿足第一條件表示不執行清零,假設應用了lfnst。
[0296]
變量lfnstzerooutsigcoeffflag的第二條件是針對4
×
4塊和8
×
8塊的。當lfnst應用于4
×
4塊和8
×
8塊時,由于可以存在非零系數的最后位置是圖11的(a)和(d)所示的第8個位置,如果從0開始時在第7個位置之外存在非零系數,則標志變量lfnstzerooutsigcoeffflag被設置為0。滿足第二條件還指示在假設應用lfnst時不執行清零。
[0297]
如此,當標志變量lfnstzerooutsigcoeffflag被設置為0時,如表6所示,不發信號通知在編譯單元層級發信號通知的lfnst_idx。也就是說,當標志變量lfnstzerooutsigcoeffflag被設置為0時,解碼設備不解析lfnst_idx。
[0298]
綜上所述,在編譯單元層級,變量lfnstdconly和變量lfnstzerooutsigcoeffflag分別被設置為1,然后在殘差編譯層級通過表8所示的過程來新推導變量lfnstdconly和變量lfnstzerooutsigcoeffflag。只有當從殘差編譯層級推導出的變量lfnstdconly為0并且變量lfnstzerooutsigcoeffflag為1[if(lfnstdconly==0&amp;&amp;lfnstzerooutsigcoeffflag==1)時,可以發信號通知lfnst_idx。
[0299]
[表9]
[0300]
[0301]
[0302][0303]
[表10]
[0304]
[0305][0306]
表9和表10示出了基于從表5推導出的變換塊的大小的變量maxtbsizey執行幀內預測和幀間預測過程。
[0307]
根據針對亮度或色度的顏色索引cidx從反映顏色格式的變量maxtbsizey或maxtbsizey/subwidthc推導變換塊的最大寬度(maxtbwidth)和最大高度(maxtbheight)[maxtbwidth=(cidx==0)?maxtbsizey:maxtbsizey/subwidthc,maxtbheight=(cidx==0)?maxtbsizey:maxtbsizey/subheightc]。
[0308]
基于以此方式推導的變量maxtbwidth和變量maxtbheight來設置用于幀間預測和幀內預測的變換塊的高度和寬度[newtbw=(ntbw》maxtbwidth)?(ntbw/2):ntbw,newtbh=(ntbh》maxtbheight)?(ntbh/2):ntbh],可以基于所設置的值執行后續的預測過程。
[0309]
[表11]
[0310]
[0311]
[0312][0313]
表11示出了由解碼設備執行的整體變換過程。
[0314]
參照表11,指示為了應用lfnst而對其執行矩陣運算的非零變量的大小或數量的變量nonzerosize被設置為8或16。當變換塊的寬度和高度為4或8時,即圖10所示的4
×
4塊和8
×
8塊的正向lfnst的輸出數據或逆lfnst的輸入數據的長度為8。對于所有其他塊,正向lfnst的輸出數據或逆lfnst的輸入數據的長度為16[nonzerosize=((ntbw==4&amp;&amp;ntbh=
=4)||(ntbw==8&amp;&amp;ntbh==8))?8:16]。也就是說,當應用正向lfnst時,輸出數據的最大數量被限制為16。
[0315]
該逆lfnst的輸入數據可以根據對角線掃描以二維布置[xc=diagscanorder[2][2][x][0],yc=diagscanorder[2][2][x][1]]。上述部分示出了lfnst簡化方法的(i)的解碼過程。
[0316]
如此,由于用于變換塊的逆lfnst的輸入數據的數量被限制為最大值16,因此lfnst可以應用于4
×
n塊或n
×
4塊中最左頂部的4
×
4區域,其中n為16或更大,如圖11所示,并且結果如圖12的(d)所示,可以對未應用4
×
4lfnst的其余塊執行清零。
[0317]
另一方面,當幀內預測模式大于或等于81時,即,當在色度塊的幀內預測期間應用cclm時,用于推導變換集的幀內預測模式(predmodeintra)可以被設置為對應亮度塊的幀內模式(intrapredmodey[xtby+ntbw/2][ytby+ntbh/2])。
[0318]
此外,指示是否隱式地執行mts的變量implicitmtsenabled在其滿足在序列參數層級發信號通信的標志信息sps_mts_enabled_flag為1,sps_explicit_mts_intra_enabled_flag為0,幀內預測模式應用于當前塊,lfnst_idx為0,且intra_mip_flag為1的條件下,可以被設置為1。
[0319]
另外,指示其中可以存在輸入到逆初級變換的非零變換系數的左上塊的寬度和高度的變量nonzerow和nonzeroh,在lfnst索引不為0且變換塊的寬度或寬度為4時,被推導為4,否則被推導為8[nonzerow=(ntbw==4||ntbh==4)?4:8,nonzeroh=(ntbw==4||ntbh==4)?4:8]。也就是說,在變換塊中,在除了被應用lfnst的4
×
4區域和8
×
8區域之外的區域中執行清零。該部分示出了用于lfnst簡化方法的(ii)的解碼過程。
[0320]
[表12]
[0321][0322]
表12示出了基于用于推導變換核矩陣的輸入值和幀內預測模式推導出的lfnst變換集和用于lfnst的變換集。
[0323]
如表12所示,可以使用指示推導變換核矩陣的變換輸出大小的變量ntrs、用于選擇lfnst變換集的幀內預測模式信息(predmodeintra)、以及從編譯單元發信號通知的lfnst索引作為輸入值,來推導變換核矩陣(lowfreqtransmatrix)。
[0324]
存在四個lfnst變換集,諸如0、1、2、3,并且可以基于幀內預測模式的對稱性向位于相互對稱方向的模式應用相同的變換集。當幀內預測模式為非定向平面模式或dc模式(0《=predmodeintra《=1)時,則變換集為0,在廣角幀內預測模式(predmodeintra《0,56《=predmodeintra《=80)的情況下,變換集為1。
[0325]
另一方面,如上所述,當cclm應用于色度塊時,用于推導變換集的色度塊的幀內預測模式(predmodeintra)可以被設置為對應亮度塊的幀內模式(intrapredmodey[xtby+ntbw/2][ytby+ntbh/2])而不是指示cclm或平面模式的81至83。
[0326]
因此,在表12的用于變換集選擇的幀內預測模式(predmodeintra)中省略了81至83。
[0327]
此外,下表13示出了分配給上述tu_mts_idx語法元素的bin索引的ctxinc(將ctxinc指派給具有上下文編譯bin的語法元素)。
[0328]
[表13]
[0329][0330]
如表13所示,tu_mts_idx的第一個bin(binidx=0)的ctxinc為0,第二個bin(binidx=1)的ctxinc為1,第三個bin(binidx=2)的ctxinc為2并且第四個bin(binidx=3)的ctxinc為3。
[0331]
在常規情況下,根據預定條件從多個ctxinc之中選擇任意一個ctxinc,并且在沒有伴隨特定條件的情況下通過將一個固定ctxinc分配給第一個bin來分配給第一個bin,如上所述,可以增加編譯效率。
[0332]
提供以下附圖以描述本公開的具體示例。由于在附圖中示出的裝置的特定名稱或特定信號/消息/字段的名稱是為了例示而提供的,所以本公開的技術特征不限于在以下附圖中使用的特定名稱。
[0333]
圖15是圖示根據本公開的實施例的視頻解碼裝置的操作的流程圖。
[0334]
圖15所圖示的每個操作可以由圖2所圖示的解碼裝置200執行。具體地,s1510至s1550可以由圖2所圖示的熵解碼器210執行,s1520可以由圖2所圖示的解量化器221執行,s1560和s1570可以由圖2所圖示的逆變換器222執行,并且s1580可以由圖2所圖示的加法器240執行。根據s1510至s1580的操作基于參考圖3至圖14在前面解釋的細節中的一些。因此,將省略或者將簡要地做出與上面參考圖2至圖14解釋的那些重疊的特定細節的描述。
[0335]
根據實施例的解碼裝置200接收包括殘差信息的比特流,并且可以從比特流中推導關于當前塊即要變換的變換塊的殘差信息,例如,量化變換系數(s1510)。
[0336]
更具體地,解碼裝置200可以對來自比特流的關于用于目標塊的量化變換系數的信息進行解碼并且可以基于關于用于當前塊的量化變換系數的信息來推導用于當前塊的量化變換系數。關于用于目標塊的量化變換系數的信息可以被包括在序列參數集(sps)或切片報頭中,并且可以包括以下各項中的至少一個:關于是否應用縮減變換(rst)的信息、關于簡化因子的信息、關于應用縮減變換的最小變換大小的信息、關于應用縮減變換的最大變換大小的信息、縮減逆變換大小、以及關于指示包括在變換集中的變換核矩陣中的任何一個的變換索引的信息。
[0337]
解碼裝置200可以基于殘差信息來推導在當前塊中最后有效系數的位置和用于當前塊的變換系數(s1520)。解碼裝置200可以對當前塊的量化變換系數執行解量化以推導變換系數。
[0338]
可以將推導的變換系數二維地布置在當前塊中,并且解碼裝置可以通過殘差編譯來推導非零數據,即,關于當前塊中的非零有效系數的信息。也就是說,解碼裝置可以確定當前塊中的非零有效系數的最后位置信息。
[0339]
基于s1520的殘差信息推導的變換系數可以是如上所述的解量化變換系數,或者可以是量化變換系數。也就是說,變換系數可以是能夠不管變換系數是否被量化都確定它是否是當前塊中的非零數據和有效系數的位置的任何數據。
[0340]
解碼裝置可以確定包括最后有效系數的子塊的索引是否為0并且子塊中的最后有效系數的位置是否是0或更大(s1530)。解碼裝置可以確定在構成編譯塊的變換塊之中的至少一個變換塊的除dc區域(dc分量所位于的區域)以外的區域中是否存在有效系數。
[0341]
在本文檔中,根據示例,dc區域可以僅意指相對于dc變換系數的位置,即,僅變換塊的左頂部位置。
[0342]
根據確定,可以推導指示在除了當前塊的dc區域以外的區域中是否存在有效系數的第一變量或第一標志信息,并且可以在殘差編譯過程中推導該第一變量或第一標志信息。在當前塊中包括最后有效系數的子塊的索引是0并且子塊中的最后有效系數的位置大于0時,可以將第一標志信息推導為0,并且如果第一標志信息是0,則能夠解析lfnst索引。
[0343]
第一標志信息可以被初始地設置為1,并且取決于在除了dc區域以外的區域中是否存在有效系數,可以被維持為1或者可以被改變為0。也就是說,指示在具有索引0的子塊中的最后有效系數的位置是否大于0的第一標志信息被初始地設置為1,當在具有索引0的子塊中的最后有效系數的位置是0或更大時,第一標志信息被改變為0。當第一標志信息被改變為0時,可以解析lfnst索引。
[0344]
根據示例,可以基于變換塊的大小來推導指示子塊的高度和寬度的變量log2sbw和變量log2sbh,并且可以基于變量log2sbw和變量log2sbh來設置表示可以存在于子塊中的系數的數目的numsbcoeff[numsbcoeff=1《《(log2sbw+log2sbh)]。
[0345]
指示在子塊內的最后有效系數的位置的變量lastscanpos被初始地設置為numsbcoeff,并且指示在其中存在最后非零系數的子塊的變量lastsubblock初始是“(1《《(log2tbwidth+log2tbheight-(log2sbw+log2sbh)))——設置為1”。
[0346]
當在與lastsubblock[lastscanpos
??
]相對應的子塊中在對角線方向中掃描時,檢查了在相應位置處是否存在除0以外的最后有效系數。
[0347]
當在由lastsubblock指向的子塊內在變量lastscanpos變為0之前未找到有效系數時,變量lastscanpos被再次設置為numsbcoeff,并且變量lastsubblock也被改變為在掃描方向[lastsubblock
??
]中的下一子塊。
[0348]
也就是說,隨著變量lastscanpos和變量lastsubblock根據掃描方向被更新,存在最后非零系數的位置被識別。
[0349]
變量lfnstdconly指示在不是一個編譯單元中的用于至少一個變換塊的dc分量的位置處是否存在非零系數,當在不是一個編譯單元中的用于至少一個變換塊的dc分量的位置中存在非零系數時,它變為0,并且當在一個編譯單元中的用于所有變換塊的除dc分量以外的位置處不存在非零系數時,它變為1。
[0350]
如表8所示,當存在最后非零系數的子塊的索引是0[lastsubblock==0],并且在子塊中的最后非零系數的位置大于0[lastscanpos》0]時,可以將變量lfnstdconly推導為
0。只有當變換塊的寬度和高度是4或更大[log2tbwidth》=2&amp;&amp;log2tbheight》=2],并且未應用變換跳過[!transform_skip_flag[x0][y0]]時,才能夠將變量lfnstdconly推導為0。
[0351]
根據示例,解碼裝置可以確定在除了當前塊的左頂部處的第一區域以外的第二區域中是否存在有效系數(s1540)。
[0352]
解碼裝置可以將指示在除了第一區域之外的第二區域中是否存在有效系數的第二變量或第二標志信息設置為1,并且當在第二區域中不存在有效系數時,可以將第二標志信息維持為1,并且可以解析lfnst索引。
[0353]
第二標志信息可以是可以指示當應用lfnst時執行清零的變量lfnstzerooutsigcoeffflag。第二標志信息被初始地設置為1,并且當在第二區域中存在有效系數時,可以將第二標志信息改變為0。
[0354]
當存在最后非零系數的子塊的索引大于0并且變換塊的寬度和高度都大于4[(lastsubblock》0&amp;&amp;log2tbwidth》=2&amp;&amp;log2tbheight》=2)]時,或者當在其中存在最后非零系數的子塊內的非零系數的最后位置大于7并且變換塊的大小是4x4或8x8[(lastscanpos》7&amp;&amp;(log2tbwidth==2||log2tbheight==3)&amp;&amp;log2tbwidth==log2tbheight)]時,能夠將變量lfnstzerooutsigcoeffflag推導為0。
[0355]
也就是說,在變換塊中,當從除了能夠存在lfnst變換系數的左頂部區域以外的區域推導非零系數時,或者對于4x4塊和8x8塊,當非零系數按掃描順序存在于第八位置外部時,變量lfnstzerooutsigcoeffflag被設置為0。在這種情況下,不解析lfnst索引。
[0356]
可以基于當前塊的大小來推導第一區域。
[0357]
例如,在當前塊的大小是4x4或8x8時,第一區域可以是在掃描方向中從當前塊的左頂部到第八個樣本位置。
[0358]
在當前塊的大小是4x4或8x8時,由于通過前向lfnst輸出8個數據,所以能夠在掃描方向中從當前塊的左頂部到第八樣本位置布置由解碼裝置接收到的8個變換系數,如在圖12(a)和圖13(a)中那樣。
[0359]
另外,在當前塊的大小不是4x4或8x8時,第一區域可以是當前塊的左頂部處的4x4區域。如果當前塊的大小不是4x4或8x8,則由于通過前向lfnst輸出16個數據,所以由解碼裝置接收到的16個變換系數可以被布置在當前塊的左頂部4x4區域中,如圖12(b)至(d)和圖13(b)所示的那樣。
[0360]
同時,可以被布置在第一區域中的變換系數可以如圖7所示的那樣沿著對角線掃描方向被布置。
[0361]
另外,根據示例,可以存在于被應用lfnst的塊中的變換系數的最大數目可以是16。
[0362]
解碼裝置可以在確定了在具有索引0的子塊中的最后有效系數的位置等于或大于0并且在第二區域中不存在有效系數時,從比特流解析lfnst索引(s1550)。
[0363]
換句話說,當第一標志信息指示在除dc區域以外的區域中存在有效系數,并且第二標志信息指示在第二區域中不存在有效系數時,解碼裝置可以從比特流解析lfnst索引。
[0364]
也就是說,當被設置為1的第一標志信息被改變為0并且第二標志信息被維持為1時,可以解析lfnst索引。換句話說,除了dc區域,在包括dc區域的子塊(即,左頂部4x4塊)中存在有效系數,并且當通過檢查有效系數直到當前塊的第二區域不存在有效系數時,可以
解析用于lfnst的lfnst索引。
[0365]
總之,在編譯單元級別處,第一標志信息lfnstdconly和第二標志信息lfnstzerooutsigcoeffflag分別被設置為1,然后在殘差編譯級別處通過表8所示的過程被重新推導。只有當從殘差編譯級別推導的變量lfnstdconly是0并且變量lfnstzerooutsigcoeffflag是1[if(lfnstdconly==0&amp;&amp;lfnstzerooutsigcoeffflag==1)]時,才可以在編譯單元級別處用信號通知lfnst_idx。
[0366]
如上所述,當由編碼裝置執行前向lfnst時,除了可能存在lfnst變換系數的區域之外的當前塊的剩余區域的清零可以被執行為0。
[0367]
因此,當在第二區域中存在有效系數時,確信未應用lfnst,所以不用信號通知lfnst索引并且解碼裝置不解析lfnst索引。
[0368]
lfnst索引信息作為語法信息被接收,并且語法信息作為包括0和1的二值化bin串被接收。
[0369]
根據本實施例的lfnst索引的語法元素可以指示是否逆lfnst或者逆不可分離變換被應用以及變換集中包括的變換核矩陣中的任何一個,并且變換集包括兩個變換核矩陣。在這種情況下,變換索引的語法元素可以具有三個值。
[0370]
也就是說,根據實施例,用于lfnst索引的語法元素值可以包括:0,其指示逆lfnst未被應用于目標塊的情況;1,其指示變換核矩陣之中的第一變換核矩陣;以及2,其指示變換核矩陣之中的第二變換核矩陣。
[0371]
當lfnst索引被解析時,解碼裝置可以將lfnst矩陣應用于第一區域的變換系數以推導修改的變換系數(s1560)。
[0372]
解碼裝置200的逆變換器232可以根據應用于當前塊的幀內預測模式基于映射關系來確定變換集,并且可以執行逆lfnst,即,基于變換集和用于lfnst索引的語法元素的值的逆不可分離變換。
[0373]
如上所述,可以根據要變換的變換塊的幀內預測模式來確定多個變換集,并且可以基于變換核矩陣(即,在由lfnst索引指示的變換集中包括的lfnst矩陣)中的任何一個來執行逆lfnst??梢詫糜谀鎙fnst的矩陣稱為逆lfnst矩陣或lfnst矩陣,并且此矩陣的名稱是無關的,只要它與用于前向lfnst的矩陣具有轉置關系即可。
[0374]
在一個示例中,逆lfnst矩陣可以是其中列數小于行數的非方形矩陣。
[0375]
同時,可以基于當前塊的大小來推導預定數目的修改的變換系數。例如,在當前塊的高度和寬度是8或更大時,如在圖6左側所示的那樣推導48個修改的變換系數。在當前塊的寬度和高度不等于或大于8時,即,在當前塊的寬度和高度大于或等于4并且當前塊的寬度或高度小于8時,可以如在圖6右側所示的那樣推導16個修改的變換系數。
[0376]
如圖6所示,48個修改的變換系數可以被布置在當前塊的左頂部8x8區域的左頂部、右頂部和左底部4x4區域中,并且16個修改的變換系數可以被布置在當前塊的左頂部4x4區域中。
[0377]
48個修改的變換系數和16個修改的變換系數可以根據當前塊的幀內預測模式被布置在垂直或水平方向中。例如,當幀內預測模式是基于對角線方向(圖8中的模式34)的水平方向(圖8中的模式2至34)時,修改的變換系數可以被布置在水平方向中,即,在行優先方向中,如圖6的(a)所示。當幀內預測模式是基于對角線方向的垂直方向(圖8中的模式35至
66)時,修改的變換系數可以被布置在垂直方向中,即,在列優先方向中,如圖6的(b)所示。
[0378]
在一個實施例中,s1560可以包括對變換索引進行解碼,基于變換索引(即lfnst索引)來確定是否其對應于用于應用逆rst的條件,當滿足用于應用逆lfnst的條件時,選擇變換核矩陣并且基于所選擇的變換核矩陣和/或簡化因子將逆lfnst應用于變換系數。在這種情況下,可以基于簡化因子確定簡化逆變換矩陣的大小。
[0379]
參考s1560,能夠確認基于用于目標塊的變換系數的逆lfnst來推導用于目標塊的殘差樣本。關于逆變換矩陣的大小,一般逆變換矩陣的大小是n x n,而逆lfnst矩陣的大小被減小至n x r,從而與執行一般變換時相比,使得在執行逆lfnst時有可能將存儲器占用減小了r/n比率。此外,與使用一般逆變換矩陣時的乘法運算次數n x n相比,有可能在使用逆lfnst矩陣時將乘法運算次數減小了r/n比率(至n x r)。另外,由于在應用逆lfnst時需要對僅r個變換系數進行解碼,所以與應用需要對n個變換系數進行解碼的一般逆變換時相比,可以將用于目標塊的變換系數的總數從n減小到r,從而提高解碼效率。也就是說,根據s1560,可以通過逆lfnst來提高解碼裝置200的(逆)變換效率和解碼效率。
[0380]
根據實施例的解碼裝置200可以基于針對修改的變換系數的逆初級變換來推導用于目標塊的殘差樣本(s1570)。
[0381]
另一方面,當不應用lfnst時,可以如下在逆變換過程中應用僅基于mts的初級逆變換過程。也就是說,解碼裝置可以如在上述實施例中那樣確定lfnst是否被應用于當前塊,并且當不應用lfnst時,解碼裝置可以通過初級逆變換從變換系數推導殘差樣本。
[0382]
在除了當前塊的第一左頂部區域以外的第二區域中存在有效系數時,解碼裝置可以確定不應用lfnst,并且可以通過初級逆變換從變換系數推導殘差樣本。
[0383]
可以將初級逆變換過程稱為逆初級變換過程或mts逆變換過程。還可以在一些情況下省略這樣的基于mts的初級逆變換過程。
[0384]
另外,可以對逆初級變換應用簡化逆變換,或者可以使用常規可分離變換。
[0385]
根據實施例的解碼裝置200可以基于當前塊的殘差樣本和當前塊的預測樣本來生成重構樣本(s1580)。
[0386]
以下附圖被提供來描述本公開的特定示例。由于附圖中圖示的設備的特定名稱或特定信號/消息/字段的名稱是為了圖示而提供的,所以本公開的技術特征不限于以下附圖中使用的特定名稱。
[0387]
圖16是圖示根據本公開的實施例的視頻編碼裝置的操作的流程圖。
[0388]
圖16所圖示的每個操作可以由圖1所圖示的編碼裝置100執行。具體地,s1610可以由圖1所圖示的預測器120執行,s1620可以由圖1所圖示的減法器131執行,s1630至s1650可以由圖1所圖示的變換器132執行,并且s1660和s1670可以由圖1所圖示的量化器133和熵編碼器240執行。根據s1610至s1670的操作基于圖3至圖14中描述的內容中的一些。因此,將省略或者將簡要地做出與上面參考圖1和圖3至圖14說明的那些重疊的特定細節的描述。
[0389]
根據實施例的編碼裝置100可以基于應用于當前塊的幀內預測模式來推導預測樣本(s1610)。
[0390]
根據實施例的編碼裝置100可以基于預測樣本來推導用于當前塊的殘差樣本(s1620)。
[0391]
根據實施例的編碼裝置100可以基于用于殘差樣本的初級變換來推導用于目標塊
的變換系數(s1630)。
[0392]
可以通過多個變換核來執行初級變換,并且在這種情況下,可以基于幀內預測模式來選擇變換核。
[0393]
編碼裝置100可以確定是否對用于當前塊的變換系數執行次級變換或者不可分離變換,具體地為lfnst。
[0394]
當確定要執行lfnst時,編碼裝置100可以基于當前塊的左頂部處的第一區域的變換系數和預定lfnst矩陣來推導用于當前塊的修改的變換系數(s1640)。
[0395]
編碼裝置100可以根據應用于當前塊的幀內預測模式基于映射關系來確定變換集,并且可以執行lfnst,即,基于變換集中包括的兩個lfnst矩陣之一的不可分離變換。
[0396]
如上所述,可以根據要變換的變換塊的幀內預測模式來確定多個變換集。應用于lfnst的矩陣與用于逆lfnst的矩陣具有轉置關系。
[0397]
在一個示例中,lfnst矩陣可以是其中行數小于列數的非方形矩陣。
[0398]
可以基于當前塊的大小來推導第一區域。例如,在當前塊的高度和寬度大于或等于8時,第一區域是如在圖6的左側所示的當前塊的左頂部處的8x8區域的左頂部、右頂部、左底部的4x4區域。在當前塊的高度和寬度不等于或大于8時,第一區域可以是如在圖6的右側所示的當前塊的左頂部處的4x4區域。
[0399]
第一區域的變換系數可以根據當前塊的幀內預測模式在垂直或水平方向中被讀取并且被一維地布置以用于與lfnst矩陣的乘法運算。
[0400]
第一區域的48個修改的變換系數或16個修改的變換系數可以根據當前塊的幀內預測模式在垂直或水平方向中被讀取并且被布置在一個維度中。例如,如果幀內預測模式是基于對角線方向(圖8中的模式34)的水平方向(圖8中的模式2至34),則變換系數可以被布置在水平方向中,即,在行優先方向中,如圖6的(a)所示。當幀內預測模式是基于對角線方向的垂直方向(圖8中的模式35至66)時,變換系數可以被布置在垂直方向中,即,在列優先方向中,如圖6的(b)所示。
[0401]
在一個示例中,可以基于簡化變換矩陣或變換核矩陣來執行lfnst,并且簡化變換矩陣可以是其中行數小于列數的非方形矩陣。
[0402]
在一個實施例中,s1640可以包括確定是否滿足用于應用lfnst的條件,基于該確定來生成并編碼lfnst索引,當滿足用于應用lfnst的條件時選擇變換核矩陣并且基于所選擇的變換核矩陣和/或簡化因子將lfnst應用于殘差樣本。在這種情況下,可以基于簡化因子來確定簡化變換矩陣的大小。
[0403]
參考s1640,能夠確認基于用于殘差樣本的lfnst來推導用于目標塊的變換系數。關于變換核矩陣的大小,一般變換核矩陣的大小是nx n,而簡化變換矩陣的大小被減小至r x n,從而與執行一般變換時相比,使得在執行rst時有可能將存儲器占用減小了r/n比率。此外,與乘法運算次數n x n相比,當使用一般變換核矩陣時,有可能在使用簡化變換核矩陣時將乘法運算次數減小了r/n比率(至r x n)。另外,由于應用rst時推導僅r個變換系數,所以與應用推導n個變換系數的一般變換時相比,可以將用于目標塊的變換系數的總數從n減小到r,從而減少由編碼裝置100發送到解碼裝置200的數據的量。也就是說,根據s1640,可以通過lfnst來提高編碼裝置100的變換效率和編譯效率。
[0404]
同時,根據示例,編碼裝置可以將在其中不存在修改的變換系數的當前塊的第二
區域清零(s1650)。
[0405]
如圖12和圖13一樣,可以將在其中不存在修改的變換系數的當前塊的所有剩余區域視為零。由于清零,執行整個變換過程所需要的計算量被減少,并且對于整個變換過程所需要的計算量被減少,從而減少執行變換所需要的功耗。另外,可以通過減小變換過程中涉及的時延來提高圖像編譯效率。
[0406]
另一方面,當不應用lfnst時,可以在如上所述的變換過程中應用僅基于mts的初級變換過程。也就是說,編碼裝置可以如在上述實施例中那樣確定lfnst是否被應用于當前塊,并且當不應用lfnst時,編碼裝置可以通過初級變換從殘差樣本推導變換系數。
[0407]
可以將此初級變換過程稱為初級變換過程或mts變換過程。在一些情況下還可以省略這樣的基于mts的初級變換過程。
[0408]
根據示例的編碼設備可以配置圖像信息,使得在當前塊中包括最后有效系數的子塊的索引是0,子塊中的最后有效系數的位置是0或更大,并且在第二區域中不存在有效系數時,指示lfnst矩陣的lfnst索引被解析(s1660)。
[0409]
也就是說,根據示例的編碼裝置可以配置圖像信息,使得在排除當前塊的dc區域的區域中存在有效系數并且上述清零被執行時,指示lfnst矩陣的lfnst索引被解析。
[0410]
編碼裝置可以配置圖像信息,使得可以通過解碼裝置來解析表6和表8所示的圖像信息。
[0411]
根據示例,在當前塊中包括最后有效系數的子塊的索引是0且子塊中的最后有效系數的位置大于0時,確定了在除dc區域以外的區域中存在有效系數,并且圖像信息能夠被配置為使得lfnst索引被發送或用信號通知。在本文檔中,掃描順序中的第一位置可以是0。
[0412]
另外,根據示例,在當前塊中包括最后有效系數的子塊的索引大于0并且當前塊的寬度和高度是4或更大時,確定了確信不應用lfnst,并且圖像信息可以被配置為使得不用信號通知lfnst索引。
[0413]
另外,根據示例,在當前塊的大小是4x4或8x8并且在掃描順序中的位置的開始是0,最后有效系數的位置大于7時,編碼裝置可以確定確信不應用lfnst,并且配置圖像信息,使得不用信號通知lfnst索引。
[0414]
也就是說,編碼裝置能夠配置圖像信息,使得在解碼裝置中推導與第一標志信息相對應的變量lfnstdconly和與第二標志信息相對應的變量lfnstzerooutsigcoeffflag之后,能夠根據所推導的變量值來解析lfnst索引。
[0415]
例如,編碼裝置將指示最后有效系數的位置在具有索引0的子塊中是否大于0的第一標志信息設置為1,當在具有索引0的子塊中的最后有效系數的位置大于0時,可以將第一標志信息改變為0。在這種情況下,可以對lfnst索引進行編碼。
[0416]
另外,編碼裝置將指示在除了第一區域之外的第二區域中是否存在有效系數的第二標志信息設置為1,當在第二區域中不存在有效系數時,可以使第二標志信息維持為1。在這種情況下,可以對lfnst索引進行編碼。
[0417]
另一方面,在當前塊中包括最后有效系數的子塊的索引大于0并且當前塊的寬度和高度是4或更大時,編碼裝置可以將第二標志信息改變為0,或者在當前塊的大小是4x4或8x8并且最后有效系數的位置是8或更大時,編碼裝置可以將第二標志信息改變為0。在這種情況下,由于圖像信息被配置使得不解析lfnst索引,所以lfnst索引未被編碼。
[0418]
根據實施例的編碼裝置100可以通過基于用于目標塊的修改的變換系數執行量化來推導量化變換系數,并且可以對包括關于量化變換系數和lfnst索引的信息的圖像信息進行編碼和輸出(s1670)。
[0419]
也就是說,編碼裝置可以生成包括關于量化變換系數的信息的殘差信息。殘差信息可以包括上述變換相關信息/語法元素。編碼裝置可以對包括殘差信息的圖像/視頻信息進行編碼并且以比特流的形式輸出編碼圖像/視頻信息。
[0420]
更具體地,編碼裝置100可以生成關于量化變換系數的信息并且對關于所生成的量化變換系數的信息進行編碼。
[0421]
在一個示例中,關于量化變換系數的信息可以包括關于是否應用lfnst的信息、關于簡化因子的信息、關于對其應用lfnst的最小變換大小的信息、以及關于對其應用lfnst的最大變換大小的信息中的至少一個。
[0422]
另外,編碼裝置100可以在序列參數集級別處對關于最大變換應用塊的大小的信息,例如關于變換塊大小的語法信息,諸如sps_log2_max_luma_transform_size_minus5,或諸如sps_max_luma_transform_size_64_flag的標志信息,進行編碼。
[0423]
在本公開中,可以省略量化/解量化和/或變換/逆變換中的至少一者。當省略量化/解量化時,可以將量化變換系數稱為變換系數。當省略變換/逆變換時,變換系數可以被稱為系數或殘差系數,或者為了表述一致性仍可以被稱為變換系數。
[0424]
另外,在本公開中,量化變換系數和變換系數可以分別被稱為變換系數和縮放變換系數。在此情況下,殘差信息可以包括關于變換系數的信息,并且可以通過殘差編碼語法發信號通知關于變換系數的信息??梢曰跉埐钚畔?或關于變換系數的信息)來推導變換系數,并且可以通過變換系數的逆變換(縮放)來推導縮放變換系數??梢曰诳s放變換系數的逆變換(變換)來推導殘差樣本。這些細節也可以在本公開的其他部分中應用/表達。
[0425]
在上述實施方式中,借助于一系列步驟或方框基于流程圖解釋了方法,但是本公開不限于步驟的順序,并且可以按與上述順序或步驟不同的順序或步驟來執行某一步驟,或某一步驟與其他步驟并發地執行。此外,本領域普通技術人員可以理解,流程圖中所示的步驟不是排它的,并且在不影響本公開的范圍的情況下,可以并入另一步驟或者可以刪除流程圖中的一個或更多個步驟。
[0426]
根據本公開的上述方法可以被實現為軟件形式,并且根據本公開的編碼設備和/或解碼設備可以被包括在諸如電視、計算機、智能電話、機頂盒和顯示裝置等之類的用于圖像處理的設備中。
[0427]
當本公開中的實施方式通過軟件來實施時,上述方法可以被實施為用于執行上述功能的模塊(步驟、功能等)。這些模塊可以存儲在存儲器中并且可以由處理器執行。存儲器可以在處理器內部或外部,并且能夠以各種眾所周知的方式連接到處理器。處理器可以包括專用集成電路(asic)、其他芯片組、邏輯電路和/或數據處理裝置。存儲器可以包括只讀存儲器(rom)、隨機存取存儲器(ram)、閃存、存儲卡、存儲介質和/或其他存儲裝置。也就是說,本公開中描述的實施方式可以在處理器、微處理器、控制器或芯片上實施和執行。例如,每個附圖中所示的功能單元可以在計算機、處理器、微處理器、控制器或芯片上實施和執行。
[0428]
此外,應用本公開的解碼設備和編碼設備可以包括在多媒體廣播收發器、移動通
信終端、家庭影院視頻裝置、數字影院視頻裝置、監控相機、視頻聊天裝置、實時通信裝置(諸如視頻通信)、移動流裝置、存儲介質、攝像機、視頻點播(vod)服務提供裝置、頂置(ott)視頻裝置、互聯網流服務提供裝置、三維(3d)視頻裝置、視頻電話視頻裝置、和醫療視頻裝置,并且可以用于處理視頻信號或數據信號。例如,頂置(ott)視頻裝置可以包括游戲機、藍光播放器、互聯網接入tv、家庭影院系統、智能電話、平板pc、數字視頻記錄儀(dvr)等。
[0429]
另外,應用本公開的處理方法能夠以由計算機執行的程序的形式來生產,并且可以存儲在計算機可讀記錄介質中。具有根據本公開的數據結構的多媒體數據也可以存儲在計算機可讀記錄介質中。計算機可讀記錄介質包括存儲計算機可讀數據的各種存儲裝置和分布式存儲裝置。計算機可讀記錄介質可以包括例如藍光盤(bd)、通用串行總線(usb)、rom、prom、eprom、eeprom、ram、cd-rom、磁帶、軟盤和光學數據存儲裝置。此外,計算機可讀記錄介質包括以載波(例如,互聯網上的傳輸)形式實施的介質。另外,通過編碼方法所生成的比特流可以存儲在計算機可讀記錄介質中,或者通過有線或無線通信網絡來傳輸。另外,本公開的實施方式可以通過程序代碼被實施為計算機程序產品,并且程序代碼可以按照本公開的實施方式在計算機上執行。程序代碼可以存儲在計算機可讀載體上。
[0430]
圖17示意性地圖示本公開適用于的視頻/圖像編譯系統的示例。
[0431]
參考圖17,視頻/圖像編譯系統可以包括第一設備(源設備)和第二設備(接收設備)。源設備可以經由數字存儲介質或網絡以文件或流的形式向接收設備遞送編碼視頻/圖像信息或數據。
[0432]
源裝置可以包括視頻源、編碼設備和發送器。接收裝置可以包括接收器、解碼設備和渲染器。編碼設備可以被稱為視頻/圖像編碼設備,并且解碼設備可以被稱為視頻/圖像解碼設備。發送器可以被包括在編碼設備中。接收器可以被包括在解碼設備中。渲染器可以包括顯示器,并且顯示器可以被配置為單獨的裝置或外部組件。
[0433]
視頻源可以通過捕獲、合成或生成視頻/圖像的處理來獲得視頻/圖像。視頻源可以包括視頻/圖像捕獲裝置和/或視頻/圖像生成裝置。視頻/圖像捕獲裝置可以包括例如一個或更多個相機、包括先前捕獲的視頻/圖像的視頻/圖像檔案等。視頻/圖像生成裝置可以包括例如計算機、平板計算機和智能電話,并且可以(電子地)生成視頻/圖像。例如,可以通過計算機等生成虛擬視頻/圖像。在這種情況下,視頻/圖像捕獲處理可以被生成相關數據的處理取代。
[0434]
編碼設備可以對輸入視頻/圖像進行編碼。編碼設備可以執行諸如針對壓縮和編譯效率的預測、變換和量化這樣的一系列過程。編碼后的數據(編碼后的視頻/圖像信息)能夠以比特流的形式輸出。
[0435]
發送器可以通過數字存儲介質或網絡以文件或流的形式將以比特流的形式輸出的編碼后的視頻/圖像信息或數據發送到接收裝置的接收器。數字存儲介質可以包括諸如usb、sd、cd、dvd、藍光、hdd、ssd等這樣的各種存儲介質。發送器可以包括用于通過預定文件格式生成媒體文件的元件,并且可以包括用于通過廣播/通信網絡進行發送的元件。接收器可以接收/提取比特流,并且將接收/提取的比特流發送到解碼設備。
[0436]
解碼設備可以通過執行與編碼設備的操作對應的諸如解量化、逆變換、預測等這樣的一系列過程來解碼視頻/圖像。
[0437]
渲染器可以渲染解碼后的視頻/圖像??梢酝ㄟ^顯示器顯示渲染后的視頻/圖像。
[0438]
圖18圖示本公開被應用于的內容流傳輸系統的結構。
[0439]
此外,本公開被應用于的內容流傳輸系統可以主要包括編碼服務器、流傳輸服務器、web服務器、媒體存儲、用戶設備和多媒體輸入設備。
[0440]
編碼服務器用來將從諸如智能電話、相機、攝像機等的多媒體輸入設備輸入的內容壓縮為數字數據,以生成比特流,并且將其發送到流傳輸服務器。作為另一示例,在諸如智能電話、相機、攝像機等的多媒體輸入設備直接生成比特流的情況下,可以省略編碼服務器??梢酝ㄟ^本公開被應用于的編碼方法或比特流生成方法來生成比特流。并且流傳輸服務器可以在發送或接收比特流的過程中暫時存儲比特流。
[0441]
流傳輸服務器基于用戶的請求通過web服務器向用戶設備發送多媒體數據,所述web服務器充當向用戶通知有什么服務的工具。當用戶請求用戶想要的服務時,web服務器將請求傳送到流傳輸服務器,并且流傳輸服務器將多媒體數據發送到用戶。在這方面,內容流傳輸系統可以包括單獨的控制服務器,并且在這種情況下,控制服務器用來控制內容流傳輸系統中的相應設備之間的命令/響應。
[0442]
流傳輸服務器可以從媒體存儲和/或編碼服務器接收內容。例如,在從編碼服務器接收到內容的情況下,可以實時地接收內容。在這種情況下,流傳輸服務器可以將比特流存儲達預定時間段以平穩地提供流傳輸服務。
[0443]
例如,用戶設備可以包括移動電話、智能電話、膝上型計算機、數字廣播終端、個人數字助理(pda)、便攜式多媒體播放器(pmp)、導航、板式pc、平板pc、超極本、可穿戴設備(例如,手表型終端(智能手表)、眼鏡型終端(智能眼鏡)、頭戴式顯示器(hmd))、數字tv、臺式計算機、數字標牌等。內容流傳輸系統中的每個服務器可以作為分布式服務器被操作,并且在這種情況下,能夠以分布式方式處理由每個服務器接收到的數據。
[0444]
能夠以各種方式組合本文公開的權利要求。例如,能夠組合本公開的方法權利要求的技術特征以在裝置中被實現或執行,并且能夠組合裝置權利要求的技術特征以在方法中被實現或執行。此外,能夠組合方法權利要求和裝置權利要求的技術特征以在裝置中被實現或執行,能夠組合方法權利要求和裝置權利要求的技術特征以在方法中被實現或執行。
當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1