CN117859325A - 用于视频编解码的自适应双边滤波 - Google Patents

用于视频编解码的自适应双边滤波 Download PDF

Info

Publication number
CN117859325A
CN117859325A CN202280057437.1A CN202280057437A CN117859325A CN 117859325 A CN117859325 A CN 117859325A CN 202280057437 A CN202280057437 A CN 202280057437A CN 117859325 A CN117859325 A CN 117859325A
Authority
CN
China
Prior art keywords
video
block
samples
bilateral filtering
reconstructed
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
CN202280057437.1A
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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Publication of CN117859325A publication Critical patent/CN117859325A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/176Methods 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 block, e.g. a macroblock

Landscapes

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

Abstract

本公开的实施方式提供一种用于视频编解码中的双边滤波的视频处理装置和方法。视频处理方法可包括由一个或多个处理器接收用于环路滤波的重件块。重建块是从来自视频的视频帧的视频块重建的。视频处理方法还可包括由一个或多个处理器将双边滤波方案应用于重建块以生成针对重建块中的多个重建样点的多个双边滤波偏移。视频处理方法还可包括由一个或多个处理器基于多个双边滤波偏移生成多个滤波样点。多个滤波样点被用作后续自适应环路滤波的输入。

Description

用于视频编解码的自适应双边滤波
相关申请的交叉引用
本申请基于并要求于2021年9月7日提交的申请号为63/241,156的美国临时申请的优先权,其内容通过引用整体并入本文。
技术领域
本申请涉及视频编解码和压缩。更具体地,本申请涉及用于视频编解码中的双边滤波的视频处理装置和方法。
背景技术
数字视频被各种电子设备支持,诸如数字电视、膝上型或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏控制台、智能电话、视频电话会议设备、视频流传输设备等。电子设备跨通信网络发送和接收或以其他方式通信传送数字视频数据,和/或将数字视频数据存储在存储设备上。由于通信网络的有限带宽容量和存储设备的有限存储资源,视频编解码可用于在通信传送或存储视频数据之前根据一个或多个视频编解码标准来压缩视频数据。例如,视频编解码标准包括通用视频编解码(VersatileVideo Coding,VVC)、联合探索测试模型(Joint Exploration test Model,JEM)、高效视频编解码(High-Efficiency Video Coding,HEVC/H.265)、高级视频编解码(Advanced VideoCoding,AVC/H.264)、运动图片专家组(Moving Picture Expert Group,MPEG)编解码等。视频编解码通常使用利用视频数据中固有的冗余的预测方法(例如,帧间预测、帧内预测等)。视频编解码旨在将视频数据压缩为使用更低比特率的形式,同时避免或最小化视频质量的降级。
发明内容
本公开的实施方式提供一种用于视频编解码中的双边滤波的视频处理方法。视频处理方法可包括由一个或多个处理器接收用于环路滤波的重建块。重建块是从来自视频的视频帧的视频块重建的。视频处理方法还可包括由一个或多个处理器将双边滤波方案应用于重建块以生成针对重建块中的多个重建样点的多个双边滤波偏移。视频处理方法还可包括由一个或多个处理器基于多个双边滤波偏移生成多个滤波样点。多个滤波样点被用作后续自适应环路滤波的输入。
本公开的实施方式还提供一种用于在视频编解码中执行双边滤波的视频处理装置。视频处理装置可包括一个或多个处理器和耦接到一个或多个处理器的存储器。一个或多个处理器可被配置为接收用于环路滤波的重建块。重建块是从来自视频的视频帧的视频块重建的。一个或多个处理器还可被配置为将双边滤波方案应用于重建块以生成针对重建块中的多个重建样点的多个双边滤波偏移。一个或多个处理器还可被配置为基于多个双边滤波偏移生成多个滤波样点。多个滤波样点是后续自适应环路滤波的输入。
本公开的实施方式还提供一种存储有指令的非暂态计算机可读存储介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行用于视频编解码中的双边滤波的视频处理方法。所述视频处理方法可包括接收用于环路滤波的重建块。重建块是从来自视频的视频帧的视频块重建的。视频处理方法还可包括将双边滤波方案应用于重建块以生成针对重建块中的多个重建样点的多个双边滤波偏移。视频处理方法还可包括基于多个双边滤波偏移生成多个滤波样点。多个滤波样点是后续自适应环路滤波的输入。视频被存储在非暂态计算机可读存储介质中。
应当理解,前面的一般性描述和下面的详细描述都仅是示例,并不限制本公开。
附图说明
并入本说明书中并构成本说明书的一部分的附示图出了与本公开一致的示例,并且与说明书一起用于解释本公开的原理。
图1是示出根据本公开的一些实施方式的用于对视频块进行编码和解码的示例性系统的框图。
图2是示出根据本公开的一些实施方式的示例性视频编码器的框图。
图3是示出根据本发明的一些实施方式的示例性视频解码器的框图。
图4A至图4E是示出根据本公开的一些实施方式的如何将帧递归地划分为不同尺寸和形状的多个视频块的图形表示。
图5是根据一些示例的用于双边滤波的示例性滤波器形状的示图。
图6是示出根据本公开的一些实施方式的示例性双边滤波方案的框图。
图7是根据本公开的一些实施方式的用于视频编解码中的双边滤波的示例性方法的流程图。
图8是根据本公开的一些实施方式的用于对重建块执行自适应双边滤波方案的示例性方法的流程图。
图9是根据本公开的一些实施方式的用于对重建块执行位置相关的双边滤波方案的示例性方法的流程图。
图10是根据本公开的一些实施方式的用于对重建块执行基于分类的双边滤波方案的示例性方法的流程图。
图11是根据本公开的一些实施方式的用于使用最小二乘法自适应地推导查找表(LUT)的示例性方法的流程图。
图12是示出根据本公开的一些实施方式的与用户界面耦接的计算环境的框图。
具体实施方式
现在将详细参照具体实施方式,在附图中示出具体实施方式的示例。在以下详细描述中,阐述了很多非限制性具体细节以便帮助理解本文呈现的主题。但是对于本领域普通技术人员将显而易见的是,在不脱离权利要求的范围的情况下,可使用各种替代方案,并且可在没有这些具体细节的情况下实践主题。例如,对于本领域普通技术人员将显而易见的是,本文呈现的主题可在具有数字视频能力的许多类型的电子设备上实现。
应当说明,在本公开的说明书、权利要求书和附图中使用的术语“第一”、“第二”等用于区分对象,而不是用于描述任何特定的顺序或次序。应当理解,以这种方式使用的数据可在适当的条件下互换,使得本文描述的本公开的实施例可按照除了附图中所示或本公开中描述的那些顺序之外的顺序来实现。
图1是示出根据本公开的一些实施方式的用于并行地对视频块进行编码和解码的示例性系统10的框图。如图1中所示,系统10包括源设备12,源设备12生成并编码稍后将由目标设备14进行解码的视频数据。源设备12和目标设备14可包括各种各样的电子设备中的任何电子设备,包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示器设备、数字媒体播放器、视频游戏机、视频流传输设备等。在一些实施方式中,源设备12和目标设备14配备有无线通信能力。
在一些实施方式中,目标设备14可经由链路16接收待解码的编码视频数据。链路16可包括能够将编码视频数据从源设备12发送到目标设备14的任何类型的通信介质或设备。在一个示例中,链路16可包括使源设备12能够实时地将编码视频数据直接发送到目标设备14的通信介质。编码视频数据可根据通信标准(诸如无线通信协议)被调制,并且被发送到目标设备14。通信介质可包括任何无线或有线通信介质,诸如射频(Radio Frequency,RF)频谱或一个或多个物理传输线。通信介质可形成基于分组的网络(例如,局域网、广域网或诸如互联网的全球网)的一部分。通信介质可包括路由器、交换机、基站或可有利于促进从源设备12到目标设备14的通信的任何其他装置。
在一些其他实施方式中,编码视频数据可从输出接口22被发送到存储设备32。随后,存储设备32中的编码视频数据可由目标设备14经由输入接口28被访问。存储设备32可包括各种分布式或本地访问的数据存储介质中的任何数据存储介质,诸如硬盘驱动器、蓝光光盘、数字通用磁盘(Digital Versatile Disk,DVD)、光盘只读存储器(Compact DiscRead-Only Memory,CD-ROM)、闪存存储器、易失性或非易失性存储器、或者用于存储编码视频数据的任何其他合适的数字存储介质。在另一示例中,存储设备32可对应于文件服务器或可存储由源设备12生成的编码视频数据的另一中间存储设备。目标设备14可从存储设备2经由流传输或下载来访问存储的视频数据。文件服务器可以是能够存储编码视频数据并且将编码视频数据发送到目标设备14的任何类型的计算机。示例性文件服务器包括web服务器(例如,用于网站)、文件传输协议(File Transfer Protocol,FTP)服务器、网络附属存储(Network Attached Storage,NAS)设备或本地磁盘驱动器。目标设备14可通过适合于访问存储在文件服务器上的编码视频数据的任何标准数据连接来访问编码视频数据,标准数据连接包括无线信道(例如,无线保真(Wi-Fi)连接)、有线连接(例如,数字用户线路(Digital Subscriber Line,DSL)、电缆调制解调器等)或其任何组合。编码视频数据从存储设备32的传输可以是流传输、下载传输或流传输和下载传输两者的组合。
如图1中所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可包括诸如以下项的源或此类源的组合:视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频存档、用于从视频内容提供商接收视频数据的视频馈入接口、和/或用于生成作为源视频的计算机图形数据的计算机图形系统。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目标设备14可包括相机电话或视频电话。然而,本公开中所描述的实施方式通常可适用于视频编解码,并且可应用于无线和/或有线应用。
可由视频编码器20对捕获、预先捕获或计算机生成的视频进行编码。可经由源设备12的输出接口22直接将编码视频数据发送到目标设备14。还可(或可选地)将编码视频数据存储到存储设备32上以供稍后被目标设备14或其他设备访问,以用于解码和/或播放。输出接口22还可包括调制解调器和/或发送器。
目标设备14包括输入接口28、视频解码器30和显示器设备34。输入接口28可包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16通信传送或在存储设备32上提供的编码视频数据可包括由视频编码器20生成的各种语法元素以供视频解码器30在对视频数据进行解码时使用。此类语法元素可被包括在通信介质上发送、存储在存储介质上或存储在文件服务器上的编码视频数据内。
在一些实施方式中,目标设备14可包括显示器设备34,显示器设备34可以是集成显示器设备和被配置为与目标设备14通信的外部显示器设备。显示器设备34为用户显示解码视频数据,并且可包括各种显示器设备中的任何显示器设备,诸如液晶显示器(LiquidCrystal Display,LCD)、等离子显示器、有机发光二极管(Organic Light EmittingDiode,OLED)显示器或另一类型的显示器设备。
视频编码器20和视频解码器30可根据专有标准或行业标准(例如,VVC、HEVC、MPEG-4、Part 10、AVC)或此类标准的扩展进行操作。应当理解,本公开不限于特定的视频编码/解码标准,并且可适用于其他视频编码/解码标准。通常认为源设备12的视频编码器20可被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行编码。类似地,还通常认为目标设备14的视频解码器30可被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行解码。
视频编码器20和视频解码器30可分别被实现为各种合适的编码器和/或解码器电路中的任何电路,诸如一个或多个微处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当部分地以软件实现时,电子设备可将用于软件的指令存储于合适的非易失性计算机可读介质中,并且使用一个或多个处理器执行硬件中的指令以执行本公开中所公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可被包括在一个或多个编码器或解码器中,编码器或解码器中的任一者可被集成为相应设备中的组合式编码器/解码器(CODEC)的一部分。
图2是示出根据本申请中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可执行对视频帧内的视频块的帧内预测编码和帧间预测编码。帧内预测编码依赖于空间预测以减少或去除给定视频帧或图片内的视频数据中的空间冗余。帧间预测编码依赖于时间预测以减少或去除视频序列的相邻视频帧或图片内的视频数据中的时间冗余。应注意,术语“帧”可用作视频编解码领域中的术语“图像”或“图片”的同义词。
如图2中所示,视频编码器20包括视频数据存储器40、预测处理单元41、解码图片缓冲器(Decoded Picture Buffer,DPB)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41还包括运动估计单元42、运动补偿单元44、划分单元45、帧内预测处理单元46和帧内块复制(Block Copy,BC)单元48。在一些实施方式中,视频编码器20还包括用于视频块重建的反量化单元58、逆变换处理单元60和加法器62。环路滤波器63(诸如去块滤波器)可位于加法器62与DPB 64之间来对块边界进行滤波以从重建视频数据去除块伪影。除了可使用去块滤波器之外,还可使用另外的环路滤波器(诸如SAO)滤波器和/或自适应环路滤波器(Adaptive in-Loop Filter,ALF))来对加法器62的输出进行滤波。在一些示例中,可省略环路滤波器,并且可由加法器62直接将解码的视频块提供给DPB 64。视频编码器20可采取固定或可编程硬件单元的形式,或者可分散在所说明的固定或可编程硬件单元中的一个或多个中。
视频数据存储器40可存储将由视频编码器20的组件编码的视频数据。视频数据存储器40中的视频数据可例如从如图1所示的视频源18获得。DPB 64是存储供视频编码器20(例如,以帧内或帧间预测编码模式)在对视频数据进行编码时使用的参考视频数据(参考帧或图片)的缓冲器。视频数据存储器40和DPB 64可由各种存储器设备中的任何存储器设备形成。在各种示例中,视频数据存储器40可与视频编码器20的其他组件一起在芯片上,或相对于那些组件在芯片外。
如图2中所示,在接收到视频数据之后,预测处理单元41内的划分单元45将视频数据划分为视频块。此划分操作还可包括根据与视频数据相关联的预定义的拆分结构(例如四叉树(Quad-Tree,QT)结构)将视频帧划分为条带、瓦片(例如,视频块的集合)或其他更大的编码单元(Coding Unit,CU)。视频帧是或可被认为是具有样点值的样点的二维阵列或矩阵。阵列中的样点也可被称作像素或pel。阵列或图片的水平和垂直方向(或轴)上的样点的数量定义视频帧的尺寸和/或分辨率。可通过(例如)使用QT划分将视频帧分割为多个视频块。视频块也是或可被认为是具有样点值的样点的二维阵列或矩阵,但是视频块的尺寸小于视频帧。视频块的水平和垂直方向(或轴)上的样点的数量定义视频块的尺寸。可通过例如迭代地使用QT划分、二叉树(Binary-Tree,BT)划分、三叉树(Triple-Tree,TT)划分或其任意组合进一步将视频块划分为一个或多个块分区或子块(其可再次形成块)。应当注意,如本文所使用的术语“块”或“视频块”可以是帧或图片的一部分,特别是矩形(正方形或非正方形)部分。参考例如HEVC和VVC,块或视频块可以是或对应于编码树单元(Coding TreeUnit,CTU)、CU、预测单元(Prediction Unit,PU)或变换单元(Transform Unit,TU)和/或可以是或对应于相应块,例如编码树块(Coding Tree Block,CTB)、编码块(Coding Block,CB)、预测块(Prediction Block,PB)或变换块(Transform Block,TB)。可选地或另外地,块或视频块可以是或对应于CTB、CB、PB、TB等的子块。
预测处理单元41可基于误差结果(例如,码率和失真等级)为当前视频块选择多个可行预测编码模式中的一个,诸如多个帧内预测编码模式中的一个或多个帧间预测编码模式中的一个。预测处理单元41可将所得的帧内预测编码块(例如预测块)或帧间预测编码块(例如预测块)提供给加法器50以生成残差块,并且提供给加法器62以重建编码块以用于随后作为参考帧的一部分使用。预测处理单元41还将语法元素(诸如运动矢量、帧内模式指示符、划分信息和其他此类语法信息)提供给熵编码单元56。
为了选择用于当前视频块的合适的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可执行当前视频块相对于与待编码的当前块在同一帧中的一个或多个相邻块的帧内预测编码以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44执行当前视频块相对于一个或多个参考帧中的一个或多个预测块的帧间预测编码以提供时间预测。视频编码器20可执行多个编码通道,例如,为视频数据的每个块选择合适的编码模式。
在一些实施方式中,运动估计单元42通过根据视频帧序列内的预定模式生成运动矢量来确定用于当前视频帧的帧间预测模式,运动矢量指示当前视频帧内的视频块相对于参考帧内的预测块的位移。由运动估计单元42执行的运动估计可以是生成可估计针对视频块的运动的运动矢量的过程。例如,运动矢量可指示当前视频帧或图片内的视频块相对于参考帧内的预测块的位移。预定的模式可将序列中的视频帧指定为P帧或B帧。帧内BC单元48可以以与由运动估计单元42确定用于帧间预测的运动矢量类似的方式确定用于帧内BC编码的矢量(例如,块矢量),或可利用运动估计单元42确定块矢量。
在像素差方面,视频块的预测块可以是或可对应于与待编码的视频块紧密匹配的参考帧的块或参考块,像素差可由绝对差总和(Sum of Absolute Difference,SAD)、平方差总和(Sum of Square Difference,SSD)或其他差度量确定。在一些实施方式中,视频编码器20可计算用于DPB 64中存储的参考帧的子整数像素位置的值。例如,视频编码器20可对参考帧的四分之一像素位置、八分之一像素位置或其他分数像素位置的值进行插值。因此,运动估计单元42可相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精度的运动矢量。
运动估计单元42通过以下来计算针对帧间预测编码帧中的视频块的运动矢量:将视频块的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)选择的参考帧的预测块的位置进行比较,第一参考帧列表和第二参考帧列表中的每一个标识存储在DPB 64中的一个或多个参考帧。运动估计单元42将计算的运动矢量发送到运动补偿单元44,然后发送到熵编码单元56。
由运动补偿单元44执行的运动补偿可涉及基于由运动估计单元42确定的运动矢量提取或生成预测块。在接收到针对当前视频块的运动矢量后,运动补偿单元44可在参考帧列表中的一个参考帧列表中定位运动矢量所指向的预测块,从DPB 64取回预测块,并且将预测块转发到加法器50。然后,加法器50通过从正被编码的当前视频块的像素值减去由运动补偿单元44提供的预测块的像素值来形成像素差值的残差块。形成残差块的像素差值可包括亮度分量差或色度分量差或两者。运动补偿单元44还可生成与视频帧的视频块相关联的语法元素以供视频解码器30在对视频帧的视频块进行解码时使用。语法元素可包括例如定义用于识别预测块的运动矢量的语法元素、指示预测模式的任何标志、或本文描述的任何其他语法信息。应注意,运动估计单元42和运动补偿单元44可集成在一起,但出于概念目的在图2中单独示出。
在一些实施方式中,帧内BC单元48可按照与上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式生成矢量并提取预测块,但是这些预测块在与正被编码的当前块的同一帧中,并且这些矢量被称为块矢量而非运动矢量。具体地,帧内BC单元48可确定将用于对当前块进行编码的帧内预测模式。在一些示例中,帧内BC单元48可例如在不同的编码通道期间使用各种帧内预测模式来对当前块进行编码,并且通过率失真分析来测试它们的性能。接下来,帧内BC单元48可在各种测试的帧内预测模式中选择合适的帧内预测模式以使用并相应地生成帧内模式指示符。例如,帧内BC单元48可使用率失真分析针对各种测试的帧内预测模式计算率失真值,并且在测试的模式中选择具有最佳率失真特性的帧内预测模式作为合适的帧内预测模式来使用。率失真分析大体上确定编码块与被编码以生成编码块的原始未编码块之间的失真(或误差)量、以及用于生成编码块的比特率(即,比特数量)。帧内BC单元48可从针对各种编码块的失真和速率计算比率,以确定哪个帧内预测模式展现针对块的最佳率失真值。
在其他示例中,帧内BC单元48可全部或部分地使用运动估计单元42和运动补偿单元44来执行根据本文描述的实施方式的用于帧内BC预测的此类功能。在任一情况下,对于帧内块复制,在像素差方面,预测块可以是被认为与待编码的块紧密匹配的块,像素差可由SAD、SSD或其他差度量确定,并且预测块的识别可包括计算子整数像素位置的值。
无论预测块是来自根据帧内预测的同一帧还是来自根据帧间预测的不同帧,视频编码器20可通过从正被编码的当前视频块的像素值减去预测块的像素值来形成像素差值,从而形成残差块。形成残差块的像素差值可包括亮度分量差和色度分量差两者。
作为如上文所描述的由运动估计单元42和运动补偿单元44执行的帧间预测或由帧内BC单元48执行的帧内块复制预测的替代方案,帧内预测处理单元46可对当前视频块进行帧内预测。具体地,帧内预测处理单元46可确定帧内预测模式以用于对当前块进行编码。例如,帧内预测处理单元46可例如在不同的编码通道期间使用各种帧内预测模式来对当前块进行编码,并且帧内预测处理单元46(或在一些示例中,模式选择单元)可从测试的帧内预测模式中选择合适的帧内预测模式来使用。帧内预测处理单元46可将指示针对块选择的帧内预测模式的信息提供给熵编码单元56。熵编码单元56可将指示选择的帧内预测模式的信息编码到比特流中。
在预测处理单元41经由帧间预测或帧内预测确定针对当前视频块的预测块之后,加法器50通过从当前视频块减去预测块来形成残差块。残差块中的残差视频数据可被包括在一个或多个TU中并且提供给变换处理单元52。变换处理单元52使用变换(诸如离散余弦变换(Discrete Cosine Transform,DCT)或概念上类似的变换)将残差视频数据变换为变换系数。
变换处理单元52可将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小比特率。量化过程还可减小与系数中的一些或全部相关联的比特深度。可通过调整量化参数来修改量化程度。在一些示例中,量化单元54可随后对包括量化的变换系数的矩阵执行扫描。可选地,熵编码单元56可执行扫描。
在量化之后,熵编码单元56可以使用熵编码技术将量化的变换系数编码为视频比特流,例如,使用上下文自适应可变长度编码(Context Adaptive Variable LengthCoding,CAVLC)、上下文自适应二进制算术编码(Context Adaptive Binary ArithmeticCoding,CABAC)、基于语法的上下文自适应二进制算术编码(Syntax-based context-adaptive Binary Arithmetic Coding,SBAC)、概率区间划分熵(Probability IntervalPartitioning Entropy,PIPE)编码或另外的熵编码方法或技术熵编码技术。然后,可将编码的比特流发送到如图1所示的视频解码器30,或存档于如图1所示的存储设备32中以供稍后发送到视频解码器30或由视频解码器30提取。熵编码单元56还可使用熵编码技术来对用于正被编码的当前视频帧的运动矢量和其他语法元素进行编码。
反量化单元58和逆变换处理单元60分别应用反量化和逆变换以在像素域中重建残差块以用于生成用于预测其他视频块的参考块。可以生成其重建残差块。如上文指出的,运动补偿单元44可从存储在DPB 64中的帧的一个或多个参考块生成运动补偿预测块。运动补偿单元44还可将一个或多个插值滤波器应用于预测块以计算子整数像素值以用于在运动估计时使用。
加法器62将重建的残差块加到由运动补偿单元44生成的运动补偿预测块来生成参考块以存储在DPB 64中。然后,参考块可由帧内BC单元48、运动估计单元42和运动补偿单元44用作预测块以对后续视频帧中的另一视频块进行帧间预测。
图3是示出根据本申请的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、反量化单元86、逆变换处理单元88、加法器90和DPB 92。预测处理单元81进一步包括运动补偿单元82、帧内预测单元84和帧内BC单元85。视频解码器30可执行与上文结合图2关于视频编码器20所描述的编码过程基本互逆的解码过程。例如,运动补偿单元82可基于从熵解码单元80接收的运动矢量生成预测数据,而帧内预测单元84可基于从熵解码单元80接收的帧内预测模式指示符生成预测数据。
在一些示例中,视频解码器30的单元可被分派任务以执行本申请的实施方式。此外,在一些示例中,本公开的实施方式可分散在视频解码器30的多个单元中的一个或多个单元中。例如,帧内BC单元85可单独地或与视频解码器30的其他单元(诸如,运动补偿单元82、帧内预测单元84和熵解码单元80)组合地执行本申请的实施方式。在一些示例中,视频解码器30可不包括帧内BC单元85,并且帧内BC单元85的功能可由预测处理单元81的其他组件(诸如运动补偿单元82)执行。
视频数据存储器79可存储将由视频解码器30的其他组件进行解码的视频数据,诸如编码视频比特流。存储在视频数据存储器79中的视频数据可例如从存储设备32、从本地视频源(诸如相机)、经由视频数据的有线或无线网络通信,或通过访问物理数据存储介质(例如,闪存驱动器或硬盘)获得。视频数据存储器79可包括存储来自编码视频比特流的编码视频数据的编码图片缓冲器(Coded Picture Buffer,CPB)。视频解码器30的DPB 92存储参考视频数据以供视频解码器30(例如,以帧内或帧间预测解码模式)在对视频数据进行解码时使用。视频数据存储器79和DPB 92可由各种存储器设备中的任何存储器设备形成,诸如动态随机存取存储器(Dynamic Random Access Memory,DRAM)(包括同步DRAM(SDRAM))、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其他类型的存储器设备。出于说明性目的,视频数据存储器79和DPB 92在图3中描绘为视频解码器30的两个不同组件。但是对于本领域的技术人员将显而易见的是,视频数据存储器79和DPB 92可由同一存储器设备或单独存储器设备提供。在一些示例中,视频数据存储器79可与视频解码器30的其他组件一起在芯片上,或相对于那些组件在芯片外。
在解码过程期间,视频解码器30接收表示编码视频帧的视频块和相关联的语法元素的编码视频比特流。视频解码器30可在视频帧级和/或视频块级接收语法元素。视频解码器30的熵解码单元80可使用熵解码技术对比特流进行解码以获得量化系数、运动矢量或帧内预测模式指示符、以及其他语法元素。然后,熵解码单元80将运动矢量或帧内预测模式指示符和其他语法元素转发到预测处理单元81。
当视频帧被编码为帧内预测编码(例如,I)帧或用于其他类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测单元84可基于用信号发送的帧内预测模式和来自当前帧的先前解码块的参考数据来生成用于当前视频帧的视频块的预测数据。
当视频帧被编码为帧间预测编码(即,B或P)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量和其他语法元素生成针对当前视频帧的视频块的一个或多个预测块。预测块中的每一个可从参考帧列表中的一个参考帧列表内的参考帧生成。视频解码器30可基于存储在DPB 92中的参考帧使用默认构建技术来构建参考帧列表,例如,列表0和列表1。
在一些示例中,当根据本文描述的帧内BC模式对视频块进行解码时,预测处理单元81的帧内BC单元85基于从熵解码单元80接收的块矢量和其他语法元素生成针对当前视频块的预测块。预测块可在由视频编码器20处理的与当前视频块的同一图片的重建区域内。
运动补偿单元82和/或帧内BC单元85通过解析运动矢量和其他语法元素来确定针对当前视频帧的视频块的预测信息,然后使用该预测信息生成针对正被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语法元素中的一些语法元素来确定用于对视频帧的视频块进行解码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,B或P)、用于针对帧的参考帧列表中的一个或多个的构建信息、用于帧的每个帧间预测编码视频块的运动矢量、用于帧的每个帧间预测编码视频块的帧间预测状态、以及用于对当前视频帧中的视频块进行解码的其他信息。
类似地,帧内BC单元85可使用接收到的语法元素中的一些语法元素,例如确定当前视频块是使用帧内BC模式预测的标志、帧的哪些视频块在重建区域内且应被存储在DPB92中的构建信息、用于帧的每个帧内BC预测视频块的块矢量、用于帧的每个帧内BC预测视频块的帧内BC预测状态、以及用于对当前视频帧中的视频块进行解码的其他信息。
运动补偿单元82还可使用如由视频编码器20在视频块的编码期间使用的内插滤波器执行内插,以计算针对参考块的子整数像素的内插值。在这种情况下,运动补偿单元82可从接收到的语法元素确定由视频编码器20使用的内插滤波器,并且使用这些内插滤波器来生成预测块。
反量化单元86使用由视频编码器20针对视频帧中的每个视频块计算的用于确定量化程度的相同的量化参数,对在比特流中提供且被熵解码单元80解码的量化的变换系数进行反量化。逆变换处理单元88将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中重建残差块。
在运动补偿单元82或帧内BC单元85基于矢量和其他语法元素生成针对当前视频块的预测块之后,加法器90通过将来自逆变换处理单元88的残差块与由运动补偿单元82和帧内BC单元85生成的对应预测块相加,来重建针对当前视频块的解码视频块。解码视频块还可被称作当前视频块的重建块。环路滤波器91(诸如去块滤波器、SAO滤波器和/或ALF)可位于加法器90与DPB 92之间以进一步处理解码视频块。在一些示例中,可省略环路滤波器91,并且可由加法器90将解码视频块直接提供给DPB 92。然后,将给定帧中的解码视频块存储在DPB 92中,DPB 92存储用于接下来的视频块的后续运动补偿的参考帧。DPB 92或与DPB92分离的存储器设备还可存储解码视频以用于稍后呈现在显示器设备(例如,图1的显示器设备34)上。
在典型的视频编解码过程(例如,包括视频编码过程和视频解码过程)中,视频序列通常包括帧或图片的有序集合。每一帧可包括三个样点阵列,表示为SL、SCb和SCr。SL是亮度样点的二维阵列。SCb是Cb色度样点的二维阵列。SCr是Cr色度样点的二维阵列。在其他情况下,帧可以是单色的,因此仅包括亮度样点的一个二维阵列。
如图4A中所示,视频编码器20(或更具体地,划分单元45)通过首先将帧划分为CTU的集合来生成帧的编码表示。视频帧可包括以光栅扫描顺序从左到右和从上到下连续排列的整数个CTU。每个CTU是最大的逻辑编码单元,并且由视频编码器20在序列参数集中用信号发送CTU的宽度和高度,使得视频序列中的所有CTU具有128×128、64×64、32×32和16×16之一的相同尺寸。但是应当注意,本公开中的CTU不一定限于特定尺寸。如图4B中所示,每个CTU可包括亮度样点的一个CTB、色度样点的两个对应编码树块、以及用于对编码树块的样点进行编解码的语法元素。语法元素描述编码像素块的不同类型的单元的性质以及可如何在视频解码器30处重建视频序列,包括帧间预测或帧内预测、帧内预测模式、运动矢量和其他参数。在单色图片或具有三个单独颜色平面的图片中,CTU可包括单个编码树块和用于对该编码树块的样点进行编解码的语法元素。编码树块可以是N×N样点块。
为实现更好的性能,视频编码器20可对CTU的编码树块递归地执行树划分,例如二叉树划分、三叉树划分、四叉树划分或其组合,并且将CTU分割为更小的CU。如图4C中所描绘的,首先将64×64CTU 400分割为四个较小的CU,每个CU具有32×32的块尺寸。在四个较小的CU中,分别将CU 410和CU 420分割为块尺寸为16×16的四个CU。分别将两个16×16的CU430和CU 440进一步分割为块尺寸为8×8的四个CU。图4D描绘了示出如图4C中所描绘的CTU400的划分过程的最终结果的四叉树数据结构,四叉树的每个叶节点与范围从32×32到8×8的各个尺寸的一个CU对应。类似于图4B中描绘的CTU,每个CU可包括相同尺寸的帧的亮度样点的CB和色度样点的两个对应编码块、和用于对编码块的样点进行编解码的语法元素。在单色图片或具有三个单独颜色平面的图片中,CU可包括单个编码块和用于对编码块的样点进行编解码的语法结构。应注意,图4C和图4D中所描绘的四叉树划分仅出于说明性目的,并且一个CTU可基于四叉树/三叉树/二叉树划分被拆分为CU以适应于变化的局部特性。在多类型树结构中,一个CTU被四叉树结构划分,并且每个四叉树叶CU可被二叉树结构和三叉树结构进一步划分。如图4E所示,宽度为W且高度为H的编码块存在多种可能的划分类型,即四元划分、垂直二元划分、水平二元划分、垂直三元划分、垂直扩展三元划分、水平三元划分和水平扩展三元划分。
在一些实施方式中,视频编码器20可进一步将CU的编码块划分为一个或多个M×NPB。PB可包括被应用相同预测(帧间或帧内)的矩形(正方形或非正方形)样点块。CU的PU可包括亮度样点的PB、色度样点的两个对应PB和用于对PB进行预测的语法元素。在单色图片或具有三个单独颜色平面的图片中,PU可包括单个PB和用于对PB进行预测的语法结构。视频编码器20可生成针对CU的每个PU的亮度PB、Cb PB和Cr PB的预测亮度块、预测Cb块和预测Cr块。
视频编码器20可使用帧内预测或帧间预测来生成针对PU的预测块。如果视频编码器20使用帧内预测来生成PU的预测块,则视频编码器20可基于与PU相关联的帧的解码样点来生成PU的预测块。如果视频编码器20使用帧间预测来生成PU的预测块,则视频编码器20可基于除与PU相关联的帧之外的一个或多个帧的解码样点来生成PU的预测块。
在视频编码器20生成针对CU的一个或多个PU的预测亮度块、预测Cb块和预测Cr块之后,视频编码器20可通过从CU的原始亮度编码块减去CU的预测亮度块来生成针对CU的亮度残差块,使得CU的亮度残差块中的每个样点指示CU的预测亮度块之一中的亮度样点与CU的原始亮度编码块中的对应样点之间的差。类似地,视频编码器20可分别生成针对CU的Cb残差块和Cr残差块,使得CU的Cb残差块中的每个样点指示CU的预测Cb块之一中的Cb样点与CU的原始Cb编码块中的对应样点之间的差,并且CU的Cr残差块中的每个样点可指示CU的预测Cr块之一中的Cr样点与CU的原始Cr编码块中的对应样点之间的差。
此外,如图4C中所示,视频编码器20可使用四叉树划分分别将CU的亮度残差块、Cb残差块和Cr残差块分解成一个或多个亮度变换块、Cb变换块和Cr变换块。变换块可包括被应用相同变换的矩形(正方形或非正方形)样点块。CU的TU可包括亮度样点的变换块、色度样点的两个对应变换块和用于对变换块样点进行变换的语法元素。因此,CU的每个TU可与亮度变换块、Cb变换块和Cr变换块相关联。在一些示例中,与TU相关联的亮度变换块可以是CU的亮度残差块的子块。Cb变换块可以是CU的Cb残差块的子块。Cr变换块可以是CU的Cr残差块的子块。在单色图片或具有三个单独颜色平面的图片中,TU可包括单个变换块和用于对该变换块的样点进行变换的语法结构。
视频编码器20可将一个或多个变换应用于TU的亮度变换块以生成针对TU的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可将一个或多个变换应用于TU的Cb变换块以生成针对TU的Cb系数块。视频编码器20可将一个或多个变换应用于TU的Cr变换块以生成针对TU的Cr系数块。
在生成系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,视频编码器20可对系数块进行量化。量化通常是指变换系数被量化以可能减少用于表示变换系数的数据量从而提供进一步压缩的过程。在视频编码器20对系数块进行量化之后,视频编码器20可应用熵编码技术来对指示量化的变换系数的语法元素进行编码。例如,视频编码器20可对指示量化的变换系数的语法元素执行CABAC。最后,视频编码器20可输出包括比特序列的比特流,比特序列形成编码帧和相关联数据的表示,比特流被保存于存储设备32中或被发送到目标设备14。
在接收到由视频编码器20生成的比特流之后,视频解码器30可解析比特流以从比特流获得语法元素。视频解码器30可至少部分地基于从比特流获得的语法元素来对视频数据的帧进行重建。对视频数据进行重建的过程通常与由视频编码器20执行的编码过程互逆。例如,视频解码器30可对与当前CU的TU相关联的系数块执行逆变换以重建与当前CU的TU相关联的残差块。视频解码器30还通过将针对当前CU的PU的预测块的样点加到当前CU的TU的变换块的对应样点,来重建当前CU的编码块。在重建针对帧的每个CU的编码块之后,视频解码器30可重建帧。
如上所述,视频编解码主要使用两种模式(即,帧之内预测(或帧内预测)和帧之间预测(或帧间预测))来实现视频压缩。应注意,帧内块复制(intra block copy,IBC)可被视为帧内预测或第三模式。在两种模式之间,帧间预测比帧内预测对编解码效率的贡献更大,这是因为使用运动矢量来从参考视频块预测当前视频块。
但是随着不断改进的视频数据捕获技术和用于保留视频数据中的细节的更细化的视频块尺寸,表示当前帧的运动矢量所需的数据量也显著增加。克服此挑战的一种方式是受益于以下事实:不仅空间域和时间域两者中的一组相邻CU具有用于预测目的的相似视频数据,而且这些相邻CU之间的运动矢量也是相似的。因此,可通过探索空间相邻CU和/或时间同位CU的空间和时间相关性来使用空间相邻CU和/或时间同位CU的运动信息作为当前CU的运动信息(例如,运动矢量)的近似,这也被称为当前CU的“运动矢量预测因子(MotionVector Predictor,MVP)”。
代替将当前CU的实际运动矢量编码到视频比特流中(例如,实际运动矢量由如上文结合图2所描述由运动估计单元42确定),从当前CU的实际运动矢量减去当前CU的运动矢量预测因子以生成当前CU的运动矢量差(Motion Vector Difference,MVD)。通过这样做,不需要将由运动估计单元42针对帧的每个CU确定的运动矢量编码到视频比特流中,并且可显著减少视频比特流中用于表示运动信息的数据量。
如在编码块的帧间预测期间选择参考帧中的预测块的过程,视频编码器20和视频解码器30两者可采用一组规则以用于使用与当前CU的空间相邻CU和/或时间同位CU相关联的那些潜在候选运动矢量来构建当前CU的运动矢量候选列表(也称为“合并列表”),然后从运动矢量候选列表选择一个成员作为当前CU的运动矢量预测因子。通过这样做,不需要将运动矢量候选列表本身从视频编码器20发送到视频解码器30,并且运动矢量候选列表内所选择的运动矢量预测因子的索引足以使视频编码器20和视频解码器30使用运动矢量候选列表内相同的运动矢量预测因子来对当前CU进行编码和解码。因此,仅需要将选择的运动矢量预测因子的索引从视频编码器20发送到视频解码器30。
图5是根据一些示例的用于双边滤波的示例性滤波器形状的示图。双边滤波是视频编解码中使用的滤波技术。对于双边滤波的滤波器核,视频块中的每个样点的贡献不仅取决于样点之间的空间距离,而且取决于样点之间的强度差。位于位置(i,j)处的样点可以使用其在滤波窗口内的位置(k,l)处的相邻样点来滤波,其中样点(i,j)是滤波窗口的中心样点。分配给样点(k,l)用于对样点(i,j)进行滤波的权重ω(i,j,k,l)可用以下等式表示:
在上面的等式(1)中,I(i,j)和I(k,l)分别表示样点(i,j)和(k,l)的强度值。双边滤波器的强度由σd(表示空间强度)和σr(表示增强强度)控制。输出样点(例如,中心样点(i,j)的输出滤波样点)可以是滤波窗口内的样点的加权平均(例如,分别基于上述等式(1)确定权重)。
在增强型压缩模型(ECM)中,可存在三个环路滤波模块,包括去块滤波器(DBF)、样点自适应偏移(SAO)和自适应环路滤波器(ALF)。在VVC标准的开发期间,最初提出双边滤波器以在逆变换之后细化重建块。之后,双边滤波器的应用被扩展为环路滤波的一部分,其可与SAO联合使用,如以下等式(2)所示。双边滤波器创建每个样点的双边滤波偏移,双边滤波偏移与双边滤波器的对应输入样点相加,然后在进行到ALF之前被裁剪。例如,联合的双边滤波器和SAO滤波器的输出可使用以下等式来表达:
IOUT=clip3(IC+ΔIBIF+ΔISAO) (2)
在以上表达式(2)中,IOUT表示联合的双边滤波器和SAO滤波器的输出,其也表示为用作后续ALF的输入的滤波样点。IC表示中心样点的强度,其也是从去块滤波器接收的双边滤波器的输入样点。ΔIBIF表示双边滤波偏移。ΔISAO表示由SAO滤波器生成的偏移值。clip3(·)表示裁剪函数,以确保输出在[最小值(minValue),最大值(maxValue)]的范围内,其用以下等式表示:
clip3(x)=min(max(minValue,x),maxValue) (3)
在ECM中实施双边滤波提供视频编码器在CTU级和/或条带级启用或禁用滤波的可能性。视频编码器通过评估率失真优化(RDO)代价来做出决定。下表1、表2和表3分别提供用于双边滤波器的图片参数集(PPS)原始字节序列有效载荷(RBSP)语法、条带头语法和编码树单元语法。
表1:用于双边滤波器的PPS RBSP语法
在表1中,如果参数pps_bilateral_filter_enabled_flag等于0,则其指定针对参考PPS的条带禁用双边滤波器。如果参数pps_bilateral_filter_enabled_flag等于1,则其指定针对参考PPS的条带启用双边滤波器。参数bilateral_filter_strength指定在双边变换块滤波过程中使用的双边滤波器强度值。bilateral_filter_strength的值可以在0到2的范围(包括0和2)内。参数bilateral_filter_qp_offset指定针对参考PPS的条带,在双边滤波器查找表LUT(x)的推导中使用的偏移。参数bilateral_filter_qp_offset可在-12到+12的范围(包含-12和+12)内。
表2:用于双边滤波器的条带头语法
表3:用于双边滤波器的编码树单元语法
在表2中,如果参数slice_bilateral_filter_all_ctb_enabled_flag等于1,则其指定双边滤波器被启用且被应用于当前条带中的所有CTB。当slice_bilateral_filter_all_ctb_enabled_flag不存在时,其被推断为等于0。如果参数slice_bilateral_filter_enabled_flag等于1,则其指定双边滤波器被启用且可被应用于当前条带的CTB。当slice_bilater_filter_enabled_flag不存在时,其被推断为等于slice_bilateral_filter_all_ctb_enabled_flag。
在表3中,如果bilateral_filter_ctb_flag[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]等于1,则其指定双边滤波器被应用于亮度位置(xCtb,yCtb)处的编码树单元的亮度编码树块。如果bilateral_filter_ctb_flag[cIdx][xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]等于0,则其指定双边滤波器不被应用于亮度位置(xCtb,yCtb)处的编码树单元的亮度编码树块。当bilateral_filter_ctb_flag不存在时,其被推断为等于(slice_bilateral_filter_all_ctb_enabled_flag&slice_bilateral_filter_enabled_flag)。
用于视频块(例如,CTU)的双边滤波过程可如下进行。在样点不可用的图片边界处,双边滤波器可使用扩展(例如,样点重复)来填充不可用样点。对于虚拟边界,可执行类似于SAO的行为,即,不发生滤波。当跨水平CTU边界时,双边滤波器可如SAO滤波那样访问样点。作为图5的滤波器形状中所示的示例,如果中心样点IC位于当前CTU的顶部线上,则可从当前CTU上方的另一CTU读取INW、IA和INE(例如,就像SAO滤波所做的那样),但IAA可被填充。因此,不需要额外的线缓冲器。
滤波器窗口内且在中心样点周围的样点可以被称为中心样点的相邻样点,并且可以根据图5来表示,其中A、B、L和R分别代表上、下、左和右,并且NW、NE、SW和SE分别代表西北、东北、西南和东南。同样地,AA代表上方的上方,BB代表下方的下方,LL代表左侧的左侧,并且RR代表右侧的右侧。
距离中心样点IC一步长的每个相邻样点(例如,IA、IR等等)可对相应修改符值(例如,等等)有贡献,其可如下计算。例如,通过以右相邻样点IR为例,可使用以下等式计算样点IR与中心样点IC之间的差ΔIR
ΔIR=(|IR-IC|+4)>>3 (4)
在上述等式(4)中,|·|表示绝对值,并且>>表示右移3。当数据具有10比特大小时,应用上述等式(4)。对于不具有10比特大小的数据,可使用以下等式计算样点IR和中心样点IC之间的差ΔIR
ΔIR=(|IR-IC|+2n-6)>>(n-7) (5)
在上面的等式(5)中,n表示比特的数量(例如,对于8比特数据,n=8)。然后,可对差值ΔIR进行裁剪以获得小于16的裁剪差值sIR,如以下等式所示:
sIR=min(15,ΔIR) (6)
样点IR的修改符值可如以下等式所示来计算:
在上述等式(7)中,LUTROW[]表示LUT,其是由qpb=clip(0,25,QP+bilateral_filter_qp_offset-17)的值确定的16个值的阵列。
类似地,通过执行类似于上文关于等式(4)-(7)所描述的那些操作的操作,可分别从左侧、上方和下方相邻样点IL、IA和IB计算IL、IA和IB的修改符值 和/>本文不再重复类似的描述。
对于对角线样点INW、INE、ISE、ISW以及两步长远的样点IAA、IBB、IRR和ILL(其距中心样点两步长远),修改符值的计算也遵循上面的等式(4)-(6),其中通过将值移位1来修改上面的等式(7)。例如,使用对角线样点ISE作为示例,如以下等式所示修改上述等式(7),以计算修改符值
类似地,同样地计算其他对角线样点INW、INE、ISW和两步长远的样点IAA、IBB、IRR和ILL。然后,可将修改符值相加在一起以生成修改符总和msum,如以下等式所示:
应注意,对于先前样点,等于/>同样,对于上方样点,/>等于/>并且对于对角线修改符值和两步长远的修改符值也可找到类似的对称性。这意味着在硬件实现中,计算六个修改符值/> 和/>就足够了,而剩余的六个修改符值/>和/>可从先前计算的值中获得。
接下来,修改符总和msum可以乘以乘数c(例如,c=1、2或3),这可使用单个加法器和逻辑与(AND)门来执行,如以下等式所示:
cv=k1&(msum<<1)+k2&msum (10)
在上面的等式(10)中,&表示逻辑与(AND)运算,k1是乘数c的最高有效位,并且k2是乘数c的最低有效位。乘数c的值可使用最小块维度D=min(宽度,高度)来获得,如下表4所示。
表4:c参数和块的最小尺寸D=min(宽度,高度)
块类型 D≤4 4<D<16 D≥16
帧内 c=3 c=2 c=1
帧间 c=2 c=2 c=1
随后,可使用用于全强度滤波的以下等式(11)或用于半强度滤波的以下等式(12)来计算中心样点IC的双边滤波器偏移ΔIBIF
ΔIBIF=(cv+16)>>5,或
ΔIBIF=(cv+32)>>6。
可使用以下等式来计算用于获得n比特数据的双边滤波器偏移ΔIBIF的通式:
radd=214-n-bilateral_filter_strength (13),
rshift=15-n-bilateal_filter_strength (14),
ΔIBIF=(cv+radd)>>rshift (15)。
在上述等式(13)-(15)中,bilateral_filter_strength可以是0或1并且在PPS中被用信号发送。
在双边滤波的现有设计中,用固定LUT实施滤波操作。也就是说,即使视频帧中的视频内容改变,LUT对于不同的视频帧也是固定的(或不变的)。例如,在双边滤波的现有设计中,以上等式(7)或(8)中的LUT对于具有不同视频内容的不同视频帧是不变的。由于视频内容通常是非静止的,因此仅用一个固定LUT来捕获非静止视频内容可能是困难且低效的。
此外,根据双边滤波的原理,双边滤波的滤波器系数对于具有到中心样点的不同距离的样点是不同的。例如,再次参考图5,IR、IRR和INE具有到中心样点IC的不同距离,并且因此滤波器系数(例如,查找值)对于这三个位置应该是不同的。然而,在双边滤波的现有设计中,IRR和INE对滤波结果可能具有相同贡献。这些现有设计可简化LUT的设计,但会降低视频编解码的压缩效率。
与本公开一致,本文中公开了利用各种双边滤波方案的视频处理方法和装置以提高双边滤波的编解码效率。还可以提高视频编解码的压缩效率。在一些实施方式中,本文中公开了自适应双边滤波方案以处理视频内容的非静止特性,其中针对不同视频(或视频帧)自适应地推导不同的LUT。例如,对于不同的视频内容,LUT可不同。在一些实施方式中,本文中公开了基于分类的双边滤波方案以处理多样视频内容。例如,本文中公开了基于频带的分类方案,其首先根据样点值将待滤波的每个样点分类到对应类别,然后使用针对对应类别确定的LUT对样点进行滤波。在一些实施方式中,本文中公开了位置相关的双边滤波方案以提高双边滤波精度。可针对具有到双边滤波器的中心样点的不同距离的样点设计不同的LUT。
图6是示出根据本公开的一些实施方式的示例性双边滤波方案600的框图。在一些实施方式中,图6的双边滤波方案600可由视频编码器20的环路滤波器63或视频解码器30的环路滤波器91执行。在一些实施方式中,图6的双边滤波方案600可由编码器侧或解码器侧处的处理器(例如,如图11中所示的处理器1120)执行。仅出于说明的目的,关于处理器提供图6的以下描述。在一些实施方式中,双边滤波方案600可包括自适应双边滤波方案602、位置相关的双边滤波方案604或基于分类的双边滤波方案606。
对于双边滤波方案600的总体过程,处理器可接收用于环路滤波的重建块。重建块是根据来自视频的视频帧的视频块而重建的。重建块可包括多个重建样点。
然后,处理器可将双边滤波方案600应用于重建块以生成针对重建块中的多个重建样点的多个双边滤波偏移。针对重建样点的双边滤波偏移可在本文中表示为ΔIBIF。例如,处理器可应用自适应双边滤波方案602、位置相关的双边滤波方案604或基于分类的双边滤波方案606以分别生成针对多个重建样点的多个双边滤波偏移,如下文更详细地描述。
随后,处理器可分别基于多个双边滤波偏移生成多个滤波样点。例如,处理器可根据以上等式(2)基于与重建样点相关联的对应双边滤波偏移ΔIBIF来计算滤波样点IOUT。多个滤波样点可被用作后续自适应环路滤波的输入。
如上文所提及,双边滤波的现有设计是以固定LUT实施,固定LUT无法适应视频内容的多样化及非静态性质。为了解决此问题,本文中公开了自适应双边滤波方案602以用最小二乘法推导不同视频帧的不同LUT。然后,可在比特流中用信号发送推导的LUT。具体来说,处理器可应用自适应双边滤波方案602以生成针对来自视频帧的重建块中的多个重建样点的多个双边滤波偏移。例如,对于来自视频帧的每个重建块,处理器可将与视频帧对应的LUT应用于重建块以分别生成针对多个重建样点的多个双边滤波偏移。可从视频帧自适应地推导LUT。
开始于自适应双边滤波方案602的过程,对于来自多个重建样点且是双边滤波窗口的中心样点的每个重建样点,处理器可基于双边滤波窗口中的相邻样点集合来确定加权因子集合。例如,处理器可应用以下算法1来计算与中心样点相关联的加权因子集合。具体地,对于双边滤波器窗口中的每个相邻样点Ip,处理器可根据上述等式(4)-(6)计算样点Ip与中心样点IC之间的裁剪差sIp。然后,处理器可计算与样点Ip相关联的修改符值εp,接着基于修改符值εp修改加权因子(其是由裁剪差sIp索引的加权因子)的值。例如,算法1描述了以下内容:
如以上等式(7)-(9)中所示,中心样点的滤波过程可能需要对来自其相邻样点的所有修改符值求和,其中每个修改符值是基于LUT生成。关于本文中公开的自适应双边滤波方案602,处理器可基于(a)从以上算法1推导的加权因子集合和(b)与视频帧对应的LUT来确定重建样点(其是当前双边滤波窗口的中心样点)的修改符总和。例如,可通过将上述等式(9)转换为以下等式来计算修改符总和:
在上述等式(18)中,LUT[k]表示与视频帧对应的LUT中的第k个表元素(例如,第k条目)。nk是表元素LUT[k]的加权因子,并且可根据上述算法1中所示的相邻样点推导。msum表示修改符总和。根据上面的等式(18),可使用加权因子集合nk(k=0,1,…,15)将修改符总和msum计算为来自LUT的表元素LUT[k]集合的线性组合。
接下来,处理器可基于修改符总和确定针对重建样点的双边滤波偏移。例如,修改符总和msum可乘以如上述等式(10)所示的乘数c来获得相乘值cv,然后进行移位运算。上述等式(11)中的移位运算可被转换为除法运算以获得双边滤波偏移ΔIBIF,如以下等式所示:
在一些实施方式中,LUT可自适应地从视频帧推导。例如,LUT可由视频编码器20使用最小二乘法推导。预期双边滤波的目标是与中心样点IC对应的原始样点Iorg。因此,理想的双边滤波器可满足以下等式:
ΔIBIF_ideal=Iorg-IC (20)
在上面的等式(20)中,ΔIBIF_ideal表示理想的双边滤波偏移。从上面的等式(18),观察到每个样点的双边滤波可被认为是LUT中的表元素的线性组合。因此,与自适应环路滤波一样,可通过最小二乘法推导LUT中的表元素。具体地,处理器可形成包括多个训练样本的训练数据集。每个训练样本可包含对应的重建样点、对应的重建样点的相邻样点和对应的重建样点的原始样点。处理器可应用最小二乘法,基于训练数据集来训练针对LUT的表元素。在通过训练过程推导表元素之后,LUT可被应用于双边滤波操作中。
例如,在视频编码器侧,在视频帧被重建并由去块滤波器滤波之后,可选择视频帧的样点来形成训练数据集中的多个训练样本。每个训练样本可包括重建样点、重建样点的相邻样点和重建样点的原始样点。对于每个训练样本,可根据上述等式(20)获得理想的双边滤波偏移ΔIBIF_ideal。针对LUT的表元素可被确定为具有可使多个训练样本的理想双边滤波偏移(ΔIBIf_IDeaL)与计算的双边偏移(ΔIbif)之间的平方误差之和最小化的值。换句话说,可使用最小二乘法来训练LUT。除了最小二乘法之外,还可使用迭代方法来训练LUT。例如,表元素可用初始值进行初始化(例如,用来自固定LUT的值进行初始化)。然后,可自适应地调整表元素,使得可选择使多个训练样本的理想双边滤波偏移(ΔIbIF_ideal)与计算的双边偏移(ΔIBIF)之间的平方误差之和最小化的一组调整值作为LUT中的表元素的值。
在推导LUT之后,处理器可在比特流中用信号发送针对LUT的表元素。在一些实施方式中,可在PPS或APS中用信号发送推导的表元素。在一些实施方式中,推导的表元素可被直接编码并通过比特流发送。在一些实施方式中,可通过双边滤波中的固定LUT的对应表元素来预测推导的表元素,使得推导的表元素与固定LUT的对应表元素之间的残差被编码并通过比特流发送。推导的表元素(或推导的表元素与固定LUT的对应表元素之间的残差)可使用指数哥伦布码或更有效的任何其他码来编码。
如上所述,双边滤波同时考虑样点距离差和样点强度差。然而,在双边滤波的现有设计中,使用单个LUT处置具有到中心样点的不同距离的样点,这可能导致次优滤波结果。为了解决此问题,本文中公开了位置相关的双边滤波方案604以设计用于具有到中心样点的不同距离的样点的不同LUT。例如,在一步长远的相邻集合{A,B,L,R}(例如,IA、IB、IL、IR)处的相邻样点共享第一LUT,在两步长远的相邻集合{AA,BB,LL,RR}(例如,IAA、IBB、ILL、IRR)处的相邻样点共享第二LUT,并且在对角线相邻集合{NW,NE,SW,SE}(例如,INW、INE、ISW、ISE)处的相邻样点共享第三LUT。对用于相邻样点的第一LUT、第二LUT和第三LUT的选择取决于相邻样点与中心样点之间的距离,且第一LUT、第二LUT和第三LUT中的每一个可被称作位置相关的LUT。
关于位置相关双边滤波方案604,处理器可将一个或多个位置相关的LUT应用于重建块以生成针对重建块中的多个重建样点的多个双边滤波偏移。首先,对于来自多个重建样点且是双边滤波窗口的中心样点的每个重建样点,处理器可基于一个或多个位置相关的LUT来确定针对双边滤波窗口中的多个相邻样点的多个修改符值。具体来说,对于来自多个相邻样点的每个相邻样点,处理器可基于相邻样点与中心样点之间的距离从一个或多个位置相关的LUT确定针对相邻样点的位置相关的LUT。处理器可基于位置相关的LUT确定针对相邻样点的修改符值。
例如,处理器可应用以上等式(4)-(8)以分别确定针对多个相邻样点的多个修改符值,其中等式(7)或(8)中的LUT根据对应相邻样点与中心样点之间的距离而被选择为位置相关的LUT。也就是说,当应用等式(7)或(8)时,可针对一步长远的相邻样点IA、IB、IL和IR选择第一位置相关的LUT;可针对两步长远的相邻样点IAA、IBB、ILL、IRR选择第二位置相关的LUT;并且可针对对角线相邻样点INW、INE、ISW、ISE选择第三位置相关的LUT。
也就是说,多个相邻样点可被划分成一个或多个样点组,其中每个样点组中的对应相邻样点具有到中心样点的相同距离。例如,第一样点组可包括一步长远的相邻样点IA、IB、IL和IR,其中第一位置相关的LUT应用于第一样点组中的每个相邻样点。第二样点组可包括两步长远的相邻样点IAA、IBB、ILL、IRR,其中第二位置相关的LUT应用于第二样点组中的每个相邻样点。第三样点组可包括对角线相邻样点INW、INE、ISW、ISW,其中第三位置相关的LUT应用于第三样点组中的每个相邻样点。
接下来,处理器可将针对重建样点的修改符总和确定为多个修改符值的总和。例如,处理器可应用以上等式(9)来确定针对重建样点的修改符总和。可选地,处理器可应用以上等式(18)来确定针对重建样点的修改符总和,其中每个表元素LUT[k]是从对应的位置相关的LUT获得。
随后,处理器可基于修改符总和确定针对重建样点的双边滤波偏移。例如,处理器可应用以上等式(10)-(15)以基于针对重建样点的修改符总和确定针对每个重建样点的双边滤波偏移。可选地,处理器可应用以上等式(19)以基于针对重建样点的修改符总和确定针对每个重建样点的双边滤波偏移。
在一些实施方式中,一个或多个位置相关的LUT中的每一个可以是针对来自视频的不同视频帧固定的LUT。例如,固定的位置相关的LUT的设计可以遵循ECM中双边滤波设计的精神。
可选地,可从视频帧自适应地推导一个或多个位置相关的LUT中的每一个。对于位置相关的双边滤波方案604,当与自适应双边滤波方案602中的LUT相比时,可以增加位置相关的LUT的大小。位置相关的LUT中的表元素的推导遵循如上文所描述的自适应双边滤波方案602的类似精神。
例如,可使用上文所描述的最小二乘法来确定一个或多个位置相关的LUT中的每一个。具体地,对于包括与中心样点具有相同距离的对应相邻样点的每个样点组,可形成训练数据集以包括与样点组相关联的多个训练样本。每个训练样本可包括样点组中的对应重建样点、对应重建样点的相邻样点和对应重建样点的原始样点。可将最小二乘法应用于训练数据集以推导与样点组对应的位置相关的LUT的一组表元素。
在自然场景中,视频内容非常复杂和多样,并且难以用单个滤波器处理所有视频内容。相反,视频内容可首先被分类为若干类别,并且每个类别可用对应的滤波器来处理。例如,在自适应环路滤波技术中,可首先将CTU划分为若干子块(在VVC中为4×4),并且可根据子块的方向性和活动性将每个子块分类为25个类别中的一个类别。对于每个类别,可推导并应用对应的滤波器。这种分类可有效地处理各种视频内容的处理。遵循类似精神,本文中公开了基于分类的双边滤波方案606以提高双边滤波的编解码效率。
关于基于分类的双边滤波方案606,处理器可最初将重建块划分为多个子块,并且将多个子块分类为一个或多个类别。处理器可分别确定用于一个或多个类别的一个或多个LUT。对于被分类到对应类别的子块中的每个重建样点,处理器可应用针对对应类别确定的LUT来生成针对重建样点的双边滤波偏移。例如,基于针对对应类别确定的LUT,处理器可应用以上等式(4)-(15)来生成针对被分类到对应类别中的重建样点的双边滤波偏移。可选地,基于针对对应类别确定的LUT,处理器可应用以上等式(18)-(19)来生成针对被分类到对应类别中的重建样点的双边滤波偏移。
在一些实施方式中,基于分类的双边滤波方案606可包括基于梯度和活动性的分类方案。例如,可将重建块划分为多个子块,并且可基于子块的方向性和活动性值将每个子块分类为对应类别。对于每个类别,可推导对应的LUT并将其应用于属于该类别的子块。
在一些实施方式中,基于分类的双边滤波方案606可包括基于频带的分类方案。具体地,可将重建块划分为多个子块,并且可基于子块的频带索引将每个子块分类为对应的类别。例如,子块的尺寸可为N×N,子块中的样点值表示为pi,j,其中i,j=0,1,…,N-1,并且频带的总数为NB。然后,可使用以下等式推导子块的频带索引:
在上述等式(21)中,maxVal表示最大像素值,并且对于10比特内容,maxVal为1023。例如,如果频带的总数为25,并且子块尺寸为2×2,则可使用以下等式推导子块的频带索引:
在将多个子块分类为一个或多个类别之后,可推导针对类别的对应LUT并且将其应用于属于该类别的子块。在一些实施方式中,针对一个或多个类别的一个或多个LUT中的每一个可以是用于来自视频的不同视频帧的固定LUT。可选地,可使用上述最小二乘法自适应地推导一个或多个LUT中的每一个。例如,对于针对类别的LUT的自适应推导,可收集用于每个类别的训练样本以形成用于该类别的训练数据集。可将最小二乘法应用于训练数据集以推导该类别的LUT的表元素。
图7是根据本公开的一些实施方式的用于视频编解码中的双边滤波的示例性方法700的流程图。方法700可由与视频编码器20或视频解码器30相关联的处理器实施,并且可包括如下文所描述的步骤702到706。一些步骤可能是执行本文提供的公开内容的可选步骤。此外,一些步骤可同时执行,或者以与图7中所示的顺序不同的顺序执行。
在步骤702中,处理器可接收用于环路滤波的重建块。重建块可以是从来自视频的视频帧的视频块重建的。
在步骤704中,处理器可将双边滤波方案应用于重建块以生成针对重建块中的多个重建样点的多个双边滤波偏移。例如,双边滤波方案可以是自适应双边滤波方案。处理器可将与视频帧对应的LUT应用于重建块以生成针对多个重建样点的多个双边滤波偏移。可以从视频帧自适应地推导LUT。下文参考图8更详细地描述用于执行自适应双边滤波方案的示例性方法。
在另一示例中,双边滤波方案可以是位置相关的双边滤波方案。处理器可将一个或多个位置相关的LUT应用于重建块以生成针对多个重建样点的多个双边滤波偏移。下文参考图9更详细地描述用于执行位置相关的双边滤波方案的示例性方法。
在又一示例中,双边滤波方案可以是基于分类的双边滤波方案。处理器可以将重建块划分为多个子块,并将多个子块分类为一个或多个类别。处理器可分别确定用于一个或多个类别的一个或多个LUT。对于被分类为对应类别的子块中的每个重建样点,处理器可应用针对对应类别确定的LUT来生成针对重建样点的双边滤波偏移。下文参考图10更详细地描述用于执行基于分类的双边滤波方案的示例性方法。
在步骤706中,处理器可基于多个双边滤波偏移生成多个滤波样点。多个滤波样点被用作后续自适应环路滤波的输入。
图8是根据本公开的一些实施方式的用于对重建块执行自适应双边滤波方案的示例性方法800的流程图。方法800可由与视频编码器20或视频解码器30相关联的处理器实施,并且可包括如下文所描述的步骤802到806。一些步骤可能是执行本文提供的公开内容的可选步骤。此外,一些步骤可同时执行,或者以与图8中所示的顺序不同的顺序执行。
方法800可以是方法700的步骤704中的双边滤波方案的示例性实施方式。可针对来自重建块中的多个重建样点的每个重建样点执行方法800,其中重建样点是双边滤波窗口的中心样点。
在步骤802中,处理器可基于与作为双边滤波窗口中的中心样点的重建样点相关联的相邻样点集合来确定加权因子集合。
在步骤804中,处理器可基于加权因子集合和与视频帧对应的自适应LUT来确定针对重建样点的修改符总和。
在步骤806中,处理器可基于修改符总和来确定针对重建样点的双边滤波偏移。
图9是根据本公开的一些实施方式的用于对重建块执行位置相关的双边滤波方案的示例性方法900的流程图。方法900可由与视频编码器20或视频解码器30相关联的处理器实施,并且可包括如下文所描述的步骤902到906。一些步骤可能是执行本文提供的公开内容的可选步骤。此外,一些步骤可同时执行,或者以与图9中所示的顺序不同的顺序执行。
方法900可以是方法700的步骤704中的双边滤波方案的示例性实施方式。可对重建块中的多个重建样点中的每个重建样点执行方法900。
在步骤902中,对于来自多个重建样点的作为双边滤波窗口的中心样点的每个重建样点,处理器可基于一个或多个位置相关的LUT来确定针对双边滤波窗口中的多个相邻样点的多个修改符值。
在步骤904中,处理器可将针对重建样点的修改符总和确定为多个修改符值的总和。
在步骤906中,处理器可基于修改符总和来确定针对重建样点的双边滤波偏移。
图10是根据本公开的一些实施方式的用于对重建块执行基于分类的双边滤波方案的示例性方法1000的流程图。方法1000可以是方法700的步骤704中的双边滤波方案的示例性实施方式。方法1000可由与视频编码器20或视频解码器30相关联的处理器实施,并且可包括如下文所描述的步骤1002到1008。一些步骤可能是执行本文提供的公开内容的可选步骤。此外,一些步骤可同时执行,或者以与图10中所示的顺序不同的顺序执行。
在步骤1002中,处理器可将重建块划分为多个子块。
在步骤1004中,处理器可基于每个子块的对应方向性和活动性值或对应频带索引,将多个子块分类为一个或多个类别。
在步骤1006中,处理器可分别确定针对一个或多个类别的一个或多个LUT。
在步骤1008中,对于被分类为对应类别的子块中的每个重建样点,处理器可应用针对对应类别确定的LUT来生成针对重建样点的双边滤波偏移。
图11是根据本公开的一些实施方式的使用最小二乘法推导LUT的示例性方法1100的流程图。方法1100可由与视频编码器20或视频解码器30相关联的处理器实施,并且可包括如下文所描述的步骤1102到1104。一些步骤可能是执行本文提供的公开内容的可选步骤。此外,一些步骤可同时执行,或者以与图11中所示的顺序不同的顺序执行。
在步骤1102中,处理器可形成包括多个训练样本的训练数据集。每个训练样本可包括对应重建样点、对应重建样点的相邻样点和对应重建样点的原始样点。
在步骤1104中,处理器可将最小二乘法应用于训练数据集以推导LUT的一组表元素。具体地,对于每个训练样本,可根据上述等式(20)获得理想的双边滤波偏移ΔIBIF_ideal。LUT的表元素可被确定为具有可使多个训练样本的理想双边滤波偏移(ΔIBIF_ideal)与计算的双边滤波偏移(ΔIBIF)之间的平方误差之和最小化的值。可根据以上等式(11)、(12)、(15)或(19)计算双边滤波偏移ΔIBIF。例如,表元素可首先用初始值进行初始化(例如,用来自固定LUT的值进行初始化)。然后,可自适应地调整表元素,使得可选择使多个训练样本的ΔIBIF_ideal和ΔIbiF之间的平方误差之和最小化的一组调整值作为LUT中的表元素的值。
图12示出了根据本公开的一些实施方式的与用户接口1250耦接的计算环境1210。计算环境1210可以是数据处理服务器的一部分。计算环境1210包括处理器1220、存储器1230和输入/输出(I/O)接口1240。
处理器1220通常控制计算环境1210的整体操作,诸如与显示、数据采集、数据通信和图像处理相关联的操作。处理器1220可包括一个或多个处理器来执行指令以执行上述方法中的所有或一些步骤。此外,处理器1220可包括促使处理器1220与其他组件之间的交互的一个或多个模块。处理器1220可以是中央处理单元(Central Processing Unit,CPU)、微处理器、单片机、图形处理单元(Graphical Processing Unit,GPU)等。
存储器1230被配置为存储各种类型的数据以支持计算环境1210的操作。存储器1230可包括预定软件1232。这类数据的示例包括用于在计算环境1210上操作的任何应用或方法的指令、视频数据集、图像数据等。存储器1230可通过使用任何类型的易失性或非易失性存储器设备或其组合来实现,诸如静态随机存取存储器(Static Random AccessMemory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-Only Memory,ROM)、磁存储器、闪存、磁盘或光盘。
I/O接口1240提供处理器1220与外围接口模块(诸如键盘、点击轮、按钮等)之间的接口。按钮可包括但不限于主页按钮、启动扫描按钮和停止扫描按钮。I/O接口1240可与编码器和解码器耦接。
在一些实施例中,还提供了一种非暂态计算机可读存储介质,其包括多个程序,例如被包括在存储器1230中,可由计算环境1210中的处理器1220执行,用于执行上述方法。可选地,非暂态计算机可读存储介质可在其中存储包括比特流或数据流,比特流或数据流包括由编码器(例如,图2中的视频编码器20)使用(例如)上文所描述的编码方法生成的以供解码器(例如,图3中的视频解码器30)在对视频数据进行解码时使用的编码视频信息(例如,包括一个或多个语法元素的视频信息)。非暂态计算机可读存储介质可以是例如ROM、随机存取存储器(Random Access Memory,RAM)、CD-ROM、磁带、软盘、光学数据存储设备等。
在一些实施例中,还提供了一种计算设备,其包括:一个或多个处理器(例如,处理器1220);以及存储有可由一个或多个处理器执行的多个程序的非暂态计算机可读存储介质或存储器1230,其中一个或多个处理器在执行多个程序时被配置为执行上述方法。
在一些实施例中,还提供了一种计算机程序产品,其包括例如在存储器1230中的多个程序,多个程序可由计算环境1210中的处理器1220执行,用于执行上述方法。例如,计算机程序产品可包括非暂态计算机可读存储介质。
在一些实施例中,计算环境1210可用一个或多个ASIC、DSP、数字信号处理设备(Digital Signal Processing Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、FPGA、GPU、控制器、微控制器、微处理器或用于执行上述方法的其他电子组件来实现。
已经出于说明的目的呈现了本公开的描述,并且不旨在穷举或限于本公开。受益于前面的描述和相关附图中呈现的教导,许多修改、变化和替代实施方式对于本领域普通技术人员将是显而易见的。
除非另有特别说明,否则根据本公开的方法的步骤的顺序仅旨在是说明性的,并且根据本公开的方法的步骤不限于上面具体描述的顺序,而是可根据实际条件改变。此外,可根据实际要求调整、组合或删除根据本公开的方法的至少一个步骤。
选择和描述示例是为了解释本公开的原理,并且使本领域其他技术人员能够理解本公开的各种实施方式,并且最好地利用基本原理和具有适合于预期的特定用途的各种修改的各种实施方式。因此,应当理解,本公开的范围不限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在被包括在本公开的范围内。

Claims (20)

1.一种用于视频编解码中的双边滤波的视频处理方法,包括:
由一个或多个处理器接收用于环路滤波的重建块,其中所述重建块是从来自视频的视频帧的视频块重建的;
由所述一个或多个处理器将双边滤波方案应用于所述重建块,以生成针对所述重建块中的多个重建样点的多个双边滤波偏移;以及
由所述一个或多个处理器基于所述多个双边滤波偏移生成多个滤波样点,其中所述多个滤波样点用作后续自适应环路滤波的输入。
2.根据权利要求1所述的视频处理方法,其中所述双边滤波方案是自适应双边滤波方案,其中将所述双边滤波方案应用于所述重建块包括:
将与所述视频帧对应的查找表LUT应用于所述重建块以生成针对所述多个重建样点的所述多个双边滤波偏移,
其中所述LUT是从所述视频帧自适应地推导的。
3.根据权利要求2所述的视频处理方法,其中将与所述视频帧对应的所述LUT应用于所述重建块包括:
对于来自所述多个重建样点且作为双边滤波窗口的中心样点的每个重建样点,
基于所述双边滤波窗口中的相邻样点集合来确定加权因子集合;
基于所述加权因子集合和与所述视频帧对应的所述LUT来确定针对所述重建样点的修改符总和;以及
基于所述修改符总和来确定针对所述重建样点的双边滤波偏移。
4.根据权利要求3所述的视频处理方法,其中确定所述修改符总和包括:
基于所述加权因子集合将所述修改符总和计算为来自所述LUT的一组表元素的线性组合。
5.根据权利要求2所述的视频处理方法,其中:
与所述视频帧对应的所述LUT是由视频编码器推导的;以及
通过比特流将所述LUT用信号发送到视频解码器。
6.根据权利要求5所述的视频处理方法,其中所述LUT由所述视频编码器至少通过以下方式推导:
形成包括多个训练样本的训练数据集,其中每个训练样本包括对应重建样点、所述对应重建样点的相邻样点和所述对应重建样点的原始样点;以及
将最小二乘法应用于所述训练数据集以推导针对所述LUT的一组表元素。
7.根据权利要求1所述的视频处理方法,其中所述双边滤波方案是位置相关的双边滤波方案,其中将所述双边滤波方案应用于所述重建块包括:
将一个或多个位置相关的查找表LUT应用于所述重建块以生成针对所述多个重建样点的所述多个双边滤波偏移。
8.根据权利要求7所述的视频处理方法,其中将所述一个或多个位置相关的LUT应用于所述重建块包括:
对于来自所述多个重建样点且作为双边滤波窗口的中心样点的每个重建样点,
基于所述一个或多个位置相关的LUT确定针对所述双边滤波窗口中的多个相邻样点的多个修改符值;
将针对所述重建样点的修改符总和确定为所述多个修改符值的总和;以及
基于所述修改符总和确定针对所述重建样点的双边滤波偏移。
9.根据权利要求8所述的视频处理方法,其中确定针对所述多个相邻样点的所述多个修改符值包括:
对于来自所述多个相邻样点的每个相邻样点,
基于所述相邻样点与所述中心样点之间的距离,从所述一个或多个位置相关的LUT来确定针对所述相邻样点的位置相关的LUT;以及
基于确定的位置相关的LUT确定针对所述相邻样点的修改符值。
10.根据权利要求8所述的视频处理方法,其中:
将所述多个相邻样点划分成一个或多个样点组,其中每个样点组中的对应相邻样点具有到所述中心样点的相同距离;以及
对每个样点组中的对应相邻样点应用来自所述一个或多个位置相关的LUT的相同位置相关的LUT。
11.根据权利要求7所述的视频处理方法,其中所述一个或多个位置相关的LUT中的每一个是对于来自所述视频的不同视频帧固定且相同的LUT。
12.根据权利要求7所述的视频处理方法,其中所述一个或多个位置相关的LUT中的每一个是从所述视频帧自适应地推导的。
13.根据权利要求1所述的视频处理方法,其中所述双边滤波方案是基于分类的双边滤波方案,其中将所述双边滤波方案应用于所述重建块包括:
将所述重建块划分为多个子块;
将所述多个子块分类为一个或多个类别;
分别确定针对所述一个或多个类别的一个或多个查找表LUT;以及
对于被分类为对应类别的子块中的每个重建样点,应用针对所述对应类别确定的LUT以生成针对所述重建样点的双边滤波偏移。
14.根据权利要求13所述的视频处理方法,其中将所述多个子块分类为所述一个或多个类别包括:
基于每个子块的方向性和活动性值将所述子块分类到对应类别中。
15.根据权利要求13所述的视频处理方法,其中将所述多个子块分类为所述一个或多个类别包括:
基于每个子块的频带索引将每个子块分类到对应类别中。
16.根据权利要求13所述的视频处理方法,其中所述一个或多个LUT中的每一个是对于来自所述视频的不同视频帧固定且相同的LUT。
17.根据权利要求13所述的视频处理方法,其中所述一个或多个LUT中的每一个是自适应地从所述视频帧推导的。
18.一种在视频编码中执行双边滤波的视频处理装置,包括:
存储器,耦接到一个或多个处理器;以及
所述一个或多个处理器,被配置为:
接收用于环路滤波的重建块,其中所述重建块是从来自视频的视频帧的视频块重建的;
将双边滤波方案应用于所述重建块以生成针对所述重建块中的多个重建样点的多个双边滤波偏移;以及
基于所述多个双边滤波偏移生成多个滤波样点,其中所述多个滤波样点是后续自适应环路滤波的输入。
19.根据权利要求18所述的视频处理装置,其中所述双边滤波方案是自适应双边滤波方案、位置相关的双边滤波方案或基于分类的双边滤波方案。
20.一种存储有指令的非暂态计算机可读存储介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行用于视频编解码中的双边滤波的视频处理方法,所述视频处理方法包括:
接收用于环路滤波的重建块,其中所述重建块是从来自视频的视频帧的视频块重建的;
将双边滤波方案应用于所述重建块以生成针对所述重建块中的多个重建样点的多个双边滤波偏移;以及
基于所述多个双边滤波偏移生成多个滤波样点,其中所述多个滤波样点是后续自适应环路滤波的输入,
其中所述视频存储在所述非暂态计算机可读存储介质中。
CN202280057437.1A 2021-09-07 2022-09-07 用于视频编解码的自适应双边滤波 Pending CN117859325A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163241156P 2021-09-07 2021-09-07
US63/241,156 2021-09-07
PCT/US2022/042679 WO2023038916A1 (en) 2021-09-07 2022-09-07 Adaptive bilateral filtering for video coding

Publications (1)

Publication Number Publication Date
CN117859325A true CN117859325A (zh) 2024-04-09

Family

ID=85507726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280057437.1A Pending CN117859325A (zh) 2021-09-07 2022-09-07 用于视频编解码的自适应双边滤波

Country Status (2)

Country Link
CN (1) CN117859325A (zh)
WO (1) WO2023038916A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2516221A (en) * 2013-07-01 2015-01-21 Barco Nv Method and processor for streaming video processing
CN109845266B (zh) * 2016-10-14 2021-08-10 联发科技股份有限公司 用以移除涟漪效应的平滑化滤波方法和装置
US10887622B2 (en) * 2017-07-05 2021-01-05 Qualcomm Incorporated Division-free bilateral filter
US11533491B2 (en) * 2019-08-28 2022-12-20 Qualcomm Incorporated Picture and sub-picture boundary processing for combined bilateral filter and Hadamard transform domain filter as in-loop filters
JP7323709B2 (ja) * 2019-09-09 2023-08-08 北京字節跳動網絡技術有限公司 イントラブロックコピーの符号化および復号化

Also Published As

Publication number Publication date
WO2023038916A1 (en) 2023-03-16
WO2023038916A8 (en) 2024-02-08

Similar Documents

Publication Publication Date Title
WO2022035687A1 (en) Chroma coding enhancement in cross-component sample adaptive offset
CN114710679A (zh) 视频编解码中的小色度块大小限制
US20220201301A1 (en) Methods and apparatus of video coding in 4:4:4 chroma format
EP3959878A1 (en) Chroma coding enhancement in cross-component correlation
US20230199209A1 (en) Chroma coding enhancement in cross-component sample adaptive offset
WO2022178433A1 (en) Improved local illumination compensation for inter prediction
EP4201063A1 (en) Chroma coding enhancement in cross-component sample adaptive offset
CN116325734A (zh) 具有虚拟边界的跨分量样点自适应偏移中的色度编解码增强
JP7438317B2 (ja) 映像エンコードの方法、映像デコードの方法、電子装置、非一時的なコンピュータ可読記憶媒体及びコンピュータプログラム
CN116614625B (zh) 一种视频编码的方法、装置和介质
WO2022251433A1 (en) Coding enhancement in cross-component sample adaptive offset
CN115004706A (zh) 关于变换和系数信令的方法和装置
US20200137385A1 (en) Non-mpm mode coding for intra prediction in video coding
CN117859325A (zh) 用于视频编解码的自适应双边滤波
KR102585317B1 (ko) 비디오 코딩을 위한 인-루프 필터
CN117581547A (zh) 用于视频编解码的侧窗双边滤波
CN117917074A (zh) 跨分量样点自适应偏移中的编解码增强
WO2023154359A1 (en) Methods and devices for multi-hypothesis-based prediction
CN117769834A (zh) 跨分量样点自适应偏移中的编解码增强
CN116569551A (zh) 交叉分量样本自适应偏移中的色度编码增强
CN116965017A (zh) 在跨分量样点自适应偏移中的色度编解码增强
CN116671105A (zh) 具有虚拟边界的跨分量样点自适应偏移中的色度编解码增强
CN117413516A (zh) 跨分量样本自适应偏移中的编解码增强
CN118075461A (zh) 一种视频解码的方法、装置和介质
CN118118672A (zh) 一种视频解码的方法、装置和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication