视频编码压缩基础

这篇具有很好参考价值的文章主要介绍了视频编码压缩基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

视频编码基础

视频图像的质量评价

采用有损压缩的技术能显著降低码率,但是也会降低视频图像的质量,因此对于有损压缩算法,需要建立一套评价准则,对编码质量进行评价。

可以分为主观质量客观质量评价

客观质量评价方法

1.均方误差(mean square error,MSE) 原始参考帧和失真帧直接做差取平方求和

2.信噪比(signal noise ratio,SNR)

3.峰值信噪比(peak signal noise ratio,PSNR)

峰值信号的能量与噪声的平均能量之比,通常表示的时候取log变成分贝,由于MSE为真实图像与含噪图像之差的能量均值,而两者的差即为噪声,因此PSNR即峰值信号能量与MSE之比。PSNR是最普遍、最广泛使用的评鉴画质的客观量测法,虽然和人眼看到的视觉品质不完全一致,但目前仍作为对照其他指标的基线。

视频编码压缩基础,智能视频编码,音视频,人工智能,计算机视觉

其中, M A X I MAX_I MAXI是表示图像点颜色的最大数值,如果每个采样点用 8 位表示,那么就是 255。

PSNR的单位为分贝(DB)

PSNR较高时,代表着其客观质量较高,相反,PSNR低代表客观质量低。

最常用的是PNSR

主观质量评价方法

SSIM

  • 结构相似性,比PSNR更接近主观
  • PSNR使用更广
    • 因为1. 复杂度低;
    • 2.MPEG官方制定标准时采用PSNR;
    • 3.编码器做模式选择时大多使用了均方误差准则

Vmaf

  • Netflix制定的主观准则,因阿里云窄带高清2.0的发布广为国内所知

VmafMOS

  • 人眼主观评判打分
BDRate

仅靠PSNR质量评价不够!因为我们可以使用无限大码率达到最高质量,所以要将码率和PSNR结合起来评价

考虑以下三种情况,很明显当psnr一样时,码率越低越好。当码率一样时,psnr越大越好。

Case1: A: 700k, 37dB; B: 1000k, 37dB; => A好,省30%码率

Case2: A: 700k, 37dB; B: 700k, 36dB; => A好,高1dB psnr

Case3: A: 700k, 37dB; B: 600k, 36dB; => ?? 因此引入了BDRate

测试4个码率点,拟合曲线,求平均

  • BD-Rate:相同质量下的码率节省(横向截线)

  • BD-PSNR:相同码率下的质量提升(纵向截线)

    视频编码压缩基础,智能视频编码,音视频,人工智能,计算机视觉

    注意:

    • 平时说的gain 30%, 或者谁比谁节省30%码率,一般就是BD-Rate省了30%
    • 平时说节省多少码率,都隐含了相同质量下的条件

总结:当您评估编解码器的性能时,您通常会得到一条率失真 (RD) 曲线,该曲线告诉您不同比特率(通常以 kbps 或 Mbps 为单位)的质量(以 dB 为单位的 PSNR)。
BD-Rate 指标使用来自 RD 曲线的信息,告诉您一个编解码器相对于另一个编解码器的改进程度

编码效率\压缩效率
  • 压缩比和编码损失综合评价结果或者说码率和质量、
  • 码率和失真的折中编码效率越高,
  • 可以在相同质量下码率更小
  • RD (Rate Distortion)
帧率、分辨率和码率

帧速率也称为FPS(Frames PerSecond)的缩写——帧/秒。是指每秒钟刷新的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次。每秒钟帧数(FPS)越多,所显示的动作就会越流畅

分辨率,又称解析度、解像度,可以从显示分辨率与图像分辨率两个方向来分类。大部分时候我们可以简单的将它理解为图片的长度和宽度,即图片的尺寸。分辨率影响图像大小,与图像大小成正比:分辨率越高,图像越大;分辨率越低,图像越小。

码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率或码流率,通俗一点的理解就是取样率,是视频编码中画面质量控制中最重要的部分,一般我们用的单位是kb/s或者Mb/s。一般来说同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高。在视频领域,码率常被说为比特率

个人见解:比特率 = 宽 * 高 * 颜色深度 * 帧每秒,所以这样就能理解对码流的定义了。

码流(Data Rate)是指视频文件在单位时间内使用的数据流量

下文中别人的文章也有提到码率

码率**。**即比特流体积与视频时间之比。

三者之间的关系

1、如果码率为变量,帧率越高,每秒钟经过的画面越多,需要的码率也越高,体积也越大。

2、在码率一定的情况下,分辨率与清晰度成反比关系:分辨率越高,图像越不清晰,分辨率越低,图像越清晰

3、在分辨率一定的情况下,码率与清晰度成正比关系,码率越高,图像越清晰;码率越低,图像越不清晰。

个人见解:码率一定,即单位时间内使用的数据流量一定,如果分辨率越大,那说明颜色深度越小,就说明越糊??(这是根据上面比特率的公式来推断的)

但我觉得还可以这样理解:一张图片固定存储大小,如果图像变大,存储空间肯定变大,那还想维持之前的存储大小,那就只好牺牲一下清晰度。

环路滤波

学习资料:基于深度学习的HEVC多帧环路滤波方法-今日头条 (toutiao.com)

我们平时看到的视频,原始数据量往往非常庞大,尤其对高清视频而言,如果直接存储和传输原始信息,需要占用大量的空间和带宽。

为解决这个问题,学术界和工业界制定出了多代视频编码标准,用于将原始视频数据压缩成体积较小的比特流

压缩关注的性能, 主要在于“多快好省”的后三个字:

  • “快”: 编码时间。与视频播放时间无关,此指标是把原始视频编码成比特流所需的时间,即编码器的运行时间。编码时间越短,往往意味着消耗计算资源越少,说明这种编码方法越有希望得到广泛应用。
  • “好”: 压缩后的视频质量。最常用的,可以用所有帧平均 PSNR 来表示。或者用其他客观指标如 SSIM 等描述,也可用人的主观打分来衡量。
  • “省”: 压缩后的码率即比特流体积与视频时间之比。

编码时间描述的是过程,视频质量和码率描述的是结果,显然,过程和结果都需要我们关注。

其中,形容结果的两项指标往往联合使用,因为单纯的高质量和单纯的低码率都很难说明编码性能如何,一般公认的是固定单一变量来对比另一个变量,例如相同视频质量下的码率变化率(BD-BR)或相同码率下的 PSNR 变化量(BD-PSNR)。 这种“好”和“省”,更科学地说,称为**“率-失真性能**”,即反映码率和失真两项指标的综合性能。

随着编码标准的发展,例如 H.264/AVC->H.265/HEVC->H.266/VVC,率失真性能在不断地优化,但代价是时间复杂度成倍提高,这主要因为后续的编码标准往往支持更灵活的分块/预测/变换等策略,使得编码器能在更广大的策略空间中搜索最优解,用更多的搜索时间换取率-失真性能。对于一种编码标准,研究者改进的目标也往往基于复杂度或率失真性能,编码领域至少有以下几类研究:

  1. 保证率-失真性能前提下,节省编码时间:可以理解为减小编码时间的均值(一阶性能);

  2. 在编码时间可接受的前提下,优化率-失真性能:可以理解为优化BD-BR或BD-PSNR的均值(一阶性能);

  3. 复杂度控制,减小编码时间复杂度的波动:即减小编码时间的方差(二阶性能);

  4. 码率控制,减小编码过程中的码率波动:即减小码率的方差(二阶性能)。

可以归结为对复杂度、码率与视频质量的追求

研究背景

作为一种比较先进的视频压缩方法,HEVC 标准相比于上一代 AVC 标准,能够在相同质量下降低约 50% 码率,使编码效率进一步提高。但也需要考虑到,AVC、HEVC 等基于块的编码方法通常用于有损压缩而不是完全无损的,因此不可避免会带来了多种失真(如块失真、模糊和振铃效应等),尤其在低码率情况下,这些失真更为显著。

为了减轻编码过程中的失真,人们提出了多种滤波算法。尽管具体方法不同,这些滤波算法具有一个共同点:都对编码后的每帧视频进行质量增强,并且已经增强过的帧又作为参考帧,为后续帧的编码过程提供帧间预测信息。可见,这类滤波算法既作用于当前帧的输出,又作用于后续帧的输入,逻辑上形成一个闭环,因此统称为环路滤波。合理设计的环路滤波器,使得视频编码的效率可以进一步提高。

首先,HEVC 标准的制定过程涉及到三种环路滤波器,包括去块滤波器(Deblocking filter,DBF)、样本自适应偏移(Sample adaptive offset,SAO)滤波器以及自适应环路滤波器(Adaptive loop filter,ALF)。其中,DBF 首先用于消减压缩视频中的块效应;然后,SAO 滤波器通过对每个采样点叠加自适应的偏移量,来减少压缩失真;最后,ALF 则基于维纳滤波算法,进一步降低失真程度。最终,DBF 和 SAO 被纳入 HEVC 标准。

除了 HEVC 标准环路滤波器,另有 多种启发式的基于深度学习的环路滤波方法 ,也被陆续提出。

启发式方法是根据一些先验特征(如纹理复杂度和相似视频块个数等)对压缩失真构建统计模型,再根据此模型设计滤波器,例如非局域均值(Non-local means,NLM)滤波器 [Matsumura, JCTVC-E206, 2011] 和基于图像块矩阵奇异值分解的滤波器 [Ma, MM 2016][Zhang, TCSVT 2017] 等。启发式方法能在一定程度上提高编码效率,但模型中的先验特征需要手动提取,这高度依赖于研究者的经验,并且难以利用多种特征进行准确建模,因此在一定程度上限制了滤波器的性能。

从 2016 年开始,基于深度学习的方法显著提高了环路滤波性能。此类方法一般通过构建卷积神经网络(convolutional neural network,CNN)来学习视频帧中的空间相关性。例如,文献 [Dai, MMM 2017] 设计了一种可变滤波器尺寸的残差 CNN(Variable-filter-size residue-CNN,VRCNN),以替换帧内模式中的标准 DBF 和 SAO。文献 [Zhang, TIP 2018] 则提出一种带有捷径的残差CNN(Residual highway CNN,RHCNN),用于帧内或帧间模式的标准 SAO 过程之后。

上述基于深度学习的方法有效发掘了单帧内容的空间相关性,然而却没有发掘多帧内容中的时间相关性。实际上,压缩视频一般存在明显的质量波动,而且其中的连续多帧往往包含相似的事物或场景。因此,低质量帧中的视频内容可以由临近的高质量帧推测得到,这即为本文的出发点:基于深度学习的 HEVC 多帧环路滤波。文章来源地址https://www.toymoban.com/news/detail-527257.html

到了这里,关于视频编码压缩基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 音视频——视频流H264编码格式

    我们了解了什么是宏快,宏快作为压缩视频的最小的一部分,需要被组织,然后在网络之间做相互传输。 H264更深层次 —》宏块 太浅了 ​ 如果单纯的用 宏快 来发送数据是 杂乱无章 的,就好像在没有 集装箱 出现之前,货物总是随意被堆放到船上。 上货(编码),下货是非

    2024年02月15日
    浏览(37)
  • 音视频编码格式-AAC ADT

    例子:config = 1408 1408(16进制) :  0001 0100 0000 1000 audioObjectType (5bit) 为 00010 , 即 2, profie = (audioObjectType -1 ) AAC LC samplingFrequencyIndex   (4bit)  为 1000 , 即 8 , 对应的采样频率为 16000 channelConfiguration  (4bit)   为 0001 , 表示channel数量为1  

    2024年02月09日
    浏览(32)
  • 【音视频原理】音视频 “ 采样 - 编码 - 封装 过程 “ 和 “ 解封装 - 解码 - 播放 过程 “ 分析 ( 视频采集处理流程 | 音频采集处理流程 | 音视频文件解封装播放流程 )

    本篇文件主要分析 音视频文件 是怎么产生的 , 以及 音视频文件是如何播放的 ; 视频文件从录像到生成文件的全过程 : 采集图像帧 : 摄像头 硬件 负责 采集画面 , 采集的 初始画面 称为 \\\" 图像帧 \\\" , 一秒钟 采集 的 图像帧 数量 称为 \\\" 帧率 \\\" , 如 : 60 帧 就是 一秒钟采集 60 个画

    2024年02月11日
    浏览(51)
  • 音视频处理 ffmpeg中级开发 H264编码

    libavcodec/avcodec.h 常用的数据结构 AVCodec 编码器结构体 AVCodecContext 编码器上下文 AVFrame 解码后的帧 结构体内存的分配和释放 av_frame_alloc 申请 av_frame_free() 释放 avcodec_alloc_context3() 创建编码器上下文 avcodec_free_context() 释放编码器上下文 解码步骤 avcodec_find_decoder 查找解码器 avcod

    2024年02月01日
    浏览(57)
  • 从原理到实践:音视频编码与解码技术解析

    1.1 引言 音视频编码与解码技术在现代数字媒体领域中扮演着至关重要的角色。随着互联网和移动设备的快速发展,音视频数据的传输和处理变得越来越普遍和重要。理解音视频编码与解码的原理与实践对于开发高质量、高效率的音视频应用程序至关重要。 1.2 音视频编码与解

    2024年02月03日
    浏览(39)
  • 世界杯直播 | 抖音视频编码器优化

    动手点关注 干货不迷路 对于世界杯这样的大型体育赛事而言,视频编码算法既要在高速运动、复杂纹理的场景下确保直播内容的清晰度和流畅度,保障用户的观赛体验,又要兼顾码率、延迟等对网络传输层面尤为敏感的指标。 另外,抖音实现了业界首次的世界杯比赛支持

    2023年04月09日
    浏览(35)
  • 【秒懂音视频开发】15_AAC编码实战

    本文将分别通过命令行、编程2种方式进行AAC编码实战,使用的编码库是libfdk_aac。 fdk-aac对输入的PCM数据是有参数要求的,如果参数不对,就会出现以下错误: 采样格式 必须是16位整数PCM。 采样率 支持的采样率有(Hz): 8000、11025、12000、16000、22050、24000、32000 44100、48000、

    2024年02月03日
    浏览(71)
  • 【音视频处理】音频编码AAC详解,低码率提高音质?

    大家好,欢迎来到停止重构的频道。 本期我们介绍 音频编码格式AAC 。 AAC是音频最常用的编码格式之一 ,几乎所有的播放器都支持这个编码格式。 其他音频编码格式都是类似的,只是某些细节存在差别,如压缩算法、某些音频参数存在限制等。 我们按这样的顺序讨论 :

    2024年02月09日
    浏览(61)
  • 【音视频 | opus】opus编码的Ogg封装文件详解

    😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C++、数据结构、音视频🍭 🤣本文内容🤣:🍭介绍 opus 编码的 Ogg 封装文件🍭 😎金句分享😎:🍭🍭 本文未经允许,不得转发!!! opus和Ogg相关系列文章: 1、RFC3533 :Ogg封装格

    2024年02月03日
    浏览(49)
  • 音视频编码实战-------pcm+yuv数据转成MP4

    avcodec_find_encoder: 根据编码器ID查找编码器 avcodec_alloc_context3:创建编码器上下文 avcodec_open2:打开编码器 avformat_alloc_output_context2:为输出格式创建复用器上下文 avformat_new_stream:创建音视频流 avcodec_parameters_from_context:将编码器上下文中的参数拷贝到音视频流中的编码器参数中AVCodec

    2024年02月15日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包