CN111886868A - 用于替代参考帧渲染的自适应时间滤波 - Google Patents
用于替代参考帧渲染的自适应时间滤波 Download PDFInfo
- Publication number
- CN111886868A CN111886868A CN201980018142.1A CN201980018142A CN111886868A CN 111886868 A CN111886868 A CN 111886868A CN 201980018142 A CN201980018142 A CN 201980018142A CN 111886868 A CN111886868 A CN 111886868A
- Authority
- CN
- China
- Prior art keywords
- anchor
- pixel
- frame
- arf
- block
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/177—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/182—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种用于使用替代参考帧(ARF)的方法包括选择锚帧和视频帧,其中锚帧包括锚块并且锚块包括锚像素;针对锚帧的锚块标识视频帧中的相应参考块;针对锚像素并使用锚补片,确定锚像素与相应参考块的相应并置参考像素之间的相应距离,其中,锚补片包括锚补片像素,并且相应距离中的在锚像素和相应并置参考像素之间的相应距离使用锚补片像素和并置参考像素来确定;使用相应距离,确定相应权重;使用相应权重,确定ARF内的与锚像素并置的ARF像素;以及在压缩比特流中编码ARF。
Description
背景技术
数字视频流可以使用帧或静止图像的序列来表示视频。数字视频能够用于各种应用,包括例如视频会议、高清晰度视频娱乐、视频广告或用户生成的视频共享。数字视频流能够包含大量数据并且消耗计算设备的大量计算或通信资源以进行视频数据的处理、传输或存储。已经提出各种方法(包括压缩和其它编码技术)来减少视频流中的数据量。
一种用于压缩的技术使用参考帧来生成与要编码的当前块相对应的预测块。可以对预测块和当前块之间的差异进行编码,而不是对当前块本身的值进行编码,以减少编码的数据量。
发明内容
本公开的一方面是一种用于使用替代参考帧(ARF)的方法。该方法包括选择锚帧和视频帧,其中锚帧包括锚块,并且锚块包括锚像素;以及针对锚帧的锚块,标识视频帧中的相应参考块。该方法进一步包括,针对多个锚像素中的每个像素,针对锚像素并使用锚补片确定锚像素与相应参考块的相应并置参考像素之间的相应距离,其中锚补片包括锚补片像素,并且相应距离中的锚像素和相应并置参考像素之间的相应距离使用锚补片像素和并置参考像素来确定,使用相应距离来确定相应权重,以及使用相应权重确定ARF帧内的与锚像素并置的ARF像素。该方法还包括在压缩比特流中编码ARF。
另一个方面是一种用于使用替代参考帧(ARF)的装置。该装置包括存储器和处理器。处理器被配置成执行存储在存储器中的指令以选择锚帧和视频帧,其中锚帧包括锚块,并且锚块包括锚像素,并且针对锚帧的锚块标识视频帧中的相应参考块。对于多个锚像素中的每个锚像素,处理器被配置成针对锚像素并使用锚补片来确定锚像素与相应参考块的相应并置参考像素之间的相应距离,其中锚补片包括锚补片像素,并且相应距离中的锚像素和相应并置参考像素之间的相应距离使用锚补片像素和并置参考像素来确定,使用相应距离确定相应权重,以及使用相应权重确定在ARF内的与锚像素并置的ARF像素。ARF在压缩比特流中被编码。
另一个方面是一种用于使用替代参考帧(ARF)进行解码的装置。该装置包括存储器和处理器。处理器被配置成执行存储在存储器中的指令以从压缩比特流中解码ARF;并使用ARF从压缩比特流解码帧。编码器通过包括以下的操作操作来生成ARF:选择锚帧和视频帧,其中锚帧包括锚块,并且锚块包括锚像素,针对锚帧的锚块标识视频中的相应参考块,针对多个锚像素中的每个锚像素,针对该锚像素并使用锚补片,基于该锚像素与相应参考块的相应并置参考像素之间的相应的基于补片的距离来确定相应权重,并且使用相应权重确定ARF帧内的与锚像素并置的ARF像素。
另一个方面是一种用于使用替代参考帧(ARF)进行解码的方法。该方法包括从压缩比特流解码ARF,以及使用ARF从压缩比特流解码帧。编码器通过包括以下的操作来生成ARF:选择锚帧和视频帧,其中锚帧包括锚块,并且锚块包括锚像素,针对锚帧的锚块标识视频中的相应参考块,针对多个锚像素中的每一个锚像素,针对该锚像素并使用锚补片,基于锚像素与相应参考块的相应并置参考像素之间的相应基于补片的距离来确定相应权重,并使用相应权重确定ARF内的与锚像素并置的ARF像素。
在这些方面的每一个中,可以使用锚帧的附加锚块类似地确定其他ARF像素,该附加锚块具有锚像素。
在以下对实施例、所附权利要求和附图的详细描述中公开了本公开的这些和其它方面。
附图说明
这里的描述参考下面描述的附图,其中,除非另有说明,否则贯穿若干视图,相似的附图标记指代相似的部分。
图1是视频编码和解码系统的示意图。
图2是可以实现发送站或接收站的计算设备的示例的框图。
图3是待编码并随后解码的典型视频流的图。
图4是根据本公开的实施方式的编码器的框图。
图5是根据本公开的实施方式的解码器的框图。
图6是根据本公开的实施方式的按照视频序列的显示顺序的图片组的图。
图7是图6的帧组的代码化顺序的示例的图。
图8是生成替代参考帧的技术的示例。
图9是根据本发明的实施方案的用于使用替代参考帧(ARF)的过程的流程图。
图10是根据本公开的实施方式的生成替代参考帧的示例。
具体实施方式
可以通过多种技术来压缩视频流,以减少发送或存储视频流所需的带宽。可以将视频流编码为比特流,其涉及压缩,并且然后将其发送到解码器,该解码器可以对视频流进行解码或解压缩,以准备进行查看或进一步处理。视频流的压缩通常通过空间和/或运动补偿预测来利用视频信号的空间和/或时间相关性。运动补偿预测,例如,使用一个或多个运动矢量来生成类似于要使用先前编码和解码的像素进行编码的当前块的块(也称为预测块)。通过对运动矢量以及两个块之间的差异进行编码,接收编码信号的解码器可以重新创建当前块。运动补偿预测也可以称为帧间预测。
用于在帧间预测处理中生成预测块的每个运动矢量指代当前帧以外的一个或多个帧(也称为参考帧)。参考帧可以位于视频流序列中的当前帧之前或之后,并且可以是在被用作参考帧之前重构的帧。在一些情况下,可能存在用于编码或解码视频序列的当前帧的块的三个或更多个参考帧。一个可能是被称为黄金帧的帧。另一个可能是最近编码或解码的帧。另一个可以是替代参考帧(在本公开中也称为ARF)。
替代参考帧是可用于向后预测的参考帧。尽管一些ARF可由解码器显示,但是根据本公开的实施方式涉及可能不由解码器显示的ARF,因为它们不直接对应于源视频流中的帧。
一个或多个前向和/或后向参考帧可以被用于编码或解码块。可以基于所得的信噪比或速率失真的其他度量来测量当用于对当前帧内的块进行编码或解码时参考帧内的功效。
如在上面所提及的,例如,可以使用所谓的“替代参考帧”(ARF)来发生编码视频帧,该替代参考帧可能在时间上不邻近就在它们之前或之后代码化的帧。
根据本公开的实施方式的ARF可以是在输入视频流中不出现的合成帧并且可以用于预测。本公开涉及合成的替代参考帧。在本公开中,合成的ARF简称为ARF。
ARF是图像数据的帧,其被编码成比特流并且用于改善其他发送的帧的编码(和解码)。ARF可以被用于提供时间滤波参考帧,其可以被用于滤除一个或多个源帧内的采集噪声。
与常规参考帧不同,在解码之后没有向用户示出ARF。ARF不可能具有与视频流的原始图像帧或显示给用户的帧相同的维度。而是,ARF充当预测器,为帧提供比实际过去或将来的帧可能提供的更好的预测选择。
创建最佳可能的ARF通常是留给编码器的任务,然后该编码器将ARF编码为压缩比特流以供解码器使用。这提供解码器无需重新执行用于创建ARF的计算的益处。编码器可以使用计算昂贵的过程来导出ARF,从而允许更快、更轻和更有效的解码。
可以通过将时间滤波应用于数个原始帧来渲染(即,合成、创建等)替代参考帧(ARF)。几个原始帧可以是连续的帧。因此,数个原始帧的公共信息可以在ARF中被捕获,除了常规帧(即,源视频流的帧)之外其在压缩比特流中被编码。重构ARF可以与其他常规重构帧一起用作一个运动补偿参考帧。一些视频编解码器(诸如VP8、VP9和AV1)采用ARF来获得显著的压缩性能增益。
时间滤波可以捕获跨连续帧的公共信息。所使用的时间滤波技术的功效可以大大影响整体压缩性能。将(诸如关于图8-10所描述的)用于生成ARF的参考帧与用于帧间预测的参考帧区分开。也就是说,例如,可以不将这样的参考帧添加到参考帧缓冲区和/或将其用于将其他视频帧编码和解码为压缩比特流。即,这些参考帧可以不一定用于确定在压缩比特流中编码的运动矢量和/或残差。
在创建ARF的方法中,可以使用时间滤波来评估在运动轨迹上对齐的两个块(锚块和参考帧的参考块)之间的相似性,以确定要用于参考块的像素的权重系数。将该权重均匀地应用于该块中的所有像素,以创建时间滤波块。这种方法在很大程度上忽略整个处理块单元的统计数据的变化。例如,在16×16处理块单元,存在256个像素。在这种方法中,将相同的权重应用于256个像素中的每个像素。这样,该方法忽略(例如,不利用,不敏感等)256个像素中的每个像素的邻域中的局部信息。
根据本公开的实施方式使用自适应时间滤波。自适应时间滤波将块(例如,16×16像素块)在运动轨迹上对准,如关于图10进一步描述的。例如,给定锚块,自适应时间滤波在参考帧中找到运动对齐参考块。然而,代替如关于将权重系数均匀地应用于块的每个像素的方法所描述的,考虑到像素的邻域中的局部变化来个别地处理每个像素。
在示例中,当确定与锚像素并置的ARF中的ARF像素的值时,包围锚像素的像素补片(pixel patch)(例如,大小为3×3的像素补片,或者简单地,3×3像素补片)可以被用于确定用于参考像素(即,参考帧中的像素)的权重。然后可以使用距离(在锚帧中的像素补片与参考帧中的相应(例如,基于运动搜索的)补片之间的)距离来确定参考帧的像素的权重。然后,将目标像素的权重用于时间滤波,如下文进一步所述。距离可以是L2范数(即,均方误差)中。可以评估距离以决定每个像素的权重系数值。
这样,根据本公开的实施方式的编码器可以在像素等级处(即,基于每个像素)识别时间一致性,从而仅滤波与目标像素属于相同运动轨迹的那些像素,并且省去那些不是来自相同运动轨迹的像素(例如,可能是目标像素的对象以外的对象的一部分的像素)。本文描述的用于生成替代参考帧的时间滤波可以更好地保存用于生成ARF的帧中的公共信息,从而减少可能嵌入用作锚帧的源帧中的任何唯一噪声。噪声可以是与视频或图像捕获设备有关的采集噪声。
在一些实施方式中,并且如下文进一步描述的,可以联合考虑并置的亮度和色度分量,以更好地分类对准的像素是否属于相同的运动轨迹。
根据本公开的实施方式可以改善时间滤波精度,这可以导致实质的压缩性能增益。
对“像素值”的引用可以理解为,如上下文清楚所示,意指像素的颜色分量中的至少一个的像素值。例如,在使用RGB颜色系统的情况下,则“像素值”可以表示像素的红色值、像素的绿色值、像素的蓝色值或其组合。在使用YUV颜色系统的情况下,像素值可以意指像素的亮度(即,Y)值、色差色度分量之一(即,U和/或V)或它们的组合。这样,“像素值”可以是一个或多个颜色分量值。
本文首先参考其中可以实现本文的教导的系统来描述用于替代参考帧渲染的自适应时间滤波的更多细节。
图1是视频编码和解码系统100的示意图。发送站102可以是例如具有硬件的内部配置的计算机,诸如关于图2中描述的计算机。然而,发送站102的其它合适的实现方式是可能的。例如,发送站102的处理能够分布在多个设备当中。
网络104能够连接发送站102和接收站106以用于对视频流进行编码和解码。具体地,能够在发送站102中对视频流进行编码,并且能够在接收站106中对编码视频流进行解码。网络104可以是例如因特网。网络104也可以是局域网(LAN)、广域网(WAN)、虚拟专用网(VPN)、蜂窝电话网络、或将视频流从发送站102在此示例中转移到接收站106的任何其它手段。
在一个示例中,接收站106可以是具有硬件的内部配置的计算机,诸如在图2中描述的计算机。然而,接收站106的其它合适的实现方式是可能的。例如,接收站106的处理能够分布在多个设备当中。
视频编码和解码系统100的其它实现方式是可能的。例如,一个实现方式能够省略网络104。在另一实现方式中,能够对视频流进行编码,然后存储编码视频流以供在以后的时间发送到接收站106或具有非暂时性存储介质或者存储器的任何其它设备。在一个实现方式中,接收站106(例如,经由网络104、计算机总线和/或某种通信路径)接收编码视频流并且存储该视频流以供以后解码。在一个示例实现方式中,实时传输协议(RTP)被用于通过网络104发送编码视频。在另一实现方式中,可以使用除RTP以外的传输协议,例如,基于超文本传输协议(HTTP)的视频流协议。
例如,当用在视频会议系统中时,发送站102和/或接收站106可以包括如下所述既对视频流进行编码又对视频流进行解码的能力。例如,接收站106可能是视频会议参与者,该视频会议参与者从视频会议服务器(例如,发送站102)接收编码视频比特流以解码和查看,并且进一步对它自己的视频比特流进行编码并发送到视频会议服务器以供由其它参与者解码和查看。
图2是能够实现发送站或接收站的计算设备200的示例的框图。例如,计算设备200能够实现图1的发送站102和接收站106中的一者或两者。计算设备200的形式可以为包括多个计算设备的计算系统,或者形式为一个计算设备,例如,移动电话、平板计算机、膝上型计算机、笔记本计算机、台式计算机等。
计算设备200中的CPU 202可以是中央处理单元。替换地,CPU202可以是任何其它类型的设备,或现存的或此后开发的能够操纵或处理信息的多个设备。尽管所公开的实现方式能够用如图所示的一个处理器(例如,CPU 202)来实践,但是能够通过使用不止一个处理器来实现速度和效率上的优势。
计算设备200中的存储器204可以是只读存储器(ROM)设备或随机存取存储器(RAM)设备、其它类型的存储器、或者其组合。能够将任何其它合适类型的存储设备或者非暂时性存储介质用作存储器204。存储器204能够包括由CPU 202使用总线212来访问的代码和数据206。存储器204能够进一步包括操作系统208和应用程序210,应用程序210包括允许CPU 202执行本文所述的方法的至少一个程序。例如,应用程序210能够包括应用1至应用N,这些应用进一步包括执行本文所述的方法的视频代码化应用。计算设备200也能够包括辅助存储214,该辅助存储214例如可以是与移动的计算设备一起使用的存储卡。因为视频通信会话可以包含大量信息,所以能够将它们全部或部分地存储在辅助存储214中并且视需要加载到存储器204中以进行处理。
计算设备200也能够包括一个或多个输出设备,诸如显示器218。在一个示例中,显示器218可以是将显示器与可操作来感测触摸输入的触敏元件组合在一起的触敏显示器。显示器218能够经由总线212耦合到CPU 202。除了显示器218之外或作为显示器218的替代方案,还能够提供允许用户对计算设备200进行编程或以其它方式使用计算设备200的其它输出设备。当输出设备是显示器或包括显示器时,能够以各种方式实现该显示器,包括通过液晶显示器(LCD);阴极射线管(CRT)显示器;或发光二极管(LED)显示器,诸如有机LED(OLED)显示器。
计算设备200也能够包括图像感测设备220或与之通信,该图像感测设备220例如为相机或现存的或此后开发的能够感测图像例如操作计算设备200的用户的图像的任何其它图像感测设备220。图像感测设备220能够被定位为使得它朝向操作计算设备200的用户定向。在一个示例中,图像感测设备220的位置和光轴能够被配置为使得视场包括与显示器218直接相邻并且显示器218可见的区域。
计算设备200也能够包括声音感测设备222或与之通信,该声音感测设备222例如为麦克风或现存的或此后开发的能够感测计算设备200附近的声音的任何其它声音感测设备。声音感测设备222能够被定位为使得它朝向操作计算设备200的用户定向,并且能够被配置成接收由该用户在该用户操作计算设备200的同时做出的声音,例如语音或其它话语。
尽管图2将计算设备200的CPU 202和存储器204描绘为被集成到一个单元中,但是能够利用其它配置。CPU 202的操作能够分布在能够直接或跨越局域网或其它网络耦合的多个机器(其中个别机器可以具有一个或多个处理器)之上。存储器204能够分布在多个机器例如基于网络的存储器或执行计算设备200的操作的多个机器中的存储器之上。尽管在这里被描绘为一条总线,但是计算设备200的总线212能够由多条总线组成。另外,辅助存储214能够直接耦合到计算设备200的其它组件或者能够经由网络访问并且能够包括一个集成单元(诸如存储卡)或多个单元(诸如多个存储卡)。因此能够以各种广泛的配置实现计算设备200。
图3是要编码并随后解码的视频流300的示例的图。视频流300包括视频序列302。在下一个级别,视频序列302包括多个相邻帧304。虽然将三个帧描述为相邻帧304,但是视频序列302能够包括任何数目的相邻帧304。然后能够将相邻帧304进一步细分成单独帧,例如,帧306。在下一个级别,能够将帧306划分成一系列平面或分段(segments)308。例如,分段308可以是允许并行处理的帧的子集。分段308也可以是能够将视频数据分成单独颜色的帧的子集。例如,彩色视频数据的帧306能够包括亮度平面和两个色度平面。可以以不同的分辨率对分段308进行采样。
无论帧306是否被划分成分段308,都可以将帧306进一步细分成块310,这些块310能够包含与例如帧306中的16×16个像素相对应的数据。块310也能够被布置成包括来自像素数据的一个或多个分段308的数据。块310也可以具有任何其它合适的大小,诸如4×4个像素、8×8个像素、16×8个像素、8×16个像素、16×16个像素或更大。除非另有说明,否则术语块和宏块在本文中可互换使用。
图4是根据本公开的实现方式的编码器400的框图。如上所述,能够例如通过提供存储在存储器例如存储器204中的计算机软件程序来在发送站102中实现编码器400。计算机软件程序能够包括机器指令,这些机器指令当由诸如CPU 202的处理器执行时,使发送站102以在图4中描述的方式对视频数据进行编码。也能够将编码器400实现为例如发送站102中包括的专用硬件。在一个特别可取的实施方式中,编码器400是硬件编码器。
编码器400具有在(由实线连接线示出的)正向路径中执行各种功能以使用视频流300作为输入来产生编码或压缩比特流420的以下级:帧内/帧间预测级402、变换级404、量化级406和熵编码级408。编码器400也可以包括(由虚线连接线示出的)重构路径以重构用于将来块的编码的帧。在图4中,编码器400具有在重构路径中执行各种功能的以下级:去量化级410、逆变换级412、重构级414和环路滤波级416。编码器400的其它结构变型能够用于对视频流300进行编码。
当呈现视频流300以进行编码时,能够以块为单位对诸如帧306的相应帧304进行处理。在帧内/帧间预测级402处,能够使用帧内预测(也称作帧内预测)或帧间预测(也称作帧间预测)来对相应块进行编码。在任何情况下,都能够形成预测块。在帧内预测的情况下,预测块可以由当前帧中的先前已经被编码和重构的样本形成。在帧间预测的情况下,预测块可以由一个或多个先前构建的参考帧中的样本形成。下面进一步详细讨论块组的参考帧的指定。
接下来,仍然参考图4,能够在帧内/帧间预测级402处从当前块减去预测块以产生残差块(也称作残差)。变换级404使用基于块的变换来在例如频域中将残差变换成变换系数。量化级406使用量化器值或量化水平来将变换系数转换成离散量子值,这些离散量子值被称为量化变换系数。例如,可以将变换系数除以量化器值并截断。量化变换系数然后由熵编码级408进行熵编码。然后将经熵编码的系数与用于对块进行解码的其它信息(其可以包括例如所用的预测类型、变换类型、运动矢量和量化器值)一起输出到压缩比特流420。可以使用诸如可变长度编译(VLC)或算术编码编译的各种技术来对压缩比特流420进行格式化。压缩比特流420也能够被称为编码视频流或编码视频比特流,并且将在本文中互换地使用这些术语。
图4中的(由虚线连接线示出的)重构路径能够用于确保编码器400和解码器500(在下面描述)都使用相同的参考帧来对压缩比特流420进行解码。重构路径执行与在解码过程期间进行的功能类似的在下面更详细地讨论的功能,包括在去量化级410处对量化变换系数进行去量化和在逆变换级412处对去量化变换系数进行逆变换以产生导数残差块(也称作导数残差)。在重构级414处,能够将在帧内/帧间预测级402处预测的预测块添加到导数残差以创建重构块。能够对重构块应用环路滤波级416以减少失真,诸如块伪像。
编码器400的其它变型能够用于对压缩比特流420进行编码。例如,基于非变换的编码器能够针对某些块或帧在没有变换级404的情况下直接对残差信号进行量化。在另一实现方式中,编码器能够使量化级406和去量化级410被组合成公共级。
图5是根据本公开的实现方式的解码器500的框图。能够例如通过提供存储在存储器204中的计算机软件程序来在接收站106中实现解码器500。计算机软件程序能够包括机器指令,这些机器指令当由诸如CPU 202的处理器执行时,使接收站106以在图5中描述的方式对视频数据进行解码。也能够在例如发送站102或接收站106中包括的硬件中实现解码器500。
与上面讨论的编码器400的重构路径类似,解码器500在一个示例中包括执行各种功能以从压缩比特流420产生输出视频流516的以下级:熵解码级502、去量化级504、逆变换级506、帧内/帧间预测级508、重构级510、环路滤波级512和后置滤波级514。解码器500的其它结构变型能够用于对压缩比特流420进行解码。
当呈现压缩比特流420以进行解码时,压缩比特流420内的数据元素能够由熵解码级502解码以产生一组量化变换系数。去量化级504(例如,通过将量化变换系数乘以量化器值)对量化变换系数进行去量化,并且逆变换级506对去量化变换系数进行逆变换以产生导数残差,该导数残差可以与在编码器400中由逆变换级412创建的导数残差相同。使用从压缩比特流420解码的报头信息,解码器500能够使用帧内/帧间预测级508来创建与在编码器400中例如在帧内/帧间预测级402处创建的相同的预测块。在重构级510处,能够将预测块添加到导数残差以创建重构块。能够对重构块应用环路滤波级512以减少块伪像。
能够对重构块应用其它滤波。在此示例中,后置滤波级514可以是去块滤波器,其被应用于重构块以减少块失真。结果作为输出视频流516被输出。也能够将输出视频流516称为解码视频流,并且将在本文中互换地使用这些术语。解码器500的其它变型能够用于对压缩比特流420进行解码。例如,解码器500能够在没有后置滤波级514的情况下产生输出视频流516。
如本领域中已知的,参考帧缓冲区可以存储用于对视频序列的帧的块进行编码或解码的参考帧(诸如ARF)。例如,参考帧可以被标识为最后帧LAST_FRAME、黄金帧GOLDEN_FRAME或替代参考帧ALTREF_FRAME。参考缓冲区可以包括附加参考帧。在示例中,最多八个参考帧可以被存储在参考帧缓冲区中并且用于帧间预测。参考帧的帧报头可以包括到参考帧缓冲区内的存储参考帧的位置的虚拟索引。参考帧映射可以将参考帧的虚拟索引映射到存储参考帧的存储器的物理索引。在两个参考帧是同一帧的情况下,即使这些参考帧具有不同的虚拟索引,它们也将具有相同的物理索引。存储在参考帧缓冲区中的参考帧的数量和类型可以不同。
存储在参考帧缓冲区中的参考帧可以用于标识用于预测要编码或解码的帧的块运动矢量。取决于用于预测当前帧的当前块的预测类型,可以使用不同的参考帧。例如,在双向预测中,可以使用存储为LAST_FRAME或GOLDEN_FRAME的帧对当前帧的块进行前向预测,并使用存储为ALTREF_FRAME的帧进行后向预测。更多参考帧也能够是可用的。
图6是根据本公开的实施方式的按视频序列的显示顺序的图片组(GOP)600的图。GOP 600也可以称为帧组。GOP 600包括视频流的连续帧组。在该示例中,GOP 600包括八个帧,即帧602-616。但是,GOP可以具有更多或更少的图片(即,视频帧)。例如,形成每个图片组的帧数可以根据视频空间和/或时间特性以及其他编码器配置(诸如为随机访问或错误恢复选择的关键帧间隔)进行变化。
GOP 600还被示为包括ARF 618。因为ARF 618不是视频流的帧,所以其被示为被遮蔽(shaded)。ARF 618可以被认为在逻辑上位于帧616之后的视频序列中的位置处。ARF 618是根据本公开的实施方式的导出(即,构造、合成等)的帧。
在示例中,可以将作为GOP 600的第一帧的帧602称为关键帧。帧602内没有块被进行帧间预测。可以仅使用帧内预测来预测帧602内的预测块。在另一示例中,帧602可以被称为覆盖帧,其是帧间预测帧,其可以是前一帧组中的重构帧。在帧间预测帧中,可以使用帧间预测来预测至少一些预测块。
GOP的代码化顺序可以与显示顺序不同。这允许将位于视频序列中的当前帧之后的帧用作对当前帧进行编码的参考帧。解码器(诸如解码器500)可以与编码器(诸如编码器400)共享公共组代码化结构。组代码化结构指配不同的角色,组中的相应帧可以在参考缓冲区中(例如,最后帧、替代参考帧等)起作用,并定义或指示组内的这些帧的代码化顺序。
图7是图6的帧组的代码化顺序700的示例的图。因为编码和解码顺序相同,所以图7所示的顺序在本文中通常被称为代码化顺序。关键帧或覆盖帧602可以被指定为参考帧缓冲区中的黄金帧(例如,GOLDEN_FRAME)。ARF 618可以紧接着被编码,并且被指定为参考帧缓冲区中的替代参考帧(例如,ALTREF_FRAME)。按照该代码化顺序,在超出显示顺序的ARF618在帧602之后被代码化,使得为其余帧604-616中的每一个提供后向参考帧。ARF 618的块可以被帧间预测(例如,帧602可以用作ARF 618的至少一些块的可用参考帧)、帧内预测或其组合。可以使用黄金帧和从先前GOP的帧重构的参考帧来对ARF 618进行编码作为参考帧。
图7仅是针对帧组的代码化顺序的一个示例。代码化顺序700的重要方面是,不是作为视频流的一部分的帧的ARF 618在解码器接收到的压缩比特流中被编码(例如,是待编码的第二帧),并且ARF已在GOP 600的大多数帧之前被编码。
尽管GOP 600被描述为包括八个帧并且仅创建一个ARF,但是根据本公开的实施方式不限于此。例如,可以生成一个以上的ARF。这样,假定包括N个帧的图片组,编码器可以编码GOP的N+M个帧,其中M是替代参考帧的数量。解码器可以解码N+M个帧,并且仅显示GOP的N个帧。M个替换帧与其他参考帧一起可以用于解码N个帧中的至少一些。
图8是生成替代参考帧的技术的示例800。示例800图示对五个连续源帧进行时间滤波以生成ARF 822。五个连续源帧包括锚帧802、两个前驱帧804-806和两个后继帧808-810。锚帧802用于生成ARF822。锚帧802可以被划分为多个块。每个块的大小可以为M×N。在示例中,块的大小可以为16×16;但是,其他大小也是可能的。一个这样的块是锚块812。
在示例中,锚帧802可以是图6的GOP 600的帧616。即,锚帧802可以是图片组的最后帧。这样,帧804和806分别对应于图6的帧614和616;并且ARF 822可以对应于图6的ARF618。类似地,帧808和810分别对应于在GOP 600之后的GOP(未示出)的第一帧和第二帧。
在示例800中,如下所述,生成与锚块的每个M×N块(例如,每个16×16块)相对应(即,与其并置)的块。例如,ARF 822的ARF块824对应于锚块812。这样,锚帧802中的每个M×N块可以(即,通过诸如图4的编码器400的编码器)被处理为操作单元。对于要用于生成ARF的每个帧,可以(例如,通过帧内/帧间预测级,诸如图4的帧内/帧间预测级402)执行运动搜索以为锚块找到每个帧中的相应参考块。因为在示例800中使用五个帧,所以找到了五个参考块;即,分别在帧804、806、808和810中的参考块814、816、818和820。
在该示例800中,锚块(例如,锚块812)和帧中的参考块(例如,块814-820中的每一个)之间的距离可以用于确定该帧的权重。距离可以是在L2范数(例如,均方误差)中。该距离可以指示锚块和参考块之间的失真水平。
在不失一般性的情况下,让B表示锚帧中的锚块,并且让R表示帧中的参考块。这样,B指定锚块812;并且R(n-2)、R(n-1)、R(n+1)和R(n+2)分别指定参考块814、816、818和820。
为了计算距离,从锚块(即,B)逐像素地减去参考块(例如,R(n-2)),并且对差的平方的总和进行求和。这样,可以使用公式(1)计算块B与块R(k)之间的距离D(B,R(k)),其中k对应于参考块814-820中的每一个:
在示例中,如果距离大于阈值,则可以忽略该块。例如,如果总和大于阈值,则可以将权重零指配给该块。这样,可以使用公式(2)中所示的夹紧函数来确定权重。在公式(2)中,使用的阈值为16;但是,可以使用其他阈值。在另一个示例中,可以使用阈值32。
c(k)=clamp(0,16,16-D(B,R(k))) (2)
在公式(2)中,c(k)是要用于帧k中的参考块的像素的权重,其中k对应于参考块R(n-1)、R(n-1)、R(n+1)和R(n+2)。公式(2)的夹紧函数clamp()获得3个自变量:第一自变量对应于下限;第二自变量对应于上限;并且第三自变量是要夹紧为在下限和上限(包括其在内)之间的值的值。这样,如果(B,R(k))小于0,则将0指配给c(k);如果(B,R(k))大于16,则将16指配给c(k)。公式(2)图示越大的距离D(B,R(k))产生越低的权重c(k)。
可以使用公式(3)来计算ARF块824的值:
如上所述,公式(3)的“16”对应于公式(2)的夹紧函数的“16”。公式(3)图示通过对加权的参考块和锚块进行求和(即,如公式(3)的分子所示)并将结果归一化(即,如公式(3)的分母中所示)可以完成要生成替代参考帧(即,ARF 822)的替代参考块(例如,ARF块824)的时间滤波。在公式(3)中,权重c(k)是标量值;B和R(k)是像素值的二维矩阵。
在替代技术中,可以通过例如比较两个运动对准块中的对应像素并使用两个像素之间的距离形成滤波器权重,来逐个像素地计算滤波器系数。此替代技术可以更好地捕获像素块内的统计差异,因为其可以标识由于非平移运动活动而导致的像素等级未对齐。然而,即使像素属于相同的运动轨迹,该技术也很容易被随机扰乱像素值的采集噪声(或胶片颗粒)所困。根据本公开的实施方式通过引入基于补片的距离测量以形成自适应时间滤波器内核来解决该问题。
图9是根据本公开的实施方式的用于使用替代参考帧(ARF)的过程900的流程图。过程900可以被实现为例如可以由诸如发送站102或接收站106的计算设备执行的软件程序。该软件程序可以包括可以存储在诸如内存204或者辅助存储214的内存中的机器可读指令,并且该机器可读指令由诸如CPU 202的处理器执行时,可以使计算设备执行过程900。过程900可以全部或部分在编码器400的帧内/帧间预测级402中实现。可以使用专用硬件或固件来实现过程900。可以使用多个处理器、内存或两者。
使用锚帧和其他视频帧,过程900生成替代参考帧(ARF),当执行帧间预测时,该替代参考帧可以由编码器(和解码器)使用。锚帧和视频帧可以是源输入视频流的帧,诸如图3的视频流300。
与上述距离测量相比,在向锚块的每个像素应用相同权重的情况下,过程900将关于像素(例如,像素的周围,邻域中等)的局部信息用于确定在时间滤波中要使用的权重。这样,使用基于相应局部邻域的不同权重。
参考图10解释过程900。图10是根据本公开的实施方式的生成替代参考帧的示例1000。在示例1000中,诸如通过过程900,使用锚帧1002和其他视频帧来生成ARF 1004。
如本领域中已知的,像素可以具有相关联的颜色空间。例如,在YCrCb或YUV颜色空间中,Y是亮度分量,而Cr或U和Cb或V是色差分量。这样,像素可以包括表示在帧中捕获的图像的信息,诸如亮度信息和颜色信息。像素还可以包括位置信息。这样,块(例如,锚块1010、参考块1012和参考块1014)可以包括亮度块(未示出)和两个色度块(未示出),诸如U或Cb色度块、以及V或Cr色度块。已经定义了各种采样格式,包括4:4:4,4:2:2和4:2:0。
除非上下文另外指出,否则本文所用的“像素”可以指代像素在位置处的颜色分量的值。例如,对“锚像素1016”的引用可以意指(例如,指示、引用等)在锚块1010的笛卡尔坐标(4,3)处的像素、该位置处的亮度值、该位置处的U色度值、该位置处的V色度值或其组合。
在图9的902处,过程900选择锚帧和视频帧。如本公开中所使用的,“选择”意指无论如何以任何方式创建、形成、产生、标识、构造、确定、指定、生成或其他选择。
在图10的示例1000中,示出两个视频帧;即,帧1006和帧1008。示例1000将锚帧1002和帧1006和1008示出为输入视频流中的连续帧:帧1006、锚帧1002和帧1008分别是输入视频流中的帧号n-1、n和n+1。但是,事实不是如此。
在示例中,并且如关于图8所描述的,锚帧1002可以是图片组(GOP)的最后帧,并且用于生成ARF 1004的一些视频帧(即,显示顺序的前驱帧)可以是来自与锚帧1002相同的GOP的帧并且一些其它的视频帧(即,显示顺序的后继帧)可以是来自随后的GOP的帧。这样,视频帧可以包括第一视频帧和第二视频帧,第一视频帧和锚帧可以是第一图片组的帧,并且第二视频帧可以是与第一图片组不同的第二图片组的帧。
在示例中,锚帧可以是GOP中的第一帧和最后帧之间的帧。这样,某些前驱帧可以是同一GOP中的帧,一些前驱帧可以是先前GOP中的帧,某些后续帧可以是与锚帧相同的GOP的帧,一些后续帧可以是作为锚帧的后续GOP的帧,或者其组合。
如关于图8的示例800所描述的,可以使用其他的四个帧。在其他示例中,可以使用四个以上的帧。视频帧的数量可以是偶数(即,大于0的2的倍数),并且锚帧可以在视频帧之间被居中。
如关于图8所提及的,锚帧1002可以被划分成块。锚帧1002的块在本文中称为锚块,以将它们与其他视频帧的块区分开。这样,锚帧1002可以被分割为大小为M×N个像素的锚块。在一个示例中,每个锚块的大小可以是16×16个像素;即,M=N=16。但是,其他大小也是可能的。假定锚块的光栅扫描顺序,取决于锚帧的大小,在锚帧的右边界和/或底边界处的锚块可以小于M×N。锚块包括锚像素。例如,大小为M×N(例如,16×16)的锚块包括M×N(例如,256)个像素。图10的锚块1010是锚块的示例。锚块1010被示为大小为8×8个像素(即,8×8块);但是,锚块的大小可以不同。锚块1010包括8×8=64个锚像素,其包括锚像素1016。
在图9的904处,过程900针对锚帧的锚块标识视频帧中的相应参考块。可以以许多方式来标识相应参考块。
例如,诸如图4的帧内/帧间预测级402的单元的预测单元可以在每个视频帧中进行运动搜索,以标识每个视频帧中的相应搜索窗口内的最接近匹配块。图10图示相应参考块。帧1006的参考块1012可以是使用运动搜索来标识的参考块,如运动矢量1024所指示的。帧1008的参考块1014可以是使用运动搜索来标识的参考块,如通过运动矢量1026所指示的。参考块可以在整数像素位置或在子像素位置处。
在另一个示例中,可以将相应参考帧标识为在每个参考帧中的并置块。例如,如果锚块1010的左上像素在锚帧的笛卡尔位置(x,y)(例如,(32,32))处,则参考块1012和1014可以是其左上像素分别位于帧1006和1008的位置(x,y)(例如(32,32))处的8×8个块。
在图9的906处,过程900针对锚像素并使用锚补片来确定锚像素与相应参考块的相应并置参考像素之间的相应距离。
锚补片包括在锚像素周围和/或在锚像素的邻域中的像素集。在示例中,锚补片可以是在锚像素处/由锚像素居中的3×3窗口,如图10的锚补片1028所图示的。锚补片1028包括锚像素1016和八个周围像素(即,阴影像素)。锚补片可以包括更多或更少的像素。锚补片可以具有正方形、矩形或任何其他形状。
在示例中,可以从锚补片中排除不是锚块的一部分的锚补片的像素。例如,关于锚像素1030和1032,对应锚补片仅包括作为锚块1010的一部分的那些阴影像素。在另一个示例中,锚补片可以包括在锚块之外但是在锚帧内的像素。
使用锚补片像素和并置参考像素确定锚像素和相应并置参考像素之间的相应距离。在参考块1012中,参考块1012和1014中的锚补片的锚像素的并置参考像素分别由边界框1034和1036指示。
可以使用公式(4)来计算相应距离。让b(x,y)表示锚块(表示为B)在位置(x,y)处的像素。类似地,让r(x,y)表示参考块R中的相同位置处的像素。关于图10,该块B可以是锚块1010,并且参考块R可以是参考块1012或参考块1014。两个像素之间的距离测量D(b(x,y),r(x,y))由公式(4)给出:
这样,公式(4)可以用于确定锚像素1016(即,b(x,y))与参考块1012中的并置参考像素1020(例如,r(x,y))之间的第一距离,以及锚像素1016(即,b(x,y))和参考块1014中的并置参考像素1022(例如,r(x,y))之间的第二距离。公式(4)用于计算以下两个补片之间的距离:锚帧的锚补片和参考帧中的并置锚补片。
在图9的908处,过程900使用相应距离来确定(例如,标识、计算等)相应权重。可以使用公式(5)来夹紧距离(例如,第一距离和第二距离)以确定参考帧的像素的相应权重:
cR(x,y)=clamp(0,16,16-D(b(x,y),r(x,y))/9 (5)
在公式(5)中,“9”对应于公式(4)中的项数;cR(x,y)是要指配给参考块R(即,包含像素r(x,y)的参考帧)的位置(x,y)处的像素的权重。
在图9的910处,过程900使用相应权重来确定与锚像素并置的ARF像素。即,权重可以用于计算(例如,确定等)ARF的像素值。这样,可以使用公式(6)计算在ARF(即,ARF 1004)的位置(x,y)处的(即,与锚像素1016并置的)像素(例如,ARF像素1018)的值:
在公式(6)中,ARF(x,y)表示替代参考帧在位置(x,y)处的像素的值;P表示参考帧的数量(例如,在示例1000中为2个帧;即,帧1006和1008);并且k是表示特定参考系的变量。权重ck(x,y)表示要应用于参考块k的像素rk(x,y)(例如,与其一起使用,乘以等)的权重。权重ck(x,y)如关于公式(4)和(5)所描述的。此外,b(x,y)是锚像素,并且“16”对应于最大夹紧值。这样,可以将最高权重值指配给锚像素。
公式(4)-(6)可以用于确定(例如,计算等)与锚块1010的锚像素并置的ARF 1004的每个像素的相应值。类似地,公式(4)-(6)可以用于确定与锚帧1002的其他锚块相对应的ARF像素的值。
在图9的912处,过程900在压缩比特流中编码ARF。压缩比特流可以是图4的压缩比特流。编码ARF可以是如关于编码诸如关于图4描述的视频流的任何其他帧所描述的。
如在上面所提及的,ARF是参考帧,并且同样,ARF可以被存储在参考帧缓冲区中并且可以被用于编码其他视频帧。诸如图5的解码器500的解码器可以在压缩比特流中接收ARF,对ARF进行解码,并将其用于对在压缩比特流中编码的其他帧进行解码。
公式(4)-(6)可以用于针对ARF的像素单独地计算每个颜色分量(例如,在RGB颜色系统的情况下,红色、绿色和蓝色)的值。例如,可以使用公式(4)-(6),以针对ARF的像素单独地计算亮度值、色度U值和色度V值,例如,当计算亮度Y值时,则b(x,y)、r(x,y)以及ARF(x,y)均对应于相应像素的亮度值。类似地,当计算色度值(例如,U或V值)时,则b(x,y)、r(x,y)以及ARF(x,y)均对应于色度值。即,在上面描述的技术统一地应用于亮度和色度分量平面。每个颜色平面独立于其他颜色平面而操作。即,例如,相应距离可以是亮度颜色平面中的距离,并且ARF像素可以是亮度像素。例如,相应距离可以是色度颜色平面中的距离并且ARF像素可以在相同的色度颜色平面中。更一般地,相应距离可以是在特定颜色平面中的距离,并且ARF像素可以是在特定颜色平面中的像素值。
在上面描述并且确定时间滤波权重的基于补片的距离测量优化像素级时间一致性检测的灵活性与强加在像素值上的采集噪声的稳定性之间的权衡。本文所述的用于替代参考帧的自适应时间滤波中基于补片的距离(或等效地,权重)确定可以将压缩性能改进了0.7-1.5%。
在一些示例中,颜色分量值没有被独立地确定。观察到亮度和并置色度像素一起在帧中形成彩色的像素表示。这样,像素位置处的色度和并置色度值可能属于同一运动对象。因此,在一些示例中,可以如下所述修改亮度和色度分量的失真度量(即,距离)。
对于亮度像素值b(x,y)和亮度参考像素r(x,y),可以修改公式(4)的基于补片的距离测量以进一步包括来自U或V平面的与亮度分量并置的色度分量中的至少一个。公式(7)示出包括U和V分量的修改的距离测量Dm(x,y):
在公式(7)中,D(b(x,y),r(x,y))如关于公式(4)所描述的,用于基于亮度值计算距离;bu(x,y)、ru(x,y)、bv(x,y)和rv(x,y)分别对应于锚像素的色度U值、参考帧的并置参考像素的色度U值、锚像素的色度V值和参考帧的并置参考像素的色度V值;并且分母的值(即,11)对应于分子中的项数。
对于色度像素值b(x,y)(U色度分量或V色度分量)和色度参考像素r(x,y),可以修改公式(4)的基于补片的距离测量以进一步包括来自Y平面的与色度分量并置的亮度分量。这样,在确定ARF像素的色度值的情况下,与锚像素的色度分量并置的Y亮度值可以包括在确定相应距离中。公式(8)示出包括亮度分量的一种改进的距离测量Dm(x,y):
在公式(8)中,D(b(x,y),r(x,y))如关于公式(4)所描述的,用于基于色度值计算距离;bl(x,y)和rl(x,y)分别对应于锚像素的亮度Y值和参考帧的并置参考像素的亮度Y值;并且分母DENOMINATOR等于分子中的项数。分子中的项数反过来取决于所使用的采样格式。如在上面所提及的,使用的两种格式是4:4:4(也称为YUV444)和4:2:0(也称为YUV420)格式。
YUV444格式具有相同数量的亮度和色度像素。这样,公式(8)中的DENOMINATOR等于10(即,同一平面中的9个色度像素加上亮度平面中的1个亮度像素)。
在YUV420格式中,每2×2亮度像素对应于1个U色度平面像素和1个V色度平面像素。即,在YUV420格式中,1个色度像素具有4个并置的亮度像素。这样,在公式(8)中,亮度值实际上包括四个亮度值。这样,在YUV420格式中,公式(8)中的亮度像素项(即,(bl(x,y)-rl(x,y))2)包含四个像素差(即,针对每个亮度值的一个平方差)。这样,归一化项(即,公式(8)中DENOMINATOR)等于13。
已经发现,相对于公式(7)-(8)所描述的交叉平面引用导致PSNR_U和PSNR_V度量在色度分量的代码化中改进了0.5-0.9%以及在亮度分量中改进0.1%代码化增益。
为了简化说明,将过程900描绘和描述为一系列步骤或操作。然而,根据本公开的步骤或操作可以以各种顺序和/或同时发生。另外,可以使用本文未提出和描述的其他步骤或操作。此外,可能不需要所有示出的步骤或操作来实现根据所公开的主题的方法。
上面描述的编码和解码的各方面图示编码和解码技术的一些示例。然而,应当理解的是,当在权利要求中使用那些术语,编码和解码能意指对数据的压缩、解压缩、变换或任何其它处理或改变。
单词“示例”在本文中用于意指用作示例、实例或图示。在本文中被描述为“示例”的任何方面或设计不一定被解释为优于其它方面或设计为优选的或有利的。相反,单词“示例”的使用旨在以具体方式呈现构思。如本申请中所使用的,术语“或”旨在意指包括性“或”而不是排他性“或”。也就是说,除非另外指定或者从上下文中清楚,否则“X包括A或B”旨在意指自然包含性排列中的任一种。也就是说,如果X包括A;X包括B;或者X包括A和B两者,则在上述实例中的任一个下满足“X包括A或B”。此外,除非另外指定或者从上下文中清楚为针对单数形式,否则如本申请和所附权利要求中所使用的冠词“一”和“一个”通常应该被解释成意指“一个或多个”。此外,自始至终使用术语“实施方式”或“一个实施方式”不旨在意指同一实施例或实施方式,除非被如此描述。
发送站102和/或接收站106的实施方式(以及存储在其上并且/或者由此(包括由编码器400和解码器500)执行的算法、方法、指令等)可用硬件、软件或其任何组合加以实现。硬件可包括例如计算机、知识产权(IP)核、专用集成电路(ASIC)、可编程逻辑阵列、光学处理器、可编程逻辑控制器、微码、微控制器、服务器、微处理器、数字信号处理器或任何其它适合的电路。在权利要求中,术语“处理器”应该被理解为单独地或相结合地包含上述硬件中的任一个。术语“信号”和“数据”可互换地使用。另外,发送站102和接收站106的各部分不一定必须被以相同的方式实现。
另外,在一个方面中,例如,可使用具有计算机程序的通用计算机或通用处理器来实现发送站102或接收站106,所述计算机程序当被执行时,执行本文描述的各个方法、算法和/或指令中的任一种。此外或替换地,例如,可利用专用计算机/处理器,所述专用计算机/处理器包含用于执行本文描述的方法、算法或指令中的任一种的其它硬件。
可例如在视频会议系统中的计算机上实现发送站102和接收站106。替换地,可在服务器上实现发送站102,并且可在与服务器分开的设备(诸如手持通信设备)上实现接收站106。在此实例中,发送站102可使用编码器400来将内容编码成编码视频信号并将该编码视频信号发送到通信设备。进而,通信设备然后可使用解码器500来对编码视频信号进行解码。替换地,通信设备可对本地存储在通信设备上的内容(例如,不由发送站102发送的内容)进行解码。其它适合的发送和接收实施方式方案是可用的。例如,接收站106可以是通常固定的个人计算机而不是便携式通信设备,并且/或者包括编码器400的设备也可以包括解码器500。
另外,本公开的实现方式的全部或一部分可采取例如从计算机可用介质或计算机可读介质可访问的计算机程序产品的形式。计算机可用介质或计算机可读介质可以是可例如有形地包含、存储、传送或者输送程序以供由任何处理器使用或者连同任何处理器一起使用的任何设备。介质可以是例如电子、磁、光学、电磁或半导体设备。其它适合的介质也是可用的。
已描述了上述实施例、实施方式和方面以便允许容易理解本发明并且不限制本发明。相反,本发明旨在涵盖包括在所附权利要求的范围内的各种修改和等同布置,该范围应被赋予最广泛解释以便包含如在法律下许可的所有这样的修改和等效结构。
Claims (21)
1.一种用于使用替代参考帧ARF的方法,包括:
选择锚帧和视频帧,其中
所述锚帧包括锚块,并且
所述锚块包括锚像素;
针对所述锚帧的所述锚块,标识所述视频帧中的相应参考块;
针对所述锚块的多个锚像素中的每个锚像素:
针对所述锚像素并使用锚补片,确定所述锚像素与所述相应参考块的相应并置参考像素之间的相应距离,其中:
所述锚补片包括锚补片像素,并且
使用所述锚补片像素和并置参考像素来确定所述相应距离中的所述锚像素和相应并置参考像素之间的相应距离;
使用所述相应距离,确定相应权重;以及
使用所述相应权重,确定所述ARF内的与所述锚像素并置的ARF像素;以及
在压缩比特流中编码所述ARF。
2.根据权利要求1所述的方法,其中,所述锚补片的大小为3×3。
3.根据权利要求1或2所述的方法,其中,所述锚帧是图片组中的最后帧。
4.根据权利要求1至3中的任一项所述的方法,其中:
所述视频帧包括第一视频帧和第二视频帧,
所述第一视频帧和所述锚帧是第一图片组中的帧,并且
所述第二视频帧是不同于所述第一图片组的第二图片组中的帧。
5.根据权利要求1至4中的任一项所述的方法,其中,所述视频帧包括四个帧。
6.根据权利要求1至5中的任一项所述的方法,其中,使用所述相应距离来确定所述相应权重包括:
夹紧所述相应距离以确定所述相应权重。
7.根据权利要求1至6中的任一项所述的方法,其中,所述相应距离是在特定颜色平面中的距离,并且所述ARF像素是在所述特定颜色平面中的像素值。
8.根据权利要求1至7中的任一项所述的方法,其中,确定相应距离包括:
在确定所述ARF像素的亮度值的情况下,在确定所述相应距离时包括与所述锚像素的亮度分量并置的U色度值或V色度值中的至少一个。
9.根据权利要求1至7中的任一项所述的方法,其中,确定相应距离包括:
在确定所述ARF像素的色度值的情况下,在确定所述相应距离时包括与所述锚像素的色度分量并置的Y亮度值。
10.根据权利要求9所述的方法,其中,所述Y亮度值包括四个亮度值。
11.一种用于使用替代参考帧ARF的装置,包括:
存储器;和
处理器,所述处理器被配置成执行存储在所述存储器中的指令以:
选择锚帧和视频帧,其中
所述锚帧包括锚块,并且
所述锚块包括锚像素;
针对所述锚帧的所述锚块,标识所述视频帧中的相应参考块;
针对所述锚块的多个锚像素中的每个锚像素:
针对所述锚像素并使用锚补片,确定所述锚像素与所述相应参考块的相应并置参考像素之间的相应距离,其中:
所述锚补片包括锚补片像素,并且
使用所述锚补片像素和并置参考像素来确定所述相应距离中的所述锚像素和相应并置参考像素之间的相应距离;
使用所述相应距离,确定相应权重;并且
使用所述相应权重,确定所述ARF内的与所述锚像素并置的ARF像素;并且
在压缩比特流中编码所述ARF。
12.根据权利要求11所述的装置,其中,所述锚补片的大小为3×3。
13.根据权利要求11或12所述的装置,其中,所述锚帧是图片组中的最后帧。
14.根据权利要求11至13中的任一项所述的装置,其中:
所述视频帧包括第一视频帧和第二视频帧,
所述第一视频帧和所述锚帧是第一图片组中的帧,并且
所述第二视频帧是不同于所述第一图片组的第二图片组中的帧。
15.根据权利要求11至14中的任一项所述的装置,其中,所述视频帧包括四个帧。
16.根据权利要求11至15中的任一项所述的装置,其中,使用所述相应距离来确定所述相应权重包括:
夹紧所述相应距离以确定所述相应权重。
17.根据权利要求11至16中的任一项所述的装置,其中,所述相应距离是在特定颜色平面中的距离,并且所述ARF像素是在所述特定颜色平面中的像素值。
18.根据权利要求11至17中的任一项所述的装置,其中,确定相应距离包括:
在确定所述ARF像素的亮度值的情况下,在确定所述相应距离时包括与所述锚像素的亮度分量并置的U色度值或V色度值中的至少一个。
19.根据权利要求11至17中的任一项所述的装置,其中,确定相应距离包括:
在确定所述ARF像素的色度值的情况下,在确定所述相应距离时包括与所述锚像素的色度分量并置的Y亮度值。
20.一种用于使用替代参考帧ARF进行解码的装置,包括:
存储器;和
处理器,所述处理器被配置成执行存储在所述存储器中的指令以:
从压缩比特流中解码所述ARF,其中编码器通过下述操作来生成所述ARF,所述操作包括:
选择锚帧和视频帧,其中:
所述锚帧包括锚块,并且
所述锚块包括锚像素;
针对所述锚帧的所述锚块,标识所述视频帧中的相应参考块;
针对所述锚块的多个锚像素中的每个锚像素:
针对所述锚像素并使用锚补片,基于所述锚像素与所述相应参考块的相应并置参考像素之间的相应基于补片的距离来确定相应权重;以及:
使用所述相应权重,确定所述ARF内的与所述锚像素并置的ARF像素;以及
使用所述ARF从所述压缩比特流解码帧。
21.一种用于使用替代参考帧ARF进行解码的方法,包括:
从压缩比特流中解码所述ARF,其中编码器通过下述操作来生成所述ARF,所述操作包括:
选择锚帧和视频帧,其中:
所述锚帧包括锚块,并且
所述锚块包括锚像素;
针对所述锚帧的所述锚块,标识所述视频帧中的相应参考块;
针对所述锚块的多个锚像素中的每个锚像素:
针对所述锚像素并使用锚补片,基于所述锚像素与所述相应参考块的相应并置参考像素之间的相应基于补片的距离来确定相应权重;以及:
使用所述相应权重,确定所述ARF内的与所述锚像素并置的ARF像素;以及
使用所述ARF从所述压缩比特流解码帧。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/117,563 | 2018-08-30 | ||
US16/117,563 US10951885B2 (en) | 2018-08-30 | 2018-08-30 | Adaptive temporal filtering for alternate frame reference rendering |
PCT/US2019/040951 WO2020046470A1 (en) | 2018-08-30 | 2019-07-09 | Adaptive temporal filtering for alternate reference frame rendering |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111886868A true CN111886868A (zh) | 2020-11-03 |
CN111886868B CN111886868B (zh) | 2022-01-11 |
Family
ID=67441733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980018142.1A Active CN111886868B (zh) | 2018-08-30 | 2019-07-09 | 用于替代参考帧渲染的自适应时间滤波的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10951885B2 (zh) |
EP (1) | EP3744101B1 (zh) |
CN (1) | CN111886868B (zh) |
WO (1) | WO2020046470A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113612996B (zh) * | 2021-07-30 | 2024-02-09 | 百果园技术(新加坡)有限公司 | 一种基于时域滤波的视频降噪的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120257677A1 (en) * | 2011-04-07 | 2012-10-11 | Google Inc. | Encoding and decoding motion via image segmentation |
CN103444171A (zh) * | 2010-12-15 | 2013-12-11 | 法国电信 | 用于通过选择待预测像素来对至少一个图像进行编码和解码的方法和装置,以及对应的计算机程序 |
US20140177714A1 (en) * | 2010-09-15 | 2014-06-26 | Google Inc. | Coding video data with an alternate reference frame generated using a temporal filter |
US9756331B1 (en) * | 2013-06-17 | 2017-09-05 | Google Inc. | Advance coded reference prediction |
CN107396207A (zh) * | 2017-07-21 | 2017-11-24 | 南京邮电大学 | 一种基于特征优先级的p2p数据调度方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6904174B1 (en) * | 1998-12-11 | 2005-06-07 | Intel Corporation | Simplified predictive video encoder |
US7046734B2 (en) * | 1998-04-02 | 2006-05-16 | Intel Corporation | Method and apparatus for performing real-time data encoding |
US8270472B2 (en) * | 2007-11-09 | 2012-09-18 | Thomson Licensing | Methods and apparatus for adaptive reference filtering (ARF) of bi-predictive pictures in multi-view coded video |
JP2011530222A (ja) | 2008-08-01 | 2011-12-15 | ゾラン コーポレイション | 雑音除去のための統合時間フィルタを備えたビデオエンコーダ |
US8385404B2 (en) | 2008-09-11 | 2013-02-26 | Google Inc. | System and method for video encoding using constructed reference frame |
US8638854B1 (en) | 2011-04-07 | 2014-01-28 | Google Inc. | Apparatus and method for creating an alternate reference frame for video compression using maximal differences |
US9485503B2 (en) * | 2011-11-18 | 2016-11-01 | Qualcomm Incorporated | Inside view motion prediction among texture and depth view components |
US10397600B1 (en) * | 2016-01-29 | 2019-08-27 | Google Llc | Dynamic reference motion vector coding mode |
-
2018
- 2018-08-30 US US16/117,563 patent/US10951885B2/en active Active
-
2019
- 2019-07-09 WO PCT/US2019/040951 patent/WO2020046470A1/en unknown
- 2019-07-09 EP EP19745494.5A patent/EP3744101B1/en active Active
- 2019-07-09 CN CN201980018142.1A patent/CN111886868B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140177714A1 (en) * | 2010-09-15 | 2014-06-26 | Google Inc. | Coding video data with an alternate reference frame generated using a temporal filter |
CN103444171A (zh) * | 2010-12-15 | 2013-12-11 | 法国电信 | 用于通过选择待预测像素来对至少一个图像进行编码和解码的方法和装置,以及对应的计算机程序 |
US20120257677A1 (en) * | 2011-04-07 | 2012-10-11 | Google Inc. | Encoding and decoding motion via image segmentation |
US9756331B1 (en) * | 2013-06-17 | 2017-09-05 | Google Inc. | Advance coded reference prediction |
CN107396207A (zh) * | 2017-07-21 | 2017-11-24 | 南京邮电大学 | 一种基于特征优先级的p2p数据调度方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3744101B1 (en) | 2024-09-04 |
US20200077083A1 (en) | 2020-03-05 |
CN111886868B (zh) | 2022-01-11 |
EP3744101A1 (en) | 2020-12-02 |
WO2020046470A1 (en) | 2020-03-05 |
US10951885B2 (en) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10805629B2 (en) | Video compression through motion warping using learning-based motion segmentation | |
US10555000B2 (en) | Multi-level compound prediction | |
US10798408B2 (en) | Last frame motion vector partitioning | |
US9374578B1 (en) | Video coding using combined inter and intra predictors | |
EP3744096A1 (en) | Hybrid motion-compensated neural network with side-information based video coding | |
CN110741641B (zh) | 用于视频压缩的方法和装置 | |
US12034963B2 (en) | Compound prediction for video coding | |
US10506256B2 (en) | Intra-prediction edge filtering | |
US20170310973A1 (en) | Hybrid prediction modes for video coding | |
US10277905B2 (en) | Transform selection for non-baseband signal coding | |
WO2018169571A1 (en) | Segmentation-based parameterized motion models | |
US8908767B1 (en) | Temporal motion vector prediction | |
EP3714601A1 (en) | Motion field-based reference frame rendering for motion compensated prediction in video coding | |
US10567772B2 (en) | Sub8×8 block processing | |
CN111886868B (zh) | 用于替代参考帧渲染的自适应时间滤波的方法和装置 | |
US20220078446A1 (en) | Video stream adaptive filtering for bitrate reduction | |
WO2023205371A1 (en) | Motion refinement for a co-located reference frame | |
WO2023219616A1 (en) | Local motion extension in video coding |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |