矩阵转置的SSE汇编优化艺术以及ARM cortext 汇编优化

平时我们做图像处理或者视频处理, 很多地方会用到矩阵转置: 比如: DCT变换, 图像旋转, 图像滤波, 以及一些数据的内存行和列的交换等, 会大量使用转置这个动作. 然而由于数据量很大,处理速度很慢!如何来提高处理速度呢? 下面看看分析:  HEVC中有个地方是如下这样实现(直接行和列对应的位置交换): Pel tmp; for (k=0;k<blkSize...
阅读(5647) 评论(6)

Intrinsics头文件与SIMD指令集、Visual Studio版本对应表!

Intrinsics头文件与SIMD指令集、Visual Studio版本对应表!   File 描述 VS VisualStudio intrin.h All Architectures 8.0 2005 mmintrin.h MMX intrinsics...
阅读(2559) 评论(2)

程序优化总结--万变不离其宗

程序优化总结--万变不离其宗 空间优化, 时间优化. 目前我们就在PC上,所以主要目标是时间优化. 第一步: 算法结构层面的优化.         搞懂算法,从宏观层面优化结构,能在一个层面做的事情,尽量合并一起做! ...        第二步: C语言层面的优化.         从函数,语言层面优化程序! 1.减少内存访问! 2.合并运算! 3.空间换时间! 4.循环...
阅读(2506) 评论(2)

RISC、CISC、 SIMD、FPU、MMX、SSE、SSEX、AVX、3D Now以及DSP、ARM的Neon简介

CPU的指令集从主流的体系结构上分为精简指令集和复杂指令集,而在普通的计算机处理器基本上是使用的复杂指令集。在计算机早期的发展过程中,CPU中的指令集是没有划分类型的,而是都将各种程序需要相配合的指令集成到CPU中,但是随着科技的进步,计算机的功能也越来越强大,计算机内部的元件也越来越多,而且越来越复杂,CPU的指令也相应的变得十分复杂,而在使用过程中,并不是每一条指令都要完全被执行,在技术人员的...
阅读(7154) 评论(0)

Intel英特尔历代经典 CPU 产品回顾

悉数历史 英特尔历代经典 CPU 产品回顾 从英特尔于 1971 年推出首款 4004 微处理器到现在, 英特尔处理器已经走过 了 40 个年头。在告别 13 年传奇品牌奔腾之后,我们又迎来新一代酷睿 i 双核处 理器。现在,我们就来回顾一下英特尔处理器 40 年来的发展历程。 1971 年:4004 微处理器 4004 是英特尔推出的第一款微处理器。这一突破性的发明最先应用于 Busicom...
阅读(6796) 评论(0)

AT&T与Intel汇编语言的比较

AT&T与Intel汇编语言的比较    我们知道,Linux是Unix家族的一员,尽管Linux的历史不长,但与其相关的很多事情都发源于Unix。就Linux所使用的386汇编语言而言,它也是起源于Unix。Unix最初是为PDP-11开发的,曾先后被移植到VAX及68000系列的处理器上,这些处理器上的汇编语言都采用的是AT&T的指令格式。当Unix被移植到i386时,自然也就采用了AT&T...
阅读(1351) 评论(0)

IA-64位微处理器及其编程

ADM64架构概述 一、AMD64架构引入以下新的特征。 1)、寄存寄存器的扩展。     。8个新的通用寄存器(GPR)     。所有的16个GPR都是64位字宽     。8个新的128位XMM寄存器     。对于所有的GPR都用统一的字节寄存器寻址     。访问扩展寄存器的64位指令前缀 2)、长模式     。升到64位虚拟地址(最大支持)     。64位指令指...
阅读(2024) 评论(0)

基于SSE指令集的程序设计简介

SSE技术简介   Intel公司的单指令多数据流式扩展(SSE,Streaming SIMD Extensions)技术能够有效增强CPU浮点运算的能力。Visual Studio .NET 2003提供了对SSE指令集的编程支持,从而允许用户在C++代码中不用编写汇编代码就可直接使用SSE指令的功能。MSDN中有关SSE技术的主题[1]有可能会使不熟悉使用SSE汇编指令编程的初学者感到困...
阅读(1150) 评论(0)

Visual C 中 Inline ASM 内联汇编的使用

一、 优点     使用内联汇编可以在 C/C++ 代码中嵌入汇编语言指令,而且不需要额外的汇编和连接步骤。在 Visual C++ 中,内联汇编是内置的编译器,因此不需要配置诸如 MASM 一类的独立汇编工具。这里,我们就以 Visual Studio .NET 2003 为背景,介绍在 Visual C++ 中使用内联汇的相关知识(如果是早期的版本,可能会有些许出入)。     内联汇编代...
阅读(2123) 评论(0)

Linux 汇编语言开发指南 Intel 格式--AT&T 格式

一、简介 简介 作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿 Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在 Linux 的启动部分。由于这部分代码与硬件的关系非常密切,即使是 C 语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地...
阅读(1864) 评论(0)

X86汇编与VS2008混合编程--仅供入门学习参考

X86汇编与VS2008混合编程--仅供入门学习参考   汇编文件保存为扩展名*.asm, 把汇编文件加入VS工程,点击文件右键,进入 编译选项 把属性中tool 选项 修改为Custom Build Tool 然后填写如下选项内容: command line: yasm -I..\..\common\x86\ -f win32 -O2 -DPREFIX -o "$(IntDir)\$(...
阅读(2882) 评论(0)

开博首篇

开博首篇     经过这么多年在IT界发展,个人编程技能和音视频的相关知识也日益深厚,发现很多东西也是可以记录下来,方便自己和大家查看,分享项目经验和人生经历,毕竟有些事情或者经验教训,如果不及时记录下来,这些很有价值的东西会随着时间的增长慢慢的从记忆中消失!         本博客主要关注:     1. 各种视频压缩标准(MPEG2, MPEG4, H261/2/3/4,X264...
阅读(2825) 评论(3)
    个人资料
    • 访问:414288次
    • 积分:4560
    • 等级:
    • 排名:第7105名
    • 原创:83篇
    • 转载:3篇
    • 译文:1篇
    • 评论:191条
    博客专栏
    最新评论