前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于FPGA的比特平面分层

基于FPGA的比特平面分层

作者头像
FPGA开源工作室
发布2019-10-29 10:34:31
5370
发布2019-10-29 10:34:31
举报
文章被收录于专栏:FPGA开源工作室FPGA开源工作室

基于FPGA的比特平面分层

1 背景知识

像素是由比特组成的数字。例如,在256级灰度图像中,每个像素的灰度是由8比特(也就是1个字节)组成。一幅8比特图像可以认为由8个1比特平面组成,如图1所示,其中平面1包含图像中所有像素的最低阶比特,而平面8包含图像中所有像素的最高阶比特。

图1 8比特图像8层示意

把一幅图像分解为比特平面,对于分析图像中每个比特的相对重要性是很有用的,这一处理可帮助我们确定用于量化该图像的比特数的充分性。

2 FPGA实现

图2 FPGA内部模块结构框图

FPGA源码:

//------------------------------------------------------------------------------------------------------

// layer

//------------------------------------------------------------------------------------------------------

//assign TFT_rgb = {o_y_8b[7],4'b0,o_y_8b[7],5'b0,o_y_8b[7],4'b0}; //Y The eighth layer

//assign TFT_rgb = {o_y_8b[6],4'b0,o_y_8b[6],5'b0,o_y_8b[6],4'b0}; //Y The seventh layer

//assign TFT_rgb = {o_y_8b[5],4'b0,o_y_8b[5],5'b0,o_y_8b[5],4'b0}; //Y The sixth layer

//assign TFT_rgb = {o_y_8b[4],4'b0,o_y_8b[4],5'b0,o_y_8b[4],4'b0}; //Y The fifth layer

//assign TFT_rgb = {o_y_8b[3],4'b0,o_y_8b[3],5'b0,o_y_8b[3],4'b0}; //Y The fourth layer

//assign TFT_rgb = {o_y_8b[2],4'b0,o_y_8b[2],5'b0,o_y_8b[2],4'b0}; //Y The third layer

//assign TFT_rgb = {o_y_8b[1],4'b0,o_y_8b[1],5'b0,o_y_8b[1],4'b0}; //Y The second layer

assign TFT_rgb = {o_y_8b[0],4'b0,o_y_8b[0],5'b0,o_y_8b[0],4'b0}; //Y The first layer

实验结果:

图3 实验原图

图4 The eighth layer

图5 The seventh layer

图6 The sixth layer

图7 The fifth layer

图8 The fourth layer

图9 The third layer

图10 The second layer

图11 The first layer

结果分析:

对于图3中(x,y)点的灰度值由8比特层平面相应点组成。灰度图像的分层对图像压缩很有作用,在图像压缩中,重建一幅图像时所用的平面要比全部平面少。

图12 灰度图像重建

图12 a使用比特平面8和7重建的图像;b使用比特平面8,7和6重建的图像;c使用比特8,7,6和5重建的图像。将图c与图a进行对比。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA开源工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档