跟宋所長(zhǎng)商量了一下建設(shè)新型號(hào)的east裝置所需要的超導(dǎo)材料用量之后,王一男發(fā)現(xiàn)他們的裝置確實(shí)夠大型,估計(jì)自己至少要給他們單弄一臺(tái)分子編織機(jī)才行。
當(dāng)然,這么多的超導(dǎo)材料也不可能白送,要不就算王一男同意了,其他人估計(jì)也會(huì)瘋掉的,“不患貧而患不均”,說(shuō)的可不就是這個(gè)道理么。
話又說(shuō)回來(lái),宋所長(zhǎng)也不是窮人,east怎么說(shuō)也是華國(guó)重點(diǎn)投入的項(xiàng)目之一,于是在雙方友好協(xié)商的氣氛下,一個(gè)億軟妹幣又插上翅膀飛進(jìn)了容與公司的賬戶。
錢(qián)中華在邊上眼睛都看直了,看過(guò)做生意的,還真沒(méi)看過(guò)這么做生意的,“我從來(lái)沒(méi)想過(guò)掙錢(qián)這么容易,而且明明是你黑了別人,別人回頭還跟你千恩萬(wàn)謝的”,等宋所長(zhǎng)心滿意足的走了,錢(qián)中華忍不住開(kāi)始感慨,
“你要是有全藍(lán)星獨(dú)一份的產(chǎn)品,那還不是想賣多少錢(qián)賣多少錢(qián)”,王一男云淡風(fēng)起的回了他一句。
“那倒是”,錢(qián)中華想明白了,再次為自己,準(zhǔn)確的來(lái)說(shuō)是為了自己老爺子的眼光點(diǎn)了個(gè)贊。
這次說(shuō)明會(huì)對(duì)于王一男來(lái)說(shuō),只是一個(gè)小插曲,當(dāng)事人都沒(méi)有意識(shí)到,這個(gè)“小插曲”對(duì)于華國(guó)高科技領(lǐng)域的深遠(yuǎn)影響,一直到隨后的五到十年之后才慢慢的體現(xiàn)出來(lái)。
后來(lái)人們回顧這次會(huì)議的時(shí)候做出這樣的評(píng)價(jià),這次說(shuō)明會(huì),“至少將整個(gè)華國(guó)的高科技水平提升了五年以上”。
當(dāng)然,王一男自己完全沒(méi)意識(shí)到這次會(huì)議的歷史地位,他在開(kāi)完說(shuō)明會(huì),順便把鍋甩給科工委之后,又繼續(xù)開(kāi)始了自己的半閉關(guān)生活,不過(guò),這次可不是他一個(gè)人閉關(guān)了,周慧也是夠狠的,知道自己某些方面有天然的劣勢(shì),要是因此造成跟王一男的關(guān)系有點(diǎn)什么波折那可真的要哭了。
用她那個(gè)小經(jīng)紀(jì)人的話來(lái)說(shuō),“就算拿個(gè)奧斯卡獎(jiǎng)又能咋的,這樣可能名垂青史的金龜婿,整個(gè)藍(lán)星可能就這么一只啊”。
這輕重,周慧還是拎得清,正好年底也沒(méi)什么太好的通告,她干脆搬到容與公司,專門(mén)照顧王一男的起居,還給他做飯吃,把王一男感動(dòng)的不要不要的,這下連錢(qián)中華都只好說(shuō)一個(gè)“服”字,要知道,他以前可是一直不看好周慧,老指望他們倆出點(diǎn)狀況的。
帝都的天氣一天冷似一天,黃昏的時(shí)候,王一男跟周慧吃完飯出來(lái)散步,在河邊的林蔭道上,灑落的黃葉鋪滿了整條小路,一陣帶著點(diǎn)涼意,深秋的晚風(fēng)吹過(guò),落葉片片飄起,在空中調(diào)皮的旋轉(zhuǎn)著,飛舞著。
“又是一年了啊”,王一男不禁感慨起來(lái),這一年發(fā)生了太多的事情,想起來(lái)一年前跟李文靜在這里漫步的情形,仿佛已是隔世。
“在想什么呢”,周慧在邊上問(wèn)到,
“啊,沒(méi)什么,看見(jiàn)這景色太美了,忍不住感慨一下”,王一男連忙說(shuō),心里暗暗吐槽,“都說(shuō)女人的鼻子是屬狗的,真是一點(diǎn)都不假,我這不過(guò)是觸景而發(fā),想起點(diǎn)什么,這都能聞得到,也是醉了”。
“看你今天心情不錯(cuò),吃完飯居然主動(dòng)提議出來(lái)轉(zhuǎn)一轉(zhuǎn),是不是工作上有了很大的進(jìn)展?”,周慧甩了甩長(zhǎng)發(fā),輕描淡寫(xiě)的問(wèn),
王一男對(duì)著她豎起了大拇指,“你不去學(xué)心理學(xué)真是太可惜了”,
“不過(guò)呢,也有可能是我的行為模式太簡(jiǎn)單,太容易捉摸”,你說(shuō),王一男這嘴啊,不加后面這句話你會(huì)死啊,有這么夸女孩子的嗎。
周慧已經(jīng)習(xí)慣了王一男的這種惡劣習(xí)慣,“真的有進(jìn)展啊?”,她完全無(wú)視的接著問(wèn),
“當(dāng)然了,今天總算把所有的分層編譯類型和分塊合并的邏輯全部搞定了”,王一男說(shuō),
“說(shuō)人話!”,周慧怒了,我估計(jì)她是替讀者怒的,“別整天用這些高大上的名詞來(lái)鄙視我們的智商,你就告訴我你整出的東西能干啥就行了”。
王一男很是冤枉,“知其然不知其所以然怎么行,我還指望你們看完我的之后,人人都成為合格的民科呢”。
看著周慧的手已經(jīng)揚(yáng)了起來(lái),王一男立馬慫了,“簡(jiǎn)單來(lái)說(shuō),就是已經(jīng)可以編譯出llvm的ir了”,
“啪”,這回王一男沒(méi)躲開(kāi),巴掌摔倒了他臉上,當(dāng)然很輕很輕,打是親罵是愛(ài)嘛。
“再簡(jiǎn)單點(diǎn)!”,周慧說(shuō),
“只要經(jīng)過(guò)最后一步,就可以在電腦或者手機(jī)上跑起來(lái)了”,王一男說(shuō)。
“那你還等什么”,周慧說(shuō),
“我這不是出來(lái)喘口氣嘛”,王一男說(shuō),
“趕緊,趕緊干活去”,為了情節(jié)的快速推進(jìn)(已經(jīng)有不少讀者嫌棄咱們節(jié)奏太慢了),周慧立刻變身周扒皮,反正他們周家人干這活擅長(zhǎng)。
王一男只好灰溜溜的跑回去干活,好在llvm 從ir 到x86 或者arm體系的代碼生成都有現(xiàn)成的工具可以用,王一男沒(méi)過(guò)多久就編譯完成了x86上的可執(zhí)行程序。
為了簡(jiǎn)化問(wèn)題,王一男沒(méi)有直接對(duì)攝像頭的數(shù)據(jù)進(jìn)行實(shí)時(shí)處理,而是對(duì)硬盤(pán)上的圖像序列進(jìn)行壓縮,解壓縮的時(shí)候直接輸出到圖像序列,這樣可以減少非常多的開(kāi)發(fā)工作量。
pc上程序執(zhí)行的結(jié)果是令人滿意的,1080p的圖像序列,也就是分辨率為1920 x 1080 的圖像,即使增加了從硬盤(pán)讀取的時(shí)間,也能做到實(shí)時(shí)的壓縮和解壓縮。
王一男從那段十五分鐘的視頻里面,截取了60秒的片段進(jìn)行測(cè)試,首先使用ffmpeg的命令行工具,輸出格式為bmp圖像的序列,然后用編譯過(guò)的神經(jīng)網(wǎng)絡(luò)進(jìn)行壓縮,
20秒之后,壓縮結(jié)果就出來(lái)了,當(dāng)然比不上哥德?tīng)栂到y(tǒng)的運(yùn)算能力,20秒可以壓縮整個(gè)十五分鐘的視頻,不過(guò)在普通的pc機(jī)上能達(dá)到這個(gè)性能,已經(jīng)非常非常棒了。
解壓縮的結(jié)果也不出所料,60秒的片段,大概只用了5秒鐘就解壓縮完成,畢竟,解壓縮需要的運(yùn)算量比壓縮要小很多。
然而,手機(jī)程序的測(cè)試結(jié)果就沒(méi)這么樂(lè)觀了,王一男的手機(jī)采用了最新的arm芯片,算是性能最強(qiáng)的一檔次吧,但是在王一男的手機(jī)上,仍然做不到實(shí)時(shí)的視頻壓縮。
60秒的視頻圖像序列,花了超過(guò)200秒才壓縮完畢,這個(gè)結(jié)果就有點(diǎn)差強(qiáng)人意了,當(dāng)然實(shí)時(shí)解壓縮是完全沒(méi)有問(wèn)題的,40秒就完成了。
看著測(cè)試的數(shù)據(jù),王一男陷入了沉思,應(yīng)該說(shuō),對(duì)于這樣的結(jié)果,王一男早有思想準(zhǔn)備,本來(lái)他的最低預(yù)期,是在pc上面可以實(shí)現(xiàn)實(shí)時(shí)的視頻壓縮和解壓縮,對(duì)于手機(jī)上的arm芯片沒(méi)有抱太大的期望,因?yàn)楫吘筧rm和x86之間的性能差距還是很明顯的。
現(xiàn)在手機(jī)上能夠?qū)崿F(xiàn)實(shí)時(shí)的視頻解壓縮,已經(jīng)超過(guò)王一男的預(yù)期了,這就意味著,使用手機(jī)進(jìn)行高清的直播雖然暫時(shí)不可能,但是使用手機(jī)觀看高清的直播是分分鐘就能變成現(xiàn)實(shí)的事情。
“不對(duì)啊”,王一男搖搖頭,這個(gè)數(shù)據(jù)雖然在意料之中,但是離王一男的期待還是有一些距離,而且,總覺(jué)得里面有點(diǎn)什么東西不對(duì),
“怎么了?”,周慧走了過(guò)來(lái),她手里還拿著手機(jī)在看抖一抖短視頻呢,一邊看一邊樂(lè)的不行。
王一男探頭看了一眼周慧的手機(jī),只見(jiàn)一個(gè)瘋婆子在屏幕上歇斯底里的說(shuō),“女人花點(diǎn)錢(qián)腫么了,腫么了”,雖然內(nèi)容很lo,不過(guò)畫(huà)質(zhì)到還是挺不錯(cuò)的。
這些直播軟件采用的應(yīng)該都是h264的視頻格式,對(duì)于這種格式,普通手機(jī)都有硬件編解碼和軟件編解碼兩種模式,王一男立刻明白自己的錯(cuò)誤在什么地方了,現(xiàn)代手機(jī)應(yīng)該都帶有g(shù)pu芯片,也就是圖形處理芯片,對(duì)于壓縮/解壓縮這種高度并發(fā)的運(yùn)算來(lái)說(shuō),圖形處理芯片相對(duì)cpu來(lái)說(shuō),有巨大的優(yōu)勢(shì)。
所謂的硬件編解碼,就是利用gpu芯片的高度并行向量處理指令,來(lái)實(shí)現(xiàn)h264格式的視頻編解碼,這樣性能比采用cpu的軟件編解碼好非常多。
也就是說(shuō),王一男的llvm ir指令輸出的目的代碼不應(yīng)該僅僅是arm指令集,而應(yīng)該是arm加上gpu指令集,按照h264硬件編碼跟軟件編碼的性能差距幅度,應(yīng)該還能提升五倍的性能吧。
“哎,果然沒(méi)有捷徑可走啊”,王一男嘆了口氣,對(duì)周慧說(shuō),
“看來(lái)咱們要在這里繼續(xù)呆一段時(shí)間了”。
“嗯,沒(méi)關(guān)系,反正我也沒(méi)什么事情”,周慧說(shuō),
當(dāng)然,王一男畢竟是半閉關(guān)而不是全閉關(guān)狀態(tài),每周他還是要去學(xué)校上兩次課的,而且大衛(wèi)團(tuán)隊(duì)的第二個(gè)測(cè)試版本,還等著他每周的例行雞湯呢。
在陳子豪的帶領(lǐng)下,大衛(wèi)團(tuán)隊(duì)使用了改進(jìn)后的rust語(yǔ)言作為后臺(tái)服務(wù)器的開(kāi)發(fā)語(yǔ)言,確實(shí),雖然這種語(yǔ)言對(duì)于開(kāi)發(fā)人員提出了非常高的要求,這么說(shuō)吧,沒(méi)有兩年以上開(kāi)發(fā)經(jīng)驗(yàn)的,你根本理解不了所有權(quán)的轉(zhuǎn)移是怎么回事。
不過(guò)處錯(cuò)誤的概率真的是低了太多,基本上所有的內(nèi)存bug都在編譯的時(shí)候被編譯器發(fā)現(xiàn)并消除了。
陳子豪使用哥德?tīng)栂到y(tǒng),為rust代碼增加了一個(gè)編譯器前處理環(huán)節(jié)之后,他們使用的rust語(yǔ)言也改進(jìn)了許多,程序猿完全不用擔(dān)心復(fù)雜的所有權(quán)管理和生存周期的問(wèn)題了,哥德?tīng)栂到y(tǒng)可以自動(dòng)的判斷所有的疑難情況,并做出正確的標(biāo)注提供給編譯器。
這也極大的提升了開(kāi)發(fā)的效率,降低了開(kāi)發(fā)的難度,很快,im系統(tǒng)的第二個(gè)原型也開(kāi)發(fā)完成了,用陳子豪的話來(lái)說(shuō),“基本功能已經(jīng)達(dá)到威信三年前的水平了!”。
你別瞧不起這玩意,在王一男看來(lái),這已經(jīng)是非常值得驕傲的成績(jī)了。
時(shí)光荏苒,在新年到來(lái)前的一周,圣誕節(jié)前夜,王一男總算完成了自己的第二階段目標(biāo),生成了利用手機(jī)顯卡處理能力的超級(jí)視頻編解碼器版本。
他順便還把直接對(duì)攝像頭輸入的連續(xù)圖像序列進(jìn)行壓縮的代碼,以及輸出連續(xù)圖像到屏幕的代碼都集成進(jìn)來(lái)了。
嗯,這話太拗口,其實(shí)就是,他用程序可以直接對(duì)攝像頭的輸出進(jìn)行視頻壓縮了,“就是不知道能不能達(dá)到實(shí)時(shí)的效果”,王一男有些忐忑。
他打開(kāi)程序,把鏡頭對(duì)準(zhǔn)了周慧,
“來(lái)妹子,給哥笑一個(gè)”