x264 编码器亚像素处理流程

news/2024/9/22 21:58:32/

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/news/1434100.html

相关文章

Electron 桌面应用程序的框架,快速入门搭建一个桌面程序

Electron是什么? Electron 快捷传送门,点击走你。。。 快速让你的web项目成为桌面应用 // 初始化一个 package.json npm init// 添加 Electron 依赖,安装过可忽略 npm install --save-dev electron{ "name": "my-electron-app",&…

不会写代码,我能学会做RPA机器人吗?

RPA介于编程与非编程之间,80%的场景可以通过拖拽式的组件完成开发设计,单纯的这一点,就已经让很多小白蠢蠢欲试了,因为这80%的场景,已经可以满足绝大部分的工作场景了,让机器人替我们工作已经不再是梦寐以求…

【Leetcode每日一题】 分治 - 数组中的第K个最大元素(难度⭐⭐)(63)

1. 题目解析 题目链接:数组中的第K个最大元素 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 在快速排序算法中,一种常见的优化策略是将数组划分为三个区间。这种划分方式可以更加精确地定位到…

如何快速学习盲打键盘的指法

学习盲打键盘的指法需要一定的时间和练习,但是以下几个方法可以帮助你加快学习的速度: 掌握正确的手位:了解标准的键盘布局以及手指应该放置的位置是学习盲打的第一步。在QWERTY键盘上,你的左手应该放在ASDF键上,右手应…

修改键盘映射(改易误触按键)

原文:https://blog.iyatt.com/?p14730 测试环境 Windows 11 专业版 23H2 Beta 预览版 操作 步骤 打开注册表 地址栏复制粘粘回车进入路径:计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout 右侧空白处右键新建二进制…

虚拟化及Docker基础

一、虚拟化 1.1 云端 1.2 云计算服务模式分层 1.3 虚拟化架构 1.3.1 寄居架构 1.3.2 原生架构 1.4 虚拟化产品 1.4.1 仿真虚拟化产品(对系统硬件没有要求,性能最低) 1.4.2 半虚拟化 (虚拟机可以使用真机物理机&#xff09…

Linux-System V信号量

目录 System V信号量创建或打开信号量操作信号量信号量撤销值控制信号量IPC_RMIDIPC_STATIPC_SETGETVALSETVALGETPIDGETNCNTGETZCNT 代码示例 System V信号量 信号量的作用和消息队列不太一样,消息队列的作用是进程之间传递消息。而信号量的作用是为了同步多个进程…

【Qt】.ui文件转.h文件

1、打开qt命令行 2、转换 uic -o ui.h mainwindow.ui