0
311
¥ 399.00
开通会员,立省39.90元, 立即开通
立即购买

你将收获

通过本系列课程,观众有望理解视频压缩编码技术的整体发展,精通H.264视频编码技术的框架与细节,为进一步研究H.265/HEVC编码标准、音视频流媒体、视频直播点播等技术奠定坚实的基础。本系列课程适合多媒体方向的开发人员和以音视频编码为主要研究方向的高年级本科生、硕士研究生和低年级博士研究生,不但有助于工程技术开发,亦可以在科学研究方面为观众提供协助。

适用人群

计算机相关专业学生

课程介绍

H.264/AVC是目前业界应用为广泛的视频压缩编码标准,包含了先进而且较为成熟的视频编码技术。本课程将从原理、标准和实现等多个角度,详细讲述了H.264/AVC视频编码标准的整体架构与技术细节,不但讲解了H.264/AVC标准协议文档中的内容,还通过实际的H.264码流分析/解码程序的开发来帮助观众更深入地理解H.264编码标准的原理。

课程讨论

怎么加微信群啊 买过之后的二维码扫不了了
老师有问题请教能加qq吗?关于cabac熵编码的部分。
老师QQ群搜不到啊老师QQ群搜不到啊

所有回复(1):

请参考博客置顶文章:https://blog.csdn.net/shaqoneal/article/details/53706456
RTCP ACK报文中的native RPSI中携带的是frame no吗
老师,我在解析某个h264码流时,遇到nal type为8的nal,即“,0x68,0xce,0xbc,0xb0,“。只有这几个,太短了,无法按照协议去解析PPS,怎么办?后面的IDR slice也没法解析了? NAL Unit type:0, size = 0 NAL Unit type:7, size = 23 NAL Unit type:8, size = 3 NAL Unit type:5, size = 236988 NAL Unit type:1, size = 129796 NAL Unit type:1, size = 36849 NAL Unit type:1, size = 158855 NAL Unit type:1, size = 38608 NAL Unit type:1, size = 157944 NAL Unit type:1, size = 40974 NAL Unit type:1, size = 156016 NAL Unit type:1, size = 38834 NAL Unit type:1, size = 201175 NAL Unit

所有回复(1):

pps的nalu是短得多,可以先试试能不能用ffplay正常播放,如果不能那就需要一个bit一个bit地研究pps的nalu是否合法的问题了
几乎每节课中都会有错误,有时候细节介绍的不清楚
h264本身难度大,建议先有一定的h264的基础和概念再来听, 多少会进一步收获, 小白不适合看, 因为肯定看不懂。
噪音吵得半死 录这种视频安什么心呢
老师,计算u(2)时,高bit位是在左边还是在右边?

所有回复(1):

与码流顺序一致的
老师,可以把264的官方文档也上传供下载吗?谢谢

所有回复(1):

https://github.com/yinwenjie/SimpleH264Analyzer/tree/master/H264_doc github 代码库中有上传

同学笔记

  • baiyun0451c 2020-03-24 11:27:34

    来源:实现指数哥伦布编码 查看详情

    哈夫曼编码:   根据概率,需要知道码表

    指数哥伦布编码  

    [prefix] + 1 + [surfix]

    Prefix 就是连续的0,0的个数决定了 surfix 的位数

     

    ue无符号 实际数字 codeNum = 2 **([prefix]位数) -1 + [surfix]

    se有符号是 无符号的 codeNum 进行交替出现 {0, 1, -1, 2, -2….}

    Se = (-1)**(k+1) * ceil(k/2).   其中 k 就是 无符号的 codeNum

     

    te编码:  取值范围 [0, x].   X > 1 ,等同 ue.    X = 1,则是下一 Bit 的取反

    Me 采用查表的方式

     

     

    指数哥伦布编码 将值变成了 bit 不对齐了,对应上面的 RBSP

  • baiyun0451c 2020-03-24 10:50:50

    来源:人与世界的交互、视频信息的意义 查看详情

    H264

     

    帧内压缩:

    1. 视频预测是采用  16x16、4x4 多种形式分割,16*16有4种预测模式,4*4有9种预测模式
    2. 预测模式中选择一种最好的,然后保存残差量化后的图像和预测模式
    3. 也可以采用 I_PCM(不采用任何预测模式)
    4. 残差图像进行 DCT变换,使用 CABAC 进行无损压缩

     

    帧间预测:

    1. 视频预测是采用  16x16、16x8、8x16、8x8、8x4、4x8、4x4 多种形式分割
    2. (GOP)帧分组算法是:在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内,我们认为这样的图可以分到一组。
    3. 对前后帧,计算块最接近的块,和帧内一样,对残差进行 DCT变换,量化,无损压缩

     

     

    对分块(通常是残差)进行 DCT 变换,低频进行细量化,高频进行粗量化

    运动补偿将图像切割成块,然后前后帧计算图像块的残差。

     

    实际应用中,将残差图像进行 DCT 变换和量化,然后一部分使用熵编码,一部分反量化和反 DCT 变换后,与运动补偿图像相加,获得新的预测图像。

     

    NALU

     

    NALU 以 0x00000001(0x000001)  开始(Annex-B),也就是分割头,有些直接是帧的长度(RTP)(很少见)

    紧接着就是 NALU 头,

         +---------------+

          |0|1|2|3|4|5|6|7|

          +-+-+-+-+-+-+-+-+

          |F|NRI|  Type   |

          +---------------+

     

    NRI  重要性

     

    头取值的重要意义:

    0x01       B 帧

    0x61       P 帧

    0x65 .     I 帧

    0x67.      sps

    0x68.      pps

     

     

    第一层 EBSP.    扩展字节序列载荷

    如果出现两个 00 00 [00/01/02/03],则修改成 00 00 03 [00/01/02/03]

    去掉 上面所说的 03 后,就是 RBSP

    第二层 RBSP    原始字节序列载荷

    最后一个 Byte 如果实际位数不够,则补1后面若干个0。有视频占用的不是 Byte的整数?

    刨去最后一个字节的处理,就是 SODB

    第三层 SODB   数据字节流

     

没有更多了