17
182
¥ 399.00购买
开通会员,立省39.90元, 立即开通
立即购买

你将收获

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

适用人群

计算机相关专业学生

课程介绍

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

课程讨论

获取当前4x4块的左邻块和上邻块的nC值时,如果左邻块或者上邻块是8x8模式时,该怎么获取?

老师 能分享这个标准文档吗

老师,您知道哪里有关于这个H.264编解过程的课程吗?您的课程偏实践了 感觉不太适合我。。

老师 能分享源代码吗?

有没有与课程相关的资料呢?

这用的是哪版的VS?

我提一个疑问:如果,该宏块不是最左边的宏块,但其左边的宏块不在同一个Slice内,是否还能用此方法?

还是没有懂if (act_sym==1) 之后就掉应该biari_decode_final了。 也没有懂为什么INIT_MB_TYPE_I的前三个是为了mb_type服务的, 那act_ctx 就要为4之后还要用5 6 7 8。

感觉课程好像有都掉的部分,比如在第26章中,块/宏块边沿的滤波方法一节中,直接说滤波强度为3或4,但是滤波强度在区块滤波的执行过程中并没有讲解到,虽然问题不大,但是让人感觉课程连贯性较差

音量调低,保护耳朵

同学笔记

  • snowwood 2021-01-23 09:41:13

    来源:获取相邻块的位置和有效性 查看详情

    上面这块代码的布局略显啰嗦,把它调整了一下,如下面所示:

  • 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   数据字节流

     

没有更多了