为了满足MTU大小的要求,在3G视频传输中对视频进行分片压显得尤其重要。经过分片压缩后的视频码流中通常每个RTP包中包含一个片(也可以对RTP进行分割或合并),一般每个片中包含一个或者几个宏块,以R11P包的大小满足MTU的要求为准。

对视频流进行分片处理,除了满足通信要求之外,另外一个功能是提高视频流的容错能力。H.264/AVC标准规定,帧内编码块只能在同一片中进行帧内预测。
这样如果由于传输错误一个片中的数据被丢失,所能影响到只是同一片中的宏块解码,不会影响到同一帧图像中其他片中的宏块解码。将图像划分为多个片,
当某一片不能正常解码时的空间视觉影响就会大大降低,而且片的头部还提供了重同步点。

JM参考软件提供了两种分片方式,如图4.2所示,分别是固定码率分片方式和固定宏块分片方式。在固定码率分片方式中,每片所占用的比特数是一定的,由于宏块编码时候的复杂度不一样,每个宏块所占用的比特数也不一样,所以这种编码方式中每片中的宏块数目是不固定的。在固定宏块分片方式,每片中的宏块数目是固定的,从而每片所占用的码率是不固定的。前者有利于减少由MTU太大而引起的分组损失,主要用于对片大小要求比较严格的环境中,如无线网络中;而后者能有效减小网络传输延迟,主要用于有线网络环境中。在EBR编码,对片的大小和其中的宏块数目都有要求,需要有更先进的分片方法。

在无线信道传输中,片的长度严重影响到视频码流的容错性能。片的长度与RLC-PDU的长度是密切相关的。如果片的长度过大,每片数据需要多个RLC帧来传输。则当其中某一帧数据发生错误时,整片数据将无法恢复。但是,如果片过小,则增加了协议头的开销,不利于整个数据流的传输;另外如果片过小,不利于宏块间的预测,降低了压缩效率。因此,片的大小应当小于或等于RLC-PDU的大小,并且每帧图像至少有2到3片。

转载于:https://www.cnblogs.com/jiangjh/archive/2011/06/30/2094756.html

片(Slice)结构相关推荐

  1. go slice获取唯一值_Go语言引用传递与值传递

    先说结论 GO中只有值传递,没有引用传递 所谓值传递,就是实参通过拷贝将自身内容传递给形参.也就是将传递的内容拷贝一份,给函数.所以函数外和函数里对这个参数地址求值,应该是不一样的. 证明如下: fu ...

  2. go int 最大值_Dig101 - Go之灵活的slice

    文章首发:公众号 newbmiao Dig101: dig more, simplified more and know more Slice作为go常用的数据类型,在日常编码中非常常见. 相对于数组 ...

  3. go 判断元素是否在slice_Go内置数据结构原理

    作者:jackshi,腾讯 PCG 后台开发工程师 从C++切换到Go语言一年多了,有必要深入了解一下Go语言内置数据结构的实现原理,本文结合示例与Go源码深入到Go语言的底层实现. 数组 定义 数组 ...

  4. Golang之slice操作

    1.创建 一般使用make创建,make([]string,0) var s []int或s:=new([]int) //nil切片, 切片是nil,即Slice内的指针是nil var t = [] ...

  5. 深度解密Go语言之Slice

    Go 语言的 slice 很好用,不过也有一些坑.slice 是 Go 语言一个很重要的数据结构.网上已经有很多文章写过了,似乎没必要再写.但是每个人看问题的视角不同,写出来的东西自然也不一样.我这篇 ...

  6. 【Golang】Slice数组组成和扩容机制

    Golang Slice 结构体 写这个的初衷是因为看到一个 b站的UP主(幼麟实验室)做 Golang 的视频有感而生,想通过视频深入剖析一下内容,顺便当作一个输出,记录自己学习的过程. up主的连 ...

  7. Go Slice实现原理分析

    Go Slice实现原理分析 认识 Slice 一种可变长度的数 操作 make :创建Slice,可以提前分配内存, append:往Slice添加元素 package main import (& ...

  8. Go开发 之 容器(数组Array、切片slice、映射map、列表list)

    文章目录 0.唠唠叨叨 1.数组-Array 1.1.什么是数组 1.1.1.数组的声明 1.1.2.比较两个数组是否相等 1.1.3.示例 1.1.3.1.通过索引下标访问元素 1.1.3.2.数组 ...

  9. Golang 中 Slice的分析与使用(含源码)

    文章目录 1.slice结构体 2.slice初始化 3.append操作 4.slice截取 5.slice深拷贝 6.值传递还是引用传递 参考文献 众所周知,在golang中,slice(切片)是 ...

  10. 以Vivado synthesis支持的Verilog结构来学习 Verilog语句可综合性

    查Verilog结构是否可综合 查Verilog 系统task与function是否可综合 查Verilog 基本单元(原语)是否可综合 查Verilog 保留的关键词 文章目录 1 Verilog ...

最新文章

  1. java.lang.IllegalStateException: Cannot modify managed objects outside of a write transaction. in /U
  2. oracle SQL 命令行(一.基础)
  3. 浅谈CMMI几个过程概念流程管理 (转)
  4. 【C++深度剖析教程14】经典问题解析三之关于赋值的疑问
  5. linux操作系统中文件系统管理--实训
  6. 区块链加密算法小探(一)
  7. 解读ASP.NET 5 MVC6系列(13):TagHelper
  8. 计算机图形学规则形体,计算机图形学教案
  9. 数据窗口 label_Python实现数据可视化,让你的数据清晰起来!
  10. mysql操作数据库进行封装实现增删改查功能
  11. 专题三、ArrayList遍历方式以及效率比较
  12. 关于MSDTC - 与基础事务管理器的通信失败 错误解决的小备忘
  13. java--复制文件的方法:
  14. CAD中 OLE不能旋转_【设计图文】大空间旋转喷头零件的数控加工工艺设计、编程与加工(有全套cad图+程序+中英文翻译)...
  15. python访问陌生人qq空间_自己的QQ空间怎么不让陌生人进入—设置访问权限
  16. java囧囧西游之大闹天宫下载_最新囧囧西游之大闹天宫榜单下载_九游
  17. oracle dba培训教程 第九章 创建数据库
  18. Bresenham快速画直线算法
  19. Eclipse 提示内存不足
  20. 手机计算机怎么玩24点游戏,计算器游戏怎么玩 新手前期玩法介绍

热门文章

  1. python能绘制统计图吗-使用Python绘制图表大全总结
  2. python语言是谁发明的咋读-Python的发明,竟然是因为他不喜欢花括号。
  3. python之父-Python之父宣布退休,但Python仍在吞噬世界
  4. python慕课视频-python爬虫:爬取网站视频
  5. python零基础怎么学-零基础的小白怎么学python?
  6. python爬虫教程pdf-Python 爬虫:把廖雪峰教程转换成 PDF 电子书
  7. python零基础电子书免费下载-零基础学Python
  8. python数据分析视频网盘-微专业Python数据分析实战
  9. python网上课程-python完整课程
  10. python语言入门电子版-python从入门到精通pdf