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é)顏色多的場景下,復(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)證排查,直到找到問題原因。