`
xpp02
  • 浏览: 1010641 次
社区版块
存档分类
最新评论

H.264 中的相关问题

 
阅读更多

帧内解码时,在解码端,首先通过当前宏块左边、上边已经解码完成的宏块使用当前宏块的预测模式(预测模式计算过程请参见我的论文《H.264数字视频差错控制技术的研究》,在群FTP“本群原创资料”目录中)得到当前宏块的像素预测值。然后通过对码流进行解码得到当前宏块的像素残差。最后将残差和预测值加在一起就得到重构的像素值。如果当前宏块的左边或者右边的宏块不存在(即当前宏块为图像边界上的宏块),那么其预测值全部为128

帧间解码时,在解码端,首先对码流进行解码得到当前宏块的参考帧,然后通过当前宏块周围宏块计算运动矢量预测值(具体方法见毕厚杰书99页,标准中也有,但我一时不知道在什么地方了)。然后通过对码流进行解码得到当前宏块的运动矢量残差。将运动矢量残差与运动矢量预测值相加得到实际的运动矢量。然后通过对码流进行解码得到当前宏块的像素残差(如果当前宏块有像素残差的话)。然后通过参考帧与上面计算得到的MV计算出当前宏块的像素预测值。再将像素预测值与像素残差相加就得到当前宏块的重构。

说明:

1、以上过程为 JM86 的解码过程。并不一定所有代码都按照这个流程;

2、上面说的运动矢量预测值的计算过程实际是以4*4块为单位,参考帧也是针对4*4块做的。这里写成宏块主要是方便大家理解。

RDO

Rate-Distortion Optimization 是视频编码中最优选择mode的一种方法。比如h.264里好多mode 8x8 16x16 I4x4 I16 在给定的条件下,哪个是最好的?

Distortion 是指选用candidate mode产生的失真,rate是用这个mode需要的rate.他们换算成RDCost = Distortion + lamda * rate. 两个mode谁的rdcost 低就选谁,其中的数学原理是条件极值转非条件极值。

JM 里用的RDO是比较经典的方法。最早是Gary J.Sullivan做的 参见 IEEE Signal Processing Magazine 1998 Nov. "Rate-Distortion Optimization for video compression" rdo的经典。 h264里的rdo还可参考CSVT H.264 special issue.

H.264里面当前帧属于哪个slice的决定形式是多种多样的,对于JM中的码流中,一般一帧图象就认为是一个slice,那么如果当前帧是一个I帧,那么它就属于一个I slice.这时整个frame的为一个slice.但是具体我们用什么样的方式来进行slice type的决策呢,这也是一个问题。我们看一下T264里面是如何处理这个问题的。

T264,如果我们设定了,USE_SCENEDETECT的话,当前的slice种类是由当前帧的帧号与设定的idrframe,iframebframe相关的,如果frame_no%idrframe==0的话,那么说明当前帧是属于一个IDR slice的,如果frame_no%iframe==0的话,该帧属于一个I slice.如果上面的情况不满足那么是属于P sliceB slice.由于码流中只有如下几种类型:0) I P P P ..... I P P P 1) I B P B P.....B P B P 2) I B B P B B P.....B B P I B B P,所以如果frame_no%(bframe+1)==0的话,就属于P slice,如果不是的话属于B slice.

如果没有使用USE_SCENEDETECT的话,是用MeAnalysis来决定当前属于什么slice的。这种形式是动态式地决定是不是要加入一个I slice。决定流程如下:如果我们达到了我们在config里面设定的iframe interval的话,当前帧就是一个I slice.我们设定一个INTRA_THRESHOLD,对帧中的每一个宏块进行预测,来计算sad.这个过程因为计算量比较大,所以使用了简化算法,首先用前一帧的mv做预测值,计算sad,如果这个值大于我们设定的SEARCH_THRESHOLD的话,说明上一帧的mv已不适合做当前帧的预测,我们会使用一个简化的diamond search来简单地找一下当前宏块的mv,进行sad计算。整个帧的sad计算结束之后,我们与INTRA_THRESHOLD进行比较,如果sad大的话,这一帧为I slice中的一帧,如果小的话,我们认为它是一个PB帧。对于当前帧是P还是B帧还是用上面的方法进行。

分享到:
评论

相关推荐

    H.264视频编码算法研究.pdf

    是目前图像通信研究领域的热点问题之一 作为多媒体通信网络的重要组成部分 H.264 不再把编码和网络区别的对待 H.264 综合考虑了编码效率和网络传输 特别适合流媒体 的传输, 因此它的研究和实现具有相当重要的意义 ...

    H.264变换和量化的分析 (2004年)

    为了降低运算复杂度和避免解码端的失配问题,通过分析4×4点离散余弦变换(DCT)原理,推导得到H.264标准中第一级4×4点整数变换方法。在该变换的基础上还可以对直流系数再采用第二级变换,进一步消除相关性。与4×4...

    H.264中基于边缘方向检测的帧内预测模式选择算法 (2011年)

    运动估计是H.264中最为复杂的部分,帧内预测是运动估计的重要内容.H.264中帧内预测模式众多,大大增加了编码的复杂度.在帧内预测中,一般是通过率失真优化或者相关特性来减少选择预测模式,但复杂度还是较高.针对此问题,...

    H.264sourcecodeinmatlab-surreal:向合成人学习,CVPR2017

    Matlab中的H.264源代码向合成人学习(SURREAL) ,,,,和,向合成人学习,CVPR 2017。 内容 1.下载SURREAL数据集 为了下载SURREAL数据集,您需要接受许可条款。 许可条款和下载过程的链接可在此处获得: 收到下载...

    MPEG-4到H. 264转码中多帧参考运动估计快速算法 (2008年)

    264的过程中运动估计耗费大量时间的问题,提出了一种快速运动估计算法,以实现快速转码.该算法充分利用未转码压缩视频流中包含的信息,结合时间相关预测与空间相关预测来实现 MPEG-4到H. 264转码过程中的多帧参考...

    基于块匹配的H.264/AVC帧内预测算法* (2013年)

    针对进一步提高H.264/AVC帧内预测性能的问题,提出了一种基于块匹配算法的帧内预测算法,该算法将帧内预测中的DC模式与BM模式两种模式相结合,形成了一种新的预测模式,替代了原有的帧内预测中的模式2。并应用H.264...

    aac+h264封装MP4

    aac+h264封装MP4,适用于我们项目的平台,需要使用的朋友可以修改相关参数,有问题可以反馈给我skdkjxy@163.com,谢谢

    H264标准官方中文版本

    国际电信联盟的常设机构,负责研究技术、操作和资费问题,并且为在世界范围内实现电信标准化,发表有关上 述研究项目的建议书。每四年一届的世界电信标准化全会(WTSA)确定ITU-T 各研究组的研究课题,再由各研 究...

    Intel Media SDK 2018 R2参考手册

    基于Intel GPU进行视频编解码的参考文档,关于H.264/H.265编解码的API接口函数和相关参数结构详细说明,以及相应的问题处理方法,值得相关人员参考。

    mp4-h264:[已暂停的项目]使用WASM的浏览器的MP4 + H264编码

    然而:这里的文档和示例将保留,因为它们为加速WASM和媒体处理提供了有价值的信息(与H264不相关) Chrome仍在试用 ,该已支持对H264进行编码而不产生特许权使用费(因为它由Chrome的许可证处理)。该项目的一部分是...

    802.11无线网络权威指南(第二版全_非扫描).pdf

    3.1.2 隐藏节点的问题................................................................................. 49 3.2 MAC 访问控制与时钟 50 3.2.1 载波监听功能与网络分配矢量........................................

    图像处理(第二版)章毓晋

    1.0.26 对矩阵H结构上可分离性的假设意味着什么?.......................................30 1.0.27 如何能将一个可分离变换写成矩阵的形式?............................................31 1.0.28 可分离性假设...

    hadoop大数据实战手册

    2.3.2 HDFS 中的快照相关命令…........................…............... . .................................… ·59 2.3.3 HDFS 内部的快照管理机制…………………………………………………………… . . . .. ....

    live555 android手机端源视频h264数据采集APK

    很多人刚接触流媒体的时候,对于数据源都有疑惑,不知道数据源是否是自己想要的格式,比如h264。该APK可以帮你解决问题,在手机端安装APK,运行程序,有文本框输入url,点击确定,这时候源数据就会写在你的手机上,你...

    iSee视频监控 v5.2

    功能特点(H.264压缩) 压缩方式:H.264/MPEG 4; 显示分辨率:1024_768、1280_1024、16:9宽屏、16:10宽屏; 预览分辨率 (可调) :704_576(PAL制),740_480(NTSC制); 352_288(PAL制),370_240...

    MOV格式监控录像播放器.zip

    优化hbipc.dll对H.264的解码效率。修正锁屏后重新创建平面在ATI显卡报错问题。修正屏幕丢失后无法正确创建平面的问题。解决回调值空报错问题增加对流模式支持增加保留字段,以适应字节对齐ipc解码修改,使用最新...

    SRWare Iron for Linux v36.0.1950.0 Beta.zip

    chrome的用户隐私保护不力,饱受用户和民间组织争议,Google Chrome浏览器推出后 ,有关泄露用户隐私的问题成为了大家讨论的一个焦点,但作为一款开源浏览器,同时又是Google的产品,马上就有强人通过修改代码发布了...

    Visual C++音频视频处理技术及工程实践(含源码2/2)

    15.4.2 ffmpeg-h264-vc工程实现H.264视频解码 612 15.5 本章小结 613 第16章 打造自己的DVR监控系统 615 16.1 DVR监控系统分析与设计 616 16.1.1 监控系统分类 616 16.1.2 监控系统组成 617 16.1.3 基于压缩...

    Visual C++音频视频处理技术及工程实践(分卷0)

    15.4.2 ffmpeg-h264-vc工程实现H.264视频解码 612 15.5 本章小结 613 第16章 打造自己的DVR监控系统 615 16.1 DVR监控系统分析与设计 616 16.1.1 监控系统分类 616 16.1.2 监控系统组成 617 16.1.3 基于压缩板卡的...

Global site tag (gtag.js) - Google Analytics