H264编解码框图
H264 编解码框架简单介绍
阅读完官方H264/AVC 编解码器的介绍,脑海中仅仅是留下下面三条:
1、H264并没有明白规定一个编解码器怎样实现,仅仅是规定了一个编码后的视频比特流的句法,和该比特流的解码方法,这个与MPEG 类似。
2、H264和曾经的标准(如H261、H263、MPEG-1、MPEG-4)的编解码器实现流程没有太大差别,基本的不同在于各功能块的细节。
3、H264就是利用实现的复杂性获得压缩性能的明显改善。(至于复杂度的评估,以后会介绍)
以下介绍一下H264的编码器框图:
本文福利, 免费领取C++音视频学习资料包、技术视频,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓
编码器採用的仍是变换和预測的混合编码法。在图6.1中,输入的帧或场Fn以宏块为单位被编码器处理。首先,按帧内或者帧间预測编码的方法进行处理。假设採用帧间预測编码,其预測值PRED是由当前片中前面已编码的參考图像经运动补偿(MC)后得到,当中參考图像用F’n-1表示。预測值PRED和当前块相减后,产生一个残差块Dn,经块变换、量化后产生一组量化后的变换系数X,再经熵编码,与解码所需的一些头信息一起组成压缩后的码流,经NAL(网络自适应层)供传输和存储用。
H264的解码器框图:
在图6.2中,将编码器的NAL输出的H264比特流经熵解码得到量化后的一组变换系数X,再经反量化、反变换,得到残差D’n。利用从该比特流中解码出的头信息,解码器就产生一个预測块PRED,它和编码器中的原始PRED是同样的。当该解码器产生的PRED与残差D’n相加后,就得到了uF’n,再经滤波后,最后就得到滤波后的解码输出图像F’n。
本文福利, 免费领取C++音视频学习资料包、技术视频,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓
相关文章
- Android native层实现MediaCodec编码H264/HEVC
- H264解码流程
- 海思h264解码库
- 利用ffmpeg将H264解码为RGB
- H264码流之AnnexB和AVCC
- mpeg4标准包含{xviddivx,h264avc}
- H264和H265的nalu介绍
- H264编码流程_h265和h265+视频编码有什么差别
- MPEG4 MP4和AVC H264 MP4有什么不同
- mp4 文件中的h264 avc1格式介绍
- SkeyePlayer RTSP播放器源码解析系列之H264一帧多NAL写MP4录像花屏问题解决方案
- 2023-02-28:moonfdd/ffmpeg-go是用go语言绑定ffmpeg的库,目前是github上最好用的库。请用go语言将yuv文件编码为h264
- 2023-03-01:用moonfdd/ffmpeg-go库,将h264文件编码为mp4文件。
- 2023-03-03:请用go语言调用ffmpeg,摄像头捕获并编码为h264文件,不管音频。
- 2023-03-07:x264的视频编码器,不用ffmpeg,用libx264.dll也行。请用go语言调用libx264.dll,将yuv文件编码成h264文
- 2023-03-21:音视频解混合(demuxer)为MP3和H264,用go语言编写。
- 2023-03-24:音视频mp3和h264混合(muxer)编码为mp4,用go语言编写。
- SkeyePlayer RTSP播放器源码解析系列之H264一帧多NAL写MP4录像花屏问题解决方案
- SkeyeRTMPClient扩展支持HEVC(H.265)解决方案之兼容H264和H265帧数据解析详解
- 视频编码简史:H.263/H.264/H.265和MPEG2/MPEG4以及VP9,H264优点
- PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件