直播技术总结(四)音视频数据压缩及编解码基础

转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/60480109

音视频压缩技术是编解码中难点,常常会涉及很多算法处理问题。数据封装,转封装等,看下Agenda:

  • 音视频为何需要压缩?
  • 压缩编码的分类
  • 常用压缩编码的方法
  • 编码器中的关键技术
    • 预测
    • 量化
    • 变换
    • 熵编码
  • 编解码中的情况

音视频为何需要压缩?

未经压缩的数字视频的数据量巨大

  • 存储困难:一张DVD只能存储几秒钟的未压缩数字视频。
  • 传输困难 : 1兆的带宽传输一秒的数字电视视频需要大约4分钟。

压缩编码的重要性:

  • 数据压缩是通过减少计算机中所存储数据或者通信传播中数据的冗余度,达到增大数据密度,最终使数据的存储空间减少的技术

压缩编码的分类:

  • 1、空间冗余。在很多图像数据中,像素间在行、列方向上都有很大的相关性,相邻像素的值比较接近,或者完全相同,这种数据冗余叫做空间冗余。
  • 2、时间冗余。在视频图像序列中,相邻两帧图像数据有许多共同的地方,这种共同性称为时间冗余,可采用运动补偿算法来去掉冗余信息.
  • 3、视觉冗余。视觉冗余度是相对于人眼的视觉特性而言的,人类视觉系统对图像的敏感性是非均匀和非线性的,并不是图像中的所有变化人眼都能观察到。
  • 4、信息熵冗余。信息熵是指一组数据所携带的信息量,信息熵冗余指数据所携带的信息量少于数据本身而反映出来的数据冗余。
  • 5、结构冗余。在有些图像的纹理区,图像的像素值存在着明显的分布模式。
  • 6、知识冗余。有许多图像的理解与某些先验知识有相当大的相关性。这类规律性的结构可由先验知识和背景知识得到,称此类冗余为知识冗余

常用压缩编码方法的分类

编码器中的关键技术

  • 预测:通过帧内预测和帧间预测降低视频图像的空间冗余和时间冗余。
  • 变换:通过从时域到频域的变换,去除相邻数据之间的相关性,即去除空间冗余。
  • 量化:通过用更粗糙的数据表示精细的数据来降低编码的数据量,或者通过去除人眼不敏感的信息来降低编码数据量。
  • 熵编码:根据待编码数据的概率特性减少编码冗余。

预测:

空间预测:利用图像空间相邻像素的相关性来预测的方法

  • 帧内预测技术:利用当前编码块周围已经重构出来的像素预测当前块

    Intra图像编码(I帧)

时间预测:利用时间上相邻图像的相关性来预测的方法

  • 帧间预测:运动估计(Motion Estimation,ME),运动补偿(Motion Compensation,MC)

    Inter图像编码:前向预测编码图像(P帧),双向预测编码图像(B帧)

帧间预测编码:

  • 采用预测编码方法消除序列图像在时间上的相关性,传送前后两帧的对应像素之间的差值,这称为帧间预测。

帧内预测编码:

  • I帧图像的每个宏块都采用帧内(Intra)预测编码模式。
  • 宏块分成8x8或者4x4块,对每个块采用帧内预测编码,称作Intra8x8或者Intra4x4。
  • 帧内预测有多个预测方向:水平,垂直,左下,右上。
  • 帧内预测还有直流(DC)预测。
  • 色度块预测还有平面预测。

变换:

变换编码也是去除冗余的一种最基本的编码方法。不同的是变换编码首先要把压缩的数据变换到某个变换域中(如频域),然后再进行编码。变化域中表现为能量集中在某个区域,可以利用这一特点在不同区域间有效地分配量化比特数,或者去掉那些能量很小的区域,从而达到数据压缩的目的。例如声音信号,从时域变换到频域以后,可以清楚的看到能量集中在哪些频率范围内,从而根据频率范围分布有效地分配不同的量化位数。

量化:

量化操作实质上是将连续的模拟信号采样得到的瞬时幅度值映射成离散的数字信号,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示。

量化位数:量化位数是每个采样点能够表示的数据范围,常用的有8位、12位和16位。

量化过程是,先将整个幅值划分为有限个小幅度(量化阶距)的集合,把落入某个阶距内的样值归为一类,并赋予相同的量化值,如图所示,其中虚线箭头表示采样值量化后的电平值。

均匀量化

  • 采用相等的量化间隔对采样得到的信号做量化就是均匀量化,也称为线性量化。量化后的样本值Y和实际值X的差E=Y-X称为量化误差或量化噪声。

非均匀量化

  • 非均匀量化的基本思想是,对输入信号进行量化时,大的输入信号采用大的量化间隔,小的输入信号采用小的量化间隔,这样就可以在满足精度要求的情况下用较少的位数来表示。声音数据还原时,采用相同的规则。

熵编码:

为了进一步压缩数据,对DPCM编码后的直流系数DC和RLE编码后的交流系数AC采用熵编码。在JPEG有损压缩算法中,使用哈夫曼编码器的理由是可以使用很简单的查表方法进行编码。压缩数据符号时,哈夫曼编码器对出现频率比较高的符号分配比较短的代码,而对出现频率低的符号分配比较长的代码。这种可变长度的哈夫曼编码表可以事先进行定义。为了实现正确解码,发送端和接收端必须采用相同的哈夫曼编码表。

采用哈夫曼编码时有两个问题值得注意:

  • 哈夫曼编码没有错误保护功能。在译码时,如果某些位出现错误,会引起一连串的错误,造成错误传播(Error Propagation )。计算机对这种错误也无能为力,说不出错在哪里,更谈不上去纠正它。
  • 哈夫曼编码是可变长度码,因此很难随意查找或调用压缩文件中的内容,然后再译码,这就需要在存储代码之前加以考虑。尽管如此,哈夫曼编码还是得到了广泛的应用。

    该算法基于一种称为编码树的技术,其步骤如下:

    (1)将待编码的N个信源符号按照出现的概率由大到小 排列,给排在最后的两个符号各分配一位二进制码元,对其中概率大的符号分配0,概率小的符号分配1(反之亦可)。

    (2)把概率最小的两个符号概率相加,求出的和作为一个新符号的概率,将新的概率值与剩下的N-2个概率值一起重新进行排序,再重复步骤(1)的编码过程。

    (3)重复步骤(2)直到只剩一个概率值为止,其值为1。

    (4)分配码字,对于各种信源符号,基于步骤(1)分配的数字,从编码树的根部开始回溯读出,并将它作为该符号对应分配的码字。

例 设有离散无记忆信源,符号a1、a2、a3、a4、a5、a6的出现概率分别为0.12、0.08、0.4、0.1、0.25、0.05,其哈夫曼编码过程如下:

编解码总体情况:

第一时间获得博客更新提醒,以及更多android干货,源码分析,欢迎关注我的微信公众号,扫一扫下方二维码或者长按识别二维码,即可关注。

如果你觉得好,随手点赞,也是对笔者的肯定,也可以分享此公众号给你更多的人,原创不易

时间: 2024-07-29 15:41:34

直播技术总结(四)音视频数据压缩及编解码基础的相关文章

视频、音频编解码技术大体介绍:

视频.音频编解码技术: (1)无声FLC (2)有声.可看avi (3)兼顾容量与质量mpeg MJPEG的编码质量是相当高的,是一种以质量为最高要求的编码,它是非线性系统 因此它会在编码过程中尽量使用抖动算法(也可 以设置不抖动),以模拟真彩的效果.这种算法在色彩值差距不是很大的情况下几乎可以达到乱真的地步, 自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码,即PCM编码. PCM通过抽样.量化.编码三个步骤将连续变化的模拟信号转换为数字编码.PCM约定俗成了无损编码.

视频直播技术(四):使用Ijkplayer播放音视频不同步解决方案

在开始使用过程当中对rtmp视频流进行播放,会出现严重的视频音频不同步现象,并且随着播放的时间越长,视频与音频的差距越大. 解决方案 具体原因是CPU在处理视频帧的时候处理得太慢,默认的音视频同步方案是视频同步到音频, 导致了音频播放过快,视频跟不上. framedorp 控制着允许丢帧的范围 可以通过修改 framedrop 的数值来解决不同步的问题,framedrop 是在视频帧处理不过来的时候丢弃一些帧达到同步的效果.具体设置: IJKFFOptions *options = [IJKFF

云+社区技术沙龙:音视频技术开发实战(北京) 报名开启

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 近年来,随着移动互联网的普及和智能终端设备的广泛应用,短视频.直播.在线教学等各类形式的音视频形式的应用越来越广泛,然而,音视频技术使用起来虽然便捷,但是在技术开发上却有"重重难关"要过. 2015年初,腾讯推出一体化云视频解决方案,正式涉足网络视频市场.腾讯凭借在QQ.腾讯视频等海量业务发展过程中,在音视频领域多年积累的核心技术与优势能力,集成了一体化的云视频解决方案,为包括在线教育.视频社交.视频网站新媒体.广电网络电视等

网络摄像机IPCamera RTSP直播播放网络/权限/音视频数据/花屏问题检测与分析助手EasyRTSPClient

前言 最近在项目中遇到一个奇怪的问题,同样的SDK调用,访问海康摄像机的RTSP流,发保活OPTIONS命令保活,一个正常,而另一个一发就会被IPC断开,先看现场截图: 图1:发OPTIONS,摄像机立马断流 图2:但在另一个程序中发OPTIONS保活包又不断流 在大部分的摄像机上,都没什么问题,单单在海康的这一款摄像机中出现了这种问题,不仔细对比命令行中的输出,根本无法确定问题点,图2中的OPTIONS报文中携带了Authorization的头字段,将认证信息都带入了进来,而图1中只是简单将用

音视频的编码和解码

主流的媒体解码主要是三种:FFMPEG.live555.MobileVLCKit. FFMPEG:是一种可以用来记录.转移数字音频.视频.并能够将其转化成流的开源的计算机程序.采用LGPL或者GPL许可证.她提供了录制.转化以及流化音视频的完整解决方案.她包含了非常先进的音频.视频编码库:libavcodec.为了保证高可以执行和编解码质量,libavcodec里面有很多都是从头开始的. 需要能力:理解视频编码解码原理和流程.理解图像压缩技术.音视频压缩技术等.网站链接:http://ffmpe

Android 音视频深入 九 FFmpeg解码视频生成yuv文件(附源码下载)

项目地址,求star https://github.com/979451341/Audio-and-video-learning-materials/tree/master/FFmpeg(MP4%E8%BD%ACyuv%EF%BC%89 这一次是将MP4解码出yuv文件出来,先介绍一波yuv文件 YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大.YUV是一个比较笼统地说法,针对它的具体排列方式,可以分为很多种

视频编解码:第一章 编解码基础

1. 视频编码概念 视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式. 2. 为什么要进行视频压缩? 数据太大:未经压缩的数字视频数据量巨大 存储困难:一张DVD只能存储几秒钟的未压缩数字视频(标准DVD光盘是4.7GB,双层DVD光盘也不过8.5GB) 传输困难:1M的带宽传输一秒的数组电视视频需要大概4分钟 一分钟的视频数据量 Frame Rate(帧率) Frame Size Bits/pixel Bit-rate(bps File Size(Byt

Web音视频通讯的技术应用

网络通讯,视频聊天,目前看只能是网页视频通讯相关,结合移动通讯和网页视频聊天,实现手机和pc机网页互联,是开启网页视频时代的一把钥匙.也预示着下一个互联网的风向. 互联网通讯的视频时代早晚是要取缔图文时代的,互联网视频通讯模式将成为网络发展的下一个主机位.在经历了文字.图片.音乐.视频电影之后,互联网下一个发展趋势已愈发明显.随着国内网页视频聊天.视频通讯技术提供商富秀网的新网站上线,相关的网页视频通讯产品也陆续上线,这些定位在轻量级网页视频通讯领域的产品,适合广大企业线上面对面视频交流,是国内

音视频即时通讯技术在远程教育上的运用

在互联网的飞速发展的时代,远程教育已逐渐从传统教育领域的剥离出来并且成为一个非常重要的市场行业.目前,参加网校学习的人员正在逐步增多,按学习的目标不同分为学历学位.职业培训.网上充电等三种类型.学习方式目前主要分为集体开班和个体学习两种.另一方面,在互联网上各种各样的网校也到处可见,有正规大学开办的经过国家教委认可其学历的攻读本科.研究生课程的网校:有全国知名重点中学在网上搞的针对高考辅导的以应试教育为主的网校:还有一些商业网站针对网上充电者举办的一些职业技术培训的网校等.事实上,许多讲演.培训