为什么x264_intra_rd_refine 相对x264_intra_rd 来说是个refine
来源:互联网 发布:管家婆数据库密码 编辑:程序博客网 时间:2024/05/21 03:58
后者,根据粗略决定各分块方式下的预测模式(由x264_mb_analyse_intra( h, &analysis, COST_MAX )实现)intra mode 尝试性编码,计算cost,然后根据cost大小决定最终编码type,根据type cost ratecontrol 即可真正最后编码.
但在最后编码之前,如果对画质要求的option为最高值7,则需进行x264_intra_rd_refine.
rd_refine与 rd的不同决定它可以refine 画质:
x264_intra_rd:
某模式satd<COST_MAX(此函数中形参i_satd_thresh的实参为cost_max=1<<28 , 即4bits) 即进行该模式(由ananlyse确定各intra分块模式(1个16x16,4个8x8,16个4x4 3中模式)的satd)试探编码计算cost bits.纳入考虑范围,最后定cost最小mode为目标mode,这部分是在函数外面实现的.因此试探性编码并不是对所有由neighboour决定的所有可能mode都进行
x264_intra_rd_refine:
根据之前判断的模式分支,存储之前判决的模式,新i_thresh = a->i_satd_i16x16_dir[old_pred_mode] * 9/8;// new thresh 为上次结果放大12.5%,重新对所有可能模式(粗略值不比上次判断最优值大12.5%)进行试探性编码,如果在thresh以下,用i_satd = x264_rd_cost_mb( h, a->i_lambda2 );重新判断satd(x264_intra_rd中用 a->i_satd_i16x16 = x264_rd_cost_mb( h, a->i_lambda2 )判断satd与refine相同).
结论:
非refine先错略比较并决定各分块方式下mode,然后需要rd时,由x264_intra_rd在thresh前提下计算各分块方式下已决定mode 的cost,有试探性编码,和最终编码同一个函数.
由最小cost决定分块方式,因各分块方式的预测mode早确定了.
这样被错略去掉的mode可能在实际编码中占用少的bits,refine试探了这些mode.但也没有完全试探,只试探比上次
最优值差12.5%以内的,这样又一次确定mode,分块方式不变.
- 为什么x264_intra_rd_refine 相对x264_intra_rd 来说是个refine
- 为什么x264_intra_rd_refine 相对x264_intra_rd 来说是个refine
- 【商业逻辑分析】之三:为什么说移动互联网的兴起,对大部分企业来说是个极好的机会?
- 大数据对Hadoop来说为什么是丰收的一年
- 为什么Cookie泄露对“贱人”来说是要命的?
- dubbo与nginx都可以做负载均衡,然而哪个相对来说更优秀?为什么?
- 准确来说,今年是第三个“VR元年”
- Refine! Refine! Refine!
- RILConstants为什么是个接口?
- 为什么LPWA对物联网来说是颠覆性的新网络?
- 2D向量,求某个向量或是某个点相对另一个向量来说是左边、还是右边
- ElasticSearch相对Solr来说哪些地方不一样?
- 为什么阿拉伯数字是10个?为什么不是11个?
- 对字符串进行加解密的常用方法-对初学者来说是个很好的入门
- 学习语言编程对我来说确实是个挑战,期待成功
- 为什么TCP是个可靠的协议?
- 为什么TCP是个可靠的协议
- 为什么说PHP是个贫民区
- php处理pathl路径、目录、文件名、扩展名。。。
- Java算法大全,java进制装换,java日期转换
- iotop 进程简介
- NTP服务架构和使用
- Asp.Net函数大全!(精心收集,实例可直接运行!)
- 为什么x264_intra_rd_refine 相对x264_intra_rd 来说是个refine
- Web服务器搭建
- 模拟提交有文件上传的表单(通过http模拟上传文件)
- Asp.net下使用Extjs进行提示
- MemcacheQ - Simple Queue Service over Memcache
- Using Open vswitch with Fedora 17
- 二叉树的基本操作,前序遍历,后续遍历,中序遍历
- fopen打开相对路径的文件
- JDK1.6安装与环境变量设置详细图解