x264 编码器亚像素处理流程

embedded/2024/9/23 3:21:17/

H264编码标准中为什么需要亚像素数据

  • 在H.264中,为了提高运动估计的精度,除了在整像素级别上进行搜索外,还会在亚像素级别(如1/2像素和1/4像素)上进行搜索,以找到最佳匹配块。
  • 在进行亚像素估计时,需要对非整数像素点进行插值计算。H.264标准中定义了多种插值方法,如六抽头滤波器,用于生成1/2像素和1/4像素的插值值。
  • 亚像素级别的运动矢量估计可以提高编码的精确度,因为它允许更精细地描述物体的运动。这通常会导致更小的残差和更低的码率,同时保持视频质量。
  • 但是,亚像素运动估计的计算成本较高,因为它需要更多的计算来确定最佳匹配块。

亚像素与整像素位置关系

在这里插入图片描述

1/2像素处理算法

  • x264 中滤波 filter 部分提前计算出来,在x264_frame_filter函数中调用hpel_filter函数(根据不同架构会有不同版本的汇编实现)来实现。
  • x264 中半像素插值算法通过相应整像素点进行 6 抽头滤波得到,权重为(1/32, -5/32,5/8,5/8, -5/32,,1/32)
  • 示意图:

http://www.ppmy.cn/embedded/13106.html

相关文章

第七届蓝桥杯 c/c++ B组

标题:第几天 2000年的1月1日,是那一年的第1天。 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容。 125 直接查看电脑日历去数或者excal拉即可 标题…

【1431】java学习网站系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java 学习网站系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

多轴机械臂/正逆解/轨迹规划/机器人运动学/Matlab/DH法 学习记录03——机械臂运动学逆解

系列文章目录 本科毕设正在做多轴机械臂相关的内容,这里是一个学习机械臂运动学课程的相关记录。 如有任何问题,可发邮件至layraliufoxmail.com问询。 1. 数学基础 2. 机械臂几何法与DH表示法 3. 机械臂运动学逆解 文章目录 系列文章目录一、引言1.手臂…

【算法模板】图论基础算法

文章目录 图论算法基础模板树与图的存储1. 邻接矩阵:2. 邻接表: 树与图的遍历(1)深度优先搜索 (DFS)深度优先遍历 (DFS)(2)宽度优先搜索 (BFS)宽度优先遍历 (BFS) 拓扑排序朴素Dijkstra算法堆优化版Dijkstra算法Bellman-Ford算法SPFA算法SPFA判断图中是否…

Rust入门-所有权

一、为什么、是什么、怎么用 1、为什么Rust要提出一个所有权和借用的概念 所有的程序都必须和计算机内存打交道,如何从内存中申请空间来存放程序的运行内容,如何在不需要的时候释放这些空间,成为所有编程语言设计的难点之一。 主要分为三种…

深度神经网络(DNN)

通过5个条件判定一件事情是否会发生,5个条件对这件事情是否发生的影响力不同,计算每个条件对这件事情发生的影响力多大,写一个深度神经网络(DNN)模型程序,最后打印5个条件分别的影响力。 示例 在深度神经网络&#xf…

JUC与多线程基础详解

什么是JUC? JUC(Java Util Concurrent)是 Java 5 以后新增的一组并发编程工具包,提供了一系列高效、线程安全的并发集合,方便在多线程环境下处理共享数据。 JUC其实就是JDK中的三个包: java.util.concurrent 并发相关的 java.util.concurrent.atomic 原子性 java.util.c…

ruoyi-nbcio-plus基于vue3的flowable收回任务后重新进行提交表单的处理

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…