端到端的视频编码方法及码率控制算法

文章目录

基于卷积神经网络的的端到端的视频编码方法

河北师范大学

论文开题时间:2021年4月22日 发布时间: 2022年5月25日

现如今,传统视频压缩标准如H.264和H.265采用了混合编码框架。包括视频帧内预测,视频帧间预测,变换,量化,熵编码等编码模块。

一方面,传统视频压缩标准采用了混合编码框架,多个模块会带来较高的复杂度,现在利用神经网络模型有效的实现模块功能,利用其神经网络的非线性表示能力。另一方面,由于率失真优化的权衡,这个过程不可避免地会产生压缩效应,如块效应和振铃效应,大多数基于深度学习考虑使用联合优化的方式,将视频压缩整个框架以一个庞大的神经网络模型来实现。研究表明深度学习可以用于视频压缩,基于深度学习的视频压缩方案主要在这两方面上发展。

现如今,主要是以深度学习为主体,构建运动估计网络,运动向量编码及解码网络(主要通过自编码器来实现),运动补偿网络和残差网络,然后将这几个神经网络模型结合起来进行深层次的学习,并设计损失函数联合优化.将每个网络构建之后采取联合优化的方式进行训练。

基于深度学习的视频压缩方案,其主要方向有两个:一个方向是对传统视频压缩某个模块通过神经网络结构实现进行视频压缩,它试图基于学习的解决方案改进传统混合编码框架中的单个编码工具。另一个方向是端到端神经网络视频编码,将视频帧传入神经网络模型学习得到重构帧,以端到端学习的方式紧凑地表示输入视频。

不过基于深度学习的视频压缩算法还处于研究初期,从最开始是视频编码中某个模块设计有效的卷积神经网络来实现,到后来2018年出现了端到端优化的视频压缩网络模型。

自编码器

在深度学习中,自动编码器是一种无监督的CNN 结构,自动编码器学习到输入值的隐含特征,这称为编码(coding) ,并且将学习到的特征通过一种CNN结构重构出原始数据,这个过程称作解码(decoding)

自编码器存在三个特点,首先,自编码器是数据信息相关的 ,所以自动编码器只能压缩与训练数据相类似的数据或者样本。比如,使用人脸训练出来的自动编码器在压缩别的图片,比如树木时性能很差,因为它学习到的特征是与人脸相关的。其次,自动编码器不是无损的 ,解释为重构后的数据和原始的输入对比是退化的,比如,MP3,JPEG等压缩算法都是有损的,和无损压缩相比不一样。最后,自动编码器是深度神经网络,通过数据样本中学习特征,所以可看出容易对指定的输入数据训练得到特定的自编码器,而不需要完成任何新工作。

基于端到端学习的图像编码研究及进展

录用日期:2020-04-17

端到端学习省去了传统方法中需要手动设计、联合优化多个模块的复杂步骤,而是将输入通过一个多层叠加的神经网络,学习输入与输出的映射关系,并以此得到对应的输出。端到端学习的重要特点之一是让"数据说话"。

传统的图像编码器可分为变换、量化和熵编码三个独立模块,而端到端学习则是将三个模块联合进行整体优化。

变换

图像变换编码将空域图像像素转换为变换域系数,实现能量聚集 的紧致表达,以达到压缩的目的。大多数压缩方法都使用正交线性变换来降低数据的相关性。国 际图像编码标准 JPEG 和JPEG2000分别使用的离散余弦变换和小波变换也均为线性变换。

但是正交线性变换中线性滤波器响应的联合统计量呈现了很强的高阶依赖性,为解决此问题可联合局部非线性进行增益控制。近几年,端到端学习将非线性变换融 入图像压缩框架中。

量化

由于目标失真函数主要使用梯度下降法 优化端到端编码中的率失真,反向传播中要求量化函数全局可导,所以基于端到端学习的图像压缩研究 一直围绕着解决量化的不可导问题(量化不连续,其导数在任何地方都为零或无穷大)而展开。

为解决量化的不可导问题,最常见的方法是随机近似和用光滑导数近似的round方法。如今矢量量化相较于标量量化成为更具竞争力的量化方法,提出的软矢量和格型矢量的量化方法可在保证重建质量的同时又使模型具有可微性。

熵编码

就现有的国际图像编码标准而言 ,除使用Huffman编码的JPEG以外,其余的国际图像标准都选择使用算术编码。

面向视频会议场景的 H.266/VVC 码率控制算法研究

重庆邮电大学

完成日期 2022 年 5 月 25 日

码率控制技术既能产生匹配传输带宽的码流,还可通过比特分配调节保证主要编码区域的质量,是视频通信系统不可或缺的重要模块。由于 VVC 码率控制算法没有充分考虑编码帧的内容特性和最大编码单元(Largest Coding Unit, LCU)的时空域复杂度,导致比特分配存在误差,码率控制算法性能有进一步优化的空间。

在视频编码过程中,如果采用固定编码参数值对视频序列进行编码,那么编码器输出的码流会随着每一帧图像包含的信息量以及内容复杂度的不同而产生波动。如果输出码流过大 ,可能会超过发送端缓存区的容量,导致视频传输时延过高甚至丢帧的现象发生;如果输出码流的码率过小,则网络通信信道得不到充分的利用,浪费传输资源,解码端所得到的视频质量较差,在解码视频中会出现图像模糊化以及方块效应等现象。

因此有必要对视频编码过程中的码率进行控制,使得编码后码流的比特数与传输信道的带宽上限匹配,同时也要兼顾传输视频的质量,使编码后的图像失真尽可能的小。

为了解决以上问题,研究者们在视频编码框架中引入了码率控制 技术环节。码率控制技术的关键点是通过目标比特分配的方式来获取量化参数 (Quantization Parameter, QP)的值,进而调节输出码率的大小 ,达到控制码率的目的。实际上,量化是编码失真的主要原因,而量化参数 QP 值大小的设置影响着编码器对图像压缩的程度和输出码率的大小。QP 值越小,图像中更多的细节会在重建帧中被保留下来,而代价是输出码率的增加。QP 值越大则恰好相反,图像中的细节部分会丢失,而输出码率降低。因此,码率控制中 QP 值和输出比特率具有反比例的关系,对于越复杂的视频图像,这种反比例的关系表现得就更明显。码率控制技术使得视频在编码过程中能够自适应地调节编码参数值,在保证编码质量的前提下,尽最大可能地提高通信信道的利用率。码率控制在视频编码以及视频通信应用中具有重要意义。

视频编码对视频序列进行预测、变换、量化、熵编码及环路滤波操作之后,去掉了视频的时间冗余和空间冗余,将视频压缩成码流的形式,达到了视频压缩的目的。然而在实际的视频通信以及网络传输过程中,由于传输信道带宽的限制以及视频内容随着传输方式不同而产生的码率波动的情况,不得不考虑通过自适应地调节视频编码参数的方法来对传输码率进行有效控制,使视频编码后的码流能够在有限的信道带宽上传输,重建出良好的视频质量。

码率控制的主要目的是在编码输出码流与量化参数之间寻找平衡点,使得视频编码的率失真性能[41]达到最佳,从而获得质量相对稳定的视频序列。

  1. 根据输入编码单元的内容、纹理复杂度、传输信道带宽、缓冲区状态为其分配合适的目标比特数
  • 对于纹理复杂度比较高的图像或者最大编码单元块,码率控制会分配比较多的编码比特值;而对于图像或最大编码单元中比较平坦的区域,码率控制会分配较少的编码比特值,提高编码的率失真性能,在消耗合理的编码比特值情况下,得到质量相对较高的重建视频帧
  1. 编码单元通过码率和量化参数之间的模型关系获得对应的量化参数值

由于实际编码消耗比特与目标比特分配之间存在着差异,因此设置缓冲器使得码流能够更平稳地在信道中传输,缓冲器可以被看作一个先入先出的队列装置,以平稳的速率将码流传输到信道中

基于强化学习的视频码率自适应决策研究

北京交通大学 发布时间2022年6月

自适应流媒体传输技术

流媒体是指包含视频、音频数据的一种时基媒体,采用流式传输技术来向客户端传输音视频数据。

在客户端的播放过程中,会先下载一部分数据填充在缓冲区内,并在播放过程中不断下载视频数据到缓冲区内,实现边播放边下载的效果,流媒体技术也凭借这一优势成为主流的多媒体传输技术。

传统的流媒体技术在数据的传输过程中不会考虑网络环境的变化,也不会动态地调整流媒体传输的参数,所以当网络状况较差的时候会发生卡顿现象。而当网络状态较好的时候,传统的流媒体技术也无法很好地利用网络带宽。

自适应流媒体传输过程中,客户端视频播放器会根据当前播放环境如网络吞吐量、缓冲区占用等条件来尝试估计当前可用带宽,并使用码率自适应算法(Adaptive Bitrate,ABR)为视频块选择最佳的码率级别。

因此,码率自适应算法需要在带宽有限的情况下在提供较高的视频质量,减少播放过程中的卡顿时间以及实现较高的视频播放平滑度这三者间取得平衡,以此达到提高用户体验质量的目标。

码率自适应算法是自适应流媒体传输技术的关键,可以动态地为视频块选择合适的码率级别,有效提高用户的观看体验质量。

目前广泛应用于视频点播平台的码率自适应算法忽略了视频语义信息 以及用户的主观感受

目前主流的应用于视频点播场景下的码率自适应算法主要有基于启发式规则和基于强化学习两大类。

传统的基于启发式规则的码率自适应算法主要考虑吞吐量或缓冲区占用 这两个因素来选择码率。但是这一类方法在实际运用中需要对参数做出大量调整 ,难以泛化 到不同的网络条件下。而基于强化学习的码率自适应算法不用依赖于对环境的预先假设 ,通过观察网络带宽的变化和奖励经验的涨幅变化 ,做出在当前环境下最好的码率决策,相较于基于启发式的码率自适应算法,在性能和实用性上有较高的提升。然而上述提出的方法都将视频内容视为公共数据,不考虑视频包含的语义信息

实际上,用户的观看体验是主观的,会受到视频语义信息和自身兴趣偏好的影响。

实时直播流媒体系统中实现自适应视频传输面临几项巨大的挑战:

(1) 虽然可以通过将视频数据分割成更小的块来减少编码和传输延迟,但有限的资源使得服务器只能为转换编码和存储提供有限的码率级别。因此,码率自适应算法不能总是找到一个合适的码率来实现更精准的码率控制。

(2) 与视频点播场景不同,直播流媒体应用程序实时生成视频,更具动态性。吞吐量预测和码率决策也更具挑战性,因为网络吞吐量估计和码率决策必须在视频块准备好后的一段时间间隔后做出。

(3) 直播流媒体需要在低延迟约束下提供高质量的 QoE。当播放器缓冲区足够补偿网络波动时,该服务可以为视频点播平台提供更好的 QoE,但在直播视频流场景下,会显著增加直播视频服务的延迟。

目前,直播平台在不考虑网络和传输条件的情况下使用静态默认码率。这对用户来说是不方便的,因为当视频播放出现卡顿时,他们需要手动降低视频码率;而当传输条件改善时,又必须手动提高视频码率。为了提高实时直播场景下用户的 QoE,需要一种能够根据网络条件和用户设备信息自适应地管理视频传输的码率决策方案,以便为用户提供更高质量的实时视频流。

在视频点播和实时直播场景下,分别实现了基于用户偏好的码率自适应算法基于播放速率和跳帧控制的连续时延和码率控制算法

研究背景

在 1.2.2 节中提到的大部分码率自适应算法都已经广泛应用到各类视频点播平台中,但是在视频点播场景下,大部分码率自适应算法对于 QoE (观看体验质量Quality of Experience)指标的设定都是基于视频传输系统的测量性能参数,如视频平均码率、卡顿时间及视频码率变换等,而忽视了用户的主观感受。事实上,受视频语义和用户偏好的影响,用户对于视频的不同内容有不同程度的偏好。因此,与其它对待视频每个部分的语义不可知的方法相比,以更高的质量交付用户偏好的视频内容可以提高用户的感知视频质量。所以本课题在视频点播这一场景下将更关注用户的主观感受,将其纳入到 QoE 度量指标中,并设计一个考虑用户偏好感知的码率自适应算法来优化视频码率决策过程。

其次,在实时直播流媒体传输过程中,码率自适应算法面临着更大的挑战,不仅需要进行码率控制,同时也需要进行时延控制 ,而且在实时的直播场景下可用于码率决策的信息较少。通过连续的时延控制参数来调整客户端播放速率,根据网络情况适当地加快或降低播放速度,从而减少直播延时或卡顿现象的出现,并且可以通过跳帧机制来防止时延过大。目前基于强化学习的码率自适应算法大多通过 DQN 算法[34]和 A3C 算法[35]设计离散的码率控制策略,没有考虑到连续的时延控制问题。尽管这些算法可以通过将连续时延控制的参数离散化,来解决离散的码率控制和连续延迟控制问题,但是在这一过程中,对于时延控制参数离散化的粒度是很难把握的。

针对以上所描述的问题,本文将从两个方面依次入手,将深度强化学习算法的智能性和与码率自适应算法相结合,设计实现分别适用于视频点播和实时直播场景下的码率自适应算法。具体研究内容如下:

(1) 设计基于用户偏好感知的码率自适应算法 UPARA(User-Preference-AwareRate Adaptive)。在视频点播场景下,关注视频内容的语义信息及用户的主观感受,分析用户对不同视频内容的偏好程度。针对视频语义及用户偏好分析,本文基于深度学习网络模型进行场景识别,从而实现对视频的语义分析。同时根据用户观看历史,得到不同类型场景下用户的偏好程度。在此基础上,使用马尔可夫决策过程(Markov Decision Process,MDP)对码率自适应决策过程进行建模,构建深度神经网络,综合考虑用户对视频内容的偏好程度、网络吞吐量以及缓冲区占用等因素,动态学习最优视频传输策略,为视频块分配合适的码率级别并最大化总体 QoE。

(2) 设计基于播放速率和跳帧控制的连续时延和码率控制算法 PRFDCLRC(Playback Rate and Frame Dropping based Continua Latency and Rate Control)。在实时直播场景下,通过连续的时延控制参数来调整播放速度,减少直播时延和视频卡顿现象的出现,并设计跳帧下载控制策略,判断是否需要进行跳帧,来防止直播时延过大。同时引入深度强化学习的 DDPG 算法,设计综合考虑视频质量、端到端延时、缓冲区占用的码率决策算法,动态学习视频传输策略,为视频块选择合适的码率级别。同时算法采用连续的时延和码率控制,可以有效避免实验控制参数离散化粒度不好确定的问题,并且可以提供细粒度的时延控制。

码率自适应算法研究现状
  • 基于缓冲区的码率自适应算法

  • 基于网络吞吐量的码率自适应算法

    • 利用过去视频块的下载时间和视频块大小来预估当前网络的吞吐量,从而选择合适的码率级别
  • 基于混合控制理论的码率自适应算法

  • 基于强化学习的码率自适应算法

强化学习

强化学习是学习如何将环境映射到行动,从而最大化数字奖励信号。试错搜索和延迟奖励是强化学习最重要的两个特征。

智能体:独立思考并能与环境交互的实体

智能体接收环境的状态作为输入,并采取动作与环境进行交互,然后根据环境的反馈(奖励或惩罚)来调整自己的策略,以最大化累积奖励。

深度强化学习算法介绍

深度强化学习结合了深度学习和强化学习各自的优点,能够处理强化学习不能处理的复杂任务。深度强化学习算法主要有基于价值的(Value-based)算法和基于策略的(Policy-based)算法,以及两者的结合演员-批评家(Actor-Critic)算法。

相关推荐
陈苏同学3 分钟前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
唐家小妹6 分钟前
介绍一款开源的 Modern GUI PySide6 / PyQt6的使用
python·pyqt
吾名招财21 分钟前
yolov5-7.0模型DNN加载函数及参数详解(重要)
c++·人工智能·yolo·dnn
FL162386312932 分钟前
[深度学习][python]yolov11+bytetrack+pyqt5实现目标追踪
深度学习·qt·yolo
羊小猪~~38 分钟前
深度学习项目----用LSTM模型预测股价(包含LSTM网络简介,代码数据均可下载)
pytorch·python·rnn·深度学习·机器学习·数据分析·lstm
鼠鼠龙年发大财1 小时前
【鼠鼠学AI代码合集#7】概率
人工智能
Marst Code1 小时前
(Django)初步使用
后端·python·django
龙的爹23331 小时前
论文 | Model-tuning Via Prompts Makes NLP Models Adversarially Robust
人工智能·gpt·深度学习·语言模型·自然语言处理·prompt
工业机器视觉设计和实现1 小时前
cnn突破四(生成卷积核与固定核对比)
人工智能·深度学习·cnn
醒了就刷牙1 小时前
58 深层循环神经网络_by《李沐:动手学深度学习v2》pytorch版
pytorch·rnn·深度学习