DM365 color space

YUV的幾種格式

420P:420P數據的存放方式一般是先存放Y,然后存放U,最后存放V的數據,每一個像素使用12bits(1.5BYTE)保存。

422P:422P數據的存放方式也是先存放Y,然后存放U,最后存放V的數據,每一個像素使用16bits(2BYTE)保存。

420PSemi,422PSemi:這是TI新添加的一種格式,在DM6467的輸出當中使用的是422PSemi來進行輸出,所以將YUV的數據輸出之前都需要將其他格式的YUV數據轉換為422PSemi格式。

這兩種格式所占用的存儲空間分別和420P, 422P所占的存儲空間一致。

420PSemi:先存放Y的數據,接著U和V的數據交叉存放,對于422PSemi也是一樣。

舉個例子:

對于30*20像素的420P的YUV數據,在存儲的時候會先存30*20字節的Y,然后存放15*10字節的U,最后存放15*10的V。

如果是420PSemi,那么會先存放30*20字節的Y,接著U和V會交叉存放,分別存放15*10字節,這樣420P和420PSemi所占空間均為30*20*3/2字節。

YUV格式簡介

YUV主要用于優化彩色視頻信號的傳輸,使其向后相容老式黑白電視。與RGB視頻信號傳輸相比,它最大的優點在于只需占用極少的頻寬(RGB要求三個獨立的視頻信號同時傳輸)。其中 “Y”表示明亮度(Luminance或Luma),也就是灰階值;而“U”和“V” 表示的則是色度(Chrominance或Chroma),作用是描述影像色彩及飽和度,用于指定像素的顏色。“亮度”是透過RGB輸入信號來建立的,方 法是將RGB信號的特定部分疊加到一起。“色度”則定義了顏色的兩個方面─色調與飽和度,分別用Cr和CB來表示。其中,Cr反映了RGB輸入信號紅色部 分與RGB信號亮度值之間的差異。而Cb反映的是RGB輸入信號藍色部分與RGB信號亮度值之同的差異。

采用YUV色彩空間的重要性是它的亮度信號Y和色度信號U、V是分離的。如果只有Y信號分量而 沒有U、V分量,那么這樣表示的圖像就是黑白灰度圖像。彩色電視采用YUV空間正是為了用亮度信號Y解決彩色電視機與黑白電視機的兼容問題,使黑白電視機 也能接收彩色電視信號。

在TI的DMAI框架中,對于OMAP3530,視頻輸出的時候使用的是V4L2_PIX_FMT_YUYV (’YUYV’), 而DM6467采用的是V4L2_PIX_FMT_YUV422UVP。

下面的話是從DMAI的ColorSpace.h中摘出來的:

而我們在使用YUVPlayer的時候,只有420P, 422P等能夠播放,而420PSemi和422PSemi不能播放,所以在存儲和讀取的時候需要轉換,下面是一個轉化函數:

void yuv_420p_to_420psemi(int32_t height, int32_t width, int32_t lineLength, char *src, char *dst)

{

int32_t i, j;

int32_t size;

int32_t quarter_size;

size = height * lineLength;

quarter_size = size / 4;

for (i=0; i<height; i++)

{

for (j=0; j<width; j++)

{

memcpy(dst, src, width);

}

dst += lineLength;

src += width;

}

for (i=0; i<height/2; i++)

{

for (j=0; j<width; j += 2)

{

*(dst+j+i*lineLength) = *src++;

}

}

for (i=0; i<height/2; i++)

{

for (j=1; j<width; j += 2)

{

*(dst+j+i*lineLength) = *src++;

}

}

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253624.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253624.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253624.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaScript 標準參考教程-閱讀總結(三)

1、DOM模型 DOM 是 JavaScript 操作網頁的接口&#xff0c;全稱為“文檔對象模型”&#xff08;Document Object Model&#xff09;。它的作用是將網頁轉為一個 JavaScript 對象&#xff0c;從而可以用腳本進行各種操作&#xff08;比如增刪內容&#xff09;。 1&#xff09;do…

P1136 迎接儀式

P1136 迎接儀式 題目描述 LHX教主要來X市指導OI學習工作了。為了迎接教主&#xff0c;在一條道路旁&#xff0c;一群Orz教主er穿著文化衫站在道路兩旁迎接教主&#xff0c;每件文化衫上都印著大字。一旁的Orzer依次擺出“歡迎歡迎歡迎歡迎……”的大字&#xff0c;但是領隊突然…

云服務器 VNC 遠程連接

此服務器買來是為了搭建IC EDA云的&#xff0c;因此選用的是centOS 6的環境&#xff0c;對各EDA軟件兼容較好。本人手頭拮據&#xff0c;因此買的是騰訊云活動期間的云服務器&#xff0c;只能說夠用吧。 一、桌面安裝 在云服務器控制臺登陸上遠程主機&#xff0c;依次執行下列…

Python自動化測試框架有哪些?

作者 | KITTY GUPTA 譯者 | 張健欣 令開發者萬分高興的是&#xff0c;開發自己的測試框架的日子終于結束了。以前&#xff0c;開發團隊接手一個項目并開始開發時&#xff0c;除了項目模塊的實際開發之外&#xff0c;他們不得不為這個項目構建一個自動化測試框架。一個測試框架應…

面試題——4種數組去重的方法

數組去重或者其衍生作為筆試題或者機試題出現的幾率也是很大的&#xff0c;寫出的方法越多&#xff0c;則讓面試官覺得你思維越開闊&#xff0c;那么成功的幾率當然就大了。 廢話不多說&#xff0c;下面來說說下面我整理的4中數組去重的方法 方法一&#xff1a; findInArr方法s…

MFc消息映射機制理解

何謂消息、消息處理函數、消息映射&#xff1f;消息簡單的說就是指通過輸入設備向程序發出指令要執行某個操作。具體的某個操作是你的一系列代碼。稱為消息處理函數。在SDK中消息其實非常容易理解&#xff0c;當窗口建立后便會有一個函數&#xff08;窗口處理函數&#xff09;開…

Effective C++ 條款11:在operator=中處理自我賦值

”自我賦值”發生在對象被賦值給自己時: class Widget { ... }; Widget w; ... w w; // 賦值給自己 a[i] a[j]; // 潛在的自我賦值 *px *py; // 潛在的自我賦值class Base { ... }; class Derived: public Base { ... }; void doS…

Demosaic算法學習

一、概述 由于成本和面積等因素的限定,CMOS圖像傳感器在成像時,感光面陣列前通常會有CFA (color filter array),CFA過濾不同頻段的光,因此,Sensor的輸出的RAW數據信號包含了3個通道的信息。 CFA的排列方式一般有以下幾種: 現在應用最廣泛的是Bayer CFA。…

Sql Server中查詢當天,最近三天,本周,本月,最近一個月,本季度的數據的sql語句...

--當天&#xff1a;select * from T_news where datediff(day,addtime,getdate())0--最近三天&#xff1a;select * from T_news where datediff(day,addtime,getdate())< 2 and datediff(day,addtime,getdate())> 0--本周&#xff1a;select * from T_news WHERE (DATEP…

linux設備驅動歸納總結(五):3.操作硬件——IO靜態映射【轉】

本文轉載自&#xff1a;http://blog.chinaunix.net/uid-25014876-id-83299.html linux設備驅動歸納總結&#xff08;五&#xff09;&#xff1a;3.操作硬件——IO靜態映射 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 有時候會覺…

UML中關聯,聚合,組合的區別及C++實現

類間關系 在類圖中&#xff0c;除了需要描述單獨的類的名稱、屬性和操作外&#xff0c;我們還需要描述類之間的聯系&#xff0c;因為沒有類是單獨存在的&#xff0c;它們通常需要和別的類協作&#xff0c;創造比單獨工作更大的語義。在UML類圖中&#xff0c;關系用類框之間的連…

sql server management studio 快速折疊object explorer中的instance

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/6e20fa7a-c0a9-496b-89b2-19c6bd996ffc/how-to-collapse-object-explorer-tree-in-management-studio?forumsqltools home鍵&#xff0c;回到top level。 然后F5刷新&#xff0c;就會自動折疊了轉載于:https://www.…

自動白平衡算法學習

一、概述 1、顏色恒常性 首先,從色彩學的角度,自然界中的任一種顏色都可以用紅、綠、藍三種顏色混合而成,因此這三種顏色被做為最常用的三原色,即RGB 三原色。 其次,眼睛對于色彩的察覺是由于光照射在物體之上,物體會吸收一部分波長的光,而其被物體反射的那部分波長的光…

自動曝光算法學習

一、概述 在一個完整的成像系統中,所得圖像的亮度由四個方面因素所決定:環境光照強度、相機的光圈大小、曝光時間、信號增益。從這四個因素可以看出,首先環境光照強度是由外界環境光照所決定的,達不到人為任意控制;因此想要調整圖像亮度至合適的程度,需要考慮對光圈大小、…

cocos2d-x 幀動畫

ani cc.Animation:create(); ...... local animate cc.Animate:create(ani); s:runAction(animate); 發現一個問題&#xff0c;s如果是Node實例話就報錯了&#xff0c;s必須是Sprite實例。轉載于:https://www.cnblogs.com/qianwang/p/6249720.html

編寫一個簡單的spring MVC程序

一、下載和安裝spring框架 進入http://repo.springsource.org/libs-release-local/org/springframework/spring/4.2.0.RELEASE/下載一個spring框架&#xff0c;然后打開lib目錄里的jar文件拷貝到項目的WEB-INF/lib目錄下。 二、配置web.xml文件 ?1234567891011121314151617181…

DM368 Uboot

這三個參數均有UBOOT直接傳遞給內核&#xff0c;所以要想知道他們具體的作用&#xff0c;需要根系內核模塊的結構。 dm365_imp.oper_mode 是指在內核模塊中內存空間采用連續、或者不連續模式。 davinci_capture.device_type 是你的捕獲設備的…

7. B+樹

一、B樹是應文件系統所需而產生的一種B樹的變形樹 1. 定義&#xff08;使用階數m來定義&#xff09; 除了根結點外&#xff0c;其他非終端結點最多有m個關鍵字&#xff0c;最少有?m/2?個關鍵字結點中的每個關鍵字對應一個子樹所有的非終端結點可以看成是索引部分&#xff0c;…

Retinex理論及算法學習

為了能夠獲取最大的信息量,達到更好的圖像增強效果。了解人類視覺系統的特性和圖像的屬性是準確地選擇圖像增強方法的必備知識。 一、人眼視覺系統 1、人眼成像 人的眼睛是一個非常復雜的器官。一般來說它就是一個球體,平均直徑約為20mm,內壁是一層視網膜(retina),前部…

js或css文件后面的參數是什么意思?

經常看到不少導航網站測樣式或js文件后面加了一些參數&#xff0c;主要是一你為一些并不經常更新的頁面重新加載新修改的文件。 經常遇到頁面里加載的js與css文件帶有參數&#xff0c;比如&#xff1a; <script type"text/javascript" src"jb51.js?version1…