TW202325025A - 具有編碼參數的局部照明補償 - Google Patents

具有編碼參數的局部照明補償 Download PDF

Info

Publication number
TW202325025A
TW202325025A TW111145215A TW111145215A TW202325025A TW 202325025 A TW202325025 A TW 202325025A TW 111145215 A TW111145215 A TW 111145215A TW 111145215 A TW111145215 A TW 111145215A TW 202325025 A TW202325025 A TW 202325025A
Authority
TW
Taiwan
Prior art keywords
lic
offset
block
scale
scaling
Prior art date
Application number
TW111145215A
Other languages
English (en)
Other versions
TWI839968B (zh
Inventor
歐萊娜 邱巴赫
徐志瑋
莊子德
陳慶曄
黃毓文
陳俊嘉
Original Assignee
新加坡商聯發科技(新加坡)私人有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 新加坡商聯發科技(新加坡)私人有限公司 filed Critical 新加坡商聯發科技(新加坡)私人有限公司
Publication of TW202325025A publication Critical patent/TW202325025A/zh
Application granted granted Critical
Publication of TWI839968B publication Critical patent/TWI839968B/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Landscapes

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

Abstract

提供了一種使用局部照明補償對像素塊進行編解碼的視訊編解碼系統。 視訊編碼器接收要編碼為視訊的當前圖片的當前塊的原始像素塊的樣本。 視訊編碼器將線性模型應用於參考塊以生成當前塊的預測塊。 線性模型包括縮放參數和偏移參數。 視訊編碼器可以使用原始塊的樣本和來自重構的參考幀的樣本來導出縮放參數和偏移參數。 視訊編碼器在位元流中發送縮放參數和偏移參數。 視訊編碼器通過使用預測塊來重構當前塊來對當前塊進行編碼。

Description

具有編碼參數的局部照明補償
本發明有關於視訊編解碼。更具體而言,本發明係有關於局部照明補償(Local Illumination Compensation,簡寫為LIC)方法。
除非本文另有說明,否則本節中描述的方法不是下面列出的申請專利範圍的先前技術,並且不因包含在本節中而被承認爲先前技術。
高效視訊編解碼(High-Efficiency Video Coding,簡寫為HEVC)是由視訊編解碼聯合協作組(Joint Collaborative Team on Video Coding,簡寫為JCT-VC)開發的國際視訊編解碼標準。 HEVC 基於混合的基於塊的運動補償類 DCT 變換編碼架構。 壓縮的基本單元,稱爲編解碼單元 (coding unit,簡寫為CU),是一個 2Nx2N 的方形像素塊,每個 CU 可以遞歸地分成四個更小的 CU,直到達到預定義的最小尺寸。 每個 CU 包含一個或多個預測單元 (prediction unit,簡寫為PU)。
通用視訊編解碼(Versatile Video Coding,簡寫為VVC)是一種編解碼器,旨在滿足視訊會議、頂級流媒體(over-the-top streaming)、移動電話等方面即將到來的需求。VVC 解决從低解析度和低位元率到高解析度和高位元率、高 動態範圍 (high dynamic range,簡寫為HDR)、360 全向等的視訊需求。
幀間預測從作爲參考幀的一個或多個先前編碼的視訊幀創建預測模型或預測塊。 一種預測方法是運動補償預測,它通過移動參考幀中的樣本來形成預測塊或預測模型。 運動補償預測使用描述從一個 2D 圖像到另一個 2D 圖像的變換的運動矢量,通常是從視訊序列中的時間鄰域幀(temporally neighboring frame)。
以下概述僅是說明性的,並不旨在以任何方式進行限制。 即,提供以下概述以介紹本文描述的新穎的和非顯而易見的技術的概念、亮點、好處和優點。 在下面的詳細描述中進一步描述了選擇的而不是所有的實施方式。 因此,以下概述不旨在識別要求保護的主題的基本特徵,也不旨在用於確定要求保護的主題的範圍。
本公開的一些實施例提供了一種使用局部照明補償來對像素塊進行編解碼的視訊編解碼系統。 在一些實施例中,視訊編解碼器接收要編碼或解碼為視訊的當前圖片的當前塊的資料。 視訊編解碼器傳訊或接收縮放參數和偏移參數。 視訊編解碼器將線性模型應用於參考塊以產生當前塊的預測塊,其中線性模型包括縮放參數和偏移參數。 視訊編解碼器通過使用預測塊來重構當前塊。
在一些實施例中,視訊編碼器接收要被編碼為視訊的當前圖片的當前塊的原始像素塊的樣本,並且視訊編碼器可以使用原始塊的樣本和來自重構的參考幀的樣本來導出縮放參數和偏移參數。 在一些實施例中,用於導出縮放和偏移參數的原始塊的樣本是那些將被編碼為當前塊的樣本。 在一些實施例中,當前塊將被編碼為多個子塊,每個子塊具有參考幀中其自己的運動矢量參考像素。 編碼器使用原始塊的樣本和多個子塊的運動向量參考的樣本來導出線性模型的縮放參數和偏移參數。
在一些實施例中,縮放和偏移參數的值選自預定義的允許值集合。 每組允許值都有一個有限的範圍,並且是通過均勻或非均勻地對連續的數位序列進行子採樣來創建的。 在一些實施例中,索引用於從一組預定義的允許值中選擇一個值。 預定義的一組允許值可以根據集合中允許值的概率利用索引排序。
在一些實施例中,視訊編解碼器傳訊或接收用於從基於歷史的表的一個或多個條目中選擇條目的索引。 基於歷史的表的每個條目包括用於編碼先前塊的縮放參數值和偏移參數值。 視訊編解碼器可用新條目更新基於歷史的表,新條目包括線性模型用來生成預測塊的縮放和偏移參數值。
在一些實施例中,針對亮度和色度分量導出和發信單獨的縮放和偏移參數。 發信的亮度和色度縮放和偏移參數可以由一個或多個縮放參數索引和/或亮度 LIC 參數索引編解碼,這些參數索引選擇亮度和色度縮放和偏移參數的值,編碼器又使用這些參數來生成用於亮度和色度分量的預測塊。 在一些實施例中,對發信的偏移參數進行編解碼的偏移參數索引指定發信的偏移參數的絕對值而不指定其符號。
在下面的詳細描述中,通過示例的方式闡述了許多具體細節,以便提供對相關教導的透徹理解。 基於本文描述的教導的任何變化、派生和/或擴展都在本公開的保護範圍內。 在一些情況下,可以以較概括的水平描述與本文公開的一個或多個示例實現有關的眾所周知的方法、過程、組件和/或電路而不詳細描述,以避免不必要地模糊本公開的教導的方面。
局部照明補償(Local Illumination Compensation,簡寫為LIC)是幀間預測技術,其將當前塊與其預測塊之間的局部照明變化建模為當前塊模板與參考塊模板之間的局部照明變化的函數。 函數的參數可以用縮放α和偏移量β來表示,它們形成一個線性方程,即α*p[x]+β來補償照明變化,其中p[x]是在參考圖片上通過 MV指向的位置 x處的參考樣本。 由於 α 和 β 可以基於當前塊模板和參考塊模板導出,因此,除了為 AMVP 模式發信 LIC 標誌以指示使用 LIC 之外,它們不需要發信開銷(signaling overhead)。
第1圖從概念上說明了用於 LIC 幀間預測的線性模型的推導和使用。 如圖所示,相應的當前樣本和參考樣本用於導出線性模型100 (a×P+b)。 用於導出線性模型100的樣本(當前樣本和參考樣本)可以從當前塊的模板(例如,鄰域像素)和參考塊的模板(例如,鄰域像素)中提取。 當解碼當前塊時,可以應用導出的線性模型以基於重構的參考像素(例如,參考幀中的參考塊)產生 LIC 預測塊。 然後可以使用預測塊來重構當前塊。
LIC可能受制於以下配置條件中的一些。 當使用環內亮度重塑(in-loop luma reshaping)時,在 LIC 參數推導之前將反向重塑(inverse reshaping)應用於當前 CU 的鄰域樣本,因為當前 CU 鄰域在重塑域中,但參考圖片樣本在原始(非 -重塑)域。 發信一次LIC 啟用標誌用於CU(因此所有三個分量共享一個標誌),但對於 Y/Cb/Cr 分量,分別定義縮放和偏移參數。 對於組合的幀間/幀內預測 (combined inter/intra prediction,簡寫為CIIP) 和幀內塊複製 (intra block copy,簡寫為IBC) 塊,LIC 被禁用。 LIC 不適用於雙向預測。 LIC應用於子塊模式,其中LIC參數是基於基於子塊導出的樣本導出的。 除了 MV 和參考索引之外,LIC 標誌也作為運動資訊的一部分包含在運動資訊內。 HMVP 繼承了 LIC 標誌。 當構建合併候選列表時,LIC 標誌從合併候選的鄰域塊中繼承。 LIC 標誌不用於合併候選列表生成中的運動向量修剪。 LIC 標誌沒有時間繼承(temporal inheritance)。 LIC 標誌未存儲在參考圖片的 MV 緩衝區中,因此對於時間運動矢量預測塊 (temporal motion vector prediction block,簡寫為TMVP),LIC 標誌始終設置為假(false)。 對於雙向合併候選,例如成對平均候选(pair-wise average candidate)和零運動候選(zero motion candidate),LIC 標誌設置為 FALSE。 LIC 標誌是使用單個上下文進行上下文編解碼的。 當 LIC 不適用時,不發出 LIC 標誌。縮放 α 值在 0 到 128 之間; 偏移量 β 在 -512 和 511 之間的範圍內。
第2A-B圖概念性地說明了識別參考樣本和當前樣本以導出 LIC 參數。第2A圖說明了非子塊模式下的LIC操作,其中LIC模型是基於整個塊的頂部和左側邊界像素導出的。 換句話說,整個參考塊的鄰域像素被用作參考樣本,並且整個當前塊的鄰域像素被用作當前樣本。 參考樣本和當前樣本用於導出要應用於整個塊的 LIC 線性模型。
第2B圖說明了子塊模式(仿射(affine))中的 LIC 操作,其中 LIC 模型是基於頂部和左側邊界子塊(標記為 A 到 G)及其參考子塊(標記為 A' 到 G')導出的。具體地,邊界子塊A-G的鄰域像素作為當前樣本,而參考子塊A'-G'的鄰域像素作為參考樣本。 參考樣本和當前樣本用於導出要應用於整個塊的 LIC 線性模型。
在一些實施例中,為了導出LIC線性模型參數,使用線性最小二乘法(linear least square)。 為了應用線性模型,每個樣本使用 1 次乘法和 1 次加法,這可以在將預測添加到殘差時的重構階段完成。 當使用環內亮度重塑時,在 LIC 參數推導之前將反向重塑應用於當前 CU 的鄰域樣本,因為當前 CU 鄰域在重塑域中,但參考圖片樣本在原始(非重塑)域中。
下面的表1A-1C顯示了編碼的視訊中的示例LIC模式相關句法(syntax): 表 1A: 序列參數集中的 LIC 句法
seq_parameter_set_rbsp( ) { 描述符
sps_lic_enabled_flag u(1)
sps_bcw_enabled_flag u(1)
1B :切片報頭中的 LIC 句法
slice_header( ) { 描述符
    if( sps_lic_enabled_flag )
       sh_lic _enabled_flag u(1)
1C :編解碼單元中的 LIC 句法:
coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { 描述符
           if(sh_lic_enabled_flag  && inter_pred_idc[ x0 ][ y0 ]  ! =  PRED_BI  &&  !general_merge_flag[ x0 ][ y0 ]  &&  !pred_mode_ibc_flag && cbWidth * cbHeight >= 64 )
lic_flag[ x0 ][ y0 ] ae(v)
句法元素sps_lic_enabled_flag為0表示LIC被禁用; sps_lic_enabled_flag 為 1 表示 LIC 被啟用。
句法元素sh_lic_enabled_flag為1表示局部照明補償在切片組中被啟用; sh_lic_enabled_flag 為 0 表示在圖塊(tile)組中禁用局部照明補償。
句法元素lic_flag[x0][y0]為1指定對於當前編解碼單元,在解碼P或B切片組時,使用局部照明補償推導當前編解碼單元的預測樣本; lic_flag[x0][y0]為0指定不通過應用局部照明補償來預測編解碼單元。 當 lic_flag[ x0 ][ y0 ] 不存在時,它被推斷為等於 0。
在一些實施例中,對於通過使用LIC模式編解碼的每個塊或CU,編碼器指定縮放和偏移參數。 指定的 LIC 縮放和偏移參數顯式或隱式地被發送到解碼器以解碼塊。 I. 使用原始樣本計算 LIC 參數
在一些實施例中,使用來自原始幀的亮度元素和重構的參考幀中的內插樣本(根據 MV)來執行 LIC 參數推導。
在一些實施例中,代替邊界元素,在當前CU的位置處的亮度元素的全部或部分(子集)被用於LIC縮放和偏移推導。 這樣,原始幀(也稱為原始塊)中位於當前 CU 邊界內的全部或部分(子集)樣本和重構的參考幀中的插值樣本(根據 MV)代替鄰域樣本用於 LIC縮放和偏移計算。 計算出的縮放和偏移參數被發送到解碼器。
第3A-B圖概念性地說明了使用來自原始幀和參考幀的元素來導出LIC參數。 如第3A圖所示,來自原始塊(original block)310的原始資料將被編碼為當前塊320。當前塊320具有參考參考幀中的參考塊330的運動矢量325。 (參考塊330也可以是具有內插樣本(interpolated sample)的內插塊(interpolated block))。因此,編碼器不是使用當前塊320的頂部和左邊界鄰域的重構的樣本作為當前樣本,而是使用來自原始塊310的原始資料作為用於導出 LIC 線性模型的縮放和偏移的當前樣本。
此外,用於推導 LIC 線性模型的當前樣本取自將被編碼為當前塊的像素,即原始塊 310 內將成為當前塊 320 的像素的原始資料。在當前塊 320 的邊界之外的邊界模板中的像素不用於導出 LIC 線性模型,因為它們沒有被編碼為當前塊 320 的一部分。相應的參考樣本類似地取自由運動矢量 335標識的參考塊330的邊界內(而非參考塊的邊界模板中的像素)。
用於推導 LIC 線性模型的當前樣本可以是原始塊 310 內的像素子集(示為深色圓圈),並且用於推導 LIC 模型的參考樣本可以是參考塊 330 內像素的對應子集 (顯示為深色菱形)。
在一些實施例中,當前塊可以被劃分成子塊,並且每個子塊可以具有它自己的運動矢量,該運動矢量參考它自己的一組參考像素(參考子塊)。 原始塊的樣本和與當前塊的子塊相關聯的運動矢量所參考的樣本被用於導出縮放參數和偏移參數。 第3B圖示出當當前塊320被劃分為子塊時使用原始資料來導出LIC參數。 如圖所示,當前塊320被分成子塊A-P。 每個子塊都有自己的運動矢量,指向自己的參考像素(顯示為參考子塊 A'-P',但未顯示參考子塊 F'、G'、J'、K')。 子塊 A-P 引用的像素用作參考樣本(可以子採樣(subsampled))。 與原始塊310中的像素一起作為當前樣本(可以被子採樣),導出LIC線性模型參數的縮放和偏移量以用於對整個當前塊320進行編碼。 II. 量化縮放( Quantizing scale )和偏移參數
在一些實施例中,由線性模型用來生成LIC預測塊的縮放和偏移參數的值是從預定義的允許值集合中選擇的。 每組允許值都有一個有限的範圍,並且是通過均勻或非均勻地對連續的數位序列進行子採樣來創建的。 換句話說,只有範圍內的值的子集用於編碼或解碼。 在一些實施例中,縮放和/或偏移的值受特定範圍限制,該範圍小於原始範圍。 在一個實施例中,偏移值受限於[-35; 35] 範圍。 在一個實施例中,縮放值受限於[28; 36]範圍。
在一些實施例中,可用於縮放和/或偏移參數的值被均勻地或非均勻地子採樣。 在一個實施例中,均勻子採樣導致僅保持偶數值(或奇數值)。 在一個實施例中,僅保留偶數縮放值(even scale value)28、30、32、34、36,而丟棄值27、29、31、33、35和其他殘差值。 在一個實施例中,均勻子採樣導致僅保留二/三或五的倍數的值。 在一個實施例中,非均勻子採樣的結果如下:僅使用二的冪(+/-1、2、4、8、16、32、64、128、256)的偏移值。 在一個實施例中,使用較早列出的值的子集。 在一個實施例中,額外的零偏移量被添加到列表中。 在一個實施例中,非均勻子採樣的結果如下:保留為二和三的倍數的值,結果是以下一組值:(+/-1、2、3、6、12、24, 48、96)。 在一個實施例中,零偏移被添加到該列表。
在一些實施例中,代替縮放和偏移值的直接編解碼,在編碼器和解碼器處定義單獨的表(或一組預定義的允許值),其中值分配給每個索引,(即,索引是 用於從一組預定義的縮放或偏移允許值中選擇一個值。)
在一些實施例中,來自預定義表的索引被編碼和解碼,而不是縮放和偏移值被編碼和解碼。 下面的表 2A 顯示了使用索引發送 LIC 縮放和偏移參數的示例句法。 2A 使用索引發送 LIC 參數的句法
coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { 描述符
           if(sh_lic_enabled_flag  && inter_pred_idc[ x0 ][ y0 ]  ! =  PRED_BI  &&  !general_merge_flag[ x0 ][ y0 ]  &&  !pred_mode_ibc_flag && cbWidth * cbHeight >= 64 )
                  lic_flag[ x0 ][ y0 ] ae(v)
                      if (lic_flag[ x0 ][ y0 ]) {
                          lic_scale_idx[ x0 ][ y0 ]
                          lic_offset_idx[ x0 ][ y0 ]
                      }
句法元素lic_scale_idx[x0][y0]指定用於導出當前編解碼單元的預測樣本的局部照明補償的縮放值的索引。 lic_scale_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4}。 當 lic_scale_idx[ x0 ][ y0 ] 不存在時,它被推斷為等於 0。表 2B 顯示了將 lic_scale_idx 映射到 LIC 縮放參數的實際值的示例表。 2B LIC 縮放參數的索引
lic_scale_idx[ x0 ][ y0 ] 0 1 2 3 4
lic_scale[ x0 ][ y0 ] 32 30 34 28 36
句法元素lic_offset_idx[x0][y0]指定用於導出當前編解碼單元的預測樣本的局部照明補償的偏移值的索引。 lic_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 15}。 當 lic_offset_idx[ x0 ][ y0 ] 不存在時,它被推斷為等於 0。表 2C 顯示了將 lic_offset_idx 映射到 LIC 偏移參數的實際值的示例表。 2C LIC 偏移參數的索引
lic_offset_idx[ x0 ][ y0 ] 0 1 2 3 14 15
lic_offset[ x0 ][ y0 ] -1 1 -2 2 -128 128
因此,用於縮放和偏移的表格以反映發生概率的方式排列——更可能的值被排列在表格的前面(較小的索引),而不太可能的值被移動到表格的後面(較大的索引)。 換句話說,一組預定義的縮放和/或偏移量允許值根據集合中允許值的概率用索引排序。
表2D和2E顯示了基於出現概率排列的LIC參數的示例表。 2D :基於概率的 LIC 縮放參數索引
lic_scale_idx[ x0 ][ y0 ] 0 1 2 3 4
lic_scale[ x0 ][ y0 ] 30 32 34 36 28
2E :基於概率的 LIC 偏移參數索引
lic_offset_idx[ x0 ][ y0 ] 0 1 2 3 4 5 14 15
lic_offset[ x0 ][ y0 ] -4 4 2 -2 -8 8 128 -128
在一些實施例中,可調整的縮放/偏移值在PPS (圖片參數集)或PH (圖片標題)或SH (切片標題)處被發送。 在一些實施例中,可以為每個圖片或切片更新用於縮放和/或偏移的預定義表; 然後對來自各個表的 scale_idx 和 offset_idx 進行編碼或解碼。
在一些實施例中,可以為編解碼序列預定義多個縮放和/或偏移表,然後在每個PPS/PH/SH處編碼或解碼附加索引,識別當前使用的預定義縮放/偏移表的編號。在一些實施例中,兩個索引被編碼或解碼,一個用於縮放,另一個用於偏移。 在一些實施例中,對兩個或三個索引進行編碼或解碼——一個用於 Y,其他用於 Cb 和/或 Cr 分量。
在一些實施例中,縮放和偏移被直接編碼或解碼,而不是編碼或解碼映射表的索引。 在一些實施例中,偏移絕對值和偏移符號被分開編碼或解碼。 表 3 顯示了發送 LIC 縮放和偏移參數的示例句法,其中 LIC 偏移的絕對值和符號分別編解碼。
表 3:
coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { 描述符
           if(sh_lic_enabled_flag  && inter_pred_idc[ x0 ][ y0 ]  ! =  PRED_BI  &&  !general_merge_flag[ x0 ][ y0 ]  &&  !pred_mode_ibc_flag && cbWidth * cbHeight >= 64 )
                  lic_flag[ x0 ][ y0 ] ae(v)
                      if (lic_flag[ x0 ][ y0 ]) {
                          lic_scale [ x0 ][ y0 ]
                          lic_abs_offset [ x0 ][ y0 ]
                          if (lic_abs_offset [ x0 ][ y0 ] > 0)
                              lic_sign_offset[ x0 ][ y0 ]
                       }
句法元素lic_scale [x0][y0]指定用於導出當前編解碼單元的預測樣本的局部照明補償的縮放值。 lic_scale [ x0 ] [ y0 ] 的值可以是以下之一:{28, 30, 32, 34, 36}。 當 lic_scale [ x0 ][ y0 ] 不存在時,它被推斷為等於 32(即無縮放)。
句法元素lic_abs_offset[x0][y0]指定用於導出當前編解碼單元的預測樣本的局部照明補償的偏移值的絕對值。 lic_abs_offset[x0][y0] 的值可以是以下之一:{0, 1, 2, 4, 8, 16, 32, 64, 128}。 當 lic_abs_offset [ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素lic_sign_offset[x0][y0]指定用於導出當前編解碼單元的預測樣本的局部照明補償的偏移值的符號。 lic_sign_offset[x0][y0]等於0表示lic_offset[x0][y0]為正值,lic_sign_offset[x0][y0]等於1表示lic_offset[x0][y0]為負值。 當 lic_sign_offset[ x0 ][ y0 ] 不存在時,它被推斷為等於 0。
在一些實施例中,lic_offset[x0][y0]的重構值可以計算如下:
Figure 02_image001
在一些實施例中,lic_sign_offset[x0][y0]等於0表示lic_offset[x0][y0]為負值,lic_sign_offset[x0][y0]等於1表示lic_offset[x0][y0]為正值。在一些實施例中,當 lic_sign_offset[x0][y0] 不存在時,它被推斷為等於 1。
在一些實施例中,lic_offset[x0][y0]的重構可以計算如下:
Figure 02_image003
在一些實施例中,僅偏移的絕對值被映射到表中的值,而其符號被單獨編碼或解碼。 對於一些實施例,具有單獨編解碼的符號和 LIC 偏移參數的絕對值的示例句法如表 4 所示:
表 4:
coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { 描述符
           if(sh_lic_enabled_flag  && inter_pred_idc[ x0 ][ y0 ]  ! =  PRED_BI  &&  !general_merge_flag[ x0 ][ y0 ]  &&  !pred_mode_ibc_flag && cbWidth * cbHeight >= 64 )
                  lic_flag[ x0 ][ y0 ] ae(v)
                      if (lic_flag[ x0 ][ y0 ]) {
                          lic_scale_idx [ x0 ][ y0 ]
                          lic_abs_offset_idx [ x0 ][ y0 ]
                          if (lic_abs_offset_idx [ x0 ][ y0 ] > 0)
                              lic_sign_offset[ x0 ][ y0 ]
                       }
句法元素lic_scale_idx[x0][y0]指定用於導出當前編解碼單元的預測樣本的局部照明補償的縮放值的索引。 lic_scale_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4}。 當 lic_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
lic_scale_idx[ x0 ][ y0 ] 0 1 2 3 4
lic_scale[ x0 ][ y0 ] 32 30 34 28 36
句法元素lic_offset_idx[x0][y0]指定用於導出當前編解碼單元的預測樣本的局部照明補償的偏移值的索引。 lic_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 8}。 當 lic_offset_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
lic_offset_idx[ x0 ][ y0 ] 0 1 2 3 4 5 6 7 8
lic_abs_offset [ x0 ][ y0 ] 0 1 2 4 8 16 32 64 128
III. 色度分量的單獨 LIC 參數值
在一些實施例中,視訊編碼器可以將單獨的LIC參數用於亮度和色度分量。 換言之,除了使用亮度縮放和偏移參數來為亮度分量生成LIC預測塊之外,視訊編碼器/解碼器還可以使用單獨的色度縮放和偏移參數來為色度分量生成預測塊。 因此,計算、編碼和解碼一個附加偏移值(對於 Cb 和 Cr 分量)。 因此,在一些實施例中,亮度和色度縮放參數通過對選擇亮度和色度縮放參數的值的一個或多個縮放參數索引進行編解碼來發信,而亮度和色度偏移參數通過對選擇亮度和色度偏移參數的值的一個或多個偏移參數索引進行編解碼來發信。 對於一些實施例,使用單獨的亮度和色度 LIC 參數的示例句法如表 5 所示:
表 5:
coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { 描述符
           if(sh_lic_enabled_flag  && inter_pred_idc[ x0 ][ y0 ]  ! =  PRED_BI  &&  !general_merge_flag[ x0 ][ y0 ]  &&  !pred_mode_ibc_flag && cbWidth * cbHeight >= 64 )
                  lic_flag[ x0 ][ y0 ] ae(v)
                      if (lic_flag[ x0 ][ y0 ]) {
                          lic_y_scale_idx[ x0 ][ y0 ]
                          lic_y_offset_idx[ x0 ][ y0 ]
lic_cbcr_offset_idx[ x0 ][ y0 ]
                      }
句法元素lic_y_scale_idx[x0][y0]指定用於導出當前亮度編解碼塊的預測樣本的局部照明補償的縮放值的索引。 lic_y_scale_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4}。 當 lic_y_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
lic_y_scale_idx[ x0 ][ y0 ] 0 1 2 3 4
lic_y_scale[ x0 ][ y0 ] 32 30 34 28 36
句法元素lic_y_offset_idx[x0][y0]指定用於導出當前亮度編解碼塊的預測樣本的局部照明補償的偏移值的索引。 lic_y_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 15}。 當 lic_y_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
lic_y_offset_idx[ x0 ][ y0 ]/ lic_cbcr_offset_idx[ x0 ][ y0 ](*) 0 1 2 3 14 15
lic_offset[ x0 ][ y0 ] -1 1 -2 2 -128 128
句法元素lic_cbcr_offset_idx[x0][y0]指定用於導出當前編解碼單元的兩個色度分量的預測樣本的局部照明補償的偏移值的索引。 lic_cbcr_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 15}。 當 lic_cbcr_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
lic_cbcr_offset_idx[ x0 ][ y0 ] 0 1 2 3 16 17
lic_cbcr_offset[ x0 ][ y0 ] -3 3 -5 5 -256 256
在一些實施例中,為亮度定義的lic_y_scale_idx[x0][y0]值的相同值被重新用於色度分量(Cb/Cr或兩者)。 在一些實施例中,lic_scale_cb/cr/cbcr_idx 被設置為零。 在一些實施例中,偏移量是為一個顏色分量定義的,然後再用於另一個顏色分量。 例如,可以為 Cb 定義偏移量並為 Cr 重新使用。 在一些實施例中,縮放是為一個顏色分量定義的,然後再用於另一個顏色分量。 例如,可以為 Cb 定義縮放並為 Cr 重新使用。
在一些實施例中,支持 Cb 和 Cr 分量的單獨值/縮放範圍/偏移量。 在一些實施例中,計算、編碼和解碼兩個額外的偏移值(每個偏移值各用於Cb和Cr分量中的每一個)。 在一些實施例中,具有用於 Cb 和 Cr 的單獨 LIC 參數的示例句法如表 6 中所示:
表 6:
coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { 描述符
           if(sh_lic_enabled_flag  && inter_pred_idc[ x0 ][ y0 ]  ! =  PRED_BI  &&  !general_merge_flag[ x0 ][ y0 ]  &&  !pred_mode_ibc_flag && cbWidth * cbHeight >= 64 )
                  lic_flag[ x0 ][ y0 ] ae(v)
                      if (lic_flag[ x0 ][ y0 ]) {
                          lic_y_scale_idx[ x0 ][ y0 ]
                          lic_y_offset_idx[ x0 ][ y0 ]
lic_cb_offset_idx[ x0 ][ y0 ]
lic_cr_offset_idx[ x0 ][ y0 ]
                      }
句法元素lic_y_scale_idx[x0][y0]指定用於導出當前亮度編解碼塊的預測樣本的局部照明補償的縮放值的索引。 lic_y_scale_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4}。 當 lic_y_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素lic_y_offset_idx[x0][y0]指定用於導出當前亮度編解碼塊的預測樣本的局部照明補償的偏移值的索引。 lic_y_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 15}。 當 lic_y_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素lic_cb_offset_idx[x0][y0]指定用於導出當前編解碼單元的Cb分量的預測樣本的局部照明補償的偏移值的索引。 lic_cb_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 15}。 當 lic_cb_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素lic_cr_offset_idx[x0][y0]指定用於導出當前編解碼單元的Cr分量的預測樣本的局部照明補償的偏移值的索引。 lic_cr_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 15}。 當 lic_cr_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
在一些實施例中,定義了具有用於Y/Cb/Cr分量所有三個或部分的值/縮放範圍/偏移的單獨表格。 在一個實施例中,為偏移定義 3D 矢量,其中一個索引提供對 Y、Cb 和 Cr 的所有三個偏移索引值的訪問,如下所示:
lic_y_offset_idx[ x0 ][ y0 ]/ lic_cb_offset_idx[ x0 ][ y0 ](*)/ lic_cr_offset_idx[ x0 ][ y0 ](*) 0 1 2 3 14 15
lic_offset[ x0 ][ y0 ] -1 1 -2 2 -128 128
在一些實施例中,為縮放定義 2D 矢量,其中一個索引值提供對(i)Y 的縮放索引值和(ii)組合的 CbCr 的縮放索引的訪問。
在一些實施例中,為亮度定義的lic_y_scale_idx[x0][y0]的相同值被重新用於色度分量(Cb/Cr或兩者)。 在一些實施例中,lic_scale_cb/cr/cbcr_idx 被設置為零。
在一些實施例中,計算、編碼和解碼用於Cb和Cr分量兩者的一個附加縮放值和用於Cb和Cr分量兩者的一個附加偏移值。 對於一些實施例,具有由Cb和Cr分量共享的一個縮放值和一個偏移值的LIC參數的示例句法如下表7A所示:
表 7A:
coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { 描述符
           if(sh_lic_enabled_flag  && inter_pred_idc[ x0 ][ y0 ]  ! =  PRED_BI  &&  !general_merge_flag[ x0 ][ y0 ]  &&  !pred_mode_ibc_flag && cbWidth * cbHeight >= 64 )
                  lic_flag[ x0 ][ y0 ] ae(v)
                      if (lic_flag[ x0 ][ y0 ]) {
                          lic_y_scale_idx[ x0 ][ y0 ]
                          lic_y_offset_idx[ x0 ][ y0 ]
lic_cbcr_scale_idx[ x0 ][ y0 ]
lic_cbcr_offset_idx[ x0 ][ y0 ]
                      }
句法元素lic_y_scale_idx[x0][y0]指定用於導出當前亮度編解碼塊的預測樣本的局部照明補償的縮放值的索引。 lic_y_scale_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4}。 當 lic_y_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
lic_cbcr_scale_idx[x0][y0]指定用於導出當前編解碼單元的兩個色度分量的預測樣本的局部照明補償的縮放值的索引。 lic_cbcr_scale_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4}。 當 lic_cbcr_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
lic_y_scale_idx[ x0 ][ y0 ]/ lic_cbcr_scale_idx[ x0 ][ y0 ](*) 0 1 2 3 4
lic_scale[ x0 ][ y0 ] 32 30 34 28 36
lic_y_offset_idx[x0][y0]指定用於導出當前亮度編解碼塊的預測樣本的局部照明補償的偏移值的索引。 lic_y_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 15}。 當 lic_y_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
lic_cbcr_offset_idx[x0][y0]指定用於導出當前編解碼單元的兩個色度分量的預測樣本的局部照明補償的偏移值的索引。 lic_cbcr_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 15}。 當 lic_cbcr_offset_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
lic_y_offset_idx[ x0 ][ y0 ]/ lic_cbcr_offset_idx[ x0 ][ y0 ](*) 0 1 2 3 14 15
lic_offset[ x0 ][ y0 ] -1 1 -2 2 -128 128
在一些實施例中,縮放/偏移值中的一個或兩個被定義用於一個顏色分量,然後該值被重新用於另一個顏色分量。 例如,在一些實施例中,當為Cb定義了縮放/偏移值中的一個或二者時,這些定義的值被重新用於Cr。
在一些實施例中,定義了具有用於Y/Cb/Cr分量的所有三個或部分的值/縮放範圍/偏移量的單獨表格。 在一些實施例中,為偏移定義3D矢量,其中一個索引提供對Y、Cb和Cr的所有三個偏移索引值的訪問。 在一些實施例中,3D向量可以被記如下:
lic_offset_idx[ x0 ][ y0 ] 0 1 2 3 14 15
lic_y_offset[ x0 ][ y0 ] -1 1 -2 2 -128 128
lic_cb_offset[ x0 ][ y0 ] 0 -4 -2 4 -64 64
lic_cr_offset[ x0 ][ y0 ] 0 2 -4 4 256 -256
當一個索引lic_offset_idx[x0][y0]被解碼時,該值然後被映射到lic_y_offset[x0][y0]、lic_cb_offset[x0][y0]和lic_cr_offset[x0][y0]的對應值。 在一些實施例中,根據對應顏色分量的特定偏移值的概率,這些值針對Y/Cb/Cr分量中的每一個被不同地佈置。 在一些實施例中,類似的表格用於縮放。
在一些實施例中,計算、編碼和解碼一個附加縮放值(用於Cb和Cr分量兩者)和兩個附加偏移值(各用於Cb和Cr分量)。 對於一些實施例,在下表7B中示出了用於Cb和Cr二者的一個縮放值以及分別用於Cb和Cr的兩個偏移值的示例句法:
表 7B:
coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { 描述符
           if(sh_lic_enabled_flag  && inter_pred_idc[ x0 ][ y0 ]  ! =  PRED_BI  &&  !general_merge_flag[ x0 ][ y0 ]  &&  !pred_mode_ibc_flag && cbWidth * cbHeight >= 64 )
                  lic_flag[ x0 ][ y0 ] ae(v)
                      if (lic_flag[ x0 ][ y0 ]) {
                          lic_y_scale_idx[ x0 ][ y0 ]
                          lic_y_offset_idx[ x0 ][ y0 ]
lic_cbcr_scale_idx[ x0 ][ y0 ]
lic_cb_offset_idx[ x0 ][ y0 ]
lic_cr_offset_idx[ x0 ][ y0 ]
                      }
句法元素lic_y_scale_idx[x0][y0]指定用於導出當前亮度編解碼塊的預測樣本的局部照明補償的縮放值的索引。 lic_y_scale_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4}。 當 lic_y_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素lic_cbcr_scale_idx[x0][y0]指定用於導出當前編解碼單元的兩個色度分量的預測樣本的局部照明補償的縮放值的索引。 lic_cbcr_scale_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4}。 當 lic_cbcr_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
lic_scale_idx[ x0 ][ y0 ]/ lic_cbcr_scale_idx[ x0 ][ y0 ](*) 0 1 2 3 4
lic_scale[ x0 ][ y0 ] 32 30 34 28 36
句法元素lic_y_offset_idx[x0][y0]指定用於導出當前亮度編解碼塊的預測樣本的局部照明補償的偏移值的索引。 lic_y_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 15}。 當 lic_y_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素lic_cb_offset_idx[x0][y0]指定用於導出當前編解碼單元的Cb分量的預測樣本的局部照明補償的偏移值的索引。 lic_cb_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 15}。 當 lic_cb_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素lic_cr_offset_idx[x0][y0]指定用於導出當前編解碼單元的Cr分量的預測樣本的局部照明補償的偏移值的索引。 lic_cr_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 15}。 當 lic_cr_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
lic_y_offset_idx[ x0 ][ y0 ]/ lic_cb_offset_idx[ x0 ][ y0 ](*) / lic_cr_offset_idx[ x0 ][ y0 ](*) 0 1 2 3 14 15
lic_offset[ x0 ][ y0 ] -1 1 -2 2 -128 128
在一些實施例中,為色度分量計算、編碼和解碼兩個縮放值(各用於Cb和Cr分量)和兩個偏移值(各用於Cb和Cr分量)。 在一些實施例中,Cb和Cr分量的具有兩個縮放值和兩個偏移值的示例句法在表8中示出:
表 8:
coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { 描述符
           if(sh_lic_enabled_flag  && inter_pred_idc[ x0 ][ y0 ]  ! =  PRED_BI  &&  !general_merge_flag[ x0 ][ y0 ]  &&  !pred_mode_ibc_flag && cbWidth * cbHeight >= 64 )
                  lic_flag[ x0 ][ y0 ] ae(v)
                      if (lic_flag[ x0 ][ y0 ]) {
                          lic_y_scale_idx[ x0 ][ y0 ]
                          lic_y_offset_idx[ x0 ][ y0 ]
lic_cb_scale_idx[ x0 ][ y0 ]
lic_cb_offset_idx[ x0 ][ y0 ]
lic_cr_scale_idx[ x0 ][ y0 ]
lic_cr_offset_idx[ x0 ][ y0 ]
                      }
句法元素lic_y_scale_idx[x0][y0]指定用於導出當前亮度編解碼塊的預測樣本的局部照明補償的縮放值的索引。 lic_y_scale_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4}。 當 lic_y_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素lic_cb_scale_idx[x0][y0]指定用於導出當前編解碼單元的Cb分量的預測樣本的局部照明補償的縮放值的索引。 lic_cb_scale_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4}。 當 lic_cb_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素lic_cr_scale_idx[x0][y0]指定用於導出當前編解碼單元的Cr分量的預測樣本的局部照明補償的縮放值的索引。 lic_cr_scale_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4}。 當 lic_cr_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
lic_scale_idx[ x0 ][ y0 ]/ lic_cb_scale_idx[ x0 ][ y0 ](*)/ lic_cr_scale_idx[ x0 ][ y0 ](*) 0 1 2 3 4
lic_scale[ x0 ][ y0 ] 32 30 34 28 36
句法元素lic_y_offset_idx[x0][y0]指定用於導出當前亮度編解碼塊的預測樣本的局部照明補償的偏移值的索引。 lic_y_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 15}。 當 lic_y_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素lic_cb_offset_idx[x0][y0]指定用於導出當前編解碼單元的Cb分量的預測樣本的局部照明補償的偏移值的索引。 lic_cb_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 15}。 當 lic_cb_offset_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素lic_cr_offset_idx[x0][y0]指定用於導出當前編解碼單元的Cr分量的預測樣本的局部照明補償的偏移值的索引。 lic_cr_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 15}。 當 lic_cr_offset_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
lic_y_offset_idx[ x0 ][ y0 ]/ lic_cb_offset_idx[ x0 ][ y0 ](*) / lic_cr_offset_idx[ x0 ][ y0 ](*) 0 1 2 3 14 15
lic_offset[ x0 ][ y0 ] -1 1 -2 2 -128 128
在一些實施例中,定義了具有Y/Cb/Cr分量的所有三個或部分的值/縮放範圍/偏移量的單獨表格。 在一些實施例中,為縮放/偏移定義了 3D 矢量,其中一個索引提供對 Y、Cb 和 Cr 的所有三個縮放/偏移索引值的訪問。
在一些實施例中,亮度縮放/偏移索引和對應的色度(Cb/Cr)縮放/偏移索引之間的差異被編碼。 在一些實施例中,針對一個顏色分量對縮放/偏移索引進行編碼,並且另外對與另一個色度分量的相應縮放/偏移索引之間的差異進行編碼。 對於一些實施例,表 9A 中示出了具有用於亮度和色度分量的差分(differentially)編解碼的 LIC 縮放或偏移索引的示例句法:
表 9A:
coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { 描述符
           if(sh_lic_enabled_flag  && inter_pred_idc[ x0 ][ y0 ]  ! =  PRED_BI  &&  !general_merge_flag[ x0 ][ y0 ]  &&  !pred_mode_ibc_flag && cbWidth * cbHeight >= 64 )
                  lic_flag[ x0 ][ y0 ] ae(v)
                      if (lic_flag[ x0 ][ y0 ]) {
                          lic_y_scale_idx[ x0 ][ y0 ]
                          lic_y_offset_idx[ x0 ][ y0 ]
delta_lic_cb_scale_idx[ x0 ][ y0 ]
delta_lic_cb_offset_idx[ x0 ][ y0 ]
delta_lic_cr_scale_idx[ x0 ][ y0 ]
delta_lic_cr_offset_idx[ x0 ][ y0 ]
                      }
句法元素delta_lic_cb_scale_idx[x0][y0]指定用於導出Y的預測樣本的局部照明補償的縮放值的索引與用於導出當前編解碼單元的Cb分量的預測樣本的局部照明補償的縮放值的索引之間的差值。 delta_lic_cb_scale_idx[x0][y0] 的值可以是以下之一:{0, +/-1, +/-2, +/-3, +/-4}。 當 delta_lic_cb_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素delta_lic_cr_scale_idx[x0][y0]指定用於導出Y的預測樣本的局部照明補償的縮放值的索引與用於導出當前編解碼單元Cr分量的預測樣本的局部照明補償的縮放值的索引之間的差值。 delta_lic_cr_scale_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, +/-1, +/-2, +/-3, +/-4}。 當 delta_lic_cr_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素delta_lic_cb_offset_idx[x0][y0]指定用於導出Y分量的預測樣本的局部照明補償偏移值的索引與用於導出當前編解碼單元的Cb分量的預測樣本的局部照明補償偏移值的索引之間的差值。 delta_lic_cb_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, +/-1, +/-2, +/-3, +/-4, …, +/-15}。 當 delta_lic_cb_offset_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素delta_lic_cr_offset_idx[x0][y0]指定用於導出Y分量的預測樣本的局部照明補償偏移值的索引與用於導出當前編解碼單元的Cr分量的預測樣本的局部照明補償偏移值的索引之間的差值。 delta_lic_cr_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, +/-1, +/-2, +/-3, +/-4, …, +/-15}。 當 delta_lic_cr_offset_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
對於一些實施例,具有用於亮度和色度分量的差分編解碼縮放或偏移索引的LIC句法在表9B中示出:
表9B:
coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { 描述符
           if(sh_lic_enabled_flag  && inter_pred_idc[ x0 ][ y0 ]  ! =  PRED_BI  &&  !general_merge_flag[ x0 ][ y0 ]  &&  !pred_mode_ibc_flag && cbWidth * cbHeight >= 64 )
                  lic_flag[ x0 ][ y0 ] ae(v)
                      if (lic_flag[ x0 ][ y0 ]) {
                          lic_y_scale_idx[ x0 ][ y0 ]
                          lic_y_offset_idx[ x0 ][ y0 ]
lic_cb_scale_idx[ x0 ][ y0 ]
lic_cb_offset_idx[ x0 ][ y0 ]
delta_lic_cr_scale_idx[ x0 ][ y0 ]
delta_lic_cr_offset_idx[ x0 ][ y0 ]
                      }
句法元素delta_lic_cr_scale_idx[x0][y0]指定用於導出Cb的預測樣本的局部照明補償的縮放值的索引與用於導出當前編解碼單元Cr分量的預測樣本的局部照明補償的縮放值的索引之間的差值。 delta_lic_cr_scale_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, +/-1, +/-2, +/-3, +/-4}。 當 delta_lic_cr_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素delta_lic_cr_offset_idx[x0][y0]指定用於導出Cb分量的預測樣本的局部照明補償的偏移值的索引與用於導出當前編解碼單元的Cr分量的預測樣本的局部照明補償的偏移值的索引之間的差值。 delta_lic_cr_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, +/-1, +/-2, +/-3, +/-4, …, +/-15}。 當 delta_lic_cr_offset_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
在一些實施例中,增量編解碼(delta coding)被應用於直接編碼或解碼縮放和/或偏移的值,而不是映射表的索引。 在一些實施例中,Y分量的LIC縮放和/或偏移與Cb分量的相應LIC縮放和/或偏移之間的差異被編碼/解碼。 在一個實施例中,Y分量的LIC縮放和/或偏移與對應的Cr分量的LIC縮放和/或偏移之間的差異被編碼或解碼。 在一個實施例中,Cb分量的LIC縮放和/或偏移與Cr分量的相應LIC縮放和/或偏移之間的差異被編碼或解碼。 對於一些實施例,具有直接編解碼的 LIC 縮放和偏移參數值亮度和色度分量的示例句法在表 10 中示出:
表 10:
coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { 描述符
           if(sh_lic_enabled_flag  && inter_pred_idc[ x0 ][ y0 ]  ! =  PRED_BI  &&  !general_merge_flag[ x0 ][ y0 ]  &&  !pred_mode_ibc_flag && cbWidth * cbHeight >= 64 )
                  lic_flag[ x0 ][ y0 ] ae(v)
                      if (lic_flag[ x0 ][ y0 ]) {
                          lic_y_scale[ x0 ][ y0 ]
                          lic_y_offset [ x0 ][ y0 ]
delta_lic_cb_scale [ x0 ][ y0 ]
delta_lic_cb_offset [ x0 ][ y0 ]
delta_lic_cr_scale [ x0 ][ y0 ]
delta_lic_cr_offset [ x0 ][ y0 ]
                      }
句法元素delta_lic_cb_scale[x0][y0]指定用於導出Y的預測樣本的局部照明補償的縮放值與用於導出當前的編解碼單元的Cb分量的預測樣本的局部照明補償的縮放值之間的差值。 delta_lic_cb_scale[x0][y0] 的值可以是以下之一:{0, +/-1, +/-2, +/-3, +/-4}。 當 delta_lic_cb_scale[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素delta_lic_cr_scale_idx[x0][y0]指定用於推導Y的預測樣本的局部照明補償的縮放值與用於推導當前編解碼單元的Cr分量的預測樣本的局部照明補償的縮放值之間的差值。 delta_lic_cr_scale [ x0 ][ y0 ] 的值可以是以下之一:{0, +/-1, +/-2, +/-3, +/-4}。 當 delta_lic_cr_scale [ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素delta_lic_cb_offset[x0][y0]指定用於導出Y分量的預測樣本的局部照明補償的偏移值與用於導出當前編解碼單元Cb分量的預測樣本的局部照明補償的偏移值之間的差值。 delta_lic_cb_offset[x0][y0] 的值可以是以下之一:{0, +/-1, +/-2, +/-3, +/-4, …, +/-15}。 當 delta_lic_cb_offset [ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素delta_lic_cr_offset[x0][y0]指定用於導出Y分量的預測樣本的局部照明補償的偏移值與用於導出當前編解碼單元的Cr分量的預測樣本的局部照明補償的偏移值之間的差值。 delta_lic_cr_offset [ x0 ][ y0 ] 的值可以是以下之一:{0, +/-1, +/-2, +/-3, +/-4, …, +/-15}。 當 delta_lic_cr_offset [ x0 ][ y0 ] 不存在時,推斷為等於 0。
在一些實施例中,對於值(lic_y_scale[x0][y0]、lic_y_offset[x0][y0]、delta_lic_cb_scale[x0][y0]、delta_lic_cr_scale[x0][y0]、delta_lic_cb_offset [ x0 ][ y0 ], delta_lic_cr_offset [ x0 ][ y0 ])的一個/所有或子集, 絕對值和符號分別編碼或解碼,如上文所述。 在一些實施例中,如果delta_lic_cb/cr_scale[x0][y0]等於零,則增量的符號不被編碼或解碼。 在一些實施例中,相同的規則適用於Y分量。 在一些實施例中,縮放和/或偏移的值被直接編碼/解碼,並且對於值(lic_y_scale[x0][y0]、lic_cb_scale[x0][y0]、lic_cr_scale[x0][ y0 ])的一個/所有或子集,編碼/解碼最可能的縮放值和當前值之間的差異。 在一些實施例中,最可能的縮放值是32(無縮放),編碼或解碼32與lic_y_scale[ x0 ][ y0 ]、lic_cb_scale [ x0 ][ y0 ]、lic_cr_scale [ x0 ][ y0 ]中的一個、兩個或所有之間的差值。 在一些實施例中,類似的方法被應用於偏移編解碼。 IV. 具有 LIC 縮放和偏移參數的基於歷史的( History-based ,簡寫為 HB )表格
在一些實施例中,來自先前解碼的CU的LIC縮放和偏移值被存儲在單獨的表中,然後那些值可以用於當前CU作為定義和編碼/解碼的LIC縮放和偏移值的替代。在這種情況下,只需要傳輸基於歷史的表中的索引。 在一些實施例中,索引用於從基於歷史的表的一個或多個條目中選擇條目。 基於歷史的表的每個條目包括歷史縮放參數值和偏移參數值,它們被應用於生成用於編碼或解碼使用LIC的先前塊的預測塊。
用於存儲LIC參數的基於歷史的表將在編解碼一個用等於一(或真)的LIC標誌編解碼的CU之後更新。 在一些實施例中,視訊編碼器/解碼器用新條目更新基於歷史的表,新條目包括用於生成用於編碼或解碼當前CU的預測塊的縮放參數值和偏移參數值。 在一些實施例中,這個基於歷史的表具有預定義值的固定大小,並且它在編碼或解碼過程中被更新。
為了避免未定義的情況,當CU是CTU中的第一個CU時,LIC標誌被設置為一或假定為一。 對於一些實施例,用於使用基於歷史的表來編解碼 LIC 參數的示例句法在表 11 中示出:
表 11:
coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { 描述符
           if(sh_lic_enabled_flag  && inter_pred_idc[ x0 ][ y0 ]  ! =  PRED_BI  &&  !general_merge_flag[ x0 ][ y0 ]  &&  !pred_mode_ibc_flag && cbWidth * cbHeight >= 64 )
                  lic_flag[ x0 ][ y0 ] ae(v)
                      if (lic_flag[ x0 ][ y0 ])
                          lic_params_encoded_flag [ x0 ][ y0 ]
                          if (lic_params_encoded_flag[ x0 ][ y0 ]) {
                              lic_scale_idx[ x0 ][ y0 ]
                              lic_offset_idx[ x0 ][ y0 ]
                          }
else
                              lic_hb_idx[ x0 ][ y0 ]
句法元素lic_params_encoded_flag[x0][y0]等於1指定對於當前編解碼單元,在對P或B切片組進行解碼時,使用局部照明補償來導出當前編解碼單元的預測樣本,縮放和偏移值被發送到解碼器。 lic_params_encoded_flag [ x0 ][ y0 ] 等於 0 指定用於應用局部照明補償的縮放和偏移值是從基於歷史的表中定義的。 當 lic_params_encoded_flag[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素lic_scale_idx[x0][y0]指定用於導出當前編解碼單元的預測樣本的局部照明補償的縮放值的索引。 lic_scale_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4}。 當 lic_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素lic_offset_idx[x0][y0]指定用於導出當前編解碼單元的預測樣本的局部照明補償的偏移值的索引。 lic_offset_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, 2, 3, 4, …, 15}。 當 lic_scale_idx[ x0 ][ y0 ] 不存在時,推斷為等於 0。
句法元素lic_hb_idx[x0][y0]指定用於導出當前編解碼單元的預測樣本的局部照明補償參數的縮放/偏移集的索引。 lic_hb_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, … ,MaxNumLicParams}。
在一些實施例中,對於Y/Cb/Cr分量單獨定義基於歷史的表格,如下表12所示。
表 12:
coding_unit( x0, y0, cbWidth, cbHeight, cqtDepth, treeType, modeType ) { 描述符
           if(sh_lic_enabled_flag  && inter_pred_idc[ x0 ][ y0 ]  ! =  PRED_BI  &&  !general_merge_flag[ x0 ][ y0 ]  &&  !pred_mode_ibc_flag && cbWidth * cbHeight >= 64 )
                  lic_flag[ x0 ][ y0 ] ae(v)
                      if (lic_flag[ x0 ][ y0 ])
                          lic_params_encoded_flag [ x0 ][ y0 ]
                          if (lic_params_encoded_flag[ x0 ][ y0 ]) {
                              lic_y_scale_idx[ x0 ][ y0 ]
                              lic_y_offset_idx[ x0 ][ y0 ]
lic_cb_scale_idx[ x0 ][ y0 ]
lic_cb_offset_idx[ x0 ][ y0 ]
lic_cr_scale_idx[ x0 ][ y0 ]
lic_cr_offset_idx[ x0 ][ y0 ]
                              }
                          else {
                              lic_y_hb_idx[ x0 ][ y0 ]
                              lic_cb_hb_idx[ x0 ][ y0 ]
                              lic_cr_hb_idx[ x0 ][ y0 ]
                              }
句法元素lic_y_hb_idx[x0][y0]指定用於導出當前編解碼單元的Y分量的預測樣本的局部照明補償參數的縮放/偏移集的索引。 lic_y_hb_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, … ,MaxNumLicParamsY}。
句法元素lic_cb_hb_idx[x0][y0]指定用於導出當前編解碼單元的Cb分量的預測樣本的局部照明補償參數的縮放/偏移集的索引。 lic_cb_hb_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, … ,MaxNumLicParamsCb}。
句法元素lic_cr_hb_idx[x0][y0]指定用於導出當前編解碼單元的Cr分量的預測樣本的局部照明補償參數的縮放/偏移集的索引。 lic_cr_hb_idx[ x0 ][ y0 ] 的值可以是以下之一:{0, 1, … ,MaxNumLicParamsCr }。
第4圖示出了基於歷史的表400,其提供先前使用的LIC縮放和偏移參數值供當前塊使用。 基於歷史的表400具有對應於基於歷史的表的索引(hb_idx)為0到5的若干條目410-415。每個條目對應於先前的LIC編解碼塊並且包含用於該先前編解碼塊的LIC參數。 每個條目包含Y分量的縮放值、Cb分量的縮放值、Cr分量的縮放值、Y分量的偏移值、Cb分量的偏移值和Cr分量的偏移值。 當對當前塊進行編碼或解碼時,視訊編碼器或解碼器可以設置基於歷史的表索引以從基於歷史的表400中選擇和擷取(retrieve)一個條目。然後使用擷取到的參數來確定三個分量的LIC預測塊。
示例的基於歷史的表格400包括分別用於Y、Cb和Cr分量的單獨值。 在一些實施例中,一個基於歷史的表格由所有Y/Cb/Cr 三個分量共享。 在一些實施例中,為每個 Y/Cb/Cr 分量構建一個單獨的基於歷史的表格。 在一些實施例中,基於歷史的表中的一個條目包含所有三個Y/Cb/Cr分量的LIC參數。 在這種情況下,只需要一個索引 lic_hb_idx[ x0 ][ y0 ]。 在一些實施例中,lic_params_encoded_flag 的含義被反轉,並且當標誌等於零時發信縮放和偏移值。
在一些實施例中,lic_y_scale[ x0 ][ y0 ]、lic_y_offset [ x0 ][ y0 ]、lic_cb_scale[ x0 ][ y0 ]、lic_cb_offset [ x0 ][ y0 ]、lic_cr_scale[ x0 ][ y0 ]、lic_cr_offset [ x0 ][ y0 ])中的一個、兩個或子集不使用映射表,而是按值編解碼,構建基於歷史的表。 在一個實施例中,來自構建的基於歷史的表的元素被用作編碼或解碼的 lic_y_scale[x0][y0]、lic_y_offset[x0][y0]、lic_cb_scale[x0][y0]、lic_cb_offset[x0][y0]、lic_cr_scale[x0][y0]、lic_cr_offset[x0][y0]的一個、兩個或其子集的預測塊。 在一些實施例中,來自基於歷史的表的索引和附加增量被編碼或解碼用於編碼或解碼的 lic_y_scale[ x0 ][ y0 ]、lic_y_offset [ x0 ][ y0 ]、lic_cb_scale[ x0 ][ y0 ]、lic_cb_offset [ x0 ][ y0 ]、lic_cr_scale[ x0 ][ y0 ]、lic_cr_offset [ x0 ][ y0 ]的一個/兩個或子集。
在一些實施例中,基於歷史的表的每個元素或條目包含縮放值和偏移值。 在一些實施例中,針對基於歷史的表的一個索引和兩個增量值(例如,相對於存儲在基於歷史的表中的縮放/偏移值的增量值)被編碼或解碼用於 Y/ Cb/Cr 分量 中的一個、兩個或所有。 在一些實施例中,單獨的基於歷史的表被構造用於縮放和/或偏移。 在一些實施例中,為Y/Cb/Cr分量中的一個、兩個或所有構建單獨的基於歷史的表格。
在一些實施例中,增量值可以被另外定義並發信給解碼器以被解碼。 在一些實施例中,如果增量大於零,則附加增量的符號被編碼/解碼。 否則,符號將被跳過,並且不會在編碼器處發信,並在解碼過程中被跳過。 在一些實施例中,如果縮放值等於32(即,無縮放),則等於0的偏移值在編碼器和/或解碼器處是不允許的。
在一些實施例中,用於Y/Cb/Cr分量的一個、兩個或所有的LIC標誌、縮放和偏移值/索引被包括在運動向量分量和參考索引的推導過程中。 V. 示例的視訊編碼器
第5圖說明可實施局部照明補償(LIC)模式的示例視訊編碼器500。 如圖所示,視訊編碼器 500 從視訊源 505 接收輸入視訊信號並將該信號編碼為位元流 595。視訊編碼器 500 具有用於對來自視訊源 505 的信號進行編碼的若干組件或模組,至少包括選自以下的一些組件:變換模組510、量化模組511、逆量化模組514、逆變換模組515、圖片內估計模組520、圖片內預測模組525、運動補償模組530、運動估計模組535、 環路濾波器 545、重構圖片緩衝器 550、MV 緩衝器 565、MV 預測模組 575 和熵編碼器 590。運動補償模組 530 和運動估計模組 535 是幀間預測模組 540 的一部分。
在一些實施例中,模組510-590是由計算設備或電子裝置的一個或多個處理單元(例如處理器)執行的軟體指令模組。 在一些實施例中,模組510-590是由電子裝置的一個或多個積體電路(IC)實現的硬體電路模組。 儘管模組510-590被示為單獨的模組,但是一些模組可以組合成單個模組。
視訊源505提供原始視訊信號,其呈現每個視訊幀的像素資料而沒有壓縮。 減法器 508 計算視訊源 505 的原始視訊像素資料與來自運動補償模組 530 或幀內預測模組 525 的預測的像素資料 513 之間的差異。變換模組 510 將差異(或殘差像素資料或殘差信號508)轉換成變換係數(例如,通過執行離散餘弦變換,或DCT)。 量化模組511將變換係數量化為量化的資料(或量化的係數)512,其由熵編碼器590編碼為位元流595。
逆量化模組514對量化的資料(或量化的係數)512進行去量化以獲得變換係數,逆變換模組515對變換係數執行逆變換以產生重構的殘差519。重構的殘差519與預測像素資料513一起生成重構的像素資料517。在一些實施例中,重構的像素資料517臨時存儲在行緩衝器(未示出)中用於圖片內預測和空間MV預測。 重構的像素由環路濾波器545濾波並存儲在重構圖片緩衝器550中。在一些實施例中,重構圖片緩衝器550是視訊編碼器500外部的記憶體。在一些實施例中,重構圖片緩衝器550是視訊編碼器500內部的記憶體。
圖片內估計模組520基於重構的像素資料517執行幀內預測(intra-prediction)以產生幀內預測資料。 幀內預測資料被提供給熵編碼器590以被編碼成位元流595。幀內預測資料也被幀內預測模組525用來產生預測的像素資料513。
運動估計模組535通過產生MV以參考存儲在重構圖片緩衝器550中的先前解碼幀的像素資料來執行幀間預測。這些MV被提供給運動補償模組530以產生預測的像素資料。
視訊編碼器500不是在位元流中編碼完整的實際MV,而是使用MV預測來生成預測的MV,並且用於運動補償的MV與預測MV之間的差異被編碼為殘差運動資料並存儲在位元流 595中。
MV預測模組575基於為編碼先前視訊幀而生成的參考MV生成預測的MV,即,用於執行運動補償的運動補償MV。 MV預測模組575從MV緩衝器565中擷取來自先前視訊幀的參考MV。視訊編碼器500將針對當前視訊幀生成的MV存儲在MV緩衝器565中作為用於生成預測的MV的參考MV。
MV預測模組575使用參考MV來創建預測的MV。 預測的 MV 可以通過空間 MV 預測或時間 MV 預測來計算。 熵編碼器590將當前幀的預測的MV和運動補償MV(MC MV)之間的差異(殘差運動資料)編碼到位元流595中。
熵編碼器590通過使用諸如上下文自適應二進位算術編解碼(CABAC)或霍夫曼編碼的熵編解碼技術將各種參數和資料編碼到位元流595中。 熵編碼器 590 將各種報頭元素、標誌連同量化的變換係數 512 和殘差運動資料作為句法元素編碼到位元流 595 中。位元流 595 又存儲在存儲設備中或通過通信媒介(例如網路)傳輸到解碼器。
環路濾波器(in-loop filter)545對重構的像素資料517執行濾波或平滑操作以減少編解碼的偽像,特別是在像素塊的邊界處。 在一些實施例中,執行的濾波操作包括樣本自適應偏移(sample adaptive offset,簡寫為SAO)。 在一些實施例中,濾波操作包括自適應環路濾波器(adaptive loop filter,簡寫為ALF)。
第6圖說明實施LIC模式的視訊編碼器500的部分。 如圖所示,LIC參數推導模組605接收來自視訊源505的原始資料和來自重構圖片緩衝器550的參考資料。可以基於當前塊的運動向量來擷取來自重構圖片緩衝器550的參考資料。 原始資料和參考資料分別作為當前樣本和參考樣本,用於為LIC模式生成原始縮放和偏移參數615。 使用原始資料生成 LIC 縮放和偏移參數在上面的第 I 部分中進行了描述。
量化器620將原始縮放和偏移參數615量化成量化的縮放和偏移參數625並分配相應的LIC參數索引628。LIC參數索引628用於從一組或多組允許的值或允許值的表中選擇量化的值用於縮放和偏移參數。 LIC參數索引628被提供給熵編碼器590以被編碼為位元流595中的句法元素(例如,lic_y_scale_idx、lic_y_offset_idx、lic_cr_scale_idx、lic_cb_offset_idx等)。LIC參數的量化在上面的部分II中描述。
如果當前塊是使用LIC模式編碼的,則量化的縮放和偏移參數625的值可以存儲在LIC基於歷史的表(LIC history-based table)650中以供將來使用。 LIC基於歷史的表650具有多個條目,每個條目存儲用於對先前的LIC編解碼塊進行編碼的縮放和偏移值。 在一些實施例中,如果當前塊要通過LIC模式編碼,則視訊編碼器500可以從基於歷史的表650中擷取條目以獲得縮放和偏移參數值。 用於選擇基於歷史的表中的條目(例如,lic_y_hb_idx、lic_cb_hb_idx、lic_cr_hb_idx)的基於歷史的表索引655被提供給熵編碼器590以包括在位元流595中。在上面的第四節中描述了基於歷史的表的操作。
LIC線性模型610使用量化的LIC縮放和偏移參數625來計算LIC預測塊660。編碼器500將LIC模型610應用於重構的像素資料650以生成LIC預測塊660。 重構圖片緩衝器550提供重構的像素資料650。當為當前塊啟用LIC模式時,幀間預測模組540可以使用生成的LIC預測塊660作為預測像素資料513。
視訊編碼器500可以為三個分量Y/Cr/Cb應用三組獨立的LIC縮放和偏移參數。 熵編碼器590可以發信三組量化的縮放和偏移參數作為位元流中的句法元素。 除了基於歷史的表索引之外,熵編碼器590還可以發信LIC參數作為增量縮放和/或增量偏移。 上面的第III部分描述了用於在不同實施例中發信三組量化的縮放和偏移參數的句法。 例如,熵編碼器590可以編碼兩個索引,一個用於縮放,另一個用於偏移; 熵編碼器590可以編碼兩個或三個索引,一個用於Y,另一個或兩個用於Cb和Cr。 索引可用於從允許值的表格或集合中選擇值。 在一些實施例中,索引可以僅表示偏移的絕對值,而符號被單獨編解碼。 對於不同的分量 (Y/Cr/Cb) 或不同的參數(縮放或偏移),允許值的表格或集合可能具有不同的值和值範圍。 熵編碼器590可以針對所有或部分Y/Cb/Cr分量採用縮放/偏移的Y/Cb/Cr的組合編碼。 熵編碼器590可以在PPS或PH或SH中發送可調整的縮放和/或偏移值。 熵編碼器590還可以使用不同顏色分量的索引之間的差值或縮放和偏移參數之間的差值來對LIC參數值進行編碼。
第7圖概念性地說明使用LIC模式來編碼像素塊的過程700。 在一些實施例中,實現編碼器500的計算設備的一個或多個處理單元(例如,處理器)通過執行存儲在計算機可讀介質中的指令來執行過程700。 在一些實施例中,實現編碼器500的電子設備執行過程700。
編碼器接收要被編碼為視訊的當前圖片的當前塊的原始像素塊的樣本(在塊710)。
編碼器將線性模型應用到參考塊以生成當前塊的預測塊(在塊720)。 線性模型具有縮放參數和偏移參數。 在一些實施例中,原始塊的樣本和來自重構的參考幀的樣本被用於導出縮放參數和偏移參數。 用於推導縮放和偏移參數的參考幀的樣本由當前塊的運動矢量參考或識別或基於當前塊的運動矢量。 在一些實施例中,用於導出縮放和偏移參數的原始塊的樣本是那些將被編碼為當前塊的樣本。 換句話說,線性模型的推導使用當前塊邊界內的原始像素,而不是邊界外的邊界模板(未編碼為當前塊的一部分)。
在一些實施例中,當前塊將被編碼為多個子塊,每個子塊具有其自己的運動矢量參考參考幀中的像素。 編碼器使用原始塊的樣本和多個子塊的運動向量所參考的樣本來導出LIC線性模型的縮放參數和偏移參數。
編碼器在位元流中發信縮放參數和偏移參數(在塊730)。 在一些實施例中,縮放和偏移參數的值選自預定義的允許值集合。 每組允許值都有一個有限的範圍,並且是通過均勻或非均勻地對連續的數位序列進行子採樣來創建的。 在一些實施例中,索引用於從一組預定義的允許值中選擇一個值。 預定義的一組允許值可以根據集合中允許值的概率相對於索引進行排序(例如,最低索引值對應於縮放參數的最高概率允許值)。
在一些實施例中,編碼器傳訊用於從基於歷史的表的一個或多個條目中選擇條目的索引。 基於歷史的表的每個條目包括用於編碼先前塊的縮放參數值和偏移參數值。 編碼器可以用新條目更新基於歷史的表,新條目包括線性模型用來生成預測塊的縮放和偏移參數值。
在一些實施例中,針對亮度和色度分量導出和發信單獨的縮放和偏移參數。 發信的亮度和色度縮放和偏移參數可以由選擇亮度和色度縮放和偏移參數的值的一個或多個縮放參數索引和/或亮度參數索引編解碼,這些參數又被編碼器用來生成亮度和色度分量預測塊。 在一些實施例中,對發信的偏移參數進行編解碼的偏移參數索引指定發信的偏移參數的絕對值,但不指定符號。
編碼器通過使用預測塊來重構當前塊以對當前塊進行編碼(在塊740)。 VI. 示例的視訊解碼器
在一些實施例中,編碼器可以發信(或生成)位元流中的一個或多個句法元素,使得解碼器可以從位元流解析所述一個或多個句法元素。
第8圖說明可實施LIC模式的示例視訊解碼器800。 如圖所示,視訊解碼器800是圖像解碼或視訊解碼電路,其接收位元流895並將位元流的內容解碼成視訊幀的像素資料以供顯示。 視訊解碼器800具有用於解碼位元流895的若干組件或模組,包括選自逆量化模組811、逆變換模組810、幀內預測模組825、運動補償模組830、環路濾波器845、解碼圖片緩衝器850、MV緩衝器865、MV預測模組875和解析器890的一些組件。運動補償模組830是幀間預測模組840的一部分。
在一些實施例中,模組810-890是由計算設備的一個或多個處理單元(例如,處理器)執行的軟體指令模組。 在一些實施例中,模組810-890是由電子裝置的一個或多個IC實現的硬體電路模組。 儘管模組810-890被示為單獨的模組,但是一些模組可以組合成單個模組。
解析器890(或熵解碼器)接收位元流895並根據由視訊編解碼或圖解像編碼標准定義的句法執行初始解析。 解析的句法元素包括各種報頭元素、標誌以及量化的資料(或量化的係數)812。解析器890通過使用熵編解碼技術解析出各種句法元素,例如上下文自適應二進位算術編解碼(CABAC)或 霍夫曼編碼。
逆量化模組811對量化的資料(或量化的係數)812進行去量化以獲得變換係數,並且逆變換模組810對變換係數816執行逆變換以產生重構的殘差信號819。重構的殘差信號 819與來自幀內預測模組825或運動補償模組830的預測的像素資料813相加以產生解碼的像素資料817。解碼的像素資料由環路濾波器845濾波並存儲在解碼圖片緩衝器850中。 在一些實施例中,解碼圖片緩衝器850是視訊解碼器800外部的記憶體。在一些實施例中,解碼圖片緩衝器850是視訊解碼器800內部的記憶體。
幀內預測模組825從位元流895接收幀內預測資料,並據此從解碼圖片緩衝器850中存儲的解碼的像素資料817產生預測的像素資料813。在一些實施例中,解碼的像素資料 817還存儲在行緩衝器(未示出)中用於圖片內預測和空間MV預測。
在一些實施例中,解碼圖片緩衝器850的內容用於顯示。 顯示設備855擷取解碼圖片緩衝器850的內容以直接顯示,或者擷取解碼圖片緩衝器的內容到顯示緩衝器。 在一些實施例中,顯示設備通過像素傳輸從解碼圖片緩衝器850接收像素值。
運動補償模組830根據運動補償MV (motion compensation MV,簡寫為MC MV)從存儲在解碼圖片緩衝器850中的解碼的像素資料817產生預測的像素資料813。 通過將從位元流895接收的殘差運動資料與從MV預測模組875接收的預測的MV相加來解碼這些運動補償MV。
MV預測模組875基於為解碼先前視訊幀而生成的參考MV生成預測的MV,例如,用於執行運動補償的運動補償MV。 MV預測模組875從MV緩衝器865中擷取先前視訊幀的參考MV。視訊解碼器800將為解碼當前視訊幀而生成的運動補償MV存儲在MV緩衝器865中作為用於產生預測的MV的參考MV。
環路濾波器845對解碼的像素資料817執行濾波或平滑操作以減少編解碼偽像,特別是在像素塊的邊界處。 在一些實施例中,執行的濾波操作包括樣本自適應偏移(SAO)。 在一些實施例中,濾波操作包括自適應環路濾波器(ALF)。
第9圖說明實施LIC模式的視訊解碼器800的部分。 熵解碼器890可以接收基於位元流895中的句法元素的LIC參數索引(例如,lic_y_scale_idx、lic_y_offset_idx、lic_cr_scale_idx、lic_cb_offset_idx等)。 LIC 參數索引用於從 LIC 縮放和偏移參數的一組或多組允許值或表中選擇量化值。 熵解碼器800提供所選擇的量化值作為量化的縮放和偏移參數925。LIC參數的量化在上面的部分II中描述。
LIC線性模型910使用量化的LIC縮放和偏移參數925來計算LIC預測塊960。解碼器800將LIC模型910應用於重構的像素資料950以生成LIC預測塊960。解碼圖片緩衝器850提供重構的像素資料950。幀間預測模組840可以在當前塊啟用LIC模式時使用生成的LIC預測塊960作為預測的像素資料813。
如果當前塊是使用LIC模式編碼的,則量化的縮放和偏移參數925的值可以存儲在LIC基於歷史的表950中以供將來使用。 LIC基於歷史的表950具有多個條目,每個條目存儲用於對先前的LIC編解碼塊進行編碼的縮放和偏移值。 在一些實施例中,如果當前塊要通過LIC模式編碼,則視訊解碼器800可以從基於歷史的表950中擷取條目以獲得縮放和偏移參數值。 用於選擇基於歷史的表中的條目的基於歷史的表索引955(例如,lic_y_hb_idx、lic_cb_hb_idx、lic_cr_hb_idx)由熵解碼器890從位元流895中解析。基於歷史的表的操作在前文第IV部分中描述。
視訊解碼器800可以對三個分量Y/Cr/Cb應用三組獨立的LIC縮放和偏移參數。 熵解碼器890可以接收基於位元流895中的句法元素的三組量化縮放和偏移參數。除了基於歷史的表索引之外,熵解碼器890還可以接收作為增量縮放和/或增量偏移的LIC參數。 可以將存儲在基於歷史的表中的值與增量縮放/偏移值相加以重構 LIC 縮放和偏移參數值。 上文第III部分描述了用於在不同實施例中發信三組量化的縮放和偏移參數的句法。 例如,熵解碼器890可以接收兩個索引,一個用於縮放,另一個用於偏移; 熵解碼器890可以接收兩個或三個索引,一個用於Y,另一個或兩個用於Cb和Cr。 索引可用於從基於概率排列的允許值表格或集中選擇值。 在一些實施例中,索引可以僅表示偏移的絕對值,而符號被單獨編解碼。 對於不同的分量 (Y/Cr/Cb) 或不同的參數(縮放或偏移),允許值的表格或集合可能具有不同的值和值範圍。 熵解碼器890可以為所有或部分Y/Cb/Cr分量處理縮放/偏移的Y/Cb/Cr的組合編解碼。 熵解碼器890可以接收PPS或PH或SH中的可調節縮放和/或偏移值。 熵解碼器890還可以接收使用不同顏色分量的索引之間的增量或縮放和偏移參數之間的增量來編解碼的LIC參數值。
第10圖概念性地說明使用LIC模式解碼像素塊的過程1000。 在一些實施例中,實現解碼器800的計算設備的一個或多個處理單元(例如,處理器)通過執行存儲在計算機可讀介質中的指令來執行過程1000。 在一些實施例中,實現解碼器800的電子裝置執行過程1000。
解碼器從位元流接收資料以作為當前圖片中的當前像素塊被解碼(在塊1010)。 解碼器接收在位元流中發信的縮放參數和偏移參數(在塊1020)。 在一些實施例中,縮放和偏移參數的值選自預定義的允許值集合。 每組允許值都有一個有限的範圍,並且是通過均勻或非均勻地對連續的數位序列進行子採樣來創建的。 在一些實施例中,索引用於從一組預定義的允許值中選擇一個值。 預定義的一組允許值可以根據集合中允許值的概率相對於索引進行排序(例如,最低索引值對應於縮放參數的最高概率允許值)。
在一些實施例中,解碼器接收用於從基於歷史的表的一個或多個條目中選擇條目的索引。 基於歷史的表的每個條目包括用於解碼先前塊的縮放參數值和偏移參數值。 解碼器可以用新條目更新基於歷史的表,新條目包括線性模型用來生成預測塊的縮放和偏移參數值。
在一些實施例中,針對亮度和色度分量導出並發信單獨的縮放和偏移參數。 發信的亮度和色度縮放和偏移參數可以由選擇亮度和色度縮放和偏移參數值的一個或多個縮放參數索引和/或亮度 LIC 參數索引編解碼,這些參數又被解碼器用來生成亮度和色度分量的預測塊。 在一些實施例中,對發信的偏移參數進行編解碼的偏移參數索引指定發信的偏移參數的絕對值,而不指定符號。
解碼器將基於縮放和偏移參數的線性模型應用到參考塊以生成當前塊的預測塊(在塊1030)。 解碼器通過使用預測塊來重構當前塊來解碼當前塊(在塊1040)。 解碼器可以提供重構的當前塊以作為重構的當前圖片的一部分進行顯示。 VII. 示例的電子系統
許多上述特徵和應用被實現為軟體過程,這些軟體過程被指定為記錄在計算機可讀存儲介質(也稱為計算機可讀介質)上的一組指令。 當這些指令由一個或多個計算或處理單元(例如,一個或多個處理器、處理器核心或其他處理單元)執行時,它們會導致處理單元執行指令中指示的動作。計算機可讀介質的示例包括但不限於 CD-ROM、閃存驅動器、隨機存取記憶體 (RAM) 晶片、硬碟驅動器、可擦除可程式化只讀記憶體 (EPROM)、電可擦除可程式化只讀記憶體 (EEPROM) )等。計算機可讀介質不包括無線或通過有線連接傳遞的載波和電子信號。
在本說明書中,術語“軟體”意在包括駐留在只讀記憶體中的韌體或存儲在磁記憶體中的應用程式,其可以讀入記憶體以供處理器處理。 此外,在一些實施例中,多個軟體發明可以作為較大程式的子部分來實現,同時保留不同的軟體發明。 在一些實施例中,多個軟體發明也可以被實現為單獨的程式。 最後,一起實現這裡描述的軟體發明的單獨程式的任何組合都在本公開的範圍內。 在一些實施例中,當軟體程式被安裝以在一個或多個電子系統上運行時,定義了一個或多個執行和執行軟體程式的操作的特定機器實現。
第11圖概念性地圖示了實現本公開的一些實施例的電子系統1100。 電子系統1100可以是計算機(例如台式計算機、個人計算機、平板計算機等)、電話、PDA或任何其他種類的電子設備。 這樣的電子系統包括各種類型的計算機可讀介質和用於各種其他類型的計算機可讀介質的接口。 電子系統1100包括匯流排1105、處理單元1110、圖形處理單元(GPU)1115、系統記憶體1120、網路1125、只讀記憶體1130、永久存儲設備1135、輸入設備1140 和輸出設備 1145。
匯流排 1105 共同表示通信連接電子系統 1100 的眾多內部設備的所有系統、外圍設備和晶片組匯流排。例如,匯流排 1105 通信連接處理單元 1110 與 GPU 1115、只讀記憶體1130、系統記憶體1120和永久存儲設備1135。
從這些不同的記憶體單元,處理單元1110擷取要執行的指令和要處理的資料以便執行本公開的過程。 在不同的實施例中,處理單元可以是單處理器或多核處理器。 一些指令被傳遞到 GPU 1115 並由其執行。GPU 1115 可以卸載(offload)各種計算或補充由處理單元 1110 提供的圖像處理。
只讀記憶體(ROM) 1130存儲由處理單元1110和電子系統的其他模組使用的靜態資料和指令。 另一方面,永久存儲設備1135是讀寫存儲設備。 該設備是即使在電子系統1100關閉時也存儲指令和資料的非易失性存儲單元。 本公開的一些實施例使用大容量存儲設備(例如磁碟或光碟及其對應的磁碟驅動器)作為永久存儲設備1135。
其他實施例使用可移動存儲設備(例如軟碟、閃存設備等,及其相應的磁碟驅動器)作為永久存儲設備。 與永久存儲設備1135一樣,系統記憶體1120是讀寫存儲設備。 然而,與存儲設備1135不同,系統記憶體1120是易失性讀寫記憶體,例如隨機存取記憶體。 系統記憶體1120存儲處理器在運行時使用的一些指令和資料。 在一些實施例中,根據本公開的過程存儲在系統記憶體1120、永久存儲設備1135和/或只讀記憶體1130中。例如,在一些實施例中,各種記憶體單元包括用於處理多媒體剪輯的指令。 從這些不同的記憶體單元,處理單元1110擷取要執行的指令和要處理的資料以便執行一些實施例的過程。
匯流排 1105 還連接到輸入和輸出設備 1140 和 1145。輸入設備 1140 使用戶能夠向電子系統傳送資訊和選擇命令。 輸入設備 1140 包括字母數位鍵盤和定點設備(也稱為“滑鼠控制設備”)、相機(例如,網路攝像頭)、麥克風或用於接收語音命令的類似設備等。輸出設備 1145 顯示由電子系統生成的圖像或輸出資料。 輸出設備1145包括打印機和顯示設備,例如陰極射線管(CRT)或液晶顯示器(LCD),以及揚聲器或類似的音訊輸出設備。 一些實施例包括同時用作輸入和輸出設備的設備,例如觸摸屏。
最後,如第11圖所示,匯流排1105還通過網路適配器(未示出)將電子系統1100耦合到網路1125。 以這種方式,計算機可以是計算機網路的一部分(例如局域網(“LAN”)、廣域網(“WAN”)或內聯網,或網路網。電子系統1100的任何或所有組件可以結合本公開使用。
一些實施例包括電子組件,例如微處理器、存儲裝置和記憶體,其將計算機程式指令存儲在機器可讀或計算機可讀介質(或者稱為計算機可讀存儲介質、機器可讀存儲介質或機器可讀介質)中。此類計算機可讀介質的一些示例包括 RAM、ROM、只讀光碟 (CD-ROM)、可記錄光碟 (CD-R)、可重寫光碟 (CD-RW)、只讀數位多功能光碟(例如 , DVD-ROM, 雙層 DVD-ROM)、各種可刻錄/可重寫 DVD (例如, DVD-RAM, DVD-RW, DVD+RW, 等等)、閃存(例如, SD 卡, mini-SD 卡、微型 SD 卡等)、磁性和/或固態硬碟驅動器、只讀和可刻錄 Blu-Ray® 光碟、超密度光碟、任何其他光學或磁性介質以及軟碟。 計算機可讀介質可以存儲可由至少一個處理單元執行並且包括用於執行各種操作的指令集的計算機程式。 計算機程式或計算機代碼的示例包括機器代碼,例如由編譯器生成的機器代碼,以及包括由計算機、電子組件或使用解釋器的微處理器執行的高級代碼的文件。
雖然上述討論主要涉及執行軟體的微處理器或多核處理器,但許多上述特徵和應用是由一個或多個積體電路執行的,例如專用積體電路(ASIC)或現場可程式化門陣列 (FPGA)。 在一些實施例中,這樣的積體電路執行存儲在電路本身上的指令。 此外,一些實施例執行存儲在可程式化邏輯設備(PLD)、ROM或RAM設備中的軟體。
如在本說明書和本申請的任何申請專利範圍中所使用的,術語“計算機”、“服務器”、“處理器”和“記憶體”均指電子或其他技術設備。 這些術語不包括人或人群。 出於說明書的目的,術語顯示或顯示表示在電子設備上顯示。 如本說明書和本申請的任何申請專利範圍中所使用,術語“計算機可讀介質”、“計算機可讀存儲介質”和“機器可讀介質”完全限於以可讀形式存儲資訊的有形物理對象。這些術語不包括任何無線信號、有線下載信號和任何其他臨時信號。
雖然已經參考許多具體細節描述了本公開,但是本所屬領域具有通常知識者將認識到,在不脫離本公開的精神的情況下,本公開可以以其他具體形式體現。 此外,多個附圖(包括第7圖和第10圖)概念性地說明了過程。 這些過程的特定操作可能不會按照所示和描述的確切順序執行。 具體操作可以不在一個連續的系列操作中執行,並且可以在不同的實施例中執行不同的具體操作。 此外,該過程可以使用多個子過程或作為更大的宏過程的一部分來實現。 因此,本所屬領域具有通常知識者將理解本公開不受前述說明性細節的限制,而是由所附申請專利範圍限定。
本文描述的主題有時說明不同的組件包含在不同的其他組件內或與不同的其他組件連接。應當理解,這樣描繪的架構僅僅是示例,並且實際上可以實現實現相同功能的許多其他架構。從概念上講,實現相同功能的組件的任何佈置都被有效地“關聯”,從而實現了所需的功能。因此,此處組合以實現特定功能的任何兩個組件可以被視為彼此“相關聯”以使得實現期望的功能,而不管架構或中間組件如何。同樣,如此關聯的任何兩個組件也可被視為彼此“可操作地連接”或“可操作地耦合”以實現期望的功能,並且能夠如此關聯的任何兩個組件也可被視為“可操作地連接”耦合”,彼此實現所需的功能。可操作地耦合的具體示例包括但不限於實體上可配合和/或實體上交互的組件和/或無線上可交互和/或無線上交互的組件和/或邏輯上交互和/或邏輯上可交互的組件。
此外,關於本文中基本上任何復數和/或單數術語的使用,所屬領域具有通常知識者可以根據上下文從復數翻譯成單數和/或從單數翻譯成複數和/或申請。為了清楚起見,可以在本文中明確地闡述各種單數/複數排列。
此外,所屬領域具有通常知識者將理解,一般而言,本文使用的術語,尤其是所附申請專利範圍中使用的術語,例如所附申請專利範圍的主體,通常意在作為“開放”術語,例如, “包括”一詞應解釋為“包括但不限於”,“有”一詞應解釋為“至少有”,“包括”一詞應解釋為“包括但不限於”,等。所屬領域具有通常知識者將進一步理解,如果意圖引入特定數量的申請專利範圍陳述,則該意圖將在申請專利範圍中明確地陳述,並且在沒有該陳述的情況下不存在該意圖。例如,為了幫助理解,以下所附申請專利範圍可能包含使用介紹性短語“至少一個”和“一個或多個”來介紹申請專利範圍的敘述。然而,使用此類短語不應被解釋為暗示通過不定冠詞“a”或“an”引入的申請專利範圍將包含此類引入的申請專利範圍的任何特定申請專利範圍限制為僅包含一個此類陳述的實現,即使當同一申請專利範圍包括介紹性短語“一個或多個”或“至少一個”和不定冠詞如“一個(a)”或“一個(an)”,例如,“一個(a)”和/或“一個(an)”應解釋為“至少”一個或“一個或多個”;這同樣適用於使用定冠詞來引入索賠陳述。此外,即使明確引用了引入的申請專利範圍記載的具體數目,所屬領域具有通常知識者將認識到,這種記載應被解釋為至少表示引用的數目,例如,“兩次引用(recitation)”,而不包含其他修飾語,表示至少兩次引用,或者兩次或更多次引用。此外,在那些約定類似於“A、B 和 C 等中的至少一個”的情況下,一般來說,這樣的結構意在所屬領域具有通常知識者會理解約定的意義上,例如,“具有A、B和C中的至少一個的系統”將包括但不限於這樣的系統單獨有 A,單獨有 B,單獨有 C,A 和 B 在一起,A 和 C 在一起,B 和 C 在一起,和/或 A、B 和 C 在一起,等等。在那些類似於“至少一個” 被使用的約定的情況下,通常這樣的結構意在所屬領域具有通常知識者理解約定的意義上,例如,“具有A、B或C中的至少一個的系統”將包括但不限於系統具有單獨的 A、單獨的 B、單獨的 C、A 和 B 在一起、A 和 C 在一起、B 和 C 在一起和/或 A、B 和 C 在一起等。所屬領域具有通常知識者將進一步理解實際上無論是在說明書、申請專利範圍書還是附圖中,任何出現兩個或更多替代術語的分離詞和/或短語都應該被理解為考慮包括一個術語、一個術語或兩個術語的可能性。例如,短語“A 或 B”將被理解為包括“A”或“B”或“A 和 B”的可能性。
從上文中可以理解,為了說明的目的,本文已經描述了本公開的各種實施方式,並且各種在不脫離本公開的範圍和精神的情況下可以進行修改。 因此,本文公開的各種實施方式並非旨在限制,真正的範圍和精神由所附申請專利範圍指示。
310:原始塊 320:當前塊 330:參考塊 325:運動矢量 400、650:表 410-415:條目 500:視訊編碼器 505:視訊源 510:變換模組 511:量化模組 514、811:逆量化模組 515、810:逆變換模組 516、816:變換係數 520:圖片內估計模組 525:圖片內預測模組 530、830:運動補償模組 535:運動估計模組 540、840:幀間預測模組 545、845:環路濾波器 550:重構圖片緩衝器 565、865:MV 緩衝器 575、875:MV 預測模組 590:熵編碼器 595、895:位元流 513:預測的像素資料 508:殘差像素資料 512、812:量化的係數 517:重構的像素資料 605:LIC參數推導模組 610:LIC模型 615:原始縮放和偏移參數 620:量化器 625、925:量化的縮放和偏移參數 628:LIC參數索引 655、955:基於歷史的表索引 660、960:LIC預測塊 700、1000:過程 710~740、1010~1040:塊 800:視訊解碼器 813:預測的像素資料 825:幀內預測模組 850:解碼圖片緩衝器 890:解析器 817:解碼的像素資料 819:重構的殘差信號 1100:電子系統 1105:匯流排 1110:處理單元 1115:圖形處理單元 1120:系統記憶體 1125:網路 1130:只讀記憶體 1135:永久存儲設備 1140:輸入設備 1145:輸出設備
附圖用於提供對本公開的進一步理解,並被併入並構成本公開的一部分。 附圖圖示了本公開的實施方式,並且與描述一起用於解釋本公開的原理。 值得注意的是,附圖不一定是按比例繪製的,因為為了清楚地說明本公開的概念,一些組件可能被示出為與實際實施中的尺寸不成比例。 第1圖概念性地說明了用於局部照明補償 (LIC) 幀間預測的線性模型的推導和使用。 第2A-B圖概念性地說明了識別參考樣本和當前樣本以導出 LIC 參數。 第3A-B圖概念性地說明了使用來自原始幀和參考幀的元素來導出LIC參數。 第4圖說明了一個基於歷史的表格,該表格提供了先前使用的 LIC 縮放和偏移參數值以供當前塊使用。 第5圖說明可實施LIC模式的示例視訊編碼器。 第6圖說明實施LIC模式的視訊編碼器的部分。 第7圖概念性地說明使用LIC模式來編碼像素塊的過程。 第8圖說明可實施LIC模式的示例視訊解碼器。 第9圖說明實施LIC模式的視訊解碼器的部分。 第10圖概念性地說明使用LIC模式來解碼像素塊的過程。 第11圖概念性地圖示實現本公開的一些實施例的電子系統。
700:過程
710~740:塊

Claims (18)

  1. 一種視訊解碼方法,包括: 從位元流接收資料以解碼為視訊的當前圖片的當前像素塊; 接收在該位元流中發信的縮放參數和偏移參數; 將線性模型應用於參考塊以產生當前塊的預測塊,其中該線性模型包括該縮放參數和該偏移參數; 以及 利用該預測塊解碼該當前塊以重構該當前塊。
  2. 一種視訊編碼方法,包括: 接收要被編碼為視訊的當前圖片的當前塊的原始像素塊的樣本; 將線性模型應用於參考塊以產生當前塊的預測塊,其中該線性模型包括縮放參數和偏移參數; 在位元流中發信該縮放參數和該偏移參數;以及 通過使用該預測塊來重構該當前塊對該當前塊進行編碼。
  3. 如請求項2所述之視訊編碼方法,還包括使用該原始塊的樣本和來自重構的參考幀的樣本來導出該縮放參數和該偏移參數。
  4. 如請求項3所述之視訊編碼方法,其中,將用於推導該縮放和偏移參數的原該始塊的樣本編碼為該當前塊。
  5. 如請求項3所述之視訊編碼方法,其中,用於導出該縮放和偏移參數的該參考幀的樣本由該當前塊的運動矢量參考。
  6. 如請求項2所述之視訊編碼方法,還包括使用(i)該原始塊的樣本和(ii)由與該當前塊的多個子塊相關聯的多個運動矢量參考的樣本來導出該縮放和偏移參數。
  7. 如請求項2所述之視訊編碼方法,其中,該線性模型用於生成該預測塊的該縮放和偏移參數的值是從預定義的多組允許值集合中選擇的,其中每組允許值具有有限範圍,並且通過均勻或非均勻地對連續的序列進行子採樣來創建。
  8. 如請求項7所述之視訊編碼方法,其中使用索引從一組預定義的允許值中選擇一個值,
  9. 如請求項8所述之視訊編碼方法,其中,根據該集合中允許值的概率利用該索引對該組預定義的允許值進行排序。
  10. 如請求項2所述之視訊編碼方法,其中發信的該縮放和偏移參數是用於生成亮度分量的預測塊的亮度縮放和偏移參數,該方法進一步包括推導和發信用於生成一個或多個色度分量的一個或多個預測塊的色度縮放和偏移參數。
  11. 如請求項10所述之視訊編碼方法,其中: 發信的亮度和色度縮放參數由一個或多個縮放參數索引編碼,該一個或多個縮放參數索引為該亮度和色度縮放參數選擇值, 發信的亮度和色度偏移參數由一個或多個偏移參數索引編碼,該一個或多個偏移參數索引為該亮度和色度偏移參數選擇值。
  12. 如請求項11所述之視訊編碼方法,其中,對發信的偏移參數進行編碼的偏移參數索引指定該發信的偏移參數的絕對值而不指定其符號。
  13. 如請求項2所述之視訊編碼方法,其中發信該縮放和偏移參數包括發信用於從基於歷史的表的一個或多個條目中選擇條目的索引,該基於歷史的表的每個條目包括用於編碼前一個塊的歷史的縮放和偏移參數值。
  14. 如請求項13所述之視訊編碼方法,還包括用新條目更新該基於歷史的表,該新條目包括該線性模型用來生成該預測塊的縮放參數值和偏移參數值。
  15. 如請求項14所述之視訊編碼方法,還包括發信一個或多個增量值,該一個或多個增量值將被添加到存儲在該基於歷史的表的該選定條目中的該歷史的縮放和偏移參數值。
  16. 如請求項15所述之視訊編碼方法,其中發信的該一個或多個增量值包括不同顏色分量的單獨增量值。
  17. 一種視訊編解碼方法,包括: 接收待編碼或解碼為視訊的當前圖片的當前塊的資料; 發送或接收縮放參數和偏移參數; 將線性模型應用於參考塊以產生該當前塊的預測塊,其中該線性模型包括該縮放參數和該偏移參數;以及 使用該預測塊重構該當前塊。
  18. 一種電子裝置,包括: 視訊解碼器或編碼器電路,配置為執行以下操作,包括: 接收待編碼或解碼為視訊的當前圖片的當前塊的資料; 發送或接收縮放參數和偏移參數; 將線性模型應用於參考塊以產生該當前塊的預測塊,其中該線性模型包括該縮放參數和該偏移參數;以及 使用該預測塊重構該當前塊。
TW111145215A 2021-11-26 2022-11-25 具有編碼參數的局部照明補償 TWI839968B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163283315P 2021-11-26 2021-11-26
US63/283,315 2021-11-26
WOPCT/CN2022/134450 2022-11-25
PCT/CN2022/134450 WO2023093863A1 (en) 2021-11-26 2022-11-25 Local illumination compensation with coded parameters

Publications (2)

Publication Number Publication Date
TW202325025A true TW202325025A (zh) 2023-06-16
TWI839968B TWI839968B (zh) 2024-04-21

Family

ID=

Also Published As

Publication number Publication date
WO2023093863A1 (en) 2023-06-01

Similar Documents

Publication Publication Date Title
JP7303325B2 (ja) ビデオ処理方法、装置、記憶媒体、及び記憶方法
US11172203B2 (en) Intra merge prediction
US11758193B2 (en) Signaling high-level information in video and image coding
US11297348B2 (en) Implicit transform settings for coding a block of pixels
TW201946470A (zh) 用於照度補償的信令
TWI792149B (zh) 量化相關參數之傳訊技術
US11284077B2 (en) Signaling of subpicture structures
US11350131B2 (en) Signaling coding of transform-skipped blocks
US11405649B2 (en) Specifying slice chunks of a slice within a tile
US20210176475A1 (en) Specifying Layout In Video Pictures
US11785214B2 (en) Specifying video picture information
US11582466B2 (en) Constraints for inter-layer referencing
TW202325025A (zh) 具有編碼參數的局部照明補償
TWI839968B (zh) 具有編碼參數的局部照明補償
WO2021047590A1 (en) Signaling of subpicture structures
WO2023193769A1 (en) Implicit multi-pass decoder-side motion vector refinement
TWI836792B (zh) 視訊編解碼方法及相關裝置
WO2024061136A1 (en) Method, apparatus, and medium for video processing
WO2024027566A1 (en) Constraining convolution model coefficient
WO2023143173A1 (en) Multi-pass decoder-side motion vector refinement
WO2023202569A1 (en) Extended template matching for video coding
TW202349954A (zh) 自適應編解碼的圖像以及視訊資料
TW202408232A (zh) 更新合併候選的運動屬性
TW202406348A (zh) 視訊編解碼方法及其裝置