sbs
測試文件
楊杭軍,
2010.9.26
一、sbs
概述:
sbssbs在立體視屏編譯碼方面的大概步驟:
1.對應幀
拼接成一幅影象,保持影象解析度不變。比如將第
100幀的左路影象與第
100幀的右路影象拼接成
一幅影象(具體拼接方法有多種),並且保證拼接後的影象解析度與左路(右路)影象保持一致。
2.h.264
編碼器進行編碼;
3.在客戶端,利用現有的
h.264
解碼器對碼流解碼,得到左右路拼接序列;
4.進行拼接的逆運算,將左右路拼接序列分解成左右路兩路序列。
5.影象拼接方法:將左路影象的奇數場與右路影象的偶數場拼接成一幅影象。
二、關鍵演算法
2.1
影象拼接
影象拼接主要目的是把兩路影象拼接成一路影象。具體來說,左路右路影象各對應幀各抽取一定的畫素值,整合成一幀影象,而在這一過程中要保證影象的解析度不變。
本測試**影象拼接採用的方法是:將左路影象的奇數場與右路影象的偶數場拼接成一幅影象。具體可見**介紹:
將亮度資訊拼接成一幅影象:
for(i=0;i
for(j=0;j
色度分量拼接:原理與亮度拼接一致!
for(i=0;i
for(j=0;j
2.2
影象分解
拼接後的影象經過編碼,傳輸到客戶端,客戶端解碼,解碼之後要**左右路影象,則必須將解碼得到的拼接影象進行分解,恢復左右路影象。
影象分解需要的步驟:將拼接影象分解成左右路yuv,此時左右路高度解析度均為原來的一半; 對左右路影象進行插值,復原為原始影象的解析度。
拼接影象分解成兩路yuv的**如下表所示:
for(i=0;i
for(j=0;j
else
*(y_2+(i-1)/2*width+j)=*(y_in+i*width+j); //
奇數行分解到右路影象
} //這裡包括亮度與色度的分解。分解後左右路的解析度變為:width*height/2
對亮度分量進行插值,採取雙線性插值演算法:
for(i=0;i
//(i,j)為插值後影象的座標
for(j=0;j
色度分量的插值(由於人眼對色度的解析度較低,所以,色度的插值就直接複製)
for(i=0;i
for(j=0;j
三、測試環境:
作業系統:
ubuntu 9.10
硬體效能:
cpuintel pentium® dual cpu
主頻1.80ghz
記憶體2.0gb
測試序列:
序列解析度
幀數tunnel_l_720x576_250frms.yuv
720x576
250tunnel_r_720x576_250frms.yuv
720x576
250trapeze_l_720x480_450frms.yuv
720x480
450trapeze_r_720x480_450frms.yuv
720x480
450bmx_l_1920x1080_240frms.yuv
1920x1080
240bmx_l_1920x1080_240frms.yuv
1920x1080
240四、測試結果:
qp=37
測試序列
y(db)
u(db)
v(db)
位元速率(kb/s
)tunnel_l_720x576_250frms.yuv
25.188
33.581
32.951
435.89
tunnel_r_720x576_250frms.yuv
23.132
33.389
32.269
trapeze_l_720x480_450frms.yuv
22.250
36.351
35.789
483.12
trapeze_r_720x480_450frms.yuv
20.057
36.274
35.388
bmx_l_1920x1080_240frms.yuv
20.249
31.806
34.841
4316.38
bmx_l_1920x1080_240frms.yuv
18.886
30.858
33.961
qp=32
測試序列
y(db)
u(db)
v(db)
位元速率(kb/s
)tunnel_l_720x576_250frms.yuv
25.882
34.067
33.382
875.20
tunnel_r_720x576_250frms.yuv
23.308
33.657
32.524
trapeze_l_720x480_450frms.yuv
22.472
36.797
36.197
1003.45
trapeze_r_720x480_450frms.yuv
20.065
36.467
35.641
bmx_l_1920x1080_240frms.yuv
20.287
31.953
35.078
8354.24
bmx_l_1920x1080_240frms.yuv
18.858
30.830
33.966
qp=27
測試序列
y(db)
u(db)
v(db)
位元速率(kb/s
)tunnel_l_720x576_250frms.yuv
26.316
34.457
33.899
1773.06
tunnel_r_720x576_250frms.yuv
23.327
33.848
32.835
trapeze_l_720x480_450frms.yuv
22.577
37.231
36.512
2130.96
trapeze_r_720x480_450frms.yuv
20.062
36.649
35.809
bmx_l_1920x1080_240frms.yuv
20.300
32.043
35.312
15950.76
bmx_l_1920x1080_240frms.yuv
18.845
30.803
33.972
編譯碼 霍夫曼編譯碼
1.檔案源 原始影象分塊為 8 8 在rle編碼之後做霍夫曼編碼。其中rle碼字格式如下。struct rlecode 2.構建霍夫曼表 本文中使用的為jpeg標準ac y霍夫曼表。構建乙個256維大小的碼表hufftable,其霍夫曼碼字結構如下。struct huffcode 3.關鍵幀霍夫曼編...
編碼 解碼 中文編譯碼
字串和字符集的關係 字串是python程式的一種格式 位元組串是網路傳輸的一種形式 字串和位元組串轉換 字串 str encode 位元組串 bytes 位元組串 bytes decode 字串 str ascii字符集是utf 8字符集的前128位字元,可以說ascii字符集是utf 8字符集的子...
編譯碼,拷貝
s alex assicc碼 utf 8和gbk的英文是asicc碼 s1 s.encode utf 8 utf 8轉化為位元組 print s1.decode gbk 位元組轉化為gbk 刪除列表的兩個方法 li 1,2,3,4,5,6 lst for i in li for n in lst l...