首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    像素,分辨率,PPI(像素密度),BPP 扫盲

    BPP: 色彩深度计算机图形学领域表示在位图或者视频帧缓冲区中储存1像素的颜色所用的位数,它也称为位/像素(bpp)。色彩深度越高,可用的颜色就越多。

    2.7K10编辑于 2022-08-26
  • 来自专栏10km的专栏

    java:图像矩阵90,270度原地旋转的java实现

    */ public static void rotate90(byte[] input,int width,int height,int bpp) { if (input.length ! = width * height * bpp) { throw new IllegalArgumentException("INVALID INPUT SIZE"); } byte[] tmp , (I*width + J)*bpp, bpp, tmp); } } } /** * 图像顺时针旋转270度 * @param input * @param width bpp) { if (input.length ! , (I*width + J)*bpp, bpp, tmp); } } } /** * 对数据array中x和y指向的数据交换 * @param array * @param

    1.5K20发布于 2019-05-25
  • 来自专栏Linux驱动

    裸机LCD驱动配置

    5-1 #define HFPD _16bpp 11-1 #define HBPD _16bpp 17-1 #define VSPW _16bpp 1-1 #define VFPD _16bpp 2-1 #define VBPD _16bpp 4-1 设置LCDCON1寄存器: CLKVAL[17:8]: 设置VCLK时钟, CLKVAL , VSPW= VSPW_16bpp; 设置LCDCON3寄存器: HBPD[25:19]:水平脉冲后沿延时, HBPD= HBPD_16bpp; HOZVAL[18:8]:水平像素点个数, HBPD= )<<24) | (271<<14) |  ((VFPD_16bpp)<<6) |((VSPW_16bpp)<<0);  LCDCON3 = ((HBPD_16bpp)<<19) | (479<<8) | ((HFPD_16bpp));  LCDCON4 = (HSPW_16bpp);  LCDCON5 = (1<<11) | (1<<9) | (1<<8) |  (1<<0);  LCDCON1 &

    1.5K80发布于 2018-01-03
  • 来自专栏10km的专栏

    c++11:图像矩阵90,270度原地旋转的c++实现

    下面是实现代码(c++11),支持BPP为1,2,3,4字节的图像矩阵。 = sizeof(T)> inline typename std::enable_if<BPP == 1 || BPP == 2 || BPP == 4>::type _myswap(void*a, =width*height*bpp * @param width 图像宽度 * @param height 图像宽度 */ template<typename T, size_t BPP = sizeof >((uint8_t*)input + (i*height + j)*BPP , (uint8_t*)input+(I*width + J)*BPP); } } } /** * 将输入图像 顺时针原地旋转 ,-2 invalid argument */ int rotate270(void*input,int width,int height,int bpp) noexcept { switch (bpp

    1.4K10发布于 2019-05-25
  • 来自专栏韦东山嵌入式

    LCD屏幕操作原理_嵌入式Linux

    简单介绍 LCD 的操作原理: ① 驱动程序设置好 LCD 控制器: 根据 LCD 的参数设置 LCD 控制器的时序、信号极性; 根据 LCD 分辨率、BPP 分配 Framebuffer。 )处像素的颜色,首要要找到这个像素对应的内存,然后根据它的 BPP 值设置颜色。 它是用 RGB 三原色(红、绿、蓝)来表示的,在不同的BPP 格式中,用不同的位来分别表示 R、G、B,如下图所示: 对于 32BPP,一般只设置其中的低 24 位,高 8 位表示透明度,一般的 对于 24BPP,硬件上为了方便处理,在 Framebuffer 中也是用 32 位来表示,效果跟 32BPP 是一样的。 对于 16BPP,常用的是 RGB565;很少的场合会用到 RGB555,这可以通过 ioctl 读取驱动程序中的 RGB位偏移来确定使用哪一种格式。

    2.8K10编辑于 2022-05-05
  • 来自专栏嵌入式开发圈

    图解LCD硬件原理 && 调色板与Framebuffer原理

    可以通过调整四边黑框调整屏幕边框 BPP(bit per pixel) BPP:在FrameBuffer中每个像素占据多少位, 硬件上LCD的BPP是确定的 但是可以对LCD进行封装 16条线,每个像素占 16位数据,16BPP ? :把时序告诉LCD控制器,设置引脚的极性 BLOCK DIAGRAM 16BPP 调色板[ palette] 本质:内存 16BPP中,本来用16bit表示1像素,也可用利用调色板,用8位表示;8BPP :伪彩色;16/24BPP:真彩色。 用16bpp还是8bpp这得取决实际情况,16bpp肯定比8pp清晰,但同时带来的负荷也更加重。

    2.3K31发布于 2021-07-07
  • 来自专栏全栈程序员必看

    FFMPEG 实现 YUV,RGB各种图像原始数据之间的转换(swscale)

    PIX_FMT_BGR24, ///< packed RGB 8:8:8, 24bpp, BGRBGR... 12bpp, (1 Cr & Cb sample per 4x1 Y samples) PIX_FMT_GRAY8, ///< Y , 8bpp 4:4:4 27bpp, little endian PIX_FMT_GBRP10BE, ///< planar GBR 4:4:4 30bpp, big endian PIX_FMT_GBRP10LE , ///< planar GBR 4:4:4 30bpp, little endian PIX_FMT_GBRP16BE, ///< planar GBR 4:4:4 48bpp, big PIX_FMT_RGB0, ///< packed RGB 8:8:8, 32bpp, RGB0RGB0...

    3.6K10编辑于 2022-09-13
  • 来自专栏java开发的那点事

    JQuery生成图片列表

    生成图片列表</title> 5 <style type="text/css"> 6 *{ margin: 0px; padding: 0px; } 7 .bpp4 padding-left: 10px; padding-bottom: 10px; border: 1px solid #333333; margin: 30px auto; } 8 .bpp4 height: 128px; margin-top: 10px; margin-right: 10px; float: left; transition: all .1s; } 9 .bpp4 /jquery-3.4.1.min.js"></script> 13 14 </head> 15 <body> 16

    17 18
    19 20 < ").append("
    "); 27 } 28 // 遍历元素 29 $(".bpp4 div").each(function(i){

    9.7K20发布于 2020-09-30
  • 来自专栏韦东山嵌入式

    第017课 LCD原理详解及裸机程序分析

    如果是16BPP/24BPP需要修改FB里面的数据,填充同一个值。 对于32BPP,大多数情况下和24BPP差不多的,即RGB:888,每个颜色占8位,一共占据24位。 那前面的24BPP、32BPP是怎样在 只能接收16BPP(硬件上只有16根数据线)的LCD上显示的呢? 16bpp */ unsigned int *pdw; /* 32bpp */ unsigned int pixel_base = fb_base + (xres * bpp / 或者24BPP(也就是32BPP),假如我们要使用8PP,就得使用调色板。

    1.7K41发布于 2020-09-30
  • 来自专栏JAVA

    Spring的AOP应用--基于注解的多线程

    = null) { bpp.setExecutor(this.executor); } // 异常处理器 if (this.exceptionHandler ! = null) { bpp.setExceptionHandler(this.exceptionHandler); } // 代理方式 bpp.setProxyTargetClass(this.enableAsync.getBoolean ("proxyTargetClass")); // 排序 bpp.setOrder(this.enableAsync. = null) { bpp.setExceptionHandler(this.exceptionHandler); } // 代理方式 bpp.setProxyTargetClass(this.enableAsync.getBoolean ("proxyTargetClass")); // 排序 bpp.setOrder(this.enableAsync.

    36810编辑于 2024-11-22
  • 来自专栏腾讯IMWeb前端团队

    深入探索视频帧中的颜色空间—— RGB 和 YUV

    ,   ///< packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr   AV_PIX_FMT_YUYV422,   ///< planar YUV 4:2:2, 16bpp, AV_PIX_FMT_RGB24,   ///< packed RGB 8:8:8, 24bpp, BGRBGR...    AV_PIX_FMT_ARGB,   ///< packed RGBA 8:8:8:8, 32bpp, RGBARGBA...    AV_PIX_FMT_RGBA,   ///< packed ABGR 8:8:8:8, 32bpp, ABGRABGR...    在 FFmpeg 的源码中也可以看到 16bpp、24bpp 和 32bpp 的注释说明。

    2.6K10编辑于 2022-06-29
  • 来自专栏人工智能

    神经压缩的率失真-感知权衡理论新进展

    = target_bpp / 0.5 # 假设0.5bpp为参考 quality_factor = target_quality / 0.9 # 假设0.9质量分数为参考 psnr = 28 + 18 * (1 - np.exp(-bpp * 1.5)) ms_ssim = 0.85 + 0.12 * (1 - np.exp( -bpp * 2)) else: # 传统方法 bpp = np.linspace(0.3, 2.0 'bpp': bpp, 'psnr': psnr, 'ms_ssim': ms_ssim } method_data = data[dataset][method] idx = np.argmin(np.abs(method_data['bpp'] - target_bpp

    24210编辑于 2025-11-21
  • 来自专栏独行猫a的沉淀积累总结

    ucgui在windows上的移植,及为go语言打造简易跨平台GUI的想法

    ); } /********************************************************************* * * _DrawBitLine1BPP */ static void _DrawBitLine1BPP(int x, int y, U8 const*p, int Diff, int xsize, const LCD_PIXELINDEX* } } /********************************************************************* * * _DrawBitLine2BPP */ #if (LCD_BITSPERPIXEL > 8) static void _DrawBitLine16BPP(int x, int y, U16 const * p, int xsize) */ #if (LCD_BITSPERPIXEL > 16) static void _DrawBitLine24BPP(int x, int y, U32 const * p, int xsize)

    1.5K20发布于 2020-08-04
  • 来自专栏Coder小黑

    Spring中@Import的各种用法以及ImportAware接口

    this.enableAsync, "@EnableAsync annotation metadata was not injected"); AsyncAnnotationBeanPostProcessor bpp = null) { bpp.setExecutor(this.executor); } if (this.exceptionHandler ! = null) { bpp.setExceptionHandler(this.exceptionHandler); } bpp.setProxyTargetClass(this.enableAsync.getBoolean ("proxyTargetClass")); bpp.setOrder(this.enableAsync. <Integer>getNumber("order")); return bpp; } } 在ProxyAsyncConfiguration的asyncAdvisor方法中需要获取到@EnableAsync

    1.6K30发布于 2019-12-18
  • 来自专栏A周立SpringCloud

    Spring中@Import的各种用法以及ImportAware接口

    this.enableAsync, "@EnableAsync annotation metadata was not injected"); AsyncAnnotationBeanPostProcessor bpp = null) { bpp.setExecutor(this.executor); } if (this.exceptionHandler ! = null) { bpp.setExceptionHandler(this.exceptionHandler); } bpp.setProxyTargetClass(this.enableAsync.getBoolean ("proxyTargetClass")); bpp.setOrder(this.enableAsync. <Integer>getNumber("order")); return bpp; } } 在ProxyAsyncConfiguration的asyncAdvisor方法中需要获取到@EnableAsync

    64610发布于 2020-06-17
  • 来自专栏Eureka的技术时光轴

    Bitmap与IplImage之间的转换

    } else return NULL; } void FillBitmapInfo( BITMAPINFO* bmi, int width, int height, int bpp , int origin) { assert( bmi && width >= 0 && height >= 0 && (bpp == 8 || bpp == 24 || bpp == 32)) abs(height) : -abs(height); bmih->biPlanes = 1; bmih->biBitCount = (unsigned short)bpp; bmih ->biCompression = BI_RGB; if( bpp == 8 ) { RGBQUAD* palette = bmi->bmiColors;

    1.4K50发布于 2019-07-24
  • 来自专栏AI科技大本营的专栏

    如何让渣画质图片达到逼真效果,试试GAN吧

    对相近的 bpp,我们的方法明显更受青睐。平均来看,我们的方法只在比特率增大一倍时比就会比 BPG 略逊一筹。  表 2 ADE20k 的用户调查定量偏好结果(%),对相近 bpp,我们的方法更受欢迎。 ▲表 3 Kodak 的用户调查定量偏好结果(%),bpp 为 0.065 时我们的方法比 BPG 更受欢迎,比特率下降了 45%。 如果一个编解码器不能产生 0.036bpp 的输出,我们就为该编解码器选择可用的最低比特率。 ▲图 7 用 SC 网络集合不同类别,C=8。 右图是可支持的最低 bpp 下的 BPG 图像。 ▲图 9 SC 网络得到的示例图(C=8),保存一个箱形区,其他区域进行合成。

    97390发布于 2018-04-26
  • 来自专栏Pulsar-V

    Ubuntu Linux下通过c++获取屏幕大小

    sys/stat.h> #include <fcntl.h> #include <linux/fb.h> #include <sys/mman.h> #include <math.h> int w,h ,bpp open("/dev/fb0",O_RDWR); ioctl (fd,FBIOGET_VSCREENINFO,&fb_var); w = fb_var.xres; h = fb_var.yres; bpp = fb_var.bits_per_pixel; printf ("Framebuffer %d*%d-%dbpp\n",w,h,bpp); fbmem = mmap (0,w*h*bpp/8,PROT_WRITE

    4.3K60发布于 2018-04-18
  • 来自专栏韦东山嵌入式

    15_LCD编程

    << 8) | (1 << 5) ; /* [3]当bpp为16时,数据格式为ARGB555*/ if(plcdparams->bpp == 16) { LCDIF->CTRL |= 1<<3; } 15.5.4.2 ②设置LCDIF_CTRL1n寄存器 if(plcdparams->bpp == 24 || plcdparams->bpp == 32) { ->bpp; } ​ 获取显存地址fb_base,获取分辨率xres和yres,获取bpp即每个像素点所占的位数。 ); } ③在获取LCD资源参数之后,当bpp是32位的时候,可以直接往对应显存位置填颜色值,但是当bpp等于16位时候,我们就需要一些转换,让32位颜色数据变成16位颜色数据,由于16bpp我们使用的是 x * bpp / 8; switch (bpp) { case 16: pw = (unsigned short *) pixel_base; *pw = convert32bppto16bpp

    1.6K30编辑于 2022-05-05
  • 来自专栏C#开发点点滴滴

    图像简单处理

    = 32) { throw new ArgumentException("Only 8, 24 and 32 bpp images cCount) throw new IndexOutOfRangeException(); if (Depth == 32) // For 32 bpp clr = Color.FromArgb(a, r, g, b); } if (Depth == 24) // For 24 bpp specified pixel int i = ((y * Width) + x) * cCount; if (Depth == 32) // For 32 bpp color.R; Pixels[i + 3] = color.A; } if (Depth == 24) // For 24 bpp

    2.9K40发布于 2020-08-31
领券