CN115474063B - 一种流媒体后端解码方法、装置及存储介质 - Google Patents
一种流媒体后端解码方法、装置及存储介质 Download PDFInfo
- Publication number
- CN115474063B CN115474063B CN202211326844.6A CN202211326844A CN115474063B CN 115474063 B CN115474063 B CN 115474063B CN 202211326844 A CN202211326844 A CN 202211326844A CN 115474063 B CN115474063 B CN 115474063B
- Authority
- CN
- China
- Prior art keywords
- decoding
- streaming media
- frame
- media file
- data
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及通信技术领域,具体公开了一种流媒体后端解码方法、装置及存储介质,包括步骤:采集流媒体文件;前端编码系统根据解码能效因子对预处理后的流媒体文件进行编码压缩,后端解码系统对编码处理后的流媒体文件进行解码处理。在本发明中,根据实时吞吐量与最大吞吐量的差值以及GPU内片上硬件解码器的利用率实时信息,实时调整CPU和至少两个GPU任务分配,解码过程中采用改进帧内预测的方法对其进行解码,有效地提高了解码的准确性和速率,满足用户体验,降低了解码成本和资源,通过上述计算大大提升了编解码传输效率,大大增强了解码功效,同时解码过程中采用改进帧内预测的方法对其进行解码,大大增强了解码准确率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种流媒体后端解码方法、装置及存储介质。
背景技术
流媒体技术在各个领域发展迅速,3G研究的深入和宽带网络的普及使得流媒体技术获得了更大更广阔的应用空间。流媒体广泛应用于视频在线点播、电子商务、在线直播、远程医疗、视频会议、网络监控等网络信息服务。可以说,流媒体技术已经成为网络上应用的主流。现在人们也已经不再满足早期互联网上传输的低品质多媒体信息了,随着网络技术和通信技术的发展,高品质的高清流媒体已经渐渐开始出现。
流媒体是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个媒体文件,流式传输可传送现场影音或预存于服务器上的影片,当观看者在收看这些影音文件时,影音数据在送达观看者的计算机后立即由特定播放软件播放。而如何对流媒体进行处理使得用户合理的获取流媒体数据成为了一大问题。
流媒体编解码就用于流媒体数据进行编码传输解码播放,目前在对流媒体编解码多采用传统的视频编解码方式进行处理,实时流媒体技术中编码端通常采用固定的编码格式,例如:H264或者是H265,会导致编码端发送的流媒体格式无法被解码端解码、流媒体数据不能连续输出、成本高的问题。
因此,为满足高清流媒体发展的需求,如何提高流媒体的解码准确性,满足用户体验,降低解码成本和资源迫在眉睫。
发明内容
本发明的主要目的在于提供一种流媒体后端解码方法及装置,旨在解决现有技术中编码端发送的流媒体格式无法被解码端解码、流媒体数据不能连续输出、成本高的技术问题。
为实现上述目的,本发明实施例提供了一种流媒体后端解码方法,其包括:
步骤1、采集流媒体文件,对采集的流媒体文件进行预处理,其中流媒体文件预处理包括根据传输的最大吞吐量对流媒体文件进行转换、流媒体文件编辑,将预处理后的流媒体文件传输到前端编码系统;
步骤2、后端解码系统发送解码能效因子到前端编码系统,前端编码系统接受后端解码系统的解码能效因子,根据解码能效因子对预处理后的流媒体文件进行编码压缩,编码处理由文件封装、帧内预测、运动估计、运动补偿、离散余弦变换、量化、块滤波、重排序和熵编码组成;其中解码能效因子包括后端解码系统能够解码的文件格式、解码速率、解码准确率,根据解码能效因子对预处理后的流媒体文件进行编码包括根据后端解码系统能够解码的文件格式、解码速率、解码准确率将流媒体数据进行适应性地编码;
步骤3、将编码处理后的流媒体文件传输至后端解码系统;
步骤4、后端解码系统对编码处理后的流媒体文件进行解码处理,其中,后端解码系统包括CPU以及至少两个GPU;解码处理由熵解码、反量化、反变换、运动补偿、帧内预测和解块滤波组成;为了获得最大的吞吐量,同时采用CPU结合至少两个GPU进行解码处理,同时利用片上解码器单元;并对吞吐量进行实时计算,传输的最大吞吐量T计算如下:,其中P表示丢失事件率,CW表示拥塞窗口的平均峰值,PS表示数据丢失率,RTT表示平均往返时延,PRO表示一个拥塞控制段内超时事件发生的概率,RTO表示一个拥塞控制阶段内的第一个超时时延;根据实时吞吐量与最大吞吐量的差值以及GPU内片上硬件解码器的利用率实时信息,实时调整CPU和至少两个GPU任务分配;
步骤5:在后端解码系统对接收的流媒体文件进行解码处理时实现解码缓冲,弥补延迟抖动影响,并对解码的数据包进行合成,保证数据包顺序正确,使得流媒体数据进行连续输出;
步骤4还包括当GPU内片上硬件解码器的利用率低于设定阈值时,将任务引入另一个转码管道,该管道使用 CPU 解码和编码来为硬件编码器生成额外的工作负载。
在本发明所述的流媒体后端解码方法中,步骤1具体包括:
流媒体文件预处理中流媒体文件编辑是将流媒体文件进行冗余去除、头尾、叠加、马赛克处理编辑。
在本发明所述的流媒体后端解码方法中,步骤2具体包括:
通过后端解码系统的配置文件获取后端解码系统的解码能效因子;将后端解码系统的解码能效因子发送到前端编码系统。
在本发明所述的流媒体后端解码方法中,步骤3具体还包括:
采用RTCP/TCP技术将编码处理后的流媒体文件传输至后端解码系统。
在本发明所述的流媒体后端解码方法中,步骤4具体还包括:
计算至少两个GPU内片上硬件解码器的利用率,筛选出具有最低利用率的GPU并利用筛选出的GPU进行解码处理。
步骤4还包括当GPU内片上硬件解码器的利用率均高于设定阈值时,将任务分配给CPU 进行解码处理。
在本发明所述的流媒体后端解码方法中,步骤4具体还包括:
获取后端解码系统的当前的网络质量;根据后端解码系统的当前的网络质量动态调整网络传输的冗余度,通过调整冗余度,在接收端对数据进行差错检测,如发现差错,由接收方进行纠正。
在本发明所述的流媒体后端解码方法中,步骤4具体还包括:
读入第一帧,将其当做I帧,进行帧内解码,然后进行离散余弦变换和量化处理,然后采用Z形扫描将二维的冗余数据转成一维数据,再进行熵解码;将接下来读入的帧设定为P帧,P帧进行帧间预测,通过帧间预测消除帧与帧在时间上的冗余信息,通过运动估计和运动补偿进行,在对冗余数据块进行离散余弦变换、量化、Z形扫描和熵解码。
在本发明所述的流媒体后端解码方法中,步骤5具体还包括:
读入压缩的数据流,以帧为单位进行熵解码,然后对解码好的数据进行反Z扫描,将一维的冗余数据复现为二维数据块,然后进行反量化和反离散余弦变换,对数据流序列中的第一帧I帧,采用改进帧内预测的方法对其进行解码,并作为后序帧的参考帧;所述改进帧内预测的方法采用改进非线性插值生成预测像素值,,其中、、为与像素位置(x,y)距离分别为i个像素、i+1个像素、i+n-1个像素距离的参考像素值,、、分别为参考像素值、、对应的权重因子;
然后对P帧进行解码,进行熵解码、反Z形扫描、反量化、反离散余弦变化,然后结合参考帧对当前帧进行运动补偿,还原好当前帧的数据,完成后解码P帧的过程。
本发明实施例还提供一种流媒体后端解码装置,其包括:
预处理模块:用于采集流媒体文件,对采集的流媒体文件进行预处理,其中流媒体文件预处理包括根据传输的最大吞吐量对流媒体文件进行转换、流媒体文件编辑,将预处理后的流媒体文件传输到前端编码系统;
编码模块:用于后端解码系统发送解码能效因子到前端编码系统,前端编码系统接受后端解码系统的解码能效因子,根据解码能效因子对预处理后的流媒体文件进行编码压缩,编码处理由文件封装、帧内预测、运动估计、运动补偿、离散余弦变换、量化、块滤波、重排序和熵编码组成;其中解码能效因子包括后端解码系统能够解码的文件格式、解码速率、解码准确率,根据解码能效因子对预处理后的流媒体文件进行编码包括根据后端解码系统能够解码的文件格式、解码速率、解码准确率将流媒体数据适应性地编码;
传输模块:用于将编码处理后的流媒体文件传输至后端解码系统;
解码模块:后端解码系统对编码处理后的流媒体文件进行解码处理,其中,后端解码系统包括CPU以及至少两个GPU;解码处理由熵解码、反量化、反变换、运动补偿、帧内预测和解块滤波组成;为了获得最大的吞吐量,同时采用CPU结合至少两个GPU进行解码处理,同时利用片上解码器单元;并对吞吐量进行实时计算,传输的最大吞吐量T计算如下:,其中P表示丢失事件率,CW表示拥塞窗口的平均峰值,PS表示数据丢失率,RTT表示平均往返时延,PRO表示一个拥塞控制段内超时事件发生的概率,RTO表示一个拥塞控制阶段内的第一个超时时延;根据实时吞吐量与最大吞吐量的差值以及GPU内片上硬件解码器的利用率实时信息,实时调整CPU和至少两个GPU任务分配;
输出模块:在后端解码系统对接收的流媒体文件进行解码处理时实现解码缓冲,弥补延迟抖动影响,并对解码的数据包进行合成,保证数据包顺序正确,使得流媒体数据进行连续输出;
解码模块还包括任务调配模块,当GPU内片上硬件解码器的利用率均高于设定阈值时,将任务分配给CPU 进行解码处理;
传输模块:用于将编码处理后的流媒体文件传输至后端解码系统;
解码模块:用于后端解码系统对编码处理后的流媒体文件进行解码处理,其中,后端解码系统包括至少两个GPU;选择合适的GPU进行解码处理,解码处理由熵解码、反量化、反变换、运动补偿、帧内预测和解块滤波组成;
输出模块:用于在后端解码系统对接收的流媒体文件进行解码处理时实现解码缓冲,弥补延迟抖动影响,并对解码的数据包进行合成,保证数据包顺序正确,使得流媒体数据进行连续输出。
在一些实施例中,解码模块具体还包括:读入压缩的数据流,以帧为单位进行熵解码,然后对解码好的数据进行反Z扫描,将一维的冗余数据复现为二维数据块,然后进行反量化和反离散余弦变换,对数据流序列中的第一帧I帧,采用帧内预测的方法对其进行解码,并作为后序帧的参考帧;所述帧内预测的方法采用非线性插值生成预测像素值,,其中、、为与像素位置(x,y)距离分别为i个像素、i+1个像素、i+n-1个像素距离的参考像素值,、、分别为参考像素值、、对应的权重因子;
然后对P帧进行解码,进行熵解码、反Z形扫描、反量化、反离散余弦变化,然后结合参考帧对当前帧进行运动补偿,还原好当前帧的数据,完成后解码P帧的过程。
本发明实施例还提供一种存储介质,其内存储有处理器可执行指令,所述指令由一个或一个以上处理器加载,以执行如上述流媒体后端解码方法。
本发明的流媒体后端解码方法,为了获得最大的吞吐量,同时采用CPU结合至少两个GPU进行解码处理,同时利用片上解码器单元;并对吞吐量进行实时计算,传输的最大吞吐量T计算如下:,其中P表示丢失事件率,CW表示拥塞窗口的平均峰值,PS表示数据丢失率,RTT表示平均往返时延,PRO表示一个拥塞控制段内超时事件发生的概率,RTO表示一个拥塞控制阶段内的第一个超时时延;根据实时吞吐量与最大吞吐量的差值以及GPU内片上硬件解码器的利用率实时信息,实时调整CPU和至少两个GPU任务分配;传输时采用合适的吞吐量模型,前端编码系统通过根据后端解码系统的解码能效因子对预处理后的流媒体文件进行编码压缩,有效地根据后端解码系统能够解码的文件格式、解码速率、解码准确率对流媒体数据进行编码;从多个选择合适的CPU对编码后的流媒体数据进行解码,并且根据后端解码系统的当前的网络质量动态调整网络传输的冗余度,有效地提高了解码的准确性和速率,满足用户体验,降低了解码成本和资源,通过上述计算大大提升了编解码传输效率,大大增强了解码功效。
附图说明
图1是本发明实施例方案实施流程 。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,图1为本发明方法一实施例流程示意图。本发明的流媒体后端解码方法可以包括:
步骤1、采集流媒体文件,对采集的流媒体文件进行预处理,其中流媒体文件预处理包括根据传输的最大吞吐量对流媒体文件进行转换、流媒体文件编辑,将预处理后的流媒体文件传输到前端编码系统。
流媒体文件预处理中流媒体文件编辑是将流媒体文件进行冗余去除、头尾、叠加、马赛克处理编辑。
步骤2、后端解码系统发送解码能效因子到前端编码系统,前端编码系统接受后端解码系统的解码能效因子,根据解码能效因子对预处理后的流媒体文件进行编码压缩,编码处理由文件封装、帧内预测、运动估计、运动补偿、离散余弦变换、量化、块滤波、重排序和熵编码组成;其中解码能效因子包括后端解码系统能够解码的文件格式、解码速率、解码准确率,根据解码能效因子对预处理后的流媒体文件进行编码包括根据后端解码系统能够解码的文件格式、解码速率、解码准确率将流媒体数据进行适应性地编码。
通过后端解码系统的配置文件获取后端解码系统的解码能效因子;将后端解码系统的解码能效因子发送到前端编码系统。
步骤3、将编码处理后的流媒体文件传输至后端解码系统。
采用RTCP/TCP技术将编码处理后的流媒体文件传输至后端解码系统。
步骤4、后端解码系统对编码处理后的流媒体文件进行解码处理,其中,后端解码系统包括至少两个GPU;选择合适的GPU进行解码处理,解码处理由熵解码、反量化、反变换、运动补偿、帧内预测和解块滤波组成。后端解码系统对编码处理后的流媒体文件进行解码处理,其中,后端解码系统包括CPU以及至少两个GPU;解码处理由熵解码、反量化、反变换、运动补偿、帧内预测和解块滤波组成;为了获得最大的吞吐量,同时采用CPU结合至少两个GPU进行解码处理,同时利用片上解码器单元;并对吞吐量进行实时计算,传输的最大吞吐量T计算如下:,其中P表示丢失事件率,CW表示拥塞窗口的平均峰值,PS表示数据丢失率,RTT表示平均往返时延,PRO表示一个拥塞控制段内超时事件发生的概率,RTO表示一个拥塞控制阶段内的第一个超时时延;根据实时吞吐量与最大吞吐量的差值以及GPU内片上硬件解码器的利用率实时信息,实时调整CPU和至少两个GPU任务分配;计算至少两个GPU内片上硬件解码器的利用率,筛选出具有最低利用率的GPU并利用筛选出的GPU进行解码处理。
获取后端解码系统的当前的网络质量;根据后端解码系统的当前的网络质量动态调整网络传输的冗余度。解码端的当前的网络质量是通过单位时间内网络数据传输丢包率来衡量,也就是单位时间内网络传输丢失的包总数除于总的接收包数量。然后根据解码端的当前的解码端的当前的网络质量动态调整网络传输的冗余度,以此在网络质量不高的情况下,通过调整冗余度,在接收端对数据进行差错检测,如发现差错,由接收方进行纠正。
在一些实施例中,通过传输系统进行流媒体实时互动采用的传输层方案有TCP(如:RTMP)和UDP(如:RTP)两种。例如,在采用的流媒体传输协议为UDP(一般上层应用层协议为RTP,以提供序号和音视频同步的服务)时,UDP性能的提高是以不能保障数据完整性为代价的,它不能对所传数据提供担保,常见的问题有包乱序、包丢失、包重复。其中包丢失的原因有如下及方面:①当路由器和网关发生拥塞时,某些包可能被丢弃,发生这种情况一般是由于网络中传输的数据包大于网络信道的承载能力。②分组数据在传送时有生存时间限制以避免路由中死循环的出现,网络状况恶劣时,分组可能超时丢失。③接收端工作超载运行时可能因调度困难而不能及时处理网口数据。
读入第一帧,将其当做I帧,进行帧内编码,然后进行离散余弦变换和量化处理,然后采用Z形扫描将二维的冗余数据转成一维数据,再进行熵编码;将接下来读入的帧设定为P帧,P帧进行帧间预测,通过帧间预测消除帧与帧在时间上的冗余信息,通过运动估计和运动补偿进行,在对冗余数据块进行离散余弦变换、量化、Z形扫描和熵编码。
步骤5:在后端解码系统对接收的流媒体文件进行解码处理时实现解码缓冲,弥补延迟抖动影响,并对解码的数据包进行合成,保证数据包顺序正确,使得流媒体数据进行连续输出。
读入压缩的数据流,以帧为单位进行熵解码,然后对解码好的数据进行反Z扫描,将一维的冗余数据复现为二维数据块,然后进行反量化和反离散余弦变换,对数据流序列中的第一帧I帧,采用帧内预测的方法对其进行解码,并作为后序帧的参考帧;所述帧内预测的方法采用非线性插值生成预测像素值,,其中、、为与像素位置(x,y)距离分别为i个像素、i+1个像素、i+n-1个像素距离的参考像素值,、、分别为参考像素值、、对应的权重因子;然后对P帧进行解码,进行熵解码、反Z形扫描、反量化、反离散余弦变化,然后结合参考帧对当前帧进行运动补偿,还原好当前帧的数据,完成后解码P帧的过程;对P帧进行解码,进行熵解码、反Z形扫描、反量化、反离散余弦变化,然后结合参考帧对当前帧进行运动补偿,这样,就可以还原好当前帧的数据,完成后解码P帧的过程。
解码缓冲处理还包括以下步骤:数据流储存识别;采用环形链表结构对数据流进行处理,并对数据流进行自动识别是否播放;数据流删除;将播放后的数据流自动进行删除清理,实现重新利用高速缓存空间来缓存后序尚未播放的内容。
此外,本发明还提供一种流媒体后端解码装置。
其中,本发采集流媒体文件,对采集的流媒体文件进行预处理,其中流媒体文件预处理包括根据传输的最大吞吐量对流媒体文件进行转换、流媒体文件编辑,将预处理后的流媒体文件传输到前端编码系统;
编码模块:用于后端解码系统发送解码能效因子到前端编码系统,前端编码系统接受后端解码系统的解码能效因子,根据解码能效因子对预处理后的流媒体文件进行编码压缩,编码处理由文件封装、帧内预测、运动估计、运动补偿、离散余弦变换、量化、块滤波、重排序和熵编码组成;其中解码能效因子包括后端解码系统能够解码的文件格式、解码速率、解码准确率,根据解码能效因子对预处理后的流媒体文件进行编码包括根据后端解码系统能够解码的文件格式、解码速率、解码准确率将流媒体数据进行适应性地编码;
传输模块:用于将编码处理后的流媒体文件传输至后端解码系统;
解码模块:用于后端解码系统对编码处理后的流媒体文件进行解码处理,其中,后端解码系统包括至少两个GPU;选择合适的GPU进行解码处理,解码处理由熵解码、反量化、反变换、运动补偿、帧内预测和解块滤波组成;后端解码系统对编码处理后的流媒体文件进行解码处理,其中,后端解码系统包括CPU以及至少两个GPU;解码处理由熵解码、反量化、反变换、运动补偿、帧内预测和解块滤波组成;为了获得最大的吞吐量,同时采用CPU结合至少两个GPU进行解码处理,同时利用片上解码器单元;并对吞吐量进行实时计算,传输的最大吞吐量T计算如下:,其中P表示丢失事件率,CW表示拥塞窗口的平均峰值,PS表示数据丢失率,RTT表示平均往返时延,PRO表示一个拥塞控制段内超时事件发生的概率,RTO表示一个拥塞控制阶段内的第一个超时时延;根据实时吞吐量与最大吞吐量的差值以及GPU内片上硬件解码器的利用率实时信息,实时调整CPU和至少两个GPU任务分配;
输出模块:用于在后端解码系统对接收的流媒体文件进行解码处理时实现解码缓冲,弥补延迟抖动影响,并对解码的数据包进行合成,保证数据包顺序正确,使得流媒体数据进行连续输出。
根据最大吞吐量T得到解码能效因子包括通过计算出的最大吞吐量设置不同吞吐量区间段,不同的区间段对应的解码能效因子不同,相同区间段解码能效因子相同。
在一些实施例中,解码模块具体还包括:读入压缩的数据流,以帧为单位进行熵解码,然后对解码好的数据进行反Z扫描,将一维的冗余数据复现为二维数据块,然后进行反量化和反离散余弦变换,对数据流序列中的第一帧I帧,采用帧内预测的方法对其进行解码,并作为后序帧的参考帧;所述帧内预测的方法采用非线性插值生成预测像素值,,其中、、为与像素位置(x,y)距离分别为i个像素、i+1个像素、i+n-1个像素距离的参考像素值,、、分别为参考像素值、、对应的权重因子;
然后对P帧进行解码,进行熵解码、反Z形扫描、反量化、反离散余弦变化,然后结合参考帧对当前帧进行运动补偿,还原好当前帧的数据,完成后解码P帧的过程。
本发明的流媒体后端解码装置的具体工作原理与上述的流媒体后端解码方法的具体实施例中的描述相同或相似,具体请参见上述流媒体后端解码方法的具体实施例的相关描述。
本发明的流媒体后端解码方法,传输时采用合适的吞吐量模型,前端编码系统通过根据后端解码系统的解码能效因子对预处理后的流媒体文件进行编码压缩,有效地根据后端解码系统能够解码的文件格式、解码速率、解码准确率对流媒体数据进行编码;从多个选择合适的CPU对编码后的流媒体数据进行解码,并且根据后端解码系统的当前的网络质量动态调整网络传输的冗余度,有效地提高了解码的准确性和速率,满足用户体验,降低了解码成本和资源。本发明的流媒体后端解码方法,为了获得最大的吞吐量,同时采用CPU结合至少两个GPU进行解码处理,同时利用片上解码器单元;并对吞吐量进行实时计算,传输的最大吞吐量T计算如下:,其中P表示丢失事件率,CW表示拥塞窗口的平均峰值,PS表示数据丢失率,RTT表示平均往返时延,PRO表示一个拥塞控制段内超时事件发生的概率,RTO表示一个拥塞控制阶段内的第一个超时时延;根据实时吞吐量与最大吞吐量的差值以及GPU内片上硬件解码器的利用率实时信息,实时调整CPU和至少两个GPU任务分配;传输时采用合适的吞吐量模型,前端编码系统通过根据后端解码系统的解码能效因子对预处理后的流媒体文件进行编码压缩,有效地根据后端解码系统能够解码的文件格式、解码速率、解码准确率对流媒体数据进行编码;从多个选择合适的CPU对编码后的流媒体数据进行解码,并且根据后端解码系统的当前的网络质量动态调整网络传输的冗余度,有效地提高了解码的准确性和速率,满足用户体验,降低了解码成本和资源,通过上述计算大大提升了编解码传输效率,大大增强了解码功效。
同时解码过程中采用改进帧内预测的方法对其进行解码,并作为后序帧的参考帧;所述改进帧内预测的方法采用改进非线性插值生成预测像素值,,其中、、为与像素位置(x,y)距离分别为i个像素、i+1个像素、i+n-1个像素距离的参考像素值,、、分别为参考像素值、、对应的权重因子;大大增强了解码准确率。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种流媒体后端解码方法,其特征在于,包括:
步骤1、采集流媒体文件,对采集的流媒体文件进行预处理,将预处理后的流媒体文件传输到前端编码系统,其中流媒体文件预处理包括根据传输的最大吞吐量对流媒体文件进行转换以及流媒体文件编辑;
步骤2、后端解码系统发送解码能效因子到前端编码系统,前端编码系统接收后端解码系统的解码能效因子,根据解码能效因子对预处理后的流媒体文件进行编码压缩;编码处理由文件封装、帧内预测、运动估计、运动补偿、离散余弦变换、量化、块滤波、重排序和熵编码组成;其中解码能效因子包括后端解码系统能够解码的文件格式、解码速率和解码准确率,根据解码能效因子对预处理后的流媒体文件进行编码包括根据后端解码系统能够解码的文件格式、解码速率和解码准确率将流媒体数据进行适应性地编码;
步骤3、将编码处理后的流媒体文件传输至后端解码系统;
步骤4、后端解码系统对编码处理后的流媒体文件进行解码处理,其中,后端解码系统包括CPU以及至少两个GPU;解码处理由熵解码、反量化、反变换、运动补偿、帧内预测和解块滤波组成;为了获得最大的吞吐量,同时采用CPU结合至少两个GPU进行解码处理,同时利用片上解码器单元;并对吞吐量进行实时计算,传输的最大吞吐量T计算如下:,其中P表示丢失事件率,CW表示拥塞窗口的平均峰值,PS表示数据丢失率,RTT表示平均往返时延,PRO表示一个拥塞控制段内超时事件发生的概率,RTO表示一个拥塞控制阶段内的第一个超时时延;根据实时吞吐量与最大吞吐量的差值以及GPU内片上硬件解码器的利用率实时信息,实时调整CPU和至少两个GPU任务分配;
步骤5:在后端解码系统对接收的流媒体文件进行解码处理时实现解码缓冲,弥补延迟抖动影响,并对解码的数据包进行合成,保证数据包顺序正确,使得流媒体数据进行连续输出。
2.如权利要求1所述的流媒体后端解码方法,其特征在于,步骤1具体包括:
流媒体文件预处理中流媒体文件编辑是将流媒体文件进行冗余去除、头尾、叠加和马赛克处理编辑。
3.如权利要求2所述的流媒体后端解码方法,其特征在于,步骤2具体包括:
通过后端解码系统的配置文件获取后端解码系统的解码能效因子;将后端解码系统的解码能效因子发送到前端编码系统,解码能效因子根据传输的最大吞吐量设置。
4.如权利要求3所述的流媒体后端解码方法,其特征在于,步骤4具体还包括:
计算至少两个GPU内片上硬件解码器的利用率,筛选出具有最低利用率的GPU并利用筛选出的GPU进行解码处理;
步骤4还包括当GPU内片上硬件解码器的利用率均高于设定阈值时,将任务分配给CPU进行解码处理。
5.如权利要求4所述的流媒体后端解码方法,其特征在于,步骤4具体还包括:
获取后端解码系统的当前的网络质量;根据后端解码系统的当前的网络质量动态调整网络传输的冗余度,通过调整冗余度,在接收端对数据进行差错检测,如发现差错,由接收方进行纠正。
6.如权利要求5所述的流媒体后端解码方法,步骤4具体还包括:
读入第一帧,将其当做I帧,进行帧内解码,然后进行离散余弦变换和量化处理,然后采用Z形扫描将二维的冗余数据转成一维数据,再进行熵解码;将接下来读入的帧设定为P帧,P帧进行帧间预测,通过帧间预测消除帧与帧在时间上的冗余信息,通过运动估计和运动补偿进行,再 对冗余数据块进行离散余弦变换、量化、Z形扫描和熵解码。
7.如权利要求6所述的流媒体后端解码方法,其特征在于,步骤5具体还包括:
读入压缩的数据流,以帧为单位进行熵解码,然后对解码好的数据进行反Z扫描,将一维的冗余数据复现为二维数据块,然后进行反量化和反离散余弦变换,对数据流序列中的第一帧I帧,采用帧内预测的方法对其进行解码,并作为后续 帧的参考帧;所述帧内预测的方法采用非线性插值生成预测像素值,,其中、、为与像素位置(x,y)距离分别为i个像素、i+1个像素、i+n-1个像素距离的参考像素值,、、分别为参考像素值、、对应的权重因子;
然后对P帧进行解码,进行熵解码、反Z形扫描、反量化、反离散余弦变化,然后结合参考帧对当前帧进行运动补偿,还原好当前帧的数据,完成后解码P帧的过程。
8.一种流媒体后端解码装置,其特征在于,包括:
预处理模块:用于采集流媒体文件,对采集的流媒体文件进行预处理,其中流媒体文件预处理包括根据传输的最大吞吐量对流媒体文件进行转换、流媒体文件编辑,将预处理后的流媒体文件传输到前端编码系统;
编码模块:用于后端解码系统发送解码能效因子到前端编码系统,前端编码系统接收后端解码系统的解码能效因子,根据解码能效因子对预处理后的流媒体文件进行编码压缩,编码处理由文件封装、帧内预测、运动估计、运动补偿、离散余弦变换、量化、块滤波、重排序和熵编码组成;其中解码能效因子包括后端解码系统能够解码的文件格式、解码速率、解码准确率,根据解码能效因子对预处理后的流媒体文件进行编码包括根据后端解码系统能够解码的文件格式、解码速率、解码准确率将流媒体数据适应性地编码;
传输模块:用于将编码处理后的流媒体文件传输至后端解码系统;
解码模块:后端解码系统对编码处理后的流媒体文件进行解码处理,其中,后端解码系统包括CPU以及至少两个GPU;解码处理由熵解码、反量化、反变换、运动补偿、帧内预测和解块滤波组成;为了获得最大的吞吐量,同时采用CPU结合至少两个GPU进行解码处理,同时利用片上解码器单元;并对吞吐量进行实时计算,传输的最大吞吐量T计算如下:,其中P表示丢失事件率,CW表示拥塞窗口的平均峰值,PS表示数据丢失率,RTT表示平均往返时延,PRO表示一个拥塞控制段内超时事件发生的概率,RTO表示一个拥塞控制阶段内的第一个超时时延;根据实时吞吐量与最大吞吐量的差值以及GPU内片上硬件解码器的利用率实时信息,实时调整CPU和至少两个GPU任务分配;
输出模块:在后端解码系统对接收的流媒体文件进行解码处理时实现解码缓冲,弥补延迟抖动影响,并对解码的数据包进行合成,保证数据包顺序正确,使得流媒体数据进行连续输出。
9.如权利要求8所述的一种流媒体后端解码装置,解码模块具体还包括:
读入压缩的数据流,以帧为单位进行熵解码,然后对解码好的数据进行反Z扫描,将一维的冗余数据复现为二维数据块,然后进行反量化和反离散余弦变换,对数据流序列中的第一帧I帧,采用帧内预测的方法对其进行解码,并作为后续 帧的参考帧;所述帧内预测的方法采用非线性插值生成预测像素值,,其中、、为与像素位置(x,y)距离分别为i个像素、i+1个像素、i+n-1个像素距离的参考像素值,、、分别为参考像素值、、对应的权重因子;
然后对P帧进行解码,进行熵解码、反Z形扫描、反量化、反离散余弦变化,然后结合参考帧对当前帧进行运动补偿,还原好当前帧的数据,完成后解码P帧的过程。
10.一种存储介质,其内存储有处理器可执行指令,所述指令由一个或一个以上处理器加载,以执行如权利要求1至7中任一项所述流媒体后端解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211326844.6A CN115474063B (zh) | 2022-10-27 | 2022-10-27 | 一种流媒体后端解码方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211326844.6A CN115474063B (zh) | 2022-10-27 | 2022-10-27 | 一种流媒体后端解码方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115474063A CN115474063A (zh) | 2022-12-13 |
CN115474063B true CN115474063B (zh) | 2023-01-10 |
Family
ID=84337728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211326844.6A Active CN115474063B (zh) | 2022-10-27 | 2022-10-27 | 一种流媒体后端解码方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115474063B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116366868B (zh) * | 2023-05-31 | 2023-08-25 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种并发视频包过滤方法、系统及储存介质 |
CN117527830B (zh) * | 2023-11-30 | 2024-04-30 | 上海烜翊科技有限公司 | 嵌入式系统中多个子系统间的数据流同步通信方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101873498B (zh) * | 2010-06-22 | 2013-05-08 | 深圳市融创天下科技股份有限公司 | 一种视频解码方法、装置及视音频播放系统 |
US9942580B2 (en) * | 2011-11-18 | 2018-04-10 | At&T Intellecutal Property I, L.P. | System and method for automatically selecting encoding/decoding for streaming media |
CN103354618B (zh) * | 2013-06-24 | 2015-04-15 | 西安交通大学 | 一种基于hls的多场景流媒体自适应直播方法 |
CN105306969A (zh) * | 2015-09-02 | 2016-02-03 | 越亮传奇科技股份有限公司 | 一种流媒体自适应处理系统及方法 |
US11711518B2 (en) * | 2020-09-17 | 2023-07-25 | Lemon Inc. | Decoding capability information storage in video coding |
CN114666831A (zh) * | 2022-03-25 | 2022-06-24 | 南通先进通信技术研究院有限公司 | 一种基于流编码和带宽估计驱动的分组传输方法及其系统 |
-
2022
- 2022-10-27 CN CN202211326844.6A patent/CN115474063B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115474063A (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115474063B (zh) | 一种流媒体后端解码方法、装置及存储介质 | |
US10321138B2 (en) | Adaptive video processing of an interactive environment | |
US6680976B1 (en) | Robust, reliable compression and packetization scheme for transmitting video | |
US8055974B2 (en) | Content distribution method, encoding method, reception/reproduction method and apparatus, and program | |
US20070009039A1 (en) | Video encoding and decoding methods and apparatuses | |
US8243117B2 (en) | Processing aspects of a video scene | |
US10506245B2 (en) | Video data processing using a ring buffer | |
US20020054635A1 (en) | Image transmitting method and apparatus and image receiving method and apparatus | |
US20190356911A1 (en) | Region-based processing of predicted pixels | |
JP4604851B2 (ja) | 送信装置、受信装置、送信処理方法、受信処理方法、それらのプログラム | |
US20140321556A1 (en) | Reducing amount of data in video encoding | |
US10506283B2 (en) | Video decoding and rendering using combined jitter and frame buffer | |
CN106131565B (zh) | 使用联合抖动-帧缓冲区的视频解码及渲染 | |
US20050117643A1 (en) | Moving image transferring system, moving image encoding apparatus, moving image decoding apparatus, and moving image transferring program | |
US7218842B1 (en) | Efficient methods of performing motion compensation based decoding and recoding of compressed video bitstreams | |
EP1815692A2 (en) | Method of determining a corruption indication of a sequence of encoded data frames | |
US20140289369A1 (en) | Cloud-based system for flash content streaming | |
US11778219B2 (en) | Method and system for live video streaming with integrated encoding and transmission semantics | |
EP4369709A1 (en) | Methods and systems for quality of experience-centric adaptive bitrate encoding for live video streaming | |
CN111954019A (zh) | 一种实现低时延超高清直播的流媒体编解码方法和系统 | |
JP2006345166A (ja) | 画像圧縮処理装置 | |
Liu et al. | The Simulation Study of Transmission of Video Streams in Wireless Networks Based on PSNR | |
JP2002016927A (ja) | 動画像符号化方法および動画像伝送方法 | |
JPH07203461A (ja) | 画像復号方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |