H264视频编解码

news/2024/11/29 8:53:48/

一 编解码基础

问:为什么要进行编解码?

答:如果不对视频进行编解码的话,数据量太大了,存储,IO速度将压力倍增。一个4K,24FPS,1小时的数据量为:3840 * 2160 * 3 * 3600 * 25= 2085.5 G, 播放一个4K网络视频,下载速度将要579M/S。经过H264编码后,数据将缩小40~100 倍, 而新一代编码算法H265 ,压缩率甚至高达200.

问:编码的本质是什么?

答:去冗余。就时间上来说,视频前一帧后一帧有很强的相关性,假设对后一帧只保留变化信息,数据量是不是小很多。 就空间上来说,相邻区域的像素很多都是相同的,假设只保留轮廓信息,那么数据量也会小很多。因此视频压缩就是利用相关性去冗余。

问:视频编码流程?

答:编码分为帧内/帧间编码,K 为帧内帧间编码的开关。 

流程为:预测  > 变化 > 量化 > 熵编码

预测:帧内为当前像素和预测值的插值,帧间像一个运动的物体,在一定窗口内搜索到最佳匹配宏块,然后两个宏块相减得到残差值。

变化编码:时域转换到频域,在这个新领域信号能量重新分布,能量更集中,直流低频分量占大部分,高频占小部分。

量化:把DCT系数除以一个常量,量化后结果是量化步长的整数倍或更多零值,从而达到压缩目的。

熵编码:符号出现概率大的用短码字来表示,符号出现概率小的用长码字来表示。

问:视频解码流程?

答:解码是编码的逆过程,另外需要消除由反量化和反变化重建图像由于误差带来的块效应,还需要在最后加入环路滤波。因此解码流程为:

解析码流头 > 熵解码 >  反量化 > 反变换 > 运动补偿 > 滤波。

解析:码流头结构解析,获取量化步长等信息;  熵解码:MPEG-4 的VLD,H264的CAVLD,CABAD; 反量化:H.263的32级量化,MPEG量化表,H.264的52级量化; 反变换:H.263/MPEG的8x8浮点IDCT,H.264的4x4 块定点IDCT; 运动补偿:根据编码中的像素精度,运动方向信息等方向插值并运动补偿; 滤波:去除方块效应。

二 H.264视频编码

问:H.264视频编码有哪些特点?

答:1 提供16x16,8x8,4x4预测模式,2 多参考帧的运动补偿(以往标准P帧参考为1,B帧参考为2,而h.264 最多参考达32),3 1/4像素精度的运动补偿,4 环类去除块效应滤波器,5 CAVLC变长编码(比CABAC效果要好),6 SP,SI 用以解决视频码率切换,7 使用抽象网络层NAL,适应多种网络环境。

问: h.264 算法裆级有哪些及特点?

答:1 Baseline Profile: 提供I/P帧,仅支持Progressive 和 CAVLC,用于视频会话等要求延时低的场景。

        2 Extended Profile:提供I/P/B/SP/SI帧,主要应用于网络视频流。

        3 Main Profile: 常用,应用于消费电子,数字电视广播,数字视频存储。

        4 High Profile: 针对高分辨率和高清晰度专业级视频。

问:H.264有哪些关键技术?

答:帧内预测:利用空间相关性实现的,概括的说就是利用周围的像素点预测当前的像素点。16x16四种预测模式:垂直,水平,直流分量,平面。
帧间预测:用先前编码帧作为参考,对当前图像进行预测编码。运动补偿,运动矢量,整数变换DCT及量化,熵编码,1/4精度运动矢量,多参考帧等方法。

问:SPS,PPS ,SEI 记录了哪些信息?

答:SPS:序列参数集,记录了这一组编码序列相关信息,比如profile(决定编码方式),level(决定最大分辨率和最大帧率),POC,最大参考帧数目,图像的宽度以宏块为单位,图像的高度以宏块为单位
PPS:图像参数集,编码后数据依赖的参数保存于图像参数集中。PPS/SPS 两者都会保存编码方式的信息。关于SPS/PPS 每个字段及含义请参考:https://www.cnblogs.com/wainiwann/p/7477794.html

SEI:补充增强信息, 不记录实际的图像数据, 主要起补充和增强作用。

 


http://www.ppmy.cn/news/516505.html

相关文章

常用的视频编解码器

From: http://imeradio.blog.163.com/blog/static/153419404201010104360306/ H.261 H.261主要在老的视频会议和视频电话产品中使用。H.261是由ITU-T开发的,第一个使用的数字视频压缩标准。实质上说,之后的所有的标准视频编解码器都是基于它…

Kubernetes API Server源码学习(三):KubeAPIServer、APIExtensionsServer、AggregatorServer

本文基于Kubernetes v1.22.4版本进行源码学习 9、KubeAPIServer GenericAPIServer提供了一些通用的功能,其他的Server基于GenericAPIServer进行拓展,代码量就会减少许多 KubeAPIServer负责处理Kubernetes内建资源的REST请求,比如Pod、Deploy…

视频编解码——视频编解码器工作原理

目录 视频编码器基础认知什么是视频编解码器为什么需要视屏编解码器视频编码器与数字视频容器视频编码标准的历史 通用编解码器1、图片分区查看分区 2、预测3、转换使用全部像素形成每个系数 4、量化5、熵编码VLC编码算术编码 6、比特流格式H.264 比特流检查H.264比特流 总结 视…

宏晶微MS2130 HDMI转USB3.0高清视频采集芯片应用于直播导播一体机

MS2130 是一款 USB 3.0 高清视频和音频采集芯片,内部集成 USB3.0 Device 控制器、数据收发模块、音视频处理模块。MS2130 可以通过 USB 3.0 接口将 HDMI 输入的音视频信号传送到 PC、智能手机、平板电脑上预览或采集。MS2130 输出支特 YUV422 和 MJPEG 两种模式&…

音视频编解码简介

音视频编解码简介 一、为什么音视频要编解码? 一张图片2M是很正常的大小,1秒视频里有24帧,一分钟就是2G大小,传输上基本是不可能的,所以要压缩/解压缩,这就是编/解码 二、解码的方法 1、空间 一般图片…

基于H.265编解码高清视频传输系统

胡博, 赵旦峰, 王中刊. 基于H.265编解码高清视频传输系统[J]. 应用科技, 2017, 44(1): 27-32. HU Bo, ZHAO Danfeng, WANG Zhongkan. High-definition video transmission system based on H.265[J]. Applied Science and Technology, 2017, 44(1): 27-32. DOI: 10.11991/yyk…

IT6635:是一颗HDMI 2.0 4进1出视频转换IC

IT6635 是一款 HDMI2.0 4 输入至 1 输出重定时器开关,支持高达 6Gbps/通道的最大信令速率。它符合最新的 HDMI2.0b 规范,并向后兼容 HDMI1.4 和 DVI 规范。凭借6Gbps/通道功能,IT6635可以支持超高分辨率内容流,例如4Kx2K50 / 60Hz…

视频与编解码的技术邂逅,碰撞出的高清罗曼史

初夏最火的造型是什么?不少人可能会脱口而出——“淡黄的长裙,蓬松的头发。。。” 就连我这个上古时期的老年人,都开始每周四和周六准时点开爱奇艺首页,吸一口青春美少女们。原因无他,后疫情灰色时期,还有什…