VVC中用到的新技術點

2021-10-21 02:50:55 字數 2181 閱讀 9699

vvc相比hevc所採用的一些新的技術點

d.sbt

mts被用於幀內幀間的殘差編碼,下表顯示了所選擇的dst/dct的基函式:

為了將變換係數中間值保持在16位範圍內,在水平和垂直變換後,所有係數都將具有10位。為控制mts,在sps級分別為幀內和幀間指定了單獨的使能標誌。當在sps上啟用mts時,乙個cu級別的標誌將會傳送以指示mts是否應用。這裡,mts只適用於亮度。當滿足:寬高都小於等於32、cbf標誌等於1時,mts的cu級別的標誌會「發出訊號」。

如果mts級別的cu標誌等於0,水平和垂直方向都可以用dct2。然而,如果mts的cu標誌等於1,則另外傳送兩個標誌以分別指示水平和垂直方向上的變換型別。如下表所示:

通過移除幀內模式和塊形狀依賴,來使用統一的isp的變換選擇和隱式mts。如果當前塊是isp模式,或者當前塊是幀內塊,並且幀內和幀間的顯式的mts都開啟,則水平和垂直變換核只使用dst7。

對於變換矩陣精度,使用8位主變換核。因此,hevc中所使用的所有變換核都保持不變,包括4點dct2和dst7,8、16、32點dct2。此外,其他變換核(包括64點dct2,4點dct8,8、16、32點dst7和dct8)使用8位主變換核。

為降低大尺寸dst7和dct8的複雜性,對於寬或高或者寬和高是32的dst7和dct8的塊,進行高頻變換係數置零,只保留16x16低頻區域內的係數。

如在hevc,殘差塊可以用變換跳過模式編碼。為避免語法元素冗餘,當cu級mts_cu_flag不等於0時,不傳送變換跳過標誌。變換跳過的塊的大小限制與jem4中mts相同,表明當塊寬度和高度都等於或小於32時,變換跳過適用於cu。

lfnst,即縮減的二次變換,在編碼端被用於主變換和量化之間,在解碼端被用於反量化和反變換之間,如下圖所示:

在lfnst中,根據塊大小應用4x4不可分離變換或者8x8不可分離變換。例如,4x4lfnst適用於小塊(寬高的較小者小於8)並且8x8lfnst適用於大塊(寬高的較小者大於4)。

lfnst總共使用4個變換集,每個變換集有兩個不可分離的變換核(變換矩陣)。從幀內**模式到變換集的對映是預先定義的,如下表:

對於每個變換集,所選擇的不可分離的二次變換候選是由lfnst索引來進一步來指定的。在變換係數之後,該索引在每個幀內cu的位元流中被傳送一次。

前向8x8lfnst使用16x48矩陣,因此它僅在給定8x8區域內的左上角4x4區域產生非零係數。換句話說,如果應用lfnst,則除左上4x4區域之外的8x8區域內僅生產零係數。因此,當在左上方4x4以外的8x8塊區域內檢測到任何非零元素時,lfnst索引不會被編碼,因為這意味著沒有應用lfnst。在這種情況下,lfnst索引被推斷為0。如果lfnst索引為0,則不應用lfnst。否則,就用lfnst。此外,lfnst索引是上下文編碼的,但是不依賴幀內**模式,並且只有第乙個bin是上下文編碼的。

當滿足下面兩個條件時,將有條件地應用反向lfnst:

(1)塊尺寸大於等於給定閾值(w>=4且h>=4)

(2)變換跳過模式標誌等於0

如果變換係數塊的寬度和高度都大於4,則8x8lfnst被用於變換係數塊的左上角8x8區域。否則,在變換係數塊的左上角min(8,w)xmin(8,h)區域應用4x4lfnst。

此外,lfnst適用於幀內和幀間slice的幀內cu,以及亮度和色度。如果啟用二叉樹,則對於亮度和色度的lfnst指數會分別發出訊號。對於幀間(禁用二叉樹時),乙個單一的lfnst索引會被傳送並用於亮度和色度。

當選擇isp模式時,lfnst將被禁用,並不會發出rst索引,因為即使將rst應用於每個可行的分割槽塊,效能提高也是微乎其微的。此外,禁用rst,對於isp**殘差可以降低編碼複雜度。當選擇mip(matrix weighted intra prediction)模式時,lfnst也被禁用,並不會發出索引訊號。

子塊變換被用於幀間**的cu。在子塊變換模式下,只有殘差塊的乙個子部分被編碼為cu。當幀間**cu的cu_cbf等於1時,可以用cu_sbt_flag來指示對整個殘差塊或者殘差塊的子部分進行編碼。在前一種情況下,進一步解析中間塊資訊以確定中間塊變換型別。在後一種情況下,殘差塊的一部分用推斷的自適應變換編碼,並且殘差塊的其他部分置零。

iOS中用到的協議

協議 雙方進行溝通交流,通訊等而達成一定規範。網路協議 網路中傳遞,管理資訊的一些規範。tcp ip協議。transmission control protocol傳輸控制協議,是一種網路通訊協議。tcp ip不是乙個協議,而是乙個協議族的統稱。裡面包括了ip協議,imcp協議,tcp協議,以及我們...

java中用到的集合

1,set通過new hashset儲存string型別的集合,通過add新增資料 private setgettags 2.set通過new linkedhashset 儲存int型別的集合,通過add新增資料 private static settagaliadatechange return ...

spring batch中用到的表

1,批量表的字首 來自類abstractjdbcbatchmetadatadao中的變數default table prefix 2,job execution 存放job執行的相關資料,包括job執行的結果,job結束時狀態,job開始時間,job結束時間,版本號,job的例項id,job的執行i...