『壹』 在android 平台實現硬解的大俠們,你們是怎麼實現硬解碼的
1、視頻尺寸
一般都能支持176X144/352X288這種尺寸,但是大一些的,640X480就有很多機子不行了,至於為什麼,我也不知道。當然,這個尺寸必須和攝像頭預覽的尺寸一致,預覽的尺寸可以枚舉一下。
2、顏色空間
根據ANdroid SDK文檔,確保所有硬體平台都支持的顏色,在攝像頭預覽輸出是YUV12,在編碼器輸入是COLOR_FormatYUV420Planar,也就是前面代碼中設置的那樣。 不過,文檔終究是文檔,否則安卓就不是安卓。
在有的平台上,這兩個顏色格式是一樣的,攝像頭的輸出可以直接作為編碼器的輸入。也有的平台,兩個是不一樣的,前者就是YUV12,後者等於I420,需要把前者的UV分量顛倒一下。
byte[] i420bytes = null;
private byte[] swapYV12toI420(byte[] yv12bytes, int width, int height) {
if (i420bytes == null)
i420bytes = new byte[yv12bytes.length];
for (int i = 0; i < width*height; i++)
i420bytes[i] = yv12bytes[i];
for (int i = width*height; i < width*height + (width/2*height/2); i++)
i420bytes[i] = yv12bytes[i + (width/2*height/2)];
for (int i = width*height + (width/2*height/2); i < width*height + 2*(width/2*height/2); i++)
i420bytes[i] = yv12bytes[i - (width/2*height/2)];
return i420bytes;
}
3、輸入輸出緩沖區的格式
SDK里並沒有規定格式,但是,這種情況H264的格式基本上就是附錄B。但是,也有比較有特色的,它就是不帶那個StartCode,就是那個0x000001,搞得把他編碼器編出來的東西送給他的解碼器。
ByteBuffer outputBuffer = outputBuffers[outputBufferIndex];
byte[] outData = new byte[bufferInfo.size + 3];
outputBuffer.get(outData, 3, bufferInfo.size);
if (frameListener != null) {
if ((outData[3]==0 && outData[4]==0 && outData[5]==1)
|| (outData[3]==0 && outData[4]==0 && outData[5]==0 && outData[6]==1))
{
frameListener.onFrame(outData, 3, outData.length-3, bufferInfo.flags);
}
else
{
outData[0] = 0;
outData[1] = 0;
outData[2] = 1;
frameListener.onFrame(outData, 0, outData.length, bufferInfo.flags);
}
}
『貳』 android vlc怎麼硬解碼
前幾天用PC平台上的VLC播放RTSP流媒體時延遲時間較長,存在1s左右的延遲,效果不是很好,後來查了資料,發現這個延遲時間是可以修改的。 找到工具->首選項,然後參數設置左下角選擇「全部」,左邊選擇 「輸入編解碼」->「網路緩存」選項,可以根據具體需要加以修改,具體見下圖不過這個值不要太小,否則緩存太小,播放視頻的過程中會很卡
『叄』 Android萬能視頻播放器07-檢測視頻是否可以被硬解碼
1、解碼流程:
根據FFmpeg中視頻解碼器的名稱找到對應手機硬解碼器,如果存在則可以硬解碼,
走硬解碼流程;不存在就只能走軟解碼流程。
2、硬解碼:
使用MediaCodec直接解旅戚碼AVpacket,此時需要對AVPacket進行格式過濾,然後
MediaCodec解碼後的數據用OpenGL ES渲染出來。
3、軟解碼:
直接用OpenGL ES 渲染YUV數鬧吵據。
MediaCodecList.getCodecCount()支持的最低的SDK版本是16,buile.gradle中改 minSdkVersion 16
宏拆彎陵定義硬解碼、軟解碼
『肆』 android硬解碼cpu消耗性能
題主是否想詢問游兄派「android硬解碼需要cpu消耗性能嗎」?不需要。android硬解碼是將原來全部交由CPU來處理的視頻數據的一部分交由cpu來做,而cpu的並行運算能力要遠遠高於cpu,這塵轎樣可以大大的降低對cpu的負載,不需要cpu消耗性能,cpu的佔用率較神賀低了之後就可以同時運行一些其它的程序了。硬解碼是由顯卡核心cpu來對高清視頻進行解碼工作,cpu佔用率很低。
『伍』 android播放器怎麼調用硬解
軟解,是單靠軟體的運算,軟體是由cpu運行,因此軟解,是單靠cpu的能力來計算。這樣會增加CPU負擔 硬解,是藉助於硬體來完成視頻的解碼,現在一般是由顯卡來完成,好一點的顯卡直接支持高清的硬解碼。解壓卡也能完成,手模銀不過現碼畝在一般不用了。畢宴要使用硬解,必須是播放器能使用顯卡的硬解功能,如果使用不了,那它還是軟解。
『陸』 三星6410開發板的操作系統都有哪些,支持情況如何
其他單位好像很多買開發板,只提供WINCE6.0跟linux2.6操作系統的,當然多要額外付點錢也是可以的。樓主的意思應該是買硬體,標准配置就送4個操作系統吧。 立宇泰電子的6410開發板是提供四大主流操作系統,WINCE6.0(R2/R3),linux2.6.28,Android,ubuntu,豐富的驅動和測試資源只能在光碟里看到,大概的介紹可以列一些給樓主看看。 一.WINCE6.0操作下軟體軟體特色: 1,CPU默認工作於667MHz主頻。 2,提供「多媒體綜合測試」,分為「解碼測試」、「編碼測試」和「顯示測試」三大項 ,充分展示了ARMSYS6410在多種格式的音視頻硬解碼、JPEG圖像解碼、DirectShow、多重解碼分屏顯示、視頻採集 和編碼、顯示處理和縮放、TV輸出等特色功能上良好的性能表現;為用戶評估提供了充分依據。 3,提供DirectShow Filters支持MPEG-4/H.264/ VC-1格式視頻硬解碼和音頻解碼。 4,標配800*600,800×480和640×480解析度液晶屏,默認支持揚聲器,尚佳的視覺和音效體驗! 5,提供BSP源碼包,包含所有板載外設驅動。 6,提供豐富應用實例源碼包,方便用戶應用程序開發。 7,為購買用戶免費更換啟動界面上logo圖片! 8,開機啟動界面上動態進度條顯示內核載入進度。 9,提供兩路SD/MMC卡,兩路都支持MMC4.0卡,都支持熱插拔。 10,支持CF3.0規格高速CF卡。 11,注冊表切換TV out輸出通道(RCA介面或S-VIDEO介面)。 12,提供4路串列口,並支持注冊表切換串口普通模式和紅外模式 13,支持HIVE注冊表,系統設置自動保存。 14,支持Norflash和SD卡啟動更新WINCE系統。 15,USB 2.0 OTG介面高速下載系統映像,提升開發效率。 16,支持睡眠、喚醒,提供電源管理相關驅動。 17,帶有IDE介面,支持WINCE6.0系統下掛載PATA硬碟,順利通過80G硬碟讀寫測試! 18,支持 LCD2VGA板,支持1024×768解析度顯示,視頻播放流暢。 二.Linux2.6.28操作下軟體軟體特色: ARMSYS 6410採用了Linux-2.6.28作為標准版的linux內核,其中集成了豐富的驅動資源,充分展現S3C6410的各項特性,包括硬體編解碼、2D/3D加速、顯示協處理、TVOUT輸出、視頻採集和編碼、4路串口、2路SD/MMC介面、1路10/100M乙太網介面、1路USB host介面等等,使ARMSYS 6410成為目前linux配置最為強勁和最完整的開發板之一。ARMSYS 6410支持Yaffs2文件系統,根文件系統提供了完整的常用命令和多種網路服務,結構清晰簡明,使用靈活方便。圖形界面採用Qtpia2.2.0版本,集成豐富的應用程序,可以支持觸摸屏輸入和滑鼠輸入。同時提供豐富的測試程序,可以對ARMSYS 6410的各項特色功能進行充分測試和展現。更提供了android和ubuntu版本,共 3個版本的linux系統,連同WindowsCE6.0共四大主流操作系統,供客戶感受最豐富的應用體驗! 1,提供linux2.6.28.6版本內核,是目前國內 6410開發板最高、配置最完整的linux版本; 2,提供豐富多媒體測試程序(multimediatest),全面展現 S3C6410特色功能,包括H.264/263,MPEG4,VC-1視頻文件解碼,攝像頭視頻採集和編碼,JPEG編解碼,3,TVOUT 輸出等等; 4,完備的驅動資源,除視頻圖像處理外,還包括2D/3D,看門狗,4路串口,2路SD/MMC,1路 10/100M網口,AC97音頻,多種解析度液晶屏的驅動等等; 5,採用NFS網路文件系統和YAFFS2格式文件系統 ; 6,提供nfs,ftp,telnet等網路服務,使linux下的應用程序開發更快捷; 7,提供tslib觸摸屏校 准,Qtopia2.2.0圖形界面,系統使用方便,更接近產品化。 三.ARMSYS6410_ubuntu 9.04相關資源 引導裝載 (u-boot1.1.6) Bootloader 初始化並裝載啟動linux內核 支持設置內核啟動參數 提供從SD卡啟動的版本 內核及設備驅動 採用2.6.29.1版本內核 系統主頻:533MHz 4路串口驅動(ttySAC0~3) 256M NandFlash驅動 2×5用戶按鍵驅動 1路SD/MMC卡座驅動 液晶(支持立宇泰電子TFT型液晶屏系列)驅動 支持4線觸摸屏 文件系統 支持EXT3根文件系統 編譯器 Arm-none-linux-gnueabi 圖形界面 Lxde-ubuntu 四.Android系統的詳細配置: Android系統為專為S3C6410定製的版本,不是google官方版本; 因此Android自帶的Mediaplayer、Music和Galley程序,可以支持視頻硬解碼、支持音頻解碼、和JPEG硬解碼;採用S3C6410內部2D/3D加速器支持Android圖形系統; U-boot支持yaffs2映像寫入; 所有映像通過USB下載,uboot寫入,快捷方便; 內核提供USB gadget驅動(支持android adb); 支持4路串口,2路SD/MMC卡口; 支持立宇泰電子TFT型液晶屏系列; 提供APK安裝器、文件管理器等實用Android應用軟體。 帶上顯示圖片的效果比這個好多了,語言描述還是講不大清楚,樓主可以直接聯系他們公司售前或者技術支持溝通啊 。
『柒』 手機 軟解碼和硬解碼 解惑
為了氏鬧節約存儲空間,我們在設備上播放的視頻文件都是經過壓縮的;在播放過程,需要進行一個反射的解壓縮過程,這就是 解碼
軟解碼的解碼過程完全由 CPU 完成的,所以 對 CPU 的性能要求非常高 。如果 CPU 性能不行, 解碼速度跟不上,那我們所看到的畫面就是不流暢、有卡頓的,以當前市場的手機設備,軟解 4K 的視頻,就非常明顯看到這種現象。同時,由於 CPU 是非常耗電的, CPU 的使用率越高, 耗電量越高, 所以 軟解碼是非常耗電的 。
而硬解碼是通過 GPU 等類似具備 圖形處理功能的晶元完成解碼過程,而 GPU 是基於大的吞吐量、並發計算設計,對數據相關性不大的重復運算,有時加速比能達到幾百倍甚至更高,所以, 使用 GPU 實現視頻解碼, 速度遠快於軟解碼 。 另外,GPU 耗電量是遠小於 GPU ,所以 硬解碼耗電量是非常小的 。
但由於,GPU 本身限於 GPU 開發平台,只能對 GPU 本身支持的編碼格式才能神配進行解碼,所以只有 符合硬解的編碼格式的視頻才能使用硬解碼 ,例如 H264 格式。
軟解碼
硬解碼
這里舉例的視頻是 【720P】 ,所以比較並不是很明顯。 不過,還是可以看出硬解碼比軟解碼對 CPU 的使用率小很多:
同時,幀率硬殲瞎罩解碼比軟解碼要高很多,也意味著硬解畫面會更流暢:
建議: 對於符合硬解碼的編碼格式,例如【H264】,採用【硬解碼】進行解碼;不符合硬解碼的編碼格式視頻,才採用軟解碼 。
這樣,不僅僅降低對 CPU 的負荷,讓畫面更流暢,還大大降低耗電量。
視頻解碼的步驟分為:
首先,無論是 硬體解碼 還是 軟體解碼 ,所進行的解碼過程和解碼結果都是完全一樣的。
他們的 區別 就是視頻解碼的工作是由 CPU 完成,還是由 GPU 來完成而已。
因此, 在理論上硬體解碼和軟體解碼的效果應該是完全一樣的 。
但在最後一個解碼步驟 PostProc ( 顯示後處理,解碼去塊濾波操作 Deblocking ) 。
Deblocking 的意思為解碼去塊,能夠消除 H.264 壓縮編碼可能產生的馬賽克現象,真實地還原視頻圖像。
Deblocking 對 CPU 提出了較高的要求,在 CPU 性能不夠時 , 開啟 GPU 硬體加速就會關閉解碼去塊濾波操作 (Deblocking) ,這時播放一些影片會看到較明顯的馬賽克現象,明顯影響畫面質量。
換句話說,確實存在, 在 CPU 性能不夠的時候,啟用 硬解碼 ,會關閉解碼去塊濾波操作 (Deblocking) ,明顯影響畫面質量 。
但基於當前手機設備,大多數 CPU 的性能足夠滿足於硬解碼的需求,所以, 出現這種情況的手機設備必然是低端機、遠次於目前市場的微量手機 。
另外,我們對 iOS 和 Android 各種機型實際測試中,也未曾發現開啟硬解後,畫質明顯下降的現象。
『捌』 9023 ram 是說512 顯示的是總共345 可用為什麼只有一百多 512-345還剩的跑那去了
這是Android系統的正常現象,內核會劃去一部岩做肢分內存來供特定的硬體使用。以下是來說說這少掉的RAM的粗世究竟使用到哪去了,他們分別是 72MB用於MFC(硬解碼),16MB用於FIMC(CAM/IF),16MB提供給Android系統(ashmem),8MB給GPU(3D),2MB提供給ADSP(聲音),5MB提供給jpeg(jpeg硬體解碼),6MB提供給FIMD(LCD控制器) ,3MB提供給FIMG2D(2D加速),胡鉛0.5MB提供給WIFI設備,還有10MB提供給texstream。除此之外,Kernel自身也會佔用大概10-20MB的空間,因此,留給應用程序的有大概350MB左右。
『玖』 手機硬解和軟解哪個好
您好!手機軟解和硬解有什麼區別
硬解就是硬體解碼,指利用GPU來部分代替CPU進行解碼,軟解就是軟體解碼,指利用軟體讓CPU來進行解碼。兩者的具體區別如下所示:
硬體解碼:是將原來全部交由CPU來處理的視頻數據的一部分交由GPU來做,而GPU的並行運算能力要遠遠高於CPU,這樣可以大大的降低對CPU的負載,CPU的佔用率較低了之後就可以同時運行一些其他的程序了,當然,對於較好的處理器來說,比如i5 2320,或者AMD 任何一款四核心處理器來說,硬解和軟體的區別只是個人偏好問題了吧。
軟解碼:即通過軟體讓CPU來對視頻進行解碼處理;而硬解碼:指不藉助於CPU,而通過專用的子卡設備來獨立完成視頻解碼任務。曾經的VCD/DVD解壓卡、視頻壓縮卡等都隸屬於硬解碼這個范疇。而現如今,要完成高清解碼已經不再需要額外的子卡,因為硬解碼的模塊已經被整合到顯卡GPU的內部,所以目前的主流顯卡(集顯)都能夠支持硬解碼技術。
硬解,和軟解,哪個對手機損害大
硬解,因為要把手機主板上硬碟打磨掉換一個新的
HTC的手機是硬解好還是軟解好?鏈槐
現在的硬解跟以前的硬解不是一個概念,並不是改動硬體。HTC S OFF硬解是通過一張帶有工程模式的SIM卡(俗稱白卡)解除HBOOT安全模式,而軟解就是通過電腦軟體解除安全鎖達到S OFF。兩者雖然過程不一樣,但最後解完S OFF的效果都是一樣的。
ship S-OFF:無論怎麼刷機,最後都是S OFF
eng S-OFF :刷過一次機後就會變回S ON
eng S-OFF是以前軟解不成熟的表現,現在軟解軟體都已成熟,解完跟硬解一樣都是ship S-OFF。
如還有不懂請准問
手機軟解和硬解哪個效果好
那要看你接受的了那個價錢了
解碼模式是硬解好還是軟解好?
手機還是電腦.
硬體依賴硬體,只能處理你的顯卡支持的格式.效果好,功耗小.
軟解依賴CPU.不如硬解效果好,並且功耗還大.但只要軟解支持,可以處理更多的視頻格式.
迅雷手機播放器軟解好還是硬解好
我用的也是Mobo,其實感覺沒多大區別,只是軟解用的是cpu處理的,會稍微清楚一點,通常我都用默認的硬解,主要看你手機的配置了盡量不佔用cpu,希望對你有幫助
Android手機的高清視頻解碼是硬解好還是軟解好
硬體省電,軟解流暢,硬解的時候是專門的核在工作,就像轉化成mp4模式一樣,軟解就是軟體渲染,當你沒有硬體來解碼播放的時候,軟體自己調用處理器通過程序來解碼,所以,你覺得玩mp省電還是手機省電呢?
手機如何從硬解換成軟解
下載第三方軟體就可以了,但軟解碼使用cup進行運算解碼導致手機功耗上升而且解碼效果不是很好一般會導致視頻不流暢卡頓,如果手機支持硬解碼還是用硬解碼
看高清軟解和硬解的區別?
硬解碼是指視頻播放的全過程由顯卡GPU完成 由於顯卡與CPU不同的工作方式它的解碼能力大大高於CPUATI顯卡能真正實現硬解碼 NVIDIA的部分步驟仍然棚隱友要調用CPU 但是CPU的使用率仍然很低 所以也可視為硬解碼 硬體方面 你需要ATI HD2000以上的顯卡 或者NVIDIA Gefoce 8200 以上的顯卡或者英特爾X4500 HD顯示核心 播放器 目前QQ影音和暴風都提供智能硬解攜旁碼POTPLAYER 和KMPLAYER 以及 MPC 需要手動調節 他們在XP下的硬解碼很易實現但在WIN7下 比較麻煩具體步驟 你可去相關BBS或博客查看
硬解和軟解的區別到底在哪
硬解就是硬體解碼,指利用GPU來部分代替CPU進行解碼,軟解就是解碼,指利用讓CPU來進行解碼。兩者的具體區別如下所示:
硬體解碼:是將原來全部交由CPU來處理的數據的一部分交由GPU來做,而GPU的並行運算能力要遠遠高於CPU,這樣可以大大的降低對CPU的負載,CPU的佔用率較低了之後就可以同時運行一些其他的程序了,當然,對於較好的處理器來說,比如i5 2320,或者AMD 任何一款四核心處理器來說,硬解和的區別只是個人偏好問題了吧。
軟解碼:即通過讓CPU來對進行解碼處理;而硬解碼:指不藉助於CPU,而通過專用的子卡設備來獨立完成解碼任務。曾經的VCD/DVD解壓卡、壓縮卡等都隸屬於硬解碼這個范疇。而現如今,要完成高清解碼已經不再需要額外的子卡,因為硬解碼的模塊已經被整合到顯卡GPU的內部,所以目前的主流顯卡(集顯)都能夠支持硬解碼技術。
『拾』 我用的android 中的SurfaceView來進行jpeg圖片的播放,請問是屬於硬體解碼嗎
android的canvas是用cpu軟解,有的團數亮公司自己開發晶元,這樣可以調用底塌寬層,使用的是GPU硬畢好解