關於YUV和RGB之間的轉換公式
轉載地址:http://blog.sina.com.cn/s/blog_5713096b0100059i.html
總結了一下網上關於YUV的一些東西
先區分一下YUV和YCbCr
YUV色彩模型來源於RGB模型,
該模型的特點是將亮度和色度分離開,從而適合於影象處理領域。
應用:模擬領域
Y'= 0.299*R' + 0.587*G' + 0.114*B'
U'= -0.147*R' - 0.289*G' + 0.436*B' = 0.492*(B'- Y')
V'= 0.615*R' - 0.515*G' - 0.100*B' = 0.877*(R'- Y')
R' = Y' + 1.140*V'
G' = Y' - 0.394*U' - 0.581*V'
B' = Y' + 2.032*U'
YCbCr模型來源於YUV模型。YCbCr是 YUV 顏色空間的偏移版本.
應用:數字視訊,ITU-R BT.601建議
Y’ = 0.257*R' + 0.504*G' + 0.098*B' + 16
Cb' = -0.148*R' - 0.291*G' + 0.439*B' + 128
Cr' = 0.439*R' - 0.368*G' - 0.071*B' + 128
R' = 1.164*(Y’-16) + 1.596*(Cr'-128)
G' = 1.164*(Y’-16) - 0.813*(Cr'-128) - 0.392*(Cb'-128)
B' = 1.164*(Y’-16) + 2.017*(Cb'-128)
PS: 上面各個符號都帶了一撇,表示該符號在原值基礎上進行了伽馬校正,伽馬校正有助於彌補在抗鋸齒的過程中,線性分配伽馬值所帶來的細節損失,使影象細節更加豐富。在沒有采用伽馬校正的情況下,暗部細節不容易顯現出來,而採用了這一影象增強技術以後,影象的層次更加明晰了。
所以說H264裡面的YUV應屬於YCbCr, 也可以點這裡獲得其他一些資訊.
下面在仔細談談YUV格式, YUV格式通常有兩大類:打包(packed)格式和平面(planar)格式。前者將YUV分量存放在同一個陣列中,通常是幾個相鄰的畫素組成一個巨集畫素(macro-pixel);而後者使用三個陣列分開存放YUV三個分量,就像是一個三維平面一樣。
我們常說得YUV420屬於planar格式的YUV, 顏色比例如下:
Y0U0V0 Y1 Y2U2V2 Y3
Y4 Y5 Y6 Y7
Y8U8V8 Y9 Y10U10V10 Y11
Y12 Y13 Y14 Y15
其他格式YUV可以點這裡檢視詳細內容, 而在YUV檔案中YUV420又是怎麼儲存的呢? 在常見H264測試的YUV序列中,例如CIF影象大小的YUV序列(352*288),在檔案開始並沒有檔案頭,直接就是YUV資料,先存第一幀的Y資訊,長度為352*288個byte,然後是第一幀U資訊長度是352*288/4個byte, 最後是第一幀的V資訊,長度是352*288/4個byte, 因此可以算出第一幀資料總長度是352*288*1.5,即152064個byte, 如果這個序列是300幀的話, 那麼序列總長度即為152064*300=44550KB,這也就是為什麼常見的300幀CIF序列總是44M的原因.
相關推薦
關於YUV和RGB之間的轉換公式
轉載地址:http://blog.sina.com.cn/s/blog_5713096b0100059i.html 總結了一下網上關於YUV的一些東西 先區分一下YUV和YCbCr YUV色彩模型來源於RGB模型, 該模型的特點是將亮度和色度分離開,從而適合於影象處理領域。
YUV與RGB互轉各種公式 (YUV與RGB的轉換公式有很多種,請注意區別!!!)
一、 公式:基於BT.601-6 BT601 UV 的座標圖(量化後): (橫座標為u,縱座標為v,左下角為原點) 通過座標圖我們可以看到UV並不會包含整個座標系,而是呈一個旋轉了一
YUV和RGB調節色彩公式
1.YUV調節色彩公式(必須是量化後的YUV(16-235)),非量化後的YUV轉換有問題。 轉換公式為: 原始YUV(Y,U,V),轉換後YUV(Y',U',V'),亮度 :g_Bright (0-1),飽和度:g_Saturation(0-1),對比度:g_Contrast (0-1
android全平臺編譯libyuv庫實現YUV和RGB的轉換
音視訊實踐學習 android全平臺編譯ffmpeg以及x264與fdk-aac實踐 ubuntu下使用nginx和nginx-rtmp-module配置直播推流伺服器 android全平臺編譯ffmpeg合併為單個庫實踐 android-studio使用c
YUV和RGB的相互轉換實驗報告
1、彩色空間轉換基本原理 1)彩色空間轉換公式: 為了實現格式轉換,我們首先要明確待轉換格式和目標格式的特點和相互轉換關係,這是程式設計實現轉換的核心。對於RGB轉YUV的過程,我們要首先拿到RG
[#1] YCbCr與RGB的轉換公式
== 數字電視 .com 文檔 ram delay times param 技術 1 YCbCr簡介 YCbCr顏色空間是將RGB顏色空間進行坐標轉換後得到的,常用於數字電視系統。Y取值範圍:16~235 Cb、Cr的取值範圍:16~240 YCbCr經常和YUV混淆。兩者
YUV420P、YUV420SP、NV12、NV21和RGB互相轉換並存儲為JPEG以及PNG圖片
音視訊實踐學習 android全平臺編譯ffmpeg以及x264與fdk-aac實踐 ubuntu下使用nginx和nginx-rtmp-module配置直播推流伺服器 android全平臺編譯ffmpeg合併為單個庫實踐 android-studio使用c
Java日期和字串之間轉換,自己封裝日期與字串轉換類
一:日期與字串轉換 public class DateFormatDemo { public static void main(String[] args) throws ParseException { //日期轉換成字串 Date d = new Date(); Simple
VC char和TCHAR之間轉換
char:計算機程式語言(c、c++、java、VFP等)中可容納單個字元的一種基本資料型別。TCHAR:為了滿足Unicode編碼,對char的擴充套件,即_T(“str”)表示TCHAR型別C++支援兩種字串,即常規的ANSI編碼(使用""包裹)和Unicode編碼(使用L
JS時間戳和時間之間轉換
一、時間轉換時間戳 var date =newDate();//時間物件var str = date.getTime();//轉換成時間戳 二、時間戳轉換為時間 1.轉換成 2015/7/18 下午4:50:43 格式: function getDate(tm){v
C# 實現16進位制和字串之間轉換的程式碼
獲取字串中每個字元的十六進位制值。 獲取與十六進位制字串中的每個值對應的字元。 將十六進位制 string 轉換為整型。 將十六進位制 string 轉換為浮點型。 將位元組陣列轉換為十六進位制 string。 示例一: 輸出 string 中的每個字元的十六進位制值。 首先,它將 str
不同格式的YUV 和 RGB互轉
YUV色彩空間: Y是亮度值,也就是說8位的灰度值即可組成一幅黑白影象,黑白電視機就是這樣的. UV是色彩值,是給Y上色用的.U是Cb也就是RGB中的藍色分量,V是Cr也就是RGB中的紅色分量. YUV444 指的是每四個畫素取樣中每個亮度Y分量都有一個色彩UV分
YUV和RGB格式分析
寫的比較詳細。 正文: 做嵌入式專案的時候,涉及到YUV視訊格式到RGB影象的轉換,雖然之前有接觸到RGB到都是基於opencv的處理,很多東西並不需要我們過多深入的去探討,現在需要完全拋棄現有的演算法程式,需要從記憶體中一個位元組一個位元組的處
CMYK與RGB引數轉換公式及轉換方法
1. RGB色彩模式 自然界中絕大部分的可見光譜可以用紅、綠和藍三色光按不同比例和強度的混合來表示。RGB分別代表著3種顏色:R代表紅色,G代表綠色、B代表藍色。RGB模型也稱為加色模型,如圖5所示。RGB模型通常用於光照、視訊和螢幕影象編輯。 RGB色彩模式使用RGB模型為影象中每一個畫素的RGB分量分
Java 時間戳和Date之間轉換
一. 背景: 在資料庫中為了保證資料在取和存的過程中沒有被其他人修改過,通常會加入一個控制版本的欄位version, 這個欄位的值通常會使用時間戳,類似這樣的格式:yyyy-MM-dd HH:mm:s
學習筆記-JS角度和弧度之間轉換
所有Math三角方法如sin()、cos()、tin()...接受弧度值,並且返回弧度值作為結果。將角度轉換為弧度:var radians = degrees * (Math.PI/180);將弧度轉換為角度:var degrees = radians * (180/Math
YUV與RGB格式轉換
原文:http://www.cnblogs.com/dwdxdy/p/3713990.html YUV格式具有亮度資訊和色彩資訊分離的特點,但大多數影象處理操作都是基於RGB格式。 因此當要對影象進行後期處理顯示時,需要把YUV格式轉換成RGB格式。 RGB與YUV的變換公式如下: YU
python矩陣和陣列之間轉換
直接上程式碼 from pylab import * # 把陣列轉化為矩陣要用到 list = [(1,2,3),(4,5,6)] # 初始列表 matrix = mat(list)
JavaScript是如何工作的:深入類和繼承內部原理 + Babel和TypeScript之間轉換
概述 這一 stack ast check 主體 text orm value 現在構建任何類型的軟件項目最流行的方法這是使用類。在這篇文章中,探討用 JavaScript 實現類的不同方法,以及如何構建類的結構。首先從深入研究原型工作原理,並分析在流行庫中模擬基於類的繼承
RGB與HSV之間的轉換公式及顏色表
bsp 公式 blog log b- size 分享 ont idt RGB & HSV 英文全稱 RGB - Red, Green, Blue HSV - Hue, Saturation, Value HSV --> RGB 轉換公式 HSV --&g