使用場景:
海思3516想將VI進來的的1920*1080(橫屏)圖像,通過VPSS縮放和旋轉功能變成800*1280(豎屏)。
先說一下總結:
采用的攝像頭是1920*1080。目的是在800*1280的LCD上顯示。
因為攝像頭是橫屏,而LCD是豎屏。如果直接通過1920*1080先縮放成1280*800。再通過VPSS進行旋轉成800*1280到LCD進行顯示。
在實驗中發現LCD顯示還是橫屏。
但是把攝像頭物理旋轉90°。就可以實現LCD顯示豎屏。
有個問題:
有可能會想,攝像頭物理旋轉90°。那我VPSS不旋轉不就行了。直接輸出1280*800。不就變成豎屏了嗎?
實現發現:豎屏是豎屏了。但是圖像會拉升。因為1280*800的圖像在800*1280的LCD上顯示。必然會拉升。
實現方式:
1.通過設置VPSS的通道屬性使VPSS直接輸出縮小后的圖片。
問題:
在VO顯示直接藍屏。
通過cat /dev/logmpp提示:提示input size(1920,1080) and output size(800,1280) out of zoom_ratio[1,16]
解決:
首先一個問題。將1920*1080縮放成800*1280。這是縮小呢還是放大呢。
所以應該是1920*1080先縮小成1280*800。也就是都是橫屏。再通過旋轉,變成800*1280。
因此把上面代碼中的800和1280對調一下。再旋轉一下就行了。
通過cat /proc/umap/vpss可以看到
vpss進來的是1920*1080。將通道屬性設置成1280*800就可以實現縮放。然后通過旋轉。最后的VPSS CHN OUTPUT RESOLUTION就可以看到VPSS實際的圖像輸出。
重點注意:
通道縮放問題。3516的通道0只支持放大,其他通道只支持縮小。因此我們VPSS中要設置成通道1。