视频编解码初步
2016-05-24 09:16
92 查看
字节 半字 字 双字 四字x86: b w d q dqmips: b h w d q源码目录:run-openh264/: 运行程序的脚本文件openh264/: 我修改的openh264-nomodify/: 未修改,直接用git clone http://cgit.loongnix.org/cgit/openh264 下载的。25的服务器上:scp -r run-openh264/ loongson@10.20.42.30:~cd /home/build/scp -r toolchain/ root@10.20.42.30:/opt/本地机器上:cd /opt/mv toolchain/* .tar -xf gdb.tar.gztar -xf gcc-4.8.3-1.loongson.3.tar.bz2mv gcc-4.8.3-1.loongson.3 gcc-4.8.3vim bash,将其内容拷贝到文件/etc/bashrcsource /etc/bashrcwhich gcccd openh264-nomodify/make -j4:编译cp run-openh264/* ../g.sh:运行,生成norc_noaq_nodenois_noscene8.264md5sum norc_noaq_nodenois_noscene8.264 :生成校验码ffplay norc_noaq_nodenois_noscene8.264mplayer norc_noaq_nodenois_noscene8.264提交:git format-patch -1patch -p1 < 0001-codec-processing-add-function-VAACalcSadSsd_mmi.patchgit push origin HEAD:refs/for/loongson-v1.5.3-Firefox39git pullgit reset --hard 版本号readelf -h h264decmake -B ENABLE64BIT=No BUILDTYPE=Release调试:gdb ./h264encr 参数x/10i $pcinfo reg浅谈C/C++堆栈指引: /article/2957868.html社区源码库: http://gerrit.loongnix.org/Gerrit系统使用帮助: http://10.2.5.21/showdoc/index.php/6修改函数:参考x86汇编:codec/processing/src/x86/vaa.asm中函数VAACalcSadBgd_sse2编写mips汇编:codec/processing/src/vaacalc/vaacalculation.cpp中函数VAACalcSadBgd_mmi对应的C源代码:codec/processing/src/vaacalc/vaacalcfuncs.cpp中函数VAACalcSadBgd_c龙芯开源社区: http://www.loongnix.org/cgitMMX指令集: /article/9399399.htmlSSE2指令集: http://blog.sina.com.cn/s/blog_54d5cd260100oduv.htmlGCC在C语言中内嵌汇编 asm volatile : /article/1907472.htmlcodec/encoder/core/src/deblocking.cppcodec/common/x86/deblock.asmcodec/common/src/deblocking_common.cpp
long long f0=0,f2=0,f4=0,f6=0,f8=0,f10=0,f12=0,f14=0; long long f16=0,f18=0,f20=0,f22=0,f24=0,f26=0,f28=0,f30=0;
"dmfc1 %[f0] , $f0 \n\t" "dmfc1 %[f2] , $f2 \n\t" "dmfc1 %[f4] , $f4 \n\t" "dmfc1 %[f6] , $f6 \n\t" "dmfc1 %[f8] , $f8 \n\t" "dmfc1 %[f10] , $f10 \n\t" "dmfc1 %[f12] , $f12 \n\t" "dmfc1 %[f14] , $f14 \n\t" "dmfc1 %[f16] , $f16 \n\t" "dmfc1 %[f18] , $f18 \n\t" "dmfc1 %[f20] , $f20 \n\t" "dmfc1 %[f22] , $f22 \n\t" "dmfc1 %[f24] , $f24 \n\t" "dmfc1 %[f26] , $f26 \n\t" "dmfc1 %[f28] , $f28 \n\t" "dmfc1 %[f30] , $f30 \n\t"
: [pPixCb]"+&r"((unsigned char *)pPixCb), [pPixCr]"+&r"((unsigned char *)pPixCr), [f0]"=&r"(f0), [f2]"=&r"(f2), [f4]"=&r"(f4), [f6]"=&r"(f6), [f8]"=&r"(f8), [f10]"=&r"(f10), [f12]"=&r"(f12), [f14]"=&r"(f14), [f16]"=&r"(f16), [f18]"=&r"(f18), [f20]"=&r"(f20), [f22]"=&r"(f22), [f24]"=&r"(f24), [f26]"=&r"(f26), [f28]"=&r"(f28), [f30]"=&r"(f30) : [iStride]"r"((int)iStride), [iAlpha]"r"(iAlpha), [iBeta]"r"(iBeta), [pTC]"r"((unsigned char *)pTC), [tmp]"r"((unsigned char *)tmp) : "memory", "$8", "$9", "$10", "$11", "$12", "$13", "$15", "$f0", "$f2", "$f4", "$f6", "$f8", "$f10", "$f12", "$f14", "$f16", "$f18", "$f20", "$f22", "$f24", "$f26", "$f28", "$f30" );
printf("f0:%x\tf2:%x\tf4:%x\tf6:%x\tf8:%x\tf10:%x\tf12:%x\tf14:%x\n",f0,f2,f4,f6,f8,f10,f12,f14); printf("\n"); printf("f16:%x\tf18:%x\tf20:%x\tf22:%x\tf24:%x\tf26:%x\tf28:%x\tf30:%x\n",f16,f18,f20,f22,f24,f26,f28,f30); printf("\n");
asm volatile ( ".set arch=loongson3a \n\t"
相关文章推荐
- 用OpenCV对视频进行截图
- java入门教程-1.7Java类和对象的概念
- Android install error
- Cornerstone永久试用
- infiniband带宽测试方法1 ib_read/write_bw/lat
- 每日遇到问题
- linux解压 tar命令
- java web前端攻城狮 学习路线图
- Java Iterator接口简单实例
- java入门教程-1.6第一个Java程序示例——Hello World!
- NVIDIA Tesla K80:怪物般的双芯计算卡
- 给OpenCV(2.x)增加汉字输出功能
- STM32片上Flash内存映射、页面大小、寄存器映射
- 多线程获取返回值的类
- C#中如何使用 XmlReader 读取XML文件
- ReflectionToStringBuilder类
- 快速学习django
- PS制作创意漂亮的水月洞天艺术海报
- Ubantu下Eclipse代码提示功能怎么设置
- 韩顺平Spring框架学习,学习笔记(二)