Windows下编译最新的x264

Windows下编译最新的x264 X264更新的比较快,每天都有更新,但算法模块,基本结构是没有多大变化的。x264都是用C语言写的包括C99,但C99语法是在VC中是没法用的(当然有精力可以全部改成C89),生成的.a库是也是没法调用的,如何转化成可用.lib库就比较重要了。...
阅读(2719) 评论(1)

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

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

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

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

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

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

微处理器的两种结构比较--DSP, ARM, GCPU

微处理器的两种结构比较--DSP, ARM, GCPU  冯·诺依曼结构 VS 哈佛结构 1、冯·诺依曼结构   冯·诺依曼结构又称作普林斯顿体系结构(Princetionarchitecture)。   1945年,冯·诺依曼首先提出了“存储程序”的概念和二进制原理,后来,人们把利用这种概念和原理设计的电子计算机系统统称为“冯·诺依曼型结构”计算机。冯·诺依曼结构的处理器使用同一个存...
阅读(3392) 评论(0)

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

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

AMD公司的灵魂Athlon产品回忆录

在CPU领域里的竞争,AMD与Intel从来就没有停止过,AMD也并没有如几年前人们所料想的那样被Intel压着打,反而步步紧逼Intel做出了种种不得以的决策。从AMD第一块CPU芯片开始,就已经发动了对Intel的猛烈进攻。     Athlon已不仅是一款处理器名称,而成为AMD公司的灵魂。这是一个沿用了8年而不朽的称谓,它见证了AMD由受人摆布到走向成熟,见证了AMD与Intel 历...
阅读(6065) 评论(0)

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

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

函数命名规则及调用约定(__cdecl,__stdcall,__fastcall)

函数命名规则及调用约定(__cdecl,__stdcall,__fastcall) __cdecl是C/C++和MFC程序默认使用的调用约定,也可以在函数声明时加上__cdecl关键字来手工指定。采用__cdecl约定时,函数参数按照从右到左的顺序入栈,并且由调用函数者把参数弹出栈以清理堆栈。因此,实现可变参数的函数只能使用该调用约定。由于每一个使用__cdecl约定的函数都要包含清理堆栈的代码...
阅读(1326) 评论(0)

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

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

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

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

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

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

汇编中参数的传递和堆栈修正

在 Win32汇编中,我们经常要和 Api 打交道,另外也会常常使用自己编制的类似于 Api 的带参数的子程序,本文要讲述的是在子程序调用的过程中进行参数传递的概念和分析。一般在程序中,参数的传递是通过堆栈进行的,也就是说,调用者把要传递给子程序(或者被调用者)的参数压入堆栈,子程序在堆栈取出相应的值再使用,比如说,如果你要调用 SubRouting(Var1,Var2,Var3),编译后的最终代...
阅读(1058) 评论(0)

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

一、简介 简介 作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿 Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在 Linux 的启动部分。由于这部分代码与硬件的关系非常密切,即使是 C 语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地...
阅读(1884) 评论(0)
21条 共2页1 2 下一页 尾页
    个人资料
    • 访问:416173次
    • 积分:4575
    • 等级:
    • 排名:第7123名
    • 原创:83篇
    • 转载:3篇
    • 译文:1篇
    • 评论:191条
    博客专栏
    最新评论