??xml version="1.0" encoding="utf-8" standalone="yes"?>伊人久久免费视频,精品永久久福利一区二区,亚洲午夜无码久久久久http://www.shnenglu.com/gtwdaizi/category/5207.htmlzh-cnFri, 17 Apr 2009 06:11:59 GMTFri, 17 Apr 2009 06:11:59 GMT60J2ME中Socket如何正确d~冲Z的数?/title><link>http://www.shnenglu.com/gtwdaizi/articles/36778.html</link><dc:creator>郭天?/dc:creator><author>郭天?/author><pubDate>Thu, 16 Apr 2009 01:34:00 GMT</pubDate><guid>http://www.shnenglu.com/gtwdaizi/articles/36778.html</guid><wfw:comment>http://www.shnenglu.com/gtwdaizi/comments/36778.html</wfw:comment><comments>http://www.shnenglu.com/gtwdaizi/articles/36778.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/gtwdaizi/comments/commentRss/36778.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/gtwdaizi/services/trackbacks/36778.html</trackback:ping><description><![CDATA[<p dir=ltr><span style="COLOR: #ff0000">1.问题描述</span><br><br>在wkt模拟器上, 通过以下代码可以正确的读出数?<br> <br><span style="COLOR: #0000ff"> conn = (SocketConnection) Connector.open(url, Connector.READ_WRITE, true);<br>  <br>  is = conn.openDataInputStream();<br>  os = conn.openDataOutputStream();<br>  // 创徏登陆报文<br>  loginPacketBytes = generateLoginPacket();<br> <br>  // 发送登陆报?br>  // System.out.println("****发送登陆报?***");<br>  os.write(loginPacketBytes, 0, loginPacketBytes.length);<br>  os.flush();<br> <br>  // 先读取ConstantValue.HEADER_LENGTH个字?循环遍历L正确的魔?br>  recByteNum = is.read(recBytes, 0, ConstantValue.READ_LENGTH);</span><br><br>若从服务器真是返回的字节数是100个字? ?font color=#0000ff>ConstantValue.READ_LENGTH</font>定义的长度大?00.<br> 那么在模拟器上没有问? 能够d100个字?<br><br>但是C真机上面试, 若定义的要读取的字节数大于实际传送的字节? 那就会出现异常情? </p> DҎp不到数据. <br><br><span style="COLOR: red">2.解决Ҏ<br></span><br>先读取一部分数? 得到报文?一般都有报文头, 报文头中都有整个报文的总长?<br>解析报文? q里需要注意的是可能收到的W一个数据ƈ不就是报文的有效数据, 报文的有效数据可能ƈ不在数据~冲区的首位|? 所以需要正找到报文头, Ҏ各不相同, 有的是用魔数这U方? 有个靠判断某个值是否等于报文的总长? MC有效报文的开始位|? q里记着index,<br>然后创徏一个字节缓冲区, 刚好来接受剩余的数据<br><span style="COLOR: #0000ff">byte addBytes[] = new byte[recHeader.getBufferSize() + index - (recByteNum - ConstantValue.HEADER_LENGTH)];<br>is.readFully(addBytes);</span><br>q样一般就可以正确的读出有效数据了. <br><br><span style="COLOR: red"><strong>3.最新方?/strong></span><br>   int loop = 0;<br>   int hasReadLen = 0;<br>   <br>   // d报文?br>   while (true)<br>   {<br>    loop++;<br>    <br>    if (loop >= m_oNET_DVR.m_iTimeOutVal / NET_DVR_PARAM.LOOP_INTERVAL)<br>    {<br>     SDK.SetLastError(NET_DVR_Dec.NET_DVR_NETWORK_RECV_TIMEOUT);<br>     return NET_DVR_Dec.RET_FAIL;<br>    }<br>     <br>    if (m_oCfgIs.available() >= NET_DVR_PARAM.REC_PACKET_HEADER_LENGTH)<br>    {<br>     // d报文?br>     recByteNum = m_oCfgIs.read(m_byCfgRecBuf, 0, NET_DVR_PARAM.REC_PACKET_HEADER_LENGTH);<br>     <br>     hasReadLen += recByteNum;<br>     <br>     if (recByteNum == NET_DVR_PARAM.REC_PACKET_HEADER_LENGTH)<br>     {<br>      // 解析报文总长?br>      pakcetTotalLen  = NetHelper.convertNetBytesToInt(m_byCfgRecBuf, 0);<br>      break;<br>     }<br>     else<br>     {<br>      SDK.SetLastError(NET_DVR_Dec.NET_DVR_NETWORK_RECV_ERROR);<br>      return NET_DVR_Dec.RET_FAIL;<br>     }<br>    }<br>    <br>    Thread.sleep(NET_DVR_PARAM.LOOP_INTERVAL);<br>   }<br>   <br>   // d报文?br>   while (true)<br>   {<br>    loop++;<br>    <br>    if (loop >= m_oNET_DVR.m_iTimeOutVal / NET_DVR_PARAM.LOOP_INTERVAL)<br>    {<br>     SDK.SetLastError(NET_DVR_Dec.NET_DVR_NETWORK_RECV_TIMEOUT);<br>     return NET_DVR_Dec.RET_FAIL;<br>    }<br>    <br>    // d剩余数据<br>    recByteNum = m_oCfgIs.read(m_byCfgRecBuf, hasReadLen, pakcetTotalLen - hasReadLen);<br>    <br>    hasReadLen += recByteNum;<br>    <br>    // d完毕<br>    if (hasReadLen >= pakcetTotalLen)<br>    {<br>     break;<br>    }<br>    else<br>    {<br>     Thread.sleep(100);<br>     continue;<br>    }<br>   } <img src ="http://www.shnenglu.com/gtwdaizi/aggbug/36778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/gtwdaizi/" target="_blank">郭天?/a> 2009-04-16 09:34 <a href="http://www.shnenglu.com/gtwdaizi/articles/36778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[J2ME]在J2ME开发中获取pȝ属?http://www.shnenglu.com/gtwdaizi/articles/70159.html郭天?/dc:creator>郭天?/author>Tue, 23 Dec 2008 06:23:00 GMThttp://www.shnenglu.com/gtwdaizi/articles/70159.htmlhttp://www.shnenglu.com/gtwdaizi/comments/70159.htmlhttp://www.shnenglu.com/gtwdaizi/articles/70159.html#Feedback0http://www.shnenglu.com/gtwdaizi/comments/commentRss/70159.htmlhttp://www.shnenglu.com/gtwdaizi/services/trackbacks/70159.html在J2ME开发中Q我们经帔R要和手机pȝq行交互Q获得一些和pȝ相关的信息,在J2ME API设计中,提供了一pd的系l属?
?   CLDC、MIDP和JTWI属?/div>
属性名U?/div>
属性作?/div>
microedition.profiles
代表手机支持的MIDP版本Q返回格式gؓ“MIDP-1.0”?#8220;MIDP-2.0”
microedition.configuration
代表手机支持的CLDC版本Q返回格式gؓ“CLDC-1.0”?#8220;CLDC-2.0”
microedition.locale
代表手机所在的国家或地区,q回值格式ؓ“en-US”
microedition.platform
代表手机的品牌和型号QNokia手机的返回值格式ؓ“Nokia6310i/4.42”
microedition.encoding
代表手机默认的字W集名称Q返回值格式ؓ“ISO-8859-1”
microedition.commports
代表手机可以使用的串口列表,q回g各个串口之间使用逗号分隔
microedition.hostname
MIDP2.0定义Q代表本C机名Uͼ需要手机支持?/div>
microedition.jtwi.version
代表手机支持的JTWI版本Q值必L“1.0”
 ? 可选包属?/div>
属性名U?/div>
属性作?/div>
microedition.media.version
代表手机支持的MMAPI版本Q如果不支持则返回null
microedition.pim.version
代表手机支持的PIM API版本Q如果不支持则返回null
microedition.m3g.version
代表手机支持的M3G API版本Q如果不支持则返回null
microedition.location.version
代表手机支持的Location API版本Q如果不支持则返回null
Bluetooth.api.version
代表手机支持的BT API版本Q如果不支持则返回null
microedition.io.file.
FileConnection.version
代表手机支持的FC API版本Q如果不支持则返回null
microedition.global.version
代表手机支持的Mobile Internationalization API(JSR-238)版本Q如果不支持则返回null
microedition.chapi.version
代表手机支持的CH(Content Handler) API(JSR211)版本Q如果不支持则返回null
microedition.sip.version
代表手机支持的SIP API版本Q如果不支持则返回null
 ? MMAPI属?/div>
属性名U?/div>
属性作?/div>
supports.mixing
代表手机是否支持混音(同时播放多个Player)Q返回gؓ“true”?#8220;false”
supports.audio.capture
代表手机是否支持声音捕获(录音)Q返回gؓ“true”?#8220;false”
supports.video.capture
代表手机是否支持视频捕获(录像)Q返回gؓ“true”?#8220;false”
supports.recording
代表手机是否支持记录(record)Q返回gؓ“true”?#8220;false”
audio.encodings
代表手机支持的声x式,q回值格式ؓ“encoding=audio/wav”Q多个格式之间用至一个空D行间?/div>
video.encodings
代表手机支持的视频格式,q回值格式ؓ“encoding=video/3gpp”Q多个格式之间用至一个空D行间?/div>
video.snapshot.encodings
代表手机使用getSnapshotҎ获得的视频快照格式,q回值格式ؓ“encoding=png”Q多个格式之间用至一个空D行间?/div>
streamable.contents
代表手机支持的流媒体格式Q返回null代表不支?/div>
? Wireless Messaging API属?/div>
属性名U?/div>
属性作?/div>
wireless.messaging.sms.smsc
代表手机发送短信时的短信服务中心号?/div>
? FileConnection API
属性名U?/div>
属性作?/div>
fileconn.dir.photos
代表手机中存储照片和其它囄的目录,例如“file:///c:/My files/ Images /”
fileconn.dir.videos
代表手机中存储视频的目录Q例?#8220;file:///c:/My files/Video clips/”
fileconn.dir.tones
代表手机中存储声音的目录Q例?#8220;file:///c:/My files/Tones/”
fileconn.dir.memorycard
代表手机中存储卡的根目录。例?#8220;file:///d:/”
fileconn.dir.private
(Nokia S40不支? 
代表手机中MIDlet的私有工作目录,例如“file:///c:/System/MIDlets/[1015f294]/scratch”
fileconn.dir.photos.name
代表手机中图片目录的名称Q例?#8220;Images”
fileconn.dir.videos.name
代表手机中视频目录的名称Q例?#8220;Video clips”
fileconn.dir.tones.name
代表手机中声音目录的名称Q例?#8220;Sound clips”
file.separator
代表手机中的文g分隔W,例如“/”
fileconn.dir.memorycard.name
代表手机中存储卡的名Uͼ例如“Memory card”
 使用q些属性,可以获得在程序运行过E中需要的很多和系l相关的信息Q也可以使用?中的属性来获得手机是否支持对应的可选包{信息?br>实际使用CZQString name = System.getProperty(“microedition.platform”);

注意Q如果需要获得JVM或jad文g中的信息Q需要用MIDletcM的getAppPropertyҎQ其属性名则需要查阅jad文g的设定,和本文所q的属性名无关?br>


]]>[J2ME]文g操作 一http://www.shnenglu.com/gtwdaizi/articles/44761.html郭天?/dc:creator>郭天?/author>Fri, 13 Jun 2008 11:23:00 GMThttp://www.shnenglu.com/gtwdaizi/articles/44761.htmlhttp://www.shnenglu.com/gtwdaizi/comments/44761.htmlhttp://www.shnenglu.com/gtwdaizi/articles/44761.html#Feedback0http://www.shnenglu.com/gtwdaizi/comments/commentRss/44761.htmlhttp://www.shnenglu.com/gtwdaizi/services/trackbacks/44761.html阅读全文

]]>
手机开发^台指南、教E和资料介绍[转蝲]http://www.shnenglu.com/gtwdaizi/articles/47094.html郭天?/dc:creator>郭天?/author>Tue, 15 Apr 2008 01:31:00 GMThttp://www.shnenglu.com/gtwdaizi/articles/47094.htmlhttp://www.shnenglu.com/gtwdaizi/comments/47094.htmlhttp://www.shnenglu.com/gtwdaizi/articles/47094.html#Feedback0http://www.shnenglu.com/gtwdaizi/comments/commentRss/47094.htmlhttp://www.shnenglu.com/gtwdaizi/services/trackbacks/47094.html g Posted:2008-3-22 10:42:55   日志 短讯 邮箱 好友

手机可分为智能手机开发和feather phone手机。开发^台可分ؓ开攑ּq_和封闭式q_Q开攑ּq_包括symbian、windows mobile、linux、Android、BlackBerry、j2me、brew{,支持手机应用E序通过OTA下蝲和安装;闭式^台包括MTK、展讯、TI、飞利{。下面分别介l?
1Q?SymbianQ?
Symbianq_为目前智能手机市场的老大Q智能手机全球市场占70%以上Q在Ƨ洲和亚z占l对优势Q只是在国市场份额得可怜,希望今年nokia在美国发力,赶上其它手机。根据UI风格的不同,Symbian分ؓs60和UIQ两个q_Q其中nokia使用s60q_Q烦爱和moto采用UIQq_。Symbianq_׃发展旉较长Q又是市大Q目前中文资料也较多Q不像几q前刚接触时只有英文资料。以下书c值得推荐Q?
《SYMBIAN OS软g开发开?-应用C++开发智能手机应用程序入门》(其中UI部分为UIQq_Q,
《Series 60 应用E序开发》(以s60q_ZQ重Ҏ荐)
《Symbian OS C++手机应用开?Q第2P?
另外今年出来一本有关uiq3.0的新书,值得期待?
关于symbian的开发网站和论坛Q?
诺基亚论坛:最好的symbian论坛Q?
http://discussion.forum.nokia.com/forum/forumdisplay.php?f=6Q其中还有中文论坛?
UIQ官方论坛Q?a target=_blank>http://developer.uiq.com/
Symbian公司中文论坛Q?a target=_blank>http://developer.symbian.com/forum/forum.jspa?forumID=37
NewLC|站Q?a target=_blank>http://www.newlc.com/
索爱uiq官方论坛Q?a target=_blank>http://developer.sonyericsson.com/category.jspa?categoryID=3
索爱uiq中文论坛http://developer.sonyericsson.com/forum.jspa?forumID=133

2Qwindows mobileQ?
手机全球市场中windows mobile?2%左右市场份额。开发与windowsq_cMQ所以熟悉windows开发的能很快上手。目前没有较好的针对windows mobile的书Q经怹c《Windows E序设计Q第5版)》对于开发win32E序依然是最好的Q经典的书就是牛啊!虽然pocket pc支持MFCQ但smartphone不支持,所以ؓ了更好的ULQ用win32开发较好。由本书做基Q再参考windows mobile的sdk以及CZ代码Q应该能很快上手?
关于windows mobile的开发网站和论坛Q?
Windows mobile中文C֌Q?a target=_blank>http://www.winbile.net/BBS/
Pocket pc forumQ?a target=_blank>http://www.windowsmobiledn.com/forum/
微Y官方|站Q?a target=_blank>http://www.microsoft.com/windowsmobile/developers/default.mspx

3Q?linuxQ?
手机全球市场中linux手机仅占可怜的4.4%市场份额。原来motoq出q不linux手机Q如A768、A1200、E680、E2、E6、V8{,07q?月䆾q信誓旦旦预?0%手机采用Linux OSQ但moto后来回购了UIQ的股份,又与微Y合作Q还加入了google的开放手盟,看来要抛弃自qlinuxq_了。另外,moto的策略是linux+j2me的模式,虽然采用linux osQ但q不对外开放linux的sdkQ只有和moto合作的厂家才能获得native linux sdkQ所以导致目前linux手机开发的资料和论坛较。虽然有民间linux高手破解了moto的linux的sdkQ可以开发native linux的程序,但native linux的程序不能直接安装在moto的linux手机上,q必d装一个插Ӟq对普通用户又是难以跨的一个门槛。所以个得native linux手机的开发将走向末\。大部分linux手机的ui开发都是基于QTQ关于QT开发,可参考《C++ GUI Qt3~程》、《精通Qt4~程》,如果有moto官方的sdkQ参考API文档以及一些示例代码,可以较快上手,如果没有官方的sdkQ那p话很长时间hack了。目前没有很好的关于linux手机开发的论坛Q个人推荐陈|的博客http://www.cublog.cn/u/26691/Q内有moto a1200开发随W,对于熟悉和了解手机native linux开发有很大帮助?

4Q?MTKQ?
MTK最q几q异军突Pq?0%的国产手机采用MTK的芯片和q_Q黑手机更几乎是MTK的代名词。国内厂家只有夏新没有采用MTK的方案。MTK的模式名?#8220;Turn-key”的全面解x案,厂商采用了这个方案,只需要加一个手机外壛_可成品——这能大大降低了旉Q一般厂家只修改界面、铃C及增加一些应用Y件。有关MTKq_的介l,见环球企业家杂志的文?#8220;国手机操纵者联发科的秘?#8221;http://www.cnbeta.com/articles/45580.htm?
MTK是私有^収ͼ目前没有书籍介绍MTKq_Q所以只能从|上查找MTK的资料。以下资料大家可以从|上获得Q对于了解MTK很有帮助Q《mtk 训练评.pdf》、《MMI Platform Source Code Training.pdf》主要是MMI界面开发介l、《MMI Resource & Customization Tool.pdf》MMI资源工具介绍?
最q,MTKq_Q݋Q设计牛人uQGQテ自己~写了一本有关mtkq_MMI开发的实例教程Q书名ؓ《MMI实例培训教程》(本书大家通过Google下蝲刎ͼQ此书深入浅出,全面的介l了MTKq_MMI开发的各个斚wQ通过本书Q开发h员将能很快进入MTKq_开发领域,实ؓMTKq_MMI开发的圣经QMTKq_的操作系lؓnucleusQ有关nucleus的介l网上有一文章《Nucleus实时操作pȝ分析报告》。MTKq_主要用C语言开发,所以要熟悉MTK开发,首先必须熟悉掌握C语言QMTK的sdk与vc6集成QMMI的各控g和窗口之间通过回调函数实现通讯?
关于MTK的开发网站和论坛Q?
我爱研发|:http://www.52rd.com/ 上面几篇文章和书c都能从本网站找到?
手机研发论坛Q?a target=_blank>http://www.1mp.cc/bbs/index.asp


5Q?展讯Q?
展讯q_07q也发展很快Q利用MTK下半qPA攑֤器缺货的ZQ趁势而入Q抢走mtk很多市场份额。展讯的开发模式和MTK的很cMQ基本也是给厂家提供整体解决ҎQ与MTK的差别见此链?a target=_blank>http://www.chinabyte.com/telecom/267/2507267.shtml。国内主要是夏新、联惟뀁文泰等采用展讯q_。展讯^台采用的嵌入式操作系l是threadxQ关于threadx的有一本中文书《嵌入式实时操作pȝ的多U程计算Q基于ThreadX和ARM》。同MTKq_一P为封闭^収ͼ开发语a为CQ开发环境ؓvc6, MMI的各控g和窗口之间与windowscM通过消息q制实现通讯。另外也没有书籍介绍展讯q_Q以下资料值得推荐Q?
《Spreadtrum_SAP.ppt?
《MMK_Kernel软gAPI接口说明?doc?
《MMK_Window_Table开发说明书.doc?
《展讯^台MMIH口开发说明书.pdf?
《展讯手机^台Y件简?pdf?
关于展讯的开发网站和论坛Q?
我爱研发|:http://www.52rd.com/ 上面几篇文章都能从本|站扑ֈ?
手机研发论坛Q?a target=_blank>http://www.1mp.cc/bbs/index.asp

6Q?J2MEQ?
J2MEq_为手Zq用最q泛的开攑ּq_Q绝大部分手机均已经支持J2ME了。关于J2ME的书c数不胜敎ͼ个h推荐以下书籍Q?
《j2me技术手册?
《J2ME开发大全?
《J2MEUd应用E序开发?
关于J2ME的开发网站和论坛Q?
J2ME开发网Q?a target=_blank>http://www.j2medev.com/Index.html
中国Java手机|:http://www.cnjm.net/
以及各手机厂商的官方java论坛

7Q?Brew
Brew 的全U是无线二进制运行时环境。Brewq_是高通公司开发的Q从无线应用E序开发、设备配|、应用程序分发以及计费和支付的完整端到端解决Ҏ中的无线应用E序开发部分。目前绝大部分CDMA手机都支持Brewq_。学习Brewq_Q首先需要熟悉c语言。学习步骤和Ҏ可参?#8221; BREW高手之\Q解析BREW学习q程”?
学习书籍Q?
《深入BREW手机游戏开发?
《BREW 技术开发与应用?
q些书虽然不够深入,但对于入门还是可以参考的?
关于Brew的开发网站和论坛Q?
Brew官方论坛Q?a target=_blank>http://brewforums.qualcomm.com/index.php

8Q?BlackberryQAndroidQiPhone
黑莓公司BlackBerry手机和Google的Android手机均只支持java开发。苹果的iPhone不支持第3方开发,只能开发网,据说来开放sdkQ值得期待?
BlackBerry的开发网站和论坛Q?
BlackBerry开发者指南:http://www.cnblogs.com/confach/category/36451.htmlBlackBerry官方|站Q?a target=_blank>http://na.blackberry.com/eng/developers/community.jsphttp://bbs.maxpda.com/forum-184-1.html
Android的开发网站和论坛Q?
http://www.androiddev.net.cn/bbs/
http://www.androidin.com/http://www.androidcn.net/
iPhone的开发网站和论坛Q?
一苹果fans成立的网站:http://apple4.us/
http://bbs.maxpda.com/forum-190-1.html
http://lordhong.javaeye.com/blog/153315
http://lordhong.javaeye.com/blog/152774

9Q?其它Feather phoneq_
其它feather phoneq_Q如TI、飞利、英飞凌QInfineonQ、飞思卡(FreescaleQ、Broadcom、Skyworks{^収ͼ׃q_U有Qƈ且不提供W三方sdkQ所以也没有相关资料和文档,希望有了解的朋友介绍一下?/div>


]]>[J2ME POLISH]关于q行polish的menu实例的问?/title><link>http://www.shnenglu.com/gtwdaizi/articles/45299.html</link><dc:creator>郭天?/dc:creator><author>郭天?/author><pubDate>Mon, 24 Mar 2008 11:46:00 GMT</pubDate><guid>http://www.shnenglu.com/gtwdaizi/articles/45299.html</guid><wfw:comment>http://www.shnenglu.com/gtwdaizi/comments/45299.html</wfw:comment><comments>http://www.shnenglu.com/gtwdaizi/articles/45299.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/gtwdaizi/comments/commentRss/45299.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/gtwdaizi/services/trackbacks/45299.html</trackback:ping><description><![CDATA[<p>我在q行menu的实例的时候出C面的错误:<br><br>Buildfile: F:\MobileToDVR\menu\build.xml<br>init:<br>j2mepolish:<br>[j2mepolish] J2ME Polish 2.0-RC4 (GPL License)<br>[j2mepolish] Loading device database...<br>[j2mepolish] Processing [7] devices...<br>[j2mepolish] Building application for [Generic/Midp2Cldc11] (1/7):<br>[j2mepolish] Using locale [de_DE]...<br>[j2mepolish] assembling resources for device [Generic/Midp2Cldc11].<br>[j2mepolish] preprocessing for device [Generic/Midp2Cldc11].<br>[j2mepolish] processing locale code...<br>[j2mepolish] compiling for device [Generic/Midp2Cldc11].<br>[j2mepolish-javac-Generic/Midp2Cldc11] Compiling 202 source files to F:\MobileToDVR\menu\build\real\Generic\Midp2Cldc11\de_DE\classes<br>    [javac] Internal J2ME Polish class: F:\MobileToDVR\menu\build\real\Generic\Midp2Cldc11\de_DE\source\StyleSheet.java:291: 找不到符?br>    [javac] W号Q?c?CarrouselContainerView<br>    [javac] 位置Q?c?StyleSheet<br>    [javac] , new Object[]{ new CarrouselContainerView(), mainscreenfocusedStyle}<br>    [javac] ^<br>    [javac] Internal J2ME Polish class: F:\MobileToDVR\menu\build\real\Generic\Midp2Cldc11\de_DE\source\StyleSheet.java:327: 找不到符?br>    [javac] W号Q?c?CarrouselContainerView<br>    [javac] 位置Q?c?StyleSheet<br>    [javac] , new Object[]{ new CarrouselContainerView(), mainscreenfocusedStyle}<br>    [javac] ^<br>    [javac] 2 错误<br>    [javac] An internal class of J2ME Polish could not be compiled. Please try a clean rebuild by either calling "ant clean j2mepolish" or by removing the working directory "F:\MobileToDVR\menu\build\real".<br>    [javac] When an API-class was not found, you might need to define where to find the device-APIs. Following classpath has been used: [D:\Program Files\J2ME-Polish\import\midp-2.0.jar;D:\Program Files\J2ME-Polish\import\cldc-1.1.jar;].</p> <p>BUILD FAILED<br>F:\MobileToDVR\menu\build.xml:89: Unable to compile source code for device [Generic/Midp2Cldc11]: Compile failed; see the compiler error output for details.</p> <p>Total time: 8 seconds<br><br>调试了半天也没有扑ֈ原因, 后来到官方网站上面下载了一个新版本的J2ME-POLISH(j2mepolish-2.0.1.jar), 然后正运行了, 我原来安装的是J2ME Polish 2.0-RC4版本.</p> <img src ="http://www.shnenglu.com/gtwdaizi/aggbug/45299.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/gtwdaizi/" target="_blank">郭天?/a> 2008-03-24 19:46 <a href="http://www.shnenglu.com/gtwdaizi/articles/45299.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[J2ME]开?J2ME 应用E序 FAQ 一http://www.shnenglu.com/gtwdaizi/articles/44348.html郭天?/dc:creator>郭天?/author>Mon, 17 Mar 2008 07:45:00 GMThttp://www.shnenglu.com/gtwdaizi/articles/44348.htmlhttp://www.shnenglu.com/gtwdaizi/comments/44348.htmlhttp://www.shnenglu.com/gtwdaizi/articles/44348.html#Feedback0http://www.shnenglu.com/gtwdaizi/comments/commentRss/44348.htmlhttp://www.shnenglu.com/gtwdaizi/services/trackbacks/44348.htmlQ:java.lang.OutOfMemoryError: b: Maximum byte code length (32kB) exceeded

R:׃.java文g的大超q了32kB, 在模拟器中会报这L错误. 在真Z面好像没有这L问题, 但是也要注意q样的情? 不能让一个类的长度过?

A:把一个类分成多个类的来处理.

Q:在模拟器中操作文件的时? 如何取消"is it ok to write local files"对话?

R:q入Preferences->Security, securiy policy选择JTWI, security domain选择trusted.

A:qo安全的认?


Q:如何dJAD文g中的属?

A:通过getProperty()Ҏ可以获取.


]]>
有关手机中文问题传输的解军_?/title><link>http://www.shnenglu.com/gtwdaizi/articles/44373.html</link><dc:creator>郭天?/dc:creator><author>郭天?/author><pubDate>Thu, 13 Mar 2008 07:21:00 GMT</pubDate><guid>http://www.shnenglu.com/gtwdaizi/articles/44373.html</guid><wfw:comment>http://www.shnenglu.com/gtwdaizi/comments/44373.html</wfw:comment><comments>http://www.shnenglu.com/gtwdaizi/articles/44373.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/gtwdaizi/comments/commentRss/44373.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/gtwdaizi/services/trackbacks/44373.html</trackback:ping><description><![CDATA[<div id="1fjpnpz" class=post_content> <h5><span style="FONT-SIZE: 14pt; COLOR: red">服务器到客户端:<br></span>----------------------------------------------------------------------<br>下面代码是服务器端把字符写到Client端,l过gbEncoding()ҎQ所有的字符~码成:\uXXXX.<br>----------------------------------------------------------------------<br><br><br>代码:--------------------------------------------------------------------------------<br>/**<br>* Write the String data<br>*<br>* @param out<br>* @param value<br>*/<br>public static void writeUnicode(final DataOutputStream out, final String value) throws ActionException {<br>try {<br>final String unicode = StringFormatter.gbEncoding( value );<br>final byte[] data = unicode.getBytes();<br>final int dataLength = data.length;<br><br>System.out.println( "Data Length is: " + dataLength );<br>System.out.println( "Data is: " + value );<br>out.writeInt( dataLength );<br>out.write( data, 0, dataLength );<br>} catch (IOException e) {<br>throw new ActionException( IMDefaultAction.class.getName(), e.getMessage() );<br>}<br>}<br>--------------------------------------------------------------------------------<br><br>----------------------------------------------------------------------<br>以下代码是gbEncoding()ҎQ把双字节字W{换成\uXXXX,ASIIC码在前面?0?br>----------------------------------------------------------------------<br>/**<br>* This method will encode the String to unicode.<br>*<br>* @param gbString<br>* @return<br>*/<br><br>代码:--------------------------------------------------------------------------------<br>public static String gbEncoding( final String gbString ) {<br>char[] utfBytes = gbString.toCharArray();<br>String unicodeBytes = "";<br>for( int byteIndex = 0; byteIndex < utfBytes.length; byteIndex ++ ) {<br>String hexB = Integer.toHexString( utfBytes[ byteIndex ] );<br>if( hexB.length() <= 2 ) {<br>hexB = "00" + hexB;<br>}<br>unicodeBytes = unicodeBytes + "\u" + hexB;<br>}<br>System.out.println( "unicodeBytes is: " + unicodeBytes );<br>return unicodeBytes;<br>}<br>--------------------------------------------------------------------------------<br><br>----------------------------------------------------------------------<br>在客L收到服务器的数据Q先其一个一个字W解码。双字节昄正常?br>----------------------------------------------------------------------<br><br>代码:--------------------------------------------------------------------------------<br>/**<br>* This method will decode the String to a recognized String<br>* in ui.<br>* @param dataStr<br>* @return<br>*/<br>private StringBuffer decodeUnicode( final String dataStr ) {<br>int start = 0;<br>int end = 0;<br>final StringBuffer buffer = new StringBuffer();<br>while( start > -1 ) {<br>end = dataStr.indexOf( "\u", start + 2 );<br>String charStr = "";<br>if( end == -1 ) {<br>charStr = dataStr.substring( start + 2, dataStr.length() );<br>} else {<br>charStr = dataStr.substring( start + 2, end);<br>}<br>char letter = (char) Integer.parseInt( charStr, 16 ); // 16q制parse整Ş字符丌Ӏ?br>buffer.append( new Character( letter ).toString() );<br>start = end;<br>}<br>return buffer;<br>}<br>--------------------------------------------------------------------------------<br><br>----------------------------------------------------------------------<br><span style="FONT-SIZE: 14pt; COLOR: red">客户端到服务器:</span><br>----------------------------------------------------------------------<br>客户端用下面方法把手机端的字符~码成ISO-8859-1,传给服务器?br>----------------------------------------------------------------------<br><br>代码:-------------------------------------------------------------------------------- <br>/**<br>* write the String data<br>* @param value<br>* @param outData<br>*/<br>private void writeSjis(DataOutputStream outData, String value) {<br>try {<br>byte[] data = null;<br>// data = ( value ).getBytes( "UTF-8" );<br>data = ( value ).getBytes( "ISO8859_1" );<br>outData.writeInt(data.length);<br>outData.write(data, 0, data.length);<br><br>System.out.println(" data.length: " + data.length);<br>System.out.println(" data.value: " + value);<br>} catch (Exception ex) {<br>System.out.println(" write error ");<br>ex.printStackTrace();<br>}<br>}<br>--------------------------------------------------------------------------------<br><br>----------------------------------------------------------------------<br>服务器端收到客户端字W流Q是用下面方法将其{为UTF-8Q以后的操作都是ZUTF-8~码。SQLServer可能会由于内吗不通有不同的变换,所以存取数据库是还要是具体的DB内码作相应的处理?br>----------------------------------------------------------------------<br><br>代码:--------------------------------------------------------------------------------<br>/**<br>*<br>* @param iso<br>* @return<br>*/<br>public static String isoToUtf( final String iso ) {<br>String utfString = iso;<br>if( iso != null ) {<br>try {<br>utfString = new String( iso.getBytes( "ISO-8859-1" ), "UTF-8" );<br>} catch ( UnsupportedEncodingException e ) {<br>utfString = iso;<br>}<br>} else {<br>utfString = "";<br>}<br>return utfString;<br>}<br><br><br>注:<br>本方法应该不是最有效的,但是只要手机支持unicode的gb2312~码Q应该都可以昄正常?br>不正之处Q请各位?http://www.ebds.com.cn/bbs/讨论讨论?<br></h5> </div> <img src ="http://www.shnenglu.com/gtwdaizi/aggbug/44373.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/gtwdaizi/" target="_blank">郭天?/a> 2008-03-13 15:21 <a href="http://www.shnenglu.com/gtwdaizi/articles/44373.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于在N95?手机重启?安装的JAVA软g׃能启?/title><link>http://www.shnenglu.com/gtwdaizi/articles/37898.html</link><dc:creator>郭天?/dc:creator><author>郭天?/author><pubDate>Thu, 13 Mar 2008 03:24:00 GMT</pubDate><guid>http://www.shnenglu.com/gtwdaizi/articles/37898.html</guid><wfw:comment>http://www.shnenglu.com/gtwdaizi/comments/37898.html</wfw:comment><comments>http://www.shnenglu.com/gtwdaizi/articles/37898.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/gtwdaizi/comments/commentRss/37898.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/gtwdaizi/services/trackbacks/37898.html</trackback:ping><description><![CDATA[<blockquote> <p align=left>现象:<br>安装JAVA应用E序?手机重启?安装的程序就打不开.<br></p> <table style="WIDTH: 320px; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=3 border=1> <tbody> <tr> <td> <p>CLDC标准</p> <p>安装目录</p> </td> <td>CLDC1.0</td> <td>CLDC1.1</td> </tr> <tr> <td>手机存储</td> <td>重启后可?/td> <td>重启后可?/td> </tr> </tbody> </table> <table style="WIDTH: 320px; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=3 border=1> <tbody> <tr> <td>存储卡存?/td> <td>重启后不可用</td> <td>重启后可?/td> </tr> </tbody> </table> </blockquote>         以上的情? 是在存储卡没有设定密码的环境? 若存储卡讑֮了密? 不管是CLDC1.0q是CLDC1.1,重启手机? 安装到存储卡上面的应用程序均不可? 在有些情况下, 需要给存储卡先讑֮一密码, 然后再删除密?<br><br><br>         原因分析:<br>               1.E序安装的\径是安装在扩展卡上面.<br>               2.支持的CLDC1.0和CLDC1.1标准不一?br>         解决Ҏ:<br>               1.使用较低的标? 把CLDC1.1的应用程序编译ؓCLDC1.0的程?br>       <img src ="http://www.shnenglu.com/gtwdaizi/aggbug/37898.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/gtwdaizi/" target="_blank">郭天?/a> 2008-03-13 11:24 <a href="http://www.shnenglu.com/gtwdaizi/articles/37898.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[J2ME]关于使用J2ME打静态包&hkeep的指定方?/title><link>http://www.shnenglu.com/gtwdaizi/articles/43646.html</link><dc:creator>郭天?/dc:creator><author>郭天?/author><pubDate>Tue, 04 Mar 2008 01:40:00 GMT</pubDate><guid>http://www.shnenglu.com/gtwdaizi/articles/43646.html</guid><wfw:comment>http://www.shnenglu.com/gtwdaizi/comments/43646.html</wfw:comment><comments>http://www.shnenglu.com/gtwdaizi/articles/43646.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/gtwdaizi/comments/commentRss/43646.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/gtwdaizi/services/trackbacks/43646.html</trackback:ping><description><![CDATA[<span style="COLOR: red"><strong>Q1 :</strong></span><br>最q在做一个工E? 要用音视频解码. 其他部门l我分别提供了视频解码库和音频解码库, 我想把这两个h打在一起Ş成一个统一的音视频解码? 在进行؜淆打包的时候会出现很多警告信息, 而仅仅打入一个包的时候却没有问题..<br><br><span style="COLOR: red"><strong>A1:</strong></span><br>问题出现的原因是: 音频和视频解码库是两个分别的jar, 也都是؜淆的, q样D了这两个包里面都有a.class, b.class{等. D有类同名的问题存?.让底层重新打包一ơ问题就解决?<br><br>Q2:<br>在؜淆的时候需要指定keep参数, 即不参与h的类, 其实q些cd是提供给上层应用的接?<br>开始我是用以下方式来指定keep参数?<br>public class com.hik.decoder.*<br>但是发现打包后的l果是导入的jar都没有打到这个生成的jar里面, D生成的jar只有2-3k..<br><br>后来发现正确的指定的keep参数的方式还是需要乖乖的输入每个要keep的类, like following:<br><br>class com.hik.decoder.CLASS1{public *;}<br>class com.hik.decoder.CLASS2{public *;}<br>class com.hik.decoder.CLASS3{public *;}<br>class com.hik.decoder.CLASS4{public *;} <img src ="http://www.shnenglu.com/gtwdaizi/aggbug/43646.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/gtwdaizi/" target="_blank">郭天?/a> 2008-03-04 09:40 <a href="http://www.shnenglu.com/gtwdaizi/articles/43646.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>音频~解码标?/title><link>http://www.shnenglu.com/gtwdaizi/articles/41884.html</link><dc:creator>郭天?/dc:creator><author>郭天?/author><pubDate>Fri, 25 Jan 2008 05:29:00 GMT</pubDate><guid>http://www.shnenglu.com/gtwdaizi/articles/41884.html</guid><wfw:comment>http://www.shnenglu.com/gtwdaizi/comments/41884.html</wfw:comment><comments>http://www.shnenglu.com/gtwdaizi/articles/41884.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/gtwdaizi/comments/commentRss/41884.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/gtwdaizi/services/trackbacks/41884.html</trackback:ping><description><![CDATA[<dd> <div><br><span style="COLOR: red">PCMU(G.711U)<br></span>cdQAudio<br>制定者:ITU-T<br>所需频宽Q?4Kbps(90.4)<br>Ҏ:PCMU和PCMA都能提供较好的语韌量,但是它们占用的带宽较高,需?4kbps?br>优点Q语韌量优<br>~点Q占用的带宽较高<br>应用领域Qvoip<br>版税方式QFree<br>备注QPCMU and PCMA都能够达到CD韌Q但是它们消耗的带宽也最?64kbps)。如果网l带宽比较低Q可以选用低比牚w率的编码方法,如G.723或G.729Q这两种~码的方法也能达Cl长途电话的韌Q但是需要很的带宽QG723需?.3/6.3kbpsQG729需?kbpsQ。如果带宽够ƈ且需要更好的语音质量Q就使用PCMU ?PCMAQ甚臛_以用宽带的~码ҎG722(64kbps)Q这可以提供有高保真度的韌?br>                                                                                                             <br><br><span style="COLOR: red">PCMA(G.711A)<br></span>cdQAudio<br>制定者:ITU-T<br>所需频宽Q?4Kbps(90.4)<br>Ҏ:PCMU和PCMA都能提供较好的语韌量,但是它们占用的带宽较高,需?4kbps?br>优点Q语韌量优<br>~点Q占用的带宽较高<br>应用领域Qvoip<br>版税方式QFree<br>备注QPCMU and PCMA都能够达到CD韌Q但是它们消耗的带宽也最?64kbps)。如果网l带宽比较低Q可以选用低比牚w率的编码方法,如G.723或G.729Q这两种~码的方法也能达Cl长途电话的韌Q但是需要很的带宽QG723需?.3/6.3kbpsQG729需?kbpsQ。如果带宽够ƈ且需要更好的语音质量Q就使用PCMU ?PCMAQ甚臛_以用宽带的~码ҎG722(64kbps)Q这可以提供有高保真度的韌?/div> <dt>  <dd> <div><br><span style="COLOR: red">ADPCM(自适应差分PCM)<br></span>cdQAudio<br>制定者:ITU-T<br>所需频宽Q?2Kbps<br>Ҏ:ADPCM(adaptive difference pulse code modulation)l合了APCM的自适应Ҏ和DPCMpȝ的差分特性,是一U性能比较好的波Ş~码。它的核心想法是Q?br>       ①利用自适应的思想改变量化阶的大小Q即使用的量化?step-size)ȝ码小的差|使用大的量化阶去~码大的差|<br>       ②用过ȝhg下一个输入样本的预测|使实际样本值和预测g间的差值L最?br>优点Q算法复杂度低,压羃比小QCD韌>400kbpsQ,~解码g时最短(相对其它技术)<br>~点Q声韌量一?br>应用领域Qvoip<br>版税方式QFree<br>备注QADPCM (ADPCM Adaptive Differential Pulse Code Modulation), 是一U针?16bit (或者更?) 声音波Ş数据的一U有损压~算? 它将声音中每次采样?16bit 数据?4bit 存储, 所以压~比 1:4. 而压~?解压~算法非常的? 所以是一U低I间消?高质量声韌得的好途径?br>                                                                                                              <br><br><span style="COLOR: red">LPC(Linear Predictive CodingQ线性预编?<br></span>cdQAudio<br>制定者: <br>所需频宽Q?Kbps-4.8Kbps<br>Ҏ:压羃比大Q计量大,韌不高Q廉?br>优点Q压~比?廉h<br>~点Q计量大,语音质量不是很好Q自然度较低<br>应用领域Qvoip<br>版税方式QFree<br>备注Q参数编码又UCؓ声源~码Q是信源信号在频率域或其它正交变换域提取特征参敎ͼq将其变换成数字代码q行传输。译码ؓ其反q程Q将收到的数字序列经变换恢复特征参量Q再Ҏ特征参量重徏语音信号。具体说Q参数编码是通过对语音信L征参数的提取和编码,力图佉K音信号具有尽可能高的准确性,但重ZL波Ş同原语音信号的L形可能会有相当大的差别。如Q线性预编码(LPCQ及其它各种改进型都属于参数~码。该~码比特率可压羃?Kbit/s-4.8Kbit/sQ甚x低,但语韌量只能达C{,特别是自然度较低?/div> <dt>  <dd> <div><br><span style="COLOR: red">CELP(Code Excited Linear PredictionQ码Ȁq性预编?<br></span>cdQAudio<br>制定者:Ƨ洲通信标准协会QETSIQ?br>所需频宽Q??6Kbps的速率<br>Ҏ:改善语音的质量:<br>       ?对误差信可行感觉加权,利用人类听觉的掩蔽特性来提高语音的主观质量;<br>       ②用分数延迟改进基音预测Qɋ音的表达更为准,其改善了女性语音的质量Q?br>       ?使用修正的MSPE准则来寻?“最?#8221;的gq,使得基音周期延迟的外形更为^滑;<br>       ④根据长旉的效率Q调整随机激q量的大小Q提高语音的主观质量Q?nbsp;      ?使用Z信道错误率估计的自适应qx器,在信道误码率较高的情况下也能合成自然度较高的语音?br>       l论Q?br>       ?CELP法在低速率~码环境下可以得Co人满意的压羃效果Q?br>       ②用快速算法,可以有效地降低CELP法的复杂度Q它完全可以实时地实现Q?br>       ③CELP可以成功地对各种不同cd的语音信可行编码,q种适应性对于真实环境,其是背景噪声存在时更ؓ重要?br>优点Q用很低的带宽提供了较清晰的语音<br>~点Q?br>应用领域Qvoip<br>版税方式QFree<br>备注Q?999q欧z通信标准协会QETSIQ推ZZ码激q性预编码(CELPQ的W三代移动通信语音~码标准自适应多速率语音~码器(AMRQ,其中最低速率?.75kb/sQ达到通信质量。CELP 码激q性预编码是Code Excited Linear Prediction的羃写。CELP是近10q来最成功的语音编码算法?br>       CELP语音~码法用线性预提取声道参敎ͼ用一个包含许多典型的Ȁq量的码本作ؓȀ励参敎ͼ每次~码旉在这个码本中搜烦一个最佳的Ȁq量,q个Ȁq量的~码值就是这个序列的码本中的序号?br>       CELP已经被许多语音编码标准所采用Q美国联邦标准FS1016是采用CELP的编码方法,主要用于高质量的H带语音保密通信。CELP (Code-Excited Linear Prediction) q是一个简化的 LPC 法Q以其低比特率著U?(4800-9600Kbps)Q具有很清晰的语韛_质和很高的背景噪韛_疫性。CELP是一U在中低速率上广泛用的语音压羃~码Ҏ?br>                                                                                                          <br><br><span style="COLOR: red">G.711<br></span>cdQAudio<br>制定者:ITU-T<br>所需频宽Q?4Kbps<br>Ҏ:法复杂度小Q音质一?br>优点Q算法复杂度低,压羃比小QCD韌>400kbpsQ,~解码g时最短(相对其它技术)<br>~点Q占用的带宽较高<br>应用领域Qvoip<br>版税方式QFree<br>备注Q?0q代CCITT公布的G.711 64kb/s脉冲~码调制PCM?br>                                                                                                            <br><br><span style="COLOR: red">G.721</span><br>cdQAudio<br>制定者:ITU-T<br>所需频宽Q?2Kbps<br>Ҏ:相对于PCMA和PCMUQ其压羃比较高,可以提供2Q?的压~比?br>优点Q压~比?br>~点Q声韌量一?br>应用领域Qvoip<br>版税方式QFree<br>备注Q子带ADPCMQSB-ADPCMQ技术。G.721标准是一个代码{换系l。它使用ADPCM转换技术,实现64 kb/s A律或μ律PCM速率?2 kb/s速率之间的相互{换?/div> <dt>  <dd> <div><br><span style="COLOR: red">G.722</span><br>cdQAudio<br>制定者:ITU-T<br>所需频宽Q?4Kbps<br>Ҏ:G722能提供高保真的语韌?br>优点Q音质好<br>~点Q带宽要求高<br>应用领域Qvoip<br>版税方式QFree<br>备注Q子带ADPCMQSB-ADPCMQ技?br>                                                                                                              <br><br><span style="COLOR: red">G.723(低码率语音编码算?<br></span>cdQAudio<br>制定者:ITU-T<br>所需频宽Q?.3Kbps/6.3Kbps<br>Ҏ:语音质量接近良,带宽要求低,高效实现Q便于多路扩展,可利用C5402片内16kRAM实现53coder。达到ITU-TG723要求的语韌量,性能E_。可用于IP电话语音信源~码或高效语韛_~存储?br>优点Q码率低Q带宽要求较。ƈ辑ֈITU-TG723要求的语韌量,性能E_?br>~点Q声韌量一?br>应用领域Qvoip<br>版税方式QFree<br>备注QG.723语音~码器是一U用于多媒体通信Q编码速率?.3kbits/s?.3kbit/s的双码率~码Ҏ。G.723标准是国际电信联盟(ITUQ制定的多媒体通信标准中的一个组成部分,可以应用于IP电话{系l中。其中,5.3kbits/s码率~码器采用多脉冲最大似焉化技术(MPQMLQQ,6.3kbits/s码率~码器采用代数码Ȁq性预技术?br>                                                                                                             <br><br><span style="COLOR: red">G.723.1(双速率语音~码法)<br></span>cdQAudio<br>制定者:ITU-T<br>所需频宽Q?.3Kbps(22.9)<br>Ҏ:能够寚w乐和其他音频信号q行压羃和解压羃Q但它对语音信号来说是最优的。G.723.1采用了执行不q箋传输的静韛_~,q就意味着在静x间的比特中加入了h为的噪声。除了预留带宽之外,q种技术发信机的调制解调器保持连l工作,q且避免了蝲波信L旉时断?br>优点Q码率低Q带宽要求较。ƈ辑ֈITU-TG723要求的语韌量,性能E_,避免了蝲波信L旉时断?br>~点Q语韌量一?br>应用领域Qvoip<br>版税方式QFree<br>备注QG.723.1法?ITU-T的应用于低速率多媒体服务中语音或其它音频信L压羃法Q其目标应用pȝ包括H.323、H.324{多媒体通信pȝ 。目前该法已成为IP电话pȝ中的必选算法之一?br>                                                                                                                <br><br><span style="COLOR: red">G.728<br></span>cdQAudio<br>制定者:ITU-T<br>所需频宽Q?6Kbps/8Kbps<br>Ҏ:用于IP电话、卫星通信、语韛_储等多个领域。G.728是一U低时g~码器,但它比其它的~码器都复杂Q这是因为在~码器中必须重复?0阶LPC分析。G.728q采用了自适应后置滤L器来提高其性能?br>优点Q后向自适应Q采用自适应后置滤L器来提高其性能<br>~点Q比其它的编码器都复?br>应用领域Qvoip<br>版税方式QFree<br>备注QG.728 16kb/s短g时码本激q性预编码(LD-CELPQ?996qITU公布了G.728 8kb/s的CSQACELP法Q可以用于IP电话、卫星通信、语韛_储等多个领域?6 kbps G.728低时延码Ȁq性预?<br>       G.728是低比特U性预合成分析编码器QG.729和G.723.1Q和后向ADPCM~码器的混合体。G.728是LD-CELP~码器,它一ơ只处理5个样炏V对于低速率Q?6~128 kbpsQ的l合业务数字|(ISDNQ可视电话,G.728是一U徏议采用的语音~码器。由于其后向自适应Ҏ,因此G.728是一U低时g~码器,但它比其它的~码器都复杂Q这是因为在~码器中必须重复?0阶LPC分析。G.728q采用了自适应后置滤L器来提高其性能?/div> <dt>  <dd> <div><br><span style="COLOR: red">G.729<br></span>cdQAudio<br>制定者:ITU-T<br>所需频宽Q?Kbps<br>Ҏ:在良好的信道条g下要辑ֈ长话质量Q在有随机比特误码、发生丢失和多ơ{接等情况下要有很好的E_性等。这U语韛_~算法可以应用在很广泛的领域中,包括QP电话、无UK信、数字卫星系l和数字专用U\?br>       G.729法采用“pl构代数码本Ȁq性预编码方?#8221;QCS-ACELPQ算法。这U算法综合了波Ş~码和参数编码的优点Q以自适应预测~码技术ؓ基础Q采用了矢量量化、合成分析和感觉加权{技术?br>       G.729~码器是Z时g应用设计的,它的帧长只有10msQ处理时延也?0msQ再加上5ms的前视,q就使得G.729产生的点到点的时延ؓ25msQ比特率? kbps?br>优点Q语韌量良Q应用领域很q泛Q采用了矢量量化、合成分析和感觉加权Q提供了对丢失和分l丢q隐藏处理机制<br>~点Q在处理随机比特错误斚w性能不好?br>应用领域Qvoip<br>版税方式QFree<br>备注Q国际电信联盟(ITU-TQ于1995q?1月正式通过了G.729?ITU-TG.729也被UC“pl构代数码本Ȁq性预编码方?#8221;(CS-ACELP)Q它是当前较新的一U语韛_~标准。G.729是由国、法国、日本和加拿大的几家著名国际电信实体联合开发的?br>                                                                                                               <br><br><span style="COLOR: red">G.729A<br></span>cdQAudio<br>制定者:ITU-T<br>所需频宽Q?Kbps(34.4)<br>Ҏ:复杂性较G.729低,性能较G.729差?br>优点Q语韌量良Q降低了计算的复杂度以便于实时实玎ͼ提供了对帧丢失和分组丢失的隐藏处理机?br>~点Q性能较G.729?br>应用领域Qvoip<br>版税方式QFree<br>备注Q?6qITU-T又制定了G.729的简化方案G.729AQ主要降低了计算的复杂度以便于实时实玎ͼ因此目前使用的都是G.729A?br>                                                                                                       <br><br><span style="COLOR: red">GIPS<br></span>cdQAudio<br>制定者:瑞典Global IP Sound公司<br>所需频宽Q?br>Ҏ:GIPS技术可Ҏ带宽状况自动调节~码码率Q提供低码率高质量的音频。GIPS的核心技术(|络自适应法Q丢包补偿算法和回声消除法Q可很好地解册韛_gq与回声问题Q带来完音质,提供比电话还清晰的语音通话效果?br>优点Q很好地解决语音延迟与回声问题,带来完美韌Q提供比电话q清晰的语音通话效果<br>~点Q?不是Free<br>应用领域Qvoip<br>版税方式Q每q支付一W用权费用<br>备注QGIPS音频技术是由来自瑞典的全球尖的语韛_理高U技公司--"GLOBAL IP SOUND"提供的专用于互联|的语音压羃引擎pȝ。GIPS技术可Ҏ带宽状况自动调节~码码率Q提供低码率高质量的音频。GIPS的核心技术(|络自适应法Q丢包补偿算法和回声消除法Q可很好地解册韛_gq与回声问题Q带来完音质,提供比电话还清晰的语音通话效果?br>                                                                                                          <br><br><span style="COLOR: red">Apt-X</span><br>cdQAudio<br>制定者:Audio Processing Technology 公司<br>所需频宽Q?0Hz to 22.5 kHzQ?6kbit/s to 576 kbit/s(16 bit 7.5 kHz mono to 24-bit, 22.5kHz stereo)<br>Ҏ:主要用于专业音频领域Q提供高品质的音频。其特点是:<br>       ①采?:1:4的压~与攑֤ҎQ?br>       ②硬件低复杂度;<br>       ③极低的~码延迟Q?br>       ④由单芯片实玎ͼ<br>       ⑤单声道或立体声~解码;<br>       ⑥只需单设备即可实?2.5kHz的双通道立体壎ͼ<br>       ⑦高?8kHz的采样频率;<br>       ⑧容错性好Q?br>       ⑨完整的AUTOSYNC™~解码同步方案;<br>       ⑩低功率消?br>优点Q高品质的音频,g复杂度低Q设备要求低<br>~点Q不是Free<br>应用领域Qvoip<br>版税方式Q一ơ性付?br>备注Q子带ADPCMQSB-ADPCMQ技?/div> <dt>  <dd> <div><br><span style="COLOR: red">NICAM(Near Instantaneous Companded Audio Multiplex 准瞬时压扩音频复?<br></span>cdQAudio<br>制定者:英国BBCq播公司<br>所需频宽Q?28Kbps<br>Ҏ:应用范围及其q泛Q可用它q行立体声或双语q播<br>优点Q应用范围及其广泛,信噪比高Q动态范围宽、音质同CD相媲,故名丽音Q因此NICAM又称Z?br>~点Q不是FreeQ频宽要求高<br>应用领域Qvoip<br>版税方式Q一ơ性付?br>备注QNICAM也称丽音Q它是英文Near-Instantaneously Companded Audio Multiplex的羃写,其含义ؓ准瞬时压扩音频复用,是由英国BBCq播公司开发研I成功的?br>       通俗地说NICAM技术实际上是双声道数字声技术,其应用范围及其广泛,最典型的应用便是电视广播附加双声道数字声技术,利用它进行立体声或双语广播,以充分利用电视频道的频谱资源。这是在常规电视q播的基上无需增加许多投资可以实现的。在q行立体声广播时Q它提高了音频的信号质量Q其接qCD的质量。而且q可以利用NICAM技术进行高速数据广播及其他数据传输的增D服务,q在当今的信息化C会中似乎就昑־ؓ重要了!<br>                                                                                                       <br><br><span style="COLOR: red">MPEG-1 audio layer 1</span><br>cdQAudio<br>制定者:MPEG<br>所需频宽Q?84kbpsQ压~?倍)<br>Ҏ:~码单,用于数字盒式录音带Q?声道QVCD中用的音频压羃Ҏ是MPEG-1层Ⅰ?br>优点Q压~方式相Ҏ域压~技术而言要复杂得多,同时~码效率、声韌量也大幅提高Q编码g时相应增加。可以达?#8220;完全透明”的声韌量(EBU韌标准Q?br>~点Q频宽要求较?br>应用领域Qvoip<br>版税方式QFree<br>备注QMPEG-1声音压羃~码是国际上W一个高保真声音数据压羃的国际标准,它分Z个层ơ:<br>--?(Layer 1)Q编码简单,用于数字盒式录音带<br>--?(Layer 2)Q算法复杂度中等Q用于数字音频广?DAB)和VCD{?br>--?(Layer 3)Q编码复杂,用于互联|上的高质量声音的传输,如MP3音乐压羃10?br>                                                                                                             <br><br><span style="COLOR: red">MUSICAM(MPEG-1 audio layer 2,即MP2)</span><br>cdQAudio<br>制定者:MPEG<br>所需频宽Q?56?92kbpsQ压~??倍)<br>Ҏ:法复杂度中{,用于数字音频q播(DAB)和VCD{,2声道Q而MUSICAM׃光当的复杂程度和优秀的声韌量,在数字演播室、DAB、DVB{数字节目的制作、交换、存储、传送中得到q泛应用?br>优点Q压~方式相Ҏ域压~技术而言要复杂得多,同时~码效率、声韌量也大幅提高Q编码g时相应增加。可以达?#8220;完全透明”的声韌量(EBU韌标准Q?br>~点Q?br>应用领域Qvoip<br>版税方式QFree<br>备注Q同MPEG-1 audio layer 1<br>                                                                                                   <br><br><span style="COLOR: red">MP3(MPEG-1 audio layer 3)<br></span>cdQAudio<br>制定者:MPEG<br>所需频宽Q?28?12kbpsQ压~?0?2倍)<br>Ҏ:~码复杂Q用于互联网上的高质量声音的传输Q如MP3音乐压羃10倍,2声道。MP3是在l合MUSICAM和ASPEC的优点的基础上提出的混合压羃技术,在当时的技术条件下QMP3的复杂度昑־相对较高Q编码不利于实时Q但׃MP3在低码率条g下高水准的声韌量,使得它成Y解压及网l广播的宠儿?br>优点Q压~比高,适合用于互联|上的传?br>~点QMP3?28KBitrate及以下时Q会出现明显的高频丢?br>应用领域Qvoip<br>版税方式QFree<br>备注Q同MPEG-1 audio layer 1<br><br><span style="COLOR: red">MPEG-2 audio layer</span><br>cdQAudio<br>制定者:MPEG<br>所需频宽Q与MPEG-1?Q层2Q层3相同<br>Ҏ:MPEG-2的声韛_~编码采用与MPEG-1声音相同的编译码器,?, ?和层3的结构也相同Q但它能支持5.1声道?.1声道的环l立体声?br>优点Q支?.1声道?.1声道的环l立体声<br>~点Q?br>应用领域Qvoip<br>版税方式Q按个收?br>备注QMPEG-2的声韛_~编码采用与MPEG-1声音相同的编译码器,?, ?和层3的结构也相同Q但它能支持5.1声道?.1声道的环l立体声?/div> <dt>  <dd> <div><br><span style="COLOR: red">AAC(Advanced Audio CodingQ先q音频编?<br></span>cdQAudio<br>制定者:MPEG<br>所需频宽Q?6-128 kbps<br>Ҏ:AAC可以支持1?8路之间Q意数目的音频声道l合、包?5路低频效果声道、配?多语韛_道,以及15路数据。它可同时传?6套节目,每套节目的音频及数据l构可Q意规定?br>       AAC主要可能的应用范围集中在因特|网l传播、数字音频广播,包括卫星直播和数字AM、以及数字电视及影院pȝ{方面。AAC使用了一U非常灵zȝ늼码核心去传输~码频谱数据。具?8 个主要音频通道Q?6 个低频增强通道Q?6 个集成数据流, 16 个配韻I16 U编排?br>优点Q支持多U音频声道组合,提供优质的音?br>~点Q?<br>应用领域Qvoip<br>版税方式Q一ơ性收?br>备注QAAC?997qŞ成国际标准ISO 13818-7。先q音频编码(Advanced Audio Coding--AACQ开发成功,成ؓlMPEG-2音频标准QISO/IEC13818-3Q之后的C代音频压~标准?br>       在MPEG-2制订的早期,本来是想其音频~码部分保持与MPEG-1兼容的。但后来Z适应演播电视的要求而将其定义成Z个可以获得更高质量的多声道音频标准。理所当然圎ͼq个标准是不兼容MPEG-1的,因此被称为MPEG-2 AAC。换句话_从表面上看,要制作和播放AACQ都需要用与MP3完全不同的工兗?br>                                                                                                            <br><br><span style="COLOR: red">Dolby AC-3<br></span>cdQAudio<br>制定者:国杜比公司<br>所需频宽Q?4kbps<br>Ҏ:提供的环l立体声pȝ?个全频带声道加一个超低音声道l成Q?个声道的信息在制作和q原q程中全部数字化Q信息损失很,l节丰富Q具有真正的立体声效果,在数字电视、DVD和家庭媄院中q泛使用?br>优点Q环l立体声Q信息损失很,l节丰富Q具有真正的立体声效?br>~点Q?br>应用领域Qvoip<br>版税方式Q按个收?br>备注Q杜比数字AC-3QDolby Digital AC-3Q:国杜比公司开发的多声道全频带声音~码pȝQ它提供的环l立体声pȝ?个全频带声道加一个超低音声道l成Q?个声道的信息在制作和q原q程中全部数字化Q信息损失很,l节丰富Q具有真正的立体声效果,在数字电视、DVD和家庭媄院中q泛使用?br>                                                                                                           <br><br><span style="COLOR: red">ASPECQAudio Spectral Perceptual Entropy CodingQ?br></span>cdQAudio<br>制定者:AT&T<br>所需频宽Q?4kps<br>Ҏ:音频质量获得显著改善Q不q计复杂度也大大提高,而且在回响、低码率时声韌量严重下降?br>优点Q音频质量获得显著改?br>~点Q计复杂度的提高。块边界影响、预计算复杂度的提高。回响、低码率时声韌量严重下?br>应用领域Qvoip<br>版税方式Q按个收?br>备注Q变换压~技?br>                                                                                                  <br><br><span style="COLOR: red">PACQPerceptual Audio CoderQ?br></span>cdQAudio<br>制定者:AT&T<br>所需频宽Q?4kps<br>Ҏ:音频质量获得显著改善Q不q在回响、低码率时声韌量严重下降?br>优点Q音频质量获得显著改?br>~点Q块边界影响、预回响、低码率时声韌量严重下?br>应用领域Qvoip<br>版税方式Q按个收?br>备注Q变换压~技?br>                                                                                                   <br><br><span style="COLOR: red">HR</span><br>cdQAudio<br>制定者: 飞利?br>所需频宽Q?Kbps<br>Ҏ:以增加GSM|络定w为目?但是会损完韌?׃现在|络频率紧缺,一些大的运营商已经在大城市密集地带开通此方式以增加容量?br>优点Q系l容量大<br>~点Q语韌量差<br>应用领域QGSM<br>版税方式Q按个收?br>备注QHF半速率,是一UGSM语音~码方式?/div> <dt>  <dd> <div><br><span style="COLOR: red">FR<br></span>cdQAudio<br>制定者:飞利?br>所需频宽Q?3Kbps<br>Ҏ:是一般的GSM手机的通信~码方式,可以获得辑ֈ4.1左右Qos的语音通信质量(国际电联规定语音通信质量Qos满分?)<br>优点Q语韌量得C提高<br>~点Q系l容量降?br>应用领域QGSM<br>版税方式Q按个收?br>备注QFR全速率Q是一UGSM语音~码方式?br>                                                                               <br><br><span style="COLOR: red">EFR<br></span>cdQAudio<br>制定者:飞利?br>所需频宽Q?3Kbps<br>Ҏ:用于GSM手机Z全速率13Kbps的语音编码和发?可以获得更好更清晰的语音质量(接近Qos4.7),需要网l服务商开通此网l功能,手机才能配合实现?br>优点Q音质好<br>~点Q需要网l服务商开通此网l功能,且系l容量降?br>应用领域QGSM<br>版税方式Q按个收?br>备注QEFR增强型全速率,一UGSM|络语音的编码方式?/div> <dt>  <dd> <div><br><span style="COLOR: red">GSM-AMR(Adaptive Multi-Rate)<br></span>cdQAudio<br>制定者:飞利?br>所需频宽Q?Kbps(4.75 Kbps~12.2 Kbps)<br>Ҏ: 可以对语韌行替换和消音Q^滑噪韻I支持间断式传输,对语韌行动态侦查。能在各U网l条件下提供优质的语x果?br>优点Q音质出?br>~点Q?br>应用领域QGSM<br>版税方式Q按个收?br>备注QGSM-ASM是一U广泛用在GPRS和W-CDMA|络上的音频标准。在规范ETSI GSM06.90中对GSM-AMRq行了定义。AMR语音~码是GSM 2+和WCDMA的默认编码标准,是第三代无线通讯pȝ的语音编码标准。GSM-AMR标准ZACELPQ代数激q性预)~码。它能在q泛的传输条件下提供高品质的语音效果?br>                                                                                                  <br><br><span style="COLOR: red">EVRC(Enhanced Variable Rate CoderQ增强型可变速率~码?<br></span>cdQAudio<br>制定者:国Qualcomm通信公司(即高?<br>所需频宽Q?Kbps?3Kbps<br>Ҏ:支持三种码率Q?.6 Kbps, 4.8 Kbps ?1.2 KbpsQ,噪声抑制Q邮件过滤。能在各U网l条件下提供优质的语x果?br>优点Q音质出?br>~点Q?br>应用领域QCDMA<br>版税方式Q按个收?br>备注QEVRC~码q泛使用于CDMA|络。EVRC标准遵@规范TIA IS-127的内宏VEVRC~码ZRCELPQ松弛码Ȁq性预)标准。该~码可以以Rate 1Q?71bits/packetQ,Rate 1/2Q?0bits/packetQ或是Rate 1/8Q?6bits/packetQ的定wq行操作。在要求下,它也能生空包(0bits/packetQ?/div> <dt>  <dd> <div><br><span style="COLOR: red">QCELP(QualComm Code Excited Linear PredictiveQ受ȀU性预编?<br></span>cdQAudio<br>制定者:国Qualcomm通信公司(即高?<br>所需频宽Q?k的语音编码算?可工作于4/4.8/8/9.6Kbps{固定速率上,而且可变速率地工作于800Kbps?600Kbps之间)<br>Ҏ:使用适当的门限值来军_所需速率。QCELP是一U?k的语音编码算?可以?k的速率下提供接q?3k的话韛_~质?。这是一U可变速率话音~码Q根据h的说话特性(大家应该能够体会我们日常的沟通和交流时ƈ不是一直保持某U恒定的方式讲话Q有间断、有不同的声音频率等都是人的自然表达Q而采取的一U优化技术?br>优点Q话x晰、背景噪声小Q系l容量大<br>~点Q?不是Free<br>应用领域QCDMA<br>版税方式Q每q支付一W用权费用<br>备注QQCELPQ即QualComm Code Excited Linear PredictiveQQualComm受激U性预编码)。美国Qualcomm通信公司的专利语音编码算法,是北第二代数字Ud电话QCDMAQ的语音~码标准QIS95Q。这U算法不仅可工作?/4.8/8/9.6kbitQs{固定速率上,而且可变速率地工作于800bitQs?600bitQs之间。QCELP法被认为是到目前ؓ止效率效率最高的一U算法,它的主要特点之一Q是使用适当的门限值来军_所需速率。I‘1限值懈景噪声电q_化而变化,q样抑制了背景噪声Q得即使在喧闹的环境中Q也能得到良好的话音质量Q?CDMA8Kbit/s的话韌似GSM 13Mbit/s的话韟뀂CDMA采用QCELP~码{一pd技术,h话音清晰、背景噪声小{优势,其性能明显 优于其他无线Ud通信pȝQ语韌量可以与有线电话媲美?无线辐射低?/div> </dd> <img src ="http://www.shnenglu.com/gtwdaizi/aggbug/41884.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/gtwdaizi/" target="_blank">郭天?/a> 2008-01-25 13:29 <a href="http://www.shnenglu.com/gtwdaizi/articles/41884.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>J2ME最佛_践之RMS操作http://www.shnenglu.com/gtwdaizi/articles/41109.html郭天?/dc:creator>郭天?/author>Mon, 14 Jan 2008 01:58:00 GMThttp://www.shnenglu.com/gtwdaizi/articles/41109.htmlhttp://www.shnenglu.com/gtwdaizi/comments/41109.htmlhttp://www.shnenglu.com/gtwdaizi/articles/41109.html#Feedback0http://www.shnenglu.com/gtwdaizi/comments/commentRss/41109.htmlhttp://www.shnenglu.com/gtwdaizi/services/trackbacks/41109.html~写灉|的RMS应用

MIDP应用E序的标准持久化Ҏ是使用RMS。RMScM于一个小型数据库QRecordStore相当于数据库的表Q每?#8220;?#8221;pq记录(RecordQ构成,一条记录就是一个用int表示的记录号RecordID和用byte[]表示的内宏V记录号可以看作?#8220;主键”Qbyte[]数组存储内容?/p>

RMS提供的记录操作可以实现根据ID直接获得记录Q或者枚丑և一个表中的所有记录?/p>

枚D记录是非怽效的Q因为只能比较byte[]数据来确定该记录是否是所需的记录。通过ID获得记录是高效而方便的Q类gSQL语句“SELECT byteArrayData FROM recordStoreName WHERE RecordID=?”。然而,通常应用E序很难知道某条记录的IDP而RMS记录?#8220;主键”又仅限于intcdQ无法用其他类型如String作ؓ“主键”来查找。因此,对于需要存取不同类型对象的应用E序而言Q就需要一个灵zȝRMS操作框架?/p>

我们的基本设xQ如果能使用String作ؓ“主键”来查找记录,p非常方便地获得所需的内宏V例如,应用E序讄可以通过"sys.settings"获得byte[]数组Qƈ依次d|,用户d信息可以通过"user.info"获得byte[]数组Q再分解出用户名和口令?/p>

因此Q我们实C个StorageHandlerc,提供唯一的RMS讉K接口Q得其他类完全不必考虑底层的RMS操作Q只需提供能标识自w的一个String卛_?/p>

如果我们能实CU类g数据库烦引的查找表,pҎString关键字查找某条记录。因此,我们使用一个名?index"的RecordStore来存储所有的索引Q每一条烦引都指向某一条具体记录的IDQ设计一个IndexEntry表示一条烦引:

class IndexEntry {
    private int selfId;   // IndexEntry的ID
    private int recordId; // 对应记录的ID
    private String key;   // 讉K记录的Key
}

Ҏ索引查找Q分3步进行:

1Q在名ؓ"index"的RecordStore中根据String查找对应的IndexEntry?br>2Q取出IndexEntryQ获得记录ID受?br>3Q根据ID可得另一个RecordStore的记录,然后可以读取、更新和删除该记录?/p>

如下图所C:

׃IndexEntry保存的数据很,Z加快查找速度Q可以在应用E序启动Ӟ把所有的IndexEntryd一个VectorQ在后面的操作中更新q个Vectorq与RecordStore保持同步?/p>

Z处理不同cd的数据,所有可通过StorageHandler存取的类都必dC个Storable接口Q?/p>

public interface Storable {
    String getKey();
    void getData(DataOutputStream output) throws IOException;
    void setData(DataInputStream input) throws IOException;
}

前面已经提到Q在MIDP应用E序中,序列化一个类的最x法是使用DataInputStream和DataOutputStream。因此,需要持久化的类可以通过getData()和setData()Ҏ非常方便地存取。假定应用程序的cUserInfo保存了用Ld名、口令和是否自动d的信息:

public class UserInfo {
    String username;
    String password;
    boolean autoLogin;
}

Z能将UserInfo存入RMSQ需要实现Storable接口Q?/p>

class UserInfo implements Storable {
    String username;
    String password;
    boolean autoLogin;
    public String getKey() { return "user.info"; } // 提供一个唯一标识W即?br>    public void getData(DataOutputStream output) throws IOException {
        output.writeUTF(username);
        output.writeUTF(password);
        output.writeBoolean(autoLogin);
    }
    public void setData(DataInputStream input) throws IOException {
        username = input.readUTF();
        password = input.readUTF();
        autoLogin = input.readBoolean();
    }
    // getters here...
}

要保存UserInfoQ只需调用StorageHandler的保存方法:

StorageHandler.storeOrUpdate(userinfo);

要读取UserInfoQ调用StorageHandler的读取方法:

UserInfo userinfo = new UserInfo();
StorageHandler.load(userinfo);

q样Q需要读取或保存数据的类完全不必涉及底层的RMS操作Q大大简化了应用E序的设计,增强了源代码的可复用性与可维护性?/p>

]]>
J2ME中的囑փ处理http://www.shnenglu.com/gtwdaizi/articles/36209.html郭天?/dc:creator>郭天?/author>Fri, 09 Nov 2007 11:57:00 GMThttp://www.shnenglu.com/gtwdaizi/articles/36209.htmlhttp://www.shnenglu.com/gtwdaizi/comments/36209.htmlhttp://www.shnenglu.com/gtwdaizi/articles/36209.html#Feedback0http://www.shnenglu.com/gtwdaizi/comments/commentRss/36209.htmlhttp://www.shnenglu.com/gtwdaizi/services/trackbacks/36209.html1.囑փ~放
1.1 使用midp2.0的getRGB()函数
public static Image ZoomImage(Image src, int desW, int desH) {
  Image desImg 
= null;
  
int srcW = src.getWidth(); // 原始囑փ?/span>
  int srcH = src.getHeight(); // 原始囑փ?/span>
  int[] srcBuf = new int[srcW * srcH]; // 原始囄像素信息~存

  src.getRGB(srcBuf, 
0, srcW, 00, srcW, srcH);

  
// 计算插D
  int[] tabY = new int[desH];
  
int[] tabX = new int[desW];

  
int sb = 0;
  
int db = 0;
  
int tems = 0;
  
int temd = 0;
  
int distance = srcH > desH ? srcH : desH;
  
for (int i = 0; i <= distance; i++) { /* 垂直方向 */
   tabY[db] 
= sb;
   tems 
+= srcH;
   temd 
+= desH;
   
if (tems > distance) {
    tems 
-= distance;
    sb
++;
   }
   
if (temd > distance) {
    temd 
-= distance;
    db
++;
   }
  }

  sb 
= 0;
  db 
= 0;
  tems 
= 0;
  temd 
= 0;
  distance 
= srcW > desW ? srcW : desW;
  
for (int i = 0; i <= distance; i++) { /* 水^方向 */
   tabX[db] 
= (short) sb;
   tems 
+= srcW;
   temd 
+= desW;
   
if (tems > distance) {
    tems 
-= distance;
    sb
++;
   }
   
if (temd > distance) {
    temd 
-= distance;
    db
++;
   }
  }

  
// 生成攑֤~小后图形像素buf
  int[] desBuf = new int[desW * desH];
  
int dx = 0;
  
int dy = 0;
  
int sy = 0;
  
int oldy = -1;
  
for (int i = 0; i < desH; i++) {
   
if (oldy == tabY[i]) {
    System.arraycopy(desBuf, dy 
- desW, desBuf, dy, desW);
   } 
else {
    dx 
= 0;
    
for (int j = 0; j < desW; j++) {
     desBuf[dy 
+ dx] = srcBuf[sy + tabX[j]];
     dx
++;
    }
    sy 
+= (tabY[i] - oldy) * srcW;
   }
   oldy 
= tabY[i];
   dy 
+= desW;
  }

  
// 生成囄
  desImg = Image.createRGBImage(desBuf, desW, desH, false);
  
return desImg;
 }

1.2 midp1.0下可用的~放函数
 public static Image scaleImage (Image src, int dstW, int dstH) {
   
   int srcW = src.getWidth();
   
   int srcH = src.getHeight();
   

   
   Image tmp = Image.createImage(dstW, srcH);
   
   Graphics g = tmp.getGraphics();
  

   
   int delta = (srcW << 16/ dstW;
   
   int pos = delta/2;
   

   
   for (int x = 0; x < dstW; x++) {
   
   g.setClip(x, 01, srcH);
  
    g.drawImage(src, x - (pos >> 16), 0, Graphics.LEFT | Graphics.TOP);
   
   pos += delta;
   
  }
   
  Image dst = Image.createImage(dstW, dstH);
   
  g = dst.getGraphics();
   

  
   delta = (srcH << 16/ dstH;
  
   pos = delta/2;
   

  
   for (int y = 0; y < dstH; y++) {
  
   g.setClip(0, y, dstW, 1);
   
  g.drawImage(tmp, 0, y - (pos >> 16), Graphics.LEFT | Graphics.TOP);
   
  pos += delta;
   
 }
    return dst;
   
 }
   
}
2.其他囑փ的处?如图像的颜色/{
下面提供了源代码, 点击q里下蝲



]]>
Eclispe中调试J2MEE序(Debug)http://www.shnenglu.com/gtwdaizi/articles/36063.html郭天?/dc:creator>郭天?/author>Wed, 07 Nov 2007 12:52:00 GMThttp://www.shnenglu.com/gtwdaizi/articles/36063.htmlhttp://www.shnenglu.com/gtwdaizi/comments/36063.htmlhttp://www.shnenglu.com/gtwdaizi/articles/36063.html#Feedback0http://www.shnenglu.com/gtwdaizi/comments/commentRss/36063.htmlhttp://www.shnenglu.com/gtwdaizi/services/trackbacks/36063.html在Eclipse中,使用模拟器调试kvm时控制台昄如下Q?br>Connecting to 127.0.0.1 on port 2800
Connecting to debugger at localhost:3170
Waiting for KVM...
正在通过存储?temp.DefaultColorPhone1111472185125 来运?
Connection received.
Connected to KVM
Method............: 101657ec 'com/sun/cldc/i18n/j2me/UTF_8_Reader.read (virtual)'
Stack Chunk.......: ec37e4
Frame Pointer.....: ec3814
Current IP........: 101e4b6c = 101e4b50 + offset 28
Previous Frame....: e70714
Previous IP.......: 1021a866 (offset 11)
Frame size........: 10 (4 arguments, 6 local variables)
Argument[0].......: ea5494
Argument[1].......: ea4d68
Argument[2].......: 0
Argument[3].......: 1
Local[4]..........: 0
Local[5]..........: 0
Local[6]..........: 0
Local[7]..........: 0
Local[8]..........: 0
Local[9]..........: 0
Operand[1]........: 72

Method............: 10188c50 'java/io/Reader.read (virtual)'
Stack Chunk.......: e7056c
Frame Pointer.....: e70714
Current IP........: 1021a866 = 1021a85b + offset 11
Previous Frame....: e706f4
Previous IP.......: 101e2b1f (offset 11)
Frame size........: 2 (1 arguments, 1 local variables)
Argument[0].......: ea5494
Local[1]..........: ea4d68

Method............: 10163e1c 'java/io/InputStreamReader.read (virtual)'
Stack Chunk.......: e7056c
Frame Pointer.....: e706f4
Current IP........: 101e2b1f = 101e2b14 + offset 11
Previous Frame....: e706d8
Previous IP.......: 101fbc3a (offset 15)
Frame size........: 1 (1 arguments, 0 local variables)
Argument[0].......: ea5710

Method............: 10174edc 'com/sun/midp/midletsuite/JadProperties.readLine (virtual)'
Stack Chunk.......: e7056c
Frame Pointer.....: e706d8
Current IP........: 101fbc3a = 101fbc2b + offset 15
Previous Frame....: e706a8
Previous IP.......: 101fbb43 (offset 63)
Frame size........: 6 (2 arguments, 4 local variables)
Argument[0].......: ea5c60
Argument[1].......: ea5710
Local[2]..........: 1fd
Local[3]..........: 3
Local[4]..........: 63
Local[5]..........: 0

Method............: 10174e7c 'com/sun/midp/midletsuite/JadProperties.partialLoad (virtual)'
Stack Chunk.......: e7056c
Frame Pointer.....: e706a8
Current IP........: 101fbb43 = 101fbb04 + offset 63
Previous Frame....: e70660
Previous IP.......: 101fbb03 (offset 8)
Frame size........: 12 (4 arguments, 8 local variables)
Argument[0].......: ea5c60
Argument[1].......: ea5728
Argument[2].......: 0
Argument[3].......: 7fffffff
Local[4]..........: ea5710
Local[5]..........: ea4e84
Local[6]..........: e
Local[7]..........: ea4e30
Local[8]..........: f
Local[9]..........: ea4dd4
Local[10]..........: 0
Local[11]..........: 1

Method............: 10174e5c 'com/sun/midp/midletsuite/JadProperties.load (virtual)'
Stack Chunk.......: e7056c
Frame Pointer.....: e70660
Current IP........: 101fbb03 = 101fbafb + offset 8
Previous Frame....: e7063c
Previous IP.......: 101f1596 (offset 190)
Frame size........: 3 (3 arguments, 0 local variables)
Argument[0].......: ea5c60
Argument[1].......: ea5728
Argument[2].......: 0

Method............: 1016d8b0 'com/sun/midp/dev/DevMIDletSuiteImpl.create (static)'
Stack Chunk.......: e7056c
Frame Pointer.....: e7063c
Current IP........: 101f1596 = 101f14d8 + offset 190
Previous Frame....: e705d0
Previous IP.......: 101f14d7 (offset 62)
Frame size........: 21 (10 arguments, 11 local variables)
Argument[0].......: ec183c
Argument[1].......: ebae20
Argument[2].......: ebaea8
Argument[3].......: 10115c10
Argument[4].......: 0
Argument[5].......: 0
Argument[6].......: 1010aa68
Argument[7].......: 0
Argument[8].......: 0
Argument[9].......: 0
Local[10]..........: ea5cc8
Local[11]..........: ea5b9c
Local[12]..........: 0
Local[13]..........: ea5d1c
Local[14]..........: 8
Local[15]..........: ea576c
Local[16]..........: 3e1
Local[17]..........: ea577c
Local[18]..........: ea5728
Local[19]..........: 0
Local[20]..........: 0

Method............: 1016d890 'com/sun/midp/dev/DevMIDletSuiteImpl.create (static)'
Stack Chunk.......: e7056c
Frame Pointer.....: e705d0
Current IP........: 101f14d7 = 101f1499 + offset 62
Previous Frame....: e705a4
Previous IP.......: 101dec7d (offset 20)
Frame size........: 5 (5 arguments, 0 local variables)
Argument[0].......: ec183c
Argument[1].......: ebae20
Argument[2].......: ebaea8
Argument[3].......: 10115c10
Argument[4].......: 0

Method............: 1016224c 'com/sun/midp/main/Main.runLocalClass (static)'
Stack Chunk.......: e7056c
Frame Pointer.....: e705a4
Current IP........: 101dec7d = 101dec69 + offset 20
Previous Frame....: e70580
Previous IP.......: 101de6fc (offset 116)
Frame size........: 3 (1 arguments, 2 local variables)
Argument[0].......: ec2028
Local[1]..........: 0
Local[2]..........: 0

Method............: 101621ac 'com/sun/midp/main/Main.main (static)'
Stack Chunk.......: e7056c
Frame Pointer.....: e70580
Current IP........: 101de6fc = 101de688 + offset 116
Previous Frame....: 0
Previous IP.......: 1
Frame size........: 3 (1 arguments, 2 local variables)
Argument[0].......: e70858
Local[1]..........: ec2028
Local[2]..........: ebaefc

VM status:
Instruction pointer.: 101e4b6c (offset within invoking method: 28)
Next instruction....: 0x36
Frame pointer.......: ec3814
Local pointer.......: ec37ec
Stack size..........: 256; sp: ec382c; ranges: e70574-e70774;ec37ec-ec39ec;
Contents of the current stack frame:
    ec37ec: ea5494 (lp)
    ec37f0: ea4d68
    ec37f4: 0
    ec37f8: 1
    ec37fc: 0
    ec3800: 0
    ec3804: 0
    ec3808: 0
    ec380c: 0
    ec3810: 0
    ec3814: e70714 (fp)
    ec3818: 1021a866
    ec381c: e70728
    ec3820: 101657ec
    ec3824: ec37e4
    ec3828: 0 (end of frame)
    ec382c: 72 (sp)
Execution stack contains 580 items:
e70858  
ec2028  
ebaefc  
0  
1  
e70570  
101621ac  
e7056c  
0  
ec2028  
0  
0  
e70580  
101de6fc  
e70594  
1016224c  
e7056c  
0  
ec183c  
ebae20  
ebaea8  
10115c10  
0  
e705a4  
101dec7d  
e705b8  
1016d890  
e7056c  
0  
ec183c  
ebae20  
ebaea8  
10115c10  
0  
0  
1010aa68  
0  
0  
0  
ea5cc8  
ea5b9c  
0  
ea5d1c  
8  
ea576c  
3e1  
ea577c  
ea5728  
0  
0  
e705d0  
101f14d7  
e705e4  
1016d8b0  
e7056c  
0  
ea5c60  
ea5728  
0  
e7063c  
101f1596  
e70650  
10174e5c  
e7056c  
ea5c60  
ea5c60  
ea5728  
0  
7fffffff  
ea5710  
ea4e84  
e  
ea4e30  
f  
ea4dd4  
0  
1  
e70660  
101fbb03  
e70674  
10174e7c  
e7056c  
0  
ea5c60  
ea5710  
1fd  
3  
63  
0  
e706a8  
101fbb43  
e706bc  
10174edc  
e7056c  
0  
ea5710  
e706d8  
101fbc3a  
e706ec  
10163e1c  
e7056c  
0  
ea5494  
ea4d68  
e706f4  
101e2b1f  
e70708  
10188c50  
e7056c  
0  
ea5494  
ea4d68  
0  
1  
ea4dd4  
1  
1  
e7072c  
10162008  
e7056c  
ea5c48  
ffffffff  
0  
10116528  
b  
0  
0  
0  
ea5494  
ea4d68  
0  
1  
0  
0  
0  
0  
0  
0  
e70714  
1021a866  
e70728  
101657ec  
ec37e4  
0  
72  

Execution completed.
ALERT: Attempting to resume current thread
653306 bytecodes executed
3 thread switches
738 classes in the system (including system classes)
16084 dynamic objects allocated (821916 bytes)
3 garbage collections (539264 bytes collected)
Execution completed.
653306 bytecodes executed
3 thread switches
738 classes in the system (including system classes)
16084 dynamic objects allocated (821916 bytes)
3 garbage collections (539264 bytes collected)

模拟器一闪就没了?br>
要解册个问题,需要做如下工作Q?br>
安装好EclipseME之后Q我们要对原有的Eclipse配置做一点小的改动。由于开发J2ME时我们需要首先启动手机模拟器Q那么在Debug模式的Eclipse默认讄不等到模拟器启动׃p|。修改这点很单,在Window ->Preference->Java->Debug中,把超时时间提高到 20000 毫秒?/p>
在运行调试的时候经怼出现classnotfound的问? 出现q种问题首先要检查是否在Java Build Path - order and export中包括了需要的jar.

]]>
com.sun.kvem.midletsuite.InvalidJadException:Reason = 36 Error in opening jar file:..........http://www.shnenglu.com/gtwdaizi/articles/33050.html郭天?/dc:creator>郭天?/author>Sat, 29 Sep 2007 01:42:00 GMThttp://www.shnenglu.com/gtwdaizi/articles/33050.htmlhttp://www.shnenglu.com/gtwdaizi/comments/33050.htmlhttp://www.shnenglu.com/gtwdaizi/articles/33050.html#Feedback2http://www.shnenglu.com/gtwdaizi/comments/commentRss/33050.htmlhttp://www.shnenglu.com/gtwdaizi/services/trackbacks/33050.html 
今天q行以前做好的一个J2ME的程? 弹出q个对话? 打开JAD文g一查看,原来在JAD文g中指定的.jar文g名出C错误.D了这个情?

]]>
【{载】RGBQYUV的来历及其相互{?/title><link>http://www.shnenglu.com/gtwdaizi/articles/32956.html</link><dc:creator>郭天?/dc:creator><author>郭天?/author><pubDate>Sat, 29 Sep 2007 01:40:00 GMT</pubDate><guid>http://www.shnenglu.com/gtwdaizi/articles/32956.html</guid><wfw:comment>http://www.shnenglu.com/gtwdaizi/comments/32956.html</wfw:comment><comments>http://www.shnenglu.com/gtwdaizi/articles/32956.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/gtwdaizi/comments/commentRss/32956.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/gtwdaizi/services/trackbacks/32956.html</trackback:ping><description><![CDATA[在视频等相关的应用中Q?span><font face=Calibri>YUV</font></span><span>是一个经常出现的格式。本文主要以图解的资料的形式详细描述</span><span><font face=Calibri>YUV</font></span><span>?/span><span><font face=Calibri>RGB</font></span><span>格式的来由,怺关系以及转换方式Qƈ?/span><span><font face=Calibri>C</font></span><span>语言实现?/span><span><font face=Calibri>YUV</font></span><span>转ؓ</span><span><font face=Calibri>RGB</font></span><span>E序q行介绍?/span> <p><span><span><font face=Calibri>         </font></span></span><span>人类眼睛的色觉,hҎ的特性,早在上世U初Q?/span><span><font face=Calibri>Young</font></span><span>Q?/span><span><font face=Calibri>1809</font></span><span>Q和</span><span><font face=Calibri>Helmholtz</font></span><span>Q?/span><span><font face=Calibri>1824</font></span><span>Q就提出了视觉的三原色学_卻I视网膜存在三U视锥细胞,分别含有对红、绿、蓝三种光线敏感的视色素Q当一定L长的光线作用于视|膜Ӟ以一定的比例使三U视锥细胞分别生不同程度的兴奋Q这L信息传至中枢Q就产生某一U颜色的感觉?/span></p> <p><font size=3><span><font face="Times New Roman">       </font></span><span>70<span>q代以来Q由于实验技术的q步Q关于视|膜中有三种对不同L长光U特别敏感的视锥l胞的假_已经被许多出色的<strong>实验所证实</strong>?/span></span><font face="Times New Roman"> </font></font><font face="Times New Roman"></font><font size=3><span>例如Q①有h用不过单个视锥直径的细单色光束,逐个查ƈl制在体Q最初实验是在金鱼和蝾螈{动物进行,以后是hQ?strong>视锥l胞的光谱吸收曲U?/strong>Q发现所有绘制出来的曲线不外三种cdQ分别代表了三类光谱吸收Ҏ不同的视锥l胞Q一cȝ吸收峰值在</span><span>420nm<span>处,一cd</span>534nm<span>处,一cd</span>564nm<span>处,差不多正好相当于蓝、绿、红三色光的波长。与上述视觉三原色学说的假设相符。②用微甉|记录单个视锥l胞感受器电位的ҎQ也得到了类似的l果Q即不同单色光所引v的不同视锥细胞的极化型感受器电位的大小也不同,峰值出现的情况W合于三原色学说?/span></span></font></p> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Courier New'; mso-bidi-font-size: 10.5pt; mso-font-kerning: 1.0pt"><span style="mso-spacerun: yes"><br><br><br><span lang=ZH style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Courier New'; mso-font-kerning: 1.0pt">于是Q在彩色昄?/span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">q没有发明的时候,人类已经懂得使用三原色光调配出所有颜色的光。ƈ不是说三原色混合后生了新的频率的光Q而是lh眼睛的感觉是q样?br><br><br><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">在显C器发明之后Q从黑白昄器发展到彩色昄器,Z开始用发Z同颜色的光的荧光_(</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>CRT</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Q等d体显C器Q,或者不同颜色的滤色片(</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>LCD</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Q,或者不同颜色的半导体发光器Ӟ</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>OLED</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>LED</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">大型全彩昄牌)来Ş成色彩,无一例外的选择?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Red,Green,Blue</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">q?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>3</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">U颜色的发光体作为基本的发光单元。通过控制他们发光强度Q组合出了h眼睛能够感受到的大多数的自然色彩?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span> <p class=MsoNormal style="MARGIN: 0in 0in 10pt"><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><span style="mso-spacerun: yes"><font face=Calibri>         </font></span></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">计算机显C彩色图像的时候也不例外,最l显C的时候,要控制一个像素中</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Red,Green,Blue</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的|来确定这个像素的颜色。计机中无法模拟连l的存储从最暗到最亮的量|而只能以数字的方式表C。于是,l合人眼睛的敏感E度Q?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>3</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">个字节(</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>3*8</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">位)来分别表CZ个像素里面的</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Red,Green</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Blue</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的发光强度数|q就是常见的</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>RGB</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">格式。我们可以打开d板,在自定义颜色工具框中Q输?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>r,g,b</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">|得到不同的颜艌Ӏ?br><br><br><br><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">但是对于视频捕获和编解码{应用来Ԍq样的表C方式数据量太大了。需要想办法在不太媄响感觉的情况下,对原始数据的表示Ҏq行更改Q减数据量?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt"><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri><span style="mso-spacerun: yes">       </span><span style="mso-spacerun: yes">  </span></font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">无论中间处理q程怎样Q最l都是ؓ了展C给看,q样的更改,也是从h眼睛的特性出发,和发?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>RGB</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">三原色表C方法的出发Ҏ一L?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt"><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><span style="mso-spacerun: yes"><font face=Calibri>         </font></span></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">于是我们使用</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y,Cb,Cr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">模型来表C颜艌Ӏ?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Iain</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的书中写道:</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>The human visual system (HVS) is less sensitive to colour than to luminance (brightness).</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">人类视觉pȝQ其实就是h的眼睛)对亮度的感觉比对颜色更加敏感?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt"><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><span style="mso-spacerun: yes"><font face=Calibri>         </font></span></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>RGB</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">色彩I间中,三个颜色的重要程度相同,所以需要用相同的分L率进行存储,最多?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>RGB565</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">q样的Ş式减量化的_ֺQ但?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>3</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">个颜色需要按照相同的分L率进行存储,数据量还是很大的。所以,利用人眼睛对亮度比对颜色更加敏感Q将囑փ的亮度信息和颜色信息分离Qƈ使用不同的分辨率q行存储Q这样可以在对主观感觉媄响很的前提下,更加有效的存储图像数据?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt"><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri><span style="mso-spacerun: yes">        </span><span style="mso-spacerun: yes"> </span>YCbCr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">色彩I间和它的变形(有时被称?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>YUV</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Q是最常用的有效的表示彩色囑փ的方法?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">是图像的亮度Q?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>luminance/luma</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Q分量,使用以下公式计算Qؓ</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>R,G,B</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">分量的加权^均|</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt"><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri><span style="mso-spacerun: yes">        </span><span style="mso-spacerun: yes"> </span>Y = kr R + kgG + kbB<o:p></o:p></font></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt"><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><span style="mso-spacerun: yes"><font face=Calibri>        </font></span></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">其中</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>k</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">是权重因数?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt"><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><span style="mso-spacerun: yes"><font face=Calibri>        </font></span></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">上面的公式计出了亮度信息,q有颜色信息Q用色差(</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>color difference/chrominance</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>chroma</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Q来表示Q其中每个色差分量ؓ</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>R,G,B</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">值和亮度</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的差|</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt"><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">  </span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cb = B </font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Q?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y<o:p></o:p></font></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt"><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">  </span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cr = R </font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Q?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y <o:p></o:p></font></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 23.25pt"><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cg = G</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Q?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri> Y<o:p></o:p></font></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 23.25pt"><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">其中Q?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cb+Cr+Cg</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">是一个常敎ͼ其实是一个关?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的表辑ּQ,所以,只需要其中两个数值结?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">值就能够计算出原来的</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>RGB</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">倹{所以,我们仅保存亮度和蓝色、红色的色差|q就?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>(Y,Cb,Cr)</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 23.25pt"><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">相比</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>RGB</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">色彩I间Q?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>YCbCr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">色彩I间有一个显著的优点?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的存储可以采用和原来画面一L分L率,但是</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cb,Cr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的存储可以用更低的分L率。这样可以占用更的数据量,q且在图像质量上没有明显的下降。所以,色彩信息以低于量度信息的分辨率来保存是一个简单有效的囑փ压羃Ҏ?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 23.25pt"><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>COLOUR SPACES .17 ITU-R recommendation BT.601 </font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">中,在计?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Ӟ权重选择?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>kr=0.299,kg=0.587,kb=0.114</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">。于是常用的转换公式如下Q?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 22pt; mso-char-indent-count: 2.0"><font face=Calibri size=3>Y = 0.299R + <st1:chmetcnv UnitName="g" SourceValue=".587" HasSpace="False" Negative="False" NumberType="1" TCSC="0" w:st="on">0.587G</st1:chmetcnv> + 0.114B</font></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 22pt; mso-char-indent-count: 2.0"><font size=3><font face=Calibri>Cb = 0.564(B </font><span lang=ZH style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Q?/span><font face=Calibri> Y ) </font></font></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 22pt; mso-char-indent-count: 2.0"><font size=3><font face=Calibri>Cr = 0.713(R </font><span lang=ZH style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Q?/span><font face=Calibri> Y )</font></font></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 22pt; mso-char-indent-count: 2.0"><o:p><font face=Calibri size=3> </font></o:p></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 22pt; mso-char-indent-count: 2.0"><font face=Calibri size=3>R = Y + 1.402Cr</font></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 22pt; mso-char-indent-count: 2.0"><font face=Calibri size=3>G = Y - 0.344Cb - 0.714Cr</font></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 22pt; mso-char-indent-count: 2.0"><font face=Calibri size=3>B = Y + 1.772Cb</font></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 24pt; mso-char-indent-count: 2.0"><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">有了q个公式Q我们就能够一q?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>RGB</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">画面转换成ؓ</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>YUV</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">画面了,反过来也可以。下面将画面数据I竟是以什么Ş式存储v来的?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 24pt; mso-char-indent-count: 2.0"><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>RGB24</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">格式中,对于宽度?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>w,</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">高度?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>h</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的画面,需?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>w*h*3</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">个字节来存储其每个像素的</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>rgb</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">信息Q画面的像素数据是连l排列的。按?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>r(0,0),g(0,0),b(0,0);r(0,1),g(0,1),b(0,1);…;r(w-1,0),g(w-1,0),b(w-1,0);…;r(w-1,h-1),g(w-1,h-1),b(w-1,h-1)</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">q样的顺序存放v来?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 24pt; mso-char-indent-count: 2.0"><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>YUV</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">格式中,?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>YUV420</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">格式Z。宽度ؓ</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>w</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">高度?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>h</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的画面,其亮?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">数据需?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>w*h</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">个字节来表示Q每个像素点一个亮度)。?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cb</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">数据则是画面?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>4</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">个像素共享一?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cb,Cr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">倹{这?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cb</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>w*h/4</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">个字节,</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>w*h/4</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">个字节?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 24pt; mso-char-indent-count: 2.0"><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>YUV</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">文g中,把多个的画面连l存放。就?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>YUV YUV YUV…..</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">q样的不断连l的形式Q而其中每?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>YUV</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Q就是一q画面?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 24pt; mso-char-indent-count: 2.0"><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">在这单个</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>YUV</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">中,?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>w*h</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">个字节是</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">数据Q接着?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>w*h/4</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">个字节是</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cb</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">数据Q再接着?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>w*h/4</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">个字节ؓ</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">数据?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 24pt; mso-char-indent-count: 2.0"><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">在由q样降低了分辨率的数据还原出</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>RGB</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">数据的时候,p依据像素的位|找到它对应?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y,Cb,Cr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">|其中</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">值最好找刎ͼ像素位置?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>x,y</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的话Q?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">数据中第</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>y*width+x</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">个数值就是它?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">倹{?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cb</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">׃是每</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>2x2</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">像素的画面块拥有一个,q样</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cb</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">数据相当于两个分辨率?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>w/2 * h/2</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的画面,那么原来画面中的位置?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>x,y</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的像素,在这L低分辨率画面中的位置?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>x/2,y/2</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Q属于它?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cb,Cr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">值就在这个地方:</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>(y/2)*(width/2)+(x/2)</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 24pt; mso-char-indent-count: 2.0"><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Z直观赯Q再下面的图中,分别?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">画面</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>(Cb,Cr=0)</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cb,Cr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">画面</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>(Y=128)</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">昄出来Q可?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cb,Cr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">画面的分辨率?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Y</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">画面?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>1/4</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">。但是合成一个画面之后,我们的眼睛丝毫感觉不?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>4</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">个像素是q一?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cb,Cr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <br><br>  Cb,Cr<span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">画面</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 24pt; mso-char-indent-count: 2.0"><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cb,Cr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">画面攑֤观察Q里面颜色相同的块都?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>2x2</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">大小的?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-INDENT: 24pt; mso-char-indent-count: 2.0"><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">附g?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Windows Mobile</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">上用公式进?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>YUV</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>RGB</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">转换的程序。其中需要注意的?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>Cb,Cr</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">在计过E中是会出现负数的,但是?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>-128</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>127</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">q些数值都用一个字节表C,d的时候就映射</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>0</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>255</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">q个区间Q成Z无符L|所以要减去</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>128</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Q才能参与公式计。这Lq算有Q点运,效率是比较低的,所以要提高效率的话Q一般在实用E序中用整数计或者查表法来代ѝ还有,q算后的</span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>r,g,b</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">可能会超q?/span><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"><font face=Calibri>0-255</font></span><span lang=ZH style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">的区_作一个判断进行调整就可以了?/span></p> <span style="COLOR: red">    不过q里面的YUV TO RGB的算?效率实在是低,因ؓ里面有了点q算,解一?76*144的图像大概需?00ms左右,q是无法忍受?如果消除点q算,只需?0ms左右,效率的提升真是无法想?所以大家还是避免在手机上面q行点q算.</span></span></span></span></span> <img src ="http://www.shnenglu.com/gtwdaizi/aggbug/32956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/gtwdaizi/" target="_blank">郭天?/a> 2007-09-29 09:40 <a href="http://www.shnenglu.com/gtwdaizi/articles/32956.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.8x8z.cn" target="_blank">ȫɫƴɫƬѾþþ</a>| <a href="http://www.vcdordvd.cn" target="_blank">99þþƷҹһ</a>| <a href="http://www.rh-hr.cn" target="_blank">þþƷƷ</a>| <a href="http://www.digital-agri.org.cn" target="_blank">99þþƷѿ</a>| <a href="http://www.lttao.cn" target="_blank">Ʒþþþ</a>| <a href="http://www.u2860.cn" target="_blank">þþƷ7777</a>| <a href="http://www.icq418.cn" target="_blank">þˬƬţţ</a>| <a href="http://www.huizegufen.cn" target="_blank">þþƷԴվ</a>| <a href="http://www.ycqdzgov.cn" target="_blank">wwwþþcom</a>| <a href="http://www.oldoak.net.cn" target="_blank">þóѲ</a>| <a href="http://www.minghuzisha.cn" target="_blank">þù׽</a>| <a href="http://www.wongceline.cn" target="_blank">պһþ99</a>| <a href="http://www.goodleg.cn" target="_blank">ŷ츾XXXXԾþþ </a>| <a href="http://www.babaishu.cn" target="_blank">ŷ龫Ʒþþþþþ</a>| <a href="http://www.wxyuyang.com.cn" target="_blank">ҹƷþþþþ˳ </a>| <a href="http://www.kuaiyanapp.com.cn" target="_blank">ۺɫ77777þ</a>| <a href="http://www.mfsdrj.com.cn" target="_blank">ƷþþӰ㽶</a>| <a href="http://www.9kgat.cn" target="_blank">þþþѾƷ</a>| <a href="http://www.jj171.cn" target="_blank">㽶þһ޶ӰԺ </a>| <a href="http://www.ijesus.com.cn" target="_blank">ŷպþAV</a>| <a href="http://www.hpexpfe.cn" target="_blank">þþƷAV鶹</a>| <a href="http://www.greektaverna.cn" target="_blank">99þþƷѿһ</a>| <a href="http://www.z5u5.cn" target="_blank">˾þô߽AVۺӰԺ</a>| <a href="http://www.gdchengye.com.cn" target="_blank">Ʒþþþһ </a>| <a href="http://www.hbxasn.cn" target="_blank">þҹӰ</a>| <a href="http://www.92loc.cn" target="_blank">鶹wwwþ</a>| <a href="http://www.hxstone.com.cn" target="_blank">ŷ޷avþò</a>| <a href="http://www.fundmm.cn" target="_blank">ɫݺݾþۺ</a>| <a href="http://www.jkwovf.cn" target="_blank">ľþۺĻ</a>| <a href="http://www.hhyskj.com.cn" target="_blank">91Ʒ91þ</a>| <a href="http://www.kxvd.cn" target="_blank">þùƷþùƷ</a>| <a href="http://www.gp402.cn" target="_blank">˾þô߽AV</a>| <a href="http://www.mengniu0521.cn" target="_blank">þþƷ</a>| <a href="http://www.nlzm.net.cn" target="_blank">þŮվ</a>| <a href="http://www.z42195.cn" target="_blank">þùƷþùƷ</a>| <a href="http://www.huishougongsi.com.cn" target="_blank">պ޾Ʒþ</a>| <a href="http://www.syggzy.org.cn" target="_blank">޾Ʒһۺ99þ </a>| <a href="http://www.vtdf.cn" target="_blank">Ʒ۲ӰԺþ</a>| <a href="http://www.shlinfeng.com.cn" target="_blank">ݺɫþþһ</a>| <a href="http://www.bibi81.cn" target="_blank">պƷþþվ </a>| <a href="http://www.wangzhuanzhe.cn" target="_blank">ھƷþþþù</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>