碎碎思 · 2021年12月07日

优秀的 Verilog/FPGA开源项目介绍(十)- H.264和H.265

H.264及H.265简介:

一、什么是H.265

H.265是ITU-TVCEG继H.264之后所制定的新的视频编码标准。H.265标准围绕着现有的视频编码标准H.264,保留原来的某些技术,同时对一些相关的技术加以改进。

新技术使用先进的技术用以改善码流、编码质量、延时和算法复杂度之间的关系,达到最优化设置。具体的研究内容包括:提高压缩效率、提高鲁棒性和错误恢复能力、减少实时的时延、减少信道获取时间和随机接入时延、降低复杂度等。H264由于算法优化,可以低于1Mbps的速度实现标清数字图像传送;H265则可以实现利用1~2Mbps的传输速度传送720P(分辨率1280*720)普通高清音视频传送。

H.265旨在在有限带宽下传输更高质量的网络视频,仅需原先的一半带宽即可播放相同质量的视频。这也意味着,我们的智能手机、平板机等移动设备将能够直接在线播放1080p的全高清视频。H.265标准也同时支持4K(4096×2160)和8K(8192×4320)超高清视频。可以说,H.265标准让网络视频跟上了显示屏“高分辨率化”的脚步。

二、什么是H.264

H.264,同时也是MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。这个标准通常被称之为H.264/AVC(或者AVC/H.264或者H.264/MPEG-4AVC或MPEG-4/H.264 AVC)而明确的说明它两方面的开发者。

H.264最大的优势是具有很高的数据压缩比率,在同等图像质量的条件下,H.264的压缩比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。举个例子,原始文件的大小如果为88GB,采用MPEG-2压缩标准压缩后变成3.5GB,压缩比为25∶1,而采用H.264压缩标准压缩后变为879MB,从88GB到879MB,H.264的压缩比达到惊人的102∶1。低码率(Low Bit Rate)对H.264的高的压缩比起到了重要的作用,和MPEG-2和MPEG-4ASP等压缩技术相比,H.264压缩技术将大大节省用户的下载时间和数据流量收费。尤其值得一提的是,H.264在具有高压缩比的同时还拥有高质量流畅的图像,正因为如此,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。

针对H.264编码格式,根据不同分辨率,推荐其对应的码率配置关系如下图所示:

宽屏 :
image.png

非宽屏 :
image.png

三、H.265与H.264有何不同

在讨论H.265有哪些提升和优点之前,我们不妨先来了解一下H.264。H.264也称作MPEG-4AVC(Advanced Video Coding,高级视频编码),是一种视频压缩标准,同时也是一种被广泛使用的高精度视频的录制、压缩和发布格式。H.264因其是蓝光光盘的一种编解码标准而著名,所有蓝光播放器都必须能解码H.264。更重要的是,因为苹果公司当初毅然决然抛弃了Adobe的VP6编码,选择了H.264,这个标准也就随着数亿台iPad和iPhone走入了千家万户,成为了目前视频编码领域的绝对霸主,占有超过80%的份额。H.264也被广泛用于网络流媒体数据、各种高清晰度电视广播以及卫星电视广播等领域。H.264相较于以前的编码标准有着一些新特性,如多参考帧的运动补偿、变块尺寸运动补偿、帧内预测编码等,通过利用这些新特性,H.264比其他编码标准有着更高的视频质量和更低的码率,也因此受到了人们的认可,而被广泛应用。

H.265/HEVC的编码架构大致上和H.264/AVC的架构相似,也主要包含:帧内预测(intra prediction)、帧间预测(inter prediction)、转换(transform)、量化(quantization)、去区块滤波器(deblocking filter)、熵编码(entropy coding)等模块。但在HEVC编码架构中,整体被分为了三个基本单位,分別是:编码单位(coding unit,CU)、预测单位(predict unit,PU)和转换单位(transform unit,TU)。
image.png

以上部分节选自《https://blog.csdn.net/weixin_42229404/article/details/84639538》,版权归原作者所有。

复旦大学H.264/H.265开源IP

H.265 Video Encoder IP Core 是开源的H.265硬件视频编码器,实现了H.265(或叫HEVC)的大部分功能。它由复旦大学专用集成电路与系统国家重点实验室(State Key Lab of ASIC & System,Fudan University)视频图像处理实验室(VIP Lab)范益波教授研究团队开发完成,并开放源代码。任何组织个人可以无偿使用上述代码用于研究和生产目的,VIP Lab将会持续更新并维护H.265硬件视频编码器的开发。

image.png

开源地址

www.openasic.org

上面有开源的IP core和仿真教程,同时在B站上还有官方的简介视频,这里我就不详细介绍了,因为我还没时间验证一下,有需求的朋友可以先看看视频,同时因为该网站需要登录才能下载,我也把下载下来的文件分享给大家,大家可以先预览一下,有兴趣或者问题可以注册一下会员,去网站上下载和留言,我看上面工作人员还是回答问题很快的。

链接:https://pan.baidu.com/s/1vrkI3TcYIlkxjz_OWNO1bw
提取码:1y9y

关于上板验证

网站上有相关的验证板卡代码,如下:
image.png

github上的开源H.265

开源地址:

https://github.com/tishi43/h265_decoder

用verilog和system verilog编写,在FPGA板上用Xilinx ZYNQ7035验证,运行最高225MHZ。

1. 内容

文件夹“src”包含所有解码源文件。文件夹“tb”包含测试台文件,ext_ram_32.v 使用 axi3 接口模拟 ddr。文件夹“pli_fputc”是verilog pli,用于在运行模拟时将输出bin写入文件。

2. 使用方法

模拟:将所有测试平台和源代码文件添加到您的模拟项目源中,例如modelsim。将测试文件 in.265 放到您的模拟项目文件夹中。然后运行,例如,对于modelsim,运行“vsim -pli pli_fputc.dll bitstream_tb”。输出是 out.yuv 和一些日志文件。

在 FPGA 板上运行:将“src”文件夹中的源文件添加到您的 FPGA 项目中。顶部文件是 decode_stream.sv。两个接口,stream_mem_xxx 用于将 H265 比特流馈送到解码器,

github上的开源H.264

开源地址:

https://github.com/aiminickwong/H264

无介绍

说明

第一个项目由复旦大学专用集成电路与系统国家重点实验室(State Key Lab of ASIC & System,Fudan University)视频图像处理实验室(VIP Lab)推出,不论项目完成度还是文档说明,都非常详细,同时上面给的是该项目的论坛,论坛上有相关工作人员维护,活跃度很高,适合去学习使用。

后面两个项目,碎碎并没验证过,但是感觉不怎么靠谱,README完整度不高,有兴趣的可以去看看。

最后,还是感谢各个大佬开源的项目,让我们受益匪浅。后面有什么感兴趣方面的项目,大家可以在后台留言或者加微信留言,今天就到这,我是爆肝的碎碎思,期待下期文章与你相见。

原文:OpenFPGA
作者:碎碎思

相关文章推荐

更多FPGA技术干货请关注FPGA 的逻辑技术专栏。
推荐阅读
关注数
10505
内容数
512
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息