sbs立體編譯碼

2021-09-30 07:48:56 字數 3905 閱讀 7655

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...