h264转av1后大小相差多少
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了h264转av1后大小相差多少相关的知识,希望对你有一定的参考价值。
来源:H系列有MPEG和VCEG推出 ,VPX系列由谷歌推出,H.265有更高的图像质量,而AV1对于流媒体来说更加可靠且完全免费。H.265更大的预测模型实现了边缘可视化,而VP9实施更严格的编码规则,似乎可以让流媒体更加连贯和可靠。其中,H.265其压缩效率比H.264提升50%,VP9略逊于H.265,H.266编码性能最高,AV1比VP9同等质量下减少30%比特率。目录:
压缩性能比较
0.码流结构
1.头信息
2.编解码框架差异
3.块划分结构
4.帧内预测
5.帧间预测
6.变换
7.熵编码
8.滤波
9.加速技术
10.其他技术
0.码流结构:
H.264:
NAL层(Network Abstraction Layer):网络抽象层,主要用于网络传输。按照一定格式,对视频编码层输出的数据进行打包和封装,并提供包头(header)等信息,以在不同速率的网络上传输或进行存储
VCL层(Video Coding Layer):视频编码层,主要用于数据编码, NAL提供围绕VCL的一层保护。在H.265/HEVC中,NAL单元根据是否装载视频编码数据被分为VCLU(Video Coding Layer NAL Unit)和non-VCLU
1.头信息
H265一个图像序列的组成:VPS+SPS+PPS+SEI+一个I帧+若干个P帧。VPS、SPS、PPS、SEI、一个I帧、一个P帧都可以称
为一个NALU。转自 H265_程序员阿周的博客-CSDN博客_h265 sei
2..编解码框架差异
H.265仍然采用混合编解码,编解码结构与H.264基本一致
H.265经典框架:
HEVC Encoder
3.块划分结构:
H.264是16x16(子块的大小可以是 8X16、 16X8、 8X8、 4X8、 8X4、 4X4非常的灵活)的宏块,
VP9可以以64×32或4×8的块来采样,支持使用 64×64 ,支持将帧分割为具有特定相似性的区域;相比H.265, VP9 支持水平或垂直细分
H.265是采用CU (CodingUnit)、PU(PredictionUnit)和TU(TransformUnit)的递归结构,四叉树划分(预测块亮度64x64-8x8,色度32X32-4X4,变换块32x32->4x4),同时H.265增加了非对称划分模式;具体的分割过程通过两个变量来标记:分割深度(Depth)和分割标记符(Split_flag),H.265/HEVC标准突破了之前标准对预测块、变换块大小关系的限制。由于其PU和TU直接由CU划分得到,因此二者大小没有确定的关系。一个PU可能包含多个TU,一个TU也可能跨越多个PU.
H.266在此基础上除了四叉树划分,增加了三叉树和二叉树划分。
思考:是否可以不规则形划分呢?比如三角形、圆形、椭圆、六边形等等。
4.帧内预测:
H.264中4×4和8×8块包含9种预测模式,16×16块包含4种预测模式;
VP9有10种帧内预测模式;
H.265有33种帧内角度预测模式+DC(上、左取平均)+planer;与H.264/AVC相比,H.265/HEVC增加使用了左下方块的边界像素作为当前块的参考;
H.266有65种帧内亮度角度预测模式,实际上有65+10+10=85种,根据宽高比再选;增加ISP(对块的进一步划分技术);PDPC技术,结合了未滤波的参考像素和滤波后的参考像素,增加MIP模式;CCLM模式;
注:Planar 模式适用于像素值缓慢变化的区域,它使用水平和垂直方向的两个线性滤波器,并将二者 的平均值作为当前块像素的预测值。DC 模式适用于大面积平坦区域,当前块预测值可由其左侧和上方 参考像素的平均值得到。角度模式主要用于视频内容中不同方向的纹理。
5.帧间预测:
帧类型结构:H.265用了HIERACLE-B结构
mv精度:H.265是 \frac14 像素精度(色度\frac18),并使用了更多的临近像素点进行亚像素精度插值。预测模式:SKIP,DIRECT,MERGE(5个候选MV),AMVP(2个候选MV)。
H.266提高到\frac116的像素精度;
VP9 帧间预测使用 ⅛ 像素进行运动补偿,有作为参考帧的不可显示帧,不可显示帧上有平均得来的双向预测。
参考列表:
H.265用两个参考列表,每一个都拥有16个参照项,但是唯一图片的最大数量是8。
H.266中merger模式有6个candidate,相对于H.265增加了TMVP , HMVP改变,
6.变换
H.264整数DCT 4X4 8X8;哈达玛变换
VP9 和HEVC都支持4x4-32x32的变换块大小。 DCT 在帧内编码宏块中,垂直和水平变换路径中的一者或两者会是 DST
HEVC 4X4 DST; Transform_skip模式:transform_skip_flag,该模式对文本桌面视频有较好效果; RQT 技术基于四叉树的自适应变换技术;没有哈达玛变换
HEVC 内部比特深度增加:为了保证中间预测、变换以及量化过程中的内部比特精度,以达到更好的压缩性能
HEVC仅采纳了4点DST7用于帧内预测残差的变换,对于其它尺寸和帧间预测残差仍然采用DCT2;
H.266有不可分离的二次变换lfnst;对预测残差采用多候选变换的方案MTS(Multiple Transform Selection)能够更好地适应预测残差动态变化的统计特性,并且显著地进一步提高变换增益。针对帧间变换技术,子块变换技术(Sub-block Transform,SBT)
7.熵编码:
H.264采用整数离散余弦变换(DCT),CABAC压缩(无损,CABAC也是给高频数据短码,给低频数据长码。同时还会根据上下文相关性进行压缩),两个I帧之间是一个图像序列GOP。
VP9 支持四种变换大小:32x32、16x16、8x8 和 4x4。这些变换与其他大多数编码一样,是 DCT 的近似整数。在帧内编码宏块中,垂直和水平变换路径中的一者或两者会是 DST(离散正弦变换)。
HEVC的熵编码使用了两种算术编码:CABAC和CAVLC。CAVLC主要用于编码SEI、参数集、片头等,剩下的所有数据和语法元素均使用CABAC来编码。
H.265:zigzag扫描:ACS 技术,垂直扫描,水平扫描,对角扫描。
Z扫描
8.滤波:
H.265增加了SAO
H.266中增加了ALF, 亮度7x7,色度5x5
VP9 每块可以选择三种不同的子像素插值滤波器:
正常的第 8 像素/平滑的第 8 像素,可以进行平滑或模糊预测/锐利的第 8 像素, 可以进行锐利预测
9.加速技术
H.265增加了Tile以及WPP等并行工具集以提高编码速度
Tile将图像分割为矩形区域 一个Tile块为基本的并行单元,可以同时存在某些Slice中包含多个Tile和某些Tile中包含多个Slice的情况。
WPP: 全称为wavefront parallel process,以LCU行为基本的编码单位。
以一行LCU块为基本的并行单元,每一行LCU为一个子码流
10.其他
VP9对运动矢量的第 8 像素精度、三种可切换的子像素插值滤波器、参考运动矢量、熵编码、环路滤波、ADST、DCT 等进行优化
H.264 Level:对视频的描述,Level越高,视频的码率、分辨率、fps越高
H.266:色度联合编码JCCR
HEVC IBDI 技术 参考技术A 将h264转换为av1后,文件大小大概会减少20-30%,这是因为AV1编码器能够在保持视频质量的情况下更有效地管理空间,从而实现更好的压缩效果。 参考技术B 你知道FFmpeg吗?了解过h364/h365/vp8/vp9编解码库吗?
我们日常生活中使用最广泛的五种视频编码:H264(AVC)、H265(HEVC)、vp8、vp9、av1都分别是什么?由哪些组织/公司实现的?编解码库的授权协议都是什么?他们又分别有什么优点?
今天就让博主带领诸位小伙伴们一起来简单了解一下,视频中的这几种常用的编解码器。
H264(AVC)
最常用的视频编码。
H.264在1997年ITU的视频编码专家组提出时被称为H.26L,在ITU与ISO合作研究后被称为MPEG4 Part10或H.264。
虽然上述两个组织提出了H264编码规范,但是并没有具体实现。
openh364
所以我们日常使用的视频编码大多由思科(cisco)开源的openh364编解码库:
http://www.openh364.org/。
x264
目前性能最好最完善的h364编解码库。
由大名鼎鼎的VLC播放器的维护机构,法国videolan开源组织维护的libx264编解码库:http://www.videolan.org/developers/x264.html。
videolan开源组织的前身是法国巴黎中央理工学院的一个学生项目。
这也是为什么音视频开发工程师默认会使用VLC播放器来测试音视频的原因,不仅仅是因为VLC强大,还因为VLC播放器就是事实上的h364/h365音视频编码的标准实现,如果VLC都播放不了你的视频,那肯定是你的视频有问题。
H265(HEVC)
x265
业界最好的h365(hevc)编解码库。
同样由大名鼎鼎的VLC播放器的维护组织法国videolan组织开源的libx265编解码库:
https://www.videolan.org/developers/x265.html
使用x264,x265编码的小伙伴们需要注意这两款编解码库使用GPL v2授权协议,商业软件使用需要遵守GPL v2协议。
ffmpeg内置openhevc编解码库
由FFmpeg维护的**H265(HEVC)**的编解码库,能用。
http://openhevc.github.io/openHEVC/
kvazaar
FFmpeg项目引用的另一款开源的H265(HEVC)解码库,注意kvazaar解码库只提供H265解码,并不提供编码。
EXCEL或ACCESS里如何计算两个时间点相差多少小时
比如从2000到2100之间查几个小时
20:00, 21:00
假如是20:00-03;00, 该怎么算?
=text((2100-2000)/2400,"[h]小时")
PS:公式中的2100和2000可以换成该数据所在单元格坐标。
/2400是因为excel中数值1代表日期值1天,即24小时。本回答被提问者采纳 参考技术B 做减法
比如在c格显示B格-A格的值
(2100-2000=100)
在C1格输入“=B1-A1”,再往下填充公式
如果需要,再设置下格式吧?(让100显示为1之类,选中右键…) 参考技术C A1:2000-1-1
B1:2100-1-1
C1:=(B1-A1)*24
C1=876600小时 参考技术D 2000和2100是什么?
以上是关于h264转av1后大小相差多少的主要内容,如果未能解决你的问题,请参考以下文章
ADT (Eclipse) vs. Android Studio:APK文件大小相差多少是正常的?