Skip宏块与Direct预测模式浅析

对于我来说,这个是一个老问题了。以前蓝风车专门给我讲解,我都没搞懂(真有点对不起蓝风车的细心教诲哈。呵呵~~~)。今天终于弄清楚了,特此总结出来,请大家指正。               

=================================================================================               

B_Skip类型宏块(200503版标准,表7-14最后一行):          无像素残差,无运动矢量残差(MVD)。解码时,通过Direct预测模式(时间或空间)计算出前、后向MV后,直接利用前、后向MV得到像素预测值。像素重构值=像素预测值        

B_Direct_16*16类型宏块(200503版标准,表7-14第一行):有像素残差,无运动矢量残差(MVD)。解码时,通过Direct预测模式(时间或空间)计算出前、后向MV后,利用前、后向MV得到像素预测值。然后,像素重构值=像素预测值+像素残差解码值      

P_Skip类型宏块(200503版标准,表7-13最后一行):          也就是COPY宏块。无像素残差,无运动矢量残差(MVD)。直接利用预测MV得到像素预测值。像素重构值=像素预测值        



【特别说明】:

1、有残差就有CBP(表示残差编码状态,详见BBS中我的帖子“CBP详解”),反过来没有残差当然就没有CBP;      
2、请一定不要把 Direct 类型宏块、Skip 类型宏块、Direct 预测模式这三个混淆了。B_Skip 类型宏块(大小为 16*16)、B_Direct_8*8 类型块(大小为 8*8)和B_Direct 类型宏块(大小为 16*16)都采用的是 Direct 预测模式;
3、关于时间和空间的Direct 预测模式,请大家参考标准文档的8.4.1.2小节;
4、与本论坛另一篇帖子“请问Skipped Macroblock是什么意思? ”参照学习;
5、我是跟踪JM86解码过程得出以上结论的。如果某些部分有点错误,请大家指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自律

生活上的自律 写出自律的代码 身体上的自律 日常生活中,存在这么两条路。一条路诱惑我们只根据自己的冲动和直觉来生活。这条路可以称为「宠物之路」,因为所有的动物,包括家里养的宠物狗走的都是这条路。饿了就吃,吃完就算。…

解决兼容性的库

HTML5标签兼容方案&#xff1a;html5shiv.js [GitHub地址&#xff1a;https://github.com/aFarkas/html5shiv/] IE8不支持HTML5的新标签&#xff0c;如<header>、<nav>等标签在IE8无法渲染。html5shiv.js可帮助IE6-8浏览器兼容HTML5语义化标签。 使用方法&#xff…

H.264 中的相关问题

帧内解码时&#xff0c;在解码端&#xff0c;首先通过当前宏块左边、上边已经解码完成的宏块使用当前宏块的预测模式&#xff08;预测模式计算过程请参见我的论文《H.264数字视频差错控制技术的研究》&#xff0c;在群FTP“本群原创资料”目录中&#xff09;得到当前宏块的像素…

wenzhixin bootstrap-table 点击table单元格改变颜色

bootstrap-table用于展示数据非常方便&#xff0c;也需要满足一些个性化需求。比如点击窗格&#xff08;td&#xff09;标记下颜色&#xff0c;用于目测 代码如下&#xff0c;转载请注明 $("table").on(click-row.bs.table, function (e, row, $el) {//el[0] is tr …

tornado学习笔记day01-高并发性能web框架

tornado的安装 这里我使用的是虚拟环境中的pip安装,配合清华大学镜像源安装的 pip install tornado -i https://pypi.tuna.tsinghua.edu.cn/simple我的第一个tornado程序 import tornado.web import tornado.ioloopclass IndexHandler(tornado.web.RequestHandler):主页处理…

python99乘法表while翻译_Python学习之while练习--九九乘法表

效果如下&#xff1a;实现代码;m 1n 1while(m<10):while(n<m):print(n,"*",m,"",m*n,end \t)n 1print(\n)n 1m 1解析&#xff1a;这是一个很简单的while嵌套程序&#xff0c;首先分析九九乘法表是从上往下逐行增加&#xff0c;且第一列乘积为1…

ASP.NET Core 2加入了Razor页面特性

最近发布的ASP.NET Core 2.0&#xff0c;连同新发布的.NET Core 2和Entity Framework Core 2.0y&#xff0c;一并构成了.NET Core 2.0生态中的三元组。此发布给出了多个新特性和改进&#xff0c;其中包括通用性能的改进、Razor页面、新的开发模板以及更好的Azure Diagnostics支…

matlab 矩阵拼接

E[a&#xff0c;b]%水平方向上的拼接 E[a &#xff1b;b] %垂直方向上的拼接 转载于:https://www.cnblogs.com/hsy1941/p/7124083.html

JM8.5中的7种宏块模式问题 - zhoujunming的专栏 - CSDN博客

JM8.5中的7种宏块模式问题 收藏 Outline: 1、 CFG文件中有关可变尺寸宏块模式的相关选项2、 7种宏块模式对应的数值常量3、 7种宏块模式被分成宏块和亚宏块4、 如何对宏块和亚宏块的运动估计&#xff0c;采用一个共同的函数来处理5、 遗留问题1、CFG文件中有关可变尺寸宏块…

tornado学习笔记day02-进阶与提升

整理基础工程 请看第一天的配置文件目录,搭建了一个框架的基础目录 Application settings debug 作用 可以设置tornado是否工作在调试模式下面,默认为false,即工作在生产模式下 true的特性: 自动重启: tornado程序会监控源代码文件,会自动重启服务器,减少我们手动重启…

python123测验2答案八边形_Python试卷

3、写一个函数&#xff0c;计算一个给定的日期是该年的第几天。def getday(self,yNone,mNone,dNone):date datetime(y,m,d)days date.strftime(%j)return days4、写一个函数&#xff0c;给定N&#xff0c;返回斐波那契数列第N项。def getn_vlaue(self,n):if n<2:return 1e…

java实体类如果不重写toString方法,会如何?

先认识一下Object Object 类的 toString 方法 返回一个字符串&#xff0c;该字符串由类名&#xff08;对象是该类的一个实例&#xff09;、at 标记符“”和此对象哈希码的无符号十六进制表示组成。换句话说&#xff0c;该方法返回一个字符串&#xff0c;它的值等于&#xff1a;…

H.264 中很有用的一些概念

Q:PSNR 峰值信噪比 是根据它来取qp是不是&#xff1f; A:不是 和QP没有直接关系但是QP的选择会影响到PSNR Q: 如果不用率失真最优化&#xff0c;为什么选择SATD&#xff0b;deltar&#xff08;mv&#xff0c;mode&#xff09;作为模式选择的依据&#xff1f;为什么运动估…

tornado学习笔记day03-响应输出

write: 作用: 将chunk中的数据写到输出缓冲区 利用write方法写json数据 我们自己手动序列化json的那种方式Content-Type 的属性值为text-html而我们采用write自动序列化方式,我们的content-type 属性为application/json set_default_headers(): 作用: 在进入HTTP响应方法…

Machine Learning——octave矩阵操作(2)——DAY3

矩阵的数学操作&#xff1a; Assumed: a为一个矩阵&#xff0c;m是一个向量 Log(a)——求每一个元素的对数 Exp(a)——以e为底的指数 1./a——求每个元素的导师 [a,b]max(m)——m是一个向量&#xff0c;a为m当中最大的元素&#xff0c;b为a在m中的排列序号&#xff08;已按从小…

python 多进程并发_python并发编程之多进程

一 multiprocessing模块介绍python中的多线程无法利用多核优势&#xff0c;如果想要充分地使用多核CPU的资源(os.cpu_count()查看)&#xff0c;在python中大部分情况需要使用多进程。Python提供了multiprocessing。multiprocessing模块用来开启子进程&#xff0c;并在子进程中执…

tornado学习笔记day04-执行顺序

响应输出 -> write 原型 self.write()函数 源码中是这样定义的 def write(self, chunk: Union[str, bytes, dict]) -> None:作用 将chunk数据写到缓冲区 刷新缓冲区的四种方式 程序中断手动刷新缓冲区满了遇到\n 当你写了一个print之后,不是直接就显示在黑屏中断…

字符串中文判断

2019独角兽企业重金招聘Python工程师标准>>> 1、判断字符串是否全是中文或含有中文 <?php header(Content-type:text/html; charsetutf-8); $str 你好; if(preg_match(/^[\x{4e00}-\x{9fa5}]$/u, $str)>0){ echo 全是中文; …

angular使用动态组件后属性值_Angular动态加载组件

引言有时候需要根据URL来渲染不同组件&#xff0c;我所指的是在同一个URL地址中根据参数的变化显示不同的组件&#xff1b;这是利用Angular动态加载组件完成的&#xff0c;同时也会设法让这部分动态组件也支持AOT。动态加载组件下面以一个Step组件为示例&#xff0c;完成一个3个…

分治2--取余运算

分治2--取余运算 一、心得 二、题目和分析 题目描述 输入b&#xff0c;p&#xff0c;k的值&#xff0c;求bp mod k的值。其中b&#xff0c;p&#xff0c;k*k为长整型数。输入 三个整数&#xff0c;分别为b&#xff0c;p&#xff0c;k的值输出 bp mod k样例输入 2 10 9样例输出 …