CN117119182A - 视频数据处理方法、装置、设备及介质 - Google Patents
视频数据处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117119182A CN117119182A CN202311184821.0A CN202311184821A CN117119182A CN 117119182 A CN117119182 A CN 117119182A CN 202311184821 A CN202311184821 A CN 202311184821A CN 117119182 A CN117119182 A CN 117119182A
- Authority
- CN
- China
- Prior art keywords
- data block
- video frame
- data
- video
- encoded
- 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
Links
- 238000003672 processing method Methods 0.000 title abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 125
- 238000012545 processing Methods 0.000 claims abstract description 112
- 238000001914 filtration Methods 0.000 claims abstract description 74
- 238000007405 data analysis Methods 0.000 claims abstract description 22
- 230000009466 transformation Effects 0.000 claims description 63
- 238000013139 quantization Methods 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 17
- 230000003139 buffering effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 63
- 238000010586 diagram Methods 0.000 description 25
- 230000000694 effects Effects 0.000 description 25
- 230000003044 adaptive effect Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 17
- 241000023320 Luma <angiosperm> Species 0.000 description 14
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 14
- 230000006872 improvement Effects 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 9
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000005192 partition Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 230000001131 transforming effect Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 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/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/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/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/176—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 block, e.g. a macroblock
-
- 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/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供了一种视频数据处理方法、装置、设备及介质,本申请可以应用于智慧交通技术领域。该方法包括:获取目标视频中的待处理视频帧,对数据块j进行数据分析处理得到数据块j的传播代价,以确定数据块j对应的参考数据块,对参考数据块进行编码处理得到已编码参考数据块和编码策略数据,通过编码策略数据对已编码参考数据块进行预解码处理,得到数据块j对应的预解码数据块,在通过已编码参考数据块和预解码数据块确定出编码滤波数据时,将编码策略数据和编码滤波数据,作为与数据块j相关联的数据编码参数,以编码得到与待处理视频帧相关联的视频编码数据流。本申请可以提升视频帧的编码质量。
Description
技术领域
本申请涉及计算机技术领域,具体涉及智慧交通技术领域,尤其涉及一种视频数据处理方法、装置、设备及介质。
背景技术
在现有的视频编码技术中,可将原始的视频帧(如视频帧A)划分成一系列的编码块,并结合预测、变换和熵编码等视频编码方法对编码块进行编码,实现对视频帧的编码过程。例如,在智慧交通领域中,在将采集到的道路视频数据上传给指定设备时,涉及道路视频数据的编码。其中,编码块(如数据块B)在编码后得到相应编码数据,编码器还可以通过该编码数据进行预解码得到该数据块B对应的预解码块(如数据块B’)。而数据块B’与原数据块B相比,由于存在量化等影响,会产生失真,因此可以进一步利用滤波器对数据块B’进行滤波操作,以通过滤波后的数据块B’(如数据块B”)得到视频帧A的预重构视频帧,且该预重构视频帧可以参与后续视频帧的编码过程。
然而,在实践中发现,滤波操作可以减少数据块B”与数据块B之间的误差,由此实现预重构出的视频帧(如视频帧A’)更加贴近原始视频帧A的效果。但与此同时也会恢复视频帧A中的噪声。若后续视频帧(如视频帧C)在进行编码时需要参考该预解码重构出的视频帧A’,那么该视频帧A’中所恢复的噪声会影响到视频帧C的编码质量,从而降低解码器侧对于视频帧C的解码重构效果。
发明内容
本申请实施例提供了一种视频数据处理方法、装置、设备及介质,可以提升视频帧的编码质量。
一方面,本申请实施例提供了一种视频数据处理方法,方法包括:
获取目标视频中的待处理视频帧;待处理视频帧中所包括的待编码数据块为数据块j;数据块j为待处理视频帧中的任意一个数据块;
对数据块j进行数据分析处理,得到数据块j的传播代价,并基于数据块j的传播代价,确定数据块j对应的参考数据块;
对参考数据块进行编码处理,得到已编码参考数据块和与已编码参考数据块相关联的编码策略数据;
通过编码策略数据,对已编码参考数据块进行预解码处理,得到数据块j对应的预解码数据块;
在通过已编码参考数据块和预解码数据块确定出与已编码参考数据块相关联的编码滤波数据时,将与已编码参考数据块相关联的编码策略数据和与已编码参考数据块相关联的编码滤波数据,作为与数据块j相关联的数据编码参数;
基于与数据块j相关联的数据编码参数,编码得到与待处理视频帧相关联的视频编码数据流。
一方面,本申请实施例提供了一种视频数据处理装置,装置包括:
视频获取模块,用于获取目标视频中的待处理视频帧;待处理视频帧中所包括的待编码数据块为数据块j;数据块j为待处理视频帧中的任意一个数据块;
参考数据确定模块,用于对数据块j进行数据分析处理,得到数据块j的传播代价,并基于数据块j的传播代价,确定数据块j对应的参考数据块;
数据编码模块,用于对参考数据块进行编码处理,得到已编码参考数据块和与已编码参考数据块相关联的编码策略数据;
数据编码模块,还用于通过编码策略数据,对已编码参考数据块进行预解码处理,得到数据块j对应的预解码数据块;
数据编码模块,还用于在通过已编码参考数据块和预解码数据块确定出与已编码参考数据块相关联的编码滤波数据时,将与已编码参考数据块相关联的编码策略数据和与已编码参考数据块相关联的编码滤波数据,作为与数据块j相关联的数据编码参数;
数据流编码模块,用于基于与数据块j相关联的数据编码参数,编码得到与待处理视频帧相关联的视频编码数据流。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器与处理器相连,存储器用于存储计算机程序,处理器用于调用计算机程序,以使得该计算机设备执行本申请实施例中上述一方面提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序适于由处理器加载并执行,以使得具有处理器的计算机设备执行本申请实施例中上述一方面提供的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面提供的方法。
本申请实施例中提出一种可以根据当前数据块的传播代价自适应选取参考数据块进行视频编码的方式,具体为:获取目标视频中的待处理视频帧包括的数据块j,数据块j为待处理视频帧中的任意一个数据块,基于对数据块j进行数据分析处理所得到的传播代价确定数据块j对应的参考数据块,对参考数据块进行编码处理,得到与已编码参考数据块相关联的编码策略数据,并通过编码策略数据,对已编码参考数据块进行预解码处理,得到数据块j对应的预解码数据块,在通过已编码参考数据块和预解码数据块确定出与已编码参考数据块相关联的编码滤波数据时,将编码策略数据和编码滤波数据,作为与数据块j相关联的数据编码参数,编码得到与待处理视频帧相关联的视频编码数据流。也就是说,可以通过数据块j的传播代价自适应选取合适的数据块作为数据块j对应的参考数据块,从原本对待处理视频帧(即原始视频帧)中的数据块进行编解码,改进为对数据块对应的参考数据块进行编码、滤波等,可以使得预重构数据块的重建效果可以在贴近原始视频帧中的数据块j和减少噪声之间达到平衡,进而可以对预重构得到的预重构视频帧中的噪声进行改善,有助于在编码时需要参考该待处理视频帧(即该待处理视频帧的预重构视频帧)的后续视频帧的编码效率和编码质量的提升,从而可以确保该后续视频帧在解码终端侧的解码预测准确度,也就是说,可以通过提升视频帧的编码质量实现视频帧的解码重构效果的提升。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构示意图;
图2是本申请实施例提供的一种编码处理过程示意图;
图3是本申请实施例提供的一种解码处理过程示意图;
图4是本申请实施例提供的一种视频编解码的工作流程图;
图5是本申请实施例提供的一种残差四叉树划分模式的示意图;
图6是本申请实施例提供的一种基于位置的子块变换的示意图;
图7是本申请实施例提供的一种视频数据处理方法的流程示意图一;
图8是本申请实施例提供的一种编码终端的处理过程示意图;
图9是本申请实施例提供的一种编码滤波数据的确定过程示意图;
图10是本申请实施例提供的一种视频数据处理方法的流程示意图二;
图11是本申请实施例提供的一种传播代价的确定场景示意图一;
图12是本申请实施例提供的一种传播代价的确定场景示意图二;
图13是本申请实施例提供的一种参考数据块的确定场景示意图;
图14是本申请实施例提供的一种视频数据处理方法的流程示意图三;
图15是本申请实施例提供的一种视频帧重构的场景示意图;
图16是本申请实施例提供的一种视频数据处理装置的结构示意图;
图17是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种网络架构示意图。如图1所示,该***架构可以包括业务服务器100以及业务终端集群,其中,业务终端集群可以包括一个或多个业务终端(比如为用户终端),这里将不对业务终端集群中的业务终端的数量进行限定。如图1所示,业务终端集群中的多个业务终端具体可以包括:业务终端200a、业务终端200b、…、业务终端200n,其中,业务终端集群之间可以存在通信连接,例如业务终端200a与业务终端200b之间存在通信连接,业务终端200a与业务终端200n之间存在通信连接。同时,业务终端集群中的任一业务终端可以与业务服务器100存在通信连接,以便于业务终端集群中的每个业务终端均可以通过该通信连接与业务服务器100进行数据交互,例如业务终端200a与业务服务器100之间存在通信连接。其中,上述通信连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其它方式,本申请在此不做限制。
应该理解,如图1所示的业务终端集群中的每个业务终端均可以安装有用于视频编解码的应用客户端。当应用客户端运行于各业务终端中时,可以分别与上述图1所示的业务服务器100之间进行数据交互。其中,该应用客户端可以为任意类型的客户端,比如可以是社交客户端、图像处理客户端、即时通信客户端(例如,会议客户端)、娱乐客户端(例如,游戏客户端、直播客户端)、多媒体客户端(例如,视频客户端)、资讯类客户端(例如,新闻资讯客户端)、购物客户端、车载客户端、多媒体客户端等具有显示文字、图像、音频以及视频等数据信息功能的客户端。
例如,此处以应用客户端为多媒体客户端为例,对业务终端200a以及业务服务器100之间的数据交互过程进行阐述。多媒体客户端是指能够即时发送和接收互联网消息、且具有信息搜索功能等的客户端,比如多媒体客户端可以是多媒体平台所提供的客户端,该多媒体平台可以实现多媒体数据的传输,如视频数据的传输,此时涉及视频的编码解码。业务终端200a上的多媒体客户端可以接收和显示由业务服务器所传输的视频数据。比如,业务终端200a响应于用户在多媒体客户端上的视频播放操作,将视频播放信息发送给业务服务器,业务服务器在获取到视频播放信息所指示的目标视频时,对目标视频中的视频帧进行编码,并将编码后得到的视频编码数据流发送给业务终端200a,由业务终端200a对视频编码数据流进行解码得到目标视频。此时业务服务器作为编码终端,业务终端200a作为解码终端。
可以理解,任一业务终端和业务服务器之间可以实现视频数据传输,以及任两个业务终端之间可以实现视频数据传输,或任两个业务服务器之间可以实现视频数据传输。视频数据传输的发起方为编码终端,用于对所传输的目标视频进行编码。视频数据传输的接收方为解码终端,用于对所传输的视频编码数据流进行解码。
可选地,部署编码器的终端为编码终端,编码终端中的编码过程由编码器实现,部署解码器的终端为解码终端,解码终端中的解码过程由解码器实现。编码终端和解码终端可以为同一终端也可以为不同终端。即编码器和解码器可以部署在同一个终端,也可以部署在不同终端。
编码终端可以获取待编码的目标视频,该目标视频可以通过摄像设备拍摄或计算机设备获取得到,或者从数据库中获取,或者由用户上传等。摄像设备可以是设置于编码终端中的硬件组件,例如,摄像设备可以是设置于编码终端中的普通摄像头、立体摄像头、以及光场摄像头等等。摄像设备也可以是指与编码终端相连接的硬件装置,例如与服务器相连接的摄像头等。解码终端可在接收编码终端发送的视频编码数据流后,可以从视频编码数据流中解析得到编码块的数据编码参数,并基于数据编码参数进行解码处理。
其中,可以理解的是,本申请实施例所涉及的计算机设备可以是服务器(例如,图1所示的业务服务器100),也可以是终端(例如,图1所示的业务终端集群中的任意一个业务终端)。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、飞行器等等,但并不局限于此。本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
可以理解的是,图1只是实例性地表征本申请技术方案的可能存在的网络架构,并不对本申请技术方案的具体架构进行限定,即本申请技术方案还可以提供其他形式的网络架构。
进一步地,请参见图2,图2是本申请实施例提供的一种编码处理过程示意图。其中,如图2所示的编码终端20a为计算机设备,计算机设备可以为上述图1所对应实施例中的业务服务器100或者业务终端集群中的任意一个业务终端(例如,业务终端200a),这里不做限定,此时以编码终端20a为业务服务器为例。其中,视频的解码过程可以是:编码终端20a可以从目标视频21(如包括视频帧22a、22b、...、22n)中的待处理视频帧(如视频帧22n)中获取数据块j(23),数据块j为待处理视频帧中的任一个待编码数据块,对数据块j进行数据分析处理,得到数据块j的传播代价24,并基于数据块j的传播代价确定数据块j对应的参考数据块25(该参考数据块又可称为基准数据块),对参考数据块进行编码处理,得到已编码参考数据块(参考数据块在进行编码处理后作为已编码参考数据块)以及与已编码参考数据块对应的数据块j相关联的编码策略数据26,通过编码策略数据对已编码参考数据块进行预解码处理,得到数据块j对应的预解码数据块27;通过已编码参考数据块和预解码数据块确定与已编码参考数据块相关联的编码滤波数据28,将编码策略数据26和编码滤波数据28作为与数据块j相关联的数据编码参数29,该编码滤波数据28可用于由编码终端对预解码数据块进行滤波处理,得到预解码数据块对应的预重构数据块,进而对待处理视频帧进行帧预重构;基于与数据块j相关联的数据编码参数,编码得到与待处理视频帧相关联的视频编码数据流210,如可以对与数据块j相关联的数据编码参数进行编码(比如熵编码),得到目标视频的视频编码数据流,该视频编码数据流会从编码终端传输至解码终端20b。
进一步地,请参见图3,图3是本申请实施例提供的一种解码处理过程示意图。其中,如图3所示的解码终端20b为计算机设备,计算机设备可以为上述图1所对应实施例中的业务服务器100或者业务终端集群中的任意一个业务终端(例如,业务终端200a),这里不做限定,此时以解码终端20b为业务终端200a为例。其中,视频的解码过程可以是:解码终端20b接收来自编码终端20a的与目标视频21中的待处理视频帧22n相关联的视频编码数据流31,从视频编码数据流31中解码得到与待处理视频帧中的数据块j(23)相关联的数据解码参数32,如图2示例所知,数据块j为待处理视频帧中的任意一个待解码数据块(与待编码数据块对应),数据解码参数包括对已编码参考数据块进行编码处理时所确定的编码策略数据33和编码滤波数据34,基于编码策略数据对已编码参考数据块进行解码处理,得到数据块j对应的解码数据块35,按照编码滤波数据,对数据块j对应的解码数据块进行滤波处理,得到解码数据块对应的重构数据块36,通过该重构数据块可以重构得到待处理视频帧的重构视频帧37,该重构视频帧为解码滤波后最终得到的视频帧。
下面对本申请中涉及的技术术语进行介绍:
一、视频编码:
视频可由一个或多个视频帧构成,每个视频帧包含该视频的部分视频信号。视频信号的获取方式可以分为摄像机拍摄到或者计算机生成两种方式。由于不同获取方式对应的统计特性不同,视频的压缩编码方式也可能有所区别。
在主流视频编码技术中,以HEVC(High Efficiency Video Coding,国际视频编码标准HEVC/H.265)、VVC(versatile video coding,国际视频编码标准VVC/H.266),AVS(Audio Video Coding Standard,国家视频编码标准)为例,采用了混合编码框架,在该混合编码框架下允许对视频进行如下一系列的操作和处理:
1)块划分结构(block partition structure):根据视频帧的大小,可将该视频帧划分成若干个不重叠的处理单元,每个处理单元将进行类似的压缩操作。这个处理单元被称作CTU(coding tree unit,编码树单元)或者LCU(Largest Coding Unit,最大编码单元)。CTU可以再继续往下进行更加精细的划分,得到一个或多个基本编码的单元,称之为CU(coding unit,编码单元或编码块)。编码块(即数据块)是一个编码环节中最基本的元素,本申请后续各实施例中描述的是针对每一个编码块可能采用的各种编解码处理流程。
2)预测编码:包括帧内编码(又称为帧内预测)和帧间编码(又称帧间预测)等预测模式,视频帧中的编码块包含的原始视频信号经过选定的编码块中已重建视频信号(也就是所参考的编码块,当视频帧在编码时参考的是已编码视频帧,那么从已编码视频帧对应的预重构视频帧中确定所参考的编码块;当视频帧在编码时参考的是待编码视频帧,那么从待编码视频帧中确定所参考的编码块)的预测编码之后,得到残差。其中,编码端需要为视频帧中的每个编码块在众多可能的预测模式中选择一种合适的预测模式进行编码,并将所选择的预测模式告知解码端。其中,预测模式可包括:
a、帧内编码(Intra(picture)Prediction):编码所使用的重建视频信号来自于同一视频帧内已经编码重建过的区域,即当前编码块与当前编码块所参考的编码块位于同一视频帧中。其中,帧内预测的基本思想就是利用同一视频帧内相邻像素之间的相关性去除空间冗余。在视频编码中,相邻像素指的就是同一视频帧内当前编码块(此处,当前编码块可以是正在编码的编码块)周围的已编码的编码块的重建(reconstructed)像素。
b、帧间编码(Inter(picture)Prediction):编码所使用的重建视频信号来自已经编码过的,不同于当前帧的其他视频帧,且该参考的视频帧是已经过编码、解码、重建的视频帧,即当前编码块与当前编码块所参考的编码块分别位于不同的视频帧中,当前帧是指当前编码块所在的视频帧。
3)变换及量化(Transform&Quantization):残差经过DFT(Discrete FourierTransform,离散傅里叶变换)、DCT(Discrete Cosine Transform,离散余弦变换)、DST(Discrete Sine Transform,离散正弦变换)等变换操作,可将残差(残差数据信息)转换到变换域中,变换域中的残差称之为变换系数。在变换域中的残差,进一步的进行有损的量化操作,丢失掉一定的信息,使得量化后的信号有利于压缩表达。
在一些视频编码标准中,可能有多于一种变换方法可以选择,因此,编码端也需要为当前编码块选择其中的一种变换方法,并告知解码端。量化的精细程度通常由QP(Quantization Parameters,量化参数)来决定,当QP取值较大时,表示更大取值范围的变换系数将被量化为同一个输出,因此通常会带来更大的失真及较低的码率;相反,当QP取值较小时,表示较小取值范围的变换系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。
也就是说,在对编码块进行编码处理时,需要确定编码块所在的视频帧(视频帧A)的预测模式(如帧间预测或帧内预测),并基于该预测模式从目标视频中确定出视频帧A需要参考的视频帧(可以是当前帧,或者视频帧A的前一个视频帧等),并从需要参考的视频帧中确定出与当前编码块相匹配的编码块(即与当前编码块相关联的编码块),将相匹配的编码块作为对当前编码块的预测,也就是,基于该相匹配的编码块,对当前编码块进行数据编码(即按照预测模式进行预测,如基于块的运动补偿),得到相匹配的编码块与当前编码块之间的残差数据信息,同时将与相匹配的编码块相关的信息(如运动向量、运动补偿)、预测模式等信息作为预测模式关联信息,该预测模式关联信息可用于指示当前编码块在编码时可参考的相匹配的编码块,可以理解,在解码时,所使用的是相匹配的编码块对应的重构数据块。该残差数据信息会进行量化变换处理,得到量化变换系数,量化变换系数和预测模式关联信息可以作为编码块的数据编码参数,被编码为视频编码数据流。
4)熵编码(Entropy Coding)或统计编码:量化后的变换域信号,将根据各个值出现的频率,进行统计编码,最后输出二值化(0或者1)的视频编码数据流。同时,编码会产生其他信息,例如选择的预测模式,运动矢量等,这些其他信息也需要进行熵编码以降低码率。其中,统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常见的统计编码方式有变长编码(Variable Length Coding,VLC)或者基于上下文的二值化算术编码(Content Adaptive Binary Arithmetic Coding,CABAC)。
5)环路滤波(Loop Filtering):已经编码过的编码块,经过反量化、反变换及预测补偿的操作(上述2)~4)的反向操作),可重建该编码块对应的解码图像。重建的解码图像与原始图像相比,由于存在量化的影响,部分信息与原始图像有所不同,产生失真(Distortion),因此可利用滤波器对重建的解码图像进行滤波操作,有效的降低量化所产生的失真程度。滤波器例如可以是去块效应滤波(deblocking),SAO(样本自适应补偿,sample adaptive offset)或者ALF(adaptive loop filter,自适应环路滤波,即自适应滤波器)等等,由于这些经过滤波后的得到的重建视频帧,将作为后续需要编码的其他编码块的参考视频帧,应用于其他编码块的预测过程中,所以上述的滤波操作也被称为环路滤波,及在编码环路内的滤波操作。本申请在于可以通过数据块的参考数据块和预解码数据块自适应的确定数据块所对应的最佳编码滤波数据,即自适应滤波器中的滤波器参数。
基于上述步骤1)-5)的相关描述,请参见图4,图4是本申请实施例提供的一种视频编解码的工作流程图。其中,将目标视频中视频帧依次输入编码终端,由编码终端将视频帧划分为编码块,图4以当前待编码的编码块(待编码数据块,可以是当前帧中的数据块,也可以是当前帧中的数据块通过传播代价所确定出的参考编码块,以当前编码块为参考编码块为例)为当前帧(当前待编码的视频帧)中第g个编码块(如图1所示的Sg[x,y])为例进行举例说明,g为正整数,且g小于或等于当前帧包含的编码块的总数量。Sg[x,y]表示第g个编码块中坐标为[x,y]的像素点(简称像素),x表示像素的横坐标,y表示像素的纵坐标;待编码数据块Sg[x,y]对应的参考数据块S'g[x,y]经过运动补偿或者帧内预测等处理后可以获得预测信号(即编码时所参考的编码块、参考信号),将预测信号和原始信号S'g[x,y]进行相减,得到残差ug[x,y];然后对该残差ug[x,y]进行变换和量化处理。其中,量化处理输出的数据有A和B两个不同的去处:
A:量化处理输出的数据可以送给熵编码器进行熵编码,得到编码后的视频编码数据流,并将该视频编码数据流输出到一个缓冲器(buffer)中保存,等待传送出去。
B、量化处理输出的数据会进行预解码处理,也就是进行反量化和反变换处理,得到反变换后的残差u'g1[x,y]。然后,按照预测模式(比如帧内预测、帧间预测,帧间预测又称运动补充),经过数据预测,得到新的预测信号(预测数据块),或者,也可以使用之前已确定出的预测信息/>这里以/>为例,将该反变换后的残差u′g1[x,y]与预测信号相加/>得到新的预测信号/>即得到预解码处理后的预解码数据块;将预解码数据块/>经过环路滤波处理(如通过自适应滤波器进行滤波,此时自适应滤波器的滤波器参数通过预解码数据块和待编码参考数据块确定,该确定出的滤波器参数也会传输给解码器)可以得到重建信号S'g'1[x,y],即预重构数据块,进而得到预重构视频帧,并将该预重构视频帧添加到重构数据缓冲器中保存,以用于参与后续视频帧的编码过程。
可以理解,本申请技术方案通过自适应选择编码的参考数据块,可以使得数据块有很好的编码质量,由此可以提升对应的预重构数据块的重构效果,从而提升预重构视频帧的重构效果,以及提升参考该预重构视频帧进行数据编码的后续视频帧的编码效率(编码效果、编码质量)。相应地,解码终端在对以本申请技术方案所编码得到的视频编码数据流进行解码操作时,所得到的重构数据块也同样会有更好的重构效果,从而提升重构视频帧的重构效果,以及提升参考该重构视频帧进行数据解码的后续视频帧的解码效率(解码效果、解码质量)。
可以理解,在一个视频帧的所有编码块未编码完成时,会将该视频帧中的已编码块的预重构数据块添加到重构数据缓冲器中保存,可用于参与后续编码块的编码过程(比如帧内预测时,后续编码块需要参考已编码块对应的预重构数据块)。在一个视频帧中的所有编码块均编码完成并得到对应的预重构数据块时,从重构数据缓冲器中取出一个视频帧的所有编码块对应的预重构数据块,并预重构得到该视频帧对应的预重构视频帧,以添加到重构数据缓冲器中。
可以理解,在编码终端中,在对一个视频帧进行编码处理后,会对该视频帧进行预解码处理,得到预解码视频帧,同时通过自适应滤波器得到预重构视频帧,该预重构视频帧用于后续参与视频帧的编码过程。例如,帧2的编码过程参考帧1,因此基于帧1对应的预重构帧进行帧2的编码。
具体的,在本申请技术方案中,以视频帧中的编码块为粒度,在对编码块B1进行编码之前,可以确定编码块B1的传播代价,通过该编码块B1的传播代价确定参考编码块B2(又称参考数据块),并对参考编码块B2进行解码得到该参考编码块B2对应的预解码块B3(又称预解码数据块),可以通过预解码块B3和参考编码块B2确定滤波器参数,并由环路滤波器按照确定出的滤波器参数对预解码块B3进行滤波(具体是由自适应滤波器按照滤波器参数进行滤波处理)得到预重构块B4(又称预重构数据块),以用于得到预重构视频帧,且该这些得到的预重构块会参与后续编码块的编码过程。
同时,在进行解码处理时,会对视频编码数据流进行熵解码,得到的编码策略数据中的量化变换参数进行反量化和反变换处理,得到反变换后的残差u'g2[x,y]。然后,按照预测模式,经过数据预测,得到新的预测信号(预测数据块),将该反变换后的残差u'g2[x,y]与预测信号/>相加得到新的预测信号/>即得到解码处理后的解码数据块;将解码数据块/>经过环路滤波处理(如通过自适应滤波器进行滤波,此时自适应滤波器的滤波器参数由编码器确定并传输给解码器)可以得到重建信号S'g'2[x,y],即重构数据块,进而得到重构视频帧,可以输出显示给用户,该得到的重构数据块也用于参与后续视频帧的解码过程。
可以理解,对编码块的编码和解码方法可以如上述描述,也可以使用视频压缩领域内的能够实现同等目的的编解码方法,在此对编码块的编码和解码过程不做限定,如编码过程或解码过程还可以有其他步骤。本申请技术方案在于在对编码块进行编码处理之前,可以通过编码块的传播代价自适应的选取参考数据块来进行编码、解码和滤波操作,同时可以通过参考数据块来确定最终的滤波器参数,以实现提升视频帧的编码质量、重构质量和重构效果。
其中,由于预测编码过程中所使用到的预测方法(如帧内预测、帧间预测)存在较大误差,因此需要对残差进行传输,用于对解码视频帧进行补偿,从而提高重构视频帧的质量,所以残差处理是混合编码框架中重要的处理过程。
其中,如图4所示,在混合编码框架中,残差为原始信号(即原始视频帧)与预测信号(即预测视频帧)之间的差值:
ug[x,y]=S′g[x,y]-s’g[x,y]
在HEVC、VVC和AVS3视频编码标准中,对于残差处理都包含以下两种处理方式(1)和(2):
(1)变换和量化:
利用残差的相关性,通过变换对残差进行能量集中,使能量集中在较少的低频变换系数,也就是说,在对多数编码块的残差进行变换处理之后,多数编码块的残差对应的变换系数较小。所谓残差的相关性是指编码块之间的残差具有相关性,示意性的,一个编码块的残差会参考其相临编码块的残差。然后,经过后续的量化处理,较小的变换系数将变为零值,极大降低了编码残差的代价。以传统的DCT为例,变换如下所示,通过两个分离的一维离散变换(水平变换、竖直变换)实现了二维离散变换。
Cok=CUkCT
其中,Cok表示当前编码块的残差变换之后的变换系数,Uk表示残差,C表示竖直变换的变换核;CT表示水平变换的变换核。
由于残差分布的多样性,单一的DCT无法适应所有的残差特性。因此,DST7和DCT8这样的变换核被引入到变换过程中,这样可以实现在对残差进行变换过程中,引入变换组合,解决单一的DCT无法适应所有的残差特性。其中,变换组合可以是指水平变换的变换核和竖直变换的变换核的组合,水平变换和竖直变换可以采用相同或不同的变换核。变换核包括但不限于:DCT2、DCT8、DST7等等。其中,DCT2和DCT8是指不同的DCT变换方式,DST7是指DST的一种变换方式。
以AMT(自适应多核变换)技术为例,对于一个变换块(即需进行变换的残差块)可能选择的变换组合如下所示:(DCT2,DCT2)、(DCT8,DCT8)、(DCT8,DST7)、(DST7,DCT8)、(DST7,DST7)。其中,以(DCT2,DCT2)为例,DCT2表示水平变换的变换核,DCT2表示垂直变换的变换核,以此类推,可理解(DCT8,DCT8)、(DCT8,DST7)、(DST7,DCT8)、(DST7,DST7)。
应当理解的是,对于一个变换块具体选择哪种变换组合,需要在编码端使用RDO(Rate-distortion optimization,率失真优化)规则进行决策,自适应多核变换尽管能够提升变换模块对残差的适应性,但是随之带来的问题是变换核索引(用于指示使用哪种变换核)的编码代价。
(2)变换跳过(Transform skip,TS):在视频编码的过程中存在部分残差,其相关性较弱,针对这部分残差,可以在(1)的基础上跳过变换反而编码效率更高,即跳过对这部分残差的变换过程,直接对这部分残差进行量化处理。
二、常见的变换划分方式:
在本申请实施例中,在对编码块进行变换处理时,涉及多种常见的变换划分方式。示意性的,变换划分方式可以包括但不限于:RQT(Residual Quad Tree,残差四叉树模式)、PBT(position based transform,基于位置的变换模式)、SBT(sub-block transform,子块变换模式)等等。为了便于对编码块进行理解,接下来分别对RQT、PBT进行相关阐述。
①RQT:
在HEVC标准中,RQT利用递归四叉树的方式将编码块进行划分,并将最佳的划分信息编码在视频码流中发送。请参见图5,图5是本申请实施例提供的一种残差四叉树划分模式的示意图。左边为编码块被划分的示意图,右边为编码块被四叉树处理后的树形结构,其中,1表示划分,0表示不再划分。在图5中,编码块10对应1,即编码块10被四叉划分为4个子块(即图5中的子块11、子块12、子块13以及子块14)。第1个子块(即子块11)对应1,即子块11又被四叉划分为4个子块(子块111、子块112、子块113以及子块114);第2个子块(即子块12)对应0,第3个子块(子块13)对应0,即子块12和子块13均不会再划分。第4个子块(即子块14)对应1,子块14又被四叉划分为4个子块(子块141、子块142、子块143以及子块144);然后,子块111、子块112、子块113均对应0,意味着子块111、子块112、子块113也不再划分。子块114对应1,意味着子块114又被四叉划分为4个子块(子块1141、子块1142、子块1143以及子块1144);子块1141、子块1142、子块1143以及子块1144均对应0,意味着子块1141、子块1142、子块1143以及子块1144不再划分。子块141对应1,意味着子块141又被四叉划分为4个子块(子块1411、子块1412、子块1413以及子块1414);子块1411、子块1412、子块1413以及子块1414均对应0,意味着子块1411、子块1412、子块1413以及子块1414不再划分。
从图5中可以看出,如果采用RQT对编码块进行变换划分处理,那么该编码块的变换划分方式需要较多的比特位(即较长的编码码长)来表示。
②PBT:
请参见图6,图6是本申请实施例提供的一种基于位置的子块变换的示意图。在AVS3标准中,基于位置的子块变换可以将编码块四叉划分为4个子块(即图3中的子块31、子块32、子块33和子块34),并根据每个子块的位置预设变换组合。其中,变换组合可以包括水平变换的变换核和垂直变换的变换核。水平变换的变换核和垂直变换的变换核可以相同或者不同。
示意性的,如图6所示,子块31的变换组合为(DCT8,DCT8),子块32的变换组合为(DST7,DCT8),子块33的变换组合为(DCT8,DST7),子块33的变换组合为(DST7,DST7)。
其中,针对任意编码块(如当前编码块)是否采用PBT,可自适应地采用1个标志位来标识。在一种实现方式中,若标志位为第一取值(如1),则当前编码块使用PBT;若标志位为第二取值(如0),则当前编码块不使用PBT。
可以理解,一个编码块对应一个视频帧中的划分区域,编码块包含该划分区域中的视频数据信息。该视频数据信息可以是划分区域中的亮度分量数据,或者色度分量数据。当一个编码块包含亮度分量数据时,该编码块又称亮度编码块,当一个编码块包含色度分量数据时,该编码块又称色度编码块。比如,在按照变换划分方式一(如RQT)得到多个划分区域1后,提取该多个划分区域1中的色度分量数据,由此得到多个色度编码块。又如,按照变换划分方式二(如PBT)得到多个划分区域2后,提取该多个划分区域2中的亮度分量数据,由此得到多个亮度编码块。可以理解,对于亮度编码块,和色度编码块分别进行编码、解码和滤波。亮度编码块在进行编码时,参考的是相匹配的亮度编码块。色度编码块在进行编码时,参考的是相匹配的色度编码块。在得到亮度编码块对应的重构数据块后可以得到对于视频帧的预测亮度分量数据(即解码重建后的亮度分量数据)。在得到色度编码块对应的重构数据块后可以得到对于视频帧的预测色度分量数据(即解码重建后的色度分量数据),由此可以将预测亮度分量数据和预测色度分量数据的数据叠加结果作为对于视频帧的预测视频帧(即解码重建后的视频帧)。
因此,编码终端在对数据块进行编码时,会得到每个编码块的变换划分信息(传输进行熵编码后的数据流),该变换划分信息会同步传输给解码终端。该变换划分信息包括编码块的变换划分方式以及编码块在划分后的位置标识,编码终端在得到预重构数据块时,可以按照对应的变换划分信息确定预重构数据块在一个视频帧中的划分位置信息,并基于该划分位置信息将预重构数据块拼接得到预重构视频帧。同理,解码终端在得到重构数据块时,可以按照对应的变换划分信息确定重构数据块在一个视频帧中的划分位置信息,并基于该划分位置信息将重构数据块拼接得到重构视频帧。
三、视频解码:
解码过程与上述编码过程相对应,在解码端,对于每一个编码块,在获得视频编码数据流后,一方面,先对视频编码数据流进行熵解码,得到与编码块相关联的数据解码参数,数据解码参数包括预测模式关联信息及量化变换系数,然后对量化变换系数经过反量化及反变换,得到残差数据信息。另一方面,根据预测模式关联信息,可获得该编码块对应的预测信号(预测数据块),并将残差数据信息和预测数据块进行相加,得到解码数据块,解码数据块在进行滤波处理后得到重构数据块,该重构数据块可用于重建该编码块所在的视频帧对应的重构视频帧。
应当理解,本申请实施例所涉及的业务场景可以为多媒体数据的传输场景。可应用于视频编解码器(如采用子块变换技术的视频编解码器)、视频压缩产品,或者多媒体产品中。例如,可以应用于智慧交通领域,具体可以是自动驾驶,智能导航,视频图像采集等领域,如在自动驾驶领域中,可以通过采集到的道路视频数据(道路画面数据)实现自动驾驶,此时需要将道路视频数据上传到服务器等智能设备,即涉及道路画面视频数据的压缩传输。比如,可以应用于视频分享场景,编码终端可以是用户A的终端设备,编码终端可以接收用户A上传或者拍摄的目标视频,对目标视频进行编码,将视频编码数据流传输给解码终端,解码终端可以是用户B的终端设备,解码终端可以基于视频编码数据流对目标视频进行解码。又如,可以应用于视频观看场景,编码终端可以是多媒体平台的后台服务器,编码终端可以接收用户A针对目标视频的观看请求,从数据库中获取目标视频,对目标视频进行编码,将视频编码数据流传输给解码终端,解码终端可以是用户A的终端设备,解码终端可以基于视频编码数据流对目标视频进行解码并显示。又如,可以应用于视频推荐场景,编码终端可以是多媒体平台的后台服务器,编码终端可以接收用户A的推荐请求,从数据库中获取待推荐给用户的目标视频,对目标视频进行编码,将视频编码数据流传输给解码终端,解码终端可以是用户A的终端设备,解码终端可以基于视频编码数据流对目标视频进行解码并显示。又如,可以应用于视频直播场景,编码终端可以是主播的终端设备,编码设备可以通过摄像头采集直播视频,对直播视频进行编码,将视频编码数据流传输给服务器,由服务器将视频编码数据流传输给解码终端,解码终端可以是观看直播的用户的终端设备,解码终端可以基于视频编码数据流对目标视频进行解码并显示。在此对应用场景不做限定,可以应用于任意视频数据的传输场景,在此对目标视频的来源和类型不做限定。
可选地,本申请技术方案可以应用于云技术领域。云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
比如应用于以云服务器为参考的云应用中。例如,基于云技术的智慧交通领域。车辆上的采集设备或者卫星等可以将采集到的道路视频数据编码传输至云服务器,由云服务器对道路视频数据进行处理,以实现自动导航,或者道路实况分析等等。可以通过本申请技术方式实现地图导航、智慧交通、智能驾驶等领域中的视频数据(画面数据)的传输。
或者,可应用于云会议场景,云会议是基于云计算技术的一种高效、便捷、低成本的会议形式。使用者只需要通过互联网界面,进行简单易用的操作,便可快速高效地与全球各地团队及客户同步分享语音、数据文件及视频,而会议中数据的传输、处理等复杂技术由云会议服务商帮助使用者进行操作。目前国内云会议主要集中在以SaaS(Software as aService,软件即服务)模式为主体的服务内容,包括电话、网络、视频等服务形式,基于云计算的视频会议就叫云会议。在云会议时代,数据的传输、处理、存储全部由视频会议厂家的计算机资源处理,用户完全无需再购置昂贵的硬件和安装繁琐的软件,只需打开浏览器,登录相应界面,就能进行高效的远程会议。云会议***支持多服务器动态集群部署,并提供多台高性能服务器,大大提升了会议稳定性、安全性、可用性。近年来,视频会议因能大幅提高沟通效率,持续降低沟通成本,带来内部管理水平升级,而获得众多用户欢迎,已广泛应用在交通、运输、金融、运营商、教育等各个领域。可以通过本申请技术方案使用云会议中的视频数据传输。
需要说明的是,本申请实施例中的计算机设备在获取用户的个人数据信息等数据时,可以显示提示界面或者弹窗,该提示界面或者弹窗用于提示用户当前正在搜集个人数据信息等数据,仅仅在获取到用户对该提示界面或者弹窗发出确认操作后,开始执行数据获取的相关的步骤,否则结束。
可以理解的是,在本申请的具体实施方式中,可能涉及到用户、企业、机构、***等对象的业务数据(例如,用户上传的目标视频等信息),当本申请以上实施例运用到具体产品或技术中时,需要获得用户、企业、机构、***等对象的许可或同意,且相关数据的收集、使用和处理需要遵守相关地区的相关法律法规和标准。
进一步的,请参见图7,图7是本申请实施例提供的一种视频数据处理方法的流程示意图,如图7所示,方法可以由上述提及的计算机设备来执行,计算机设备可以是编码终端,比如,该编码终端可以为上述图1所示的业务终端200a。方法具体可以包括以下步骤S101-步骤S106:
S101、获取目标视频中的待处理视频帧。
其中,目标视频可以是用户上传的视频、通过摄像设备采集的视频、从数据库中获取的视频,在此对目标视频的来源和获取场景不做限定。目标视频可以是任意需要进行视频压缩的视频。
其中,目标视频中包括一个或多个视频帧,每个视频帧的编解码处理逻辑相同,此处以任一个视频帧为待处理视频帧(即当前正在编码的视频帧)为例,对本申请技术方案进行说明。此外,待处理视频帧中所包括的待编码数据块为数据块j;数据块j为待处理视频帧中的任意一个数据块。可以理解,待处理视频帧中包括一个或多个数据块,该数据块在编码阶段称为待编码数据块,在解码阶段称为待解码数据块。每个数据块的编解码处理逻辑相同,此处以任一个数据块为数据块j为例,对本申请技术方案进行说明。
S102、对数据块j进行数据分析处理,得到数据块j的传播代价,并基于数据块j的传播代价,确定数据块j对应的参考数据块。
其中,传播代价(propagate cost),又称遗传代价,表征了当前数据块的重要程度,其值越大,表明该数据块越重要。也就是在帧间预测中被后续帧参考的重要程度。如果当前数据块贡献给后续帧的信息越多(即让后续帧的参考次数),则其重要性越高。传播代价是确定一个数据块的QP的参数。可以采用cutree算法根据帧内预测代价和帧间预测代价计算信息的传递比例,从而可以算出当前数据块对后续视频帧的影响程度(即传播代价,也就是预分析信息)。
其中,以目标视频包括N个视频帧为例,N为大于1的正整数;当前正在编码的待处理视频帧为N个视频帧中的视频帧i;i为大于1且小于或等于N的正整数。N个视频帧中,位于视频帧i之后的视频帧为待编码视频帧。可以理解,当目标视频为直播视频时,将会不断产生视频帧,每个视频帧的编解码过程相同。
可以理解,传播代价即为视频帧i中的数据块对待编码视频帧的影响程度。当前视频帧i中的数据块的传播代价可以基于视频帧i的后续视频帧确定,比如根据视频帧i的后续视频帧中的数据块的传播代价确定当前视频帧i中的数据块的传播代价。确定视频帧i中的数据块的传播代价的具体方式可以参见下述实施例的相关描述。
可以理解,以原始视频帧中的数据块进行编解码、滤波,那么环路滤波器可能会恢复数据块在原始视频帧的噪声,假如该数据块贡献给后续帧的信息较少,也就是说,该数据块的解码重建效果对后续视频帧的解码影响较少,那么,该数据块在解码重建后贴近数据块在原始视频帧的效果,可以提升视频帧的重建图像质量,提高编码效率;然而如果该数据块贡献给后续帧的信息较多,那么因滤波所恢复的噪声会影响后续视频帧在帧间预测时的效果和准确度,降低编码效率。因此,可以根据数据块的传播代价自适应选择合适的数据块作为该数据块的参考数据块,对该参考数据块进行编解码、滤波,可以适应性的调整重构视频帧中的不同数据块的噪声,从而降低解码重建的数据块中的噪声对后续视频帧的编解码的影响,提升视频帧的重构质量。本申请可以和任意一种维纳滤波合并使用,包括环内和环外的维纳滤波。可以理解,本申请技术方案应用于数据块需要由自适应滤波器进行滤波的情况。比如,可以确定一个数据块的率失真优化RDO(Rate-distortion optimization),当该数据块的RDO大于某个阈值时,则确定该数据块的编码滤波数据。当该数据块的RDO小于或等于某个阈值时,则对数据块不使用自适应滤波器。
其中,确定数据块j对应的参考数据块可以是:从待处理视频帧对应的去噪视频帧中,获取数据块j对应的去噪数据块;若数据块j的传播代价大于传播代价阈值,则将数据块j对应的去噪数据块,作为数据块j对应的参考数据块。
其中,确定数据块j对应的参考数据块可以是:从待处理视频帧对应的去噪视频帧中,获取数据块j对应的去噪数据块;若数据块j的传播代价小于或等于传播代价阈值,则将数据块j,作为数据块j对应的参考数据块。
其中,可以通过一种或多种去噪算法对待处理视频帧进行去噪处理,得到对应的去噪视频帧。所用的去噪算法比如可以是Temporal filter(一种去噪算法)或可以为去噪算法。去噪后的视频具有时域相关性高的特点,编码器更容易去除视频帧之间的时域冗余,从而能够提升压缩效率。
可以理解,当一个数据块j的传播代价大于传播代价阈值,说明该数据块j在后续视频帧的编码过程中重要程度较大,该数据块j的重构数据块若包含较多噪声,那么也会影响后续视频帧的重构效果,因此可以将该数据块j对应的去噪数据块作为参考数据块,以使得数据块j的重构数据块包含的噪声较少。当一个数据块j的传播代价小于或等于传播代价阈值,说明该数据块j在后续视频帧的编码过程中重要程度较小,该数据块j的重构数据块的噪声信息对后续视频帧的重构效果影响较少,因此可以将该数据块j直接作为参考数据块,以使得数据块j的重构数据块可以更加贴近原始视频帧中的效果,也就是说,通过自适应选择进行编解码和滤波的参考数据块,可以使得重构数据块的重建效果可以在贴近原始视频帧中的数据块j和减少噪声之间达到平衡。
S103、对参考数据块进行编码处理,得到已编码参考数据块和与已编码参考数据块相关联的编码策略数据。
可以理解,参考数据块在进行编码处理后为已编码参考数据块。
其中,以目标视频包括N个视频帧为例,N为大于1的正整数。待处理视频帧为N个视频帧中的视频帧i;i为小于或等于N的正整数。N个视频帧中,位于视频帧i之前的视频帧为已编码视频帧。目标视频所关联的重构数据缓冲器(即编码终端中的重构数据缓冲器)用于缓存已编码视频帧对应的预重构视频帧。视频帧i在进行编码处理时,基于视频帧i的预测模式从重构数据缓冲器中,所确定出的需参考的视频帧为参考重构视频帧。可以理解,当预测模式为帧间预测时,需要从重构数据缓冲器中确定出视频帧i所参考的重构视频帧。如视频帧i需要参考前一个视频帧i-1进行编码,那么则从重构数据缓冲器中获取视频帧i-1对应的重构视频帧i-1,通过重构视频帧i-1进行视频帧i中的数据块对应的参考数据块的编码。
比如,对参考数据块进行编码处理,得到已编码参考数据块和与已编码参考数据块相关联的编码策略数据可以是:基于视频帧i的预测模式,从参考重构视频帧中,确定出参考数据块在进行数据编码时可参考的数据块,并将确定出的参考数据块在进行数据编码时可参考的数据块作为目标参考数据块;基于视频帧i的预测模式,对参考数据块进行数据编码,得到目标参考数据块与参考数据块之间的残差数据信息,以及与参考数据块相关联的预测模式关联信息;对残差数据信息进行量化变换处理,得到与参考数据块相关联的量化变换系数;在将关联有预测模式关联信息和量化变换系数的参考数据块作为已编码参考数据块时,将参考数据块所关联的预测模式关联信息和量化变换系数,作为与已编码参考数据块相关联的编码策略数据。
可以理解,参考数据块在编码处理后作为已编码参考数据块。当视频帧i中的每个数据块对应的参考数据块均完成编码处理后,将视频帧i作为已编码视频帧,并继续进行视频帧i+1的编码。数据块对应的参考数据块在编码处理后作为已编码数据块。
可以理解,重构数据缓冲器中还会存储当前视频帧i中的已编码数据块对应的重构数据块。当视频帧i的预测模式为帧内预测时,则对数据块j进行编码时,会从重构数据缓冲器所存储的当前视频帧i中的已编码数据块对应的重构数据块中,确定出需要参考的数据块,以作为参考重构数据块。同时,基于视频帧i的预测模式,对参考数据块进行数据编码,得到参考重构数据块与参考数据块之间的残差数据信息,以及参考数据块的预测模式关联信息,进而确定出数据块j的数据编码参数。
也就是说,在对数据块j对应的参考数据块进行编码处理,得到已编码参考数据块时,可以对该已编码参考数据块进行预解码处理,以得到数据块j对应的预重构数据块,并将该预重构数据块添加至重构数据缓冲器。当视频帧i的预测模式为帧内模式时,视频帧i所对应的预重构数据块会参与下一个数据块的编码过程。当视频帧i的所有数据块都得到预重构数据块时,通过重构数据缓冲器中存储的视频帧i的所有数据块对应的预重构数据块,对视频帧i进行帧预重构,得到视频帧i对应的预重构视频帧,该视频帧i对应的预重构视频帧也会添加至重构数据缓冲器。当视频帧i+1的预测模式为帧间模式时,视频帧i对应的预重构视频帧i会参与视频帧i+1的编码过程。编码终端对视频帧i进行帧预重构的过程与解码终端对视频帧i进行帧重构的过程相同,具体可以参见下述实施例的相关描述。
例如,如图8所示,图8是本申请实施例提供的一种编码终端的处理过程示意图;其中,重构数据缓冲器中存储有视频帧1-视频帧i-1对应的重构视频帧1-重构视频帧i-1,以及存储有视频帧i中的数据块1-数据块j-1对应的重构数据块1-重构数据块j-1;在对视频帧i中的数据块j对应的参考数据块进行编码时,基于视频帧i的预测模式从重构视频帧i-1或者从重构数据块1-重构数据块j-1中确定出数据块j的参考数据块所需要参考的数据块(参考数据块),并基于参考数据块对数据块j对应的参考数据块进行编码,得到已编码参考数据块,并对已编码参考数据块进行预解码(同样使用重构数据缓冲器中的数据)和滤波,得到数据块j对应的重构数据块j,并将该重构数据块j添加到重构数据缓冲器中。
S104、通过编码策略数据,对已编码参考数据块进行预解码处理,得到数据块j对应的预解码数据块。
其中,对已编码参考数据块的预解码处理过程与解码终端对已编码参考数据块的解码处理过程相同,具体可以参见下述实施例的相关描述。
S105、在通过已编码参考数据块和预解码数据块确定出与已编码参考数据块相关联的编码滤波数据时,将与已编码参考数据块相关联的编码策略数据和与已编码参考数据块相关联的编码滤波数据,作为与数据块j相关联的数据编码参数。
其中,编码滤波数据用于对预解码数据块进行滤波处理,得到预解码数据块对应的预重构数据块;预重构数据块用于对待处理视频帧进行帧预重构。
也就是说,数据块j相关联的数据编码参数包括但不限于:编码策略数据、编码滤波数据和变换划分信息等等。
可以理解,环路滤波器中包括自适应滤波器(如一种维纳滤波器),因此可以通过已编码参考数据块和预解码数据块确定针对已编码参考数据块的编码滤波数据。也就是说,一个数据块可以对应一个自适应的编码滤波数据(即滤波器参数)。因此,按照编码滤波数据,对解码数据块进行滤波处理,即为由环路滤波器中的自适应滤波器按照编码滤波数据,对解码数据块进行滤波处理。
其中,编码策略数据用于对已编码参考数据块进行预解码处理,得到数据块j对应的预解码数据块。因此确定已编码参考数据块的编码滤波数据的过程可以是:确定预解码数据块和已编码参考数据块之间的关联差异信息;通过关联差异信息确定与已编码参考数据块相关联的编码滤波数据。
其中,确定预解码数据块和已编码参考数据块之间的关联差异信息可以是:确定预解码数据块的自相关信息,以及确定预解码数据块与已编码参考数据块之间的互相关信息;将自相关信息和互相关信息,作为预解码数据块和已编码参考数据块之间的关联差异信息。
其中,通过关联差异信息确定编码滤波数据可以是,通过维纳滤波算法,基于关联差异信息构建维拉霍夫方程,通过求解该维拉霍夫方程得到编码滤波数据。其维拉霍夫方程左边为预解码数据块的自相关信息,方程右边为预解码数据块(即失真信息)与已编码参考数据块(参考信息)之间的互相关信息。给定参考信号和失真信号,维纳滤波对失真信号滤波后,可以恢复参考信号,并且能够使得参考信号和重构信号的差平方达到最小。
可以理解,数据块j对应的预解码数据块为预解码数据块j。在确定数据块j的编码滤波数据时,将预解码数据块j以及数据块j所关联的的编码滤波数据输入编码终端中的环路滤波器,由编码终端中的环路滤波器,按照数据块j所关联的编码滤波数据,对预解码数据块j进行滤波处理,得到预解码数据块j对应的预重构数据块;通过预重构数据块,对视频帧i进行帧预重构,得到视频帧i对应的预重构视频帧;将视频帧i对应的预重构视频帧添加至重构数据缓冲器。对预重构数据块进行预重构得到视频帧i的预重构视频帧的具体过程与对重构数据块进行重构得到视频帧i的重构视频帧的过程相同,在此不做赘述。
可以理解,数据编码参数包括编码策略数据和编码滤波数据;编码策略数据用于(解码终端)对已编码参考解码块进行解码处理,得到数据块j的解码数据块;编码滤波数据用于对解码数据块进行滤波处理,得到解码数据块对应的重构数据块;重构数据块用于对待处理视频帧进行帧重构。解码终端的具体过程可以参见下述实施例的相关描述,在此不做赘述。
相应地,编码策略数据用于(编码终端)对已编码参考解码块进行预解码处理,得到数据块j的预解码数据块;编码滤波数据用于对预解码数据块进行滤波处理,得到预解码数据块对应的预重构数据块;预重构数据块用于对待处理视频帧进行帧预重构得到预重构视频帧。
例如,如图9所示,图9是本申请实施例提供的一种编码滤波数据的确定过程示意图;通过数据块j的传播代价从数据块j和数据块j的去噪数据块中确定出数据块j的参考数据块,(S41)对参考数据块进行编码处理,得到数据块j的编码策略数据,(S42)基于编码策略数据对已编码参考数据块进行预解码,得到数据块j对应的预解码数据块,通过预解码数据块和参考编码块确定关联差异信息,(S43)通过关联差异信息构建维拉霍夫方程,求解该维拉霍夫方程,得到滤波器参数,(S44)按照滤波器参数对预解码数据块进行滤波处理,得到重构数据块,并将该重构数据块添加到重构数据缓冲器。该重构数据块在重构数据缓冲器中重构得到数据块j所在的视频帧的重构视频帧。
S106、基于与数据块j相关联的数据编码参数,编码得到与待处理视频帧相关联的视频编码数据流。
可以理解,当待处理视频帧中的每个待编码的数据块均作为数据块j时,得到每个数据块所关联的数据编码参数,可以对该待处理视频帧中的每个数据块所关联的数据编码参数进行编码(如熵编码),得到与待处理视频帧相关联的视频编码数据流,并将该视频编码数据流封装后传输给解码终端,由解码终端进行解码重建,得到对应的重构视频帧。
本申请实施例中提出一种可以根据当前数据块的传播代价自适应选取参考数据块进行视频编码的方式,具体为:获取目标视频中的待处理视频帧包括的数据块j,数据块j为待处理视频帧中的任意一个数据块,基于对数据块j进行数据分析处理所得到的传播代价确定数据块j对应的参考数据块,对参考数据块进行编码处理,得到与已编码参考数据块相关联的编码策略数据,并通过编码策略数据,对已编码参考数据块进行预解码处理,得到数据块j对应的预解码数据块,在通过已编码参考数据块和预解码数据块确定出与已编码参考数据块相关联的编码滤波数据时,将编码策略数据和编码滤波数据,作为与数据块j相关联的数据编码参数,编码得到与待处理视频帧相关联的视频编码数据流。也就是说,可以通过数据块j的传播代价自适应选取合适的数据块作为数据块j对应的参考数据块,从原本对待处理视频帧(即原始视频帧)中的数据块进行编解码,改进为对数据块对应的参考数据块进行编码、滤波等,可以使得预重构数据块的重建效果可以在贴近原始视频帧中的数据块j和减少噪声之间达到平衡,进而可以对预重构得到的预重构视频帧中的噪声进行改善,有助于在编码时需要参考该待处理视频帧(即该待处理视频帧的预重构视频帧)的后续视频帧的编码效率和编码质量的提升,从而可以确保该后续视频帧在解码终端侧的解码预测准确度,也就是说,可以通过提升视频帧的编码质量实现视频帧的解码重构效果的提升。
进一步的,请参见图10,图10是本申请实施例提供的一种视频数据处理方法的流程示意图,如图10所示,方法可以由上述提及的计算机设备来执行,计算机设备可以是编码终端,比如,该编码终端可以为上述图1所示的业务终端200a。方法具体可以包括以下步骤S201-步骤S209:
S201、获取目标视频中的待处理视频帧。其中,步骤S201的具体实施方式可以参见上述实施例相关描述,在此不做赘述。
S202、从待编码视频帧中,获取与视频帧i相关联的预估参考视频帧。
其中,确定数据块j的传播代价具体可以是,从待编码视频帧中,获取与视频帧i相关联的预估参考视频帧。
其中,可以按照参考视频帧获取策略从待编码视频帧中获取与视频帧i相关联的预估参考视频帧,该预估参考视频帧可以为一个或多个,该预估参考视频帧中的后一个视频帧可参考前一个视频帧进行数据编码,也就是说,确定出的预估参考视频帧的第一个视频帧(如视频帧i+1)为可参考视频帧i进行数据编码的第一预估参考视频帧;预估参考视频帧的第二个视频帧(如视频帧i+2)为可参考视频帧i进行数据编码的第一预估参考视频帧进行数据编码的第二预估参考视频帧,以此类推。可以理解,前一个视频帧中的数据块的传播代价由后一个视频帧中的数据块的传播代价确定。
其中,参考视频帧获取策略可以是,从待编码视频帧依次获取R个视频帧作为预估参考视频帧,此时第一预估参考视频帧为视频帧i+1、第二预估参考视频帧为视频帧i+2,依次类推。当待编码视频帧的数量小于R时,将待编码视频帧均作为预估参考视频帧。或者还可以是,从待编码视频帧每间隔一个视频帧获取一个视频帧,直至获取到的间隔视频帧的数量为R,并将获取到的P个间隔视频帧作为预估参考视频帧。R为正整数,此时第一预估参考视频帧为视频帧i+1、第二预估参考视频帧为视频帧i+3。如果获取到的间隔视频帧的数量小于R时,将所有获取到的间隔视频帧均作为预估参考视频帧。
可选地,参考视频帧获取策略还可以是,从目标视频包括的N个视频帧中获取视频帧i所在的帧组,将视频帧i所在的帧组中的待编码视频帧作为目标待编码视频帧,并从目标待编码视频帧中获取视频帧i的预估参考视频帧。从目标待编码视频帧中获取视频帧i的预估参考视频帧的具体方式与上述从待编码视频帧中获取视频帧i的预估参考视频帧的方式相同。
为了便于理解,此处以预估参考视频帧包括第一预估参考视频帧和第二预估参考视频帧为例对数据块j的传播代价确定过程进行说明。
S203、从预估参考视频帧包括的第一预估参考视频帧中确定出与数据块j相关联的第一预估参考数据块,并从预估参考视频帧包括的第二预估参考视频帧中确定出与第一预估参考数据块相关联的第二预估参考数据块。
可以理解,第一预估参考视频帧为在待编码视频帧中所确定出的可参考视频帧i中的数据块进行数据编码的视频帧;第二预估参考视频帧为在待编码视频帧中所确定出的可参考第一预估参考视频帧中的数据块进行数据编码的视频帧。
因此,可以从第一预估参考视频帧中确定出与数据块j相关联的第一预估参考数据块,并从第二预估参考视频帧中确定出与第一预估参考数据块相关联的第二预估参考数据块。该第一预估参考数据块为第一预估参考视频帧中可参考数据块j进行数据编码的数据块。该第二预估参考数据块为第二预估参考视频帧中可参考第一预估参考数据块进行数据编码的数据块。
其中,第一预估参考视频帧中的与数据块j相关联的第一预估参考数据块可以为一个或多个。可以基于块的运动补偿技术从视频帧i中确定与第一预估参考视频帧中的每个数据块相匹配的数据块,即第一预估参考视频帧中的每个数据块在数据编码时会从视频帧i中参考的数据块(可以理解,此仅为预估情况,实际并不会对第一预估参考视频帧中的数据块进行数据编码)。可以理解,当与第一预估参考视频帧中的一个数据块(块A)相匹配的数据块为数据块j时,表示块A为该数据块j相关联的第一预估参考数据块。同理,第二预估参考数据块的确定方式与第一预估参考数据块的确定方式相同。
S204、基于第二预估参考数据块和第一预估参考数据块,确定数据块j的传播代价。
其中,确定数据块j的传播代价可以是,基于第二预估参考数据块的传播代价,对第一预估参考数据块进行预分析处理,得到第一预估参考数据块的传播代价,并基于第一预估参考数据块的传播代价,对数据块j进行预分析处理,得到数据块j的传播代价。
可以理解,当视频帧i为目标视频中的最后一个视频帧时,表示视频帧i的数据块的信息不会传播给后续视频帧,此时视频帧i中的数据块的传播代价为0。
可以理解,此时认为预估参考视频帧中的前一个视频帧的数据块的信息会传播给后一个视频帧的数据块,以此预估当前视频帧i中的每个数据块的传播代价。并且,在预估参考视频帧中,以最后一个视频帧的数据块的信息不会传播给后续视频帧为例,即此时预估参考视频帧中的最后一个视频帧的数据块的传播代价为0。可以理解,当一个数据块没有相关联的关联数据块时,表示该数据块的传播代价为0。
由此,在确定数据块j的传播代价时,是在预估参考视频帧中从后往前,以此确定每个视频帧中的数据块的传播代价,以此类推,得到视频帧i中每个数据块的传播代价。
也就是说,若预估参考视频帧为R个,对于数据块j中,会从第一预估参考视频帧中获取可参考数据块j的数据块,即第一预估参考数据块,并从第二预估参考视频帧获取可参考第一预估参考数据块的第二预估参考数据块,依次类推,从第R预估参考视频帧获取可参考第R-1预估参考数据块的第R预估参考数据块,且第R预估参考数据块的传播代价为0。
其中,以数据块j的传播代价为例,基于第一预估参考数据块的传播代价,对数据块j进行预分析处理可以是,基于第一预估参考数据块的传播代价、帧内代价和帧间代价,对数据块j进行预分析处理。其中,后一个视频帧中的数据块的帧间代价基于前一个视频帧中的数据块确定。也就是说,第一预估参考数据块的帧间代价基于视频帧i中的数据块确定。
相应地,以第一预估参考数据块的传播代价为例,基于第二预估参考数据块的传播代价,对第一预估参考数据块进行预分析处理可以是,基于第二预估参考数据块的传播代价、帧内代价和帧间代价,对第一预估参考数据块进行预分析处理。以此类推,基于第R预估参考数据块的传播代价、帧内代价和帧间代价,对第R-1预估参考数据块进行预分析处理,得到第R-1预估参考数据块的传播代价。
可以理解,数据块j的传播代价是基于第一预估参考数据块的帧内代价、帧间代价,以及传播代价确定的。第一预估参考数据块的传播代价的基于第二预估参考数据块的帧内代价、帧间代价,以及传播代价确定的。也就是说,前一个视频帧中的数据块的传播代价是通过后一个视频帧中的数据块的传播代价所确定的。预估参考视频帧从最后一帧向前一直计算到当前视频帧i,可以得到当前视频帧i中每个数据块对后续的预估参考视频帧的传播代价。
其中,对第一预估参考数据块m1的帧内代价、帧间代价,以及传播代价进行预分析处理,得到数据块j的传播代价propagate cost_j可以是:
propagate cost_j=f(propagate cost_m1,intra cost_m1,inter cost_m1)
其中,propagate cost_m1为第一预估参考数据块m1的传播代价;intra cost_m1为第一预估参考数据块m1的帧内代价;inter cost_m1为第一预估参考数据块m1的帧间代价。其中,f(x,y,x)表示求解当前数据块的传播代价,可由相关业务人员定义。
相应地,对第二预估参考数据块m2的帧内代价、帧间代价,以及传播代价进行预分析处理,得到第一预估参考数据块m1的传播代价propagate cost_m1可以是:
propagate cost_m1=f(propagate cost_m2,intra cost_m2,inter cost_m2)
其中,propagate cost_m2为第二预估参考数据块m2的传播代价;intra cost_m2为第二预估参考数据块m2的帧内代价;inter cost_m2为第二预估参考数据块m2的帧间代价。
可选地,当第一预估参考数据块m1作为多个数据块所关联的数据块时,第一预估参考数据块m1所求得的传播代价会按照一定比例划分给该多个数据块。
即对于数据块j的传播代价propagate cost_j:
propagate cost_j=af(propagate cost_m1,intra cost_m1,inter cost_m1)
其中,a为针对数据块j的划分比例。划分比例的确定方式可由相关业务人员定义。比如可以是多个数据块平均分配该传播代价等。
可选地,当数据块j的第一预估参考数据块m1(如m11、m12,且数据块m11所求得的传播代价按照比例a划分给数据块j)有多个时,数据块j的传播代价可以是该多个第一预估参考数据块所提供给该数据块j的传播代价之和。
即对于数据块j的传播代价propagate cost_j:
propagate cost_j=af(propagate cost_m11,intra cost_m11,inter cost_m11)+f(propagate cost_m12,intra cost_m12,inter cost_m12)
例如,如图11-图12所示,图11-图12是本申请实施例提供的一种传播代价的确定场景示意图;目标视频包括视频帧1-20,若在T1时刻,视频帧3为正在编码的视频帧,那么视频帧4-20为待编码视频帧,如可通过视频帧3之后的R(如R=5)个待编码视频帧确定视频帧3中的数据块的传播代价,那么从待编码视频帧中获取视频帧3所关联的预估参考视频帧(比如为视频帧4-8),可以通过视频帧4-8确定视频帧3中的数据块的传播代价,如可以是将视频帧8的数据块的传播代价设置为0,(s11)根据视频帧8的数据块的传播代价、帧内代价和帧间代价确定视频帧7中每个数据块的传播代价;(s12)根据视频帧7的数据块的传播代价、帧内代价和帧间代价确定视频帧6中每个数据块的传播代价;(s13)根据视频帧6的数据块的传播代价、帧内代价和帧间代价确定视频帧5中每个数据块的传播代价;(s14)根据视频帧5的数据块的传播代价、帧内代价和帧间代价确定视频帧4中每个数据块的传播代价;(s15)根据视频帧4的数据块的传播代价、帧内代价和帧间代价确定视频帧3中每个数据块的传播代价,即当前帧中每个数据块的传播代价。
同理,若在T2(T2>T1)时刻,若视频帧4为正在编码的视频帧,那么视频帧5-20为待编码视频帧,如可通过视频帧4之后的R(如R=5)个待编码视频帧确定视频帧4中的数据块的传播代价,那么从待编码视频帧中获取视频帧4所关联的预估参考视频帧(比如为视频帧5-9),可以通过视频帧5-9确定视频帧4中的数据块的传播代价,如可以是将视频帧9的数据块的传播代价设置为0,(s21)根据视频帧9的数据块的传播代价、帧内代价和帧间代价确定视频帧8中每个数据块的传播代价;(s22)根据视频帧8的数据块的传播代价、帧内代价和帧间代价确定视频帧7中每个数据块的传播代价;(s23)根据视频帧7的数据块的传播代价、帧内代价和帧间代价确定视频帧6中每个数据块的传播代价;(s24)根据视频帧6的数据块的传播代价、帧内代价和帧间代价确定视频帧5中每个数据块的传播代价;(s25)根据视频帧5的数据块的传播代价、帧内代价和帧间代价确定视频帧4中每个数据块的传播代价,即当前帧中每个数据块的传播代价。
其中,如图12,以确定视频帧3中的数据块j为例进行说明,数据块j为视频帧3中的数据块X1;与视频帧3相关联的视频帧为视频帧4,从视频帧4中确定出的与数据块X1相关联(即可参考)的预估参考数据块为数据块X2;与视频帧4相关联的视频帧为视频帧5,从视频帧5中确定出的与数据块X2相关联(即可参考)的预估参考数据块为数据块X3;与视频帧5相关联的视频帧为视频帧6,从视频帧6中确定出的与数据块X3相关联(即可参考)的预估参考数据块为数据块X4;与视频帧6相关联的视频帧为视频帧7,从视频帧7中确定出的与数据块X4相关联(即可参考)的预估参考数据块为数据块X5;与视频帧7相关联的视频帧为视频帧8,从视频帧8中确定出的与数据块X5相关联(即可参考)的预估参考数据块为数据块X6;因此,(S31)基于数据块X6的帧间代价16a、帧内代价16b和传播代价16c对数据块X5进行预分析处理,得到数据块X5的传播代价15c;(S32)基于数据块X5的帧间代价15a、帧内代价15b和传播代价15c对数据块X4进行预分析处理,得到数据块X4的传播代价14c;(S33)基于数据块X4的帧间代价14a、帧内代价14b和传播代价14c对数据块X3进行预分析处理,得到数据块X3的传播代价13c;(S34)基于数据块X3的帧间代价13a、帧内代价13b和传播代价13c对数据块X2进行预分析处理,得到数据块X2的传播代价13c;(S35)基于数据块X2的帧间代价12a、帧内代价12b和传播代价12c对数据块X1进行预分析处理,得到数据块X1的传播代价11c。
S205、基于数据块j的传播代价,确定数据块j对应的参考数据块。
可选地,对于色度数据块或者亮度数据块,均可以通过传播代价确定对应的参考数据块。可选地,对于色度数据块,其通常包含的噪声信息较少,因此可以直接将色度数据块作为其对应的参考数据块,也就是说,直接对原始视频帧所包含的色度数据块进行编解码、滤波操作。
也就是说,对数据块j进行数据分析处理,得到数据块j的传播代价之前,判断数据块j为色度数据块还是亮度数据块。若数据块j为待编码亮度数据块,则通知执行对数据块j进行数据分析处理,得到数据块j的传播代价的步骤(S202-S205)。若数据块j为待编码色度数据块,则将数据块j,作为数据块j对应的参考数据块。
其中,基于传播代价确定参考数据块的具体方式可以参见上述实施例的相关描述,在此不做赘述。
例如,如图13所示,图13是本申请实施例提供的一种参考数据块的确定场景示意图;其中,从待处理视频帧中获取数据块j,若数据块j为色度数据块,则直接将数据块j作为该数据块j的参考数据块;若数据块j为亮度数据块,则确定数据块j的传播代价(可以理解,在确定数据块j的传播代价,所涉及的第一关联数据块、第二关联数据块等均为与数据块j相同类型的数据块,即亮度数据块),根据传播代价从数据块j和数据块j对应的去噪数据块中确定数据块j的参考数据块;如传播代价大于传播代价阈值时,将数据块j对应的去噪数据块作为数据块j的参考数据块;传播代价小于或等于传播代价阈值时,将数据块j作为数据块j的参考数据块。
S206、对参考数据块进行编码处理,得到已编码参考数据块和与已编码参考数据块相关联的编码策略数据。
S207、通过编码策略数据,对已编码参考数据块进行预解码处理,得到数据块j对应的预解码数据块。
S208、在通过已编码参考数据块和预解码数据块确定出与已编码参考数据块相关联的编码滤波数据时,将与已编码参考数据块相关联的编码策略数据和与已编码参考数据块相关联的编码滤波数据,作为与数据块j相关联的数据编码参数。
S209、基于与数据块j相关联的数据编码参数,编码得到与待处理视频帧相关联的视频编码数据流。其中,步骤S206-S209的具体实施方式可以参见上述实施例的相关描述,在此不做赘述。
本申请实施例中提出一种可以根据当前数据块的传播代价自适应选取参考数据块进行视频编码的方式,具体为:获取目标视频中的待处理视频帧包括的数据块j,数据块j为待处理视频帧中的任意一个数据块,基于对数据块j进行数据分析处理所得到的传播代价确定数据块j对应的参考数据块,对参考数据块进行编码处理,得到与已编码参考数据块相关联的编码策略数据,并通过编码策略数据,对已编码参考数据块进行预解码处理,得到数据块j对应的预解码数据块,在通过已编码参考数据块和预解码数据块确定出与已编码参考数据块相关联的编码滤波数据时,将编码策略数据和编码滤波数据,作为与数据块j相关联的数据编码参数,编码得到与待处理视频帧相关联的视频编码数据流。也就是说,可以通过数据块j的传播代价自适应选取合适的数据块作为数据块j对应的参考数据块,从原本对待处理视频帧(即原始视频帧)中的数据块进行编解码,改进为对数据块对应的参考数据块进行编码、滤波等,可以使得预重构数据块的重建效果可以在贴近原始视频帧中的数据块j和减少噪声之间达到平衡,进而可以对预重构得到的预重构视频帧中的噪声进行改善,有助于在编码时需要参考该待处理视频帧(即该待处理视频帧的预重构视频帧)的后续视频帧的编码效率和编码质量的提升,从而可以确保该后续视频帧在解码终端侧的解码预测准确度,也就是说,可以通过提升视频帧的编码质量实现视频帧的解码重构效果的提升。
进一步的,请参见图14,图14是本申请实施例提供的一种视频数据处理方法的流程示意图,如图14所示,方法可以由上述提及的计算机设备来执行,计算机设备可以是解码终端,比如,该解码终端可以为上述图1所示的业务服务器100。方法具体可以包括以下步骤S301-步骤S304:
S301、获取与目标视频中的待处理视频帧相关联的视频编码数据流。
其中,视频编码数据流由编码终端传输至解码终端,目标视频中的视频帧均关联有视频编码数据流,可以通过视频编码数据流实现每个视频帧的解码重建,以得到对应的重构视频帧。
S302、从视频编码数据流中解码得到与数据块j相关联的数据解码参数。
其中,数据解码参数包括编码策略数据和编码滤波数据;编码策略数据和编码滤波数据是对数据块j所对应的已编码参考数据块进行编码处理时所确定的;已编码参考数据块是对数据块j进行数据分析处理,得到的数据块j的传播代价所确定的。
其中,可以对视频编码数据流进行熵解码,依次得到待处理视频帧中每个数据块所关联的数据解码参数,并基于每个数据块所关联的数据解码参数依次对每个数据块进行解码处理。
其中,数据解码参数由编码终端确定,并进行熵编码得到视频编码数据流后,传输至解码终端。可以理解,编码终端在获取到一个数据块时,会基于该数据块的传播代价确定对应的参考数据块,并对该参考数据块进行编码处理,也就是说,本申请技术方案中描述的对数据块进行编解码、滤波的操作等描述,实际是指对数据块对应的参考数据块进行编解码、滤波的操作。数据解码参数以及参考数据块的确定过程可以参见上述实施例的相关描述。
S303、基于编码策略数据对已编码参考数据块进行解码处理,得到数据块j对应的解码数据块。
可以理解,编码策略数据包括预测模式关联信息和量化变化参数,对已编码参考数据块的解码处理可以是:对量化变换系数进行反量化变换处理,得到数据块j对应的残差数据信息;基于预测模式关联信息,对数据块j进行数据预测,得到数据块j对应的预测数据块;通过残差数据信息和预测数据块,确定数据块j对应的解码数据块。
可以理解,预测模式关联信息用于指示数据块j的预测模式,如帧内预测和帧间预测,以及与预测模式相关的信息,如在帧间预测时,可以是所确定出的一些运动向量等,以用于从重构视频帧中确定数据块j在编码时所参考的数据块,可以将该确定出的数据块作为数据块j对应的预测数据块。又如,在帧内预测时,可以是指示与数据块j临近的数据块,以用于从当前帧对应的重构数据块中确定数据块j在编码时所参考的临近数据块,可以将该确定出的数据块作为数据块j对应的预测数据块。
同时,量化变换参数是由编码终端对残差数据信息进行量化变换处理(或只有量化处理)所得到的,因此解码终端可以对量化变换参数进行反量化变换处理(或只有反量化处理),得到残差数据信息,并将残差数据信息和预测数据块的信息叠加结果作为数据块j对应的解码数据块。
S304、按照编码滤波数据,对解码数据块进行滤波处理,得到解码数据块对应的重构数据块。
其中,重构数据块用于对待处理视频帧进行帧重构。对应到编码终端即为帧预重构。
可以理解,每得到一个解码数据块,就可以按照编码滤波数据对该解码数据块进行滤波处理,得到对应的重构数据块。
例如,数据块j对应的解码数据块为解码数据块j,对解码数据块j进行滤波处理可以是,将解码数据块j以及数据块j所关联的编码滤波数据输入解码终端中的环路滤波器,由解码终端中的环路滤波器,按照数据块j所关联的编码滤波数据,对解码数据块j进行滤波处理,得到解码数据块j对应的重构数据块。
可以理解,以待处理视频帧所包括的待解码数据块为K个为例,K为大于1的正整数,在K个待解码数据块中的每个待解码数据块均被选择作为数据块j时,可以得到每个待解码数据块对应的重构数据块。
其中,一个待解码数据块可以为待解码色度数据块或待解码亮度数据块。例如,K个待解码数据块包括K1个待解码色度数据块和K2个待解码亮度数据块;K1和K2之和等于K,且均为正整数。K1可以等于K2,也可以不等于K2。一个数据块的数据编码参数包括变换划分信息。
因此,通过重构数据块对待处理视频帧进行帧重构可以是:基于K1个待解码色度数据块的变换划分信息,确定K1个待解码色度数据块对应的重构数据块的划分位置信息,通过K1个待解码色度数据块对应的重构数据块的划分位置信息,重构得到待处理视频帧对应的解码色度数据帧;基于K2个待解码亮度数据块的变换划分信息,确定K2个待解码亮度数据块对应的重构数据块的划分位置信息,通过K2个待解码亮度数据块对应的重构数据块的划分位置信息,重构得到待处理视频帧对应的解码亮度数据帧;基于解码色度数据帧和解码亮度数据帧,重构得到待处理视频帧对应的重构视频帧。其中,解码色度数据帧为重构视频帧的色度分量数据,解码亮度数据帧为重构视频帧的亮度分量数据。
例如,如图15所示,图15是本申请实施例提供的一种视频帧重构的场景示意图;一个编码块对应一个视频帧中的划分区域。当一个编码块包含亮度分量数据时,该编码块又称亮度编码块,当一个编码块包含色度分量数据时,该编码块又称色度编码块。也就是说,视频帧中的数据块包括色度数据块和亮度数据块。比如,在按照变换划分方式一对视频帧进行变换划分得到K1个划分区域后,提取该K1个划分区域中的色度分量数据,由此得到K1个色度编码块(a11、a12、...、a1k1)。又如,按照变换划分方式二对视频帧进行变换划分得到K2个划分区域后,提取该K2个划分区域中的亮度分量数据,由此得到K2个亮度编码块(b11、b12、...、b1k2)。
同时,确定K1个色度编码块(a11、a12、...、a1k1)的传播代价,以确定K1个色度编码块(a11、a12、...、a1k1)对应的参考编码块(a11’、a12’、...、a1k1’)。确定K2个亮度编码块(b11、b12、...、b1k2)的传播代价,以确定K2个亮度编码块(b11、b12、...、b1k2)对应的参考编码块(b11’、b12’、...、b1k2’)。
也就是,对色度编码块a11’进行编码处理,得到相关联的数据解码参数A1、对色度编码块a12’进行编码处理,得到相关联的数据解码参数A2、...、对色度编码块a1k1’进行编码处理,得到相关联的数据解码参数Ak1。相应地,对亮度编码块b11’进行编码处理,得到相关联的数据解码参数B1、对亮度编码块b12’进行编码处理,得到相关联的数据解码参数B2、...、对亮度编码块b1k2’进行编码处理,得到相关联的数据解码参数Bk2。
可以理解,亮度编码块,和色度编码块分别进行解码(即分别预测),那么可以得到K1个色度编码块对应的重构数据块,可根据位置划分信息对K1个色度编码块对应的重构数据块拼接(重构)得到色度数据帧(也就是预测出的一个视频帧的色度分量数据),以及可以得到K2个亮度编码块对应的重构数据块,根据位置划分信息对K2个亮度编码块对应的重构数据块拼接(重构)得到亮度数据帧(也就是预测出的一个视频帧的亮度分量数据),并由色度数据帧和亮度数据帧确定出对应的重构视频帧。
也就是,在解码时,基于数据解码参数A1对色度编码块a11进行解码处理,得到色度编码块a11’对应的解码数据块a21、基于数据解码参数A2对色度编码块a12’进行解码处理,得到色度编码块a12’对应的解码数据块a22、...、基于数据解码参数Ak1对色度编码块a1k1’进行解码处理,得到色度编码块a1k1’对应的解码数据块a2k1。相应地,基于数据解码参数B1对亮度编码块b11’进行解码处理,得到亮度编码块b11’对应的解码数据块b21、基于数据解码参数B2对亮度编码块b12’进行解码处理,得到亮度编码块b12’对应的解码数据块b22、...、基于数据解码参数Bk2对亮度编码块b1k2’进行解码处理,得到亮度编码块b1k2’对应的解码数据块b2k2。
后续,在解码时,对色度编码块a11’对应的解码数据块a21进行滤波处理,得到解码数据块a21对应的重构数据块a31、对色度编码块a12’对应的解码数据块a22进行滤波处理,得到解码数据块a22对应的重构数据块a32、...、对色度编码块a1k1’对应的解码数据块a2k1进行滤波处理,得到解码数据块a2k1对应的重构数据块a3k1。相应地,对亮度编码块b11’对应的解码数据块b21进行滤波处理,得到解码数据块b21对应的重构数据块b31、对亮度编码块b12’对应的解码数据块b22进行滤波处理,得到解码数据块b22对应的重构数据块b32、...、对亮度编码块b1k2’对应的解码数据块b2k2进行滤波处理,得到解码数据块b2k2对应的重构数据块b3k2。
因此,基于重构数据块a31-重构数据块a3k1重构得到解码色度数据帧,以及基于重构数据块b31-重构数据块b3k2重构得到解码亮度数据帧,通过解码色度数据帧和解码亮度数据帧得到重构视频帧。
本申请实施例中提出一种可以根据当前数据块的传播代价自适应选取参考数据块进行视频编码的方式,具体为:从与目标视频中的待处理视频帧相关联的视频编码数据流中解码得到数据块j的数据解码参数,数据块j是待处理视频帧中的任一个待解码数据块,基于数据解码参数中的编码策略数据进行解码处理得到数据块j对应的解码数据块,并按照数据解码参数中的数据解码参数,对解码数据块进行滤波处理,得到重构数据块,该重构数据块用于对待处理视频帧进行重构;其中,数据解码参数是对已编码参考数据块进行编码处理所确定的,已编码参考数据块是基于数据块j的传播代价所确定的。也就是说,可以通过数据块j的传播代价自适应选取合适的数据块作为数据块j对应的参考数据块,从原本对待处理视频帧(即原始视频帧)中的数据块进行编解码,改进为对数据块对应的参考数据块进行编解码、滤波等,这样使得重构数据块的重建效果可以在贴近原始视频帧中的数据块j和减少噪声之间达到平衡,进而可以对重构得到的重构视频帧中的噪声进行改善,有助于在编码时需要参考该待处理视频帧(即该待处理视频帧的预重构视频帧)的后续视频帧的编码效率和编码质量的提升,从而可以确保该后续视频帧在解码终端侧的解码预测准确度,也就是说,可以通过提升视频帧的编码质量实现视频帧的解码重构效果的提升。
进一步的,请参见图16,图16是本申请实施例提供的一种视频数据处理装置的结构示意图。如图16所示,视频数据处理装置1可应用于计算机设备。应当理解,该视频数据处理装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该视频数据处理装置1可以为一个应用软件;可以理解的是,该视频数据处理装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图16所示,视频数据处理装置1可以包括:视频获取模块11、参考数据确定模块12、数据编码模块13、数据流编码模块14;其中:
视频获取模块11,用于获取目标视频中的待处理视频帧;待处理视频帧中所包括的待编码数据块为数据块j;数据块j为待处理视频帧中的任意一个数据块;
参考数据确定模块12,用于对数据块j进行数据分析处理,得到数据块j的传播代价,并基于数据块j的传播代价,确定数据块j对应的参考数据块;
数据编码模块13,用于对参考数据块进行编码处理,得到已编码参考数据块和与已编码参考数据块相关联的编码策略数据;
数据编码模块13,还用于通过编码策略数据,对已编码参考数据块进行预解码处理,得到数据块j对应的预解码数据块;
数据编码模块13,还用于在通过已编码参考数据块和预解码数据块确定出与已编码参考数据块相关联的编码滤波数据时,将与已编码参考数据块相关联的编码策略数据和与已编码参考数据块相关联的编码滤波数据,作为与数据块j相关联的数据编码参数;编码滤波数据用于对预解码数据块进行滤波处理,得到预解码数据块对应的预重构数据块;预重构数据块用于对待处理视频帧进行帧预重构;
数据流编码模块14,用于基于与数据块j相关联的数据编码参数,编码得到与待处理视频帧相关联的视频编码数据流。
其中,目标视频包括N个视频帧;N为大于1的正整数;待处理视频帧为N个视频帧中的视频帧i;i为大于1且小于或等于N的正整数;N个视频帧中,位于视频帧i之后的视频帧为待编码视频帧;
参考数据确定模块12包括:
关联数据获取单元121,用于从待编码视频帧中,获取与视频帧i相关联的预估参考视频帧;预估参考视频帧包括第一预估参考视频帧和第二预估参考视频帧;第一预估参考视频帧为在待编码视频帧中所确定出的可参考视频帧i中的数据块进行数据编码的视频帧;第二预估参考视频帧为在待编码视频帧中所确定出的可参考第一预估参考视频帧中的数据块进行数据编码的视频帧;
关联数据获取单元121,还用于从第一预估参考视频帧中确定出与数据块j相关联的第一预估参考数据块,并从第二预估参考视频帧中确定出与第一预估参考数据块相关联的第二预估参考数据块;第一预估参考数据块为第一预估参考视频帧中可参考数据块j进行数据编码的数据块;第二预估参考数据块为第二预估参考视频帧中可参考第一预估参考数据块进行数据编码的数据块;
预分析单元122,用于基于第二预估参考数据块的传播代价,对第一预估参考数据块进行预分析处理,得到第一预估参考数据块的传播代价,并基于第一预估参考数据块的传播代价,对数据块j进行预分析处理,得到数据块j的传播代价。
其中,参考数据确定模块12具体还用于:
若数据块j为待编码亮度数据块,则通知参考数据确定模块执行对数据块j进行数据分析处理,得到数据块j的传播代价的步骤。
其中,参考数据确定模块12具体还用于:
若数据块j为待编码色度数据块,则将数据块j,作为数据块j对应的参考数据块。
其中,参考数据确定模块12包括:
数据块确定单元123,用于从待处理视频帧对应的去噪视频帧中,获取数据块j对应的去噪数据块;
数据块确定单元123,还用于若数据块j的传播代价大于传播代价阈值,则将数据块j对应的去噪数据块,作为数据块j对应的参考数据块。
其中,参考数据确定模块22包括:
数据块确定单元123,用于从待处理视频帧对应的去噪视频帧中,获取数据块j对应的去噪数据块;
数据块确定单元123,还用于若数据块j的传播代价小于或等于传播代价阈值,则将数据块j,作为数据块j对应的参考数据块。
其中,目标视频包括N个视频帧;N为大于1的正整数;待处理视频帧为N个视频帧中的视频帧i;i为小于或等于N的正整数;N个视频帧中,位于视频帧i之前的视频帧为已编码视频帧;目标视频所关联的重构数据缓冲器用于缓存已编码视频帧对应的预重构视频帧;视频帧i在进行编码处理时,基于视频帧i的预测模式从重构数据缓冲器中,所确定出的需参考的视频帧为参考重构视频帧;
数据编码模块13包括:
参考数据确定单元131,用于基于视频帧i的预测模式,从参考重构视频帧中,确定出参考数据块在进行数据编码时可参考的数据块,并将确定出的参考数据块在进行数据编码时可参考的数据块作为目标参考数据块;
数据编码单元132,用于基于视频帧i的预测模式,对参考数据块进行数据编码,得到目标参考数据块与参考数据块之间的残差数据信息,以及与参考数据块相关联的预测模式关联信息;
量化变换单元133,用于对残差数据信息进行量化变换处理,得到与参考数据块相关联的量化变换系数;
策略数据确定单元134,用于在将关联有预测模式关联信息和量化变换系数的参考数据块作为已编码参考数据块时,将参考数据块所关联的预测模式关联信息和量化变换系数,作为与已编码参考数据块相关联的编码策略数据。
其中,数据编码模块13包括:
差异信息确定单元135,用于确定预解码数据块和已编码参考数据块之间的关联差异信息;
滤波数据确定单元136,用于通过关联差异信息确定与已编码参考数据块相关联的编码滤波数据。
其中,滤波数据确定单元136具体用于:
确定预解码数据块的自相关信息,以及确定预解码数据块与已编码参考数据块之间的互相关信息;
将自相关信息和互相关信息,作为预解码数据块和已编码参考数据块之间的关联差异信息。
其中,目标视频包括N个视频帧;N为大于1的正整数;待处理视频帧为N个视频帧中的视频帧i;i为小于或等于N的正整数;N个视频帧中位于视频帧i之前的视频帧为已编码视频帧;目标视频所关联的重构数据缓冲器用于缓存已编码视频帧对应的预重构视频帧;数据块j对应的预解码数据块为预解码数据块j;
数据编码模块13还包括:
预解码单元137,用于将预解码数据块j以及数据块j所关联的的编码滤波数据输入编码终端中的环路滤波器,由编码终端中的环路滤波器,按照数据块j所关联的编码滤波数据,对预解码数据块j进行滤波处理,得到预解码数据块j对应的预重构数据块;
预重构单元138,用于通过预重构数据块,对视频帧i进行帧预重构,得到视频帧i对应的预重构视频帧;
预重构单元138,还用于将视频帧i对应的预重构视频帧添加至重构数据缓冲器。
其中,视频获取模块11、参考数据确定模块12、数据编码模块13、数据流编码模块14的具体实现方式,可以参见上述实施例中的相关描述,这里将不再继续进行赘述。应当理解,对采用相同方法所得到的有益效果描述,也不再进行赘述。
进一步地,请参见图17,图17是本申请实施例提供的一种计算机设备的结构示意图。如图17所示,该计算机设备1700可以为业务终端,还可以为服务器,这里将不对其进行限制。为便于理解,本申请以计算机设备为服务器为例,该计算机设备1700可以包括:处理器1701,网络接口1704和存储器1705,此外,该计算机设备1700还可以包括:用户接口1703,和至少一个通信总线1702。其中,通信总线1702用于实现这些组件之间的连接通信。其中,用户接口1703还可以包括标准的有线接口、无线接口。网络接口1704可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1705可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1705可选的还可以是至少一个位于远离前述处理器1701的存储装置。如图17所示,作为一种计算机可读存储介质的存储器1705中可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
其中,该计算机设备1700中的网络接口1704还可以提供网络数据交互功能。在图17所示的计算机设备1700中,网络接口1704可提供网络数据交互功能;而用户接口1703主要用于为用户提供输入的接口;而处理器1701可以用于调用存储器1705中存储的设备控制应用程序,以执行上述图7、图10和图14所对应实施例中对视频数据处理方法的描述,还可以执行前文图16所对应实施例中对视频数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
在一个可能的实施方式中,存储器1705用于存储程序指令。处理器1701可以调用程序指令,执行以下步骤:
获取目标视频中的待处理视频帧;待处理视频帧中所包括的待编码数据块为数据块j;数据块j为待处理视频帧中的任意一个数据块;
对数据块j进行数据分析处理,得到数据块j的传播代价,并基于数据块j的传播代价,确定数据块j对应的参考数据块;
对参考数据块进行编码处理,得到已编码参考数据块和与已编码参考数据块相关联的编码策略数据;
通过编码策略数据,对已编码参考数据块进行预解码处理,得到数据块j对应的预解码数据块;
在通过已编码参考数据块和预解码数据块确定出与已编码参考数据块相关联的编码滤波数据时,将与已编码参考数据块相关联的编码策略数据和与已编码参考数据块相关联的编码滤波数据,作为与数据块j相关联的数据编码参数;编码滤波数据用于对预解码数据块进行滤波处理,得到预解码数据块对应的预重构数据块;预重构数据块用于对待处理视频帧进行帧预重构;
基于与数据块j相关联的数据编码参数,编码得到与待处理视频帧相关联的视频编码数据流。
其中,目标视频包括N个视频帧;N为大于1的正整数;待处理视频帧为N个视频帧中的视频帧i;i为大于1且小于或等于N的正整数;N个视频帧中,位于视频帧i之后的视频帧为待编码视频帧;
处理器1701在用于对数据块j进行数据分析处理,得到数据块j的传播代价时,具体用于:
从待编码视频帧中,获取与视频帧i相关联的预估参考视频帧;预估参考视频帧包括第一预估参考视频帧和第二预估参考视频帧;第一预估参考视频帧为在待编码视频帧中所确定出的可参考视频帧i中的数据块进行数据编码的视频帧;第二预估参考视频帧为在待编码视频帧中所确定出的可参考第一预估参考视频帧中的数据块进行数据编码的视频帧;
从第一预估参考视频帧中确定出与数据块j相关联的第一预估参考数据块,并从第二预估参考视频帧中确定出与第一预估参考数据块相关联的第二预估参考数据块;第一预估参考数据块为第一预估参考视频帧中可参考数据块j进行数据编码的数据块;第二预估参考数据块为第二预估参考视频帧中可参考第一预估参考数据块进行数据编码的数据块;
基于第二预估参考数据块的传播代价,对第一预估参考数据块进行预分析处理,得到第一预估参考数据块的传播代价,并基于第一预估参考数据块的传播代价,对数据块j进行预分析处理,得到数据块j的传播代价。
其中,处理器1701在用于对数据块j进行数据分析处理,得到数据块j的传播代价之前,还用于:
若数据块j为待编码亮度数据块,则通知执行对数据块j进行数据分析处理,得到数据块j的传播代价的步骤。
其中,处理器1701还用于:
若数据块j为待编码色度数据块,则将数据块j,作为数据块j对应的参考数据块。
其中,处理器1701在用于基于数据块j的传播代价,确定数据块j对应的参考数据块时,具体用于:
从待处理视频帧对应的去噪视频帧中,获取数据块j对应的去噪数据块;
若数据块j的传播代价大于传播代价阈值,则将数据块j对应的去噪数据块,作为数据块j对应的参考数据块。
其中,处理器1701在用于基于数据块j的传播代价,确定数据块j对应的参考数据块时,具体用于:
从待处理视频帧对应的去噪视频帧中,获取数据块j对应的去噪数据块;
若数据块j的传播代价小于或等于传播代价阈值,则将数据块j,作为数据块j对应的参考数据块。
其中,目标视频包括N个视频帧;N为大于1的正整数;待处理视频帧为N个视频帧中的视频帧i;i为小于或等于N的正整数;N个视频帧中,位于视频帧i之前的视频帧为已编码视频帧;目标视频所关联的重构数据缓冲器用于缓存已编码视频帧对应的预重构视频帧;视频帧i在进行编码处理时,基于视频帧i的预测模式从重构数据缓冲器中,所确定出的需参考的视频帧为参考重构视频帧;
处理器1701在用于对参考数据块进行编码处理,得到已编码参考数据块和与已编码参考数据块相关联的编码策略数据时,具体用于:
基于视频帧i的预测模式,从参考重构视频帧中,确定出参考数据块在进行数据编码时可参考的数据块,并将确定出的参考数据块在进行数据编码时可参考的数据块作为目标参考数据块;
基于视频帧i的预测模式,对参考数据块进行数据编码,得到目标参考数据块与参考数据块之间的残差数据信息,以及与参考数据块相关联的预测模式关联信息;
对残差数据信息进行量化变换处理,得到与参考数据块相关联的量化变换系数;
在将关联有预测模式关联信息和量化变换系数的参考数据块作为已编码参考数据块时,将参考数据块所关联的预测模式关联信息和量化变换系数,作为与已编码参考数据块相关联的编码策略数据。
其中,处理器1701在用于通过已编码参考数据块和预解码数据块确定出与已编码参考数据块相关联的编码滤波数据时,具体用于:
确定预解码数据块和已编码参考数据块之间的关联差异信息;
通过关联差异信息确定与已编码参考数据块相关联的编码滤波数据。
其中,处理器1701在用于确定预解码数据块和已编码参考数据块之间的关联差异信息时,具体用于:
确定预解码数据块的自相关信息,以及确定预解码数据块与已编码参考数据块之间的互相关信息;
将自相关信息和互相关信息,作为预解码数据块和已编码参考数据块之间的关联差异信息。
其中,目标视频包括N个视频帧;N为大于1的正整数;待处理视频帧为N个视频帧中的视频帧i;i为小于或等于N的正整数;N个视频帧中位于视频帧i之前的视频帧为已编码视频帧;目标视频所关联的重构数据缓冲器用于缓存已编码视频帧对应的预重构视频帧;数据块j对应的预解码数据块为预解码数据块j;
处理器1701还用于:
基于编码策略数据,对已编码参考数据块进行预解码处理,得到数据块j对应的预解码数据块;数据块j对应的预解码数据块为预解码数据块j;
将预解码数据块j以及数据块j所关联的的编码滤波数据输入编码终端中的环路滤波器,由编码终端中的环路滤波器,按照数据块j所关联的编码滤波数据,对预解码数据块j进行滤波处理,得到预解码数据块j对应的预重构数据块;
通过预重构数据块,对视频帧i进行帧预重构,得到视频帧i对应的预重构视频帧,将视频帧i对应的预重构视频帧添加至重构数据缓冲器。
具体实现中,本申请实施例中所描述的装置、处理器、存储器等可执行上述方法实施例所描述的实现方式,也可执行本申请实施例所描述的实现方式,在此不再赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的视频数据处理装置1所执行的计算机程序,且计算机程序包括计算机指令,当处理器执行计算机指令时,能够执行前文图7、图10和图14所对应实施例中对视频数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,计算机指令可被部署在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链***。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图7、图10和图14所对应实施例中对视频数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (13)
1.一种视频数据处理方法,其特征在于,所述方法包括:
获取目标视频中的待处理视频帧;所述待处理视频帧中所包括的待编码数据块为数据块j;所述数据块j为所述待处理视频帧中的任意一个数据块;
对所述数据块j进行数据分析处理,得到所述数据块j的传播代价,并基于所述数据块j的传播代价,确定所述数据块j对应的参考数据块;
对所述参考数据块进行编码处理,得到已编码参考数据块和与所述已编码参考数据块相关联的编码策略数据;
通过所述编码策略数据,对所述已编码参考数据块进行预解码处理,得到所述数据块j对应的预解码数据块;
在通过所述已编码参考数据块和所述预解码数据块确定出与所述已编码参考数据块相关联的编码滤波数据时,将与所述已编码参考数据块相关联的编码策略数据和与所述已编码参考数据块相关联的编码滤波数据,作为与所述数据块j相关联的数据编码参数;
基于与所述数据块j相关联的数据编码参数,编码得到与所述待处理视频帧相关联的视频编码数据流。
2.根据权利要求1所述的方法,其特征在于,所述目标视频包括N个视频帧;N为大于1的正整数;所述待处理视频帧为所述N个视频帧中的视频帧i;i为大于1且小于或等于N的正整数;所述N个视频帧中,位于所述视频帧i之后的视频帧为待编码视频帧;
所述对所述数据块j进行数据分析处理,得到所述数据块j的传播代价,包括:
从所述待编码视频帧中,获取与所述视频帧i相关联的预估参考视频帧;所述预估参考视频帧包括第一预估参考视频帧和第二预估参考视频帧;所述第一预估参考视频帧为在所述待编码视频帧中所确定出的可参考所述视频帧i中的数据块进行数据编码的视频帧;所述第二预估参考视频帧为在所述待编码视频帧中所确定出的可参考所述第一预估参考视频帧中的数据块进行数据编码的视频帧;
从所述第一预估参考视频帧中确定出与所述数据块j相关联的第一预估参考数据块,并从所述第二预估参考视频帧中确定出与所述第一预估参考数据块相关联的第二预估参考数据块;所述第一预估参考数据块为所述第一预估参考视频帧中可参考所述数据块j进行数据编码的数据块;所述第二预估参考数据块为所述第二预估参考视频帧中可参考所述第一预估参考数据块进行数据编码的数据块;
基于所述第二预估参考数据块的传播代价,对所述第一预估参考数据块进行预分析处理,得到所述第一预估参考数据块的传播代价,并基于所述第一预估参考数据块的传播代价,对所述数据块j进行预分析处理,得到所述数据块j的传播代价。
3.根据权利要求1所述的方法,其特征在于,所述对所述数据块j进行数据分析处理,得到所述数据块j的传播代价之前,所述方法还包括:
若所述数据块j为待编码亮度数据块,则通知执行所述对所述数据块j进行数据分析处理,得到所述数据块j的传播代价的步骤。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述数据块j为待编码色度数据块,则将所述数据块j,作为所述数据块j对应的参考数据块。
5.根据权利要求1所述的方法,其特征在于,所述基于所述数据块j的传播代价,确定所述数据块j对应的参考数据块,包括:
从所述待处理视频帧对应的去噪视频帧中,获取所述数据块j对应的去噪数据块;
若所述数据块j的传播代价大于传播代价阈值,则将所述数据块j对应的去噪数据块,作为所述数据块j对应的参考数据块。
6.根据权利要求1所述的方法,其特征在于,所述基于所述数据块j的传播代价,确定所述数据块j对应的参考数据块,包括:
从所述待处理视频帧对应的去噪视频帧中,获取所述数据块j对应的去噪数据块;
若所述数据块j的传播代价小于或等于传播代价阈值,则将所述数据块j,作为所述数据块j对应的参考数据块。
7.根据权利要求1所述的方法,其特征在于,所述目标视频包括N个视频帧;N为大于1的正整数;所述待处理视频帧为所述N个视频帧中的视频帧i;i为小于或等于N的正整数;所述N个视频帧中,位于所述视频帧i之前的视频帧为已编码视频帧;所述目标视频所关联的重构数据缓冲器用于缓存所述已编码视频帧对应的预重构视频帧;所述视频帧i在进行编码处理时,基于所述视频帧i的预测模式从所述重构数据缓冲器中,所确定出的需参考的视频帧为参考重构视频帧;
所述对所述参考数据块进行编码处理,得到已编码参考数据块和与所述已编码参考数据块相关联的编码策略数据,包括:
基于所述视频帧i的预测模式,从所述参考重构视频帧中,确定出所述参考数据块在进行数据编码时可参考的数据块,并将确定出的所述参考数据块在进行数据编码时可参考的数据块作为目标参考数据块;
基于所述视频帧i的预测模式,对所述参考数据块进行数据编码,得到所述目标参考数据块与所述参考数据块之间的残差数据信息,以及与所述参考数据块相关联的预测模式关联信息;
对所述残差数据信息进行量化变换处理,得到与所述参考数据块相关联的量化变换系数;
在将关联有所述预测模式关联信息和所述量化变换系数的所述参考数据块作为所述已编码参考数据块时,将所述参考数据块所关联的所述预测模式关联信息和所述量化变换系数,作为与所述已编码参考数据块相关联的编码策略数据。
8.根据权利要求1所述的方法,其特征在于,所述通过所述已编码参考数据块和所述预解码数据块确定出与所述已编码参考数据块相关联的编码滤波数据,包括:
确定所述预解码数据块和所述已编码参考数据块之间的关联差异信息;
通过所述关联差异信息确定与所述已编码参考数据块相关联的编码滤波数据。
9.根据权利要求8所述的方法,其特征在于,所述确定所述预解码数据块和所述已编码参考数据块之间的关联差异信息,包括:
确定所述预解码数据块的自相关信息,以及确定所述预解码数据块与所述已编码参考数据块之间的互相关信息;
将所述自相关信息和所述互相关信息,作为所述预解码数据块和所述已编码参考数据块之间的关联差异信息。
10.根据权利要求1所述的方法,其特征在于,所述目标视频包括N个视频帧;N为大于1的正整数;所述待处理视频帧为所述N个视频帧中的视频帧i;i为小于或等于N的正整数;所述N个视频帧中位于所述视频帧i之前的视频帧为已编码视频帧;所述目标视频所关联的重构数据缓冲器用于缓存所述已编码视频帧对应的预重构视频帧;所述数据块j对应的预解码数据块为预解码数据块j;
所述方法还包括:
将所述预解码数据块j以及所述数据块j所关联的的编码滤波数据输入所述编码终端中的环路滤波器,由所述编码终端中的环路滤波器,按照所述数据块j所关联的编码滤波数据,对所述预解码数据块j进行滤波处理,得到所述预解码数据块j对应的预重构数据块;
通过所述预重构数据块,对所述视频帧i进行帧预重构,得到所述视频帧i对应的预重构视频帧;
将所述视频帧i对应的预重构视频帧添加至所述重构数据缓冲器。
11.一种视频数据处理装置,其特征在于,所述装置包括:
视频获取模块,用于获取目标视频中的待处理视频帧;所述待处理视频帧中所包括的待编码数据块为数据块j;所述数据块j为所述待处理视频帧中的任意一个数据块;
参考数据确定模块,用于对所述数据块j进行数据分析处理,得到所述数据块j的传播代价,并基于所述数据块j的传播代价,确定所述数据块j对应的参考数据块;
数据编码模块,用于对所述参考数据块进行编码处理,得到已编码参考数据块和与所述已编码参考数据块相关联的编码策略数据;
所述数据编码模块,还用于通过所述编码策略数据,对所述已编码参考数据块进行预解码处理,得到所述数据块j对应的预解码数据块;
所述数据编码模块,还用于在通过所述已编码参考数据块和所述预解码数据块确定出与所述已编码参考数据块相关联的编码滤波数据时,将与所述已编码参考数据块相关联的编码策略数据和与所述已编码参考数据块相关联的编码滤波数据,作为与所述数据块j相关联的数据编码参数;
数据流编码模块,用于基于与所述数据块j相关联的数据编码参数,编码得到与所述待处理视频帧相关联的视频编码数据流。
12.一种计算机设备,其特征在于,包括存储器和处理器;
所述存储器与所述处理器相连,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-10任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311184821.0A CN117119182A (zh) | 2023-09-13 | 2023-09-13 | 视频数据处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311184821.0A CN117119182A (zh) | 2023-09-13 | 2023-09-13 | 视频数据处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117119182A true CN117119182A (zh) | 2023-11-24 |
Family
ID=88796396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311184821.0A Pending CN117119182A (zh) | 2023-09-13 | 2023-09-13 | 视频数据处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117119182A (zh) |
-
2023
- 2023-09-13 CN CN202311184821.0A patent/CN117119182A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3932057B1 (en) | An encoder, a decoder and corresponding methods for intra prediction | |
CN107566848B (zh) | 编解码的方法及装置 | |
KR101808327B1 (ko) | 영상 코덱에서 패딩을 이용한 영상 부/복호화 방법 및 장치 | |
KR102661224B1 (ko) | 화상의 블록을 인트라 예측하는 방법 | |
CN111669589B (zh) | 图像编码方法、装置、计算机设备以及存储介质 | |
CN111837389A (zh) | 适用于多符号位隐藏的块检测方法及装置 | |
CN111711825A (zh) | 视频编解码中的去块效应滤波方法、装置、设备及介质 | |
US11924424B2 (en) | Method and device for transmitting block division information in image codec for security camera | |
KR102606722B1 (ko) | 비디오 코딩에서 디블로킹 필터를 위한 장치 및 방법 | |
US11627321B2 (en) | Adaptive coding of prediction modes using probability distributions | |
US20230037509A1 (en) | Video coding method and system | |
CN113196783A (zh) | 去块效应滤波自适应的编码器、解码器及对应方法 | |
US11930211B2 (en) | Method and system for intra mode coding | |
KR20210075201A (ko) | 인트라 예측을 위한 방법 및 장치 | |
EP3673653B1 (en) | Embedding information about token tree traversal | |
KR20230129068A (ko) | 확장 가능한 인코딩 및 디코딩 방법 및 장치 | |
CN117119182A (zh) | 视频数据处理方法、装置、设备及介质 | |
WO2021263251A1 (en) | State transition for dependent quantization in video coding | |
KR20210016615A (ko) | 인트라 예측 방법 및 장치 | |
US11553208B2 (en) | Method and system of video coding using a subset of available intra prediction modes for multiple reference lines | |
RU2821012C2 (ru) | Кодер, декодер и соответствующие способы для интра-предсказания | |
US11388401B2 (en) | Extended transform partitions for video compression | |
US20240129546A1 (en) | Artificial intelligence-based image encoding and decoding apparatus, and image encoding and decoding method thereby | |
RU2789030C2 (ru) | Устройство и способ для фильтра деблокинга при кодировании видео | |
KR20210129180A (ko) | 평면 모드를 위한 인트라 예측에 대한 복잡도 감소의 인코더, 디코더 및 대응하는 방법 |
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 |