日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

调试经验--图像

發布時間:2025/3/18 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 调试经验--图像 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

調試經驗--圖像


??? 隨著芯片技術的發展,嵌入式設備也擁有較強的圖像處理能力了。而當中的佼佼者,davinci平臺提供了非常強的圖像處理功能。


??? 在davinci平臺的使用過程中。我們遇到幾個圖像相關的問題:
1,圖像質量差;
2。上位機顯示圖像色度不對;
3,顏色分量;
4。yuv傳輸數據時的裁切。


一、圖像質量差

背景:
??? 在描寫敘述問題前,說明一下我們嵌入式設備的開發工作流程,應該有助于說明問題。
主板是硬件開發者參考dm6446開發板的原理圖設計的,軟件是以dvsdk1.3為開發工具進行的,視頻輸入是標清的模擬視頻,在視頻輸出端接顯示器能夠查看圖像。

arm接收到輸入圖像后,傳送給dsp,dsp分析圖像之后,將結果返回給arm,arm將部分結果,以osd的方式疊加在輸出圖像上。
??? 關于圖像的buffer,簡單說明一下:
dm6446的圖像輸入buffer。與圖像輸出buffer。是在兩個不同的內存區域,我們疊加的osd信息,是在輸出buffer中實現的。
??? 另外有PC上的配置軟件,能夠進行設備的配置,當中有一個抓圖功能,是使用PC上的配置軟件下發捕獲圖像命令,嵌入式程序運行捕獲,即從輸入的圖像buffer中取出一幅yuv來,然后上傳給PC。

問題現象:
??? 在dm6446平臺上,接入標清的模擬視頻輸入,在視頻輸出端接顯示器查看圖像,發現圖像質量不好,現象例如以下:
?有模糊的彩色短條移動,在短條所在行附件。運動物體通過時抖動非常厲害(彩色短條的形狀比較類似于我們疊加的字符信息OSD);
?不但OSD會造成畫面影像移動,其它醒目物體也有類似模糊影像移動。
?進行單張抓圖,圖像上也有彩條。
?圖像底部是黑條。沒有圖像。
?
進一步的測試:
??? ?採用對照法,正常的程序執行。是既有視頻輸入也有視頻輸出。而且還有較多其他功能。我們對系統功能進行簡化,進行相同硬件環境下的對照執行測試。
?視頻環路程序:同一時候有輸入輸出,將輸入的圖像直接送至輸出。輸出畫面有OSD疊加。此時,捕獲的圖像中還是有OSD的影像。圖像底部無圖像。
?視頻解碼顯示程序:這是dvsdk中自帶的例程,進行視頻解碼。然后視頻輸出。

此時,圖像清晰、完整。

分析:?
??? 圖像有影子移動,是模擬信號的干擾。當僅僅進行視頻輸出時圖像清晰。說明視頻輸出部分的線路沒有問題,則視頻輸入部分線路有問題。


??? 單張抓圖的圖像上也有彩條,說明了視頻輸出對視頻輸入有影響:OSD僅僅用于輸出。而抓圖抓的僅僅是輸入圖像。可見輸出干擾了輸入。
??? 圖像底部無圖像,是嵌入式軟件對圖像的設置有問題。

原因:?
??? 問題分兩部分,一個是圖像上有影子移動。一個是圖像底部無圖像。

圖像上有影子移動:
??? 板卡的視頻輸出線反向走過整塊板卡,當中有一段與輸入線非常接近。干擾了輸入信號。
對于這個問題,后來還知道,另一條分離輸入輸出問題的測試方法:VPBE能夠設置為彩條輸出,能夠區分輸出圖像顯示問題的來源是圖像還是驅動?。

圖像底部無圖像:
??? 是設置圖像參數時出了問題,因為osd層是使用半字節表示一個像素,又須要osd層的寬度是32字節對齊的。帶來一個問題:720/2=360不是32的倍數,所以,須要使用一個比360大的又最接近的32的倍數。本系統中使用的是384:
OSD屬性層:384×576
在設置透明度時。原來設置的是720×576/2 的區域,改為768×576/2 ,恢復varInfo.yres=576,圖像及OSD都能全屏顯示。


下表簡單描寫敘述了視頻輸出的buffer:

設備名????????? 數據內容?????? 緩沖區大小? ?? 每像素占字節數
/dev/fb/0 --> OSD內容???? 1440×576??????? 2 (RGB565)
/dev/fb/2 --> OSD透明度? 384×576? ??????? 0.5?(行寬384,有效使用360)
/dev/fb/3 --> 視頻圖像????? 1440×576??????? 2 (UYVY)


二、上位機顯示圖像色度不對?????
現象:
??? 在嵌入式設備輸出端連接的顯示屏上。圖像顯示正常。在用PC上的配置軟件抓圖。顯示的圖像不正常。
分析:
??? 圖像顯示不正常的地方,往往是畫面中最亮的地方。可能是某些值在轉換中越界。
原因:
??? 分析代碼,是在dm6446系統中,使用的是yuv,而在PC上顯示,是使用的RGB,在進行格式轉換時,某些值越界了。比如。在RGB色彩系統中,3個255就是白色,若當中一個越界,造成兩個255與一個0。就成了黃色。


三、顏色分量

??? 高清圖像輸出,採用3個顏色分量Y、Cb、Cr,輸出,使用色差分量線外接顯示器。

分量???????????????? Y、? Cb、 Cr
用顏色線表示? 綠、 藍、 紅

與我們通常說得RGB有較大的差異。RGB的全0為黑色,全255為白色。

而YCbCr的幾種典型顏色,我們有必要知道一下:

0。??? 0,?? 0???????? 綠色
255。255,255?? 粉紅色
255,0,255????? 黃色
255,255,0????? 亮籃色


四、yuv傳輸數據時的裁切

??? bt656、bt1120都禁止使用0與255。

當遇到0時。應當轉換為1;當遇到255時,應該轉換為254。
??? dm6467的vport in與out口都沒有進行數據裁減。真正實現數據裁剪的,是內核驅動。

??? 比如,在dvsdk1.4中。使用vport傳輸yuv數據。就沒有裁切;而在dvsdk3.10中,就實現了0與255的裁切。

??? 當遇到數據裁切時。有時會導致新的問題。比如,我想覆蓋yuv的第一行來傳輸某些信息,若被裁切了,數據就不是原來的意義了。


??? 此時。我們能夠使用數據轉換法,即讓0與255不出現就是了。比較簡單的方法,我使用兩字節來表示一個字節:0-253。我用高字節置1。低字節使用1-254來表示;而254-255,我使用高字節置2,低字節為1-2就可以。


總結

以上是生活随笔為你收集整理的调试经验--图像的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。