x264 参考帧管理原理:reference_build_list 函数

reference_build_list函数

原理

  1. 功能

构建参考列表,它根据当前编码帧的POC(Picture Order Count)来决定哪些帧可以作为参考帧。

  1. 内部执行流程
  • 声明了一个布尔变量b_ok,用于在排序循环中作为标志;
  • 初始化参考帧列表0和1的计数器i_fref[0]、i_fref[1];
  • 如果当前编码的切片类型是I帧,则不需要构建参考帧列表,直接返回;
  • for循环遍历参考队列每个参考帧,根据它们的POC与当前帧的POC比较,将它们分配到参考帧列表0或1中;
    • 如果参考帧标记为损坏b_corrupt,则跳过该帧;
    • 如果参考帧的POC小于当前帧的POC,则将参考帧reference[i]添加到参考帧列表fref[0]中;
    • 如果参考帧的POC大于当前帧的POC,则将参考帧reference[i]添加到参考帧列表fref[1]中;
  • 如果需要从参考帧列表的末尾移除帧(由内存管理控制器mmco指定);
    • do-while 循环使用冒泡排序算法对参考帧列表0中的帧按帧编号进行排序;
      • for 循环i_ref[0]每一帧,如果当前参考帧帧序i_frame小于下一参考帧的帧序i_frame,则调用XCHG函数交换参

相关推荐

  1. x264 参考管理原理:reference_build_list 函数

    2024-06-07 00:48:03       26 阅读
  2. x264 参考管理原理:i_frame_num 变量

    2024-06-07 00:48:03       31 阅读
  3. x264 参考管理原理:b_ref_reorder 数组变量

    2024-06-07 00:48:03       24 阅读
  4. x264 参考管理源码分析

    2024-06-07 00:48:03       22 阅读
  5. x264 写入码流函数分析与介绍

    2024-06-07 00:48:03       23 阅读
  6. x265中量化函数neon汇编实现分析

    2024-06-07 00:48:03       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 00:48:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 00:48:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 00:48:03       82 阅读
  4. Python语言-面向对象

    2024-06-07 00:48:03       91 阅读

热门阅读

  1. Hadoop_hdfs介绍

    2024-06-07 00:48:03       31 阅读
  2. 通过Redis实现防止接口重复提交功能

    2024-06-07 00:48:03       30 阅读
  3. 适配器模式 Adapter Pattern

    2024-06-07 00:48:03       33 阅读
  4. JVM内存分析之JVM优化

    2024-06-07 00:48:03       36 阅读
  5. excel 转换MAC地址格式方法

    2024-06-07 00:48:03       28 阅读
  6. 求二叉树第k层结点的个数--c++【做题记录】

    2024-06-07 00:48:03       27 阅读
  7. npm:Node.js包管理器的使用指南

    2024-06-07 00:48:03       24 阅读
  8. 【机器学习】之 kmean算法原理及实现

    2024-06-07 00:48:03       31 阅读