国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于瑞芯微平臺cif接口dvp相機(jī)的視頻接入(ov2640、rv1126為例)

這篇具有很好參考價值的文章主要介紹了基于瑞芯微平臺cif接口dvp相機(jī)的視頻接入(ov2640、rv1126為例)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

名詞定義

CIF,指RK芯片中的VIP模塊,用以接收Sensor數(shù)據(jù)并保存到Memory中,僅轉(zhuǎn)存數(shù)據(jù),無ISP功能
DVP,一種并行數(shù)據(jù)傳輸接口,即Digital Video Port
HSYNC,指DVP接口的行同步信號
PCLK,指Sensor輸出Pixel Clock
VSYNC,指DVP接口的場同步信號
V4L2,即Video4Linux2,Linux kernel的視頻處理模塊

視頻格式

視頻格式一般分成BT1120(BT656)和BT601兩種。
BT1120視頻數(shù)據(jù)只支持內(nèi)同步。信號內(nèi)同步的意思是圖像數(shù)據(jù)和同步信號均包含在圖像數(shù)據(jù)中,通過關(guān)鍵字恢復(fù)同步信號??梢詤⒖嘉业牧硪黄┛蚐DI視頻數(shù)據(jù)流格式簡介
BT601協(xié)議采用外同步,外同步是指圖像數(shù)據(jù)和同步數(shù)據(jù)(HS、VS、DE)單獨傳送。

因為內(nèi)同步是將圖像與同步信號一起傳送,因此會有同步分離機(jī)制,所以亮度及色彩不可能全編碼,以8BIT為例,可以傳送的范圍為0-255,但內(nèi)同步一起傳送,實際編碼不可能有256范圍,在ITU-656中大多采用16-235,而ITU-601因為采用外同步,可以傳送0-255 范圍的數(shù)據(jù)。因此,內(nèi)同步的色采及亮度在細(xì)節(jié)上沒有內(nèi)同步好。但是,在串行編碼及低帶寬傳送中,內(nèi)同步可以減少數(shù)據(jù)流,因此,通過內(nèi)同步傳送圖像雖然色彩有一定的損失,但可以換來更低的帶寬。

視頻格式一般在視頻的驅(qū)動程序中進(jìn)行設(shè)置,只有以下兩種格式:

config->type = V4L2_MBUS_BT656;//BT1120 BT656
config->type = V4L2_MBUS_PARALLEL;//BT601

一般BT601使用較多,外同步信號,需要配合行場同步信號。

sensor與isp

sensor與isp之間的關(guān)系圖一般如下所示:
rv1126核心板2路ahd攝像頭實現(xiàn)方案,音視頻,RV1126,CIF,DVP
首先ISP也就是ARM芯片端,需要通過I2C總線對sensor進(jìn)行配置,主要通過SCL(時鐘線)和SDA(數(shù)據(jù)線)對sensor的寄存器進(jìn)行配置,可以決定sensor的分辨率、輸出視頻格式(rgb、yuv)、白平衡等進(jìn)行設(shè)置。
部分?jǐn)z像頭可能不含晶振,比如OV7670,所以就需要ISP提供相機(jī)時鐘,也就是XCLK進(jìn)行驅(qū)動,一般在24MHz左右。部分帶有晶振的相機(jī),比如OV2640,由于集成了晶振,所以無需進(jìn)行外部時鐘驅(qū)動。
VS、HS和PCLK是sensor輸出的行場同步信號和像素時鐘。
DATA是sensor輸出的像素值,一般8位較多。
然后對以上的各個部分進(jìn)行介紹。

I2C

由于ARM芯片具有較多的I2C引腳,比如RV1126好像就有5個I2C引腳。每一個相機(jī)的I2C都要連接到對應(yīng)的引腳上,以正點原子的RV1126開發(fā)板為例,I2C就掛載到了I2C1下:
rv1126核心板2路ahd攝像頭實現(xiàn)方案,音視頻,RV1126,CIF,DVP
在設(shè)備樹dts中,就要把OV2640的攝像頭節(jié)點放在I2C1下,比如:

&i2c1 {
	status = "okay";
	clock-frequency = <100000>;

    ov2640: camera@3c {
		compatible = "ovti,ov2640";
		pinctrl-names = "default";
		reg = <0x3c>;
		......
		}
	}

攝像頭所支持的I2C時鐘速度最快可達(dá)到400Kbps,同時每一款攝像頭都有專屬的地址,比如ov2640的地址是0x3c,注意地址是硬件設(shè)計死的無法更改。

I2C設(shè)備可以使用i2cdetect工具進(jìn)行調(diào)試,比如查看i2c1下掛載了哪些設(shè)備,可以通過以下命令進(jìn)行查看:

i2cdetect -y 1

若我在0x21處掛載了設(shè)備,將得到:
rv1126核心板2路ahd攝像頭實現(xiàn)方案,音視頻,RV1126,CIF,DVP
同時可以使用以下命令查看i2c寄存器中的值,比如我要查看i2c1下地址為0x3c處寄存器的值,可以通過以下名稱查看:

i2cdump -y -f 1 0x3c

值得注意的是有些攝像頭將power_down拉低后,開發(fā)板才能夠通過i2c與相機(jī)寄存器之間進(jìn)行通信,比如上方為拉低了的,下方為未拉低。
rv1126核心板2路ahd攝像頭實現(xiàn)方案,音視頻,RV1126,CIF,DVP
另:OV公司的I2C不是標(biāo)準(zhǔn)的I2C總線,為了避開專利,他們采用的是SCCB總線技術(shù),不過經(jīng)過測試與I2C區(qū)別不大。

SCCB是歐姆尼圖像技術(shù)公司(OmniVision)開發(fā)的一種總線,應(yīng)用于OV系列圖像傳感器上。SCCB最主要是閹割了IIC的連續(xù)讀寫的功能,即每讀寫完一個字節(jié)就主機(jī)必須發(fā)送一個NA信號。

XCLK

部分不帶晶振的攝像頭需要提供XCLK像素時鐘進(jìn)行驅(qū)動,在設(shè)備樹中可以通過以下進(jìn)行添加,注意時鐘名字要與驅(qū)動對應(yīng):
比如設(shè)備樹中可能如下:

	clocks = <&cru CLK_CIF_OUT>;
	clock-names = "xvclk";

驅(qū)動部分對應(yīng)如下:

	priv->clk = v4l2_clk_get(&client->dev, "xvclk");
	if (IS_ERR(priv->clk))
		return -EPROBE_DEFER;

行場同步信號

不同相機(jī)的行場同步信號可能不同,具體可以查詢芯片手冊,不過注意的是芯片手冊不一定準(zhǔn)確,比如OV2640,芯片手冊的時序為:
rv1126核心板2路ahd攝像頭實現(xiàn)方案,音視頻,RV1126,CIF,DVP
可以看出是標(biāo)準(zhǔn)的SDI格式,也就是當(dāng)DE也就是HREF為高時,VSYNC為低,VSYNC只在有效像素前產(chǎn)生一段高電平。但是按照這個時序產(chǎn)生的同步信號始終無法抓取到圖像,經(jīng)過抓取之后發(fā)現(xiàn)OV2640輸出的時序如下:

rv1126核心板2路ahd攝像頭實現(xiàn)方案,音視頻,RV1126,CIF,DVP
可以看出當(dāng)DE為高時,也就是有效像素部分,VS也為高,基本與手冊中寫的相反,按照上面的時序即可抓取到圖像。
正確OV2640時序的Verilog代碼如下,注意分辨率為800x600,YUYV格式8bit:

parameter ROWS = 600;
parameter COLS = 1600;
parameter ROWS_TOTAL = 672;
parameter COLS_TOTAL = 3840;
parameter ROW_START = 36;
parameter COL_START = 1000;

reg [12:0] rROW;
reg [12:0] rCOL;

always@(posedge wCLK18M)
begin	
	if(!iRst)
	begin
		rROW <= 0;
		rCOL <= 0;
	end
	else
	begin
	   if(rCOL==COLS_TOTAL-1)
	   begin
	       rCOL <= 0;
	       rROW <= rROW + 1;
	   end
	   else
	   begin
	       rCOL <= rCOL + 1;
	   end
	   if(rROW == ROWS_TOTAL)
	   begin
	       rROW <= 0;
	   end 
	end
end
reg r2640DE;
reg r2640VS;
reg [7:0] r2640H;
always@(posedge wCLK18M)
begin	
    if(rROW >= ROW_START && rROW < (ROW_START + ROWS))
    begin
        r2640VS <= 1;
        if(rCOL >= COL_START && rCOL < (COL_START + COLS))
        begin
            r2640DE <= 1;
        end
        else
        begin
            r2640DE <= 0;
        end
    end
    else
    begin
        r2640VS <= 0;
    end
end

生成的波形如下:
rv1126核心板2路ahd攝像頭實現(xiàn)方案,音視頻,RV1126,CIF,DVP

同時也要注意HS和VS的極性,也就是有效時的電平高低,主要收到設(shè)備樹和驅(qū)動的控制,設(shè)備樹部分如下:


&i2c1 {
	status = "okay";
	// clock-frequency = <400000>;
	clock-frequency = <100000>;

    ov2640: camera@3c {
		compatible = "ovti,ov2640";
		pinctrl-names = "default";
		pinctrl-0 = <&cifm1_dvp_ctl>;
		reg = <0x3c>;
		
		clocks = <&cru CLK_CIF_OUT>;
		clock-names = "xvclk";

		port {
			/* Parallel bus endpoint */
			cam_para_out1: endpoint {
				remote-endpoint = <&cif_para_in>;
				bus-width = <8>;
				//data-shift = <2>; /* lines 9:2 are used */
				hsync-active = <1>;
				vsync-active = <1>;//<1>;
				pclk-sample = <1>;
			};
		};
	};
};

&rkcif_dvp {
	status = "okay";

	port {		
		cif_para_in: endpoint {
			remote-endpoint = <&cam_para_out1>;
			bus-width = <8>;
            hsync-active = <1>;
			vsync-active = <1>;
		};	
	};
};

驅(qū)動部分:

config->flags = V4L2_MBUS_PCLK_SAMPLE_RISING | V4L2_MBUS_MASTER |
		V4L2_MBUS_VSYNC_ACTIVE_HIGH | V4L2_MBUS_HSYNC_ACTIVE_HIGH |
		V4L2_MBUS_DATA_ACTIVE_HIGH;

兩者要與實際情況相匹配。

DATA

sensor輸出的數(shù)據(jù)一般8位居多,也有16位和10位的,RV1126的CIF接口輸入如下:
rv1126核心板2路ahd攝像頭實現(xiàn)方案,音視頻,RV1126,CIF,DVP
優(yōu)先使用CIF接口的高位進(jìn)行傳輸。
同時還要對MEDIA_BUS_FMT進(jìn)行配置,與sensor輸出的像素格式對應(yīng),可以參考V4L2的手冊,格式十分豐富。
以O(shè)V2640為例支持以下的格式:

static u32 ov2640_codes[] = {
	MEDIA_BUS_FMT_YUYV8_2X8,
	MEDIA_BUS_FMT_UYVY8_2X8,
	MEDIA_BUS_FMT_YVYU8_2X8,
	MEDIA_BUS_FMT_VYUY8_2X8,
	MEDIA_BUS_FMT_RGB565_2X8_BE,
	MEDIA_BUS_FMT_RGB565_2X8_LE,
};

以MEDIA_BUS_FMT_YUYV8_2X8為例,視頻輸出的格式位YUYV,并且深度是8bit色深,每次只傳輸8bit,兩個像素周期才是一個完整的像素。

抓圖

抓圖一般使用v4l2-ctl進(jìn)行抓圖,對于dvp接口可以在video0進(jìn)行抓圖,對于mipi則不行,抓圖實例如下:

v4l2-ctl -d /dev/video0 --set-fmt-video=width=800,height=600,pixelformat=YUYV8_2X8--stream-mmap=3 --stream-skip=3 --stream-to=./cif.out --stream-count=1 --stream-poll

抓圖成功一般如下所示,會有 < 打印輸出:
rv1126核心板2路ahd攝像頭實現(xiàn)方案,音視頻,RV1126,CIF,DVP
并且對于800x600大小YUYV8_2X8格式的圖片一般占用940k存儲空間。
并且可以通過以下python代碼查看像素值:

yuv = "./pic.out"
with open(yuv, "rb") as yuv_f:
    yuv_bytes = yuv_f.read()
    yuv_data = np.frombuffer(yuv_bytes, np.uint8)

同時在/proc路徑下也會有統(tǒng)計信息得到保存,通過以下命令進(jìn)行查看:

cat /proc/rkcif_dvp

rv1126核心板2路ahd攝像頭實現(xiàn)方案,音視頻,RV1126,CIF,DVP
以上就是對dvp相機(jī)的視頻接入的簡單介紹,各位有疑問可以留言,進(jìn)行交流。文章來源地址http://www.zghlxwxcb.cn/news/detail-779967.html

到了這里,關(guān)于基于瑞芯微平臺cif接口dvp相機(jī)的視頻接入(ov2640、rv1126為例)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 瑞芯微第二代8nm高性能AIOT平臺 RK3576 詳細(xì)介紹

    瑞芯微第二代8nm高性能AIOT平臺 RK3576 詳細(xì)介紹

    RK3576瑞芯微第二代8nm高性能AIOT平臺,它集成了獨立的6TOPS(Tera Operations Per Second,每秒萬億次操作)NPU(神經(jīng)網(wǎng)絡(luò)處理單元),用于處理人工智能相關(guān)的任務(wù)。此外,RK3576還支持UFS(Universal Flash Storage,通用閃存存儲)存儲,提供了高效的數(shù)據(jù)存儲和讀取能力。 RK3567-Rockchip-

    2024年04月10日
    瀏覽(45)
  • 迅為RK3588開發(fā)板-基于瑞芯微RK3588攝像頭方案

    迅為RK3588開發(fā)板-基于瑞芯微RK3588攝像頭方案

    硬件: RK3588開發(fā)板+攝像頭 ? MIPI攝像頭: ? 1.1 硬件連接 RK3588?底板上有四個攝像頭接口,如下圖所示,此四個接口均可連接攝像頭?ov5695?和?攝像頭?ov13850。 ? 攝像頭模塊連接硬件時要將模塊對準(zhǔn)插槽缺口處,J1?接口連接攝像頭模塊如下圖所示: ? J2?接口連接攝像頭模塊

    2024年02月09日
    瀏覽(116)
  • 基于瑞芯微rk3588+寒武紀(jì) | 38TOPS INT8算力的AI邊緣計算盒子,智能安防、智慧工地、智慧城管、智慧油站

    基于瑞芯微rk3588+寒武紀(jì) | 38TOPS INT8算力的AI邊緣計算盒子,智能安防、智慧工地、智慧城管、智慧油站

    瑞芯微rk3588+寒武紀(jì) | 38TOPS INT8算力 ●?采用?Big-Little?大小核架構(gòu),搭載四核?A76+四核?A55,CPU主頻高達(dá)?2.4GHz?,提供1MB L2 Cache?和?3MB L3?,Cache提供更強(qiáng)的?CPU?運算能力。 ●?高性能四核 Mali-G610 GPU,至少支持 2 路 4K UI,能流暢運行復(fù)雜的圖形處理; ●?可擴(kuò)展4G/WIFI6/BT等無

    2024年02月03日
    瀏覽(19)
  • 瑞芯微RK3588,交叉編譯opencv

    這里以opencv-4.6.0為例子。 下載: opencv-4.6.0 opencv_contrib-4.6.0 .cache 提取碼:0816 eigen-3.3.9. ffmpeg-6.0 yasm-1.3.0 交叉編譯器_gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz 注意:不要關(guān)閉當(dāng)前終端!后面編譯opencv也在當(dāng)前終端。這里很重要! 安裝libgtk2.0-dev時的報錯,解決方案 以上,有

    2024年02月08日
    瀏覽(93)
  • 瑞芯微RK3568開發(fā):燒錄過程

    進(jìn)入rk3568這款芯片的燒錄模式共有3種方式,先講需要準(zhǔn)備的環(huán)境要求。 1、配套sdk版本的驅(qū)動DriverAssitant_vx.x.x和RKDevTool_Release_vx.x,版本不對應(yīng)可能無法燒錄,建議直接在sdk壓縮包里獲??; 2、如果正確安裝DriverAssitant_vx.x.x,且usb硬件連接完好,電腦端會有主線驅(qū)動識別ok的提

    2024年02月15日
    瀏覽(96)
  • 【武漢萬象奧科】瑞芯微RK3568芯片

    【武漢萬象奧科】瑞芯微RK3568芯片

    ▎產(chǎn)品展示 RK3568核心板是基于Rockchip的RK3568設(shè)計的一款高性能核心板。該處理器集成了最新的高性能CPU、GPU,并擁有豐富的接口,非常適用于工業(yè)自動化控制、人機(jī)界面、中小型醫(yī)療分析器、電力等多種行業(yè)應(yīng)用。 ? ▎RK3568產(chǎn)品特點 ▎ 高性能處理器 ○ 采用四核A55架構(gòu)CPU,

    2024年02月06日
    瀏覽(88)
  • 瑞芯微 | I2S-音頻基礎(chǔ) -1

    最近調(diào)試音頻驅(qū)動,順便整理學(xué)習(xí)了一下i2s、alsa相關(guān)知識,整理成了幾篇文章,后續(xù)會陸續(xù)更新。 喜歡嵌入式、Li怒曉得老鐵可以關(guān)注一口君賬號。 名稱 含義 ADC(Analog to Digit Conversion) 模擬信號轉(zhuǎn)換為數(shù)字信號 AEC(Acoustic Echo Cancellor) 回聲消除 AGC(Automatic Gain Control) 自

    2024年03月14日
    瀏覽(46)
  • OpenHarmony實戰(zhàn):瑞芯微RK3566移植案例(中)

    OpenHarmony實戰(zhàn):瑞芯微RK3566移植案例(中)

    上篇文章:OpenHarmony實戰(zhàn):瑞芯微RK3566移植案例(上) 常見的INPUT設(shè)備有鍵盤、鼠標(biāo)、游戲桿、Touch Screen等。Touch 設(shè)備與主機(jī)通訊采用標(biāo)準(zhǔn) I2C 總線,觸屏 IC 提供中斷支持,提高了觸屏數(shù)據(jù)的實時性。本項目的觸摸屏器件IC 為 GT911。 驅(qū)動框架模型 INPUT驅(qū)動模型 INPUT 驅(qū)動模型核

    2024年04月23日
    瀏覽(99)
  • 瑞芯微RK3568驅(qū)動配置之十串口

    基于飛凌的開發(fā)板設(shè)計,這里需要使用到RK3568的串口,開發(fā)板只開放了UART2、UART3、UART4、UART5、UART8。查看文檔,準(zhǔn)備配置UART0、UART6、UART7、UART9。一共9個串口使用。剩下的一個串口被網(wǎng)口1占用,暫時不修改。 修改設(shè)備樹DTS文件配置。 地址: /home/forlinx/3568/OK3568-linux-source/k

    2024年02月13日
    瀏覽(89)
  • 瑞芯微RK3568開發(fā):GPIO實踐篇

    瑞芯微RK3568開發(fā):GPIO實踐篇

    ? ? ? ? SOC平臺各類GPIO構(gòu)建原理是大道一統(tǒng)的,在各個諸如狀態(tài)、數(shù)據(jù)、中斷和屏蔽等寄存器具體含義用法,有少許差異。玩好RK的GPIO,需要先理解這類通用接口的框架。 ? ? ? ? 介紹RK3568的GPIO,認(rèn)為講2類重要地址和記錄幾種編程實踐方法即可。 一、2類地址 ? ? ? ? RK

    2024年02月10日
    瀏覽(163)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包