欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
H.264 SVC

1. SVC基礎知識
關(guān)于SVC的基本意義,可以參看【1】【2】【3】中的論述。SVC(scalable video coding)的可分級視頻編碼概念,簡(jiǎn)而言之,就是把視頻序列分成不同的部分并賦予不同的等級,這樣的思想已經(jīng)淵源流傳,并非H.264/SVC所獨創(chuàng )。2007年由ITU推出的H.264/SVC標準,繼承了H.264的高效壓縮性,隨著(zhù)網(wǎng)絡(luò )應用的普及,SVC的靈活碼流適應性和對不同終端產(chǎn)品的匹配性,顯得尤為重要。

SVC對分級的策略是從時(shí)間,空間和質(zhì)量上,對視頻序列進(jìn)行分級編碼(如下圖)
下面,將詳細描述一下SVC怎么在這些方向進(jìn)行分級的:
(1)時(shí)間分級(Temporal Scalability)
時(shí)間分級就是給序列的視頻幀分配不同的重要等級,以便于在實(shí)際應用中按重要程度顯示幀(或在惡劣網(wǎng)絡(luò )條件下主動(dòng)放棄低等級的幀)。其實(shí)現方式是采用如下圖所示的hierarchical B結構??梢园凑站唧w應用來(lái)設計分等級的B幀結構,然后組織起一個(gè)個(gè)GOP,再架構成整個(gè)編碼序列。由于H.264/AVC中允許進(jìn)行參考幀管理,使得時(shí)間分級可以直接利用這一特性得以實(shí)現。
(2)空間分級(Spatial Scalability)
空間分級的用于形成不同的圖像(幀)分辨率,在實(shí)際應用中可以給不同顯示屏幕的終端設備提供適配的畫(huà)面,以達到提高帶寬使用率的目的。具體的變現如上面的圖,是在不同的分辨率序列層中進(jìn)行預測,利用去相關(guān)性節省碼流。在SVC中,除了提供傳統的層間intra預測(Inter-layer intra prediction),還提供層間宏塊模式與運動(dòng)預測(Inter-layer macroblock mode and motion prediction)和層間殘差預測(Inter-layer residual prediction),這三種模式可以充分利用圖像的時(shí)間和空間相關(guān)性進(jìn)行分級編碼,
i. 層間intra預測(Inter-layer intra prediction)
這種預測方式的宏塊信息完全由層間參考幀(一般是低分辨率的重建幀)通過(guò)上采樣預測得到,在H.262/MPEG-2 Video, H.263, 和 MPEG-4等編碼模式中也經(jīng)常被用到,但是這種方式缺乏消除時(shí)間相關(guān)性所得到的碼率削減。
ii. 層間宏塊模式與運動(dòng)預測(Inter-layer macroblock mode and motion prediction)
   宏塊使用類(lèi)似AVC的幀間預測進(jìn)行編碼,其宏塊模式采用層間參考幀相應塊的模式,其對應的運動(dòng)矢量也利用層間參考幀相應塊的運動(dòng)信息進(jìn)行預測編碼。這就是所謂的層間運動(dòng)預測(inter-layer motion prediction)。
iii. 層間殘差預測(Inter-layer residual prediction)
利用殘差的層間相關(guān)性,可以對于幀間預測的圖像繼續進(jìn)行層間預測,以進(jìn)一步削減碼流。
   三種層間預測的概要圖示如下:
  
在【1】中提到一個(gè)SVC設計的重要特性,每個(gè)空間增強層可以在單一的運動(dòng)補償環(huán)中解碼。在對一個(gè)目標幀的解碼中,其空間參考幀需要重建自己層間預測相關(guān)的intra-coded宏塊和殘差塊,并對自己的運動(dòng)矢量進(jìn)行解碼,運動(dòng)補償和對幀間預測的去方塊濾波僅在目標幀中進(jìn)行。
(3)質(zhì)量分級(Quality Scalability)
質(zhì)量分級往往可以被認為是一種特殊(解析度相同)的空間分級編碼,因此傳統的coarse-grain quality scalable coding (CGS,粗粒度質(zhì)量分級編碼)很容易被想到,而在實(shí)際應用中,還發(fā)展了medium-grain quality scalability (MGS,中等粒度質(zhì)量分級編碼),下面將分別描述他們:
i. CGS
CGS有類(lèi)似空間分級中層間預測,但是無(wú)需有上采樣的過(guò)程,為了更好的視頻質(zhì)量需要呈現更多的圖像紋理,因此,在質(zhì)量分層的層間預測中,對紋理的提純通常通過(guò)采用更小量化步長(cháng)的重新量化。為了減少計算復雜性,用于層間intra預測的參考幀deblocking被忽略,而且層間intra預測和層間殘差預測將在DCT系數階段被直接處理。
ii. MGS
由于CGS對碼率控制不能靈活處理,一種叫MGS的衍生方式被提出采用,MGS可以靈活的權衡漂移(draft,運動(dòng)補償預測循環(huán)中的編解碼不同步)和層次預測的編碼效率。下面的圖,藍色的表示用于基礎質(zhì)量序列,紅色表示較好質(zhì)量的序列,可以根據策略靈活組合他們之間的參考關(guān)系。
其中上圖(c)(d)就是MGS的靈活方式。以(d)來(lái)說(shuō),就是對有黑色標注的Key picture,用基礎質(zhì)量圖像做參考,而對非Key picture使用較好質(zhì)量的圖像做參考,一旦增強層丟包,則可能造成drift,drift被控制在兩個(gè)Key picture之間。
對于質(zhì)量分級,SVC還支持兩個(gè)特性,Partitioning of transform coefficients和SVC-to-AVC rewriting,前者提供用slice來(lái)分散增強層變換系數的方法,以便于同一增強層數據被分散到幾個(gè)包中,后者提供了SVC-》AVC的轉碼便利。
至此,SVC的基礎入門(mén)概念就描述完了,下面將要開(kāi)始看看怎么使用JSVM來(lái)做分層編解碼實(shí)驗。
2. JSVM基礎實(shí)驗
(1)編碼實(shí)驗
jsvm的實(shí)驗可以從編碼開(kāi)始,編譯完JSVM代碼后,可以運行H264AVCEncoderLibTestStaticd.exe來(lái)進(jìn)行SVC編碼,在這里的基礎實(shí)現中首先關(guān)注spatial scalability的編碼,通??梢越Y合temporary scalability一起進(jìn)行。用以下命令運行編碼:
H264AVCEncoderLibTestStaticd -pf encoder.cfg
這里僅僅使用最簡(jiǎn)單的參數:
文件encoder.cfg
********************************************************
# Scalable H.264/AVC Extension Configuration File
OutputFile              D:\workspace\264\svctest.264       # Bitstream file
FrameRate               25               # Maximum frame rate [Hz]
FramesToBeEncoded       32                # Number of frames (at input frame rate)
GOPSize                 8                  # GOP Size (at maximum frame rate)
BaseLayerMode           2                  # Base layer mode (0: AVC w larger DPB,
                                           #   1:AVC compatible, 2:AVC w subseq SEI)
SearchMode              4                  # Search mode (0:BlockSearch, 4:FastSearch)
SearchRange             32                 # Search range (Full Pel)
#============================== LAYER DEFINITION ==============================
NumLayers               2                      # Number of layers
LayerCfg                layer0.cfg             # Layer configuration file
LayerCfg                layer1.cfg             # Layer configuration file
**************************************************************************************
文件 layer0.cfg
**************************************************************************************
# Layer Configuration File

#============================== INPUT / OUTPUT ==============================
SourceWidth     176                     # Input frame width
SourceHeight    144                     # Input frame height
FrameRateIn     25                      # Input frame rate [Hz]
FrameRateOut    25                      # Output frame rate [Hz]
InputFile       D:\workspace\264\mobile_qcif.yuv       # Input file
ReconFile       rec_layer0.yuv          # Reconstructed file
SymbolMode      0                       # 0=CAVLC, 1=CABAC
****************************************************************************************
文件 layer1.cfg
****************************************************************************************
# Layer Configuration File
#============================== INPUT / OUTPUT ==============================
SourceWidth     352                     # Input frame width
SourceHeight    288                     # Input frame height
FrameRateIn     25                      # Input frame rate [Hz]
FrameRateOut    25                      # Output frame rate [Hz]
InputFile       D:\workspace\264\mobile_cif.yuv       # Input file
ReconFile       rec_layer1.yuv          # Reconstructed file
SymbolMode      0                       # 0=CAVLC, 1=CABAC
InterLayerPred 2                       # Inter-layer Prediction (0: no, 1: yes, 2:adaptive)
UseESS          1         # ESS
ESSCropWidth    352       # cropping width
ESSCropHeight   288       # cropping height
ESSOriginX      0         # cropping origin X
ESSOriginY      0         # cropping origin Y
ESSChromaPhaseX 0         # chroma phase x 0 or -1, default = -1
ESSChromaPhaseY 0         # chroma phase y -1 to +1, default = 0
ESSBaseChromaPhaseX 0     # base chroma phase x 0 or -1, default = -1
ESSBaseChromaPhaseY 0     # base chroma phase y -1 to +1, default = 0 0
****************************************************************************************
本實(shí)驗將編碼雙層的SVC文件,分別包含352x288和176x144兩個(gè)分辨率,需要注意的是這里需要輸入的是兩個(gè)分辨率對應的YUV文件,在開(kāi)發(fā)實(shí)際應用中,將是對輸入的高分辨率視頻按需求進(jìn)行下采樣得到相應低分辨率的輸入碼流。理解上面的配置文件可以閱讀JSVM的“SoftwareManual.doc”。
一下是實(shí)驗結果
*****************************初始實(shí)驗結果***************************************
JSVM 9.15 Encoder
profile & level info:
=====================
DQ= 0: Main @ Level 1.1
DQ= 16: Scalable High @ Level 2.1

AU     0: I    T0 L0 Q0   QP 28   Y 35.0921 U 36.6779 V 36.4204     66768 bit
       0: I    T0 L1 Q0   QP 28   Y 35.4271 U 37.4696 V 37.2485    206872 bit
AU     8: P    T0 L0 Q0   QP 28   Y 34.7829 U 37.1181 V 36.7810     26280 bit
       8: P    T0 L1 Q0   QP 28   Y 35.4518 U 37.6578 V 37.4747    101464 bit
AU     4: B    T1 L0 Q0   QP 31   Y 32.5973 U 36.1283 V 35.5269      4264 bit
       4: B    T1 L1 Q0   QP 31   Y 32.8378 U 36.9262 V 36.4150     21624 bit
AU     2: B    T2 L0 Q0   QP 33   Y 31.7760 U 35.9120 V 35.3318      2272 bit
       2: B    T2 L1 Q0   QP 33   Y 32.1271 U 36.4808 V 35.9225     11352 bit
AU     1: B    T3 L0 Q0   QP 34   Y 31.9559 U 36.2816 V 35.7872      1136 bit
       1: B    T3 L1 Q0   QP 34   Y 31.4860 U 36.5493 V 36.0923      5672 bit
AU     3: B    T3 L0 Q0   QP 34   Y 31.1236 U 35.5697 V 34.9500      1136 bit
       3: B    T3 L1 Q0   QP 34   Y 31.2954 U 36.0335 V 35.5473      6056 bit
AU     6: B    T2 L0 Q0   QP 33   Y 31.6214 U 35.7877 V 35.3442      2368 bit
       6: B    T2 L1 Q0   QP 33   Y 32.0268 U 36.4989 V 36.0755     11080 bit
AU     5: B    T3 L0 Q0   QP 34   Y 31.2529 U 35.3809 V 34.8735      1296 bit
       5: B    T3 L1 Q0   QP 34   Y 31.4222 U 36.0127 V 35.4764      6200 bit
AU     7: B    T3 L0 Q0   QP 34   Y 31.8522 U 35.9385 V 35.6081      1064 bit
       7: B    T3 L1 Q0   QP 34   Y 31.7233 U 36.4942 V 36.0999      6768 bit
.
.
.
SUMMARY:
                        bitrate    Min-bitr   Y-PSNR   U-PSNR   V-PSNR
                       --------- ---------- -------- -------- --------
   176x144 @ 3.1250   115.5750   115.5750 34.9069 37.0066 36.5668
   176x144 @ 6.2500   132.4000   132.4000 33.6463 36.5663 35.8824
   176x144 @ 12.5000   149.7562   149.7562 32.6071 36.1343 35.3446
   176x144 @ 25.0000   164.7937   164.7937 31.9890 35.8764 35.0516
   352x288 @ 3.1250   514.3438   514.3438 35.4914 37.5844 37.4000
   352x288 @ 6.2500   606.0562   606.0562 34.0656 37.1580 36.8032
   352x288 @ 12.5000   706.5750   706.5750 33.0123 36.7826 36.3039
   352x288 @ 25.0000   809.1812   809.1812 32.2313 36.4422 35.9078
**************************************************************************
從實(shí)驗結果可以看到,以8幀為一個(gè)GOP,實(shí)驗就像上面hierarchical B結構圖(a)那樣分了4個(gè)時(shí)間層次,并且分別列出兩種分辨率。從最后的統計結果可以看到,作為GOP的關(guān)鍵幀,無(wú)論是空間基礎層還是增強層都占可主要的碼流量。
(2)解碼實(shí)驗
解碼實(shí)驗將采用H264AVCDecoderLibTestStatic,解碼輸出自能得到最好的流,也就是基礎層結合增強層得到的最高層次的流,本實(shí)驗中是352x288的25幀序列。解碼過(guò)程顯示如下:
D:\workspace\project\jsvm\bin>H264AVCDecoderLibTestStaticd D:\workspace\264\svct
est.264 D:\workspace\264\rec_svc
JSVM 9.15 Decoder

---------- new ACCESS UNIT ----------
NON-VCL: SEI NAL UNIT
NON-VCL: SEQUENCE PARAMETER SET (ID=0)
NON-VCL: SUBSET SEQUENCE PARAMETER SET (ID=0)
NON-VCL: PICTURE PARAMETER SET (ID=0)
NON-VCL: PICTURE PARAMETER SET (ID=1)
NON-VCL: PICTURE PARAMETER SET (ID=2)
NON-VCL: SEI NAL UNIT
Frame    0 ( LId 0, TL 0, QL 0, AVC-I, BId-1, AP 0, QP 28 )
Frame    0 ( LId 1, TL 0, QL 0, SVC-I, BId 0, AP 1, QP 28 )
---------- new ACCESS UNIT ----------
NON-VCL: SEI NAL UNIT
Frame    8 ( LId 0, TL 0, QL 0, AVC-P, BId-1, AP 0, QP 28 )
Frame    8 ( LId 1, TL 0, QL 0, SVC-P, BId 0, AP 1, QP 28 )
---------- new ACCESS UNIT ----------
NON-VCL: SEI NAL UNIT
Frame    4 ( LId 0, TL 1, QL 0, AVC-B, BId-1, AP 0, QP 31 )
Frame    4 ( LId 1, TL 1, QL 0, SVC-B, BId 0, AP 1, QP 31 )
---------- new ACCESS UNIT ----------
NON-VCL: SEI NAL UNIT
Frame    2 ( LId 0, TL 2, QL 0, AVC-B, BId-1, AP 0, QP 33 )
Frame    2 ( LId 1, TL 2, QL 0, SVC-B, BId 0, AP 1, QP 33 )
---------- new ACCESS UNIT ----------
NON-VCL: SEI NAL UNIT
Frame    1 ( LId 0, TL 3, QL 0, AVC-B, BId-1, AP 0, QP 34 )
Frame    1 ( LId 1, TL 3, QL 0, SVC-B, BId 0, AP 1, QP 34 )
---------- new ACCESS UNIT ----------
NON-VCL: SEI NAL UNIT
Frame    3 ( LId 0, TL 3, QL 0, AVC-B, BId-1, AP 0, QP 34 )
Frame    3 ( LId 1, TL 3, QL 0, SVC-B, BId 0, AP 1, QP 34 )
---------- new ACCESS UNIT ----------
NON-VCL: SEI NAL UNIT
Frame    6 ( LId 0, TL 2, QL 0, AVC-B, BId-1, AP 0, QP 33 )
Frame    6 ( LId 1, TL 2, QL 0, SVC-B, BId 0, AP 1, QP 33 )
---------- new ACCESS UNIT ----------
NON-VCL: SEI NAL UNIT
Frame    5 ( LId 0, TL 3, QL 0, AVC-B, BId-1, AP 0, QP 34 )
Frame    5 ( LId 1, TL 3, QL 0, SVC-B, BId 0, AP 1, QP 34 )
---------- new ACCESS UNIT ----------
NON-VCL: SEI NAL UNIT
Frame    7 ( LId 0, TL 3, QL 0, AVC-B, BId-1, AP 0, QP 34 )
Frame    7 ( LId 1, TL 3, QL 0, SVC-B, BId 0, AP 1, QP 34 )
從上面的過(guò)程中可以看到所有的基礎層和增強層原始都被使用到了,那么要想僅僅解碼基礎層的序列該如何操作呢?就要用到下面介紹的流提取工具BitStreamExtractorStatic。
(3)流提取實(shí)驗
用BitStreamExtractorStatic提取svc文件里的相應子流,在輸入的參數不足時(shí),會(huì )列出svc文件中可以提取的各層:
D:\workspace\project\jsvm\bin>BitStreamExtractorStaticd D:\workspace\264\svctest
.264
JSVM 9.15 BitStream Extractor
Contained Layers:
====================
       Layer   Resolution   Framerate   Bitrate MinBitrate      DTQ
         0     176x144       3.1250     115.60      115.60   (0,0,0)
         1     176x144       6.2500     132.40      132.40   (0,1,0)
         2     176x144      12.5000     149.80      149.80   (0,2,0)
         3     176x144      25.0000     164.80      164.80   (0,3,0)
         4     352x288       3.1250     514.30      514.30   (1,0,0)
         5     352x288       6.2500     606.10      606.10   (1,1,0)
         6     352x288      12.5000     706.60      706.60   (1,2,0)
         7     352x288      25.0000     809.20      809.20   (1,3,0)
       
下面是一個(gè)成取176x144的25幀率序列的實(shí)驗:
D:\workspace\project\jsvm\bin>BitStreamExtractorStaticd D:\workspace\264\svctest
.264 D:\workspace\264\ext_svc.264 -e 176x144@25:164.8
JSVM 9.15 BitStream Extractor

Contained Layers:
====================
       Layer   Resolution   Framerate   Bitrate MinBitrate      DTQ
         0     176x144       3.1250     115.60      115.60   (0,0,0)
         1     176x144       6.2500     132.40      132.40   (0,1,0)
         2     176x144      12.5000     149.80      149.80   (0,2,0)
         3     176x144      25.0000     164.80      164.80   (0,3,0)
         4     352x288       3.1250     514.30      514.30   (1,0,0)
         5     352x288       6.2500     606.10      606.10   (1,1,0)
         6     352x288      12.5000     706.60      706.60   (1,2,0)
         7     352x288      25.0000     809.20      809.20   (1,3,0)
WARNING: Bit-rate underflow for extraction/inclusion point

============Extraction Information======
Extracted spatail layer : 176x144
Extracted temporal rate : 25f/s
quality_id statistics for dependency_id 0
===========================================
quality_id 0 - total:    16 retained:    16
Number of input packets:     134
Number of output packets:    99
可以對輸出的ext_svc.264文件用H264AVCDecoderLibTestStatic解碼,得到176x144的yuv。

至此,本文作為入門(mén)介紹已經(jīng)完成,JSVM還有許多輔助工具可以參照JSVM Software Manual,本章的實(shí)驗結果可以體會(huì )到,使用JSVM編碼的好速度很慢,還沒(méi)具體統計,大約每分鐘兩三幀,而解碼在當前一般配置的雙核PC系統基本可以達到實(shí)時(shí)。下一篇文章將進(jìn)入JSVM的代碼分析。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
FLASH文字特效:閃字效果
#SATA# SATA系列專(zhuān)題之二《2.0 Link layer鏈路層概述》
H.264 SVC和AVC的區別
H.264可擴展視頻編解碼器(SVC)應用詳解
學(xué)術(shù)︱AGC與AVC在光伏電站的應用與實(shí)現
H.264/AVC中量化的Verilog實(shí)現
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久