参考例子:https://www.grc.com/ctwhat.htm

https://en.wikipedia.org/wiki/Subpixel_rendering

http://archernzy.blogspot.com/2017/03/sub-pixel-rendering.html

1, SPR的一些缺点

(1)只能用在LCD上,不可用在CRT上

这是显而易见的,因为SPR基于子像素重新排列,而CRT是不能以子像素为单位操作的

(2)黑色或白色,即强对比度的时候效果最好

(3)仅在水平方向起作用

因为SPR使用相邻子像素扩展当前Pattern

(4)对子像素顺序敏感

需判断子像素是RGB还是BGR,否则可能把R/B判断混乱

2, SPR基本思想

The idea behind sub-pixel rendering is to use an LCD display's directly addressable sub-pixels to triple the effective horizontal resolution of the display.

3, SPR的来源

每个像素一般情况下是由RGB三原色组成,每个像素上的每种颜色叫一个"子像素"。 子像素
在家用电视上我们常常说到"真4K"和"假4K"。其中"真4K"采用的面板一般是3840x2160x3个子像素。从前面介绍LCD我们知道面板上通常采用CF(Color Filter)得到不同颜色的光,因此一种想法就是构造RGBW这样的4色子像素结构,即2880*2160*4。这样从色彩的角度来看,每个颜色的分量都减少了1/4,但是亮度上来说,由于增加了一份W,因此RGBW整体效果看起来会明亮很多。由于颜色分量的减少,因此为了

由于人们对子像素的深入了解,这里主要的研究算法为:

基于色彩转换的RGB<-->RGBW,由于颜色分量的减少,为了正确显示颜色,就需要有RGBW算法。

基于子像素减少的Sub pixel Rendering,为了弥补像素的减少,让3个子像素表示原有4个像素的效果。

4, RGB, EGBW, Pentile RGBG, RGB Delta子像素排列

(1) RGB

(2) RGBW

RGBW主要是增加了W子像素,不仅可以提高面板的整体亮度表现,同时也可以达到节约成本的目的。主推RGBW面板的包含韩国的LGD的M+以及日本JDI的WhiteMagic。

(3) Pentile RGBG

Pentile RGBG是由Samsung所主导的在AMOLED上的Pentile排布中的一种,由于专利问题,目前国内的各大厂商都无法生产RGBG排布的面板。

(4) RGB Delta

由于专利问题,目前国内各大厂商只能生产RGB delta排布的面板。

(5) Pentile RGBG vs. RGB Delta

同样表示2行3列共6个像素
  • 采用RGBdelta结构,一共使用了4个完整的RGB单元,相当于节省了1/3的子像素,共12个子像素;
  • 采用RGBG的结构,一共使用了6个不完整的RGB单元,每个单元分别包含RG或者BG2分量的子像素,子像素个数为12个;
可见,RGBG针对不同的分量的取舍不一样,更多的保留了G子像素,人眼对G分量最敏感,因此从这个角度上来看RGBG似乎是一种更优的结构。

SPR, subpixel rendering的更多相关文章

  1. CSS Animation triggers text rendering change in Safari

    薄荷新首页上周五内测,花哥反馈在 MacBook Safari 浏览器下 鼠标移动到第一个商品的时候后面几个商品的文字会加粗.这是什么鬼??? 待我回到家打开笔记本,鼠标蹭蹭蹭的发现问题远不止如此: ...

  2. #IrrlichtEngine# Example1 HelloWorld

    配置IDE环境来使用irrlicht引擎: (VS2012下)菜单栏项目 -> 项目属性窗口下 C/C++ -> 常规 -> 附加包含目录中添加irrlicnt引擎文件目录下incl ...

  3. Perfect smooth scrolling in UITableViews

    https://medium.com/ios-os-x-development/perfect-smooth-scrolling-in-uitableviews-fd609d5275a5 Diffic ...

  4. 提高HTML5 canvas性能的几种方法

    简介 HTML5 canvas 最初起源于苹果(Apple)的一项实验,现在已经成为了web中受到广泛支持的2D快速模式绘图(2Dimmediate mode graphic)的标准.许多开发者现在利 ...

  5. 〖Linux〗Kubuntu14.04 平滑字体的设置

    有没有感觉终端的字体锯齿感觉非常强? 经过搜索后发现可以平滑字体显示得更漂亮一点: System Settings > Application Appearance > Fonts I e ...

  6. Real Time Rendering 2

    [Real Time Rendering 2] 1.The light vector l is usually defined pointing in a direction opposite to ...

  7. Method for sub-pixel texture mapping and filtering

    BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for ...

  8. 【原】实时渲染中常用的几种Rendering Path

    [原]实时渲染中常用的几种Rendering Path 本文转载请注明出处 —— polobymulberry-博客园 本文为我的图形学大作业的论文部分,介绍了一些Rendering Path,比较简 ...

  9. Forward+ Rendering Framework

    近几天啃各种新技术时又一个蛋疼的副产品...额,算是把AMD的Forward+ Sample抄了一遍吧. 其实个人感觉这个AMD大肆宣传的Forward+跟Intel很早之前提的Tiled-Based ...

随机推荐

  1. 「CSP-S 2019」树的重心

    题目 考场上送\(75pts\)真实良心,正解不难:考虑直接对于每一个点算割掉多少条边能使得这个点成为重心,不难发现对于一个不是重心的点,我们要割掉的那条边一定在那个大于\(\lfloor \frac ...

  2. 【第十周读书笔记】读node入门,一本全面的node.js教程

    我学到了路由的定义,路由就是解析URL然后转到相应的执行程序. 我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相应的代码(这里“代码”对应整个应用的第三部 ...

  3. 笔记41 Spring Web Flow——Demo

    订购披萨的应用整体比较比较复杂,现拿出其中一个简化版的流程:即用户访问首页,然后输入电话号(假定未注册)后跳转到注册页面,注册完成后跳转到配送区域检查页面,最后再跳转回首页.通过这个简单的Demo用来 ...

  4. Echart中X轴为时间坐标刻度时,后台返回时间List被强制转化为时间戳问题

    if(recordlist!=null&&recordlist.size()>0) { for (Record record : recordlist) { //根据频次决定使用 ...

  5. Wordpress 文章编辑页面添加 metabox

    add_meta_box($id,$title,$callback,$screen,$context:,$priority); 参数 $id (字符串)(必需)Meta模块的 HTML"ID ...

  6. dubbo入门之服务消费

    今天,我们来看看dubbo消费的执行过程 首先,我们都知道dubbo是一个基于netty实现的RPC框架,底层通信是使用netty来实现的.在学习dubbo的时候,或许我们都会有下面的这些疑惑: 1. ...

  7. 通过js渲染高层级DOM实现网页加水印

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. leetcood学习笔记-172-阶乘后的0

    题目描述: 方法:不断除以 5, 是因为每间隔 5 个数有一个数可以被 5 整除, 然后在这些可被 5 整除的数中, 每间隔 5 个数又有一个可以被 25 整除, 故要再除一次, ... 直到结果为 ...

  9. (getElementBy**)与 querySelector(querySelectorAll) 的区别

    1. 通过类似于 document.getElementByTagName('div') 这种方式获取到的类数组,无法通过 forEach 进行遍历(可以通过for循环):而通过document.qu ...

  10. NX二次开发-创建一个3 x 3矩阵UF_CSYS_create_matrix

    1 NX9+VS2012 #include <uf.h> #include <uf_csys.h> #include <uf_mtx.h> UF_initializ ...