H264 无损压缩及编解码流程
一个视频经过有损压缩之后还不够小还要经过无损压缩。
无损压缩之后数据量继续变小.
第一步、DCT变换
有关DCT 变换: 傅里叶里面说任何信号都可以有多个不同振幅和频率的正弦波或者余弦波信号叠加而成,
如果采用的是余弦的话那就叫CT变换( Cosine Transform),如果输入信号是离散(Discrete )的,那么就叫DCT变换。
DCT变换参考
图像中采用DCT变换主要是将离散的时域图像信息转换成频域,之后可以看到一张图像大部分的信息都是在低频段,
而高频的信息非常少,这样的话呢就将图像的内容集中了起来(特别是图像的低频分量,即图像变化平坦的部分),
这时候就可以进行去冗余了,这也是DCT用在压缩方面的原理。数字图像处理中将二维的图像数据经过DCT之后再去做无损压缩。
VLC压缩
可变长的编码 Variable length Coding 。经过前面DCT变换后的得到的数据是频域中的数据,将一个宏块中频繁出现的数据,分配以较短的码字,
那些不经常出现的数据,则赋予较长的码字,这样处理后可减少传输的总码率。
比如上图A表示常用的数据块可以用短码11表示,Z代表的频率低的数据块可用0000001011代替。
CABAC 压缩
怎么处理的
H264编码流程
帧内压缩:要编码的是IDR帧,choose intra prediction ->帧内预测->P(预测值)->与Fn 相减获得残差->加上模式预测的数据->转换T—>
量化Q->VLC->按序组包->NAL单元 帧间压缩:对每一个宏块进行宏块查找(很多算法),得到运动矢量MV,根据MV得到预测值P,
该值与原始值进行对比获取残差补偿与mv一起进行量化与压缩,之后按序组包成NAL。
ME:宏块预测
MC : 运动补偿
T :转换
Q :量化
H264解码流程
H264 无损压缩及编解码流程相关推荐
- iOS8系统H264视频硬件编解码说明
iOS8系统H264视频硬件编解码说明 转载自:http://www.tallmantech.com/archives/206#more-206 公司项目原因,接触了一下视频流H264的编解码知识,之 ...
- H.264的编解码流程
H.264是在MPEG-4技术的基础之上建立起来的,其编解码流程主要包括5个部分:帧间和帧内预测(Estimation).变换(Transform)和反变换.量化(Quantization)和反量化. ...
- 视频编解码(十二):播放器编解码流程source、demux、decoder、output
一.播放器编解码流程source.demux.decoder.output 说白了播放器大致分为4大部分:source.demux.decoder.output. 1.source: 数据源,数据的来 ...
- 【codecs】JPEG、MPEG-1、MPEG-2和MPEG-4编解码流程对比
Date: 2018.10.25 1.JPEG编解码流程 发展时间:1988~1990 2.MPEG-1编解码流程 发展时间:1990~1992 http://citeseerx.ist.psu.ed ...
- MP3文件结构及编解码流程
http://blog.csdn.net/wlsfling/article/details/5875959 AGENDA * MP3简介 * MP3文件结构 --Tag_v2 ...
- 音视频编解码流程与如何使用 FFMPEG 命令进行音视频处理
一.前言 FFMPEG 是特别强大的专门用于处理音视频的开源库.你既可以使用它的 API 对音视频进行处理,也可以使用它提供的工具,如 ffmpeg, ffplay, ffprobe,来编辑你的音视频 ...
- (推荐阅读)H264, H265硬件编解码基础及码流分析
需求 在移动端做音视频开发不同于基本的UI业务逻辑工作,音视频开发需要你懂得音视频中一些基本概念,针对编解码而言,我们必须提前懂得编解码器的一些特性,码流的结构,码流中一些重要信息如sps,pps,v ...
- iOS系统H264视频硬件编解码说明
公司项目原因,接触了一下视频流H264的编解码知识,之前项目使用的是FFMpeg多媒体库,利用CPU做视频的编码和解码,俗称为软编软解.该方法比较通用,但是占用CPU资源,编解码效率不高.一般系统都会 ...
- Android编解码流程
目录 1 整体步骤 2 MediaCodec 使用的基本流程 3 设计 4 编解码实例分析 5 Android FFmpeg视频解码播放 6 从零实现一个H.264码流解析器 7 音视频同步 8 O ...
最新文章
- 刚进美团,就被各种Code Review,真的有必要吗?
- SQL Server事务的隔离级别
- 用户太多太杂,搞不懂怎么办?“分门别类”将拯救你
- Kettle使用_10 存储过程与命名参数
- iOS - 上架的APP 生成二维码下载
- ReactiveCocoa简单介绍
- vSphere共享存储全配置流程
- Android camera (12)---camera ap在特殊的应用场景下额外使用一套独立的camera tuning参数
- Redmi K40游戏增强版首发雷电异形闪光灯:电竞气息十足!
- 华师大数据科学考研_华东师范大学数据科学与工程需要复习哪些内容?
- network reactnative_Chrome 调试 react-native 通过Network面板查看网络请求
- Scott Mitchell 的ASP.NET 2.0数据教程之三十一::使用DataList来一行显示多条记录
- 回归预测的评价指标(附python代码)
- java程序设计颜志军_信息管理系统设计方案.doc
- 学计算机的逻辑学博士,逻辑学博士点
- pano2vr怎么制作漫游_如何制作全景图?Pano2VR制作FLASH全景图教程
- 【python技能树】python简介
- 蓝桥杯单片机-ADC-A/D转换-测量PCF8591中AIN1通道(光敏电阻RD1)的电压
- 【目标检测实验系列】使用yolov3 spp训练西工大遥感数据集NWPU VHR-10(包括如何将NWPU VHR-10转为VOC格式和yolov3 spp实验调试的详细步骤,且附上训练完的权重文件)
- 加入NLP交流群和求职群