CN114902684A - 控制视频编解码中的跨边界滤波 - Google Patents

控制视频编解码中的跨边界滤波 Download PDF

Info

Publication number
CN114902684A
CN114902684A CN202080090757.8A CN202080090757A CN114902684A CN 114902684 A CN114902684 A CN 114902684A CN 202080090757 A CN202080090757 A CN 202080090757A CN 114902684 A CN114902684 A CN 114902684A
Authority
CN
China
Prior art keywords
video
picture
sub
slice
filter
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202080090757.8A
Other languages
English (en)
Inventor
张莉
王业奎
张凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ByteDance Inc
Original Assignee
ByteDance Inc
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 ByteDance Inc filed Critical ByteDance Inc
Publication of CN114902684A publication Critical patent/CN114902684A/zh
Pending legal-status Critical Current

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/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/117Filters, e.g. for pre-processing or post-processing
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/174Methods 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 an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Abstract

描述了用于在视频编码和解码期间控制跨越边界的环路滤波过程的方法、装置和系统。一种示例方法包括执行包括包含子图片的视频区域的视频和视频的比特流之间的转换,其中,比特流符合格式规则,该格式规则规定是否在比特流中信令通知第一语法元素是基于子图片是否被视为图片,并且其中,第一语法元素与跨越与视频区域相关联的子图片边界的环路滤波过程的应用有关。

Description

控制视频编解码中的跨边界滤波
相关申请的交叉引用
根据适用的专利法和/或巴黎公约的规则,本申请及时要求于2019年12月27日提交的第62/954,393号美国临时专利申请的优先权和权益。出于法律上的所有目的,上述申请的全部公开内容通过引用并入作为本申请公开的一部分。
技术领域
本专利文档涉及图片编码和解码以及视频编码和解码。
背景技术
数字视频占据互联网和其它数字通信网络上的最大的带宽使用量。随着能够接收和显示视频的连接用户装置的数量的增加,预期数字视频使用的带宽需求将继续增长。
发明内容
本文档公开了可以由视频编码器和解码器使用以分别在视频编码和解码期间控制跨越边界的环路滤波过程的方法、技术和系统。
在一个示例方面,公开了一种视频处理方法。该方法包括:对于包括视频区域的视频和视频的比特流之间的转换,确定是否应用跨越与视频区域相关联的边界的环路滤波过程,并基于该确定执行转换,其中,比特流包括一个或多个语法元素,该一个或多个语法元素指示环路滤波过程是否适用于每个视频区域。
在另一个示例方面,公开了另一种视频处理方法。该方法包括:执行包括包含子图片的视频区域的视频和视频的比特流之间的转换,其中,比特流符合格式规则,该格式规则规定是否在比特流中信令通知第一语法元素是基于子图片是否被视为图片,并且其中,第一语法元素与跨越与视频区域相关联的子图片边界的环路滤波过程的应用有关。
在又一个示例方面中,公开了一种视频编码器设备。视频编码器包括配置为实现上面描述的方法的处理器。
在又一个示例方面中,公开了一种视频解码器设备。视频解码器包括配置为实现上面描述的方法的处理器。
在又一个示例方面中,公开了一种其上存储有代码的计算机可读介质。该代码以处理器可执行代码的形式体现了本文描述的方法之一。
在整个本文档中对这些和其它特征进行了描述。
附图说明
图1示出了使用亮度编解码树单元(CTU)分割图片的示例。
图2示出了使用亮度CTU分割图片的另一个示例。
图3示出了图片的示例分割。
图4示出了图片的另一个示例分割。
图5是示例编码器实现的框图。
图6是能够并行去方块的图片样点以及水平和垂直块边界的图示。
图7示出了滤波器开/关决策和滤波器选择中涉及的像素的示例。
图8示出了EO样点分类的四种一维(1-D)方向模式:水平(EO种类=0)、垂直(EO种类=1)、135°对角线(EO种类=2)和45°对角线(EO种类=3)。
图9示出了ALF滤波器形状的示例。
图10示出了亮度分量的环路滤波器线路缓冲器要求的示例。
图11示出了色度分量的环路滤波器线路缓冲器要求的示例。
图12示出了在虚拟边界处的修改后的块分类的示例。
图13示出了在虚拟边界处的亮度分量的修改的ALF滤波。
图14A-14C示出了在虚拟边界处的修改的亮度ALF滤波的示例。
图15示出了在图片/子图片/条带/片边界处的亮度ALF滤波的重复填充的示例。
图16示出了VVC中的水平环绕运动补偿的示例。
图17示出了3×2布局的HEC图片。
图18A-18B示出了CC-ALF相对于其它环路滤波器的布置。
图19是可以实施公开的技术的示例视频处理系统的框图。
图20是用于视频处理的示例硬件平台的框图。
图21是示出根据本公开的一些实施例的视频编解码系统的框图。
图22是示出根据本公开的一些实施例的编码器的框图。
图23是示出根据本公开的一些实施例的解码器的框图。
图24-25示出了视频处理的示例方法的流程图。
具体实施方式
在本文档中使用章节标题是为了便于理解,并且不限制每个章节中公开的技术和实施例的应用仅适用于该章节。此外,在一些描述中使用H.266术语只是为了便于理解,而不是为了限制所公开技术的范围。这样,本文所描述的技术也适用于其它视频编解码器协议和设计。
1.总结
本文档与视频编解码技术有关。具体来说,它是关于跨越图片区域边界的环路滤波的控制。它可以应用于支持单层视频编解码和多层视频编解码的任何视频编解码标准或非标准视频编解码器,例如,正在开发的多功能视频编解码(VVC)。
2.缩略语
ALF 自适应环路滤波器
APS 自适应参数集
AU 存取单元
AUD 存取单元分隔符
AVC 高级视频编解码
CLVS 编解码层视频序列
CPB 编解码图片缓冲器
CRA 清洁随机存取
CTU 编解码树单元
CVS 编解码视频序列
DPB 解码图片缓冲器
DPS 解码参数集
EOB 比特流结尾
EOS 序列结尾
GDR 逐步解码刷新
HEVC 高效视频编解码
IDR 即时解码刷新
JEM 联合探索模型
MCTS 运动约束片集
NAL 网络抽象层
OLS 输出层集合
PH 图片标头
PPS 图片参数集
PU 图片单元
RBSP 原始字节序列有效负载
SOA 样点自适应偏移
SEI 补充增强信息
SPS 序列参数集
VCL 视频编解码层
VPS 视频参数集
VTM VVC测试模型
VUI 视频可用性信息
VVC 多功能视频编解码
3.初步讨论
视频编解码标准主要是通过开发著名的ITU-T和ISO/IEC标准而发展起来的。ITU-T制定了H.261和H.263,ISO/IEC制定了MPEG-1和MPEG-4视觉,并且这两个组织联合制定了H.262/MPEG-2视频标准和H.264/MPEG-4高级视频编解码(Advanced Video Coding,AVC)标准以及H.265/HEVC标准。自H.262以来,视频编解码标准基于混合视频编解码结构,其中,使用了时域预测加上变换编解码。为了探索HEVC之外的未来视频编解码技术,VCEG和MPEG于2015年联合成立了联合视频探索小组(Joint Video Exploration Team,JVET)。此后,许多新方法被JVET采用,并被应用到名为联合探索模型(Joint Exploration Model,JEM)的参考软件中。目前,JVET会议每季度举办一次,并且新的编解码标准的目标是比HEVC降低50%的比特率。在2018年4月的JVET会议上,新的视频编解码标准被正式命名为多功能视频编解码(VVC),并且当时发布了VVC测试模型(VTM)的第一个版本。随着不断努力对VVC标准化做出贡献,每次JVET会议都会为VCC标准采用新的编解码技术。然后,在每次会议后更新VVC工作草案和测试模型VTM。VVC项目目前的目标是在2020年7月的会议上实现技术完成(FDIS)。
3.1.HEVC中的图片分割方案
HEVC包括四种不同的图片分割方案,即常规条带、依赖条带、片和波前并行处理(WPP),其可以应用于最大传输单元(MTU)尺寸匹配、并行处理和简化的端到端延迟。
常规条带与H.264/AVC中的条带类似。每个常规条带被封装在其自己的NAL单元中,并且禁用图片内预测(帧内样点预测、运动信息预测、编解码模式预测)和跨条带边界的熵编解码依赖性。因此,可以独立于相同图片内的其它常规条带重构常规条带(尽管由于环路滤波操作,仍然可能存在相互依赖性)。
常规条带是唯一可用于并行化的工具,它在H.264/AVC中也以几乎相同的形式提供。基于常规条带的并行化不需要太多处理器间通信或内核间通信(除了解码可预测编解码图片时用于运动补偿的处理器间数据共享或内核间数据共享,由于图片内预测,这通常比处理器间数据共享或内核间数据共享重得多)。然而,出于同样的原因,由于条带标头的比特成本以及由于缺乏跨条带边界的预测,使用常规条带可能会产生大量的编解码开销。此外,由于常规条带的图片内独立性,并且每个常规条带被封装在其自己的NAL单元中,因此常规条带(与下面提到的其它工具相比)也可以充当比特流分割的关键机制,以匹配MTU尺寸要求。在许多情况下,并行化的目标和MTU尺寸匹配的目标与图片中条带布局的要求相矛盾。这种情况的实现导致了下面提到的并行化工具的开发。
依赖条带具有短条带标头,并且在不破坏任何图片内预测的情况下,允许在树块边界处对比特流进行分割。基本上,依赖条带提供多个常规条带的片段到多个NAL单元,以通过允许在整个常规条带的编码完成之前发送常规条带的一部分来提供简化的端到端延迟。
在WPP中,图片被分割成单行的编解码树块(CTB)。允许熵解码和预测使用来自其它分区中的CTB的数据。并行处理可能通过并行解码CTB行来实现,其中CTB行的解码的开始被延迟两个CTB,以确保在主体CTB被解码之前,与主体CTB上方和右侧的CTB相关的数据可用。使用这种交错启动(当以图形方式表示时,它看起来像波前),可以使用最多与图片包含的CTB行一样多的处理器/内核进行并行化。因为允许在图片内的邻近树块行之间进行图片内预测,因此用于实现图片内预测的所需的处理器间通信/内核间通信可能是大量的。与未应用WPP分割相比,WPP分割不会导致附加的NAL单元的产生,因此WPP不是用于MTU尺寸匹配的工具。然而,如果需要MTU尺寸匹配,则常规条带可以与WPP一起使用,但具有一定的编解码开销。
片定义了将图片分割为片列和片行的水平边界和垂直边界。片列从图片顶部延伸到图片底部。同样,片行从图片的左侧延伸到图片的右侧。可以通过将片列的数量乘以片行的数量以简单地推导图片中的片的数量。
在按照图片的片光栅扫描顺序对下一个片的左侧顶部CTB进行解码之前,CTB的扫描顺序被更改为在片内是本地的(按照片的CTB光栅扫描的顺序)。与常规条带类似,片打破了图片内预测依赖性以及熵解码依赖性。然而,它们不需要被包括在单独的NAL单元中(在此方面与WPP相同);因此,片不可以用于MTU尺寸匹配。每个片可以由一个处理器/内核处理,并且解码相邻片的处理单元之间的图片内预测所需的处理器间通信/内核间通信限于在条带跨越多于一个片的情况下传送共享的条带标头,以及与重构样点和元数据的共享相关的环路滤波。当多于一个片或WPP片段被包括在条带中时,除条带中第一个外,在条带标头中信令通知条带中的每个片或WPP片段的入口点字节偏移量。
为简单起见,HEVC中已经规定了对四种不同的图片分割方案的应用的限制。对于HEVC中规定的大多数配置文件,给定的编解码视频序列不能同时包括片和波前。对于每个条带和片,必须满足以下任一或两个条件:1)条带中的所有编解码树块都属于同一个片;2)片中的所有编解码树块都属于同一个条带。最后,波前片段正好包含一个CTB行,并且当使用WPP时,如果条带从CTB行内开始,它必须在同一个CTB行中结束。
最近对HEVC的修订在JCT-VC输出文档(JCTVC-AC1005,J.Boyce,A.Ramasubramonian,R.Skupin,G.J.Sullivan,A.Tourapis,Y.-K.Wang(编辑),“HEVC附加补充增强信息(草案4)”,2017年10月24日,公开于此:http://phenix.int-evry.fr/jct/doc_end_user/documents/29_Macau/wg11/JCTVC-AC1005-v2.zip)中规定。包括此修订后,HEVC规定了三个与MCTS相关的SEI消息,即时域MCTS SEI消息、MCTS提取信息集SEI消息以及MCTS提取信息嵌套SEI消息。
时域MCTS SEI消息指示比特流中存在MCTS,并信令通知MCTS。对于每个MCTS,运动矢量被限制为指向MCTS内的全样点位置和指向分数样点位置,分数样点位置仅需要MCT内的全样点位置进行插值,并且不允许使用从MCTS之外的块推导的用于时域运动矢量预测的运动矢量候选。这样,在不存在不包括在MCTS中的片的情况下,可以独立地解码每个MCTS。
MCTS提取信息集SEI消息提供补充信息,该补充信息可以用于MCTS子比特流提取(规定为SEI消息的语义的一部分),以为MCTS集生成一致性比特流。该信息由多个提取信息集组成,每个提取信息集定义了多个MCTS集,并且包含要在MCTS子比特流提取过程期间使用的替换VPS、SPS和PPS的RBSP字节。当根据MCTS子比特流提取过程提取子比特流时,参数集(VPS、SPS和PPS)需要被重写或替换,条带标头需要被稍微更新,这是因为一个或所有与条带地址相关的语法元素(包括first_slice_segment_in_pic_flag和slice_segment_address)将通常需要具有不同的值。
3.2.VVC中的图片的分割
在VVC中,图片被划分成一个或多个片行以及一个或多个片列。片是覆盖图片的矩形区域的CTU序列。片中的CTU在该片内按光栅扫描顺序进行扫描。
条带由整数个完整片或图片的片内的整数个连续完整的CTU行组成。
支持两种条带模式,即光栅扫描条带模式和矩形条带模式。在光栅扫描条带模式下,条带包含在图片的片光栅扫描中的一系列完整的片。在矩形条带模式下,条带包含共同形成图片的矩形区域的多个完整的片,或者共同形成图片的矩形区域的一个片的多个连续完整的CTU行。矩形条带内的片在对应于该条带的矩形区域内以片光栅扫描顺序进行扫描。
子图片包含一个或多个条带,该一个或多个条带共同覆盖图片的矩形区域。
图1示出了图片的光栅扫描条带分割的示例,其中,图片被划分为12个片和3个光栅扫描条带。
图2示出了图片的矩形条带分割的示例,其中,图片被划分为24个片(6个片列和4个片行)以及9个矩形条带。
图3示出了被分割为片和矩形条带的图片的示例,其中,图片被划分为4个片(2个片列和2个片行)以及4个矩形条带。
图4示出了图片的子图片分割的示例,其中,图片被分割为18个片,该18个片包括左侧12个片(每个片覆盖4×4CTU的一个条带)和右侧6个片(每个片覆盖2×2CTU的2个垂直堆叠的条带),总共产生24个片和24个不同维度的子图片(每个条带都是子图片)。
3.3.VVC中的子图片、条带和片的信令通知
在最新的VVC草案文本中,子图片的信息,包括子图片的布局(即,每个图片的子图片的数量以及每个图片的位置和尺寸)和其它序列级子图片信息,在SPS中被信令通知。在SPS中信令通知的子图片的顺序定义了子图片索引。例如,在SPS或PPS中,可以明确地信令通知子图片ID的列表(每个子图片具有一个子图片ID)。
VVC中的片在概念上与HEVC中的片相同,即,每个图片被分割为片列和片行,但PPS中用于片的信令通知的语法不同。
在VVC中,在PPS中也信令通知条带模式。当条带模式为矩形条带模式时,PPS中信令通知每个图片的条带布局(即,每个图片的条带的数量以及每个条带的位置和尺寸)。PPS中信令通知的图片内的矩形条带的顺序定义了图片级条带索引。子图片级条带索引被定义为在子图片内的条带在其图片级条带索引的递增顺序中的顺序。基于SPS中信令通知的子图片位置和尺寸(当每个子图片仅包含一个条带时)或PPS中信令通知的片位置和尺寸(当子图片可能包含多于一个条带时),矩形条带的位置和尺寸被信令通知/推导。当条带模式为光栅扫描条带模式时,与HEVC中类似,在条带本身中以不同的细节信令通知图片内的条带的布局。
3.4.VVC中的环路滤波
图5示出了VVC的编码器框图的示例,其包含了三个环路滤波块:去方块滤波器(DF)、样点自适应偏移(SAO)和ALF。与使用预定义滤波器的DF不同,SAO和ALF利用当前图片的原始样点以分别通过添加偏移量和应用有限脉冲响应(FIR)滤波器来减少原始样点和重构样点之间的均方误差,编解码的边信息信令通知偏移量和滤波器系数。ALF位于每个图片的最后一个处理阶段,并且可以被视为试图捕捉和修复前一阶段创建的工件的工具。
3.5.去方块滤波器(DB)
DB的输入是环路滤波器之前的重构样点。
首先对图片中的垂直边缘进行滤波。然后用垂直边缘滤波过程修改的样点作为输入,对图片中的水平边缘进行滤波。在编解码单元的基础上分别处理每个CTU的CTB中的垂直边缘和水平边缘。从编解码块的左侧的边缘开始,以它们的几何顺序穿过边缘,朝向编解码块的右侧,对编解码单元中的编解码块的垂直边缘进行滤波。从编解码块的顶部的边缘开始,以它们的几何顺序穿过边缘,朝向编解码块的底部,对编解码单元中的编解码块的水平边缘进行滤波。
图6是8×8网格上的图片样点、水平块边界和垂直块边界以及8×8样点的非重叠块(可以被并行去方块)的图示。
3.5.1.边界决策
在HEVC中,滤波被应用于8×8块边界,如图6所示。然而,在VVC中,使用更精细的滤波,其中,滤波4×4块边界。此外,它必须是变换块边界或编解码子块边界(例如,由于使用仿射运动预测,ATMVP)。对于那些不属于这样的边界,滤波器被禁用。
3.5.2.边界强度计算
对于变换块边界/编解码子块边界,如果其位于8×8网格中,则可以对其进行滤波,并且此边缘的bS[xDi][yDj](其中,[xDi][yDj]表示坐标)的设置分别在表3-1和表3-2中进行定义。
表3-1边界强度(当禁用SPS IBC时)
Figure BDA0003715949590000091
表3-2边界强度(当启用SPS IBC时)
Figure BDA0003715949590000101
3.5.3.亮度分量的去方块决策
本子章节中描述了去方块决策过程。
图7示出了滤波器开/关决策和强/弱滤波器选择中涉及的像素的示例。
仅当所有条件1、条件2和条件3均为真时,才使用更宽更强的亮度滤波器。
条件1是“大块条件”。此条件检测P边和Q边的样点是否属于大块,大块分别由变量bSidePisLargeBlk和bSideQisLargeBlk表示。bSidePisLargeBlk和bSideQisLargeBlk按照如下方式进行定义。
bSidePisLargeBlk=((边缘类型为垂直并且p0属于宽度>=32的CU)||(边缘类型为水平并且p0属于高度>=32的CU))?真:假
bSideQisLargeBlk=((边缘类型为垂直并且q0属于宽度>=32的CU)||(边缘类型为水平并且q0属于高度>=32的CU))?真:假
基于bSidePisLargeBlk和bSideQisLargeBlk,条件1按照如下方式进行定义。
条件1=(bSidePisLargeBlk||bSidePisLargeBlk)?真:假
接下来,如果条件1为真,将进一步检查条件2。首先,推导以下变量:
-首先如在HEVC中推导dp0、dp3、dq0、dq3
-如果(p边大于或等于32)
dp0=(dp0+Abs(p50-2*p40+p30)+1)>>1
dp3=(dp3+Abs(p53-2*p43+p33)+1)>>1
-如果(q边大于或等于32)
dq0=(dq0+Abs(q50-2*q40+q30)+1)>>1
dq3=(dq3+Abs(q53-2*q43+q33)+1)>>1
条件2=(d<β)?真:假
其中d=dp0+dq0+dp3+dq3。
如果条件1和条件2有效,进一步检查是否任一个块使用子块:
Figure BDA0003715949590000111
最后,如果条件1和条件2都有效,所提出的去方块方法将检查条件3(大块强滤波条件),其被定义如下。
在条件3StrongFilterCondition中,推导以下变量:
如在HEVC中,推导dpq。
sp3=Abs(p3-p0),如在HEVC中进行推导的
如果(p边大于或等于32)
Figure BDA0003715949590000121
sq3=Abs(q0-q3),如在HEVC中进行推导的
如果(q边大于或等于32)
Figure BDA0003715949590000122
如在HEVC中,StrongFilterCondition=(dpq小于(β>>2),(sp3+sq3)小于(3*β>>5),并且Abs(p0-q0)小于(5*tc+1)>>1)?真:假。
3.5.4.针对亮度的更强去方块滤波器(为更大的块设计)
当边界的任意一侧的样点属于大块时,使用双线性滤波器。属于大块的样点被定义为垂直边缘的宽度>=32并且水平边缘的高度>=32。
下面列出了双线性滤波器。
然后,在上述HEVC去方块中,通过线性插值替换块边界样点pi(i=0到Sp-1)和qj(j=0到Sq-1)(pi和qi是用于对垂直边缘进行滤波的行内的第i个样点,或者用于对水平边缘进行滤波的列内的第i个样点),如下所示:
pi′=(fi*Middles,t+(64-fi)*Ps+32)>>6),clipped to pi±tcPDi
qj′=(gj*Middles,t+(64-gj)*Qs+32)>>6),clipped to qj±tcPDj
其中,tcPDi和tcPDj项是第3.5.7节中描述的位置相关限幅,并且下文给出了gj、fj、Middles,t、Ps和Qs
3.5.5.针对色度的去方块控制
色度强滤波器用于块边界的两边。这里,当色度边缘的两边大于或等于8(色度位置)时,选择色度滤波器,并且满足以下具有三个条件的决策:第一个用于边界强度以及大块的决策。在色度样点域中,当正交穿过块边缘的块宽度或块高度等于或大于8时,可以应用所提出的滤波器。第二个和第三个与HEVC亮度去方块决策基本上相同,分别是开/关决策和强滤波器决策。
在第一个决策中,针对色度滤波,修改了边界强度(bS),并依次检查条件。如果满足了条件,则跳过优先级较低的剩余条件。
当bS等于2时执行色度去方块,或当检测到大块边界时,bS等于1。
第二条件和第三个条件与HEVC亮度强滤波决策基本上相同,如下所示。
在第二个条件中:
则如在HEVC亮度去方块中一样推导d。
当d小于β时,第二个条件将为真。
在第三个条件中,StrongFilterCondition按照如下方式进行推导:
如在HEVC中一样推导dpq。
sp3=Abs(p3-p0),如在HEVC中所推导的
sq3=Abs(q0-q3),如在HEVC中所推导的
如在HEVC设计中,StrongFilterCondition=(dpq小于(β>>2),(sp3+sq3)小于(β>>3),并且Abs(p0-q0)小于(5*tc+1)>>1)
3.5.6.用于色度的强去方块滤波器
定义了用于色度的以下强去方块滤波器:
p2′=(3*p3+2*p2+p1+p0+q0+4)>>3
p1′=(2*p3+p2+2*p1+p0+q0+q1+4)>>3
p0′=(p3+p2+p1+2*p0+q0+q1+q2+4)>>3
所提出的色度滤波器在4×4色度样点网格上执行去方块。
3.5.7.位置相关限幅
位置相关限幅tcPD被应用于亮度滤波过程的输出样点,该亮度滤波过程涉及在边界处修改7、5和3个样点的强和长滤波器。假设量化误差分布,建议增加预期具有更高量化噪声的样点的限幅值,因此预期重构样点值与真实样点值的偏差更大。
对于使用非对称滤波器滤波的每个P或Q边界,取决于第3.5.2节中的决策过程的结果,从两个表(即,下表列出的Tc7和Tc3)中选择位置相关阈值表,这两个表作为边信息提供给解码器:
Tc7={6,5,4,3,2,1,1};Tc3={6,4,2};
tcPD=(Sp==3)?Tc3:Tc7;
tcQD=(Sq==3)?Tc3:Tc7;
对于使用短对称滤波器滤波的P或Q边界,应用较低幅度的位置相关阈值:
Tc3={3,2,1};
定义阈值后,根据tcP和tcQ限幅值对滤波后的p'i和q'i样点值进行限幅:
p”i=Clip3(p'i+tcPi,p'i–tcPi,p'i);
q”j=Clip3(q'j+tcQj,q'j–tcQj,q'j);
其中,p'i和q'i是滤波后的样点值,p”i和q”j是限幅后的输出样点值,并且tcPi和tcQj是从VVC tc参数以及tcPD和tcQD推导的限幅阈值。函数Clip3是VVC中指定的限幅函数。
3.5.8.子块去方块调整
为了使用长滤波器和子块去方块来实现并行友好的去方块,长滤波器被限制在使用子块去方块(AFFINE或ATMVP或DMVR)的一侧修改最多5个样点,如长滤波器的亮度控制中所示的。另外,调整子块去方块,使得8×8网格上靠近CU或隐式TU边界的子块边界被限制为在每侧最多修改两个样点。
以下内容适用于未与CU边界对齐的子块边界。
Figure BDA0003715949590000141
其中等于0的边缘对应于CU边界,等于2或等于正交长度-2的边缘对应于来自CU边界等的子块边界8个样点。如果使用TU的隐式划分,则隐式TU为真。
3.6.样点自适应偏移(SAO)
SAO的输入是DB之后的重构样点。SAO的构思是通过首先使用所选的分类器将区域样点分类到多个类别中,获得每个类别的偏移量,然后将偏移量添加到类别的每个样点,从而减少区域的平均样点失真,其中,分类器索引和区域的偏移量被编解码在比特流中。在HEVC和VVC中,区域(SAO参数信令通知的单元)被定义为CTU。
在HEVC中采用了能够满足低复杂度要求的两种SAO类型。这两种类型是边缘偏移(EO)和频带偏移(BO),边缘偏移(EO)和频带偏移(BO)将在下文进一步详细讨论。SAO类型的索引被编解码(在[0,2]的范围内)。对于EO,样点分类基于根据1-D(一维)方向模型(水平、垂直、135°对角线和45°对角线)的当前样点和邻近样点之间的比较。
图8示出了EO样点分类的四种1-D方向模式:水平(EO种类=0)、垂直(EO种类=1)、135°对角线(EO种类=2)和45°对角线(EO种类=3)。
对于给定的EO种类,CTB内的每个样点被分类到五个类别中。将标记为“c”的当前样点值与其沿所选的1-D模式的两个邻近样点(被标记为“a”和“b”)进行比较。表3-3中总结了每个样点的分类规则。类别1和类别4分别与沿所选的1-D模式的局部谷和局部峰相关联。类别2和类别3分别与沿所选的1-D模式的凹角和凸角相关联。如果当前样点不属于EO类别1-4,则其为类别0,并且不应用SAO。
表3-3边缘偏移的样点分类规则
类别 条件
1 c<a and c<b
2 (c<a&&c==b)||(c==a&&c<b)
3 (c>a&&c==b)||(c==a&&c>b)
4 c>a&&c>b
5 以上都不是
3.7.自适应环路滤波器(ALF)
在VVC中,应用了具有基于块的滤波器自适应的自适应环路滤波器(ALF)。对于亮度分量,基于局部梯度的方向和活动,为每个4×4块选择25个滤波器中的一个。
3.7.1滤波器形状
使用两种菱形滤波器形状(如图9所示)。7×7菱形应用于亮度分量,5×5菱形应用于色度分量。
图9示出了ALF滤波器形状(色度:5×5菱形,亮度:7×7菱形)的示例。
3.7.2块分类
对于亮度分量,每个4×4块被分类为25个种类中的一个。分类索引C是基于其方向性D和活动
Figure BDA0003715949590000161
的量化值推导的,如下所示:
Figure BDA0003715949590000162
为了计算D和
Figure BDA0003715949590000163
首先使用1-D拉普拉斯算子计算水平方向、垂直方向和两个对角线方向的梯度:
Figure BDA0003715949590000164
Figure BDA0003715949590000165
Figure BDA0003715949590000166
Figure BDA0003715949590000167
其中,索引i和j是指4×4块内的左上样点的坐标,并且R(i,j)表示坐标(i,j)处的重构样点。
然后水平方向和垂直方向的梯度的最大值和最小值被设置为:
Figure BDA0003715949590000168
两个对角线方向的梯度的最大值和最小值被设置为:
Figure BDA0003715949590000169
为了推导方向性D的值,将这些值相互比较,并与两个阈值t1和t2进行比较:
步骤1.如果
Figure BDA00037159495900001610
Figure BDA00037159495900001611
均为真,则D被设置为0。
步骤2.如果
Figure BDA00037159495900001612
则从步骤3继续;否则从步骤4继续。
步骤3.如果
Figure BDA0003715949590000171
则D被设置为2;否则D被设置为1。
步骤4.如果
Figure BDA0003715949590000172
则D被设置为4;否则D被设置为3。
活动值A计算如下:
Figure BDA0003715949590000173
A被进一步量化到0到4的范围(包含0和4),并且量化值被表示为
Figure BDA0003715949590000174
对于图片中的色度分量,不应用任何分类方法,即,对每个色度分量应用单个ALF系数集合。
3.7.3.滤波器系数和限幅值的几何变换
在对每个4×4亮度块进行滤波之前,取决于为该块计算的梯度值,几何变换(例如旋转或对角线和垂直翻转)被应用于滤波器系数f(k,l)和对应的滤波器限幅值c(k,l)。这相当于将这些变换应用到滤波器支持区域中的样点。该想法是通过对齐其方向性,使得ALF应用到的不同块更相似。
介绍了三种几何变换,包括对角线变换、垂直翻转变换和旋转变换:
对角线:fD(k,l)=f(l,k),cD(k,l)=c(l,k), (2-9)
垂直翻转:fV(k,l)=f(k,K-l-1),cV(k,l)=c(k,K-l-1) (2-10)
旋转:fR(k,l)=f(K-l-1,k),cR(k,l)=c(K-l-1,k) (2-11)
其中,K是滤波器的尺寸,并且0≤k,l≤K-1是系数坐标,使得位置(0,0)位于左上角,并且位置(K-1,K-1)位于右下角。取决于为该块计算的梯度值,变换被应用于滤波器系数f(k,l)和限幅值c(k,l)。下表中总结了变换与四个方向的四个梯度之间的关系。
表3-4为一个块计算的梯度以及变换之间的映射
梯度值 变换
g<sub>d2</sub>&lt;g<sub>d1</sub>并且g<sub>h</sub>&lt;g<sub>v</sub> 没有变换
g<sub>d2</sub>&lt;g<sub>d1</sub>并且g<sub>v</sub>&lt;g<sub>h</sub> 对角
g<sub>d1</sub>&lt;g<sub>d2</sub>并且g<sub>h</sub>&lt;g<sub>v</sub> 垂直翻转
g<sub>d1</sub>&lt;g<sub>d2</sub>并且g<sub>v</sub>&lt;g<sub>h</sub> 旋转
3.7.4.滤波器参数信令通知
在自适应参数集(APS)中信令通知ALF滤波器参数。在一个APS中,可以信令通知最多25组亮度滤波器系数和限幅值索引,以及最多八组色度滤波器系数和限幅值索引。为了减少比特开销,可以合并亮度分量的不同分类的滤波器系数。在条带标头中,信令通知用于当前条带的APS的索引。
从APS解码的限幅值索引允许使用亮度分量和色度分量的限幅值的表来确定限幅值。这些限幅值取决于内部位深度。更准确地说,限幅值通过以下公式获得:
AlfClip={round(2B-α*n)for n∈[0..N-1]} (2-12)
在B等于内部位深度的情况下,α是等于2.35的预定义的常量值,并且N等于4,这是VVC中允许的限幅值的数量。
在条带标头中,可以信令通知最多7个APS索引,以规定用于当前条带的亮度滤波器集。滤波过程可以被进一步控制在CTB级别。始终信令通知一个标志以指示ALF是否被应用于亮度CTB。亮度CTB可以在16个固定滤波器集以及来自APS的滤波器集之中选择一个滤波器集。为亮度CTB信令通知滤波器集索引,以指示应用哪个滤波器集。在编码器和解码器中预定义并硬编解码16个固定滤波器集。
对于色度分量,在条带标头中信令通知APS索引,以指示用于当前条带的色度滤波器集。在CTB级别,如果在APS中存在多于一个色度滤波器集,则为每个色度CTB信令通知滤波器索引。
滤波器系数以等于128的范数进行量化。为了限制乘法复杂度,应用比特流一致性,使得非中心位置的系数值应当在-27至27-1(包括-27和27-1)的范围内。中心位置系数在比特流中不被信令通知,并且被认为等于128。
3.7.5.滤波过程
在解码器侧,当为CTB启用ALF时,CU内的每个样点R(i,j)被滤波,产生如下所示的样点值R′(i,j),
R′(i,j)=R(i,j)+((∑k≠0l≠0f(k,l)×K(R(i+k,j+l)-R(i,j),c(k,l))+64)>>7) (2-13)
其中,f(k,l)表示解码的滤波器系数,K(x,y)表示限幅函数,并且c(k,l)表示解码的限幅参数。变量k和l在
Figure BDA0003715949590000181
Figure BDA0003715949590000182
之间变化,其中,L表示滤波器长度。限幅函数K(x,y)=min(y,max(-y,x))对应于函数Clip3(-y,y,x)。
3.7.6.减少线路缓冲器的虚拟边界滤波过程
在硬件和嵌入式软件中,基于图片的处理实际上是不可接受的,这是由于其高图片缓冲器要求。使用片上图片缓冲器非常昂贵,并且使用片外图片缓冲器会显著增加外部存储器访问、功耗和数据访问时延(延迟)。因此,在实际产品中,DF、SAO和ALF将从基于图片的解码变为基于LCU的解码。当基于LCU的处理用于DF、SAO和ALF时,整个解码过程可以采用LCU流水线方式并行处理多个LCU以在光栅扫描中逐LCU完成。在这种情况下,DF、SAO和ALF需要线路缓冲器,这是因为处理一个LCU行需要来自上述LCU行的像素。如果使用片外线路缓冲器(例如,DRAM),则将增加外部存储器带宽和功耗;如果使用片上线路缓冲器(例如,SRAM),芯片面积将会增加。因此,尽管线路缓冲器已经比图片缓冲器小得多,但仍然期望减少线性缓冲器。
在VTM-4.0中,如图10所示,亮度分量所需的线路缓冲器的总数目为11.25条线路。对线路缓冲器要求的解释如下:由于决策和滤波需要来自第一个CTU的线路K、L、M、N和来自底部CTU的线路O、P,因此无法执行与CTU边缘重叠的水平边缘的去方块。因此,与CTU边界重叠的水平边缘的去方块被推迟,直到较低的CTU出现。因此,对于线路K、L、M、N,重构的亮度样点必须被存储在线路缓冲器(4条线路)中。然后,可以对线路A到J执行SAO滤波。由于去方块不会改变线路K中的样点,因此可以对线路J进行SAO滤波。对于线路K的SAO滤波,边缘偏移分类决策仅被存储在线路缓冲器中(其为0.25亮度线路)。ALF滤波只能对线路A-F执行。如图10所示,对每个4×4块执行ALF分类。每个4×4块分类需要尺寸为8×8的活动窗口,而活动窗口又需要9×9的窗口来计算1d拉普拉斯算子以确定梯度。
因此,对于与线路G、H、I、J重叠的4×4块的块分类需要在虚拟边界下方的SAO滤波样点。此外,ALF分类需要线路D、E、F的SAO滤波样点。而且,线路G的ALF滤波需要从上述线路中选择三条SAO滤波线路D、E、F。因此,总的线路缓冲器要求如下:
–线路K-N(水平DF像素):4条线路
–线路D-J(SAO滤波的像素):7条线路
–线路J和线路K之间的SAO边缘偏移分类器值:0.25线路
因此,所需的亮度线路的总数目为7+4+0.25=11.25。
类似地,在图11中示出了色度分量的线路缓冲器要求。色度分量的线路缓冲器要求被评估为6.25条线路。
为了消除SAO和ALF的线路缓冲器要求,在最新的VVC中引入了虚拟边界(VB)的概念,以减少ALF的线路缓冲器要求。对水平CTU边界附近的样点采用了修改后的块分类和滤波。如图10所示,VB是向上移动N个像素的水平LCU边界。对于每个LCU,SAO和ALF可以在下方的LCU到来之前处理VB上方的像素,但是无法处理VB下方的像素直到下方的LCU到来,这是由DF引起的。考虑到硬件实现成本,所提出的VB和水平LCU边界之间的空间对于亮度分量(即,图10或图12中,N=4)被设置为四个像素,并且对于色度分量(即,N=2)被设置为两个像素。
图12示出了在虚拟边界处的修改后的块分类
修改后的块分类被应用于亮度分量,如图13所示。对于虚拟边界上方的4×4块的1D拉普拉斯梯度计算,仅使用虚拟边界上方的样点。类似地,对于虚拟边界下方的4×4块的1D拉普拉斯梯度计算,仅使用虚拟边界下方的样点。考虑到1D拉普拉斯梯度计算中使用的减少的样点数目,相应地对活动值A的量化进行缩放。
对于滤波过程,虚拟边界处的镜像(对称)填充操作用于亮度分量和色度分量二者。如图13所示,当被滤波的样点位于虚拟边界的下方时,位于虚拟边界上方的邻近样点被填充。同时,其他侧的对应样点也被对称地填充。
在另一个示例中,如果位于(i,j)的一个样点(例如,图14B中带虚线的P0A)被填充,则即使样点可用,位于(m,n)的共享相同的滤波系数的对应样点(例如,图14B中带虚线的P3B)也被填充,如图14A-14C所示。
图14A示出了VB上方/下方的1条所需线需要被填充(每侧)。
图14B示出了VB上方/下方的2条所需线需要被填充(每侧)。
图14C示出了VB上方/下方的3条所需线需要被填充(每侧)
与在水平CTU边界使用的镜像(对称)填充方法不同,当禁用跨边界滤波时,对条带、片和子图片边界应用重复(单侧)填充过程。重复(单侧)填充过程也被应用在图片边界。填充的样点用于分类过程和滤波过程。图15描绘了用于在图片/子图片/条带/片边界处进行亮度ALF滤波的重复填充方法的示例。
图15示出了用于在图片/子图片/条带/片边界处进行亮度ALF滤波的重复填充的示例。
3.8.360度视频编解码
VTM5中的水平环绕运动补偿是360特定编解码工具,该360特定编解码工具旨在提高等矩形(ERP)投影格式下的重构的360度视频的视觉质量。在常规的运动补偿中,当运动矢量是指参考图片的图片边界之外的样点时,通过从对应图片边界上的那些最邻近样点进行复制来应用重复填充以推导越界样点的值。对于360度视频,这种重复填充的方法不合适,并且可能会在重构的视口视频中产生称为“接缝伪像(seam artefacts)”的视觉伪像。因为360度视频是在球体上捕获的,并且本质上没有“边界”,所以在投影域中超出参考图片边界的参考样点始终可以从球形域中的邻近样点中获得。对于一般投影格式,可能很难在球形域中推导对应的邻近样点,这是因为它涉及2D到3D和3D到2D坐标转换,以及分数样点位置的样点插值。对于ERP投影格式的左边界和右边界,这个问题要简单得多,这是由于左图片边界外的球形邻域可以从右图片边界内的样点中获得,反之亦然。
图16示出了VVC中的水平环绕运动补偿的示例。
水平环绕运动补偿过程如图16所示。当参考块的一部分位于投影域中参考图片的左(或右)边界之外时,“边界外”部分不是重复填充,而是从位于参考图片内朝向投影域中的右(或左)边界的对应球形邻域中获取的。重复填充仅用于顶部和底部图片边界。如图16所示,水平环绕运动补偿可以与360度视频编解码中常用的非规范性填充方法相结合。在VVC中,这是通过信令通知高级语法元素以指示环绕偏移量(在填充之前,该偏移量应当被设置为ERP图片宽度)来实现的;此语法用于相应地调整水平环绕的位置。这种语法不受左右图片边界上特定填充量的影响,并且因此自然支持ERP图片的不对称填充,即,当左右填充不同时。当参考样点位于参考图片的左右边界之外时,水平环绕运动补偿为运动补偿提供了更有意义的信息。
对于由多个面构成的投影格式,无论使用何种紧凑的帧压缩排列,帧压缩图片中的两个或更多个相邻面之间都会出现不连续。例如,考虑到图17中描绘的3×2帧压缩配置,上半部分中的三个面在3D几何中是连续的,下半部分的三个面在3D几何中是连续的,但是帧压缩图片的上半部分和下半部分在3D几何中是不连续的。如果在该不连续处上执行环路滤波操作,则面接缝伪像可能会在重构的视频中变得可见。
为了减轻面接缝伪像,可以在帧压缩图片中的不连续处禁用环路滤波操作。提出了一种语法,该语法用于信令通知禁用环路滤波操作的垂直和/或水平虚拟边界。与使用两个片(每组连续面使用一个片)和禁用片间的环路滤波操作相比,所提出的信令方法更灵活,这是由于它不要求面尺寸是CTU尺寸的倍数。
图17示出了3×2布局的HEC图片
3.9.关于跨分量自适应环路滤波器的JVET-P0080
下面的图18A示出了CC-ALF相对于其它环路滤波器的布置。CC-ALF通过应用线性菱形滤波器进行操作。图18B为每个色度分量的亮度通道,表示为:
Figure BDA0003715949590000221
其中
(x,y)是正在细化的色度分量i位置
(xC,yC)是基于(x,y)的亮度位置
Si是对色度分量i的亮度的滤波器支持
ci(x0,y0)表示滤波器系数(2-14)
图18A示出了CC-ALF相对于其它环路滤波器的布置。(b)菱形滤波器。
亮度位置(xC,yC)是基于亮度平面和色度平面之间的空域缩放因子计算的,支持区域以该亮度位置(xC,yC)为中心。所有滤波器系数在APS中进行传输,并且具有8比特动态范围。可以在条带标头中引用APS。用于条带的每个色度分量的CC-ALF系数也被存储在对应于时域子层的缓冲器中。使用条带级标志来有利于这些时域子层滤波器系数集的重用。CC-ALF滤波器的应用受可变块尺寸(即,16×16、32×32、64×64、128×128)的控制并通过为每个样点块接收的上下文编解码标志进行信令通知。对于每个色度分量,在条带级别接收块尺寸以及CC-ALF启用标志。水平虚拟边界的边界填充利用了重复。对于剩余的边界,使用与常规ALF相同的填充类型。
3.10.VVC中的跨边界环路滤波的控制
在最新的VVC草案文本中,跨区域边界的环路滤波由以下语法元素或变量控制:
1)loop_filter_across_subpic_enabled_flag[i]:用于控制去方块、SAO和跨子图片边界的ALF,在SPS中被信令通知,每个子图片具有一个。
2)loop_filter_across_tiles_enabled_flag:用于控制去方块、SAO和跨片边界的ALF,在PPS中被信令通知,只有一个(因此适用于参考PPS的所有图片中的所有片)。
3)loop_filter_across_slices_enabled_flag:用于控制去方块、SAO和跨条带边界的ALF,在PPS中被信令通知,只有一个(因此适用于参考PPS的所有图片中的所有片)。
4)VirtualBoundariesDisabledFlag:用于控制去方块、SAO和跨指定的虚拟边界的ALF,基于SPS和PH中的信令进行推导(当SPS标志sps_virtual_boundaries_present_flag或图片标头标志ph_virtual_boundaries_present_flag等于1时,等于1)。
在最新的VVC草案文本中,对于任何特定的边界,只要上述标志之一指示关闭跨边界滤波,无论其它标志的值如何,都会关闭跨边界滤波。
4.由本文所描述的解决方案解决的技术问题的示例
用于控制跨区域边界的环路滤波的现有VVC设计具有以下问题:
1)用于控制跨区域边界的环路滤波的不同标志可能相互冲突。例如,编码器可能会选择开启跨一些独立编解码的子图片的边界的滤波,这是由于它发现,如果不这样,一起呈现的那些子图片具有非常恼人的伪像(伪影),当关闭跨那些子图片边界的滤波时,比在其它提取场景中的质量劣化要糟糕得多。然而,在这种情况下,如果由于某种原因,loop_filter_across_tiles_enabled_flag或loop_filter_across_slices_enabled_flag等于0,则跨子图片边界(这也是片边界或条带边界)的滤波无论如何都将被关闭。
2)引入VVC的子图片特征主要支持感兴趣区域和其它基于提取的用例。对于AVC,这样的用例通过使用条带或条带组来支持。对于HEVC,这些用例由条带和MCTS支持。因此,在AVC和HEVC中需要关闭跨条带边界滤波的能力。然而,在VVC中,这种需求已经消失了。
3)当子图片的subpic_treated_as_pic_flag[i]等于0时,运动补偿被约束用于对CLVS中跨所有图片的子图片进行编解码,因此它不是独立编解码的,也不是可提取的。在这种情况下,没有很好的理由让loop_filter_across_subpic_enabled_flag[i]等于0(即,关闭跨子图片的边界的环路滤波)。然而,这是当前设计所允许的。
5.示例实施例和解决方案
为了解决上述问题,公开了如下总结的方法。这些项目应当被视为解释一般概念的示例,而不应当以狭隘的方式进行解释。此外,这些项目可以被单独应用,也可以以任何方式组合应用。
1)为了解决第一问题和第二问题,移除了loop_filter_across_slices_enabled_flag,并将loop_filter_across_tiles_enabled_flag设置为针对子图片是特定的(即,为每个子图片信令通知一次),仍在PPS中进行信令通知,并且仅控制跨子图片内的片边界(不包括那些也是子图片的边界的片边界)的滤波是打开还是关闭。
a.可替代地,在SPS中信令通知子图片特定的loop_filter_across_tiles_enabled_flag。关闭跨片边界的滤波的主要(如果不是唯一)目的是用于减少并行编码中不同处理核之间的数据交换。这种目的通常将不会因图片而改变,因此,尽管出于负载平衡的目的在PPS中信令通知片布局是有意义的,但在SPS中信令通知loop_filter_across_tiles_enabled_flag是有意义的,特别是在该标志被设定为针对子图片是特定的之后。
i.可替代地,此外,在SPS中信令通知的子图片特定的loop_filter_across_tiles_enabled_flag可以以“if(subpics_present_flag)”为条件。
b.可替代地,保留loop_filter_across_slices_enabled_flag,并且loop_filter_across_tiles_enabled_flag和loop_filter_across_slices_enabled_flag都被设定为特定于子图片。
i.在项目1b的替代方案中,在SPS中而不是在PPS中信令通知特定于子图片的loop_filter_across_tiles_enabled_flag和loop_filter_across_slices_enabled_flag。
c.可替代地,限制loop_filter_across_slices_enabled_flag和loop_filter_across_tiles_enabled_flag应当具有相同的值。
i.可替代地,限制相同片中的子图片的loop_filter_across_slices_enabled_flag和loop_filter_across_tiles_enabled_flag应当具有相同的值。
d.可替代地,可以信令通知与相同片中的多个子图片之中的一个代表性子图片相关联的loop_filter_across_slices_enabled_flag和/或loop_filter_across_tiles_enabled_flag。
i.在一个示例中,代表性子图片可以是按照编码/解码顺序进行编码/解码的第一个子图片。
ii.可替代地,此外,可以推断与相同片中的其它子图片相关联的loop_filter_across_slices_enabled_flag和/或loop_filter_across_tiles_enabled_flag等于信令通知的值。
e.可替代地,对于不是子图片边界而是条带边界和片边界的边界,当loop_filter_across_slices_enabled_flag和loop_filter_across_tiles_enabled_flag具有不同的值时,以下内容适用:如果包含当前CTU的片与包含CTU的片相同或是其父集(超集)时,则该行为是通过使用loop_filter_across_tiles_enabled_flag确定的,同时忽略loop_filter_across_slices_enabled_flag。否则,该行为是通过使用loop_filter_across_slices_enabled_flag来确定,同时忽略loop_filter_across_tiles_enabled_flag。这意味着只使用包含当前CTU的相关联实体(条带或片)小于其它相关联实体的标志。
f.可替代地,对于作为子图片边界的边界,以下内容适用:
i.如果当前块的loop_filter_across_subpic_enabled_flag[i]等于0,则无论其它标志的值如何,跨边界的滤波都将关闭。
ii.否则(当前块的loop_filter_across_subpic_enabled_flag[i]等于1),以下内容适用:
1)如果loop_filter_across_tiles_enabled_flag等于1或loop_filter_across_slices_enabled_flag等于1,则打开跨边界的滤波。
2)否则,关闭跨边界的滤波。
g.可替代地,对于作为子图片边界的边界,无论该边界也是片边界还是虚拟边界,跨边界的滤波是打开还是关闭都完全由与当前块相关联的loop_filter_across_subpic_enabled_flag[i]确定,而与loop_filter_across_slices_enabled_flag、loop_filter_across_tiles_enabled_flag和VirtualBoundariesDisabledFlag的值无关。
h.可替代地,移除loop_filter_across_tiles_enabled_flag和loop_filter_across_slices_enabled_flag二者。
i.可替代地,在上述示例中,也是子图片的边界的那些片边界也被包括在由上述标志控制的片边界中。
i.可替代地,此外,一致性比特流应当满足相同片内的子图片的控制标志(例如,loop_filter_across_tiles_enabled_flag、loop_filter_across_slices_enabled_flag)应当具有相同的值。
j.在一个示例中,对于上述项目符号(包括项目符号1),仅当子subpic_treated_as_pic_flag[i]为真时,才可以应用它。
2)为了解决第三个问题,语法元素loop_filter_across_subpic_enabled_flag[i]的存在是以“if(subpic_treated_as_pic_flag[i])”为条件。
a.可替代地,此外,当loop_filter_across_subpic_enabled_flag[i]不存在时(即,当子图片不受运动约束,并且因此不可提取时),loop_filter_across_subpic_enabled_flag[i]的值被推断为等于1(即,允许跨子图片边界滤波)。
b.在替代方案中,语法元素loop_filter_across_subpic_enabled_flag[i]不以“if(subpic_treated_as_pic_flag[i])”为条件,但约束当subpic_treated_as_pic_flag[i]等于0时,loop_filter_across_subpic_enabled__flag[i]的值应当等于1。
3)在一个示例中,loop_filter_across_tiles_enabled_flag被设定为特定于片的(即,为每个片信令通知一次)。为第一个片信令通知的loop_filter_across_tiles_enabled_flag仅控制跨第一个片的边界的滤波行为。
4)在一个示例中,loop_filter_across_slices_enabled_flag被设定为特定于条带的(即,为每个条带信令通知一次)。为第一个条带信令通知的loop_filter_across_slices_enabled_flag仅控制跨第一个条带的边界的滤波行为。
5)在一个示例中,信令通知(例如在SPS或PPS或图片标头或条带标头中)如何控制跨由多种视频单元共享的边界的滤波行为。例如,边界可以既是子图片边界又是条带边界,或者它可以既是子图片边界又是片边界,或者它可以既是条带边界又是片边界。
a.在一个示例中,对于不同种类的共享边界,信令通知不同的控制消息(例如,标志)。例如,作为子图片边界和条带边界二者的第一边界,以及作为子图片边界和片边界二者的第二边界可以由不同的消息控制。
6)在上述示例中,滤波过程可以包括但不限于以下滤波方法的过程:
a.去方块滤波器
b.样点自适应偏移
c.自适应环路滤波器
d.跨分量自适应环路滤波器
e.双向滤波器
f.变换域滤波器(例如,Hadamard滤波器)
g.可替代地,此外,在一个示例中,所有允许的滤波方法可以用相同的语法元素(例如,
Figure BDA0003715949590000271
Figure BDA0003715949590000272
)来控制,以启用/禁用跨视频处理单元(例如,子图片、条带/片/砖块)的滤波。
6.实施例
Figure BDA0003715949590000273
6.1.第一实施例
7.3.2.3序列参数集RBSP语法
Figure BDA0003715949590000274
Figure BDA0003715949590000281
可替代地,以下内容可以应用:
7.3.2.3序列参数集RBSP语法
Figure BDA0003715949590000282
Figure BDA0003715949590000291
7.4.3.3序列参数集RBSP语义
...
subpics_present_flag等于1规定SPS RBSP语法中存在子图片参数。subpics_present_flag等于0规定SPS RBSP语法中不存在子图片参数。
注2-当比特流是子比特流提取过程的结果,并且仅包含子比特流提取过程的输入比特流的子图片的子集时,可能需要在SPS的RBSP中将subpics_present_flag的值设置为等于1。
sps_num_subpics_minus1加1规定子图片的数目。
sps_num_subpics_minus1应当在0到254之间。当不存在时,sps_num_subpics_minus1的值被推断为等于0。
subpic_ctu_top_left_x[i]规定以CtbSizeY为单位的第i个子图片的左侧顶部CTU的水平位置。语法元素的长度是Ceil(Log2(pic_width_max_in_luma_samples/CtbSizeY))比特。当不存在时,subpic_ctu_top_left_x[i]的值被推断为等于0。
subpic_ctu_top_left_y[i]规定以CtbSizeY为单位的第i个子图片的左侧顶部CTU的垂直位置。语法元素的长度是Ceil(Log2(pic_height_max_in_luma_samples/CtbSizeY))比特。当不存在时,subpic_ctu_top_left_y[i]的值被推断为等于0。
subpic_width_minus1[i]加1规定以CtbSizeY为单位的第i个子图片的宽度。语法元素的长度是Ceil(Log2(pic_width_max_in_luma_samples/CtbSizeY))比特。当不存在时,subpic_width_minus1[i]的值被推断为等于Ceil(pic_width_max_in_luma_samples/CtbSizeY)-1。
subpic_height_minus1[i]加1规定以CtbSizeY为单位的第i个子图片的高度。语法元素的长度是Ceil(Log2(pic_height_max_in_luma_samples/CtbSizeY))比特。当不存在时,subpic_height_minus1[i]的值被推断为等于Ceil(pic_height_max_in_luma_samples/CtbSizeY)-1。
subpic_treated_as_pic_flag[i]等于1规定CLVS中的每个编解码图片的第i个子图片在排除环路滤波操作的解码过程中被视为图片。subpic_treated_as_pic_flag[i]等于0规定CLVS中的每个编解码图片的第i个子图片在排除环路滤波操作的解码过程中不被视为图片。当不存在时,subpic_treated_as_pic_flag[i]的值被推断为等于0。
loop_filter_across_subpic_enabled_flag[i]等于1规定可以跨CLVS中每个编解码图片中的第i个子图片的边界执行环路滤波操作。loop_filter_across_subpic_enabled_flag[i]等于0规定不跨CLVS中每个编解码图片的第i个子图片的边界执行环路滤波操作。当不存在时,loop_filter_across_subpic_enabled_pic_flag[i]的值被推断为等于1。
以下约束适用于比特流一致性的要求:
-对于任何两个子图片subpicA和subpicB,当subpicA的子图片索引小于subpicB的子图片索引时,在解码顺序上,subPicA的任何编解码条带NAL单元应当先于subpicB的任何编解码条带NAL单元。
-子图片的形状应当使得每个子图片在解码时,应使其整个左边界和整个顶部边界由图片边界或先前解码的子图片的边界组成。
sps_subpic_id_present_flag等于1规定SPS中存在子图片ID映射。sps_subpic_id_present_flag等于0规定SPS中不存在子图片ID映射。
sps_subpic_id_signaling_present_flag等于1规定在SPS中信令通知子图片ID映射。sps_subpic_id_signalling_present_flag等于0规定在SPS中不信令通知子图片ID映射。当不存在时,sps_subpic_id_signalling_present_flag的值被推断为等于0。
sps_subpic_id_len_minus1加1规定用于表示语法元素sps_subpic_id[i]的位数。sps_subpic_id_len_minus1的值应当在0到15之间(包括0和15)。
sps_subpic_id[i]规定第i个子图片的子图片ID。sps_subpic_id[i]语法元素的长度为sps_subpic_id_len_minus1+1位。当不存在且sps_subpic_id_present_flag等于0时,对于0到sps_num_subpics_minus1(包括0和sps_num_subpics_minus1)范围内的每个i,sps_subpic_id[i]的值被推断为等于i。
Figure BDA0003715949590000311
...
7.3.2.4图片参数集RBSP语法
Figure BDA0003715949590000312
Figure BDA0003715949590000321
7.4.3.4图片参数集RBSP语义
pps_subpic_id_signalling_present_flag等于1规定在PPS中信令通知子图片ID映射。pps_subpic_id_signalling_present_flag等于0规定在PPS中不信令通知子图片ID映射。当sps_subpic_id_present_flag为0或sps_subpic_id_signalling_present_flag等于1时,pps_subpic_id_signalling_present_flag应当等于0。
pps_num_subpics_minus1加1规定参考PPS的编解码图片中的子图片的数目。
比特流一致性的要求是pps_num_subpic_minus1的值应当等于sps_num_subpics_minus1。
pps_subpic_id_len_minus1加1规定用于表示语法元素pps_subpic_id[i]的位数。pps_subpic_id_len_minus1的值应当在0到15的范围内(包括0和15)。
比特流一致性的要求是对于CLVS中的编解码图片所涉及的所有PPS,pps_subpic_id_len_minus1的值应当相同。
pps_subpic_id[i]规定第i个子图片的子图片ID。pps_subpic_id[i]语法元素的长度是pps_subpic_id_len_minus1+1位。
no_pic_partition_flag等于1规定没有图片分割应用于参考PPS的每个图片。no_pic_partition_flag等于0规定参考PPS的每个图片可以被分割成多于一个以上的片或条带。
比特流一致性的要求是对于CLVS内编解码图片所涉及的所有PPS,no_pic_partition_flag的值应当相同。
比特流一致性的要求是当sps_num_subpics_minus1+1的值大于1时,no_pic_partition_flag的值应当不等于1。
pps_log2_ctu_size_minus5加5规定每个CTU的亮度编解码树块尺寸。pps_log2_ctu_size_minus5应当等于sps_log2_ctu_size_minus5。
num_exp_tile_columns_minus1加1规定明确提供的片列宽度的数目。num_exp_tile_columns_minus1的值应当在0到PicWidthInCtbsY-1的范围(包括0和PicWidthInCtbsY-1)内。当no_pic_partition_flag等于1时,num_exp_tile_columns_minus1的值被推断为等于0。
num_exp_tile_rows_minus1加1规定明确提供的片行高度的数目。num_exp_tile_rows_minus1的值应当在0到PicHeightInCtbsY-1的范围(包括0和PicHeightInCtbsY-1)内。当no_pic_partition_flag等于1时,num_tile_rows_minus1的值被推断为等于0。
tile_column_width_minus1[i]加1规定以CTB为单位的第i个片列的宽度,i在0到num_exp_tile_columns_minus1-1的范围(包括0和num_exp_tile_columns_minus1-1)内。
tile_column_width_minus1[num_exp_tile_columns_minus1]用于推导索引大于或等于num_exp_tile_columns_minus1的片列的宽度,如第6.5.1节所规定的。当不存在时,tile_column_width_minus1[0]的值被推断为等于PicWidthInCtbsY-1。
tile_row_height_minus1[i]加1规定以CTB为单位的第i个片行的高度,i在0到num_exp_tile_rows_minus1-1的范围(包括0和num_exp_tile_rows_minus1-1)内。
tile_row_height_minus1[num_exp_tile_rows_minus1]用于推导索引大于或等于num_exp_tile_rows_minus1的片行的高度,如第6.5.1节所规定的。当不存在时,tile_row_height_minus1[0]的值被推断为等于PicHeightInCtbsY-1。
rect_slice_flag等于0规定每个条带内的片按照光栅扫描顺序,并且在PPS中不信令通知条带信息。rect_slice_flag等于1规定每个条带内的片覆盖图片的矩形区域,并且在PPS中信令通知条带信息。
当不存在时,rect_slice_flag被推断为等于1。当subpics_present_flag等于1时,rect_slice_flag的值应当等于1。
single_slice_per_subpic_flag等于1规定每个子图片由一个且只有一个矩形条带组成。single_slice_per_subpic_flag等于0规定每个子图片可以由一个或多个矩形条带组成。当subpics_present_flag等于0时,single_slice_per_subpic_flag应当等于0。当single_slice_per_subpic_flag等于1时,num_slices_in_pic_minus1被推断为等于sps_num_subpics_minus1。
num_slices_in_pic_minus1加1规定参考PPS的每个图片中的矩形条带的数目。num_slices_in_pic_minus1的值应当在0到MaxSlicesPerPicture-1的范围(包括0和MaxSlicesPerPicture-1)内,其中附录A中规定了MaxSlicesPerPicture。当no_pic_partition_flag等于1时,num_slices_in_pic_minus1的值被推断为等于0。
tile_idx_delta_present_flag等于0规定tile_idx_delta值不存在于PPS中,并且根据第6.5.1节中定义的过程,以光栅顺序规定参考PPS的图片中的所有矩形条带。tile_idx_delta_present_flag等于1规定tile_idx_delta值可能存在于PPS中,并且参考PPS的图片中的所有矩形条带都按照tile_idx_delta的值指示的顺序进行规定。
slice_width_in_tiles_minus1[i]加1规定以片列为单位的第i个矩形条带的宽度。slice_width_in_tiles_minus1[i]的值应当在0到NumTileColumns-1的范围(包括0和NumTileColumns-1)内。当不存在时,slice_width_in_tiles_minus1[i]的值根据第6.5.1节的规定推断。
slice_height_in_tiles_minus1[i]加1规定以片行为单位的第i个矩形条带的高度。slice_height_in_tiles_minus1[i]的值应当在0到NumTileRows-1的范围(包括0和NumTileRows-1)内。当不存在时,slice_height_in_tiles_minus1[i]的值根据第6.5.1节的规定推断。
num_slices_in_tile_minus1[i]加1规定对于第i个条带包含来自单个片的CTU行的子集的情况,当前片中的条带的数目。num_slices_in_tile_minus1[i]的值应当在0到RowHeight[tileY]-1的范围(包括0和RowHeight[tileY]-1)内,其中,tileY是包含第i个条带的片行索引。当不存在时,num_slices_in_tile_minus1[i]的值被推断为等于0。
slice_height_in_ctu_minus1[i]加1规定对于第i个条带包含来自单个片的CTU行的子集的情况,以CTU行为单位的第i个矩形条带的高度。slice_height_in_ctu_minus1[i]的值应当在0到RowHeight[tileY]-1的范围(包括0和RowHeight[tileY]-1)内,其中,tileY是包含第i个条带的片行索引。
tile_idx_delta[i]规定第i个矩形条带和第(i+1)个矩形条带之间的片索引的差异。tile_idx_delta[i]的值应当在(-NumTilesInPic+1)到(NumTilesInPic-1)的范围(包括(-NumTilesInPic+1)和(NumTilesInPic-1))内。当不存在时,tile_idx_delta[i]的值被推断为等于0。在所有其它情况下,tile_idx_delta[i]的值不应当等于0。
[[loop_filter_across_tiles_enabled_flag等于1规定可以跨参考PPS的图片中的片边界执行环路滤波操作。
loop_filter_across_tiles_enabled_flag等于0规定不跨参考PPS的图片中的片边界执行环路滤波操作。环路滤波操作包括去方块滤波器、样点自适应偏移滤波器和自适应环路滤波器操作。当不存在时,loop_filter_across_tiles_enabled_flag的值被推断为等于1。
loop_filter_across_slices_enabled_flag等于1规定可以跨参考PPS的图片中的条带边界执行环路滤波操作。
loop_filter_across_slice_enabled_flag等于0规定不跨参考PPS的图片中的条带边界执行环路滤波操作。环路滤波操作包括去方块滤波器、样点自适应偏移滤波器和自适应环路滤波器操作。当不存在时,loop_filter_across_slices_enabled_flag的值被推断为等于0。]]
8.8.3去方块滤波器过程
8.8.3.1概述
去方块滤波器过程被应用于图片的所有编解码子块边缘和变换块边缘,但以下类型的边缘除外:
-图片的边界处的边缘,
-与loop_filter_across_subpic_enabled_flag[SubPicIdx]等于0的子图片的边界重合的边缘,
-当VirtualBoundariesDisabledFlag等于1时,与图片的虚拟边界重合的边缘,
-与[[当]]loop_filter_across_tiles_enabled_flag
Figure BDA0003715949590000361
等于0的
Figure BDA0003715949590000362
Figure BDA0003715949590000363
的片边界重合的边缘,
-[[当loop_filter_across_slices_enabled_flag等于0时,与条带边界重合的边缘,]]
-与条带的上边界或左边界重合的边缘,其中slice_deblocking_filter_disabled_flag等于1,
-条带内的边缘,其中,slice_deblocking_filter_disabled_flag等于1,
-不与亮度分量的4×4样点网格边界对应的边缘,
-不与色度分量的8×8样点网格边界对应的边缘,
-亮度分量内的边缘,其边缘的两侧的intra_bdpcm_luma_flag等于1,
-色度分量内的边缘,其边缘的两侧的intra_bdpcm_chroma_flag等于1,
-不是相关联变换单元的边缘的色度子块的边缘。
8.8.3.2一个方向的去方块滤波器过程
对于在从firstCompIdx到lastCompIdx(包括firstCompIdx和lastCompIdx)范围内的颜色分量索引cIdx指示的编解码单元的每个颜色分量的每个编解码单元和每个编解码块,其中,编解码块宽度nCbW、编解码块高度nCbH和编解码块的左侧顶部样点的位置(xCb,yCb),当cIdx等于0,或者当cIdx不等于0且edgeType等于EDGE_VER且xCb%8等于0时,或者当cIdx不等于0且edgeType等于EDGE_HOR且yCb%8等于0时,按以下有序步骤对边缘进行滤波:
1.按照如下方式推导变量filterEdgeFlag:
-如果edgeType等于EDGE_VER且以下条件中的一个或多个为真,则filterEdgeFlag被设置为等于0:
-当前编解码块的左边界是图片的左边界。
-当前编解码块的左边界是子图片的左边界或右边界,且loop_filter_across_subpic_enabled_flag[SubPicIdx]等于0。
–当前编解码块的左边界是片的左边界,
Figure BDA0003715949590000371
并且loop_filter_across_tiles_enabled_flag
Figure BDA0003715949590000372
等于0。
–[[当前编解码块的左边界是条带的左边界并且loop_filter_across_slices_enabled_flag等于0。]]
–当前编解码块的左边界是图片的垂直虚拟边界之一,并且VirtualBoundariesDisabledFlag等于1。
–否则,如果edgeType等于EDGE_HOR,且以下条件中的一个或多个为真,则变量filterEdgeFlag被设置为等于0:
–当前亮度编解码块的顶部边界是图片的顶部边界。
–当前编解码块的顶部边界是子图片的顶部边界或底部边界,且loop_filter_across_subpic_enabled_flag[SubPicIdx]等于0。
–当前编解码块的顶部边界是片的顶部边界,
Figure BDA0003715949590000373
并且loop_filter_across_tiles_enabled_flag
Figure BDA0003715949590000374
等于0。
–[[当前编解码块的顶部边界是条带的顶部边界并且loop_filter_across_slices_enabled_flag等于0。]]
–当前编解码块的顶部边界是图片的水平虚拟边界之一,并且VirtualBoundariesDisabledFlag等于1。
–否则,filterEdgeFlag被设置为等于1。
2....
...
8.8.4样点自适应偏移过程
8.8.4.2 CTB修改过程
...
对于所有样点位置(xSi,ySj)和(xYi,yYj),其中,i=0..nCtbSw-1并且j=0..nCtbSh-1。以下内容适用:
–如果以下条件中的一个或多个为真,则不修改saoPicture[xSi][ySj]:
–SaoTypeIdx[cIdx][rx][ry]等于0。
–对于任何n=0..VirtualBoundariesNumVer-1,VirtualBoundariesDisabledFlag等于1并且xSj等于((VirtualBoundariesPosX[n]/scaleWidth)-1),以及SaoTypeIdx[cIdx][rx][ry]等于2且SaoEoClass[cIdx][rx][ry]不等于1。
–对于任何n=0..VirtualBoundariesNumVer-1,VirtualBoundariesDisabledFlag等于1并且xSj等于(VirtualBoundariesPosX[n]/scaleWidth),以及SaoTypeIdx[cIdx][rx][ry]等于2且SaoEoClass[cIdx][rx][ry]不等于1。
–对于任何n=0..VirtualBoundariesNumHor-1,VirtualBoundariesDisabledFlag等于1并且ySj等于((VirtualBoundariesPosY[n]/scaleHeight)-1),以及SaoTypeIdx[cIdx][rx][ry]等于2且SaoEoClass[cIdx][rx][ry]不等于0。
–对于任何n=0..VirtualBoundariesNumHor-1,VirtualBoundariesDisabledFlag等于1并且ySj等于(VirtualBoundariesPosY[n]/scaleHeight),以及SaoTypeIdx[cIdx][rx][ry]等于2且SaoEoClass[cIdx][rx][ry]不等于0。
–否则,如果SaoTypeIdx[cIdx][rx][ry]等于2,则以下有序步骤适用:
1.基于SaoEoClass[cIdx][rx][ry]在表格42中规定了hPos[k]和vPos[k](对于k=0..1)的值。
2.按照如下方式推导变量edgeIdx:
–按照如下方式推导修改后的样点位置(xSik',ySjk')和(xYik',yYjk'):
(xSik',ySjk')=(xSi+hPos[k],ySj+vPos[k]) (1404)
(xYik',yYjk')=(cIdx==0)?(xSik',ySjk'):(xSik'*SubWidthC,ySjk'*SubHeightC) (1405)
–对于所有样点位置(xSik',ySjk')和(xYik',yYjk')(其中k=0..1),如果以下条件中的一个或多个为真,则edgeIdx被设置为等于0:
–位置(xSik',ySjk')处的样点位于图片边界之外。
–位置(xSik',ySjk')处的样点属于不同的子图片,并且样点recPicture[xSi][ySj]所属的子图片的loop_filter_across_subpic_enabled_flag[SubPicIdx]等于0。
–[[loop_filter_across_slices_enabled_flag等于0,并且位置(xSik',ySjk')处的样点属于不同的条带。]]
–loop_filter_across_tiles_enabled_flag
Figure BDA0003715949590000391
等于0,并且位置(xSik',ySjk')处的样点属于
Figure BDA0003715949590000392
的不同片。
–否则,按照如下方式推导edgeIdx:
–以下内容适用:
edgeIdx=2+Sign(recPicture[xSi][ySj]-recPicture[xSi+hPos[0]][ySj+vPos[0]])+
Sign(recPicture[xSi][ySj]-recPicture[xSi+hPos[1]][ySj+vPos[1]])(1406)
–当edgeIdx等于0、1或2,按照如下方式修改edgeIdx:
edgeIdx=(edgeIdx==2)?0:(edgeIdx+1) (1407)
3.按照如下方式推导修改后的图片样点数组saoPicture[xSi][ySj]:
saoPicture[xSi][ySj]=Clip3(0,(1<<BitDepth)-1,recPicture[xSi][ySj]+SaoOffsetVal[cIdx][rx][ry][edgeIdx]) (1408)
...
8.8.5自适应环路滤波器过程
8.8.5.5 ALF边界位置推导过程
...
按照如下方式修改变量clipTopPos:
–如果y-(CtbSizeY-4)大于或等于0,则变量clipTopPos被设置为等于yCtb+CtbSizeY-4。
–否则,如果VirtualBoundariesDisabledFlag等于1,以及yCtb+y-VirtualBoundariesPosY[n]大于或等于0且小于3(对于任何n=0..VirtualBoundariesNumHor-1),以下内容适用:
cliptopopos=VirtualBoundariesPosY[n] (1468)
–否则,如果y小于3且以下条件中的一个或多个为真,则变量clipTopPos被设置为等于yCtb:
-当前编解码树块的顶部边界是片的顶部边界,
Figure BDA0003715949590000401
并且loop_filter_across_tiles_enabled_flag
Figure BDA0003715949590000402
等于0。
-[[当前编解码树块的顶部边界是条带的顶部边界,并且loop_filter_across_slices_enabled_flag等于0。]]
-当前编解码树块的顶部边界是子图片的顶部边界,并且loop_filter_across_subpic_enabled_flag[SubPicIdx]等于0。
变量clipBottomPos被修改如下:
-如果VirtualBoundariesDisabledFlag等于1,VirtualBoundariesPosY[n]不等于pic_height_in_luma_samples-1或0,以及VirtualBoundariesPosY[n]-yCtb-y大于0且小于5(对于任何n=0..VirtualBoundariesNumHor-1),则以下内容适用:
clipBottomPos=VirtualBoundariesPosY[n] (1469)
-否则,如果CtbSizeY-4-y大于0且小于5,则变量clipBottomPos被设置为等于yCtb+CtbSizeY-4。
-否则,如果CtbSizeY-y小于5,并且以下条件中的一个或多个为真,则变量clipBottomPos被设置为等于yCtb+CtbSizeY:
-当前编解码树块的底部边界是片的底部边界,
Figure BDA0003715949590000403
并且loop_filter_across_tiles_enabled_flag
Figure BDA0003715949590000404
等于0。
-[[当前编解码树块的底部边界是条带的底部边界,并且loop_filter_across_slices_enabled_flag等于0。]]
-当前编解码树块的底部边界是子图片的底部边界,并且loop_filter_across_subpic_enabled_flag[SubPicIdx]等于0。
变量clipLeftPos被修改如下:
-如果VirtualBoundariesDisabledFlag等于1,并且xCtb+x-VirtualBoundariesPosX[n]大于或等于0且小于3(对于任何n=0..VirtualBoundariesNumVer-1),以下内容适用:
clipLeftPos=VirtualBoundariesPosX[n] (1470)
-否则,如果x小于3,并且以下条件中的一个或多个为真,则变量clipLeftPos被设置为等于xCtb:
-当前编解码树块的左边界是片的左边界,
Figure BDA0003715949590000411
并且loop_filter_across_tiles_enabled_flag
Figure BDA0003715949590000412
等于0。
-[[当前编解码树块的左边界是条带的左边界,并且loop_filter_across_slices_enabled_flag等于0。]]
-当前编解码树块的左边界是子图片的左边界,并且loop_filter_across_subpic_enabled_flag[SubPicIdx]等于0。
变量clipRightPos被修改如下:
-如果VirtualBoundariesDisabledFlag等于1,并且VirtualBoundariesPosX[n]-xCtb-x大于0且小于5(对于任何n=0..VirtualBoundariesNumVer-1),则以下内容适用:
clipRightPos=VirtualBoundariesPosX[n] (1471)
-否则,如果CtbSizeY-x小于5,并且以下条件中的一个或多个为真,则变量clipRightPos被设置为等于xCtb+CtbSizeY:
-当前编解码树块的右边界是片的右边界,
Figure BDA0003715949590000413
并且loop_filter_across_tiles_enabled_flag
Figure BDA0003715949590000414
等于0。
-[[当前编解码树块的右边界是条带的右边界,并且loop_filter_across_slices_enabled_flag等于0。]]
-当前编解码树块的右边界是子图片的右边界,并且loop_filter_across_subpic_enabled_flag[SubpicIdx]等于0。
[[变量clipTopLeftFlag和clipBotRightFlag被修改如下:
-如果覆盖亮度位置(xCtb,yCtb)的编解码树块和覆盖亮度位置(xCtb-CtbSizeY,yCtb-CtbSizeY)的编解码树块属于不同的条带,并且loop_filter_across_slices_enabled_flag等于0,则clipTopLeftFlag被设置为等于1。
-如果覆盖亮度位置(xCtb,yCtb)的编解码树块和覆盖亮度位置(xCtb+CtbSizeY,yCtb+CtbSizeY)的编解码树块属于不同的条带,并且loop_filter_across_slices_enabled_flag等于0,则clipBotRightFlag被设置为等于1。]]
图19是示出示例视频处理系统1900的框图,其中,示例视频处理系统1900可以实现本文公开的各种技术。各种实现可以包括系统1900的部分或全部组件。系统1900可以包括用于接收视频内容的输入1902。可以以原始格式或未压缩格式(例如8位或10位多分量像素值)接收视频内容,或者可以以压缩格式或编码格式接收视频内容。输入1902可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口,例如以太网、无源光学网络(PON)等,以及无线接口,例如Wi-Fi或蜂窝接口。
系统1900可以包括编解码组件1904,该编解码组件1904可以实现本文档中描述的各种编解码或编码方法。编解码组件1904可以降低从输入1902到编解码组件1904的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件1904的输出可以被存储,或者经由由组件1906表示的连接的通信来传输。在输入1902处接收的视频的存储的或传送的比特流(或编解码的)表示可以由组件1908用于生成被发送到显示接口1910的像素值或可显示视频。从比特流表示生成用户可观看视频的过程有时被称为视频解压缩。此外,尽管某些视频处理操作被称为“编解码”操作或工具,但将理解的是,在编码器处使用编码工具或操作,并且反转编码结果的对应的解码工具或操作将由解码器执行。
外围总线接口或显示接口的示例可以包括通用串行总线(USB)或高清多媒体接口(HDMI)或Displayport等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子装置中,例如移动电话、膝上型计算机、智能手机或能够执行数字数据处理和/或视频显示的其它装置。
图20是视频处理设备2000的框图。设备2000可以用于实现本文所描述的方法中的一种或多种。设备2000可以包含在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。设备2000可以包括一个或多个处理器2002、一个或多个存储器2004以及视频处理硬件2006。处理器2002可以被配置为实现本文档中描述的一个或多个方法。一个或多个存储器2004可以用于存储用于实现本文所描述的方法和技术的数据和代码。视频处理硬件2006可以用于在硬件电路中实现本文档中描述的一些技术。
图21是示出可以利用本公开技术的示例视频编解码系统100的框图。
如图21所示,视频编解码系统100可以包括源装置110和目的地装置120。源装置110可以生成编码视频数据,源装置110可以被称为视频编码装置。目的地装置120可以对源装置110生成的编码视频数据进行解码,该目的地装置120可以被称为视频解码装置。
源装置110可以包括视频源112、视频编码器114和输入/输出(I/O)接口116。
视频源112可以包括源,例如视频捕获装置、从视频内容提供者接收视频数据的接口、和/或用于生成视频数据的计算机图形系统、或这样的源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关联的数据。编解码图片是图片的编解码表示。相关联的数据可以包括序列参数集、图片参数集和其它语法结构。I/O接口116可以包括调制器/解调器(调制解调器)和/或发射器。编码的视频数据可以通过网络130a经由I/O接口116直接传输到目的地装置120。编码的视频数据还可以存储在存储介质/服务器130b上,以供目的地装置120访问。
目的地装置120可以包括I/O接口126、视频解码器124和显示装置122。
I/O接口126可以包括接收器和/或调制解调器。I/O接口126可以从源装置110或存储介质/服务器130b获取编码的视频数据。视频解码器124可以对编码的视频数据进行解码。显示装置122可以向用户显示解码的视频数据。显示装置122可以与目的地装置120集成在一起,或者可以位于目的地装置120的外部,目的地装置120被配置为与外部显示装置相接。
视频编码器114和视频解码器124可以根据视频压缩标准操作,例如高效视频编解码(HEVC)标准、多功能视频编解码(VVM)标准以及其它当前和/或未来的标准。
图22是示出视频编码器200的示例的框图,视频编码器200可以是图21所示系统100中的视频编码器114。
视频编码器200可以被配置为执行本公开的任意或所有技术。在图22的示例中,视频编码器200包括多个功能组件。本公开中描述的技术可以在视频编码器200的各个组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任意或所有技术。
视频编码器200的功能组件可以包括分割单元201、预测单元202(其可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206)、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211,重构单元212、缓冲器213和熵编码单元214。
在其它示例中,视频编码器200可以包括更多、更少或不同的功能组件。在示例中,预测单元202可以包括帧内块复制(IBC)单元。IBC单元可以在IBC模式下执行预测,其中,至少一个参考图片是当前视频块所在的图片。
此外,一些组件,例如运动估计单元204和运动补偿单元205可以是高度集成的,但是出于解释的目的,在图22的示例中分别进行表示。
分割单元201可以将图片分割成一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块尺寸。
模式选择单元203可以例如基于误差结果选择编解码模式(帧内或帧间)中的一种,并将所得的帧内或帧间编解码块提供给残差生成单元207以生成残差块数据,以及提供给重构单元212以重构编码块以用作参考图片。在一些示例中,模式选择单元203可以选择帧内和帧间预测(CIIP)模式的组合,其中,预测基于帧间预测信号和帧内预测信号。模式选择单元203还可以在帧间预测的情况下为块选择运动矢量的分辨率(例如,子像素或整数像素精度)。
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于来自缓冲器213的、与当前视频块相关联的图片以外的图片的运动信息和解码样点来确定当前视频块的预测视频块。
运动估计单元204和运动补偿单元205可以对当前视频块执行不同的操作,例如,这取决于当前视频块是在I条带、P条带还是B条带中。
在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以搜索列表0或列表1的参考图片以查找当前视频块的参考视频块。然后,运动估计单元204可以生成参考索引(该参考索引指示包含参考视频块的列表0或列表1中的参考图片)以及运动矢量(该运动矢量指示当前视频块和参考视频块之间的空域位移)。运动估计单元204可以输出参考索引、预测方向标识符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
在其它示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1中的参考图片中搜索当前视频块的另一参考视频块。然后,运动估计单元204可以生成参考索引(该参考索引指示包含参考视频块的列表0和列表1中的参考图片)以及运动矢量(该运动矢量指示参考视频块和当前视频块之间的空域位移)。运动估计单元204可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
在一些示例中,运动估计单元204可以输出用于解码器的解码处理的一整组运动信息。
在一些示例中,运动估计单元204可能不输出当前视频的一整组运动信息。相反,运动估计单元204可以参考另一视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与相邻视频块的运动信息足够相似。
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示这样的值:该值向视频解码器300指示当前视频块具有与另一视频块相同的运动信息。
在另一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中识别另一个视频块和运动矢量差(MVD)。运动矢量差指示当前视频块的运动矢量与所指示视频块的运动矢量之间的差。视频解码器300可以使用所指示视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
如上所讨论的,视频编码器200可以预测地信令通知运动矢量。可以由视频编码器200实现的预测信令通知技术的两个示例包括高级运动矢量预测(AMVP)和merge模式信令通知。
帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于同一图片中的其它视频块的解码样点生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
残差生成单元207可以通过从当前视频块减去(例如,用减号指示)当前视频块的(多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中的样点的不同样点分量的残差视频块。
在其它示例中,对于当前视频块,可能不存在当前视频块的残差数据,例如在跳过模式下,残差生成单元207可能不执行减法操作。
变换处理单元208可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块,来为当前视频块生成一个或多个变换系数视频块。
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(QP)值来对与当前视频块相关联的变换系数视频块进行量化。
逆量化单元210和逆变换单元211可以分别对变换系数视频块应用逆量化和逆变换,以根据变换系数视频块重构残差视频块。重构单元212可以将重构的残差视频块添加到来自预测单元202生成的一个或多个预测视频块的对应样点中,以产生与当前块相关联的重构视频块,以存储在缓冲器213中。
在重构单元212重构视频块之后,可以执行环路滤波操作以减少视频块中的视频块伪像。
熵编码单元214可以从视频编码器200的其它功能组件接收数据。当熵编码单元214接收到数据时,熵编码单元214可以执行一个或多个熵编码操作以生成熵编码数据,并输出包括熵编码数据的比特流。
图23是示出视频解码器300的示例的框图,该视频解码器300可以是图21所示的系统100中的视频解码器114。
视频解码器300可以被配置为执行本公开的任何或所有技术。在图23的示例中,视频解码器300包括多个功能组件。本公开中描述的技术可以在视频解码器300的各个组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
在图23的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305、重构单元306和缓冲器307。在一些示例中,视频解码器300可以执行总体上与关于视频编码器200(图22)描述的编码过程相反的解码过程。
熵解码单元301可以检索编码比特流。编码比特流可以包括熵编解码的视频数据(例如,视频数据的编码块)。熵解码单元301可以对熵编解码的视频数据进行解码,并且运动补偿单元302可以根据熵解码的视频数据确定运动信息,该运动信息包括运动矢量、运动矢量精度、参考图片列表索引和其它运动信息。例如,运动补偿单元302可以通过执行AMVP和merge模式来确定这种信息。
运动补偿单元302可以产生运动补偿块,可能基于插值滤波器执行插值。语法元素中可以包括用于以子像素精度使用的插值滤波器的标识符。
运动补偿单元302可以使用在视频块的编码期间由视频编码器20使用的插值滤波器来计算参考块的子整数像素的插值。运动补偿单元302可以根据接收到的语法信息确定由视频编码器200使用的插值滤波器,并使用插值滤波器来产生预测块。
运动补偿单元302可以使用一些语法信息来确定用于对编码视频序列的(多个)帧和/或(多个)条带进行编码的块的尺寸、描述如何对编码视频序列的图片的每个宏块进行分割的分割信息、指示如何对每个分割进行编码的模式、用于每个帧间编码块的一个或多个参考帧(和参考帧列表)、以及用于对编码视频序列进行解码的其它信息。
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式来根据空间上邻近的块形成预测块。逆量化单元303对比特流中提供并由熵解码单元301解码的量化视频块系数进行逆量化(即,去量化)。逆变换单元303应用逆变换。
重构单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的对应预测块相加,以形成解码块。如果需要,还可以应用去方块滤波器来滤波解码块,以便去除块状伪像。解码的视频块然后被存储在缓冲器307中,缓冲器307为后续运动补偿/帧内预测提供参考块,并且还产生解码的视频以在显示设备上呈现。
图24-25示出了可以实现上述技术方案的示例方法,例如,图19-23所示的实施例。
图24示出了视频处理的示例方法2400的流程图。在操作2410处,方法2400包括,对于包括视频区域的视频和视频的比特流之间的转换,确定是否应用跨越与该视频区域相关联的边界的环路滤波过程,该比特流包括指示环路滤波过程是否适用于每个视频区域的一个或多个语法元素。
在操作2420处,方法2400包括基于确定执行转换。
图25示出了视频处理的示例方法2500的流程图。在操作2510处,方法2500包括执行包括包含子图片的视频区域的视频和视频的比特流之间的转换,比特流符合格式规则,该格式规则规定是否在比特流中信令通知第一语法元素是基于子图片是否被视为图片,并且第一语法元素与跨越与视频区域相关联的子图片边界的环路滤波过程的应用有关。
下面提供一些实施例优选的解决方案的列表。
A1.一种视频处理方法,包括:对于包括视频区域的视频和视频的比特流之间的转换,确定是否应用跨越与视频区域相关联的边界的环路滤波过程;以及基于确定执行转换,其中,比特流包括一个或多个语法元素,该一个或多个语法元素指示环路滤波过程是否适用于每个视频区域。
A2.根据解决方案A1所述的方法,其中,视频区域是子图片。
A3.根据解决方案A2所述的方法,其中,在图片参数集(PPS)中信令通知一个或多个语法元素。
A4.根据解决方案A2所述的方法,其中,一个或多个语法元素控制是否启用跨越子图片内的片边界的环路滤波过程。
A5.根据解决方案A4所述的方法,其中,子图片内的片边界不包括与子图片的边界重合的片边界。
A6.根据解决方案A2所述的方法,其中,在序列参数集(SPS)中信令通知一个或多个语法元素。
A7.根据解决方案A6所述的方法,其中,响应于视频包括子图片,信令通知一个或多个语法元素。
A8.根据解决方案A2至A7中的任一个所述的方法,其中,一个或多个语法元素包括第一语法元素和第二语法元素。
A9.根据解决方案A8所述的方法,其中,第一语法元素和第二语法元素具有相同的值。
A10.根据解决方案A8所述的方法,其中,用于相同片中的子图片的第一语法元素和第二语法元素具有相同的值。
A11.根据解决方案A8所述的方法,其中,第一语法元素和第二语法元素与相同片中的多个子图片中的一个代表性子图片相关联。
A12.根据解决方案A11所述的方法,其中,一个代表性子图片是分别以编码顺序编码或解码顺序解码的第一子图片。
A13.根据解决方案A8所述的方法,其中,边界是条带边界和片边界,并且其中,第一语法元素和第二语法元素具有不同的值。
A14.根据解决方案A13所述的方法,其中,在确定包括当前编解码树单元(CTU)的条带与包括当前CTU的片相同或是该当前CTU的片的父集时,转换是基于第一语法元素,而不是基于第二语法元素。
A15.根据解决方案A8所述的方法,其中,边界是子图片边界,并且其中,基于第一语法元素或第二语法元素等于一来启用跨越边界的环路滤波过程的应用。
A16.根据解决方案A8所述的方法,其中,边界是子图片边界和片边界,并且其中,基于第一语法元素或第二语法元素等于一来启用跨越边界的环路滤波过程的应用。
A17.根据解决方案A8至A16中的任一个所述的方法,其中,第一语法元素用于控制跨越片边界的自适应环路滤波器(ALF)、去方块滤波器(DF)和样点自适应偏移(SAO),并且其中,第二语法元素用于控制跨越条带边界的自适应环路滤波器(ALF)、去方块滤波器(DF)和样点自适应偏移(SAO)。
A18.根据解决方案A8至A17中的任一个所述的方法,其中,第一语法元素是loop_filter_across_tiles_enabled_flag,并且第二语法元素是loop_filter_across_slices_enabled_flag。
A19.根据解决方案A1所述的方法,其中,视频区域是片。
A20.根据解决方案A1所述的方法,其中,视频区域是条带。
A21.根据解决方案A1所述的方法,其中,视频区域至少包括第一类型的视频单元和第二类型的视频单元,并且其中,边界是第一类型的视频单元的边界和第二类型的视频单元的边界。
A22.根据解决方案A21所述的方法,其中,第一类型的视频单元为子图片,并且第二类型的视频单元为条带。
A23.根据解决方案A21所述的方法,其中,第一类型的视频单元为子图片,并且第二类型的视频单元为片。
A24.根据解决方案A21所述的方法,其中,第一类型的视频单元是条带,并且第二类型的视频单元是片。
A25.一种视频处理的方法,包括:执行包括包含子图片的视频区域的视频和视频的比特流之间的转换,其中,比特流符合格式规则,该格式规则规定是否在比特流中信令通知第一语法元素是基于子图片是否被视为图片,以及其中,第一语法元素与跨越与视频区域相关联的子图片边界的环路滤波过程的应用有关。
A26.根据解决方案A25所述的方法,其中,格式规则规定比特流包括第二语法元素,第二语法元素指示子图片是否被视为图片。
A27.根据解决方案A25所述的方法,其中,响应于所述比特流不包括所述第一语法元素,第一语法元素被推断为指示允许跨越子图片边界的环路滤波过程。
A28.根据解决方案A25至A27中的任一个所述的方法,其中,第一语法元素是loop_filter_across_subpic_enabled_flag,并且第二语法元素是subpic_treated_as_pic_flag。
A29.根据解决方案A28所述的方法,其中,响应于所述第二语法元素指示所述子图片不被视为所述图片,第一语法元素被推断为指示允许跨越子图片的边界的环路滤波过程。
A30.根据解决方案A1至A29中的任一个所述的方法,其中,环路滤波过程包括去方块滤波器、样点自适应偏移(SAO)滤波器、自适应环路滤波器(ALF)、交叉分量自适应环路滤波器、双边滤波器和变换域滤波器中的至少一种。
A31.根据解决方案A1至A30中的任一个所述的方法,其中,转换包括从所述比特流表示中解码所述视频。
A32.根据解决方案A1至A30中的任一个所述的方法,其中,转换包括将视频编码为比特流表示。
A33.一种将表示视频的比特流写入计算机可读记录介质的方法,包括:根据解决方案A1至A32中的任何一个或多个所述的方法来从视频生成比特流;以及将比特流写入计算机可读记录介质。
A34.一种视频处理设备,包括被配置为实现解决方案A1至A33中的任何一个或多个所述的方法的处理器。
A35.一种计算机可读介质,其上存储有指令,这些指令在被执行时使得处理器实现解决方案A1至A33中的一个或多个所述的方法。
A36.一种计算机可读介质,其存储根据解决方案A1至A33中的任何一个或多个生成的比特流表示。
A37.一种用于存储比特流表示的视频处理设备,其中,视频处理设备被配置为实现解决方案A1至A33中的任何一个或多个所述的方法。
下面提供一些实施例优选的解决方案的另一个列表。
B1.一种视频处理的方法,包括:对于在视频的子图片和视频的编解码表示之间的转换,确定是否应用跨越子图片内的边界的环路滤波器;以及基于确定执行转换;其中,编解码表示的格式允许对环路滤波器的应用进行个性化的信令通知。
B2.根据解决方案B1所述的方法,其中,图片级别的第一字段指示子图片级别的独立信令是否用于编解码表示中。
B3.根据解决方案B1所述的方法,其中,视频序列级的第一字段指示子图片级的独立信令是否用于编解码表示中。
B4.根据解决方案B1至B4中的任一个所述的方法,其中,环路滤波器的应用的独立信令包括跨越子图片内的片的应用的信令和/或跨越子图片内的条带的应用的信令。
B5.一种视频处理的方法,包括:基于条件确定是否解析指示是否应用跨越视频的视频区域的视频部分的边界的环路滤波器的字段;基于该确定,执行视频的视频部分内的样点转换和视频的编解码表示。
B6.根据解决方案B5所述的方法,其中,该条件对应于视频区域中的视频部分是否被视为图片。
B7.根据解决方案B6所述的方法,其中,该条件对应于subpic_treated_as_pic_flag是否为真。
B8.根据解决方案B6所述的方法进一步包括,当视频区域中的视频部分未被视为图片时,不解析该字段以用于解码。
B9.根据解决方案B8所述的方法进一步包括,跨越视频的视频区域的视频部分的边界应用环路滤波器被禁用。
B10.根据解决方案B6所述的方法进一步包括,当视频区域中的视频部分被视为图片时,对字段进行解析。
B11.根据解决方案B8所述的方法进一步包括,是否跨越视频的视频区域的视频部分的边界应用环路滤波器由解析的字段确定。
B12.一种视频处理的方法,包括:对于视频的视频区域的视频部分和视频的编解码表示之间的转换,执行基于条件确定是否跨越视频部分的边界应用环路滤波器;以及基于确定执行转换。
B13.根据解决方案B12所述的方法,其中,条件对应于视频部分是否被视为图片。
B14.根据解决方案B12所述的方法,其中,条件对应于编解码表示中的subpic_treated_as_pic_flag是否为真。
B15.根据解决方案B12至B13中的任一个所述的方法,其中,在编解码表示中省略了跨越视频部分的边界的环路滤波器的应用的指示。
B16.上述权利要求中的任一个所述的方法,其中,视频部分为子图片,并且视频区域为图片。
B17.上述权利要求中的任一个所述的方法,其中,视频部分是片,并且视频区域是图片。
B18.根据解决方案B17所述的方法,其中,编解码表示中的片特定字段指示是否跨越视频部分的边界应用环路滤波器。
B19.上述权利要求中的任一个所述的方法,其中,视频部分是条带,并且视频区域是图片。
B20.根据解决方案B19所述的方法,其中,编解码表示中的条带特定字段指示是否跨越视频部分的边界应用环路滤波器。
B21.上述权利要求中的任一个所述的方法,其中,环路滤波器是去方块滤波器。
B22.上述权利要求中的任一个所述的方法,其中,环路滤波器是样点自适应偏移(SAO)滤波器。
B23.上述权利要求中的任一个所述的方法,其中,环路滤波器是自适应环路滤波器。
B24.上述权利要求中的任一个所述的方法,其中,环路滤波器是跨分量自适应环路滤波器。
B25.上述权利要求中的任一个所述的方法,其中,环路滤波器是双边滤波器。
B26.上述权利要求中的任一个所述的方法,其中,环路滤波器是变换域滤波器。
B27.根据解决方案B1至B26中的任一个所述的方法,其中,执行转换包括对视频进行编码以生成编解码表示。
B28.根据解决方案B1至B26中的任一个所述的方法,其中,执行转换包括对编解码表示进行解析和解码以生成视频。
B29.一种视频解码装置,包括处理器,其被配置为实现在解决方案B1至B28中的一个或多个中记载的方法。
B30.一种视频编码装置,包括处理器,其被配置为实现解决方案B1至B28中的一个或多个中记载的方法。
B31.一种其上存储有计算机代码的计算机程序产品,该代码当由处理器执行时使得处理器实现在解决方案B1至B28的任一个中记载的方法。
在本文档中,术语“视频处理”可以指代视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示转换为对应的比特流表示期间应用视频压缩算法,反之亦然。例如,当前视频块的比特流表示可以对应于如语法所定义的在比特流内共置或分布在不同位置的比特。例如,宏块可以根据变换和编码的错误残差值进行编解码,并且还可以使用比特流中的标头和其它字段中的比特。
本文档中描述的公开和其它解决方案、示例、实施例、模块和功能操作可以在数字电子电路中实现,或在计算机软件、固件或硬件中实现,包括本文档中公开的结构及其结构等同物或它们中的一个或多个的组合。所公开的和其它实施例可以实现为一个或多个计算机程序产品,即,编码在计算机可读介质上的计算机程序指令的一个或多个模块,其用于由数据处理装置执行或控制其操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合物或者它们中的一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或其中一个或多个的组合的代码。传播信号是人为生成的信号,例如,机器生成的电气、光学或电磁信号,其被生成以对信息进行编码以传输到合适的接收器装置。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,并且其可以以任何形式部署,包括作为独立程序或模块、组件、子例程或适合在计算环境中使用的其它单元。计算机程序不一定与文件系统中的文件相对应。程序可以存储在保存其它程序或数据的文件的一部分中(例如,标记语言文档中存储的一个或多个脚本)、专用于所讨论的程序的单个文件或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以被部署以在一台或多台计算机上执行,多台计算机位于一个站点或分布在多个站点并通过通信网络互连。
本文档中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程还可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适合于执行计算机程序的处理器包括通用微处理器和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者中接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或被操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据或向其传送数据或两者。然而,计算机不需要这样的设备。适合存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪速存储器设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或结合在专用逻辑电路中。
尽管本专利文档包含许多细节,但这些细节不应当被解释为对任何主题或可要求保护的内容的范围的限制,而应当被解释为可以特定于特定的技术的特定的实施例的特征的描述。本专利文档中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反地,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合来实现。此外,尽管上述特征可以被描述为在某些组合中起作用,甚至最初被声称为这样,但在一些情况下,可以从要求保护的组合中删除一个或多个特征,并且要求保护的组合可以指向子组合或子组合的变体。
类似地,尽管在附图中以特定的顺序描述操作,但这不应当被理解为要求按照所示的特定的顺序或序列顺序执行这样的操作,或要求所有所示操作被执行,以实现理想的结果。此外,本专利文件中描述的实施例中的各种系统组件的分离不应当理解为在所有实施例中都需要这种分离。
仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和示出的内容进行其它实施方式、改善和变体。

Claims (37)

1.一种视频处理的方法,包括:
对于包括视频区域的视频和所述视频的比特流之间的转换,确定是否应用跨越与所述视频区域相关联的边界的环路滤波过程;以及
基于所述确定执行所述转换,
其中,所述比特流包括一个或多个语法元素,所述一个或多个语法元素指示所述环路滤波过程是否适用于每个视频区域。
2.根据权利要求1所述的方法,其中,所述视频区域是子图片。
3.根据权利要求2所述的方法,其中,在图片参数集(PPS)中信令通知所述一个或多个语法元素。
4.根据权利要求2所述的方法,其中,所述一个或多个语法元素控制是否启用跨越所述子图片内的片边界的所述环路滤波过程。
5.根据权利要求4所述的方法,其中,所述子图片内的所述片边界不包括与所述子图片的边界重合的片边界。
6.根据权利要求2所述的方法,其中,在序列参数集(SPS)中信令通知所述一个或多个语法元素。
7.根据权利要求6所述的方法,其中,响应于所述视频包括所述子图片,信令通知所述一个或多个语法元素。
8.根据权利要求2至7中的任一项所述的方法,其中,所述一个或多个语法元素包括第一语法元素和第二语法元素。
9.根据权利要求8所述的方法,其中,所述第一语法元素和所述第二语法元素具有相同的值。
10.根据权利要求8所述的方法,其中,用于相同片中的子图片的所述第一语法元素和所述第二语法元素具有相同的值。
11.根据权利要求8所述的方法,其中,所述第一语法元素和所述第二语法元素与相同片中的多个子图片中的一个代表性子图片相关联。
12.根据权利要求11所述的方法,其中,所述一个代表性子图片是分别以编码顺序编码或解码顺序解码的第一子图片。
13.根据权利要求8所述的方法,其中,所述边界是条带边界和片边界,并且其中,所述第一语法元素和所述第二语法元素具有不同的值。
14.根据权利要求13所述的方法,其中,在确定包括当前编解码树单元(CTU)的条带与包括所述当前CTU的片相同或是所述当前CTU的片的父集时,所述转换是基于所述第一语法元素,而不是基于所述第二语法元素。
15.根据权利要求8所述的方法,其中,所述边界是子图片边界,并且其中,基于所述第一语法元素或所述第二语法元素等于一来启用跨越所述边界的所述环路滤波过程的应用。
16.根据权利要求8所述的方法,其中,所述边界是子图片边界和片边界,并且其中,基于所述第一语法元素或所述第二语法元素等于一来启用跨越所述边界的所述环路滤波过程的应用。
17.根据权利要求8至16中的任一项所述的方法,其中,所述第一语法元素用于控制跨越片边界的自适应环路滤波器(ALF)、去方块滤波器(DF)和样点自适应偏移(SAO),并且其中,所述第二语法元素用于控制跨越条带边界的自适应环路滤波器(ALF)、去方块滤波器(DF)和样点自适应偏移(SAO)。
18.根据权利要求8至17中的任一项所述的方法,其中,所述第一语法元素是loop_filter_across_tiles_enabled_flag,并且所述第二语法元素是loop_filter_across_slices_enabled_flag。
19.根据权利要求1所述的方法,其中,所述视频区域是片。
20.根据权利要求1所述的方法,其中,所述视频区域是条带。
21.根据权利要求1所述的方法,其中,所述视频区域至少包括第一类型的视频单元和第二类型的视频单元,并且其中,所述边界是所述第一类型的视频单元的边界和所述第二类型的视频单元的边界。
22.根据权利要求21所述的方法,其中,所述第一类型的视频单元为子图片,并且所述第二类型的视频单元为条带。
23.根据权利要求21所述的方法,其中,所述第一类型的视频单元为子图片,并且所述第二类型的视频单元为片。
24.根据权利要求21所述的方法,其中,所述第一类型的视频单元为条带,并且所述第二类型的视频单元为片。
25.一种视频处理的方法,包括:
执行包括包含子图片的视频区域的视频和所述视频的比特流之间的转换,
其中,所述比特流符合格式规则,所述格式规则规定是否在所述比特流中信令通知第一语法元素是基于所述子图片是否被视为图片,以及
其中,所述第一语法元素与跨越与所述视频区域相关联的子图片边界的环路滤波过程的应用有关。
26.根据权利要求25所述的方法,其中,所述格式规则规定所述比特流包括第二语法元素,所述第二语法元素指示所述子图片是否被视为所述图片。
27.根据权利要求25所述的方法,其中,响应于所述比特流不包括所述第一语法元素,所述第一语法元素被推断为指示允许跨越所述子图片边界的所述环路滤波过程。
28.根据权利要求25至27中的任一项所述的方法,其中,所述第一语法元素是loop_filter_across_subpic_enabled_flag,并且所述第二语法元素是subpic_treated_as_pic_flag。
29.根据权利要求28所述的方法,其中,响应于所述第二语法元素指示所述子图片不被视为所述图片,所述第一语法元素被推断为指示允许跨越所述子图片的所述边界的所述环路滤波过程。
30.根据权利要求1至29中的任一项所述的方法,其中,所述环路滤波过程包括去方块滤波器、样点自适应偏移(SAO)滤波器、自适应环路滤波器(ALF)、跨分量自适应环路滤波器、双边滤波器和变换域滤波器中的至少一种。
31.根据权利要求1至30中的任一项所述的方法,其中,所述转换包括从所述比特流表示中解码所述视频。
32.根据权利要求1至30中的任一项所述的方法,其中,所述转换包括将所述视频编码为所述比特流表示。
33.一种将表示视频的比特流写入计算机可读记录介质的方法,包括:
根据权利要求1至32中的任意一项或多项所述的方法来从视频生成比特流;以及
将所述比特流写入所述计算机可读记录介质。
34.一种视频处理设备,包括被配置为实现权利要求1至33中的任意一项或多项所述的方法的处理器。
35.一种计算机可读介质,其上存储有指令,所述指令在被执行时使得处理器实现权利要求1至33中的一项或多项所述的方法。
36.一种计算机可读介质,其存储根据权利要求1至33中的任意一项或多项生成的所述比特流表示。
37.一种用于存储比特流表示的视频处理设备,其中,所述视频处理设备被配置为实现权利要求1至33中的任意一项或多项所述的方法。
CN202080090757.8A 2019-12-27 2020-12-27 控制视频编解码中的跨边界滤波 Pending CN114902684A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962954393P 2019-12-27 2019-12-27
US62/954,393 2019-12-27
PCT/US2020/067080 WO2021134048A1 (en) 2019-12-27 2020-12-27 Control of filtering across boundaries in video coding

Publications (1)

Publication Number Publication Date
CN114902684A true CN114902684A (zh) 2022-08-12

Family

ID=76573160

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080090757.8A Pending CN114902684A (zh) 2019-12-27 2020-12-27 控制视频编解码中的跨边界滤波

Country Status (2)

Country Link
CN (1) CN114902684A (zh)
WO (1) WO2021134048A1 (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120189064A1 (en) * 2011-01-14 2012-07-26 Ebrisk Video Inc. Adaptive loop filtering using multiple filter shapes
US20130107973A1 (en) * 2011-10-28 2013-05-02 Qualcomm Incorporated Loop filtering control over tile boundaries
US20140003504A1 (en) * 2012-07-02 2014-01-02 Nokia Corporation Apparatus, a Method and a Computer Program for Video Coding and Decoding

Also Published As

Publication number Publication date
WO2021134048A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
CN114097225B (zh) 用于自适应环路滤波的样点确定
CN114128278B (zh) 自适应环路滤波中的样点填充
US20220103817A1 (en) Handling video unit boundaries and virtual boundaries
US20220116596A1 (en) Handling video unit boundaries and virtual boundaries based on color format
US11652998B2 (en) Padding process in adaptive loop filtering
US11683488B2 (en) Adaptive loop filtering between different video units
US11706462B2 (en) Padding process at unavailable sample locations in adaptive loop filtering
US20240114132A1 (en) Boundary location for adaptive loop filtering
CN115176468A (zh) 跨分量自适应环路滤波器
US11539946B2 (en) Sample padding for cross-component adaptive loop filtering
JP7401689B2 (ja) インループフィルタリングと映像タイルとの間の相互作用
CN114902684A (zh) 控制视频编解码中的跨边界滤波
RU2815441C2 (ru) Способ заполнения отсчетов при адаптивной контурной фильтрации
CN117939170A (zh) 自适应环路滤波中的样点填充

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination