CN114788182B - 用于实现时间滤波的方法、***和计算机可读介质 - Google Patents
用于实现时间滤波的方法、***和计算机可读介质 Download PDFInfo
- Publication number
- CN114788182B CN114788182B CN202180005523.3A CN202180005523A CN114788182B CN 114788182 B CN114788182 B CN 114788182B CN 202180005523 A CN202180005523 A CN 202180005523A CN 114788182 B CN114788182 B CN 114788182B
- Authority
- CN
- China
- Prior art keywords
- picture
- exponential function
- factor
- current picture
- video
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000002123 temporal effect Effects 0.000 title claims abstract description 49
- 238000001914 filtration Methods 0.000 title claims abstract description 25
- 230000006870 function Effects 0.000 claims description 101
- 230000033001 locomotion Effects 0.000 claims description 38
- 238000007667 floating Methods 0.000 claims description 14
- 238000013139 quantization Methods 0.000 claims description 9
- 239000013598 vector Substances 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 230000006835 compression Effects 0.000 description 12
- 238000007906 compression Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 230000000007 visual effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 210000004247 hand Anatomy 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/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/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/124—Quantisation
-
- 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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
-
- 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/17—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 an image region, e.g. an object
- H04N19/172—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 an image region, e.g. an object the region being a picture, frame or field
-
- 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
-
- 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/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/192—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
-
- 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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/31—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
-
- 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/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供一种用于实现时间滤波的***和方法。该方法包括:对当前图片应用时间滤波器;以及,在应用时间滤波器之后对当前图片进行编码。所述对当前图片应用时间滤波器包括:获得指数函数;通过将缩放函数与指数函数相乘来获得至少一个相邻图片的权重;基于当前图片的样本值和至少一个相邻图片的权重来获得当前图片的滤波样本值;以及用滤波样本值替换当前图片的样本值。本申请中,实现了时间滤波的简化。
Description
相关申请的交叉引用
本申请要求2020年6月3日提交的美国临时申请第63/034,042号和2021年4月26日提交的美国申请第17/240,376号的优先权,其公开内容通过引用整体并入本文。
技术领域
本申请涉及视频编码技术,更具体地,涉及一种用于实现时间滤波的方法、***和计算机可读介质。
背景技术
AOMedia Video 1(AV1)是一种被设计用于通过因特网进行视频传输的开放的、免版税的视频编码格式,其由开放媒体联盟(Alliance for Open Media,AOMedia)作为VP9的继任者而开发。AOMedia是2015年成立的联盟,包括半导体公司、视频点播提供商、视频内容生产商、软件开发公司和网络浏览器供应商。
Libaom是AV1的参考实现。可扩展性视频技术AV1(Scalable Video TechnologyAV1,SVT-AV1)包括由英特尔在2019年2月首次发布的开源编码器和解码器。
由于与在编码期间测试的多种编码模式和变换类型相比,时间滤波过程针对每个块只执行一次,因此时间滤波花费的总时间只是总编码时间的一小部分。然而,当接近实时编码器时,大多数编码模式都没有使用早期决定过程进行测试或跳过,而时间滤波继续花费与之前大致相同的时间,该时间现在成为总时间的主要部分。在时间滤波过程中,花费的大部分时间来自于并置像素的权重的浮点计算,该计算还可能涉及寻找指数函数的值,该寻找过程是耗时的。
因此,由于先前的权重计算涉及许多浮点计算,因此编码器的硬件实现相当昂贵且效率低下。
发明内容
本公开内容的实施方式可以提供对上述问题和/或其他问题的解决方案。
根据一个或更多个实施方式,本申请提供了一种用于实现时间滤波方法。该方法由编码器执行,包括:对当前图片应用时间滤波器,包括:获得指数函数;通过将缩放函数与指数函数相乘来获得至少一个相邻图片的权重;基于当前图片的样本值和至少一个相邻图片的权重来获得当前图片的滤波样本值;以及用滤波样本值替换当前图片的样本值。该方法还包括在应用时间滤波器之后对当前图片进行编码。
根据实施方式,获得指数函数包括:通过将指数函数的指数计算为定点值或者通过使用至少一个查找表来获得指数函数,其中,指数函数包括具有分子和分母的指数,分子具有至少一个第一因子,分母具有至少一个第二因子。
根据实施方式,获得指数函数包括将指数函数的指数计算为定点值。
根据实施方式,计算定点值包括将定点值表示为2n位,其中,n为整数。
根据实施方式,计算定点值包括用缩放因子对指数函数的因子的浮点值表示进行缩放。
根据实施方式,获得指数函数包括使用至少一个查找表。
根据实施方式,至少一个查找表包括第一查找表和第二查找表,以及第一查找表包括指数函数的整数部分,并且第二查找表包括指数函数的小数部分。
根据实施方式,至少一个查找表包括指数函数的定点值。
根据实施方式,该方法还包括将缩放函数的因子转换为定点表示,其中,获得至少一个相邻图片的权重包括将缩放函数的定点表示与指数函数相乘。
根据实施方式,该方法还包括多次迭代地执行逐像素循环,所述多次迭代中的每次迭代包括对于当前图片的像素中的相应像素获得当前图片的滤波样本值;以及在执行逐像素循环的多次迭代之前,基于缩放函数或指数函数中的对于像素不变化的因子,转换为定点表示。
根据实施方式,缩放函数包括具有至少一个第三因子的分子和具有至少一个第四因子的分母,至少一个第三因子包括当前图片的噪声水平,以及至少一个第四因子包括至少一个相邻图片与当前图片的图片顺序计数距离。
根据一个或更多个实施方式,本申请提供了一种用于实现时间滤波***。该***包括:存储计算机代码的至少一个存储器;以及被配置成访问计算机代码并按照计算机代码的指示进行操作的至少一个处理器,该计算机代码包括:被配置成使至少一个处理器对当前图片应用时间滤波器的时间滤波器代码,该时间滤波器代码包括:指数函数获得代码,其被配置成使至少一个处理器获得指数函数;权重获得代码,其被配置成使至少一个处理器通过将缩放函数与指数函数相乘来获得至少一个相邻图片的权重;滤波样本值获得代码,其被配置成使至少一个处理器基于当前图片的样本值和至少一个相邻图片的权重来获得当前图片的滤波样本值;以及样本值替换代码,其被配置成使至少一个处理器用滤波样本值替换当前图片的样本值。该计算机代码还可以包括编码代码,其被配置成使至少一个处理器在应用时间滤波器之后对当前图片进行编码。
根据实施方式,指数函数获得代码,其被配置成使至少一个处理器通过将指数函数的指数计算为定点值或者通过使用至少一个查找表来获得指数函数,其中,指数函数包括具有分子和分母的指数,分子具有至少一个第一因子,分母具有至少一个第二因子。
根据实施方式,指数函数获得代码被配置成使至少一个处理器将指数函数的指数计算为定点值。
根据实施方式,指数函数获得代码被配置成使至少一个处理器将定点值表示为2n位,其中,n为整数。
根据实施方式,指数函数获得代码被配置成使至少一个处理器用缩放因子对指数函数的因子的浮点值表示进行缩放。
根据实施方式,指数函数获得代码被配置成使至少一个处理器通过使用至少一个查找表来获得指数函数。
根据实施方式,至少一个查找表包括第一查找表和第二查找表,以及第一查找表包括指数函数的整数部分,并且第二查找表包括指数函数的小数部分。
根据实施方式,至少一个查找表包括指数函数的定点值。
根据实施方式,该计算机代码还包括:转换代码,其被配置成使至少一个处理器将缩放函数的因子转换为定点表示,其中,权重获得代码被配置成使至少一个处理器通过将缩放函数的定点表示与指数函数相乘来获得至少一个相邻图片的权重。
根据实施方式,该计算机代码还包括:循环代码,其包括滤波样本值获得代码,并且被配置成使至少一个处理器多次迭代地执行逐像素循环,所述多次迭代中的每次迭代包括对于当前图片的像素中的相应像素获得当前图片的滤波样本值;以及转换代码,其被配置成使至少一个处理器在执行逐像素循环的多次迭代之前,基于缩放函数或指数函数中的对于像素不变化的因子,转换为定点表示。
根据一个或更多个实施方式,提供了一种存储计算机代码的非暂态计算机可读介质。该计算机代码被配置成当由至少一个处理器执行时使至少一个处理器执行上述任一方法。
由此可见,本申请中提供了一种用于实现时间滤波的方法、***和计算机可读介质。其中,用于实现时间滤波的方法包括:对当前图片应用时间滤波器;及在应用时间滤波器之后对当前图片进行编码。对当前图片应用时间滤波器包括:获得指数函数;通过将缩放函数与指数函数相乘来获得至少一个相邻图片的权重;基于当前图片的样本值和至少一个相邻图片的权重来获得当前图片的滤波样本值;及用滤波样本值替换当前图片的样本值。本申请中,实现了时间滤波的简化。
附图说明
所公开的主题的进一步特征、性质和各种优点将从以下详细描述和附图中变得更加明显,在附图中:
图1是根据本申请一实施例的通信***的简化框图的示意图;
图2是根据本申请另一实施例的通信***的简化框图的示意图;
图3是根据本申请一实施例的解码器的简化框图的示意图;
图4是根据本申请一实施例的编码器的简化框图的示意图;
图5是根据本申请一实施例的计算机代码的图;及
图6是适于本申请实施例的计算机***的图。
具体实施方式
在本公开内容中,术语块可以是指预测块、编码块或编码单元(coding unit,CU)。
图1示出了根据本公开内容的实施方式的通信***(100)的简化框图。***(100)可以包括经由网络(150)互连的至少两个终端(110、120)。对于单向数据传输,第一终端(110)可以在本地位置对视频数据进行编码,以经由网络(150)传输至另一终端(120)。第二终端(120)可以从网络(150)接收另一终端的编码视频数据,对编码数据进行解码并显示恢复的视频数据。单向数据传输在媒体服务应用等中是常见的。
图1示出了第二对终端(130、140),其被提供以支持例如在视频会议期间可能发生的编码视频的双向传输。对于双向数据传输,每个终端(130、140)可以对在本地位置捕获的视频数据进行编码,以经由网络(150)传输至另一终端。每个终端(130、140)还可以接收由另一终端发送的编码视频数据,可以对编码数据进行解码,并且可以在本地显示设备处显示恢复的视频数据。
在图1中,终端(110至140)可以被示出为服务器、个人计算机和智能电话、以及/或者任何其他类型的终端。例如,终端(110至140)可以是膝上型计算机、平板计算机、媒体播放器和/或专用视频会议设备。网络(150)表示在终端(110至140)之间传送编码视频数据的任何数目的网络,包括例如有线和/或无线通信网络。通信网络(150)可以在电路交换和/或分组交换通道中互换数据。代表性网络包括电信网络、局域网、广域网和/或因特网。出于本论述的目的,除非在下文中解释说明,否则网络(150)的架构和拓扑对于本公开内容的操作可能是不重要的。
图2示出了视频编码器和解码器在流媒体环境中的放置作为所公开主题的应用的示例。所公开的主题可以同样适用于其他支持视频的应用,包括例如视频会议、数字TV、在包括CD、DVD、记忆棒等的数字媒体上存储压缩视频等。
如图2中所示,流媒体***(200)可以包括捕获子***(213),该捕获子***(213)可以包括视频源(201)和编码器(203)。视频源(201)例如可以是数码摄像机,并且可以被配置成创建未压缩的视频样本流(202)。当与编码的视频比特流相比时,未压缩的视频样本流(202)可以提供高数据量,并且可以由耦接至摄像机(201)的编码器(203)处理。编码器(203)可以包括硬件、软件或其组合,以实现或实施所公开主题的各方面,如下面更详细描述的。当与样本流相比时,编码的视频比特流(204)可以包括较低的数据量,并且可以存储在流媒体服务器(205)上以供将来使用。一个或更多个流媒体客户端(206)可以访问流媒体服务器(205)以检索可以是编码的视频比特流(204)的副本的视频比特流(209)。
在实施方式中,流媒体服务器(205)还可以用作媒体感知网络元件(Media-AwareNetwork Element,MANE)。例如,流媒体服务器(205)可以被配置成修剪编码的视频比特流(204),以用于为流媒体客户端(206)中的一个或更多个定制可能不同的比特流。在实施方式中,可以在流媒体***(200)中与流媒体服务器(205)分开地提供MANE。
流媒体客户端(206)可以包括视频解码器(210)和显示器(212)。视频解码器(210)可以例如对作为编码的视频比特流(204)的传入副本的视频比特流(209)进行解码,并创建可以在显示器(212)或另一个渲染设备(未描绘)上渲染的传出视频样本流(211)。在一些流媒体***中,可以根据某些视频编码/压缩标准对视频比特流(204、209)进行编码。这样的标准的示例包括但不限于ITU-T建议H.265。正在开发的是一种非正式地称为通用视频编码(Versatile Video Coding,VVC)的视频编码标准。本公开内容的实施方式可以在VVC的上下文中使用。
图3示出了根据本公开内容的实施方式的附接至显示器(212)的视频解码器(210)的示例功能框图。
视频解码器(210)可以包括通道(312)、接收器(310)、缓冲器存储器(315)、熵解码器/解析器(320)、缩放器/逆变换单元(351)、帧内预测单元(352)、运动补偿预测单元(353)、聚合器(355)、环路滤波器单元(356)、参考图片存储器(357)和当前图片存储器(358)。在至少一个实施方式中,视频解码器(210)可以包括集成电路、一系列集成电路和/或其他电子电路***。视频解码器(210)也可以部分或全部以在具有相关联的存储器的一个或更多个CPU上运行的软件来实施。
在该实施方式和其他实施方式中,接收器(310)可以一次一个编码的视频序列地接收要由解码器(210)解码的一个或更多个编码的视频序列,其中每个编码的视频序列的解码独立于其他编码的视频序列。可以从通道(312)接收编码的视频序列,该通道(312)可以是到存储编码的视频数据的存储设备的硬件/软件链路。接收器(310)可以接收编码的视频数据和其他数据,例如编码的音频数据和/或辅助数据流,这些数据可以被转发至其各自的使用实体(未描绘)。接收器(310)可以将编码的视频序列与其他数据分开。为了对抗网络抖动,缓冲器存储器(315)可以耦接在接收器(310)与熵解码器/解析器(320)(此后称之为“解析器”)之间。当接收器(310)从具有足够带宽和可控性的存储/转发设备或从等时同步网络接收数据时,缓冲器(315)可能不被使用,或者可能很小。为了在诸如因特网的尽力而为的分组网络上使用,可能需要缓冲器(315),缓冲器(315)可以比较大,并且可以具有自适应大小。
视频解码器(210)可以包括解析器(320)以从熵编码的视频序列重构符号(321)。这些符号的类别包括例如用于管理解码器(210)的操作的信息,以及可能地控制渲染设备例如如图2中所示的可以耦接至解码器的显示器(212)的信息。渲染设备的控制信息可以是例如补充增强信息(Supplementary Enhancement Information,SEI)消息或视频可用性信息(Video Usability Information,VUI)参数集片段(未描绘)的形式。解析器(320)可以对接收到的编码的视频序列进行解析/熵解码。编码的视频序列的编码可以根据视频编码技术或标准,并且可以遵循本领域技术人员熟知的原理,包括可变长度编码、霍夫曼编码、具有或不具有上下文敏感性的算术编码等等。解析器(320)可以基于与组相对应的至少一个参数从编码的视频序列中提取用于视频解码器中的像素子组中的至少一个的一组子组参数。子组可以包括图片组(Groups of Pictures,GOP)、图片、区块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等。解析器(320)还可以从编码的视频序列中提取诸如变换系数、量化器参数值、运动向量等的信息。
解析器(320)可以对从缓冲器(315)接收的视频序列执行熵解码/解析操作,从而创建符号(321)。
取决于编码的视频图片或其部分的类型(例如:帧间和帧内图片、帧间和帧内块)及其他因素,符号(321)的重构可以涉及多个不同的单元。涉及哪些单元以及如何涉及这些单元可以通过由解析器(320)从编码的视频序列解析的子组控制信息来控制。为了清楚起见,没有描绘在解析器(320)与下面的多个单元之间的这种子组控制信息的流动。
除了已经提到的功能块之外,解码器210可以在概念上细分为多个功能单元,如下所述。在商业限制下操作的实际实现中,这些单元中的许多单元彼此密切交互,并且可以至少部分地相互集成。然而,为了描述所公开的主题,概念上细分为以下功能单元是适当的。
一个单元可以是缩放器/逆变换单元(351)。缩放器/逆变换单元(351)可以从解析器(320)接收量化的变换系数以及控制信息包括使用哪种变换、块大小、量化因子、量化缩放矩阵等作为符号(321)。缩放器/逆变换单元(351)可以输出包括样本值的块,这些样本值可以输入至聚合器(355)中。
在某些情况下,缩放器/逆变换(351)的输出样本可以属于帧内编码块,即,不使用来自先前重构的图片的预测信息,但可以使用来自当前图片的先前重构的部分的预测信息的块。这种预测信息可以由帧内图片预测单元(352)提供。在一些情况下,帧内图片预测单元(352)使用从来自当前图片存储器(358)的当前(部分重构的)图片获取的周围已经重构的信息来生成与重构中的块具有相同大小和形状的块。在一些情况下,聚合器(355)在每个样本的基础上将帧内预测单元(352)已经生成的预测信息加到如由缩放器/逆变换单元(351)提供的输出样本信息。
在其他情况下,缩放器/逆变换单元(351)的输出样本可以属于帧间编码以及可能地运动补偿的块。在这种情况下,运动补偿预测单元(353)可以访问参考图片存储器(357)以获取用于预测的样本。在根据与块有关的符号(321)对获取的样本进行运动补偿之后,这些样本可以由聚合器(355)加到缩放器/逆变换单元(351)的输出(在这种情况下称为残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(353)从其中获取预测样本的参考图片存储器(357)内的地址可以由运动向量控制。运动向量可以以可以具有例如X、Y和参考图片分量的符号(321)的形式对运动补偿预测单元(353)可用。运动补偿还可以包括当使用子样本精确运动向量时如从参考图片存储器(357)获取的样本值的内插、运动向量预测机制等等。
聚合器(355)的输出样本可以经受环路滤波器单元(356)中的各种环路滤波技术。视频压缩技术可以包括环内滤波器技术,环内滤波器技术由编码的视频比特流中包括的并且从解析器(320)作为符号(321)提供给环路滤波器单元(356)的参数控制,但也可以响应于在编码的图片或编码的视频序列的先前(按解码顺序)部分的解码期间获得的元信息,以及响应于先前重构和环路滤波的样本值。
环路滤波器单元(356)的输出可以是样本流,该样本流可以输出至诸如显示器(212)的渲染设备,以及存储在参考图片存储器(357)中以供在将来的帧间图片预测中使用。
某些编码的图片一旦完全重构,就可以用作将来预测的参考图片。一旦编码的图片被完全重构并且编码的图片已经被识别为参考图片(例如,通过解析器(320)),当前参考图片就可以成为参考图片存储器(357)的一部分,并且可以在开始重构后面的编码的图片之前重新分配新的当前图片存储器。
视频解码器(210)可以根据预定的视频压缩技术执行解码操作,该视频压缩技术可以记录在标准例如ITU-T建议H.265中。编码的视频序列可以符合由正在使用的视频压缩技术或标准指定的语法,从某种意义上说,其遵守如在视频压缩技术文件或标准中,特别是在其中的配置文档中指定的视频压缩技术或标准的语法。此外,为了符合某些视频压缩技术或标准,编码的视频序列的复杂性可能在如由视频压缩技术或标准的级别所定义的范围内。在某些情况下,级别限制了最大图片大小、最大帧速率、最大重构采样率(例如,以每秒兆样本为单位测量)、最大参考图片大小等。在某些情况下,通过级别设置的限制可以通过假设参考解码器(Hypothetical Reference Decoder,HRD)规范和用于在编码的视频序列中用信号通知的用于HRD缓冲器管理的元数据来进一步限制。
在实施方式中,接收器(310)可以接收附加(冗余)数据和编码的视频。可以包括附加数据作为编码的视频序列的一部分。可以由视频解码器(210)使用附加数据来正确地对数据进行解码和/或更准确地重构原始视频数据。附加数据可以是例如,时间、空间或SNR增强层、冗余切片、冗余图片、前向纠错码等的形式。
图4示出了根据本公开内容的实施方式的与视频源(201)相关联的视频编码器(203)的示例功能框图。
视频编码器(203)可以包括例如编码器即源编码器(430)、编码引擎(432)、(本地)解码器(433)、参考图片存储器(434)、预测器(435)、发送器(440)、熵编码器(445)、控制器(450)和通道(460)。
编码器(203)可以从视频源(201)(其不是编码器的一部分)接收视频样本,该视频源(201)可以捕获要由编码器(203)编码的视频图像。
视频源(201)可以以数字视频样本流的形式提供要由编码器(203)编码的源视频序列,数字视频样本流可以是任何合适的位深度(例如,8位、10位、12位、…)、任何色彩空间(例如,BT.601Y CrCB、RGB、…)和任何合适的采样结构(例如,Y CrCb 4:2:0、Y CrCb 4:4:4)。在媒体服务***中,视频源(201)可以是存储先前准备好的视频的存储设备。在视频会议***中,视频源(201)可以是捕获本地图像信息作为视频序列的摄像机。视频数据可以作为多个单独的图片来提供,这些图片在按顺序观看时传递运动。图片本身可以被组织为像素的空间阵列,其中取决于使用的采样结构、色彩空间等,每个像素可以包括一个或更多个样本。本领域技术人员可以容易地理解像素与样本之间的关系。下面的描述集中于样本。
根据实施方式,编码器(203)可以实时地或在如应用所需的任何其他时间约束下将源视频序列的图片编码和压缩为编码的视频序列。实施适当的编码速度是控制器(450)的一项功能。控制器(450)还可以控制如下所述的其他功能单元并且可以在功能上耦接至这些单元。为清楚起见,未描绘耦接。由控制器(450)设置的参数可以包括与速率控制相关的参数(图片跳跃、量化器、速率失真优化技术的λ(lambda)值、…)、图片大小、图片组(group of pictures,GOP)布局、最大运动向量搜索范围等。本领域技术人员可以容易地识别控制器(450)的其他功能,因为这些功能可能与针对特定***设计而优化的视频编码器(203)有关。
一些视频编码器按照本领域技术人员容易识别为“编码环路”的方式进行操作。作为过度简化的描述,编码环路可以由源编码器(430)的编码部分(负责基于要编码的输入图片和参考图片创建符号)以及嵌入编码器(203)中的(本地)解码器(433)组成,编码器(203)重构符号以创建样本数据,当符号与编码的视频比特流之间的压缩在某些视频压缩技术中是无损的时(远程)解码器也将创建样本数据。可以将该重构的样本流输入至参考图片存储器(434)。由于符号流的解码导致与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器内容在本地编码器与远程编码器之间也是位精确的。换句话说,编码器的预测部分将参考图片样本“视为”与解码器在解码期间使用预测时将“看到”的样本值完全相同。本领域技术人员已知参考图片同步性的这一基本原理(以及如果不能保持同步性,例如由于通道错误而导致的漂移)。
“本地”解码器(433)的操作可以与上面已经结合图3详细描述的“远程”解码器(210)的操作相同。然而,由于符号是可用的并且由熵编码器(445)和解析器(320)对编码的视频序列的符号编码/解码可以是无损的,包括通道(312)、接收器(310)、缓冲器(315)和解析器(320)的解码器(210)的熵解码部分可能未在本地解码器(433)中完全实现。
在这一点上可以进行的观察是,除了解码器中存在的解析/熵解码之外,任何解码器技术都可能需要以基本上相同的功能形式存在于相应的编码器。为此,所公开的主题集中于编码器操作。可以缩写解码器技术的描述,因为其可能与全面描述的编码器技术相反。仅在某些领域需要更详细的描述,并在下面提供更详细的描述。
作为其操作的一部分,源编码器(430)可以执行运动补偿预测编码,其参考来自视频序列的一个或更多个先前编码的帧来对输入帧进行预测编码,这些先前编码的帧被指定为“参考帧”。以这种方式,编码引擎(432)对输入帧的像素块与参考帧的像素块之间的差异进行编码,参考帧可以被选择作为输入帧的预测参考。
本地视频解码器(433)可以基于由源编码器(430)创建的符号对可以被指定为参考帧的帧的编码视频数据进行解码。编码引擎(432)的操作可以有利地是有损过程。当编码视频数据可以在视频解码器(图4中未示出)处被解码时,重构的视频序列通常可以是具有一些错误的源视频序列的副本。本地视频解码器(433)复制可以由视频解码器对参考帧执行的解码过程,并且可以使重构的参考帧存储在参考图片存储器(434)中。以这种方式,编码器(203)可以将具有共同内容的本地重构的参考帧的副本存储为重构的参考帧,重构的参考帧将由远端视频解码器获得(不存在传输错误)。
预测器(435)可以执行编码引擎(432)的预测搜索。也就是说,对于要编码的新帧,预测器(435)可以在参考图片存储器(434)中搜索可以用作新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据例如参考图片运动向量、块形状等。预测器(435)可以在样本块-像素块的基础上操作以找到适当的预测参考。在一些情况下,如通过由预测器(435)获得的搜索结果所确定的,输入图片可以具有从存储在参考图片存储器(434)中的多个参考图片中取得的预测参考。
控制器(450)可以管理视频编码器(430)的编码操作,包括例如设置用于对视频数据进行编码的参数和子组参数。
所有前述功能单元的输出可以在熵编码器(445)中进行熵编码。熵编码器通过根据本领域技术人员已知的技术例如霍夫曼编码、可变长度编码、算术编码等对符号进行无损压缩来将如由各种功能单元生成的符号转变为编码的视频序列。
发送器(440)可以缓冲如由熵编码器(445)创建的编码视频序列,以准备经由通信通道(460)发送,该通信通道(460)可以是到将存储编码视频数据的存储设备的硬件/软件链路。发送器(440)可以将来自视频编码器(430)的编码视频数据与要发送的其他数据例如编码音频数据和/或辅助数据流(源未示出)合并。
控制器(450)可以管理编码器(203)的操作。在编码期间,控制器(450)可以为每个编码图片分配特定编码图片类型,这可能影响可以应用于相应图片的编码技术。例如,图片通常可以被分配为帧内图片(I图片)、预测图片(P图片)或双向预测图片(B图片)。
帧内图片(I图片)可以是可以在不使用序列中的任何其他帧作为预测源的情况下进行编码和解码的图片。一些视频编解码器允许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,IDR)图片。本领域技术人员知道I图片的那些变型及其各自的应用和特征。
预测图片(P图片)可以是可以使用帧内预测或者使用至多一个运动向量和参考索引来预测每个块的样本值的帧间预测进行编码和解码的图片。
双向预测图片(B图片)可以是可以使用帧内预测或者使用至多两个运动向量和参考索引来预测每个块的样本值的帧间预测进行编码和解码的图片。类似地,多个预测图片可以将多于两个参考图片和相关联的元数据用于单个块的重构。
源图片通常可以在空间上被细分为多个样本块(例如,各自为4x4、8x8、4x8或16x16的样本块)并在逐块的基础上进行编码。块可以参考如由应用于块的相应图片的编码分配确定的其他(已经编码的)块进行预测编码。例如,I图片的块可以被非预测编码,或者其可以参考相同图片的已经编码的块(空间预测或帧内预测)被预测编码。P图片的像素块可以参考一个先前编码的参考图片经由空间预测或经由时间预测被非预测编码。B图片的块可以参考一个或两个先前编码的参考图片经由空间预测或经由时间预测被非预测编码。
视频编码器(203)可以根据预定的视频编码技术或标准例如ITU-T建议H.265执行编码操作。在其操作中,视频编码器(203)可以执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,编码的视频数据可以符合由正在使用的视频编码技术或标准指定的语法。
在实施方式中,发送器(440)可以将附加数据与编码视频一起发送。视频编码器(430)可以包括这样的数据作为编码视频序列的一部分。附加数据可以包括时间/空间/SNR增强层、诸如冗余图片和切片的其他形式的冗余数据、补充增强信息(SupplementaryEnhancement Information,SEI)消息、视觉可用性信息(Visual Usability Information,VUI)参数集片段等。
时间滤波是一种尝试使用与相邻帧的时间冗余来对当前帧进行去噪的技术。其应用于作为通用视频编码(Versatile Video Coding,VVC)编解码器的测试模型的通用视频编码和测试模型6(Versatile Video Coding and Test Model 6,VTM6)(如在JVET-O0549中所述),以及应用于作为AV1编解码器的编码器的libaom和SVT-AV1。滤波器的精确实现因编码器而异。
在模式决定期间,编码器可能会尝试使每个块的速率*λ+失真度量最小化。
如果当前图片后面有相同的后续图片,则可以跳过当前图片中的编码块。在这种情况下,可以使速率*λ+2*失真最小化。VTM通过为时间层设置不同的量化参数(quantization parameter,QP)值来为随机访问(Random-Access,RA)近似该值。
如果后续图片仅略有不同,则编码块仍将有可能被跳过。在这种情况下,可以使速率*λ+失真1+失真2最小化。可以计算编码块与两个图片的原始版本的平均值之间的失真,而不是分别计算两个失真。这是使用时间滤波的原始图片的一个动机。如果原始图像不同,则滤波器强度可能会迅速下降,因为第一图片的解码样本值将不再可能重新用于第二图片。
时间滤波器在编码器中的一般应用过程可能如下。
步骤1:由编码器读取图片。
步骤2:如果图片在编码层次结构中足够低,则在编码之前对其进行滤波。否则,图片被编码而无需滤波。
步骤3:如果确定将时间滤波器应用于当前帧,则对相邻图片应用运动估计和运动补偿方法。该步骤的目的是在相邻帧中的每个中找到与当前块最接近的匹配。
步骤4:一旦收集了来自相邻帧中的每个帧的所有相似块,则在编码之前通过使用下面的等式(1),由编码器将原始图片的所有样本值替换为经滤波的样本值In:
其中,Io是原始样本值,Ir(i)是在运动补偿之后相邻图片i中的相同位置的(co-located)样本值,并且wr(i,a)是在可用相邻图片的数目等于a时相邻图片i的权重。
通过使用下面的等式(2),由编码器计算权重wr(i,a):
其中,e可以是指数常数。
通过使用下面的等式(3)计算ΔI(i):
ΔI(i)=Ir(i)-Io 等式(3)
函数f基于ΔI计算指数中的因子,具体的函数在实现之间有所不同。xn和xd是修正权重的其他因子,其可能取决于其他像素级特征,例如局部平均ME误差,或者可能取决于块/帧级特征,例如QP。最后,S是最终权重计算的缩放因子。
尽管可以如上所述执行时间滤波器实现,但是实现的细节可以变化。实现主要在以下点中变化:
(A)适用帧:尽管实现可以将时间滤波应用于图片组(Group of Pictures,GOP)层次结构中的较低层,但是在确定其的方式上存在细微变化。例如,在VTM中,具有图片顺序计数(picture order count,POC)%8==0的随机访问(Random-Access,RA)图片和具有POC%4==0的低延迟(Low-Delay,LD)图片被滤波。所有帧内(All-Intra,AI)图片永远不会被滤波。此外,在Libaom和SVT-AV1中,所有关键帧和ALTREF帧都在时间上被滤波。
(B)参考帧的数目:用于时间滤波过程的相邻帧的数目可能因编码器而异。VTM在RA编码条件下可以使用4个帧,以及在LD编码配置下可以使用2个参考帧。libaom和SVT编码器使参考帧的数目可配置。然而,默认值可以被设置为7个参考帧。
(C)使用的块的大小:VTM可以在8x8块的基础上执行运动估计(motionestimation,ME)、运动补偿(motion compensation,MC)和滤波处理,而libaom和SVT可以在32x32块的基础上执行处理。如果解码器检测到ME误差过大,则Libaom和SVT两者可能都切换到16x16级别处理。
(D)运动估计:实现可能在分层运动估计级别的数目、搜索是否从子采样参考帧和当前帧开始、执行运动估计的最小小数像素以及用于运动补偿的滤波器方面不同。
(E)权重计算方法:在平均之前分配给并置像素中的每个的权重是实现可能不同的主要区域。权重计算可以通过各种因子的函数来进行。虽然当前像素的运动估计误差是实现中常用的因子,但是可以使用更多因子来改变所得权重。例如,在VVC中,可以使用当前帧的ME误差和QP来确定权重。在Libaom中,当前像素周围的窗口的ME误差、当前帧的噪声水平和运动向量的幅度可以用于确定权重。在SVT-AV1中,当前像素周围的窗口的ME误差和当前帧的噪声水平可以用于确定权重。
尽管使用的因子存在差异,但是实现可以使用下面的等式(4)来确定权重:
等式中使用的项先前已进行了描述。由于因子中的至少一个(例如,像素的ME误差/当前像素周围的窗口的平均ME误差)因像素而异,因此每个像素的权重是唯一的,并且可能需要重复计算。
本公开内容的实施方式可以单独使用或以任何顺序组合。此外,实施方式(例如,方法、编码器和解码器)中的每个可以通过处理电路***(例如,一个或更多个处理器或者一个或更多个集成电路)来实现。在一个示例中,一个或更多个处理器执行存储在非暂态计算机可读介质中的程序。本公开内容的实施方式可以实现上面和下面描述的时间滤波的各方面。
本公开内容的实施方式不仅可以实现在本公开内容中描述的用于时间滤波的技术,而且还可以实现在本公开内容中描述的用于包含如下所述的指数计算的任何方法的技术。
本公开内容的实施方式可以实现用于计算权重w的权重推导等式。用于计算权重w的权重推导等式的一般形式在下面以等式(5)示出:
其中e可以是指数常数,并且sn1、sn2、sd1、sd2、xn1、xn2、xd1、xd2是实数。根据实施方式,因子的数目可以变化。例如,在实施方式中,在等式中仅包括sn1、sd1、xn1、xd1。在另一个实施方式中,可以在等式中包括sn1、sn2、sn3、sd1、sd2、sd3、xn1、xn2、xn3、xd1、xd2、xd3。
以这种方式具有一般形式的原因如下:
(A)指数分子中的项(例如,xn1、xn2、…)是如下因子,如果这些因子变得更大,则其使计算的最终权重减小。例如,一个这样的因子可以是运动估计误差。如果运动估计误差更大,则权重应该更小,因此将运动估计误差相关因子放在分子中。可能存在多个这样的因子,因此在一般形式的分子中可能存在多个因子。
(B)指数分母中的项(例如,xd1、xd2、…)是如下因子,如果这些因子变得更大,则其使计算的最终权重增大。例如,一个这样的因子可以是量化参数(quantizationparameter,QP)。如果量化参数(quantization parameter,QP)更大,则权重应该更大,因此将QP因子相关参数放在分母中。可能存在多个这样的因子,因此在一般形式的分母中可能存在多个因子。
(C)分子的项sn1、sn2、…可以包含最终的缩放因子。最终权重可能会被缩放,原因是指数函数可能会导致值小于1,并且为了以定点精度操作,可能需要执行缩放。这些项还可以包含可以线性影响计算的最终权重的参数。例如,一个参数可以是正被滤波的帧的噪声水平,其中噪声量越大,权重可以成比例地增加。由于可能存在多个这样的参数并且由于缩放因子也包括在分子中,因此一般形式可以在分子中包括多个因子。
(D)分母的项sd1、sd2、…可以包含可能成反比地影响最终权重的因子。这样的因子可以包括例如参考帧与当前帧的POC距离。在这种情况下,POC距离越大,可以分配给参考帧的权重越低。由于可能存在多个这样的参数,因此分母可以在一般形式中包括多个因子。
根据实施方式,编码器可以将指数函数的指数(例如,项xn1、xn2、…和xd1、xd2、…)计算为定点值而不是浮点值。
根据实施方式,定点表示可以使用2n位来表示,其中n为整数。可以选择值n,使得定点值不会溢出2n。
在另一个实施方式中,定点表示可以使用缩放因子,使得可以通过除以缩放因子来获得基本的浮点值。缩放因子还可以被选择为2的幂,使得缩放操作可以通过简单的二进制逻辑移位操作来执行。例如,缩放因子可以等于25。可以通过计算xn1_固定=xn1×25并将其四舍五入到最接近的整数来将浮点值xn1写为定点值。xn1与另一个整数Xn2的乘法可以被执行为(xn1_固定×xn2)>>5。
在一个实施方式中,可以选择缩放因子,使得放大和缩小以获得基本的浮点值不会导致值的精度的显著损失。
在另一个实施方式中,可以选择缩放因子,使得浮点的放大操作以获得定点表示并在所述定点表示中执行计算不会显著降低编码器的性能。例如,用于计算指数函数的指数的因子中的每个因子(例如,平均运动估计误差、帧的噪声水平和运动向量的幅度)本身可以被转换为定点表示。
根据实施方式,编码器可以使用查找表而不是使用上述计算来获得指数函数。
根据实施方式,可以使用两个查找表来计算指数函数,一个查找表用于输入值的小数部分,并且一个查找表用于输入值的整数部分,因为e整数+小数=e整数×e小数。
在一个实施方式中,查找表可以包含通过适当地缩放浮点值而得到的定点值。
在一个实施方式中,ex可以等效地转换为2x.log2e,其还可以写为2整数2小数。2小数部分可以使用查找表来计算,而2整数部分可以使用逻辑移位操作来获得。
在实施方式中,存储在查找表中的每个值可以不超过N位宽,使得可以有效地执行查找操作的单指令/多数据(single instruction/multiple data,SIMD)实现。例如,N可以等于8,并且对于高级向量扩展(Advanced Vector Extensions,AVX)和高级向量扩展2(Advance Vector Extensions 2,AVX2)指令集,可以有效地执行SIMD查找。
在实施方式中,查找表的大小可以不超过N个值长,使得可以有效地执行查找操作的SIMD实现。例如,N可以等于16,并且对于AVX和AVX2指令集,可以有效地执行SIMD查找。
根据实施方式,编码器可以在乘法之前将与指数函数相乘/相除以获得给定并置像素的最终权重的值sn1、sn2、…和sd1、sd2、…转换为定点值以便避免浮点运算。在计算期间转换这些值的点可能会改变最终性能。
在实施方式中,用于将浮点值转换为定点表示的缩放因子可以是2的幂,使得缩放操作可以通过简单的二进制逻辑移位操作来执行。
在实施方式中,值sn1、sn2、…和sd1、sd2、…可以直接并入指数函数的查找表中,使得在从表中查找值之后不需要进一步的乘法。作为示例,可以通过将因子乘以查找表中的现有值来执行并入查找表中。在示例中,查找表中的值可以在合并sn1、sn2、…和sd1、sd2、…之后被转换为定点值。
根据实施方式,编码器可以在通过使sn1、sn2、…和sd1、sd2、…相乘/相除来计算其有效值之后将sn1、sn2、…和sd1、xd2、…中的不变值转换为定点。该定点值可以在每个像素的权重计算期间直接使用,而不是稍后在每个像素的权重计算期间转换为定点。在计算期间转换这些值的点可能会改变最终性能。在逐像素循环之外将这些值转换为定点节省冗余计算,因此效率更高。
在实施方式中,可以预先计算对于像素块保持恒定的指数函数的指数因子(xn1、xn2、…和xd1、xd2、…)的子集并且可以存储其结果值。当计算每个像素的权重时,不能使xn1、xn2、…和xd1、xd2、…中的每一个相乘/相除,并且只有对于每个像素变化的那些可以与不变因子的组合值相乘/相除。
在实施方式中,用于将浮点值转换为定点表示的缩放因子可以是2的幂,使得缩放操作可以通过简单的二进制逻辑移位操作来执行。
在实施方式中,可以在通过使xn1、xn2、…和xd1、xd2、…相乘/相除来计算其有效值之后将xn1、xn2、…和xd1、xd2、…之中的不变因子转换为定点。该定点值可以在每个像素的权重计算期间直接使用,而不是稍后在每个像素的权重计算期间转换为定点。在计算期间转换这些值的点可能会改变最终性能。在逐像素循环之外将这些值转换为定点节省冗余计算,因此效率更高。
本公开内容的实施方式可以包括至少一个处理器和存储计算机代码的存储器。计算机代码当由至少一个处理器执行时可以被配置成使至少一个处理器执行本公开内容的实施方式的功能。编码器(或解码器)可以包括至少一个处理器和存储器。编码器(或解码器)可以执行本文中描述的实施方式的功能。
例如,参照图5,本公开内容的编码器(500)可以包括至少一个处理器和存储计算机代码的存储器。计算机指令可以包括时间滤波器代码(510)和编码代码(520)。
时间滤波器代码(510)可以被配置成使至少一个处理器向当前图片应用时间滤波器,如关于本公开内容的一个或更多个实施方式所描述的。作为示例,时间滤波器代码(510)可以包括指数函数获得代码(511)、缩放函数获得代码(512)、权重获得代码(513)、滤波样本值获得代码(514)和样本值替换代码(515)。
指数函数获得代码(511)可以被配置成使至少一个处理器通过将指数函数的指数计算为定点值和/或通过使用至少一个查找表来获得指数函数,该指数函数包括具有分子和分母的指数,分子具有至少一个第一因子(例如,xn1、xn2、…),分母具有至少一个第二因子(例如,xd1、xd2、…),如关于本公开内容的一个或更多个实施方式所描述的。
缩放函数获得代码(512)可以被配置成使至少一个处理器通过将缩放函数的因子计算为定点值和/或通过使用至少一个查找表来获得缩放函数,该缩放函数包括具有分子和分母的指数,分子具有至少一个第三因子(例如,sn1、sn2、…),分母具有至少一个第四因子(例如,sd1、sd2、…),如关于本公开内容的一个或更多个实施方式所描述的。
权重获得代码(513)可以被配置成使至少一个处理器通过将缩放函数与指数函数相乘(例如,参考等式(5))来获得至少一个相邻图片的权重,如关于本公开内容的一个或更多个实施方式所描述的。
滤波样本值获得代码(514)可以被配置成使至少一个处理器基于当前图片的样本值和至少一个相邻图片的权重来获得当前图片的滤波样本值,如关于本公开内容的一个或更多个实施方式(例如,参考等式(1))描述的。
样本值替换代码(515)可以被配置成使至少一个处理器用滤波样本值替换当前图片的样本值,如关于本公开内容的一个或更多个实施方式所描述的。
根据实施方式,时间滤波器代码(510)可以包括循环代码,该循环代码被配置成使针对当前图片的像素中的每个像素全部或部分迭代地执行指数函数获得代码(511)、缩放函数获得代码(512)、权重获得代码(513)、滤波样本值获得代码(514)和样本值替换代码(515)中的一个或更多个。根据一个或更多个实施方式,指数函数获得代码(511)和缩放函数获得代码(512)中的一个或更多个可以包括用于将指数函数和/或缩放函数的值从浮点表示转换成定点表示的转换代码,并且该转换代码可以包括在循环代码的内部或外部。
编码代码(520)可以被配置成使至少一个处理器在应用时间滤波器之后对当前图片进行编码,如关于本公开内容的一个或更多个实施方式所描述的。
根据一个或更多个实施方式,计算机代码还可以包括查找表代码(530),该查找表代码(530)可以被配置成使至少一个处理器获得一个或更多个查找表,如关于本公开内容的实施方式所描述的。例如,根据实施方式,查找表代码(530)可以被配置成使至少一个处理器接收查找表和/或构造其中包括值的查找表。
上述本公开内容的实施方式的技术可以被实现为计算机软件,该计算机软件使用计算机可读指令并且物理上存储在一个或更多个计算机可读介质中。例如,图6示出了适合于实现所公开主题的实施方式的计算机***(900)。
可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,这些机器代码或计算机语言可以进行汇编、编译、链接或类似机制以创建包括如下指令的代码,所述指令可以由计算机中央处理单元(central processing units,CPU)、图形处理单元(Graphics Processing Units,GPU)等直接执行,或者通过解释、微代码执行等执行。
指令可以在各种类型的计算机或其部件上执行,包括例如个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等。
图6中所示的用于计算机***(900)的部件在本质上是示例性的,并且不旨在暗示对实现本公开内容的实施方式的计算机软件的使用范围或功能的任何限制。部件的配置也不应被解释为具有与计算机***(900)的示例性实施方式中所示的部件的任何一个或组合相关的任何依赖性或要求。
计算机***(900)可以包括某些人机接口输入设备。这样的人机接口输入设备可以响应一个或更多个人类用户通过例如触觉输入(例如,按键、滑动、数据手套移动)、音频输入(例如,语音、拍手)、视觉输入(例如,手势)、嗅觉输入(未描绘)的输入。人机接口设备还可以用于捕获不一定与人类有意识输入直接相关的某些媒体,例如音频(例如,语音、音乐、环境声音)、图像(例如,扫描图像、从静止图像摄像机获得的摄影图像)、视频(例如,二维视频、包括立体视频的三维视频)。
输入人机接口设备可以包括以下中的一个或更多个(仅描绘的每个中的一个):键盘(901)、鼠标(902)、触控板(903)、触摸屏(910)、数据手套、操纵杆(905)、麦克风(906)、扫描仪(907)和摄像机(908)。
计算机***(900)还可以包括某些人机接口输出设备。这样的人机接口输出设备可以通过例如触觉输出、声音、光和气味/味道来刺激一个或更多个人类用户的感觉。这样的人机接口输出设备可以包括触觉输出设备(例如,通过触摸屏(910)、数据手套或操纵杆(905)的触觉反馈,但是也可以存在不用作输入设备的触觉反馈设备)。例如,这样的设备可以是音频输出设备(例如,扬声器(909)、耳机(未描绘))、视觉输出设备(例如,包括CRT屏幕、LCD屏幕、等离子体屏幕、OLED屏幕的屏幕(910),每个屏幕都有或没有触摸屏输入能力,每个屏幕都有或没有触觉反馈能力——其中的一些能够通过诸如立体输出、虚拟现实眼镜(未描绘)、全息显示器和发烟器(未描绘)的装置输出二维视觉输出或超过三维输出)、以及打印机(未描绘)。
计算机***(900)还可以包括人机可访问的存储设备及其相关联的介质,例如包括具有CD/DVD等介质(921)的CD/DVD ROM/RW(920)的光学介质、拇指驱动器(922)、可移动硬盘驱动器或固态驱动器(923)、传统磁介质例如磁带和软盘(未描绘)、基于专用ROM/ASIC/PLD的设备例如安全软件狗(未描绘)等。
本领域技术人员还应该理解,如结合当前公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其他暂态信号。
计算机***(900)还可以包括到一个或更多个通信网络的接口。例如,网络可以是无线的、有线的、光学的。网络还可以是本地的、广域的、城市的、车辆和工业的、实时的、延迟容忍的等等。网络的示例包括局域网例如,以太网、无线LAN、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括线缆TV、卫星TV和地面广播TV的TV有线或无线广域数字网络、包括CANBus的车辆和工业网络等。某些网络通常需要附接至某些通用数据端口或***总线(949)(例如,计算机***(900)的USB端口)的外部网络接口适配器;其他网络通常通过附接至如下所述的***总线(例如,到PC计算机***中的以太网接口或到智能电话计算机***中的蜂窝网络接口)集成到计算机***900的核心中。使用这些网络中的任意一个,计算机***(900)可以与其他实体进行通信。这样的通信可以单向仅接收(例如广播TV)、单向仅发送(例如,CANbus到某些CANbus设备),或者双向,例如使用局域或广域数字网络到其他计算机***。这样的通信可以包括到云计算环境(955)的通信。某些协议和协议栈可以在如上所述的这些网络和网络接口中的每一个上使用。
前述的人机接口设备、人机可访问的存储设备和网络接口(954)可以附接至计算机***(900)的核心(940)。
核心(940)可以包括一个或更多个中央处理单元(Central Processing Units,CPU)(941)、图形处理单元(Graphics Processing Units,GPU)(942)、现场可编程门区(Field Programmable Gate Areas,FPGA)形式的专用可编程处理单元(943)、用于某些任务的硬件加速器(944)等等。这些设备连同只读存储器(Read-only memory,ROM)(945)、随机存取存储器(946)、内部大容量存储设备,例如内部非用户可访问的硬盘驱动器、SSD等(947)可以通过***总线(948)连接。在一些计算机***中,可以以一个或更多个物理插头的形式访问***总线(948),以实现由附加CPU、GPU等的扩展。***设备可以直接,或通过***总线(949)附接至核心的***总线(948)。***总线的架构包括PCI、USB等。图形适配器950可以包括在核心940中。
CPU(941)、GPU(942)、FPGA(943)和加速器(944)可以执行某些指令,这些指令可以组合构成上述计算机代码。该计算机代码可以存储在ROM(945)或RAM(946)中。过渡数据也可以存储在RAM(946)中,而永久数据可以存储在例如内部大容量存储设备(947)中。可以通过使用高速缓冲存储器来实现对存储器设备中的任何一个的快速存储和检索,该高速缓冲存储器可以与一个或更多个CPU(941)、GPU(942)、大容量存储设备(947)、ROM(945)、RAM(946)等密切相关联。
在计算机可读介质上可以具有用于执行各种计算机实现的操作的计算机代码。介质和计算机代码可以是为了本公开内容的目的而专门设计和构造的那些,或者其可以是计算机软件领域的技术人员熟知和可用的那种。
作为示例而非通过限制的方式,具有架构(900),特别是核心(940)的计算机***可以提供作为处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一个或更多个有形的计算机可读介质中的软件的结果的功能。这样的计算机可读介质可以是与如上引入的用户可访问的大容量存储设备相关联的介质,以及具有非暂态性质的核心(940)的某些存储设备,例如核心内部大容量存储设备(947)或ROM(945)。实现本公开内容的各种实施方式的软件可以存储在这样的设备中并且由核心(940)执行。根据特定需要,计算机可读介质可以包括一个或更多个存储器设备或芯片。该软件可以使核心(940),特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文中描述的特定过程或特定过程的特定部分,包括根据由软件定义的过程定义存储在RAM(946)中的数据结构和修改这样的数据结构。另外或作为替选方案,计算机***可以提供作为硬连线或以其他方式体现在电路(例如,加速器(944))中的逻辑的结果的功能,该逻辑可以代替软件或与软件一起操作以执行本文中描述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包含逻辑,反之,对逻辑的引用可以包含软件。在适当的情况下,对计算机可读介质的引用可以包括存储用于执行的软件的电路(例如,集成电路(integrated circuit,IC))、体现用于执行的逻辑的电路或两者。本公开内容包括硬件和软件的任何合适的组合。
虽然本公开内容已经描述了若干个非限制性示例实施方式,但是存在落入本公开内容的范围内的变更、置换和各种替代等同物。因此,应当理解,本领域技术人员将能够想出许多***和方法,这些***和方法尽管本文中没有明确地示出或描述,但是体现了本公开内容的原理并且因此在其精神和范围内。
Claims (12)
1.一种用于实现时间滤波的方法,其特征在于,所述方法包括:
对当前图片应用时间滤波器,包括:
获得指数函数;
通过将缩放函数与所述指数函数相乘来获得至少一个相邻图片的权重,其中,指数的分子的至少一个第一因子包括所述至少一个相邻图片的运动估计误差,所述指数的分母的至少一个第二因子包括量化参数,所述缩放函数包括具有至少一个第三因子的分子和具有至少一个第四因子的分母,所述至少一个第三因子包括所述当前图片的噪声水平,所述至少一个第四因子包括所述至少一个相邻图片与所述当前图片的图片顺序计数距离;
基于所述当前图片的样本值和所述至少一个相邻图片的权重来获得所述当前图片的滤波样本值;以及
用所述滤波样本值替换所述当前图片的样本值;以及
在应用所述时间滤波器之后对所述当前图片进行编码。
2.根据权利要求1所述的方法,其特征在于,所述获得所述指数函数包括:
通过将指数函数的指数计算为定点值或者通过使用至少一个查找表来获得所述指数函数,所述指数函数包括具有分子和分母的指数,所述分子具有至少一个第一因子,所述分母具有至少一个第二因子。
3.根据权利要求2所述的方法,其特征在于,所述获得所述指数函数包括:
将所述指数函数的指数计算为定点值。
4.根据权利要求3所述的方法,其特征在于,所述计算所述定点值包括:
将所述定点值表示为2n位,其中,n为整数。
5.根据权利要求3所述的方法,其特征在于,所述计算所述定点值包括:
用缩放因子对所述指数函数的因子的浮点值表示进行缩放。
6.根据权利要求1所述的方法,其特征在于,所述获得所述指数函数包括:
使用至少一个查找表。
7.根据权利要求6所述的方法,其特征在于,
所述至少一个查找表包括第一查找表和第二查找表,以及
所述第一查找表包括所述指数函数的整数部分,并且所述第二查找表包括所述指数函数的小数部分。
8.根据权利要求6所述的方法,其特征在于,所述至少一个查找表包括所述指数函数的定点值。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述缩放函数的因子转换为定点表示,
其中,获得所述至少一个相邻图片的权重包括将所述缩放函数的定点表示与所述指数函数相乘。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
多次迭代地执行逐像素循环,所述多次迭代中的每次迭代包括对于所述当前图片的像素中的相应像素获得所述当前图片的滤波样本值;以及
在执行所述逐像素循环的多次迭代之前,基于所述缩放函数或所述指数函数中的对于像素不变化的因子,转换为定点表示。
11.一种用于实现时间滤波的***,其特征在于,所述***包括:
至少一个存储器,其存储计算机代码;以及
至少一个处理器,其被配置成访问所述计算机代码并按照所述计算机代码的指示执行如权利要求1至10中任一项所述的方法。
12.一种存储计算机代码的非暂态计算机可读介质,其特征在于,所述计算机代码被配置成当由至少一个处理器执行时使所述至少一个处理器执行如权利要求1至10中任一项所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063034042P | 2020-06-03 | 2020-06-03 | |
US63/034,042 | 2020-06-03 | ||
US17/240,376 US11343495B2 (en) | 2020-06-03 | 2021-04-26 | Methods of simplification of temporal filtering |
US17/240,376 | 2021-04-26 | ||
PCT/US2021/029603 WO2021247169A1 (en) | 2020-06-03 | 2021-04-28 | Methods of simplification of temporal filtering |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114788182A CN114788182A (zh) | 2022-07-22 |
CN114788182B true CN114788182B (zh) | 2024-07-05 |
Family
ID=78818251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180005523.3A Active CN114788182B (zh) | 2020-06-03 | 2021-04-28 | 用于实现时间滤波的方法、***和计算机可读介质 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11343495B2 (zh) |
EP (1) | EP4026251A4 (zh) |
JP (1) | JP7518167B2 (zh) |
KR (1) | KR20220070476A (zh) |
CN (1) | CN114788182B (zh) |
WO (1) | WO2021247169A1 (zh) |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6215908B1 (en) | 1999-02-24 | 2001-04-10 | Intel Corporation | Symmetric filtering based VLSI architecture for image compression |
US7895250B2 (en) | 2005-05-25 | 2011-02-22 | Qualcomm Incorporated | Fixed point integer division techniques for AC/DC prediction in video coding devices |
US8483277B2 (en) | 2005-07-15 | 2013-07-09 | Utc Fire & Security Americas Corporation, Inc. | Method and apparatus for motion compensated temporal filtering using split update process |
CN101502123B (zh) * | 2006-11-30 | 2011-08-17 | 松下电器产业株式会社 | 编码装置 |
US7957589B2 (en) | 2007-01-25 | 2011-06-07 | Qualcomm Mems Technologies, Inc. | Arbitrary power function using logarithm lookup table |
US9414091B2 (en) | 2008-08-01 | 2016-08-09 | Qualcomm Incorporated | Video encoder with an integrated temporal filter |
WO2010088465A1 (en) | 2009-02-02 | 2010-08-05 | Gentex Corporation | Improved digital image processing and systems incorporating the same |
US8144253B2 (en) * | 2009-07-21 | 2012-03-27 | Sharp Laboratories Of America, Inc. | Multi-frame approach for image upscaling |
US9462163B2 (en) * | 2009-10-10 | 2016-10-04 | Ittiam Systems (P) Ltd. | Robust spatiotemporal combining system and method for video enhancement |
WO2012012582A1 (en) | 2010-07-21 | 2012-01-26 | Dolby Laboratories Licensing Corporation | Reference processing using advanced motion models for video coding |
WO2012044075A2 (ko) | 2010-09-28 | 2012-04-05 | 삼성전자 주식회사 | 영상의 변환 방법 및 장치, 역변환 방법 및 장치 |
KR101812469B1 (ko) | 2011-12-06 | 2017-12-27 | 돌비 레버러토리즈 라이쎈싱 코오포레이션 | 상이한 디스플레이 능력들을 통한 지각적 휘도 비선형성―기반 이미지 데이터 교환을 향상시키는 방법 |
US20140052767A1 (en) | 2012-08-15 | 2014-02-20 | Universidade De Santiago De Compostela | Apparatus and architecture for general powering computation |
US9235392B2 (en) | 2014-01-22 | 2016-01-12 | Nvidia Corporation | System, method, and computer program product for improved power efficiency during program code execution |
WO2018117938A1 (en) | 2016-12-23 | 2018-06-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Deringing filter for video coding |
-
2021
- 2021-04-26 US US17/240,376 patent/US11343495B2/en active Active
- 2021-04-28 JP JP2022529861A patent/JP7518167B2/ja active Active
- 2021-04-28 WO PCT/US2021/029603 patent/WO2021247169A1/en unknown
- 2021-04-28 KR KR1020227013647A patent/KR20220070476A/ko active Search and Examination
- 2021-04-28 EP EP21816875.5A patent/EP4026251A4/en active Pending
- 2021-04-28 CN CN202180005523.3A patent/CN114788182B/zh active Active
-
2022
- 2022-01-05 US US17/569,108 patent/US20220132112A1/en active Pending
Non-Patent Citations (2)
Title |
---|
AHG10: Encoder-only GOP-based temporal filter;P. Wennersten等;Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 15th Meeting;2-3 * |
P. Wennersten等.AHG10: Encoder-only GOP-based temporal filter.Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 15th Meeting.2019,2-3. * |
Also Published As
Publication number | Publication date |
---|---|
CN114788182A (zh) | 2022-07-22 |
KR20220070476A (ko) | 2022-05-31 |
JP2023505652A (ja) | 2023-02-10 |
US11343495B2 (en) | 2022-05-24 |
EP4026251A1 (en) | 2022-07-13 |
JP7518167B2 (ja) | 2024-07-17 |
US20210385444A1 (en) | 2021-12-09 |
WO2021247169A1 (en) | 2021-12-09 |
EP4026251A4 (en) | 2022-11-23 |
US20220132112A1 (en) | 2022-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115623203B (zh) | 一种用于视频编码的方法和相关装置 | |
CN113557728B (zh) | 视频编解码方法和装置 | |
JP7295210B2 (ja) | 高速dst-7 | |
CN112655205B (zh) | 视频编解码的方法和装置 | |
CN116389735A (zh) | 一种用于视频编码的方法和相关装置 | |
JP7130851B2 (ja) | ビデオ符号化において追加中間候補を有するマージモードの方法及び装置 | |
CN113545079B (zh) | 视频编解码的方法和装置 | |
JP7457170B2 (ja) | サブブロックに基づく時間的動きベクトル予測のための方法並びにその機器及びコンピュータプログラム | |
KR20200125733A (ko) | 비디오 코딩을 위한 방법 및 장치 | |
CN112514385A (zh) | 用于视频编码的方法和装置 | |
CN113228631B (zh) | 视频编解码的方法和装置 | |
JP7127151B2 (ja) | 8ビット変換コアを用いる主変換のための方法および装置 | |
JP7508705B2 (ja) | イントラ予測モード向けのエントロピーコーディングのための方法、装置、及びコンピュータプログラム | |
CN112236997B (zh) | 对视频序列进行解码、编码的方法、装置及存储介质 | |
CN111757122A (zh) | 视频解码方法和装置、计算机设备和存储介质 | |
CN113475078A (zh) | 用于小帧间块的存储器带宽减小的方法和装置 | |
CN110611818B (zh) | 视频编解码方法、装置、计算机设备以及存储介质 | |
CN114788182B (zh) | 用于实现时间滤波的方法、***和计算机可读介质 | |
CN116711309B (zh) | 用于改进的帧内预测的视频编解码方法和装置及电子设备 | |
CN116508319A (zh) | 神经图像压缩中的逐块熵编码方法 | |
JP2023542333A (ja) | Dnnベースのクロスコンポーネント予測 | |
CN118266211A (zh) | 用于基于子块的运动矢量预测器的基于子块的模板匹配的运动矢量导出 | |
JPWO2021247169A5 (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40070684 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |