x264 编码器 AArch64汇编系列:4x4 块帧内预测函数

2024-08-24 14:20

本文主要是介绍x264 编码器 AArch64汇编系列:4x4 块帧内预测函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

x264_predict_4x4_h_aarch64

  1. 汇编函数原理分析
  • 声明一个名为 predict_4x4_h_aarch64 的函数,export=1 标明将其导出,以便其他模块或程序可以调用;
  • ldurb w1, [x0, #0*FDEC_STRIDE-1]:从寄存器 x0 指向的地址开始,减去1,表示向左偏移一个像素偏移量,然后加载该地址处的一个字节数据到 w1 寄存器的低8位,同时将 w1 的其余位清零;
    • ldurb这个指令用于从内存中加载一个单字节(8位)的数据到寄存器的低8位,并将该寄存器的剩余24位清零(零扩展);
  • mov w5, #0x01010101:将立即数 0x01010101 移动到 w5 寄存器,这个数值会占据整个寄存器,即 w5 的所有位都被设置为 0x01;
  • ldrb w2, [x0, #1*FDEC_STRIDE-1]:从寄存器 x0 指向的基地址加上偏移量,方括号内的内容表示基地址(x0)加上偏移量,减去 1 表示向左偏移一个像素偏移量,然后加载该地址处的一个字节数据到
    w2 寄存器的低8位,同时将 w2 的其余位清零,减 1 来确保不会越界;
  • ldrb w3, [x0, #2*FDEC_STRIDE-1]:类似,从寄存器 x0 指向的基地址加上偏移量,减去 1 表示向左偏移一个像素偏移量,然后加载该地址处的一个字节数据到 w3 寄存器的低 8 位;

这篇关于x264 编码器 AArch64汇编系列:4x4 块帧内预测函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1102729

相关文章

Oracle的to_date()函数详解

《Oracle的to_date()函数详解》Oracle的to_date()函数用于日期格式转换,需要注意Oracle中不区分大小写的MM和mm格式代码,应使用mi代替分钟,此外,Oracle还支持毫... 目录oracle的to_date()函数一.在使用Oracle的to_date函数来做日期转换二.日

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

C++11的函数包装器std::function使用示例

《C++11的函数包装器std::function使用示例》C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解... 目录一、std::function 的基本用法1. 基本语法二、如何使用 std::function

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

hdu1171(母函数或多重背包)

题意:把物品分成两份,使得价值最接近 可以用背包,或者是母函数来解,母函数(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v) 其中指数为价值,每一项的数目为(该物品数+1)个 代码如下: #include<iostream>#include<algorithm>

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

C++操作符重载实例(独立函数)

C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码: c1802.cpp源代码: D:\YcjWork\CppTour>vim c1802.cpp #include <iostream>using namespace std;/*** 以独立函数

函数式编程思想

我们经常会用到各种各样的编程思想,例如面向过程、面向对象。不过笔者在该博客简单介绍一下函数式编程思想. 如果对函数式编程思想进行概括,就是f(x) = na(x) , y=uf(x)…至于其他的编程思想,可能是y=a(x)+b(x)+c(x)…,也有可能是y=f(x)=f(x)/a + f(x)/b+f(x)/c… 面向过程的指令式编程 面向过程,简单理解就是y=a(x)+b(x)+c(x)