H.263 H.263+ Payload Type

h263 rtp协议封装协议英文版:rfc4629:http://tools.ietf.org/html/rfc4629

以下文章是部分参考翻译:

文章出处: http://blog.csdn.net/zblue78/archive/2009/04/09/4059414.aspx
General H.263 Payload Header

The H.263 payload header is structured as follows:

0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
- - - - - - - - - - - - - - - -
| RR |P|V| PLEN |PEBIT|
- - - - - - - - - - - - - - - -


RR: 5 bits

Reserved bits. It SHALL be zero and MUST be ignored by receivers.

P: 1 bit

Indicates the picture start or a picture segment (GOB/Slice) start
or a video sequence end (EOS or EOSBS). Two bytes of zero bits
then have to be prefixed to the payload of such a packet to
compose a complete picture/GOB/slice/EOS/EOSBS start code. This
bit allows the omission of the two first bytes of the start codes,
thus improving the compression ratio.

V: 1 bit

Indicates the presence of an 8-bit field containing information
for Video Redundancy Coding (VRC), which follows immediately after
the initial 16 bits of the payload header, if present. For syntax
and semantics of that 8-bit VRC field, see Section 5.2.

PLEN: 6 bits

Length, in bytes, of the extra picture header. If no extra
picture header is attached, PLEN is 0. If PLEN>0, the extra
picture header is attached immediately following the rest of the
payload header. Note that the length reflects the omission of the
first two bytes of the picture start code (PSC). See Section 6.1.

PEBIT: 3 bits

Indicates the number of bits that shall be ignored in the last
byte of the picture header. If PLEN is not zero, the ignored bits
shall be the least significant bits of the byte. If PLEN is zero,
then PEBIT shall also be zero.

H.263是国际电联ITU-T的一个标准草案,是为低码流通信而设计的。但实际上这个标准可用在很宽的码流范围,而非只用于低码流应用,它在许多应用中可以认为被用于取代H.261。H.263的编码算法与H.261一样,但做了一些改善和改变,以提高性能和纠错能力。.263标准在低码率下能够提供比H.261更好的图像效果,两者的区别有:(1)H.263的运动补偿使用半象素精度,而H.261则用全象素精度和循环滤波;(2)数据流层次结构的某些部分在H.263中是可选的,使得编解码可以配置成更低的数据率或更好的纠错能力;(3)H.263包含四个可协商的选项以改善性能; (4)H.263采用无限制的运动向量以及基于语法的算术编码;(5)采用事先预测和与MPEG中的P-B帧一样的帧预测方法;(6)H.263支持5种分辨率,即除了支持H.261中所支持的QCIF和CIF外,还支持SQCIF、4CIF和16CIF,SQCIF相当于QCIF一半的分辨率,而 4CIF和16CIF分别为CIF的4倍和16倍。
  
    1998年IUT-T推出的H.263+是H.263建议的第2版,它提供了12个新的可协商模式和其他特征,进一步提高了压缩编码性能。如H.263只有5种视频源格式,H.263+允许使用更多的源格式,图像时钟频率也有多种选择,拓宽应用范围;另一重要的改进是可扩展性,它允许多显示率、多速率及多分辨率,增强了视频信息在易误码、易丢包异构网络环境下的传输。另外,H.263+对H.263中的不受限运动矢量模式进行了改进,加上12个新增的可选模式,不仅提高了编码性能,而且增强了应用的灵活性。H.263已经基本上取代了H.261。 

   H.263 由 ITU 定义,支持用于视频会议和视频电话应用程序的视频压缩(解码)。 H.263 基于 H.261 编码,并且为在最低带宽为 20K 到 24K bit/sec 上传输的视频流而开发。作为一种一般规则, H.263 只需 H.261 一半的带宽即可达到与 H.261 相同的视频质量,所以在很大程度上 H.263 取代了 H.261 。 H.263 使用 RTP 传输视频流。

H.263 的编码算法和 H.261 中的类似,但它在 H.261 的基础上有了提高和改变,从而增强了性能和错误恢复能力。 H.263 中运动补偿采用的是半像素精度,而在 H.261 中采用的是全像素精度和环路过滤。数据流中分层结构的某些部分是可选的,如此视频编译码就可以被配置成有较低的数据率或较好的错误恢复能力。目前有四种能够提高性能的可选协商选项:无限制运动矢量、基于语法的算术编码、先进预测和前后帧预测,这类似于 MPEG ,叫做 P-B 帧。
H.263 支持五种分辨率。除了 H.261 支持的 QCIF 和 CIF 外,还有 SQCIF 、4CIF 和 16CIF 。  SQCIF 的分辨率大约是 QCIF 的一半,而 4CIF 和 16CIF 的分辨率分别是 CIF 的 4 倍和 16 倍。支持 4CIF 和 16CIF 意味着视频编码器可以与其它具有较高比特率的视频编码标准相抗衡 ,如 MPEG 标准。

协议结构

 H.263 有效载荷头定义了三种格式(模式 A、模式 B 和模式 C)。在模式 A 中,在实际压缩 H.263 视频比特流之前存在4字节的 H.263 有效载荷头。这样允许在 GOB 边界有分段。在模式 B 中,使用的是8字节的 H.263 有效载荷头,且每个数据包从MB 边界开始,没有 PB 帧选项。最后,模式 C 中使用的是12字节的 H.263 有效载荷头,采用 PB 帧选项支持在 MB 边界的帧分段。


 模式 A 中的头格式如下所示:
 
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |F|P|SBIT |EBIT | SRC |I|U|S|A|R      |DBQ| TRB |    TR         |
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


F ― 标志位,表示有效载荷头的模式,具有以下几个值:
0 ― 模式 A;
1 ― 模式 B 或模式 C,取决于 P 位。
P ― P 指定可选的 PB 帧模式。
SBIT ― 起始位,指定最重要位(在第一个数据字节中忽略)的编号。
EBIT ― 结束位,指定最不重要位(在最后一个数据字节中忽略)的编号。
SRC ― 源格式(在 H.263 标准中 PTYPE 的位6、7和8压缩比特流)表示当前图片解析。
I ― 图片编码类型(在 H.263 标准中 PTYPE 的位9压缩比特流)。
U ― 在当前图片头中,如果无限制运动向量选项值为1,那么该值设置为1(在 H.263 标准中 PTYPE 的位10压缩比特流),否则

该值为0。
S ― 在当前图片头中,如果基于语法的算法编码选项值为1,那么该值设置为1(在 H.263 标准中 PTYPE 的位11压缩比特流),

否则该值为0。
A ― 在当前图片头中,如果高级预测选项值为1,那么该值设置为1(在 H.263 标准中 PTYPE 的位12压缩比特流),否则该值为

0。
R ― 预留,值为0。
DBQ ― 用于计算量化值的差分量化参数,当使用 PB 帧选项时,B 帧的量化值基于 P 帧的量化值。该值需要与 H.263 标准压缩

比特流中的 DBQUANT 相同。如果不是采用的 PB 帧选项,则该值为0。
TRB ― 该字段是作为 H.263 标准压缩比特流中 B 帧的暂时参考。如果不是采用的 PB 帧选项,则该值为0。
TR ― 该字段是作为 H.263 标准压缩比特流中 P 帧的暂时参考。如果不是采用的 PB 帧选项,则该值为0。
  模式 B 中的头格式如下所示:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |F|P|SBIT |EBIT | SRC | QUANT   |  GOBN   |   MBA           |R  |
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |I|U|S|A| HMV1        | VMV1        | HMV2        | VMV2        |
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

关于 F、P、SBIT、EBIT、SRC、I、U、S 和 A 各定义请参照模式 A。
 
QUANT ― 在数据包起始进行编码的第一个 MB 的量化值。如果数据包以 GOB 头开始,那么该值设置为0。
GOBN ― 数据包起始处的 GOB 编号。不同的解析中 GOB 编号不同。
MBA ― 数据包中第一个 MB 的 GOB 内的地址,按照扫描顺序从0开始计数。例如任意 GOB 中的第三个 MB 设置为 MBA = 2。
R ― 预留,值为0。
HMV1、VMV1 ― 为数据包中的第一个 MB 设置的水平和垂直运动向量预测。如果有某四个运动向量能为当前 MB 提供高级预测选项功能时,那么这些向量就是 MB 中的1号块的运动向量预测。
HMV2、 VMV2 ― 为数据包中第一个 MB 的3号块提供的水平和垂直运动向量预测。如果有某四个运动向量能为当前 MB 提供高级预测选项功能时,需要该字段,这是因为 MB 中的3号块需要不同于 MB 中其它块的运动向量预测。当 MB 只具有一个运动向量时,不需要使用这两个字段。

  模式 C 中的头格式如下所示: 
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |F|P|SBIT |EBIT | SRC | QUANT   |  GOBN   |   MBA           |R  |
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   |I|U|S|A| HMV1        | VMV1        | HMV2        | VMV2        |
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   | RR                                  |DBQ| TRB |    TR         |
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 关于 F、P、SBIT、EBIT、SRC、I、U、S、A、DBQ、TRB 和 TR 各定义请参照模式 A。
 关于 QUANT、GOBN、MBA、HMV1、VMV1、HMV2 和 VNV2 各定义请参照模式 B。

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

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

相关文章

OC 中 load 方法和 initialize 方法的异同

(void)load; 当类对象被引入项目时, runtime 会向每一个类对象发送 load 消息load 方法会在每一个类甚至分类被引入时仅调用一次,调用的顺序:父类优先于子类, 子类优先于分类load 方法不会被类自动继承 (void)initialize; 也是在第一次使用这个类的时候会调用这个方法 转载于:h…

scrapy框架_Python学习之Scrapy框架

爬虫界江湖地位No.1说起Python,不得不说到它的爬虫应用,由于Python的短小精悍,用它来开发爬虫应用是最合适不过了,基于Python抓取网页的库有很多,例如requests,beatifulsoup等等,但是要说到有哪一个框架&am…

JavaWeb笔记03-Servlet

今日内容 ServletHTTP协议Request Servlet 概念 步骤 执行原理 生命周期 Servlet3.0注解配置 Servlet的体系结构 Servlet – 接口 GenericServlet – 抽象类:将Servlet接口中其他方法做了默认空实现,只将service()方法作为抽象 将来定义Servlet类时候,可以继承Generic…

Android开发中无处不在的设计模式——动态代理模式

继续更新设计模式系列。写这个模式的主要原因是近期看到了动态代理的代码。 先来回想一下前5个模式: - Android开发中无处不在的设计模式——单例模式 - Android开发中无处不在的设计模式——Builder模式 - Android开发中无处不在的设计模式——观察者模式 - A…

用于MPEG-4视听流的RTP负载格式

MPEG-4的rtp协议封装英文原版 RFC 3016:http://www.rfc-editor.org/rfc/rfc3016.txt中文翻译:组织:中国互动出版网(http://www.china-pub.com/)RFC文档中文翻译计划(http://www.china-pub.com/compters/emo…

pycharm python 模板配置_windows下pycharm安装、创建文件、配置默认模板

本文为大家分享了windows下pycharm安装、创建文件、配置默认模板的具体步骤,供大家参考,具体内容如下步骤:下包 —->安装——>创建文件—->定制模板一、下包官方地址这里有企业版和社区版,老司机都知道社区版是免费的&am…

JavaWeb笔记02-Tomcat

今日内容 web相关概念回顾web服务器软件:TomcatServlet入门学习 web相关概念回顾 软件架构 C/S: 客户端/服务器端B/S: 浏览器/服务器端 资源分类 静态资源: 所有用户访问后,得到的结果都是一样的,成为静态资源,静态资源可以直接被浏览器解析 如:html, css ,JavaScript 动态资…

网上的画板代码收集和整理

修改后的代码[1]为,少了一个} package com.example.administrator.myapplication;import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.graphics.Canvas; import an…

如何写年终总结(转)

很多人不重视年终总结,觉得是一个非常令人厌烦的任务,往往是应付了事,短短几百字,对目前工作中存在的问题发现不够,思考不足,对自己一年的评价和未来一年的定位没有说明。造成的后果就是公司得不到来自基层…

cad移动时捕捉不到基点_CAD入门必备(一)移动和复制新手必看

cad也疯狂前言:CAD绘图之所以能够取代手工绘图,很大的一部分原因是因为它可以很方便的修改和重复利用,例如外参可以节省很大部分时间。而我们在使用CAD中,用得最频繁的功能就是移动和复制了,当然这也是新手必备的其中一…

H.264软件解码器在PXA270平台上的优化

罗 嵘,何 苦 时间:2009年04月24日摘 要: 研究了嵌入式系统中H.264 Baseline软件解码器设计和优化的问题,提出了四种有效的优化方法,并在PXA270平台上进行了测试。测试结果显示,综合使用提出的四种方法,H.26…

JavaWeb笔记04-解决GET与POST乱码问题

解决GET与POST乱码问题: 请求的乱码问题 GET:tomcat8版本之前,get请求会乱码 正常文字 --> UTF-8编码 --> 字节数组 --> ISO-8859-1 编码 --> 乱码文字 正常文字 <-- UTF-8编码 <-- 字节数组 <-- ISO-8859-1 编码 <-- 乱码文字解决乱码的两种格式: …

EF架构~codeFirst从初始化到数据库迁移

一些介绍 CodeFirst是EntityFrameworks的一种开发模式&#xff0c;即代码优先&#xff0c;它以业务代码为主&#xff0c;通过代码来生成数据库&#xff0c;并且加上migration的强大数据表比对功能来生成数据库版本&#xff0c;让程序开发人员不用维护数据库的变更&#xff0c;而…

Ubuntu用户Steam控制器不工作的解决办法

Steam 控制器已开始送货到世界各地游戏玩家手中&#xff0c;不过有朋友遇到 Steam 控制器在 Ubuntu 中无法正常工作&#xff0c;本文我们来介绍一下解决办法。该解决办法并非 Ubuntu 官方提出的最佳解决方案&#xff0c;不过还是可以临时解决 Ubuntu 用户 Steam 控制器不工作的…

lisp 车位块自动编号_机械车位做产权登记,真的适合吗?

为了更好地把握停车市场发展动向&#xff0c;给停车行业从业者提供一个发表观点、各抒己见的平台&#xff0c;共同促进停车行业的发展&#xff0c;《城市停车》开设热点版块&#xff0c;每期针对1-2个行业热点&#xff0c;广泛征集业内人士观点和看法。HOT TOPIC本期热点今年两…

JavaWeb笔记05-解决线程安全问题

线程安全问题: Servlet的service方法,每次被请求是,调用. 这个调用很特殊,是在新的子线程中调用的,当service方法执行完毕,子线程死亡了. 可以简单的理解为:service方法每次执行都是一个新的线程. package cn.xdl.demo1;import javax.servlet.ServletException; import jav…

Java并发编程实战 第14章 构建自定义的同步工具

状态依赖性 定义&#xff1a;只有满足特定的状态才能继续执行某些操作&#xff08;这些操作依赖于固定的状态&#xff0c;这些状态需要等待别的线程来满足&#xff09;。 FutureTask&#xff0c;Semaphroe&#xff0c;BlockingQueue等&#xff0c;都是状态依赖性的类。 条件队列…

webserver接口_SpringBoot内置源码解析WebServer初始化过程

WebServer 初始化过程在上一节中 Spring Boot 初始化了 WebServer 对应的工厂类。同时&#xff0c;我们也知道对应 Web容器的WebServer实现类有:TomcatWebServer、JettyWebServer和UndertowWebServer。这节重点讲解这些 WebServer 是如何被初始化&#xff0c;又如何启动的。Web…

提升应用程序弹性:保障工作负载正常运行

通过集群化、复制、快照、微服务和应用程序设计来提高企业工作负载的应用程序弹性和可用性。 应用程序的弹性和可用性是现代企业工作负载的关键属性。应用程序需要在硬件故障发生后&#xff0c;扛过服务故障(例如负载平衡器和域名系统错误)保持工作状态&#xff0c;并且可以忍受…

JDBC笔记01-JDBC,Connection,Statement,ResultSet,PreparedStatement,Properties

学习目标 理解JDBC原理 掌握Connection接口的使用 掌握Statement接口的使用 掌握ResultSet接口的使用 掌握PreparedStatement接口的使用 掌握Properties类与配置文件的使用 JDBC 概念 JDBC (Java DataBase Connectivity) Java数据库连接技术的简称&#xff0c;提供连接各种常…