欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 组合的屏幕内容编码模式独创技术105618字

组合的屏幕内容编码模式

2020-11-22 03:41:28

组合的屏幕内容编码模式

  相关申请的交叉引用

  根据适用的专利法和/或依据巴黎公约的规则,本申请及时要求于2019年3月10日提交的国际专利申请No.PCT/CN2019/000051、2019年3月14日提交的国际专利申请No.PCT/CN2019/078148、2019年4月9日提交的国际专利申请No.PCT/CN2019/081933、2019年5月25日提交的国际专利申请No.PCT/CN2019/088453、2019年9月18日提交的国际专利申请No.PCT/CN2019/106487的优先权和权益。出于法律的所有目的,上述申请的全部公开内容通过引用并入作为本申请的公开内容的部分。

  技术领域

  本文件涉及视频和图像编解码技术、设备及系统。

  背景技术

  数字视频占有因特网和其他数字通信网络上最大的带宽使用。随着能够接收和显示视频的所连接的用户设备的数量增加,预计数字视频使用的带宽需求将继续增长。

  发明内容

  本文件描述用于帧内块复制模式的缓冲管理和块矢量编码的各种实施例和技术,以对视频或图像进行解码或编码。

  在一个示例方面,公开了一种用于可视媒体处理的方法。该方法包括:为可视媒体数据的视频块和视频块的比特流表示之间的转换,确定调色板模式要用于处理视频块的第一部分,以及帧内块复制(IBC)模式要用于处理视频块的第二部分,其中在调色板模式下,视频块的第一部分的样点是根据包括在预定义调色板中的代表性色彩值的集合被编码的,并且其中在IBC模式下,视频块的第二部分的样点是从邻近的先前解码的视频块的相邻像素中预测的;以及在转换期间,使用调色板模式执行对视频块的第一部分的进一步处理,且基于使用IBC模式推导的预测块执行对视频块的第二部分的进一步处理,其中使用调色板模式处理的视频块的第一部分的指示和使用IBC模式处理的视频块的第二部分的指示被包括在调色板索引图中,该索引图标识视频块的第一部分和视频块的第二部分。

  在另一个示例方面,公开了一种用于可视媒体处理的另一种方法。该方法包括:为视频块的样点,确定第一组合的调色板和帧内块复制(IBC)模式要用于处理样点,其中在调色板模式下,视频块的样点是根据包括在预定义调色板中的代表性色彩值的集合被编码的,并且其中在IBC模式下,视频块的样点是从邻近的先前解码的视频块的相邻像素中预测的,其中视频块的样点与指示INDEX模式或COPY_ABOVE模式的调色板索引相关联,其中在INDEX模式或COPY_ABOVE模式下,当前块的调色板索引通过复制先前编码的索引来推导;以及在视频块和视频块的比特流表示之间执行转换。

  在又一个示例方面,公开了一种视频编码器或解码器装置,其包括配置为实现上述方法的处理器。

  在另一个示例方面,公开了一种计算机可读程序介质。该介质存储了实施用于实现所公开的方法中任一项的处理器可执行的指令的代码。

  这些及其他方面更加详细地描述在本文件中。

  附图说明

  图1示出了帧内块复制的示例。

  图2示出了调色板模式下编码的块的示例。

  图3示出了使用调色板预测值来信令通知调色板条目的示例。

  图4示出了水平和垂直遍历扫描的示例。

  图5示出了调色板索引的编码的示例。

  图6是用于实现本文件中描述的可视媒体解码或可视媒体编码技术的硬件平台的示例的框图。

  图7示出了用于视频编码的示例方法的流程图。

  图8是根据调色板信息细化预测块的方法的图示。

  图9示出了当前块的上方邻近块和左侧邻近块的示例。

  图10是其中可以实现公开的技术的示例视频处理系统的框图。

  图11是可视数据处理的示例方法的流程图。

  图12是可视数据处理的示例方法的流程图。

  具体实施方式

  1.HEVC/H.265中的视频编码

  视频编码标准主要通过众所周知的ITU-T和ISO/IEC标准的发展而演化。ITU-T制作H.261和H.263,ISO/IEC制作MPEG-1和MPEG-4Visual,并且这两个组织联合制作H.262/MPEG-2视频和H.264/MPEG-4高级视频编码(Advanced Video Coding,AVC)和H.265/HEVC标准。自H.262开始,视频编码标准基于混合视频编码结构,其中利用时域预测和变换编码。为了探索超越HEVC的未来视频编码技术,VCEG和MPEG于2015年联合地成立联合视频探索小组(JVET)。此后,JVET采纳了许多新方法且将其引入到命名为联合探索模型(JEM)的参考软件中。2018年4月,创建在VCEG(Q6/16)和ISO/IEC JTC1 SC29/WG11(MPEG)之间的联合视频专家小组(JVET),以致力于VVC标准,该VVC标准目标为与HEVC相比比特率降低50%。最新版本的VVC草案,即多功能视频编码(Versatile Video Coding)(草案4)可以在以下地址找到:

  http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=5755。

  命名为VTM的VVC的最新参考软件可以在以下地址找到:

  https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-4.0。

  2.1.帧内块复制

  在HEVC屏幕内容编码扩展(HEVC-SCC)和当前VVC测试模型(VTM-4.0)中已经采用帧内块复制(IBC),又称为当前图片参考。IBC将运动补偿的构思从帧间编码扩展到了帧内编码。如图1所展示,当应用IBC时,由同一图片中的参考块来预测当前块。在编码或解码当前块之前,必须已经重构参考块中的样点。IBC尽管对于大多数相机捕获的序列而言效率不高,但是示出了屏幕内容的显著编码增益。原因是屏幕内容图片中存在大量重复图案,诸如图标和文本字符。IBC可以有效地移除这些重复图案之间的冗余。在HEVC-SCC中,帧间编码的编码单元(CU)如果选择当前图片作为其参考图片,则可以应用IBC。在这种情况下,MV被重命名为块矢量(BV),并且BV始终具有整数像素的精度。为了与主配置文件(profile)HEVC兼容,当前图片在解码图片缓冲区(DPB)中被标记为“长期”参考图片。应当注意,相似地,在多视图/3D视频编码标准中,帧间视图参考图片也被标记为“长期”参考图片。

  在BV找到其参考块以后,可以通过复制参考块来生成预测。可以通过从原始信令中减去参考像素来得到残差。然后可以如其他编码模式一样应用变换和量化。

  然而,当参考块在图片的外部,或与当前块重叠,或在重构的区域的外部,或在受某些约束限制的有效区域的外部时,部分或全部像素值未被定义。基本上,存在应对这样的问题的两个解决方案。一个解决方案是例如在比特流一致性中不允许这样的情况。另一个解决方案是对那些未定义的像素值应用填充。以下各小节详细地描述解决方案。

  2.2.HEVC屏幕内容编码扩展中的IBC

  在HEVC的屏幕内容编码扩展中,当块使用当前图片作为参考时,应保证整个参考块在可用重构的区域内,如标准规范中的以下文本所示:

  变量offsetX和offsetY推导如下:

  offsetX=(ChromaArrayType==0)?0:(mvCLX[0]&0x7?2:0)

  (8-104)

  offsetY=(ChromaArrayType==0)?0:(mvCLX[1]&0x7?2:0)

  (8-105)

  比特流一致性的需求在于,当参考图片为当前图片时,亮度运动矢量mvLX应遵守以下约束:

  -当调用第6.4.1节中指定的z扫描顺序块可用性的推导过程,其中(xCurr,yCurr)设置为等于(xCb,yCb)且邻近的亮度位置(xNbY,yNbY)设置为等于(xPb+(mvLX[0]>>2)–offsetX,yPb+(mvLX[1]>>2)–offsetY)作为输入时,则输出应等于真(TRUE)。

  -当调用第6.4.1节中指定的z扫描顺序块可用性的推导过程,其中(xCurr,yCurr)设置为等于(xCb,yCb)且邻近的亮度位置(xNbY,yNbY)设置为等于(xPb+(mvLX[0]>>2)+nPbW–1+offsetX,yPb+(mvLX[1]>>2)+nPbH–1+offsetY)作为输入时,则输出应等于真(TRUE)。

  -以下条件中的一者或二者应为真:

  -(mvLX[0]>>2)+nPbW+xB1+offsetX的值小于或等于0。

  -(mvLX[1]>>2)+nPbH+yB1+offsetY的值小于或等于0。

  -以下条件应为真:

  (xPb+(mvLX[0]>>2)+nPbSw–1+offsetX)/CtbSizeY–xCb/CtbSizeY<=yCb/CtbSizeY–(yPb+(mvLX[1]>>2)+nPbSh–1+offsetY)/CtbSizeY(8-106)

  因此,参考块与当前块重叠或参考块在图片的外部的情况将不会发生。不需要填充参考块或预测块。

  2.3.VVC测试模型中的IBC

  在当前的VVC测试模型(即VTM-4.0设计)中,整个参考块应具有当前的编码树单元(CTU),且不与当前块重叠。因此,不需要填充参考块或预测块。IBC标志被编码为当前CU的预测模式。因此,对于每个CU,总共存在三种预测模式:MODE_INTRA、MODE_INTER和MODE_IBC.

  2.3.1.IBC Merge模式

  在IBC merge模式下,从比特流中解析出指向IBC merge候选列表中的条目的索引。IBC merge列表的构造可以根据以下步骤的序列进行总结:

  ·步骤1:推导空间候选

  ·步骤2:插入基于历史的运动矢量预测(HMVP)候选

  ·步骤3:插入成对的平均候选

  在推导空间merge候选中,在位于图中描绘的位置的候选之中最多选择四个merge候选。推导的顺序为A1、B1、B0、A0和B2。仅当位置A1、B1、B0、A0中的任何PU都不可用(例如,因为它属于另一个条带或片)或者没有用IBC模式编码时,才会考虑位置B2。在添加位置A1的候选之后,剩余候选的插入要经受冗余检验,以确保将具有相同运动信息的候选从列表中排除,从而改进编码效率。为了降低计算复杂度,在提及的冗余检验中没有考虑所有可能的候选对。代替地,仅考虑附图中描绘的用箭头链接的对,并且只有用于冗余检验的对应候选不具有相同的运动信息,才将候选添加到列表。

  在插入空间候选之后,如果IBC merge列表尺寸仍小于最大的IBC merge列表尺寸,则可以插入来自HMVP表的IBC候选。当插入HMVP候选时执行冗余检验。

  最后,将成对的平均候选插入到IBC merge列表中。

  当由merge候选标识的参考块在图片的外部、或与当前块重叠、或在重构的区域的外部、或在受某些约束限制的有效区域的外部时,merge候选被称为无效merge候选。

  注意到,可以将无效merge候选插入到IBC merge列表中。

  2.3.2.IBC AMVP模式

  在IBC AMVP模式下,从比特流中解析出指向IBC AMVP列表中条目的AMVP索引。IBCAMVP列表的构造可以根据以下步骤的序列进行总结:

  ·步骤1:推导空间候选

  o检验A0、A1,直到找到可用的候选。

  o检验B0、B1、B2,直到找到可用的候选。

  ·步骤2:插入HMVP候选

  ·步骤3:插入零候选

  在插入空间候选之后,如果IBC AMVP列表尺寸仍小于最大的IBC AMVP列表尺寸,则可以插入来自HMVP表的IBC候选。

  最后,将零候选插入到IBC AMVP列表中。

  2.4.调色板模式

  调色板模式背后的基本想法是CU中的样点由代表性色彩值的小集合表示。该集合被称为调色板。也可以通过信令通知(可能是量化的)分量值之后的转义符号(escapesymbol)来指示调色板外部的样点。这在如图2中所图示。

  2.5.HEVC屏幕内容编码扩展中的调色板模式(HEVC-SCC)

  在HEVC-SCC的调色板模式下,一种预测方式用于编码调色板和索引图。

  2.5.1.调色板条目的编码

  对于调色板条目的编码,维护调色板预测值。在SPS中信令通知调色板的最大尺寸以及调色板预测值。在HEVC-SCC中,在PPS中引入palette_predictor_initializer_present_flag。当该标志为1时,在比特流中信令通知用于初始化调色板预测值的条目。调色板预测值在每个CTU行、每个条带和每个片的开始处进行初始化。取决于palette_predictor_initializer_present_flag的值,将调色板预测值重新设置为0或使用PPS中信令通知的调色板预测值初始化程序(initializer)条目进行初始化。在HEVC-SCC中,启用尺寸为0的调色板预测值的初始化程序,以允许在PPS级别上显式禁用调色板预测值初始化。

  对于调色板预测值中的每个条目,信令通知重新使用标志,以指示其是否为当前调色板的一部分。这在图3中图示。重新使用标志是使用零的游程长度(run-length)编码来发送的。此后,使用阶数为0的指数Golomb代码来信令通知新调色板条目的数量。最后,信令通知新调色板条目的分量值。

  2.5.2.调色板索引的编码

  如图4所示,使用水平和垂直遍历扫描对调色板索引进行编码。使用palette_transpose_flag在比特流中显式地信令通知扫描顺序。对于本小节的其余部分,假定扫描是水平的。

  使用以下的两个主要调色板样点模式来编码调色板索引:‘INDEX’和‘COPY_ABOVE’。如前所述,转义符号还以‘INDEX’模式来信令通知,且分配等于最大的调色板尺寸的索引。该模式使用除顶部行以外的标志或当前模式为‘COPY_ABOVE’时来信令通知。在‘COPY_ABOVE’模式下,上方行中样点的调色板索引被复制。在‘INDEX’模式下,显式地信令通知调色板索引。对于‘INDEX’和‘COPY_ABOVE’模式,信令通知运行值,该运行值指定了同样使用相同模式进行编码的后续样点的数量。当转义符号是‘INDEX’或‘COPY_ABOVE’模式下运行的一部分时,为每个转义符号信令通知转义分量值。调色板索引的编码如图5所图示。

  该语法顺序完成如下。首先,信令通知CU的索引值的数量。这接着使用截断的二进制编码来信令通知整个CU的实际索引值。索引的数量和索引值二者均在旁路模式下编码。这会将索引相关的旁路二进制码组合在一起。然后以交错的方式信令通知调色板样点模式(如果需要)和运行。最后,将与整个CU的转义样点相对应的分量转义值组合在一起,且在旁路模式下编码。

  在信令通知索引值之后,信令通知附加的语法元素last_run_type_flag。该语法元素与索引的数量一起来消除对信令通知与块中最后一次运行相对应的运行值的需要。

  在HEVC-SCC中,调色板模式启用为4:4:4、4:2:2、4:2:0和单色色度格式。对于所有色度格式,调色板条目和调色板索引的信令通知几乎是相同的。如果是非单色格式,则每个调色板条目由3个分量构成。对于单色格式,每个调色板条目由单个分量构成。对于子采样的色度方向,色度样点与可被2整除的亮度样点索引相关联。在重构CU的调色板索引之后,如果样点仅具有与其相关联的单个分量,则仅使用调色板条目的第一分量。信令通知的唯一区别在于转义分量值。对于每个转义样点,信令通知的转义分量值的数量可以不同,这取决于与该样点相关联的分量的数量。

  2.6.与帧内预测(PCIP)组合的调色板模式

  在JVET-M0051中,提出了与帧内预测组合的调色板模式。在该方案中,解码器首先基于帧内预测方法来推导预测块。然后,解码器解码调色板和索引图。解码器使用解码调色板信息来细化预测块且重构块。

  图8示出了将调色板信息与帧内预测信息组合的示例。首先,解码器生成预测块(具有像素值A0~A15)。而且,解码器在调色板模式下解码索引图。为了重构块,如果解码的索引等于“0”,则对应的像素被标记为“P”,如图8所示。由帧内预测块中的像素值来重构标记为“P”的像素。否则,由调色板色彩(例如,C0、C1)来重构像素。

  3.现有实现方式的缺点

  调色板模式只能使用当前块内部的样点,这可能会限制其在通常示出非局部重复的图案的屏幕内容编码上的效率。如果调色板模式可以利用局部和非局部相关性,则会是更好的。

  4.示例实施例和技术

  以下详细描述的实施例应被认为是解释总体构思。这些实施例不应以狭义的方式理解。此外,这些实施例可以以任何方式进行组合。

  所提出的方法被命名为调色板和帧内块复制组合的预测(PICP)。

  1.提出的是,用从IBC模式预测的某些样点和从调色板模式预测的某些样点来重构一个块,并且具体的调色板索引可以指示从IBC模式或调色板模式预测的样点的指示。

  a.在一个示例中,调色板模式下的重构可以复制在IBC预测中的共位的样点。

  b.在一个示例中,调色板模式下从IBC预测中复制的使用的指示可以根据索引图中的索引值。

  i.在一个示例中,当具体的索引值为0时,当前样点可以通过在IBC预测中复制共位的样点来重构。替代地,此外,当前样点可以在当前索引值为0时通过在IBC预测中复制共位的样点来重构。

  ii.在一个示例中,当具体的索引值等于调色板条目的数量减1时,当前样点可以通过在IBC预测中复制共位的样点来重构。替代地,此外,当前样点可以在当前索引值为调色板条目的数量减1时通过在IBC预测中复制共位的样点来重构。

  iii.在一个示例中,当具体的索引值等于T时,当前样点可以通过在IBC预测中复制共位的样点来重构。替代地,此外,当前样点可以在当前索引值为T时通过在IBC预测中复制共位的样点来重构。在一个示例中,T是正整数。替代地,此外,在一个示例中,

  T可以基于

  1)当前块的块维度

  2)当前块的当前量化参数

  3)色彩格式的指示(诸如4:2:0、4:4:4)

  4)分开的/双重编码树结构

  5)条带/片组类型和/或图片类型

  6)比特流中信令通知T

  iv.在一个示例中,可以信令通知从IBC预测复制的连续样点/像素值的数量。

  v.在一个示例中,可以将从IBC预测复制的样点/像素值作为条目添加到调色板预测值。

  1)替代地,在一个示例中,从IBC预测复制的样点/像素值可以用来替换调色板预测值中的现有条目。

  2)替代地,此外,在将从IBC预测复制的样点/像素值添加到调色板预测值之前,可以应用裁剪以避免重复的样点/像素值。

  3)在一个示例中,从IBC预测复制的样点/像素值可以用于重新排序调色板预测值中的条目。

  c.在一个示例中,可以从编码信息中推导调色板模式下从IBC预测复制的使用的指示。在这样的情况下,无需发送特设索引来指示是否使用IBC.

  i.在一个示例中,对于色度样点,如果其共位的亮度样点在IBC模式下编码,则该样点也可以推断为在IBC模式下编码。

  ii.在一个示例中,对于色度样点,如果其在其他色彩分量中共位的样点在IBC模式下编码,则该样点也可以推断为在IBC模式下编码。

  d.在一个示例中,可以信令通知在调色板模式下从IBC预测复制的使用的指示(例如,plt_combined_ibc_sample_flag)。

  i.在一个示例中,当前样点可以在plt_combined_ibc_sample_flag为1时通过在IBC预测中复制共位的样点来重构。替代地,此外,当plt_combined_ibc_sample_flag为1时,当前样点可以通过在IBC预测中复制共位的样点来重构。

  ii.在一个示例中,当前样点可以通过在IBC预测中复制共位的样点来重构,这可以基于邻近样点的plt_combined_ibc_sample_flag的值。

  1)在一个示例中,如果当前样点没有邻近样点,则plt_combined_ibc_sample_flag可以推断为0。

  2)在一个示例中,可以基于其左侧邻域和/或上方邻域的plt_combined_ibc_sample_flag来推导当前的plt_combined_ibc_sample_flag的值。

  3)在一个示例中,当前plt_combined_ibc_sample_flag可以在其左侧邻域和/或上方邻域的plt_combined_ibc_sample_flag的值为1时为1。替代地,此外,当其左侧邻域和/或上方邻域的plt_combined_ibc_sample_flag的值为1时,当前plt_combined_ibc_sample_flag可以为1。

  e.在一个示例中,可以由IBC merge模式或IBC AMVP模式来推导所提出的方法中的IBC预测的运动信息。

  i.在一个示例中,在所提出的方法中可以对大块采用IBCmerge模式或IBC AMVP模式。

  1)在一个示例中,大块可以定义为current_block.width>=T||current_block.height>=T,其中current_block.width和current_block.height分别表示当前块的宽度和高度。T可以是固定数字(例如16),且基于

  a)当前块的块维度

  b)当前块的当前量化参数

  c)色彩格式的指示(例如4:2:0、4:4:4)

  d)分开的/双重编码树结构

  e)条带/片组类型和/或图片类型

  f)在比特流中信令通知T

  ii.在一个示例中,在所提出的方法中可以始终采用IBC AMVP模式。

  iii.在一个示例中,在所提出的方法中可以始终采用IBC merge模式。

  iv.在一个示例中,可以始终采用IBC merge模式,并且可以始终仅采用merge列表中的第一可用merge候选。

  v.在一个示例中,可以在所提出的方法中利用IBC AMVP/merge列表中的第一有效merge候选来推导IBC预测。

  1)替代地,如果IBC AMVP/merge列表中的所有候选均无效,则可以代替地使用默认的块矢量。

  a)在一个示例中,默认块矢量可以是预定义的或基于解码的信息,诸如块维度和/或块位置。

  vi.在一个示例中,可以从HMVP表中推导或承继在所提出的方法中要用于推导IBC预测的块矢量。

  vii.在一个示例中,可以从IBC merge/AMVP候选列表中的IBC merge/AMVP候选中推导或承继在所提出的方法中要用于推导IBC预测的块矢量。

  1)替代地,可以在比特流中信令通知在所提出的方法中要用于推导IBC预测的块矢量的指示。

  a)在一个示例中,可以信令通知IBC AMVP/merge候选列表中的IBC AMVP/merge候选的索引。

  b)在一个示例中,可以信令通知在排除无效候选的IBC AMVP/merge候选列表中的有效IBC AMVP/merge候选的索引,其中仅允许选择有效候选。

  viii.在一个示例中,可以信令通知在所提出的方法中要用于推导IBC预测的块矢量的指示,诸如可以信令通知与IBCmerge/AMVP候选列表中的候选相比的BV差。

  ix.在一个示例中,当启用双重树时,色度块的IBC模式进行如下修改。

  1)在一个示例中,可以通过基于色度格式缩放共位的亮度运动矢量(块矢量)来推导色度运动矢量(块矢量)。

  2)在一个示例中,可以通过基于色度格式缩放共位的亮度块的邻近运动矢量(块矢量)来推导色度运动矢量(块矢量)。

  3)在一个示例中,可以通过基于色度格式平均化所有可用的亮度运动矢量来推导每个色度子块(例如2×2)的运动矢量(块矢量)。

  f.在一个示例中,在调色板模式下从IBC预测复制的使用的指示可以基于

  i.当前块的块维度

  ii.当前块的当前量化参数

  iii.色彩格式的指示(例如4:2:0、4:4:4)

  iv.分开的/双重编码树结构

  v.条带/片组类型和/或图片类型

  2.调色板模式下的转义像素的重构可以基于IBC预测中的共位的样点。

  a.在一个示例中,对于转义像素可以信令通知原始样点和IBC预测之间的残差。

  b.在一个示例中,可以信令通知原始样点与IBC预测之间的量化残差。

  c.在一个示例中,可以信令通知原始样点与IBC预测之间的量化残差的符号。

  3.调色板模式下的转义像素的重构可以基于帧内预测中的共位的样点。

  a.在一个示例中,对于转义像素可以信令通知原始样点和帧内预测之间的残差。

  b.在一个示例中,可以信令通知原始样点与帧内预测之间的量化残差。

  c.在一个示例中,可以信令通知原始样点与帧内预测之间的量化残差的符号。

  4.可以在子块级别对于一个块执行调色板模式和/或IBC模式

  a.在一个示例中,可以在子块级别(例如4×4亮度块和/或2×2色度块)中判定是否启用调色板/IBC模式。

  b.在一个示例中,可以首先在子块级别处判定色度IBC的使用。然后,可以将调色板模式应用于具有禁用色度IBC的子块。

  i.在一个示例中,如果当前色度子块没有在IBC模式下编码,则它可以在调色板模式下编码。

  1)在一个示例中,如果当前色度子块的共位的亮度块没有在IBC模式下编码,则当前色度子块可以在调色板模式下编码。

  2)在一个示例中,如果当前色度子块的IBC预测块尚未被重构,则当前色度子块可以在调色板模式下编码。

  ii.在一个示例中,在当前子块上,可以基于色度IBC的共位的亮度块的预测模式来启用或禁用色度IBC。替代地,另外,如果当前色度子块的共位的亮度块在IBC模式下编码,则该色度子块同样可以在IBC模式下编码。

  iii.在一个示例中,可以通过在IBC预测中复制共位的样点来重构具有启用IBC的子块,并且可以通过调色板色彩来重构具有禁用IBC的子块。

  c.在一个示例中,可以在子块级别信令通知调色板模式和/或IBC模式的使用的指示。

  i.在一个示例中,可以为每个子块信令通知一个标志,以指示当前子块是在色度IBC模式还是在调色板模式下编码。

  d.在一个示例中,可以首先在块级别信令通知一个标志,并且可以根据来自另一个色彩分量的信息来判定子块级别决定,来为一个色彩分量选择IBC模式还是调色板模式。

  e.在一个示例中,子块可以是正方形块或矩形块。

  i.在一个示例中,上述方法中的子块尺寸可以取决于

  1)当前块的块维度

  2)当前块的当前量化参数

  3)邻近块的调色板标志

  4)邻近块的帧内块复制标志

  5)色彩格式的指示(例如4:2:0、4:4:4)

  6)分开的/双重编码树结构

  7)条带/片组类型和/或图片类型

  f.在一个示例中,在上述方法中,可以在调色板模式和IBC模式的二者下编码样点,因此INDEX模式和/或COPY_ABOVE模式可能具有某些限制。

  i.在一个示例中,可能不允许INDEX模式和/或COPY_ABOVE模式复制IBC模式下编码的样点的索引。

  ii.在一个示例中,IBC模式下编码的样点可以推断为具有特设索引。

  1)在一个示例中,当执行INDEX模式和/或

  COPY_ABOVE模式时,可以推断特设索引等于任何其他调色板索引。

  2)在一个示例中,样点如果具有特设索引,则可以由共位的IBC预测来重构。

  iii.在一个示例中,在执行INDEX模式和/或COPY_ABOVE模式期间,可以跳过IBC模式下编码的样点。

  g.上述方法可以适用于调色板和帧内预测模式的组合的模式,其中某些样点可以从帧内预测模式来预测,并且其他样点可以从调色板模式来预测。

  5.一致性比特流应遵守以下规则:当选择PICP模式时,在IBC AMVP/merge模式下存在至少一个有效BV候选。

  6.可以在视频数据单元级别(诸如SPS/VPS/PPS/APS/序列标头/图片标头/条带标头/片组标头/片/LCU行)中信令通知是否应用上述方法或如何应用上述方法。

  a.此外,在一个示例中,可以在诸如IBC模式和调色板模式二者均启用的条件下有条件地信令通知所提出的方法的信令通知。

  7.可以在块级别中信令通知上述方法的使用的指示。

  a.替代地,此外,它可以基于以下条件。

  i.在一个示例中,条件是

  1)当前块的块维度

  a)在一个示例中,如果当前块的宽度大于K1(例如,K1=64)或者当前块的高度大于K2(例如,K2=64),则可以跳过指示的信令通知。

  2)当前块的预测模式

  3)当前块的当前量化参数

  4)邻近块的调色板标志

  5)邻近块的帧内块复制标志

  6)色彩格式的指示(例如4:2:0、4:4:4)

  7)分开的/双重编码树结构

  8)条带/片组类型和/或图片类型

  b.替代地,此外,它可以基于调色板模式的使用。

  i.在一个示例中,该标志指示了当调色板模式的标志为真时可以信令通知上述方法。替代地,此外,如果调色板模式的标志为真,则标志指示了可以信令通知上述方法。

  ii.在一个示例中,该标志指示了当调色板模式的标志为真时上述方法可以推断为真。替代地,此外,如果调色板模式的标志为真,则上述方法可以推定为真。

  iii.在一个示例中,该标志指示了当调色板模式的标志为假时,上述方法可以推断为假。替代地,此外,如果调色板模式的标志为假,则上述方法可以推断为假。

  c.替代地,此外,它可以基于PCIP的使用。

  i.在一个示例中,该标志指示了当PCIP的标志为假时,可以信令通知上述方法。替代地,此外,如果PCIP的标志为假,则该标志指示了可以信令通知上述方法。

  ii.在一个示例中,该标志指示了当PCIP的标志为假时,上述方法可以推断为真。替代地,此外,如果调色板模式的标志为假,则上述方法可以推断为真。

  iii.在一个示例中,该标志指示当PCIP的标志为假时,上述方法可以推断为假。替代地,此外,如果PCIP的标志为假,则上述方法可以推断为假。

  iv.在一个示例中,该标志指示了可以在调色板模式和/或PCIP的标志之前或之后信令通知上述方法。

  d.替代地,此外,它可以基于调色板模式和预测模式的使用。

  i.在一个示例中,该标志指示当调色板模式的标志为真且预测模式为MODE_IBC时上述方法可以推断为真。替代地,此外,如果调色板模式的标志为真且预测模式为MODE_IBC,则该标志指示了上述方法可以推断为真。

  ii.在一个示例中,该标志指示了当调色板模式的标志为真且预测模式为MODE_INTER时上述方法可以推断为真。替代地,此外,如果调色板模式的标志为真且预测模式为MODE_INTER,则该标志指示了上述方法可以推断为真。

  iii.在一个示例中,该标志指示了当调色板模式的标志为真且预测模式为MODE_INTRA时上述方法可以推断为假。替代地,此外,如果调色板模式的标志为真且预测模式为MODE_INTRA,则该标志指示了上述方法可以推断为假。

  e.在一个示例中,可以首先信令通知调色板模式的指示,然后指示是将PCIP还是将上述方法应用于一个块。

  i.替代地,此外,当利用调色板模式时,可以允许三个选择,常规的调色板模式、PCIP或上述方法。

  1)在一个示例中,可以编码第一标志以指示其是否用PCIP编码。可以编码第二标志以指示其是否用上述方法编码。当既不应用PCIP也不应用上述方法时,则启用常规调色板模式。

  2)在一个示例中,当启用PCIP时,跳过第二标志的信令通知。即,当第二标志需要编码时,其在第一标志之后编码。

  3)替代地,当启用上述方法时,跳过第一标志的信令通知。即,当第一标志需要编码时,其在第二标志之后编码。

  4)替代地,可以利用三个选择的指示的信令通知的不同顺序。

  ii.替代地,可以在没有信令通知的情况下禁用常规调色板模式。相反,一个块可以选择用PCIP或上述方法进行编码。

  1)替代地,此外,当当前预测模式是帧内模式时,可以信令通知是使用PCIP还是上述方法/如何使用PCIP或上述方法。

  f.在一个示例中,可以在算术编码中使用旁路编码的二进制码或上下文编码的二进制码来信令通知上述方法中的任何一个或多个方法的指示。

  i.在一个示例中,可以基于与当前块邻近的块的上述方法中的任何一个或多个方法的指示来推导上下文。

  1)在一个示例中,只有一个上下文可以用在上述方法的指示的信令通知上。

  2)在一个示例中,可以基于邻近块的编码信息来推导上下文。

  a)在一个示例中,可以基于在当前块的左侧和/或上方的邻近块的上述方法中的任何一个或多个方法的指示来推导上下文(如图9所示)。

  b)例如,令cu_left_ibc_palette_mode和cu_above_ibc_palette_mode是当前块的左侧邻近块和上方邻近块(例如,图9所示的邻近块)的上述方法的指示。在一个示例中,当前上下文可以通过以下等式推导

  ctxInc=(cu_left_ibc_palette_mode?1:0)+(cu_above_ibc_palette_mode?1:0)

  c)替代地,在一个示例中,当前上下文可以通过以下公式推导

  ctxInc=(cu_left_ibc_palette_mode?1:0)*2+(cu_above_ibc_palette_mode?1:0)

  3)在一个示例中,可以基于与当前块邻近的块的可用性来推导上下文。

  a)在一个示例中,如果邻近块不可用,则可以将邻近块的上述方法中的任何一个或多个方法的指示设置为默认值(诸如0)。

  b)在一个示例中,如果邻近块与当前块位于不同的CTU行中,则邻近块可以视为不可用。

  4)在一个示例中,可以基于当前块的编码信息,诸如块维度/分割划分深度(例如,四叉树/二叉树/三叉树),来推导上下文。

  g.在一个示例中,上述方法中的任何一个或多个方法的信令通知还可以应用于常规调色板模式或PICP模式上。

  5.添加到JVET-M1001-v5的实施例

  1.1.1.1序列参数集RBSP语法

  在本文件中,带下划线的斜体加粗字体或斜体加粗字体指示添加到JVET-M1001-v5规范的相关部分的文本。

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  cu_intrapalette_flag指定帧内调色板组合模式在当前编码单元中的使用。cu_intrapalette_flag==1指示帧内调色板组合模式应用在当前编码单元中。cu_intrapalette_flag==0指示帧内调色板组合模式不适用于当前编码单元。

  treeType指定是否在当前编码树中应用联合树。treeType==SINGLE_TREE指示相同的编码单元分割应用于亮度和色度两者。treeType!=SINGLE_TREE指示分开的编码单元分割应用于亮度和色度(双重树)。treeType==DUAL_TREE_LUMA指示当前分割是用于双重树中的亮度分量,并且treeType==DUAL_TREE_CHROMA指示当前分割是用于双重树中的亮度分量。

  startComp指定当前调色板表的第一色彩分量。startComp==0指示Y分量,且startComp==1和2指示Cb和Cr分量。numComps指定当前调色板表中色彩分量的数量。

  预测值调色板由来自先前编码单元的调色板条目构成,该来自先前编码单元的调色板条目用于预测当前调色板中的条目。

  变量PredictorPaletteSize[startComp]为当前调色板表startComp的第一色彩分量来指定预测值调色板的尺寸。

  变量PalettePredictorEntryReuseFlags[i]等于1指定在当前调色板中重新使用预测值调色板中的第i个条目。PalettePredictorEntryReuseFlags[i]等于0指定预测值调色板中的第i个条目不是当前调色板中的条目。数组PalettePredictorEntryReuseFlags[i]的所有元素都初始化为0。

  

  

  

  

  1.1.1.2调色板语义

  在以下语义中,数组索引x0,y0指定所考虑的编码块的左上方亮度样点相对于图片的左上方亮度样点的位置(x0,y0)。

  cu_palette_flag指定调色板模式在当前编码单元中的使用。cu_palette_flag==1指示调色板模式应用在当前编码单元中。cu_palette_flag==0指示调色板模式不应用于当前编码单元。

  cu_palette_ibc_flag指定调色板模式在当前编码单元中的使用。cu_palette_ibc_flag==1指示调色板组合的IBC预测的模式应用在当前编码单元中。cu_palette_ibc_flag==0指示调色板组合的IBC预测的模式不应用于当前编码单元。

  palette_predictor_run用于确定数组PalettePredictorEntryReuseFlags中在非零条目之前的零的数量。

  比特流一致性的需求在于,palette_predictor_run的值应该在0到(PredictorPaletteSize-predictorEntryIdx)之间的范围内,含端值,其中predictorEntryIdx对应于数组PalettePredictorEntryReuseFlags中的当前位置。变量NumPredictedPaletteEntries指定当前调色板中从预测值调色板中重复使用的条目的数量。NumPredictedPaletteEntries的值应该在0到Palette_max_size的范围内,含端值。

  num_signalled_palette_entries[startComp]为当前调色板表startComp的第一色彩分量指定当前调色板中被显式地信令通知的条目的数量。

  num signal led palette entries[startComp]在没有出现时推断为等于0。

  变量CurrentPaletteSize指定当前调色板的尺寸,并且推导如下:

  CurrentPaletteSize[startComp]=NumPredictedPaletteEntries[startComp]+num_signalled_palette_entries[startComp](XX)

  CurrentPaletteSize[startComp]的值应在0到palette_max_size的范围内,含端值。

  new_palette_entries[cIdx][i]指定色彩分量cIdx的第i个信令通知的调色板条目的值。

  变量PredictorPaletteEntries[cIdx][i]为色彩分量cIdx指定预测值调色板中的第i个元素。

  变量CurrentPaletteEntries[cIdx][i]为色彩分量cIdx指定当前调色板中的第i个元素,并且推导如下:

  

  palette_escape_val_present_flag等于1指定了当前编码单元含有至少一个转义编码样点。escape_val_present_flag等于0指定了当前编码单元中没有转义编码样点。palette_escape_val_present_flag的值在没有出现时推断为等于1。

  变量MaxPaletteIndex指定当前编码单元的调色板索引的最大可能值。MaxPaletteIndex的值设置为等于CurrentPaletteSize+Palette_escape_val_present_flag。

  num_palette_indices_minus1加1是为当前块显式地信令通知或推断的调色板索引的数量。

  num_palette_indices_minus1在没有出现时推断等于0。

  palette_index_idc指示由CurrentPaletteEntries表示的数组的索引。对于块中的第一索引,palette_index_idc的值应该在0到MaxPaletteIndex范围内,含端值,并且对于块中的剩余索引,palette_index_idc的值应该在0到(MaxPaletteIndex-1)范围内,含端值。

  palette_index_idc在没有出现时推断等于0。

  变量PaletteIndexIdc[i]存储了显式地信令通知或推断的第i个palette_index_idc.数组PaletteIndexIdc[i]的所有元素都初始化为0。

  copy_above_indices_for_final_run_flag等于1指定了编码单元中最后位置的调色板索引如果使用水平遍历扫描,则从上方行中的调色板索引来复制;或者如果使用垂直遍历扫描,则从左列的调色板索引来复制。copy_above_indices_for_final_run_flag等于0指定了编码单元中最后位置的调色板索引从PaletteIndexIdc[num_palette_indices_minus1]来复制。

  copy_above_indices_for_final_run_flag在没有出现时推断为等于0。

  palette_transpose_flag等于1指定了垂直遍历扫描应用于扫描当前编码单元中像素的索引。palette_transpose_flag等于0指定了水平遍历扫描应用于扫描当前编码单元中像素的索引。

  copy_above_palette_indices_flag等于1指定了如果使用水平遍历扫描,则调色板索引等于上方行中相同位置处的调色板索引;如果使用垂直遍历扫描,则调色板索引等于在左列中的相同位置处的调色板索引。copy_above_palette_indices_flag等于0指定了在比特流中编码或推断样点的调色板索引的指示。

  变量CopyAboveIndicesFlag[xC][yC]等于1指定了从上方行(水平扫描)或左列(垂直扫描)中的调色板索引复制调色板索引。CopyAboveIndicesFlag[xC][yC]等于0指定了在比特流中显式地编码或推断调色板索引。数组索引xC,yC指定样点相对于图片的左上方亮度样点的位置(xC,yC)。

  变量PaletteIndexMap[xC][yC]指定调色板索引,其是由CurrentPaletteEntries表示的数组的索引。数组索引xC,yC指定样点相对于图片的左上方亮度样点的位置(xC,yC)。PaletteIndexMap[xC][yC]的值应该在0到MaxPaletteIndex的范围内,含端值。

  变量PaletteRun指定:当CopyAboveIndicesFlag[xC][yC]等于1时,具有与上方行(水平扫描)或左列(垂直扫描)中的位置相同的调色板索引的连续位置的数量减1;或者当CopyAboveIndicesFlag[xC][yC]等于0时,具有相同调色板索引的连续位置的数量减1。

  变量PaletteMaxRun表示PaletteRun的最大可能值。比特流一致性的需求在于,PaletteMaxRun的值应该大于或等于0。

  palette_run_prefix指定PaletteRun的二值化中的前缀部分。

  palette_run_suffix指定PaletteRun的二值化中的后缀部分。当palette_run_suffix没有出现时,palette_run_suffix的值推断为等于0。

  paletteRun的值的推导如下:

  -如果palette_run_prefix小于2,则适用以下条件:

  PaletteRun=Palette_run_prefix(XX)

  -否则(palette_run_prefix大于或等于2),则适用以下条件:

  PrefixOffset=1<<((palette_run_prefix-1)

  PaletteRun=PrefixOffset+Palette_run_suffix(XX)

  palette_escape_val指定分量的量化转义编码样点值的幅值。

  palette_escape_sign指定分量的量化转义编码样点值的符号。

  变量PaletteEscapeVal[cIdx][xC][yC]指定样点的转义值,该样点的PaletteIndexMap[xC][yC]等于(MaxPaletteIndex–1),并且palette_escape_val_present_flag等于1。数组索引cIdx指定色彩分量。数组索引xC,yC指定样点相对于图片的左上方亮度样点的位置(xC,yC)。

  比特流一致性的需求在于,PaletteEscapeVal[cIdx][xC][yC]对于cIdx等于0应该在–((1<<(BitDepthY+1))-1)到(1<<(BitDepthY+1))-1的范围内,含端值,并且对于cIdx不等于0应该在0到(1<<(BitDepthC+1))-1的范围内,含端值。

  调色板模式的解码过程

  该过程的输入是:

  –位置(xCb,yCb),指定当前块的左上方亮度样点相对于当前图片的左上方亮度样点的位置,

  -变量startComp,指定调色板表中的第一色彩分量,

  -变量cIdx,指定当前块的色彩分量,

  -两个变量nTbW和nTbH,分别指定当前块的宽度和高度。

  该过程的输出是数组recSamples[x][y],其中x=0..nTbW-1,y=0..nTbH-1指定块的重构的样点值。

  取决于cIdx的值,变量nSubWidth和nSubHeight的推导如下:

  -如果cIdx等于0,则nSubWidth设置为1,且nSubHeight设置为1。

  -如果startComp等于1,并且如果cIdx>1,则nSubWidth设置为1,且nSubHeight设置为1。

  -否则,nSubWidth设置为SubWidthC,且nSubHeight设置为SubHeightC.

  -如果cu_palette_ibc_flag等于1,则适用以下条件:

  -用当前亮度编码块的左上方样点相对于当前图片的左上方亮度样点的亮度位置(xCb,yCb)调用第8.6.2节中指定的运动矢量的推导过程,变量cbWidth指定亮度样点中当前编码块的宽度,并且变量cbHeight指定亮度样点中当前编码块的高度。输出为1/16分数样点准确度mvL中的亮度运动矢量。

  -用亮度位置(xCb,yCb)调用第8.6.3节中指定的总体IBC预测过程,该亮度位置指定当前编码块的左上方样点相对于当前图片的左上方样点的位置,变量cbWidth指定亮度样点中当前编码块的宽度,变量cbHeight指定亮度样点中当前编码块的高度,变量numSbX和numSbY指定水平和垂直方向上亮度编码子块的数量,运动矢量mv[xSbIdx][ySbIdx],其中xSbIdx=0..numSbX-1,和ySbIdx=0..numSbY-1,变量cIdx指定当前块的色彩分量索引。输出是预测样点predSamples[x]的数组predSamples[y]。

  位置(xCb,yCb)上的重构的样点数组recSamples的(nTbWxnTbH)块由recSamples[x][y]表示,其中x=0..nTbW-1和y=0..nTbH-1,且对于在0到nTbW-1的范围中(含端值)的每个x和在0到nTbH-1的范围中(含端值)的每个y,recSamples[x][y]的值的推导如下:

  -变量xL和yL的推导如下:

  xL=palette_transpose_flag?x*nSubHeight:x*nSubWidth(51)

  yL=Palette_tra1nspose_flag?y*nSubWidth:y*nSubHeight(52)

  -变量bIsEscapeSample的推导如下:

  -如果PaletteIndexMap[xCb+xL][yCb+yL]等于MaxPaletteIndex,且palette escape val present flag等于1,则bIsEscapeSample设置为等于1。

  -否则,bIsEscapeSample设置为等于0。

  -如果bIsEscapeSample等于0,则适用以下条件:

  -如果cu_p alette_ibc_flag等于1,则适用以下条件:

  -如果PaletteIndexMap[xCb+xL][yCb+yL]等于0,则适用以下条件:

  recSamples[x][y]=predSamples[x][y]

  -否则,适用以下条件:

  recSamples[x][y]=CurrentPaletteEntries[cIdx][PaletteIndexMap[xCb+xL][yCb+yL]-1](53)

  -否则,适用以下条件:

  recSamples[x][y]=CurrentPaletteEntries[cIdx][PaletteIndexMap[xCb+xL][yCb+yL]](54)

  -否则,如果cu_transquant_bypass_flag等于1,则适用以下条件:

  recSamples[x][y]=predSamples[x][y]+PaletteEscapeVal[cIdx][xCb+xL][yCb+yL](55)

  -否则(bIsEscapeSample等于1且cu_transquant_bypass_flag等于0),则适用以下顺序的步骤:

  1.用指定当前块的左上方样点相对于当前图片的左上方样点的位置(xCb,yCb),调用量化参数推导过程。

  2.量化参数qP的推导如下:

  -如果cIdx等于0,

  qP=Max(0,Qp′Y)(56)

  -否则,如果cIdx等于1,

  qP=Max(0,Qp′Cb)(57)

  -否则(cIdx等于2),

  qP=Max(0,Qp′Cr)(58)

  3.变量bitDepth的推导如下:

  bitDepth=(cIdx==0)?BitDepthY:BitDepthC(59)

  4.列表levelScale[]被指定为levelScale[k]={40,45,51,57,64,72},其中k=0..5。

  5.适用以下条件:

  如果cu_palette_ibc_flag等于1,则适用以下条件

  tmpVal=(PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]*levelScale[qP%6])<<(qP/6)+32)>>6(510)

  recSamples[x][y]=Clip3(0,(1<<bitDepth)-1,predSamples[x][y]+tmpVal)(511)

  否则,如果cu_palette_ibc_flag等于0,则适用以下条件

  tmpVal=(PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]*levelScale[qP%6])<<(qP/6)+32)>>6(510)

  recSamples[x][y]=Clip3(0,(1<<bitDepth)-1,tmpVal)(511)

  调色板模式的调色板预测值更新过程

  该过程的输入是:

  -位置(xCb,yCb),指定当前块的左上方亮度样点相对于当前图片的左上方亮度样点的位置,

  -变量startComp,指定调色板表中的第一个色彩分量,

  -变量numComps,指定调色板表中色彩分量的数量,

  该过程的输出是变量PredictorPaletteSize[startComp],其指定更新的调色板预测值的尺寸,以及数组PredictorPaletteEntries[cIdx][i],其中cIdx=startComp,…,startComp+numComps-1,i=0..PredictorPaletteSize-1,该数组为下一个块指定更新的调色板预测值。

  变量PredictorPaletteSize和数组PredictorPaletteEntries的推导或修改如下:

  

  

  比特流一致性的需求在于,PredictorPaletteSize的值应该在0到PaletteMaxPredictorSize的范围内,含端值

  表1-语法元素和相关联的二值化。

  

  表2–将ctxInc分配给具有上下文编码的二进制码的语法元素

  

  7.基于JVET-O2001-vE的实施例

  改变的地方由粗体、斜体、带下划线的文本突出显示。删除的文本标记有

  实施例1

  7.3.8.5编码单位语法

  

  

  plt_ibc_flag指定调色板模式在当前编码单元中的使用。plt_ibc_flag等于1指示复合调色板模式应用在当前编码单元中。plt_ibc_flag等于0表示复合调色板模式没有应用在当前编码单元中。plt_ibc_flag在没有出现时推断为等于0。

  palette_escape_val_present_flag等于1指定当前编码单元含有至少一个转义编码样点。escape_val_present_flag等于0指定当前编码单元中没有转义编码样点。palette_escape_val_present_flag的值在没有出现时推断为等于1。

  变量MaxPaletteIndex指定当前编码单元的调色板索引的最大可能值。MaxPaletteIndex的值被设置为等于CurrentPaletteSize[startComp]-1+palette_escape_val_present_flag+(plt_ibc_flag?1∶0)。

  8.4.5.3调色板模式的解码过程

  该过程的输入是:

  -位置(xCb,yCb),指定当前块的左上方亮度样点相对于当前图片的左上方亮度样点的位置,

  -变量startComp,指定调色板表中的第一色彩分量,

  -变量cIdx,指定当前块的色彩分量,

  -两个变量nCbW和nCbH,分别指定当前块的宽度和高度。

  该过程的输出是数组recSamples[x][y],其中x=0..nCbW-1,y=0..nCbH-1,该数组指定块的重构的样点值。

  取决于cIdx的值,变量nSubWidth和nSubHeight推导如下:

  -如果cIdx等于0,则nSubWidth设置为1,且SubHeight设置为1。

  -否则,nSubWidth设置为SubWidthC,且nSubHeight设置为SubHeightC.

  如果plt_ibc_flag等于1,则适用以下条件:

  -通过亮度位置(xCb,yCb)、变量cbWidth和cbHeight输入来调用第8.6.2.2节中指定的IBC亮度运动矢量预测的推导过程,merge_idx[xCb][yCb]设置为第一有效BVmerge索引,并且输出为亮度运动矢量mvL。

  -通过以下调用第8.6.3.1节中指定的ibc块的解码过程:亮度编码块位置(xCb,yCb),亮度编码块宽度cbWidth和亮度编码块高度cbHeight,水平方向上的亮度编码子块的数量numSbX和垂直方向上的亮度编码子块的数量numSbY,亮度运动矢量mvL[xSbIdx][ySbIdx]、其中xSbIdx=0..numSbX–1,且ySbIdx=0..numSbY-1,设置为等于0的变量cIdx作为输入,以及预测亮度样点的(cbWidth)×(cbHeight)数组predSamplesL的ibc预测样点(predSamples)作为输出。

  比特流一致性的需求在于,至少一个merge索引指示有效亮度块矢量bvL,并且bvL应该遵守以下约束:

  -CtbSizeY大于或等于((yCb+(bvL[1]>>4))&(CtbSizeY-1))+cbHeight。

  -IbcVirBuf[0][(x+(bvL[0]>>4))&(IbcVirBufWidth–1)][(y+(bvL[1]>>4))&(CtbSizeY-1)]对于x=xCb..xCb+cbWidth-1且y=yCb..yCb+cbHeight–1不应该等于-1。

  位置(xCb,yCb)上的重构的样点数组recSamples的(nCbW x nCbH)块由recSamples[x][y]表示,其中x=0..nCTbW-1且y=0..nCbH-1,对于在0到nCbW-1范围内(含端值)的每个x以及在0到nCbH-1范围内(含端值)的每个y,recSamples[x][y]的值推导如下:

  -变量xL和yL的推导如下:

  xL = palette_transpose_flag? x * nSubHeight:x * nSubWidth (8-268)

  yL=Palette_transpose_flag?y*nSubWidth:y*nSubHeight(8-269)

  -变量bIsEscapeSample的推导如下:

  -如果PaletteIndexMap[xCb+xL][yCb+yL]等于MaxPaletteIndex,且palette_escape_val_present_flag等于1,则bIsEscapeSample设置为等于1。

  -否则,bIsEscapeSample设置为等于0。

  -如果bIsEscapeSample等于0,则适用以下条件:

  -如果plt_ibc_flag为1,则适用以下条件:

  recSamples[x][y]=PaletteIndexMap[xCb+xL][yCb+yL]==0?

  predSamples[x][y]:

  CurrentPaletteEntries[cIdx][PaletteIndexMap[xCb+xL][yCb+yL]-1]

  -否则,适用以下条件:

  recSamples[x][y]=CurrentPaletteEntries[cIdx][PaletteIndexMap[xCb+xL][yCb+yL]](8-270)

  …

  比特流一致性的需求在于,PredictorPaletteSize[startComp]的值应该在0到PaletteMaxPredictorSize的范围内,含端值。

  8.6.2.2IBC亮度块矢量预测的推导过程

  只有当CuPredMode[0][xCb][yCb]等于MODE_IBC,或者plt_ibc_flag为1时,才调用该过程,其中(xCb,yCb)指定相对于当前图片的左上方亮度样点的当前亮度编码块的左上方样点。

  …

  8.8.3.5边界滤波强度的推导过程

  该过程的输入是:

  -图片样点数组recPicture,

  -位置(xCb,yCb),指定当前编码块的左上方样点相对于当前图片的左上方样点的位置,

  -变量nCbW,指定当前编码块的宽度,

  -变量nCbH,指定当前编码块的高度,

  -变量edgeType,指定是垂直(EDGE_VER)边缘还是水平(EDGE_HOR)边缘被滤波,

  -变量cIdx,指定当前编码块的色彩分量,

  -二维(nCbW)×(nCbH)的数组edgeFlags。

  该过程的输出是指定边界滤波强度的二维(nCbW)×(nCbH)的数组bS。

  …

  对于i=0..xN的xDi和j=0..yN的yDj,适用以下条件:

  -如果edgeFlags[xDi][yDj]等于0,则变量bS[xDi][yDj]设置为等于0。

  -否则,适用以下条件:

  …

  -变量bS[xDi][yDj]的推导如下:

  …

  -否则,如果cIdx等于0且以下一个或多个条件为真,则bS[xDi][yDj]设置为等于1:

  -含有样点p0的编码子块和含有样点q0的编码子块均在IBC预测模式下编码,或者它们的plt_ibc_flag为1,并且用于预测两个编码子块的块矢量的水平分量或垂直分量之间的绝对差在1/16亮度样点的单元中大于或等于8。

  -为了预测含有样点p0的编码子块,使用与含有样点q0的编码子块的预测不同的参考图片或不同数量的运动矢量。

  注1-确定用于两个编码子块的参考图片是相同还是不同,这仅取决于参考哪些图片,而不考虑使用参考图片列表0的索引还是使用参考图片列表1的索引来形成预测,也不考虑参考图片列表内的索引位置是否不同。

  注2-用于对具有左上方样点覆盖(xSb,ySb)的编码子块进行预测的运动矢量的数量等于PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb]。

  …

  -否则,变量bS[xDi][yDj]设置为等于0。

  6.4.4邻近块可用性的推导过程

  该过程的输入是:

  -当前块的左上方样点相对于当前图片的左上方亮度样点的亮度位置(xCurr,yCurr),

  -亮度位置(xNbY,yNbY),其相对于当前图片的左上方亮度样点由邻近块覆盖,

  -变量checkPredModeY,指定可用性是否取决于预测模式。

  -变量cIdx,指定当前块的色彩分量。

  该过程的输出是覆盖位置(xNbY,yNbY)的邻近块的可用性,表示为availableN。

  …

  当以下所有条件为真时,availableN设置为等于假(FALSE)。

  -checkPredModeY等于真(TRUE)。

  -availableN设置等于真(TRUE)。

  

  -以下所有条件均为假

  -CuPredMode[0][xNbY][yNbY]是IBC,CuPredMode[0][xCurr][yCurr]是MODE_PLT,且plt_ibc_flag[xCurr][yCurr]为1

  -CuPredMode[0][xNbY][yNbY]是MODE_PLT,plt_ibc_flag[xNbY][yNbY]为1,且CuPredMode[0][xCurr][yCurr]是PLT

  -CuPredMode[0][xNbY][yNbY]等于CuPredMode[0][xCurr][yCurr]

  实施例2

  7.3.8.5编码单元语法

  

  

  plt_ibc_flag指定调色板模式在当前编码单元中的使用。plt_ibc_flag等于1指示复合调色板模式应用在当前编码单元中。plt_ibc_flag等于0指示复合调色板模式没有应用在当前编码单元中。plt_ibc_flag在没有出现时推断为等于0。

  palette_escape_val_present_flag等于1指定当前编码单元含有至少一个转义编码样点。escape_val_present_flag等于0指示当前编码单元中没有转义编码样点。palette_escape_val_present_flag的值在没有出现时推断为等于1。

  变量MaxPaletteIndex指定当前编码单元的调色板索引的最大可能值。MaxPaletteIndex的值被设置为等于CurrentPaletteSize[startComp]-1+palette_escape_val_present_flag+(plt_ibc_flag?1∶0)。

  8.4.5.3调色板模式的解码过程

  该过程的输入是:

  -位置(xCb,yCb),指定当前块的左上方亮度样点相对于当前图片的左上方亮度样点的位置,

  -变量startComp,指定调色板表中的第一色彩分量,

  -变量cIdx,指定当前块的色彩分量,

  -两个变量nCbW和nCbH,分别指定当前块的宽度和高度。

  该过程的输出是数组recSamples[x][y],其中x=0..nCbW-1,y=0..nCbH-1,该数组指定块的重构的样点值。

  取决于cIdx的值,变量nSubWidth和nSubHeight推导如下:

  -如果cIdx等于0,则nSubWidth设置为1,且SubHeight设置为1。

  -否则,nSubWidth设置为SubWidthC,且nSubHeight设置为SubHeightC.

  如果plt_ibc_flag等于1,则适用以下条件:

  -通过亮度位置(xCb,yCb)、变量cbWidth和cbHeight输入来调用第8.6.2.2节中指定的IBC亮度运动矢量预测的推导过程,并且输出为亮度运动矢量mvL。

  -通过以下调用第8.6.3.1节中指定的ibc块的解码过程:亮度编码块位置(xCb,yCb),亮度编码块宽度cbWidth和亮度编码块高度cbHeight,水平方向上的亮度编码子块的数量numSbX和垂直方向上的亮度编码子块的数量numSbY,亮度运动矢量mvL[xSbIdx][ySbIdx]、其中xSbIdx=0..numSbX–1,且ySbIdx=0..numSbY-1,设置为等于0的变量cIdx作为输入,以及预测亮度样点的(cbWidth)×(cbHeight)数组predSamplesL的ibc预测样点(predSamples)作为输出。

  位置(xCb,yCb)上的重构的样点数组recSamples的(nCbW x nCbH)块由recSamples[x][y]表示,其中x=0..nCTbW-1且y=0..nCbH-1,对于在0到nCbW-1范围内(含端值)的每个x以及在0到nCbH-1范围内(含端值)的每个y,recSamples[x][y]的值推导如下:

  -变量xL和yL的推导如下:

  xL = palette_transpose_flag? x * nSubHeight:x * nSubWidth (8-268)

  yL=Palette_transpose_flag?y*nSubWidth:y*nSubHeight(8-269)

  -变量bIsEscapeSample的推导如下:

  -如果PaletteIndexMap[xCb+xL][yCb+yL]等于MaxPaletteIndex,且palette_escape_val_present_flag等于1,则bIsEscapeSample设置为等于1。

  -否则,bIsEscapeSample设置为等于0。

  -如果bIsEscapeSample等于0,则适用以下条件:

  -如果plt_ibc_flag为1

  1.如果PaletteIndexMap[xCb+xL][yCb+yL]==0

  则recSamples[x][y]=predSamples[x][y]

  2.否则,如果PaletteIndexMap[xCb+xL][yCb+yL]>0

  则recSamples[x][y]=

  CurrentPaletteEntries[cIdx][PaletteIndexMap[xCb+xL][yCb+yL]-1]

  -否则,如果plt_ibc_flag为0

  recSamples[x][y]=CurrentPaletteEntries[cIdx][PaletteIndexMap

  [xCb+xL][yCb+yL]](8-270)

  …

  比特流一致性的需求在于,PredictorPaletteSize[startComp]的值应该在0到PaletteMaxPredictorSize的范围内,含端值。

  8.6.2.2IBC亮度块矢量预测的推导过程

  只有当CuPredMode[0][xCb][yCb]等于MODE_IBC,或者plt_ibc_flag为1时,才调用该过程,其中(xCb,yCb)指定相对于当前图片的左上方亮度样点的当前亮度编码块的左上方样点。

  …

  8.8.3.5边界滤波强度的推导过程

  该过程的输入是:

  -图片样点数组recPicture,

  -位置(xCb,yCb),指定当前编码块的左上方样点相对于当前图片的左上方样点的位置,

  -变量nCbW,指定当前编码块的宽度,

  -变量nCbH,指定当前编码块的高度,

  -变量edgeType,指定是垂直(EDGE_VER)边缘还是水平(EDGE_HOR)边缘被滤波,

  -变量cIdx,指定当前编码块的色彩分量,

  -二维(nCbW)×(nCbH)的数组edgeFlags。

  该过程的输出是指定边界滤波强度的二维(nCbW)×(nCbH)的数组bS。

  …

  对于i=0..xN的xDi和j=0..yN的yDj,适用以下条件:

  -如果edgeFlags[xDi][yDj]等于0,则变量bS[xDi][yDj]设置为等于0。

  -否则,适用以下条件:

  …

  -变量bS[xDi][yDj]的推导如下:

  …

  -否则,如果cIdx等于0且以下一个或多个条件为真,则bS[xDi][yDj]设置为等于1:

  -含有样点p0的编码子块和含有样点q0的编码子块均在IBC预测模式下编码,或者它们的plt_ibc_flag为1,并且用于预测两个编码子块的块矢量的水平分量或垂直分量之间的绝对差在1/16亮度样点的单元中大于或等于8。

  -为了预测含有样点p0的编码子块,使用与含有样点q0的编码子块的预测不同的参考图片或不同数量的运动矢量。

  注1-确定用于两个编码子块的参考图片是相同还是不同,这仅取决于参考哪些图片,而不考虑使用参考图片列表0的索引还是使用参考图片列表1的索引来形成预测,也不考虑参考图片列表内的索引位置是否不同。

  注2-用于对具有左上方样点覆盖(xSb,ySb)的编码子块进行预测的运动矢量的数量等于PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb]。

  …

  -否则,变量bS[xDi][yDj]设置为等于0。

  6.4.4邻近块可用性的推导过程

  该过程的输入是:

  -当前块的左上方样点相对于当前图片的左上方亮度样点的亮度位置(xCurr,yCurr),

  -亮度位置(xNbY,yNbY),其相对于当前图片的左上方亮度样点由邻近块覆盖,

  -变量checkPredModeY,指定可用性是否取决于预测模式。

  -变量cIdx,指定当前块的色彩分量。

  该过程的输出是覆盖位置(xNbY,yNbY)的邻近块的可用性,表示为availableN。

  …

  当以下所有条件为真时,availableN设置为等于假(FALSE)。

  -checkPredModeY等于真(TRUE)。

  -availableN设置等于真(TRUE)。

  

  -以下所有条件均为假

  -CuPredMode[0][xNbY][yNbY]是IBC,CuPredMode[0][xCurr][yCurr]是MODE_PLT,且plt_ibc_flag[xCurr][yCurr]为1

  -CuPredMode[0][xNbY][yNbY]是MODE_PLT,plt_ibc_flag[xNbY][yNbY]为1,且CuPredMode[0][xCurr][yCurr]是PLT

  -CuPredMode[0][xNbY][yNbY]等于CuPredMode[0][xCurr][yCurr]

  7.所公开技术的示例实现方式

  图6是视频处理装置600的框图。装置600可用于实现本文所描述的一个或多个方法。装置600可以实施在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置600可以包括一个或多个处理器602、一个或多个存储器604和视频处理硬件606。(多个)处理器602可以配置为实现本文件中所描述的一个或多个方法。一个或多个存储器604可以用于存储用于实现本文所描述的方法和技术的数据和代码。视频处理硬件606可以用于在硬件电路中实现本文件中所描述的某些技术,并且可以部分地或完全地是处理器602(例如,图形处理器核心GPU或其他信令处理电路)的一部分。

  在本文件中,术语“视频处理”可以指代视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示到对应的比特流表示的转换期间应用视频压缩算法,反之亦然。如语法所定义,当前视频块的比特流表示可以例如对应于在比特流内的不同位置中共位的比特或分散的比特。例如,可以在变换的和编码的误差残差值方面并且还使用标头中的比特和比特流中的其他字段来编码宏块。

  将理解的是,通过允许使用本文件中所公开的技术,所公开的方法和技术将有益于在诸如智能手机、膝上型计算机、桌上型计算机和类似设备的视频处理设备内并入的视频编码器和/或解码器实施例。

  图7是视频处理的示例方法700的流程图。方法700包括,在710,确定调色板模式要用于处理视频块的第一部分和帧内块复制(IBC)模式要用于处理视频块的第二部分,其中在调色板模式下,视频块的第一部分的样点是根据包括在预定义调色板中的代表性色彩值的集合被编码的,并且其中在IBC模式下,视频块的第二部分的样点是从邻近的先前解码的视频块的相邻像素中预测的。该方法包括,在720,使用调色板模式执行对视频块的第一部分的进一步处理,并且使用IBC模式执行对视频块的第二部分的进一步处理,其中使用调色板模式处理的视频块的第一部分的指示和使用IBC模式处理的视频块的第二部分的指示被包括在调色板索引中,该调色板索引标识视频块的第一部分和视频块的第二部分。

  可以使用以下基于条款的格式来描述某些实施例。

  1.一种用于处理视频的方法,包括:

  确定调色板模式要用于处理视频块的第一部分和帧内块复制(IBC)模式要用于处理视频块的第二部分,其中在调色板模式下,视频块的第一部分的样点是根据包括在预定义调色板中的代表性色彩值的集合被编码的,并且其中在IBC模式下,视频块的第二部分的样点是从邻近的先前解码的视频块的相邻像素中预测的;以及

  使用调色板模式执行对视频块的第一部分的进一步处理,以及使用IBC模式执行对视频块的第二部分的进一步处理,其中使用调色板模式处理的视频块的第一部分的指示和使用IBC模式处理的视频块的第二部分的指示被包括在调色板索引中,该调色板索引标识视频块的第一部分和视频块的第二部分。

  2.根据条款1所述的方法,其中对视频块的第一部分的进一步处理包括从视频块的第二部分复制共位的样点。

  3.根据条款2所述的方法,其中从视频块的第二部分复制共位的样点是根据包括在索引图中的调色板索引。

  4.根据条款2-3中的任一项或多项所述的方法,其中调色板索引为0。

  5.根据条款2-3中的任一项或多项所述的方法,其中调色板索引等于比调色板条目的总数量更小的数量。

  6.根据条款2-3中的任一项或多项所述的方法,其中基于以下的一个或多个,调色板索引等于整数值:视频块的维度、视频块的量化参数、视频块的量化参数、视频块的色彩格式、视频块的编码树结构、视频块的图片/组/条带类型、或包括在与视频块的转换相关联的比特流表示中的参数。

  7.根据条款2-3中的任一项或多项所述的方法,其中将标识视频块的第一部分和视频块的第二部分的调色板索引信令通知为由视频块的plt_combined_ibc_sample_flag所指示的标志。

  8.根据条款7所述的方法,其中plt_combined_ibc_sample_flag的值等于1。

  9.根据条款7所述的方法,其中视频块的plt_combined_ibc_sample_flag是基于视频块的邻近样点的plt_combined_ibc_sample_flag标志的值。

  10.根据条款7所述的方法,其中当视频块的邻近样点不存在时,将视频块的plt_combined_ibc_sample_flag推断为零。

  11.根据条款9所述的方法,其中视频块的邻近样点包括视频块的空间上的左侧邻域和视频块的空间上的上方邻域。

  12.根据条款11所述的方法,其中视频块的plt_combined_ibc_sample_flag为1,并且其中视频块的空间上的左侧邻域和视频块的空间上的上方邻域二者的plt_combined_ibc_sample_flag标志都为一。

  13.根据条款1所述的方法,其中使用IBC模式处理的视频块的第二部分至少部分地基于从(i)IBC merge模式或(ii)IBC高级运动矢量预测(AMVP)模式中推导的运动信息,其中在IBC merge模式下,从与视频块的转换相关联的比特流表示中解析出指向IBC merge候选列表中条目的索引,并且其中在IBC AMVP模式下,从与视频块的转换相关联的比特流表示中解析出指向IBC AMVP列表的索引。

  14.根据条款13所述的方法,其中视频块的高度和/或视频块的宽度超过阈值。

  15.根据条款14所述的方法,其中阈值至少基于以下的一个或多个:视频块的维度、视频块的量化参数、视频块的量化参数、视频块的色彩格式、视频块的编码树结构,视频块的图片/组/条带类型、或包括在与视频块的转换相关联的比特流表示中的参数。

  16.根据条款13所述的方法,其中使用IBC模式处理的视频块的第二部分至少部分地基于始终从IBC merge模式推导的运动信息。

  17.根据条款13所述的方法,其中使用IBC模式处理的视频块的第二部分至少部分地基于始终从IBC AMVP模式推导的运动信息。

  18.根据条款17所述的方法,其中在IBC AMVP模式下,IBC merge候选列表中的条目对应于IBC merge候选列表中的第一条目。

  19.根据条款13所述的方法,还包括:

  响应于确定启用视频块的双重编码树结构,其中在IBC模式下的运动信息包括色度运动矢量或亮度运动矢量,其中基于视频块的第二部分的色度格式,色度运动矢量是由以下一个或多个方式推导出:(a)缩放共位的亮度运动矢量,(b)缩放共位的亮度块的邻近运动矢量,或者(c)对每个色度子块平均化可用的亮度运动矢量。

  20.根据条款2-3中的任一项或多项所述的方法,其中使用IBC模式处理的视频块的第二部分的指示包括从视频块的第二部分复制共位的样点的指示,其中从视频块的第二部分复制共位的样点的指示基于以下的一个或多个:视频块的维度、视频块的量化参数、视频块的量化参数、视频块的色彩格式、视频块的编码树结构或视频块的图片/组/条带类型。

  21.根据条款2-3中的任一项或多项所述的方法,其中视频块的第一部分包括转义像素,其中对于转义像素,在与视频块的转换相关联的比特流表示中信令通知残差,该残差从计算在第一块的原始样点与视频块的第二部分的共位的样点之间的差中来获得。

  22.根据条款21所述的方法,其中根据量化参数来量化残差,并且其中在与视频块的转换相关联的比特流表示中信令通知量化的残差。

  23.根据条款22所述的方法,其中量化的残差包括正号或负号,其中在与视频块的转换相关联的比特流表示中信令通知正号或负号。

  24.根据条款1-23中的任一项或多项所述的方法,其中标识关联方法的信息包括在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、适配参数集(APS)、图片标头、片组标头、片标头、条带标头、或最大编码单元(LCU)行。

  25.根据条款24所述的方法,其中为视频块定义的信息基于以下的一个或多个:视频块的维度、视频块的量化参数、视频块的量化参数、视频块的色彩格式、视频块的编码树结构、或视频块的图片/组/条带类型;调色板标志的值,指示视频块的一个或多个邻近样点的调色板模式;以及帧内块复制标志的值,指示视频块的一个或多个邻近样点的IBC模式。

  26.根据条款25所述的方法,其中调色板标志的值对应于布尔值真或假,指示调色板模式是启用的或是禁用的。

  27.根据条款25所述的方法,其中帧内块复制标志的值对应于布尔值真或假,指示IBC模式是启用的或是禁用的。

  28.根据条款24-27中的任一项或多项所述的方法,其中在与视频块的转换相关联的比特流表示中信令通知调色板标志的值和/或帧内块复制标志的值。

  29.根据条款24-27中的任一项或多项所述的方法,其中计算或推断出调色板标志的值和/或帧内块复制标志的值。

  30.根据条款24-29中的任一项或多项所述的方法,其中为视频块定义的信息包括预测模式,其中预测模式是与IBC模式、帧内模式或帧间模式分别对应的MODE_IBC,MODE_INTRA或MODE_INTER。

  31.根据条款1-23中的任一项或多项所述的方法,其中视频块的第一部分和/或视频块的第二部分对应于子块,该方法还包括:

  选择性地启用或禁用要在子块上使用的调色板模式和/或IBC模式。

  32.根据条款31所述的方法,其中所述子块是4×4亮度块或2×2色度块。

  33.根据条款31所述的方法,其中在调色板模式之前使用帧内块复制(IBC)模式。

  34.根据条款31所述的方法,其中如果当前色度子块的共位的亮度块不是在IBC模式下编码,则在当前色度子块上使用调色板模式。

  35.根据条款31所述的方法,其中如果当前色度子块的IBC预测块没有被重构,则在当前色度子块上使用调色板模式。

  36.根据条款31所述的方法,其中选择性地启用或禁用至少部分地基于子块的共位的亮度块的预测模式。

  37.根据条款31所述的方法,其中为子块选择性地启用IBC模式包括在IBC预测中复制共位的样点,并且为子块选择性地禁用IBC模式包括使用调色板色彩重构子块。

  38.根据条款31所述的方法,其中子块的尺寸是基于以下的一个或多个:视频块的维度、视频块的量化参数、调色板索引、视频块的邻近块的一个或多个帧内块复制(IBC)标志、视频块的色彩格式、子块的编码树结构、子块的条带/组/图片类型。

  39.一种用于处理视频的方法,包括:

  为视频块的样点,确定调色板模式和帧内块复制(IBC)模式要用于处理样点,其中在调色板模式下,视频块的样点是根据包括在预定义调色板中的代表性色彩值的集合被编码的,其中在IBC模式下,视频块的样点是从邻近的先前解码的视频块的相邻像素中预测的,其中视频块的样点与索引相关联。

  40.一种视频解码装置,该视频解码装置包括配置为实现根据条款1至39中的任一项所述的方法的处理器。

  41.一种视频编码装置,该视频编码装置包括配置为实现根据条款1至39中的任一项所述的方法的处理器

  42.一种其上存储有计算机代码的计算机程序产品,该代码在由处理器执行时使处理器实现根据条款1至39中的任一项所述的方法。

  43.一种根据本文件中所描述的方法、装置或系统。

  图10是示出其中可实现本文中所公开的各种技术的示例视频处理系统1000的框图。各种实现方式可以包括系统1000的某些或全部组件。系统1000可以包括用于接收视频内容的输入1002。视频内容可以以原始格式或未压缩的格式(例如8或10比特的多分量的像素值)来接收,或者可以以压缩的格式或编码的格式来接收。输入1002可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(PON)等)和无线接口(诸如Wi-Fi或蜂窝接口)。

  系统1000可以包括可以实现本文件中所描述的各种编码方法的编码组件1004。编码组件1004可以降低从输入1002到编码组件1004的输出的视频的平均比特率,以产生视频的编码表示。因此,编码技术有时称为视频压缩或视频转码技术。编码组件1004的输出可以经由所连接的通信(如由分量1006所表示的)来存储或发送。组件1008将输入1002处所接收的视频的存储或通信的比特流(或编码的)表示用于生成像素值或可显示视频,该像素值或可显示视频被发送到显示接口1010。从比特流表示中生成用户可观看的视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编码”操作或工具,但是应当理解,在编码器处使用编码工具或操作,并且解码器将执行反演编码结果的对应解码工具或操作。

  外围总线接口或显示接口的示例可以包括通用串行总线(USB)或高清多媒体接口(HDMI)或Displayport等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文件中所描述的技术可以实施在各种电子设备中,诸如移动电话、膝上型计算机、智能电话或能够执行数字数据处理和/或视频显示的其他设备。

  图11是可视数据处理的示例方法的流程图。在步骤1102,为可视媒体数据的视频块和视频块的比特流表示之间的转换,确定调色板模式要用于处理视频块的第一部分和帧内块复制(IBC)模式要用于处理视频块的第二部分,其中在调色板模式下,视频块的第一部分的样点是根据包括在预定义调色板中的代表性色彩值的集合被编码的,并且其中在IBC模式下,视频块的第二部分的样点是从邻近的先前解码的视频块的相邻像素中预测的。在步骤1104,该过程在转换期间使用调色板模式执行对视频块的第一部分的进一步处理,且基于使用IBC模式推导的预测块执行对视频块的第二部分的进一步处理,其中指示使用调色板模式处理的视频块的第一部分的指示和使用IBC模式处理的视频块的第二部分的指示包括在调色板索引图中,该调色板索引图标识视频块的第一部分和视频块的第二部分。

  图12是可视数据处理的示例方法的流程图。在步骤1202,该过程为视频块的样点确定第一组合的调色板和帧内块复制(IBC)模式要用于处理样点,其中在调色板模式下,视频块的样点是根据包括在预定义调色板中的代表性色彩值的集合被编码的,其中在IBC模式下,视频块的样点是从邻近的先前解码的视频块的相邻像素中预测的,其中视频块的样点与表示INDEX模式或COPY_ABOVE模式的调色板索引相关联,其中在INDEX模式或COPY_ABOVE模式下,当前块的调色板索引通过复制先前编码的索引来推导。在步骤1204,该过程在视频块和视频块的比特流表示之间执行转换。

  本公开的某些实施例在基于条款的格式下呈现。

  1.一种用于可视媒体处理的方法,包括:

  为可视媒体数据的视频块和视频块的比特流表示之间的转换,确定调色板模式要用于处理视频块的第一部分和帧内块复制(IBC)模式要用于处理视频块的第二部分,其中在调色板模式下,视频块的第一部分的样点是根据包括在预定义调色板中的代表性色彩值的集合被编码的,并且其中在IBC模式下,视频块的第二部分的样点是从邻近的先前解码的视频块的相邻像素中预测的;以及

  在转换期间,使用调色板模式执行对视频块的第一部分的进一步处理,以及基于使用IBC模式推导的预测块执行对视频块的第二部分的进一步处理,其中使用调色板模式处理的视频块的第一部分的指示和使用IBC模式处理的视频块的第二部分的指示被包括在调色板索引图中,该调色板索引图标识视频块的第一部分和视频块的第二部分。

  2.根据条款1所述的方法,其中对视频块的第二部分的进一步处理包括:

  通过在使用IBC模式推导的预测块中复制共位的样点,重构视频块的第二部分的样点。

  3.根据条款1所述的方法,其中包括在调色板索引图中的调色板索引指示样点是属于视频块的第一部分还是属于视频块的第二部分。

  4.根据条款2-3中的任一项或多项所述的方法,其中将属于视频块的第二部分的样点的调色板索引设置为0。

  5.根据条款2-3中的任一项或多项所述的方法,其中属于所述第一部分的样点的实际调色板索引等于1,小于解码的调色板索引。

  6.根据条款2-3中的任一项或多项所述的方法,其中基于以下的一个或多个,调色板索引等于整数值:视频块的维度、视频块的量化参数、视频块的量化参数、视频块的色彩格式、视频块的编码树结构、视频块的图片/组/条带类型或包括在与视频块的转换相关联的比特流表示中的参数。

  7.根据条款1和3中的任一项或多项所述的方法,其中将标识视频块的第一部分和视频块的第二部分的调色板索引作为由视频块的plt_combined_ibc_sample_flag所表示的标志来信令通知。

  8.根据条款2-3中的任一项或多项所述的方法,其中将视频块的第二部分的样点作为新条目添加到调色板预测值中,其中调色板预测值对利用调色板的样点的列表进行维护。

  9.根据条款2-3中的任一项所述的方法,其中视频块的第二部分的样点用于替换调色板预测值中的现有条目,其中调色板预测值对利用调色板的编码样点的列表进行维护。

  10.根据条款2-3中的任一项或多项所述的方法,其中将视频块的第二部分的样点作为新条目添加到调色板预测值中,其中调色板预测值对利用调色板的样点的列表进行维护,并且其中在添加之后,调色板预测值中的样点的列表被重新排序。

  11.根据条款7所述的方法,其中当样点属于视频块的第二部分时,plt_combined_ibc_sample_flag的值等于一。

  12.根据条款7所述的方法,其中视频块的plt_combined_ibc_sample_flag是基于视频块的邻近样点的plt_combined_ibc_sample_flag标志的值。

  13.根据条款7所述的方法,其中当视频块的邻近样点不存在时,视频块的plt_combined_ibc_sample_flag推断为零。

  14.根据条款12所述的方法,其中视频块的邻近样点包括视频块的空间上的左侧邻域和视频块的空间上的上方邻域。

  15.根据条款11所述的方法,其中视频块的plt_combined_ibc_sample_flag为1,并且其中视频块的空间上的左侧邻域和视频块的空间上的上方邻域二者的plt_combined_ibc_sample_flag标志都为一。

  16.根据条款1所述的方法,其中使用IBC模式处理的视频块的第二部分至少部分地基于从(i)IBC merge模式或(ii)IBC高级运动矢量预测(AMVP)模式中推导的运动信息,其中在IBC merge模式下,从与视频块的转换相关联的比特流表示中解析出指向IBC merge候选列表中条目的索引,并且其中在IBC AMVP模式下,从与视频块的转换相关联的比特流表示中解析出指向IBC AMVP列表的索引。

  17.根据条款16所述的方法,其中视频块的高度和/或视频块的宽度超过阈值。

  18.根据条款17所述的方法,其中阈值至少基于以下的一个或多个:视频块的维度、视频块的量化参数、视频块的量化参数、视频块的色彩格式、视频块的编码树结构、视频块的图片/组/条带类型、或包括在与视频块的转换相关联的比特流表示中的参数。

  19.根据条款16所述的方法,其中仅使用利用IBC merge模式推导的预测块来处理视频块的第二部分。

  20.根据条款16所述的方法,其中仅使用利用IBC AMVP模式推导的预测块来处理视频块的第二部分。

  21.根据条款16所述的方法,其中使用由基于历史的运动矢量预测(HMVP)表中的运动候选推导的预测块来处理视频块的第二部分。

  22.根据条款19所述的方法,其中预测块针对视频块的第二部分使用的IBC merge候选的索引被包括为与视频块的转换相关联的比特流表示中的字段。

  23.根据条款22所述的方法,其中IBC merge候选列表中的无效条目的索引被排除,以免在所述比特流表示中被信令通知。

  24.根据条款20所述的方法,其中针对视频块的第二部分的预测块的运动信息与IBC AMVP列表中的条目之间的块矢量差被包括为与视频块的转换相关联的比特流表示中的字段。

  25.根据条款19所述的方法,其中IBC merge候选列表中的第一有效候选用于推导预测块,其中有效候选满足参考块的整体在可用重构的区域内的条件。

  26.根据条款19所述的方法,其中IBC AMVP列表中的第一有效候选用于推导预测块,其中有效候选满足参考块的整体在可用重构的区域内的条件。

  27.根据条款20所述的方法,其中在IBC AMVP模式下,还包括:

  当确定IBC merge候选列表中的所有条目均无效时,使用默认运动信息。

  28.根据条款27所述的方法,其中默认运动信息至少部分地基于视频块的维度或视频块的位置。

  29.根据条款27所述的方法,其中默认运动信息是预定义的。

  30.根据条款16所述的方法,还包括:

  响应于确定启用视频块的双重编码树结构,其中在IBC模式下的运动信息包括色度运动矢量或亮度运动矢量,其中基于视频块的第二部分的色度格式,色度运动矢量是由以下一个或多个方式推导出:(a)缩放共位的亮度运动矢量,(b)缩放共位的亮度块的邻近运动矢量,或者(c)为每个色度子块平均化可用的亮度运动矢量。

  31.根据条款2-30中的任一项或多项所述的方法,其中使用IBC模式处理的视频块的第二部分的指示是基于以下的一个或多个:视频块的维度、视频块的量化参数、视频块的量化参数、视频块的色彩格式、视频块的编码树结构、或视频块的图片/组/条带类型。

  32.根据条款2-3中的任一项或多项所述的方法,其中视频块的第一部分包括转义像素,其中对于转义像素,在与视频块的转换相关联的比特流表示中信令通知残差,该残差从计算视频块的第一部分的样点和视频块的第二部分的样点之间的差中获得。

  33.根据条款2-3中的任一项或多项所述的方法,其中视频块的第一部分包括转义像素,其中对于转义像素,在与视频块的转换相关联的比特流表示中信令通知残差,该残差从计算视频块的第一部分的样点和视频块的第二部分的重构的样点之间的差中获得。

  34.根据条款33所述的方法,其中根据量化参数来量化残差,并且其中在与视频块的转换相关联的比特流表示中信令通知量化的残差。

  35.根据条款34所述的方法,其中量化的残差包括正号或负号,其中在与视频块的转换相关联的比特流表示中信令通知正号或负号。

  36.根据条款1-35中的任一项或多项所述的方法,其中视频块的第一部分和/或视频块的第二部分对应于子块,该方法还包括:

  选择性地启用或禁用要在子块上使用的调色板模式和/或IBC模式。

  37.根据条款36所述的方法,其中子块是4×4亮度块或2×2色度块。

  38.根据条款36所述的方法,其中在调色板模式之前使用帧内块复制(IBC)模式。

  39.根据条款36所述的方法,其中如果当前色度子块不是在IBC模式下编码,则当前色度子块上使用调色板模式。

  40.根据条款36所述的方法,其中如果当前色度子块的共位的亮度块不是在IBC模式下编码,则在当前色度子块上使用调色板模式。

  41.根据条款36所述的方法,其中如果当前色度子块的IBC预测块没有被重构,则在当前色度子块上使用调色板模式。

  42.根据条款36所述的方法,其中选择性地启用或禁用至少部分地基于子块的共位的亮度块的预测模式。

  43.根据条款36所述的方法,其中为子块选择性地启用IBC模式包括在IBC预测中复制共位的样点,并且为子块选择性地禁用IBC模式包括使用调色板色彩重构子块。

  44.根据条款36所述的方法,其中在子块级别信令通知调色板模式和/或IBC模式的使用的指示。

  45.根据条款44所述的方法,其中与子块相关联的标志被包括在比特流表示中,以指示子块是在调色板模式下编码还是在IBC模式下编码。

  46.根据条款43所述的方法,其中与视频块相关联的标志被包括在比特流表示中,以指示视频块是在调色板模式下编码还是在IBC模式下编码,还包括:

  基于来自子块的第二色彩分量的信息,选择性地启用或禁用要在子块的第一色彩分量上使用的调色板模式和/或IBC模式。

  47.根据条款36所述的方法,其中子块的尺寸是基于以下的一个或多个:视频块的维度、视频块的量化参数、调色板索引、视频块的邻近块的一个或多个帧内块复制(IBC)标志、视频块的色彩格式、子块的编码树结构、子块的条带/组/图片类型。

  48.一种用于可视媒体处理的方法,包括:

  为视频块的样点,确定第一组合的调色板和帧内块复制(IBC)模式要用于处理样点,其中在调色板模式下,视频块的样点是根据包括在预定义调色板中的代表性色彩值的集合被编码的,其中在IBC模式下,视频块的样点是从邻近的先前解码的视频块的相邻像素中预测的,其中视频块的样点与指示INDEX模式或COPY_ABOVE模式的调色板索引相关联,其中在INDEX模式或COPY_ABOVE模式下,当前块的调色板索引通过复制先前编码的索引来推导;以及

  在视频块和视频块的比特流表示之间执行转换。

  49.根据条款48所述的方法,其中IBC模式下编码的视频块的样点推断为具有特设索引。

  50.根据条款49所述的方法,其中在INDEX模式和/或COPY_ABOVE模式下,特设索引的值基于其他调色板索引。

  51.根据条款49所述的方法,其中在INDEX模式和/或COPY_ABOVE模式下,防止视频块的第一部分中的样点从视频块的第二部分中复制样点。

  52.根据条款49所述的方法,其中当样点的调色板索引指示INDEX和/或COPY_ABOVE模式时,跳过IBC模式下编码的样点。

  53.根据条款48所述的方法,还包括:

  为视频块的样点,确定第二组合的调色板和帧内预测模式要用于使用预测块来处理样点,该预测块基于帧内预测模式和调色板索引生成。

  54.根据条款48所述的方法,其中在第一组合的调色板模式和帧内块复制(IBC)模式下,还包括:

  应用基于约束的规则,该基于约束的规则指定从(i)IBC merge模式或(ii)IBC高级运动矢量预测(AMVP)模式推导的至少一个有效运动信息。

  55.根据条款1-53中的任一项或多项所述的方法,其中标识关联方法的信息包括在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、适配参数集(APS)、图片标头、片组标头、片标头、条带标头、或最大编码单元(LCU)行。

  56.根据条款55所述的方法,其中为视频块定义的信息基于以下的一个或多个:视频块的维度,视频块的量化参数,视频块的量化参数,视频块的色彩格式,视频块的编码树结构,或视频块的图片/组/条带类型;调色板标志的值,指示视频块的一个或多个邻近样点的调色板模式;帧内块复制标志的值,指示视频块的一个或多个邻近样点的IBC模式;第一组合的模式标志的值,指示视频块的一个或多个邻近样点的组合的调色板和帧内块复制模式;以及第二组合的模式标志的值,指示视频块的一个或多个邻近样点的组合的调色板和帧内模式。

  57.根据条款54所述的方法,其中当视频块的维度超过阈值数量时,从比特流表示中排除标识关联方法的信息。

  58.根据条款56所述的方法,其中调色板标志的值对应于布尔值真或假,指示调色板模式是启用的或是禁用的。

  59.根据条款56所述的方法,其中帧内块复制标志的值对应于布尔值真或假,指示IBC模式是启用的或是禁用的。

  60.根据条款56所述的方法,其中第一组合的模式标志的值对应于布尔值真或假,指示第一组合的调色板和帧内块复制模式是禁用的或是启用的。

  61.根据条款56所述的方法,其中第二组合的模式标志的值对应于布尔值真或假,指示第二组合的调色板和帧内模式是禁用的或是启用的。

  62.根据条款56所述的方法,其中为视频块定义的信息包括预测模式,其中预测模式是与IBC模式、帧内模式或帧间模式分别对应的MODE_IBC、MODE_INTRA或MODE_INTER。

  63.根据条款58-61中的任一项或多项所述的方法,其中调色板标志的值和/或帧内块复制标志的值和/或第一组合的模式标志的值和/或第二组合的模式标志的值在与视频块的转换相关联的比特流表示中被信令通知。

  64.根据条款58-61中的任一项或多项所述的方法,其中计算或推断出调色板标志的值和/或帧内块复制标志的值和/或第一组合的模式标志的值和/或第二组合的模式标志的值。

  65.根据条款58-61中的任一项或多项所述的方法,其中在比特流表示中,在第一组合的模式标志和第二组合的模式标志的值以及帧内块复制标志的值之前信令通知调色板标志的值。

  66.根据条款58-61中的任一项或多项所述的方法,其中在比特流表示中,调色板标志的值、帧内块复制标志的值以及第一组合的模式标志和第二组合的模式标志的值按顺序信令通知。

  67.根据条款58-61中的任一项或多项所述的方法,其中与视频块相关联的第一标志和第二标志被包括在比特流表示中,其中第一标志指示第一组合的模式的使用且第二标志指示第二组合的模式的使用,并且其中第一标志从第二标志计算或推断出。

  68.根据条款58-61中的任一项或多项所述的方法,其中用第一指示来信令通知调色板模式的使用,并且用第二指示来信令通知第一组合的模式和/或第二组合的模式的使用。

  69.根据条款67所述的方法,其中包括在比特流表示中的第一标志和/或第二标志基于算术编码使用旁路编码的二进制码或上下文编码的二进制码来信令通知。

  70.根据条款69所述的方法,其中第一标志的上下文和/或第二标志的上下文基于视频块的一个或多个邻近块。

  71.根据条款69所述的方法,其中第一标志的上下文和/或第二标志的上下文基于与视频块的一个或多个邻近块相关联的编码信息。

  72.根据条款68-71中的任一项或多项所述的方法,其中视频块的一个或多个邻近块位于视频块的左侧和/或视频块的上方。

  73.根据条款72所述的方法,其中表示为ctxInc的视频块的上下文被计算为ctxInc=(cu_left_ibc_palette_mode?1:0)+(cu_above_ibc_palette_mode?1:0),其中cu_left_ibc_palette_mode和cu_above_ibc_pal分别是邻近左侧块和上方块的上下文。

  74.根据条款71所述的方法,其中表示为ctxInc的视频块的上下文被计算为ctxInc=(cu_left_ibc_palette_mode?1:0)*2+(cu_above_ibc_palette_mode?1:0),其中cu_left_ibc_palette_mode和cu_above_ib分别是邻近左侧块和上方块的上下文。

  75.根据条款69-73中的任一项或多项所述的方法,其中如果邻近块不可用,则将邻近块的上下文设置为默认值。

  76.根据条款75所述的方法,其中默认值为零。

  77.根据条款71所述的方法,其中第一标志的上下文和/或第二标志的上下文基于视频块的编码信息。

  78.根据条款77所述的方法,其中编码信息包括视频块的维度或与视频块相关联的分割过程。

  79.根据条款78所述的方法,其中与视频块相关联的分割过程包括以下各项中的一个:四叉树分割、二进制分割或三叉树分割。

  80.根据条款1-79中的任一项所述的方法,其中转换包括从当前视频块生成比特流表示。

  81.根据条款1-79中的任一项所述的方法,其中转换包括从比特流表示生成当前视频块的像素值。

  82.一种视频编码器装置,该视频编码器装置包括配置为实现根据条款1-79中的任一项或多项所述的方法的处理器。

  83.一种视频解码器装置,该视频解码器装置包括配置为实现根据条款1-79中的任一项或多项所述的方法的处理器。

  84.一种计算机可读介质,其上存储有代码,该代码实施处理器可执行指令,以实现条款1-79中的任一项或多项所述的方法。

  在本文件中,术语“视频处理”可以指代视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示到对应的比特流表示的转换期间应用视频压缩算法,反之亦然。如语法所定义,当前视频块的比特流表示可以例如对应于在比特流内的不同位置中共位的比特或分散的比特。例如,可以在变换的和编码的误差残差值方面并且还使用标头中的比特和比特流中的其他字段来编码宏块。此外,如上述解决方案中所描述的,在转换期间,解码器可以基于确定用可能出现或不出现某些字段的知识来解析比特流。相似地,编码器可以确定是否包括某些语法字段,并且相应地通过从编码表示中包括或排除语法字段来生成编码表示。

  本文件中描述的公开的和其他的解决方案、示例、实施例、模块和功能操作可以以数字电子电路实现,或者以计算机软件、固件或硬件实现,包括本文件中公开的结构及其结构等同物,或者以它们中的一个或多个的组合实现。公开的和其他的实施例可以实现为一个或多个计算机程序产品,即,在计算机可读介质上编码的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信令的物质组合、或者它们中的一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件以外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一个或多个的组合的代码。传播信令是人工生成的信令,例如机器生成的电信令、光信令或电磁信令,其被生成以对信息进行编码以便传输到合适的接收器装置。

  计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式来部署计算机程序,包括独立程序或适合在计算环境中使用的模块、分量、子例程或其他单元。计算机程序并不必需对应于文件系统中的文件。程序可以存储在文件的保存其他程序或数据(例如,存储在标记语言文件中的一个或多个脚本)的部分中,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。可以部署计算机程序以在一个计算机上或在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上执行。

  本文件中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

  举例来说,适合于执行计算机程序的处理器包括通用和专用微处理器、以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括或可操作地耦合到用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,以从该一个或多个大容量存储设备接收数据,或将数据传输到该一个或多个大容量存储设备,或者既接收又传输数据。然而,计算机不需要具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。

  虽然本文件包括许多细节,但这些细节不应被解释为对任何主题或可要求保护的范围的限制,而是作为特定于特定技术的特定实施例的特征的描述。在本文件中,在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求权利保护,但是在某些情况下,可以从所要求保护的组合中去除来自该组合的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变型。

  相似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为要求以所示的特定顺序或按顺序执行这样的操作,或者执行所有示出的操作,以实现期望的结果。此外,在本文件中描述的实施例中的各种系统分量的分离不应被理解为在所有实施例中都要求这种分离。

  仅描述了几个实现方式和示例,并且可以基于本文件中描述和示出的内容来做出其他实现方式、增强和变型。

《组合的屏幕内容编码模式.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)