1、問題背景
基于之前安卓平臺(tái)的一個(gè)項(xiàng)目工禾,客戶有反饋過一個(gè) Camera app 預(yù)覽的效果运提,和錄像效果不一致的問題蝗柔。
這里的預(yù)覽是指打開 Camera app 后直接出圖的效果,錄像的效果則是指打開 Camera app 開啟錄像功能民泵,錄制一段視頻癣丧,再用設(shè)備自帶的播放器去看錄制的視頻的效果。
有發(fā)現(xiàn)錄像的效果要比預(yù)覽的效果銳度要高栈妆。
2胁编、問題分析
關(guān)于這個(gè)問題,上周也有寫過類似的一篇文章分析不同 app 之間畫質(zhì)差異的原因鳞尔。有些排查過程是通用的嬉橙,如下是關(guān)于這個(gè)問題的排查過程。
a寥假、預(yù)覽和錄像是否走的是同一路流市框?分別 dump下預(yù)覽和錄像的 yuv 來對(duì)比看看效果。
預(yù)覽出的是1080P昧旨,錄像也是1080P拾给,走的是同一路流。分別 dump了錄像和預(yù)覽的 yuv兔沃,對(duì)比看效果是一致的蒋得,所以就不是ISP處理之前的問題,需繼續(xù)向后排查乒疏。
b额衙、是否是顯示的問題。
我這里的驗(yàn)證方式是用我們自己的開發(fā)板+Camera 模組來分析問題的怕吴,通過HDMI接到1080P 的顯示器上出圖窍侧,通過截屏比較預(yù)覽的效果和錄制的效果;
1>转绷、是有發(fā)現(xiàn)在同樣的顯示器上播放錄制的視頻伟件,清晰度要比預(yù)覽畫面要好一些,如下圖所示议经。
2>斧账、通過上一步,分析了預(yù)覽和錄像的yuv效果是一致的煞肾,所以接著對(duì)比看了預(yù)覽的yuv和預(yù)覽的截屏咧织,發(fā)現(xiàn)預(yù)覽的yuv是要比實(shí)際的預(yù)覽結(jié)果要好。
所以就懷疑是從yuv 到顯示這里的什么處理籍救,導(dǎo)致的清晰度損失了习绢。后面注意到預(yù)覽截屏下來是4K的分辨率,因?yàn)榇薃ndroid版本的SDK是默認(rèn)支持4K UI的蝙昙。所以關(guān)于預(yù)覽的話闪萄,是把1080P的數(shù)據(jù)顯示在4K UI上梧却,也就是1個(gè)實(shí)際的像素?cái)?shù)據(jù)最后是用4個(gè)像素來顯示,而錄像是直接1080P顯示的桃煎,所以視覺上看起來預(yù)覽的清晰度度是要差一點(diǎn)的篮幢,是正常的大刊。關(guān)閉4K UI后比較为迈,預(yù)覽和錄像的效果是一致了。
但客戶那邊的設(shè)備用的是mipi 屏缺菌,UI的分辨率是1920x1200葫辐,所以并不是4K UI的預(yù)覽導(dǎo)致的差異。
c伴郁、是否是 pq 導(dǎo)致的效果差異耿战。
這里的 pq 是指? picture?quality,是指專門調(diào)屏幕畫質(zhì)的焊傅,也有色溫剂陡、銳度、亮度的處理模塊和參數(shù)的調(diào)整狐胎,和我們調(diào) camera 畫質(zhì)的工作類似鸭栖。
后面和客戶再次確認(rèn)了下問題,是在設(shè)備上播放錄制的視頻銳化比預(yù)覽要高很多握巢,視頻導(dǎo)出來在PC上去播放又是正常是晕鹊。我這邊就用客戶的版本、客戶的機(jī)器暴浦、細(xì)節(jié)顏色多的場(chǎng)景下溅话,復(fù)現(xiàn)了下反饋問題。確實(shí)播放錄制的視頻銳化強(qiáng)度比預(yù)覽要明顯很多歌焦,顏色也鮮艷了很多飞几,但用的同樣的SDK版本,在我們開發(fā)板上就沒有這個(gè)問題独撇。
這里就找到pq組的同事幫忙分析了下屑墨,在客戶的設(shè)備上播放視頻時(shí),執(zhí)行下指令關(guān)閉pq銳化的處理券勺,效果就正常了很多绪钥。接著是dump了我們開發(fā)板設(shè)備,和客戶端設(shè)備的pq參數(shù)关炼,參數(shù)對(duì)比是一樣的程腹。后面排查了我們開發(fā)板上pq的效果不生效的原因,是因?yàn)閴焊鶝]有配置調(diào)用pq參數(shù)的驅(qū)動(dòng)儒拂,而客戶板上是支持的寸潦,所以表現(xiàn)有差異色鸳。
后續(xù)是將pq參數(shù)的效果文件進(jìn)行了修改,bypass了銳化见转、亮度命雀、顏色等的模塊,所以效果就保持一致了斩箫。
而預(yù)覽不受pq的影響吏砂,是因?yàn)轭A(yù)覽走的osd層,osd層不走pq處理的這些模塊乘客。
3狐血、問題總結(jié)
a、要理解清楚客戶報(bào)的問題易核,用同樣的設(shè)備匈织、固件版本、拍攝環(huán)境能去復(fù)現(xiàn)到牡直,才好去進(jìn)一步分析缀匕。
對(duì)于這個(gè)問題,我花了太多時(shí)間碰逸,去驗(yàn)證我們自己開發(fā)板上 4K UI導(dǎo)致的預(yù)覽清晰度差的問題乡小,而客戶明明反饋的是預(yù)覽正常,播放錄像時(shí)銳化高花竞。
我想當(dāng)然的以為播放錄像銳化高劲件,就是錄像比預(yù)覽清晰度高。和我們開發(fā)板上發(fā)現(xiàn)預(yù)覽清晰度差是一個(gè)問題约急。
b零远、提出合理的假設(shè),一步步去做驗(yàn)證排查厌蔽,直到找到問題原因牵辣。