• paradise
    2021-12-03
    在 H264 标准里面,视频的第一帧的第一个块的左和上都是空,没法预测,所以设置成了一个约定值128,方便编码。这边找个几个264的码流,第一个I帧的第一个4*4 子块的yuv 预测值全都是128,大家也可以找个264的码流确认一下

    作者回复: 回答的非常棒

    共 2 条评论
    11
  • 我有一条鱼
    2021-12-23
    想问一个问题: 4x4、16x16不同大小的块为什么会有不同的预测模式。 我理解预测模式只是参考不同方向已经编码过的块找出差异最小的,最容易变出更多0的方式。这样想的话是不是4x4的9种预测模式都是可以使用在16x16上的?还是说已经验证16x16上效果一定会很差?

    作者回复: 单纯从编码压缩性能来说是模式当然是越多越好。但是我们还要兼顾编码速度的。16 x 16的块一般用在相对平坦的区域,也就是细节相对少一些的区域,模式少一点对编码速度会好一些。而对于细节多的地方,我们需要更精细化编码,所以块也更小、模式也更多。

    
    9
  • chao
    2022-01-11
    是每个块都要做帧内预测模式选择吗? 如果是的话,感觉计算量很大,假如都是4*4的块,每个块都要计算9遍然后选出一个最优的。

    作者回复: 所以一般会有多种编码速度供你选择,在快速档会有一些快速算法根据块和周边块的像素特点提前判断编码模式,得到的就不一定是最优解。在慢速档就可能会每种模式都遍历得到的就是最优解。这也是我在第一节课说的,不是码率高就清晰度高。

    
    2
  • tony
    2021-12-25
    帧内预测模式选择16x16或者4x4时,要综合考虑cost,编码速度,是否平坦等等,编码速度以及是否平坦是如何衡量的?

    作者回复: 1、模式的选择其实最后是看cost的,其实在选择的时候并不会看平不平坦,因为一个16x16的块如果划分的话,要划分成16个4x4的块,每一个块都需要带模式等额外的信息也需要消耗码率,所以如果图像区域确实是平坦的,在模式选择的时候16x16的块计算出来的cost会比16个4x4总cost要小。所以我们一般会说平坦区域更适合16x16的大小,但实际上最后还是通过cost大小来判断的。 2、编码速度可以通过编码器的参数设置,比如x264可以通过preset来设置。设置速度快的话编码器内部会把一些编码工具关闭不使用它们。这样速度就快了,但是编码效果就差一些。

    
    2
  • 余健辉
    2022-01-26
    老师,想请问下后面的计算公式中为什么几个像素值加上后还要加上4或者2或者1再去做除法呢,对这一点有点疑惑

    作者回复: 四舍五入

    
    1
  • Digitalization
    2021-12-27
    算平均值偏要写成移位操作,不容易看懂啊

    作者回复: 因为编码器代码一般都是用移位操作的,养成这个习惯吧。

    共 2 条评论
    1
  • 为了维护世界和平
    2022-11-14 来自浙江
    参考帧是如何选择的?

    作者回复: 如果只有一个参考帧,那么就没有选择的余地。如果是多个参考帧的话,那么就会遍历所有的参考帧,选择cost最小的

    
    
  • ilio
    2022-03-09
    请教一下老师,一帧里边每个宏块的预测模式都是不一样的吗

    作者回复: 是不一样的

    
    
  • T------T
    2022-01-27
    老师好,我看到4X4 模式下有9中预测模式。但是参考方向只有左、左上、上、右上。 实际编码过程中是否是: 从左上角开始,按行从左至右逐个计算每个宏块的像素值?

    作者回复: 是的,因为其他方向对应的位置的块是没有编码,因此不能用来做参考

    
    
  • 易水南风
    2022-01-04
    老师,每个宏块的预测中的参考像素都是非预测的么?还是也可以是预测的?

    作者回复: 预测使用的参考像素都是已经编码好了的像素,就是编码模式已经定了的。这些参考像素在编码的时候也是预测编码得到的。

    
    