JSVM中对质量层编码问题的一点认识
来源:互联网 发布:广州知名淘宝电商公司 编辑:程序博客网 时间:2024/06/05 12:48
http://wenku.baidu.com/view/f895b321dd36a32d7375812f.html
对于做质量可伸缩时,为什么设置两层图像输入会得到4个质量层?而且后3个层的QP一样,YUVPSNR是出现在最后?
答:我认为,JSVM实际上只是做了两层的编码。只是在做第二层编码的时候,又分为了3个子层,但这三个子层使用的是同一个QP,分层的依据是layer1.cfg中的变量MGSVectorMode和MGSVector0~MGSVector2。查SoftwareManual中它们的意思可以知道:当MGSVectorMode为1时,JSVM会根据MGSVectorX的不同而分配不同数量的变换系数(默认为4×4的块,所以也说明了为什么MGSVectorX之和一定要是16)给不同的子层。也就是说,我们看到的输出结果中,后3个层加起来才是一个完整的层的数据。所以在最后才输出一个YUVPSNR。下面是通过修改layer1层中的MGSVectorMode和MGSVectorX后得到的输出结果。
1、MGSVectorMode=0时(以下都是只编5帧)
# JSVM Main Configuration File
OutputFile test.264 # Bitstream file
FrameRate 30.0 # Maximum frame rate [Hz]
FramesToBeEncoded 5 # Number of frames (at input frame rate)
GOPSize 16 # GOP Size (at maximum frame rate)
BaseLayerMode 2 # Base layer mode (0: AVC w larger DPB,
# 1:AVC compatible, 2:AVC w subseq SEI)
CgsSnrRefinement 1 # SNR refinement as 1: MGS; 0: CGS
EncodeKeyPictures 1 # Key pics at T=0 (0:none, 1:MGS, 2:all)
MGSControl 2 # ME/MC for non-key pictures in MGS layers
# (0:std, 1:ME with EL, 2:ME+MC with EL)
MGSKeyPicMotRef 1 # motion ref for MGS key pics (0:off, 1:on)
SearchMode 4 # Search mode (0:BlockSearch, 4:FastSearch)
SearchRange 32 # Search range (Full Pel)
NumLayers 2 # Number of layers
LayerCfg layer0.cfg # Layer configuration file
LayerCfg layer1.cfg # Layer configuration file
#LayerCfg layer2.cfg # Layer configuration file
#LayerCfg layer3.cfg # Layer configuration file
# JSVM Layer0 Configuration File
InputFile foreman_4cif.yuv # Input file
SourceWidth 352 # Input frame width
SourceHeight 288 # Input frame height
FrameRateIn 30 # Input frame rate [Hz]
FrameRateOut 30 # Output frame rate [Hz]
MGSVectorMode 0 # MGS vector usage selection
# JSVM Layer1 Configuration File
InputFile foreman_4cif.yuv # Input file
SourceWidth 352 # Input frame width
SourceHeight 288 # Input frame height
FrameRateIn 30 # Input frame rate [Hz]
FrameRateOut 30 # Output frame rate [Hz]
InterLayerPred 1 # Inter-layer Prediction (0: no, 1: yes, 2:adaptive)
MGSVectorMode 0 # MGS vector usage selection
MGSVector0 4 # Specifies 0th position of the vector
MGSVector1 4 # Specifies 1st position of the vector
MGSVector2 8 # Specifies 2nd position of the vector
2、MGSVectorMode=1,MGSVector0=16时
由于main.cfg,layer0文件和上述的一样,这里不再给出,只给出layer1层的配置文件。
# JSVM Layer1 Configuration File
InputFile foreman_4cif.yuv # Input file
SourceWidth 352 # Input frame width
SourceHeight 288 # Input frame height
FrameRateIn 30 # Input frame rate [Hz]
FrameRateOut 30 # Output frame rate [Hz]
InterLayerPred 1 # Inter-layer Prediction (0: no, 1: yes, 2:adaptive)
MGSVectorMode 1 # MGS vector usage selection
MGSVector0 16 # Specifies 0th position of the vector
此情况实际跟第一种情况是一个意思。
2、MGSVectorMode=1,MGSVector0=4,MGSVector1=12时
由于main.cfg,layer0文件和上述的一样,这里不再给出,只给出layer1层的配置文件。
# JSVM Layer1 Configuration File
InputFile foreman_4cif.yuv # Input file
SourceWidth 352 # Input frame width
SourceHeight 288 # Input frame height
FrameRateIn 30 # Input frame rate [Hz]
FrameRateOut 30 # Output frame rate [Hz]
InterLayerPred 1 # Inter-layer Prediction (0: no, 1: yes, 2:adaptive)
MGSVectorMode 1 # MGS vector usage selection
MGSVector0 4 # Specifies 0th position of the vector
MGSVector1 12 # Specifies 1st position of the vector
2、MGSVectorMode=1,MGSVector0=4,MGSVector1=4,MGSVector2=8时
由于main.cfg,layer0文件和上述的一样,这里不再给出,只给出layer1层的配置文件。
# JSVM Layer1 Configuration File
InputFile foreman_4cif.yuv # Input file
SourceWidth 352 # Input frame width
SourceHeight 288 # Input frame height
FrameRateIn 30 # Input frame rate [Hz]
FrameRateOut 30 # Output frame rate [Hz]
InterLayerPred 1 # Inter-layer Prediction (0: no, 1: yes, 2:adaptive)
MGSVectorMode 1 # MGS vector usage selection
MGSVector0 4 # Specifies 0th position of the vector
MGSVector1 4 # Specifies 1st position of the vector
MGSVector2 8 # Specifies 2nd position of the vector
- JSVM中对质量层编码问题的一点认识
- 项目中对质量的思考
- 软件工程中需求和设计对质量的重要性
- 打包工具,对质量控制与回溯的重要意义
- 性能问题的一点认识
- jsvm编码SVC视频
- PHP的一点编码问题
- 编码问题的一点小事
- 编码问题的一点小事
- 对质数的判断
- 软件测试对质量负主要责任?
- 对于php中magic_quotes_gpc的一点认识
- Linux中configure命令的一点认识
- NS2中Trace部分的一点认识
- JSVM中MbTransformCoeffs解释
- 思考问题的本质--对软件设计中抽象层意义的一点思考
- 关于页面编码问题的一点记录
- 关于mysql编码问题的一点理解
- HDU 3264 Open-air shopping malls(圆相交面积+二分)
- hdu 1162 Eddy's picture
- ClickOnce 获取客户端发布版本号
- 某公司运维第二次电话面试
- LeetCode 090 SubsetsII
- JSVM中对质量层编码问题的一点认识
- ArcGIS批量修改字段名称或类型
- 毕业五年决定你的命运-----值得所有不甘平庸的人看看
- 一步步写 CMOS 驱动模块 <ELDD 学习笔记>
- 对request.getSession(false)的理解(附程序员常疏忽的一个漏洞)
- 工作笔记之socket
- 整型变量输入为字符时死循环解决
- 如何使用Jmail收发邮件
- AI