首页 > 其他分享 >H264/H265编码

H264/H265编码

时间:2023-06-09 17:16:05浏览次数:38  
标签:码流 编码 H.265 H.264 封装 H264 H265 格式

1、通常在处理音视频数据时,我们如何选择解码器?

       通常我们不是根据 NALU 裸流数据中的信息来选择解码器,而是根据媒体封装层的信息来确定解码器。媒体封装层是表示媒体数据是什么封装格式的,比如 MP4、FLV。在这层信息里,通常会携带码流编码格式的信息。拿 MP4 来说,我们可以根据 Sample Description Box(moov/trak/mdia/minf/stbl/stsd) 中的信息来确定其封装的码流的编码格式。对于 FLV,我们可以根据 VideoTagHeader 中的 CodecID 等信息来确定其封装的码流的编码格式。这样的好处是效率比较高,解封装的时候就可以确定选择何种解码器了。

2、怎么识别 NALU 裸流数据的编码格式是 H.264 还是 H.265?

      但是,如果出现题目中的情况,没有对码流进行封装,而是直接传输码流时,这时候 NALU 中有什么字段能标识自己的编码格式吗?答案是,没有这样明确的字段能标识码流的编码格式。但是这个问题也不是不能解决,因为 H.264、H.265 码流本身也是遵循一定格式规范的,我们可以按照它的格式规范进行探测,如果能解析出来正确的信息,那也可以确定它的编码格式。比如,拿 H.265 来说,FFmpeg 中 hevcdec.c 就有对其码流数据进行探测的函数hevc_probe(...)。所以,我们可以按照编码格式规范探测,比如 H.265 如果解析出了 pps、sps、vps 的各字段信息符合规范,就认为它是 H.265 的编码;如果不是,在你们的码流格式范围中就只剩 H.264 了;接下来将码流数据交给对应的解码器解码即可。

3、RGB和YUV的优缺点

YUV主要用于优化彩色视频信号的传输,与RGB视频信号传输相比占用极少的频宽(RGB要求三个独立的视频信号同时传输)。 YUV的亮度信号Y和色度信号U、V是可以分离的。如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像,这样就做到了对黑白电视机的兼容。 4、H.264与H.265的区别 (1) 压缩率对比:H.265压缩率更高、流量省一半 相对于H.264, H.265最大的优势是就拥有更高的压缩率。这一点从H.265命名就可以看出端倪,H.265又名HEVC(High Efficiency Video Coding,高效率视频编码),其最主要的用途就是要进一步降低影片所需的流量,以降低储存与传输的成本。以H.265在27项提案中最重要3项为例,H.265要求在最佳的编码模板(profile)中,能在维持相同PSNR的前提下,节省以H.264压缩的1080P影片36%左右的数据量,并且能在影像质量差不多时,将节省的幅度进一步提升到50%。因此,为了实现这个目标, H.265比H.264采用了更先进、更灵活的编码单元。 (2) 更低的传输码率 同等图像质量下,数据量只有MPEG2的1/16,MPEG4的1/6,h.264的1/2。

(3) 画质对比:H.265比 H.264人物皮肤更细腻

       也许你会认为,H.265既然压缩率高了,画质肯定有所损失。对于这个问题,大家尽可放心。在H.264等编码技术中,各巨区块间的数据彼此完全独立、没有相依性,于是很容易受编码过程中产生的失真影响,在巨区块的边界区域产生噪声,导致将所有巨区块组合成完整画面时,发生图像无法完全合并的状况。而H.265引了一个Deblocking filter功能,deblocking filter在运作时会侦测临近巨区块的数据,重新建立巨区块间之数据依赖性,尽量将边缘区域平滑化,提高整体图像质量。

 

标签:码流,编码,H.265,H.264,封装,H264,H265,格式
From: https://www.cnblogs.com/lyfily-p-7439305/p/17469734.html

相关文章

  • java编码规范
     是从我的word文档里面直接拷贝出来的,某些地方排版好像不太对,懒得修改了,有不对的地方请指出,看到的话就会修改的。仅供参考,请勿盗取,谢谢。Java开发规范1.引言22.文件23.命名规则33.1基本的规则33.2常量命名33.3变量命名43.4方法命名53.5类和接口的命名53.6包的命名64.注......
  • Google C# 编码规范
    Refhttps://google.github.io/styleguide/csharp-style.htmlhttps://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/naming-guidelines......
  • 前端常见的字符编码方案
    在前端开发中,最常见的字符编码方案是UTF-8。UTF-8是一种可变长度的Unicode编码方案,可以表示几乎所有的字符,并且与ASCII兼容。由于互联网的广泛应用和多语言的支持,UTF-8成为了前端开发中的首选字符编码方案。使用UTF-8编码的好处:1.多语言支持:UTF-8可以表示世界上几乎......
  • win10 配置系统默认utf-8编码
      1、按win键,输入“区域与语言设置”2、选择管理语言设置3、在弹出框中选择更改系统区域设置4、勾选UnicodeUTF-8并点击确定和应用5、重启系统,验证结果  来源:https://www.cnblogs.com/walker-world/p/9548852.html......
  • 5. 数字证书及DER编码和证书库
    数字证书及DER编码和证书库一、数字证书数字证书是什么?数字证书是一种用于安全通信的文件,其中包含与证书持有者相关联的信息,如公钥和证书持有人的身份信息。数字证书通常用于在互联网上建立安全连接,如HTTPS,SSL和TLS。ASN1在数字证书的应用ASN.1(AbstractSyntaxNotatio......
  • 1 asn.1 编码和工具(多找) 2 BER和DER编码 (openssl应用举例)
    asn.1编码和工具(多找)BER和DER编码(openssl应用举例)asn.1编码和工具在ASN.1编码方面,有许多工具可供使用,例如OpenSSL、GnuTLS、Wireshark等。这些工具可以用于生成ASN.1描述的数据结构、将ASN.1数据结构编码成二进制格式、解码ASN.1数据结构等。此外,还有一些专门用于ASN.1编......
  • 数字证书及DER编码和证书库
    数字证书及DER编码和证书库一、数字证书数字证书是什么?数字证书是一种用于安全通信的文件,其中包含与证书持有者相关联的信息,如公钥和证书持有人的身份信息。数字证书通常用于在互联网上建立安全连接,如HTTPS,SSL和TLS。ASN1在数字证书的应用ASN.1(AbstractSyntaxNotatio......
  • Json_JSON编码格式提交表单数据详解
     以JSON编码格式提交表单数据是HTML5对WEB发展进化的又一大贡献,以前我们的HTML表单数据是通过key-value方式传输的服务器端,这种形式的传输对数据组织缺乏管理,形式十分原始。而新出现的JSON格式提交表单数据方法,将表单里的所有数据转化的具有一定规范的JSON格式,然后传输的服务器端......
  • 我的C#编码规范
    命名约定帕斯卡拼写法(PascalCasing):命名所有public成员和命名class、record、struct、interface、namespace时。驼峰式大小写(camelCasing):命名private或internal字段时。方法参数。前缀和后缀:命名属性类型时,使用后缀Attribute命名interface时,使用前缀I命名pri......
  • 89. 格雷编码
    89.格雷编码题目数学公式动态规划回溯 题目传送门:https://leetcode.cn/problems/gray-code/ 数学公式intgray(intn){//计算第n位格雷码公式 returnn^(n>>1);}然后你写一个for循环,计算从1到n的所有格雷码,添加到答案数组。 动态规划算例给了n=2的解,有了n......