标题:[原创]发一个作品吧
取消只看楼主
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
结帖率:95.65%
 问题点数:0 回复次数:9 
[原创]发一个作品吧
最近在研究H.264这个东东。
今天又时间,本来打算写一个YUVViewer的程序的,结果没有完成,却做成了一个图片浏览程序。
程序是在VC++下用WinAPI书写的,目前能支持浏览bmp图片和CIF格式YUV序列,个人感觉效果还是非常不错的。
大家可以下载看看,源代码已经公布,不再提供可执行程序下载。
代码下载地址:
http://home.goofar.com/npucs/H264.rar
使用方法:
命令行下YUVView filename.bmp
或者直接将bmp文件拖放到YUVViewer.exe上打开。



[此贴子已经被作者于2007-4-11 22:58:27编辑过]

搜索更多相关主题的帖子: 源代码 作品 home bmp quot 
2007-04-08 00:14
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
得分:0 
程序其实都是WinAPI的调用而已,没有什么算法可言
不过这个程序还是有一些小技巧,包括快速的GDI作图,无标题栏的可拖动窗口,全屏显示和位图缩放等。
2007-04-08 10:37
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
得分:0 
如果有可能以后可以加入对更多图片格式的支持,界面方面也可以再做得更好一些。
以前都很少做Windows程序的,有做也只是在公司用MFC做,所以自己对Windows编程还是不很熟悉。、
这次这个程序效果还算比较满意,而且也学到了很多东西,主要是WinAPI和GDI方面的。
后面可以考虑加入鼠标拖放和右键菜单,还有就是对PEG的支持。
实际上还是想做成一个简单的播放器,能浏览BMP、JPEG、GIF等,还能播放YUV序列、WAV、MIDI等。
如果使用DirectShow做得话会容易许多,并且我也成功做过。但是我还是希望自己写JPEG、GIF等的解码。

[此贴子已经被作者于2007-4-8 10:58:30编辑过]

2007-04-08 10:38
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
得分:0 
不管什么程序放大都会有失真的
我的这个程序没有什么算法可言,都是使用的WinAPI
缩放是通过调用StretchBlt来实现的
缩放的算法我也做过,原理也都很简单,在我的VGA13H中就有实现,采用的是最近邻算法
当然还有双线性插值算法,但是需要重新计算采样点的RGB值,在256色模式下不好实现
缩放就是重建模拟图像,再重新采样,如此而已。

[此贴子已经被作者于2007-4-8 13:23:37编辑过]

2007-04-08 13:23
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
得分:0 

今天加入了鼠标拖放的功能
并且重写了代码

2007-04-10 22:18
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
得分:0 

22:55 2007-4-11
----------------
加入了对CIF格式的YUV序列的支持
成为了真正的YUVViewer了

YUV测试序列下载地址:
http://trace.eas.asu.edu/yuv/index.html

2007-04-11 22:57
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
得分:0 

发现GDI的StretchBlt也是有利用硬件加速特性的。
YUVViewer在我的笔记本(GF7300显卡)上,全屏播放时都能保持25帧的速度
但是在公司的电脑(双核3.06G CPU,集成显卡)上,全屏播放时就非常卡。

2007-04-13 13:44
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
得分:0 
改进了代码
消除了窗口尺寸改变时的画面闪烁
2007-05-10 19:25
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
得分:0 

晕,我又不是只会 DOS 编程。
Windows、WinCE、Linux 的开发也都做过。VC/EVC,MFC什么的也都用过。
其他各种语言,只要是自己见过的,也都差不多都用过,只是不很深入。
我对 Windows 平台的研究也不很深入。只能写一些简单的应用程序。
上面那个程序,其实可以使用 DirectShow 来做成一个播放器。但是我希望解码的部分也自己写。
要解码 H.264,真的很难,目前也就是实现了一个 YUVViewer 的功能。
在以后会加入 JPEG、PCX,然后是 MPEGx 系列,和 H.26x 系列的解码。
JPEG 的 Codec 目前我正在书写,也希望能早日完成。
目前自己研究的比较深入的还是 DOS、WinCE、图形编程、BootLoader 等。

[此贴子已经被作者于2007-6-9 12:36:32编辑过]

2007-06-09 12:34
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
得分:0 
当然是专心一些好,如果太贪心,什么都想做,反而什么都做不好,最后只是一事无成啊。

[此贴子已经被作者于2007-6-11 15:15:19编辑过]


2007-06-11 15:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-130056-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.738397 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved