一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

压缩和解压缩显示补偿亮度不匀的补偿数据的方法和系统与流程

2022-05-12 02:13:58 来源:中国专利 TAG:


1.本公开总体上涉及显示技术,更具体地,涉及显示数据处理。


背景技术:

2.在显示技术中,“mura”是指显示屏的亮度不匀,导致显示质量下降。“demura”指的是补偿亮度不匀的过程。根据显示屏的物理特性,生成补偿数据,补偿显示屏上显示的像素数据。补偿数据通常以查找表的形式排列,查找表存储在存储器中,例如闪存中。补偿数据通常在显示过程中先进行压缩,然后再进行解压缩,以减少存储器中的存储空间。


技术实现要素:

3.本公开大体上涉及显示技术,且更具体而言,涉及用于补偿亮度不匀的补偿数据的压缩和解压缩。
4.在一个例子中,显示系统包括具有多个像素的显示器、处理器和可操作地耦合到显示器和处理器的控制逻辑。处理器包括配置为生成所述像素数据的多个像素数据片的图形管道和配置为生成所述像素数据的多个补偿数据片并压缩所述补偿数据的预处理模块。补偿数据的压缩包括以下操作。首先,在补偿数据的基础上,确定多个量化的下采样补偿数据。量化的下采样补偿数据的大小小于补偿数据的大小。将量化后的下采样补偿数据转换为m个索引数据单元。m为大于1且小于量化的下采样补偿数据的大小的正整数。索引数据的m个单元被转换成m个码流。控制逻辑包括一个后处理模块,所述后处理模块配置为基于m码流解压缩补偿数据,以提供驱动显示的控制信号。
5.在另一个例子中,提供了一种对显示补偿数据进行压缩和解压缩的方法。该方法包括以下操作。首先,生成用于显示的像素数据的多个补偿数据片。补偿数据可以通过以下操作进行压缩。根据补偿数据确定多个量化的下采样补偿数据,量化的下采样补偿数据的大小小于补偿数据的大小。将量化后的下采样补偿数据转换为m个索引数据单元,m为大于1且小于量化后的下采样补偿数据大小的正整数。索引数据的m个单元被转换成m个码流。补偿数据根据m码流进行解压缩,以提供驱动显示的控制信号。
6.在另一个例子中,一种存储一组指令的非临时计算机可读介质,当由至少一个处理器执行时,使至少一个处理器决定一种对显示的补偿数据进行压缩和解压缩的方法。该方法包括以下操作。首先,生成用于显示的像素数据的多个补偿数据片。补偿数据可以通过以下操作进行压缩。根据补偿数据确定多个量化的下采样补偿数据,量化的下采样补偿数据的大小小于补偿数据的大小。将量化后的下采样补偿数据转换为m个索引数据单元,m为大于1且小于量化后的下采样补偿数据大小的正整数。索引数据的m个单元被转换成m个码流。补偿数据根据m码流进行解压缩,以提供驱动显示的控制信号。
附图说明
7.当结合以下附图时,根据以下描述,将更容易理解实施例,其中,相同的附图标记
表示相同的元件,其中:
8.图1示出一种装置的框图,所述装置包括根据本发明的一个实施例的显示和控制逻辑。
9.图2a-2c示出图1所示的显示器的各种实施例的侧视示意图。
10.图3示出根据的图1所示的包括多个驱动器显示器的实施例的平面图;
11.图4a示出根据实施例中显示器、控制逻辑和处理器所述的系统框图;
12.图4b示出根据实施例图4a所示处理器中预处理模块一个示例的详细框图;
13.图4c示出根据实施例图4a中所示的处理器中后处理模一个示例的详细框图。
14.图5a是根据实施例显示屏的下采样操作示意图。
15.图5b示出了根据实施例的以示例性顺序的多个示例性下采样补偿数据;
16.图5c示出了根据本发明中实施例的多个示例性量化值。
17.图5d示出了根据一个实施例示例性特定范围量化方法。
18.图5e示出了根据一个实施例示例性多个量化的下采样补偿数据片。
19.图5f示出了按照一个实施例示例性顺序量化的多个下采样补偿数据片。
20.图5g示出了根据一个实施例示例性地形成基本查找表(ibl)数据的索引。
21.图5h示出了根据一个实施例分割以形成ibl数据的m个单元的例子。
22.图5i示出了根据本发明的示例性顺序的多个ibl值。
23.图5j示出了根据一个实施例形成初始码流的例子。
24.图5k示出了根据一个实施例的示例性的压缩补偿数据结构。
25.图6a示出了根据一个实施例的形成ibl数据的例子。
26.图6b说明了根据一个实施例形成量化下采样补偿数据的例子。
27.图6c示意性地说明了根据本发明的一个实施例的显示屏上的上采样操作。
28.图7a和7b示出了根据本发明的实施例的显示屏上的上采样操作;图7a和7b说明了根据一个实施例的显示屏中压缩补偿数据的方法的流程图;以及
29.图8示出了根据本发明的一个实施例的显示屏中的补偿数据解压方法的流程图。
具体实施方式
30.在下面的详细描述中,通过示例的方式阐述了许多具体细节,以便提供对相关公开文件的透彻理解。然而,对于本领域技术人员而言显而易见的是,本公开可以在没有此类细节的情况下进行。在其他情况下,为了避免不必要地混淆本公开的各个方面,已经在相对较详细的情况下描述了所公知的方法,过程,系统,组件和/或电路。
31.在整个说明书和权利要求书中,所用术语在上下文中所隐含的含义可能与明确表达的含义有所不同。同样,此处是用的短语“在一个实施例/举例中”并不一定指同一个实施例,此处使用的短语“在另一个实施例/示例中”并不一定指另一个实施例。例如,旨在要求保护的主题全部或部分地包括示例实施例的组合。
32.一般而言,术语至少可以部分的从上下文的应用中得到理解。例如,本文所使用的诸如“和”,“或”或“和/或”之类的术语可以包括多种含义,其可以至少部分地取决于使用这些术语的上下文。通常,“或”如果用于关联一个列表,例如a、b或c,如果使用的是包容性的意义,则是a、b和c,如果这里使用的是排他性意义,则是a、b或c。另外,本文所使用的术语“一个或多个”至少部分地取决于上下文,可以用于表示单数的任何特征、结构或特性,或者也可以用于描述多个特征、结构或特性的组合。类似地,至少部分地取决于上下文,诸如“一个”、“一种”或“该”之类的术语可以理解为表达单个或多个的含义。另外,“基于”一词可被理解为不一定要表达一种排他性的因素,而可能允许存在于写不一定要明确说明的其他因素,同样的,至少在一定程度取决于上下文。
33.正如将在下文中详细公开的那样,在其他新颖特征中,本公开的显示系统、装置和方法可以有效地减小用于补偿显示屏的显示非均匀性(例如,由例如制造非均匀性引起的"mura")的补偿数据的大小。补偿数据可以被压缩,从而提高了效率和精度。用于将压缩后的补偿数据存储在存储器(例如,闪存)中的存储空间较少。与传统的方法相比,使用本公开的数据压缩方法,用于传输压缩后的补偿数据的带宽可以减少。
34.根据本公开的实施例,补偿数据经过多次压缩操作,显著地减小了补偿数据的大小。在该过程开始时,对补偿数据进行下采样,例如,以大于1的系数进行下采样,减小了补偿数据的大小。然后对下采样的补偿数据进行量化,使至少两块下采样的补偿数据的量化值相同,进一步减小补偿数据的大小。将量化后的下采样补偿数据进一步转换为索引数据,该索引数据只包括非负整数,且范围比量化后的下采样补偿数据小。由于量化后的下采样补偿数据往往包括负值和正值,并且具有相对任意的分布,因此,将量化后的下采样补偿数据转换为索引数据可以进一步减小补偿数据的大小。然后,将索引数据分成m个单元,并转换为m个二进制码流(例如,位),进一步减小量化的下采样补偿数据。在一些实施例中,下采样和量化操作是有损数据压缩。在一些实施例中,从量化的下采样补偿数据到索引数据的转换和从索引数据到码流的转换包括无损数据压缩。压缩后的补偿数据,包括码流和用于解压缩补偿数据的其他数据,可以存储在闪存中。在一些实施例中,补偿数据的压缩,即,下采样、量化和转换由处理器(或应用处理器(ap))执行。
35.对存储的压缩补偿数据进行访问和解压缩形成解压缩补偿数据。首先将m码流转换为相应的索引数据。然后将索引数据转换为相应的量化下采样补偿数据。由于在数据压缩中采用的转换是无损数据压缩,因此,在解压缩操作中形成的量化的下采样补偿数据与在压缩操作中转换前的量化的下采样补偿数据完全相同。在一些实施例中,在解压缩操作中的转换操作是压缩操作中的转换操作的各自的反向操作。量化的下采样补偿数据进一步上采样,通过下采样的相同系数,形成解压缩补偿数据,该解压缩补偿数据具有与补偿数据(或压缩和解压缩操作前的原始补偿数据)相同的大小。在一些实施例中,对压缩后的补偿数据的解压缩,即转换和上采样,由控制逻辑(或显示驱动集成电路(ddic))执行。
36.其他的新颖特征将在下面的描述中部分地阐述,对于本领域的普通技术人员来说部分显而易见,通过阅读下面内容和附图或者通过生产或操作本发明的实施例来了解。本公开的新颖特征可以通过实践或使用下面讨论的详细实施例中所述的方法、工具和组合的各方面来实现和达到。
37.为便于描述,如本文所使用的,"一块数据"或类似于此类描述指的是一组数据(例如,补偿数据或显示数据),该数据可以包括一个或多个值。例如,在本公开中"补偿数据片"指用于补偿一个像素的任意数量的值。该补偿数据片可以包括用于补偿一个子像素的至少一个值。当一个数据片包括一个值时,"数据片"和"值"可互换。例如,当补偿数据片仅包括一个值时,该补偿数据片也可称为补偿值,或类似于补偿值。补偿数据片中包含的具体数值
的数量不应受到限制。
38.图1示出了一种装置100,包括显示装置102和控制逻辑104。装置100可以是任何合适的设备,例如,vr/ar设备(例如,vr耳机等)、手持设备(例如,功能机或智能手机、平板电脑等)、可穿戴设备(例如,眼镜、腕式手表等)、汽车控制台、游戏机、电视机、笔记本电脑、台式电脑、上网本电脑、媒体中心、机顶盒、全球定位系统(gps)、电子广告牌、电子指示牌、打印机或任何其他合适的设备。在本实施例中,显示器102可操作性地耦合到控制逻辑104,并且是装置100的一部分,例如但不限于头戴式显示器、计算机显示器、电视屏幕、电视屏幕、仪表板、电子广告牌或电子标志。显示器102可以是oled显示器、液晶显示器(lcd)、e-ink显示器、电致发光显示器(eld)、具有led或白炽灯的电子广告牌显示器、或任何其他合适类型的显示器。
39.控制逻辑104可以是任何合适的硬件、软件、固件或其组合,被配置为接收显示数据106(例如,像素数据和补偿数据)并产生控制信号108以驱动显示器102上的子像素。控制信号108用于控制向子像素写入显示数据,并指导显示器102的操作。例如,用于各种子像素排列的子像素渲染算法可以是控制逻辑104的一部分或由控制逻辑104实现。控制逻辑104可以包括任何其他合适的组件,例如编码器、解码器、一个或多个处理器、控制器和存储设备。控制逻辑104可以作为独立的集成电路(ic)芯片来实现,例如特定于应用的集成电路(asic)或现场可编程门阵列(fpga)。装置100还可以包括任何其他合适的组件,例如但不限于跟踪装置110(例如,惯性传感器、摄像头、眼球跟踪器、gps或任何其他合适的用于跟踪眼球运动、面部表情、头部运动、身体运动和手势的运动的装置)和输入装置112(例如,鼠标、键盘、遥控器、手写装置、麦克风、扫描仪等)。
40.在该实施例中,设备100可以是手持设备或vr/ar设备,诸如智能电话,平板电脑或vr头戴式耳机。装置100还可以包括处理器114和存储器116。处理器114可以是例如图形处理器(例如,图形处理单元(gpu)),应用处理器(ap),通用处理器(例如,apu,加速器)。处理单元;gpgpu,gpu上的通用计算)或任何其他合适的处理器。存储器116可以是例如离散帧缓冲器或统一存储器。处理器114被配置为在显示帧中生成显示数据106,并且可以在将显示数据106发送给控制逻辑104之前将其临时存储在存储器116中。处理器114还可以生成其他数据,例如但不限于控制指令118或测试。信号,并将它们直接或通过存储器116提供给控制逻辑104。然后,控制逻辑104从存储器116或直接从处理器114接收显示数据106。在一些实施例中,没有控制指令118直接从处理器114传输到控制逻辑104。在一些实施例中,可以压缩从处理器114传输到存储器116和/或从存储器116传输到控制逻辑104的补偿数据。
41.在一些实施例中,控制逻辑104是装置100的一部分,处理器114是装置100的外部装置的一部分,存储器116是用于存储由处理器114计算的数据的外部存储装置。存储在处理器114中的数据可被输入到控制逻辑104中以进行进一步处理。在一些实施例中,不将控制指令118从处理器114传送到控制逻辑104。例如,装置100可以是智能手机或平板电脑,而控制逻辑104可以是装置100的一部分。处理器114可以是与装置100/控制逻辑104不同的外部计算机的一部分。显示数据106可以包括由处理器114计算并从处理器114传输到控制逻辑104的任何合适的数据。例如,显示数据可以包括压缩补偿数据。在一些实施例中,显示数据106不包括像素数据。存储器116可以包括存储由处理器114处理的压缩补偿数据的闪存驱动器。存储器116可以耦合到控制逻辑104以将压缩补偿数据输入到装置100中,这样,控
制逻辑104可以对压缩补偿数据进行解压缩,并产生相应的控制信号108,用于显示器102。
42.图2a示出显示器102的一个实施例的侧视图,该侧视图包括子像素202、204、206和208。显示器102可以是任何合适的类型的显示器,例如,oled显示器,例如有源矩阵oled(amoled)显示器,或任何其他合适的显示器。显示器102可以包括显示屏210,其可操作性地耦合到控制逻辑104。图2a所示的例子示出了一个并排(又称侧向发射器)oled颜色图案化架构,其中一种颜色的发光材料通过金属掩膜沉积,而其他颜色区域被掩膜遮挡。
43.在本实施例中,显示屏210包括发光层214和驱动电路层216。如图2a所示,发光层214包括多个发光元件(例如,oled)218、220、222和224,分别对应于多个子像素202、204、206和208。图2a中的a、b、c和d表示不同颜色的oled,例如但不限于,红色、绿色、蓝色、黄色、青色、品红或白色。如图2a所示,发光层214还包括布置在oled 218、220、222和224之间的黑色阵列226。黑色阵列226作为子像素202、204、206和208的边界,用于阻挡从oled 218、220、222和224外侧的部件发出的光线。发光层214中的每个oled 218、220、222和224可以发出预定颜色和亮度的光。
44.在本实施例中,驱动电路层216包括多个像素电路228、230、232和234,其中每个像素电路228、230、232和234包括一个或多个薄膜晶体管(tft),分别对应于oled的子像素202、204、206和208的oled218、220、222和224。像素电路228、230、232、和234可分别由来自控制逻辑104的控制信号108寻址,并根据控制信号108,通过控制从各自的oled218、220、222和224发出的光,配置成驱动相应的子像素202、204、206和208。驱动电路层216可进一步包括一个或多个驱动器(未示出),该驱动器形成在与像素电路228、230、232和234相同的基板上。面板上的驱动器可包括用于控制发光、栅极扫描和数据写入的电路,如下面详细描述的那样。扫描线和数据线也形成在驱动电路层216中,用于将扫描信号和数据信号分别从驱动电路228、230、232和234传送到各像素电路228、230、232和234。显示屏210可以包括任何其他合适的组件,例如一个或多个玻璃基板、偏振层或触摸面板(未示出)。在本实施例中,像素电路228、230、232和234以及本实施例中的驱动电路层216中的其它元件形成在沉积在玻璃基板上的低温多晶硅(ltps)层上,并且每个像素电路228、230、232和234中的tft是p型晶体管(例如,pmos ltps-tft)。在一些实施例中,驱动电路层216中的元件可以形成在非晶硅(a-si)层上,并且每个像素电路中的tft可以是n型晶体管(例如,nmos tft)。在一些实施例中,每个像素电路中的tft可以是有机tft(otft)或氧化铟镓锌tft(igzo)。
45.如图2a所示,每个子像素202、204、206和208由至少一个由相应像素电路228、230、232和234驱动的oled 218、220、222和224形成。oled可以由阳极,有机发光层和阴极的夹层结构形成。取决于各个oled的有机发光层的特性(例如,材料,结构等),子像素可以呈现不同的颜色和亮度。在该实施例中,每个oled 218、220、222和224是顶部发射oled。在一些实施例中,oled可以处于不同的配置中,例如底部发射oled。在一个示例中,一个像素可以由三个相邻的子像素组成,例如具有三种原色(红色,绿色和蓝色)的子像素以呈现全色。在另一示例中,一个像素可以包括四个相邻的子像素,例如具有三种原色(红色,绿色和蓝色)和白色的子像素。在又一示例中,一个像素可以包括两个相邻的子像素。例如,子像素a202和b 204可以构成一个像素,并且子像素c 206和d 208可以构成另一像素。这里,由于显示数据106通常是在像素级别上编程的,因此每个像素的两个子像素或几个相邻像素的多个子像素可以通过子像素渲染共同寻址,以呈现每个像素的适当亮度和颜色,如显示数据106(例
如,像素数据)。然而,应当理解,在一些实施例中,显示数据106可以在子像素级被编程,使得显示数据106可以直接寻址单独的子像素而无需子像素渲染。因为通常需要三种原色(红色,绿色和蓝色)来呈现全色,所以可以结合子像素渲染算法为显示器102提供专门设计的子像素布置,以实现适当的表观颜色分辨率。在一些实施例中,红色,绿色和蓝色的每种的分辨率彼此相等。在其他实施例中,红色,绿色和蓝色的分辨率可能不完全相同。
46.图2a所示的例子示出了一种并排的图案化架构,其中一种颜色的发光材料通过金属掩膜沉积,而其他颜色区域被掩模遮挡住。在另一实施例中,可以将带彩色滤光层(woled cf)的白色oled的图案化架构应用于显示屏210。在woled cf架构中,发光材料的堆叠形成白光的发光层。每个单独的子像素的颜色由另一层不同颜色的彩色滤光层定义。由于有机发光材料不需要通过金属掩膜进行图案化处理,因此可以通过woled cf图案化架构提高分辨率和显示尺寸。图2b示出了应用于显示屏210的woled cf图案化架构的一个实施例。本实施例中,显示屏210包括驱动电路层216、发光层236、彩色滤光层238和封装层239。在本实施例中,发光层236包括一叠发光子层,并发出白光。彩色滤光层238可以包括具有分别对应于子像素202、204、206和208的多个彩色滤光层240、242、244和246的彩色滤光层阵列。图2b中的a、b、c和d表示四种不同颜色的滤光层,例如但不限于,红、绿、蓝、黄、青、品红或白。彩色滤光层240、242、244和246可以由树脂膜形成,其中含有具有所需颜色的染料或颜料。根据各自的彩色滤光层的特性(例如,颜色、厚度等),子像素可以呈现出明显的颜色和亮度。封装层239可以包括封装玻璃基板或通过薄膜封装(tfe)技术制造的基板。驱动电路层216可以包括包括包括ltps、igzo或otft晶体管的像素电路阵列。显示屏210可以包括任何其他合适的元件,例如偏振层,或触摸面板(未示出)。
47.在另一个实施例中,还可以将具有转移色滤光层(boled 转移色滤光层(boled 转移cf)的蓝色oled的图案化架构也可应用于显示屏210。在boled 转移色滤光层(boled 转移色滤光层(boled 转移色滤光层cf)架构中,在没有金属掩膜的情况下,沉积了蓝色光的发光材料,并且每个单独的子像素的颜色由另一层转移色滤光层定义为不同颜色的转移色滤光层。图2c示出了应用于显示屏210的boled 转印cf图案化架构的一个实施例。本实施例中的显示屏210包括驱动电路层216、发光层248、转印色层250和封装层251。发光层248在本实施例中发射蓝光,并且可以不使用金属掩膜进行沉积。应当理解的是,在一些实施例中,发光层248可以发出其他颜色的光。颜色转移层250可以包括转移色滤光层阵列250,该转移色滤光层阵列具有分别对应于子像素202、204、206和208的多个转移色滤光层252、254、256和258。图2c中的a、b、c和d表示四种不同颜色的转印色滤光层,例如但不限于,红、绿、蓝、黄、青、品红或白。每种类型的转印色滤光层可以由变色材料形成。根据各自的转印色滤光层的特性(例如,颜色、厚度等),子像素可以呈现出明显的颜色和亮度。封装层251可以包括封装玻璃基板或由tfe技术制造的基板。驱动电路层216可以包括ltps、igzo或otft晶体管的像素电路阵列。显示屏210可以包括任何其他合适的组件,例如偏振层或触摸面板(未示出)。
48.本公开的压缩和解压缩方法适用于任何已知的oled图案化架构,包括但不限于如上所述的并列式、woled cf和boled ccm图案化架构。尽管图2a-2c是以oled显示器的方式示出的,但应当理解的是,它们仅用于示例性的目的,并且没有限制。这里公开的方法可以应用于任何合适的显示器,如上所述。
49.图3是图1所示的显示器102的平面示意图,其包括多个驱动器,根据本发明的一个实施例,图3是图1所示的显示器102的平面视图。本实施例中的显示屏210包括子像素阵列300(例如,oled)、多个像素电路(未示出)以及多个面板上的驱动器,包括发光驱动器302、栅极扫描驱动器304和源写入驱动器306。该像素电路被操作性地耦合到子像素阵列300和面板上驱动器302、304和306。在本实施例中,发光驱动器302被配置为导致子像素阵列300在每个帧中发出光。应当理解的是,尽管图3中示出了一个发光驱动器302,但在一些实施例中,多个发光驱动器可以相互配合工作。
50.本实施例中的栅极扫描驱动器304将基于来自控制逻辑104的控制信号108产生的扫描信号s0-sn的多个扫描信号应用到子像素300的阵列中的每一行子像素300的扫描线(又称栅极线)上。在扫描/充电期间,扫描信号s0-sn被施加到每个像素电路的开关晶体管的栅极电极上,以使开关晶体管接通,从而使相应的子像素的数据信号由源写入驱动器306写入。正如下面将详细描述的那样,在不同的实施例中,将扫描信号施加到每一排子像素阵列300的扫描信号的顺序(即,栅极扫描顺序)可以不同。在一些实施例中,并不是在每一帧中扫描所有的行子像素。应当理解的是,尽管图3中示出了一个栅极扫描驱动器304,但在一些实施例中,多个栅极扫描驱动器可以相互配合工作以扫描子像素300的阵列。
51.在本实施例中,源写入驱动器306被配置为将从控制逻辑104接收到的显示数据写入每个帧中的子像素阵列300中。例如,源写入驱动器306可以同时将数据信号d0-dm应用到每列子像素300的数据线(又称源线)上。即,源写入驱动器306可包括一个或多个移位寄存器、数模转换器(dac)、多路复用器(mux)和算术电路,用于控制将电压施加到每个像素电路的开关晶体管的源电极(即,在每帧中的扫描/充电期间)的一个时序和根据显示数据106的梯度施加电压的幅度。应当理解的是,尽管图3中示出了一个源写入驱动器306,但在一些实施例中,多个源写入驱动器可以相互配合工作,以将数据信号施加到每列子像素的数据线上。
52.图4a是示出显示系统400的框图,该框图示出了根据一个实施例的显示系统400包括显示器102、控制逻辑104和处理器114。
53.如上所述,处理器114可以是能够在每个帧中生成显示数据106,例如,像素数据和/或补偿数据,并将显示数据106提供给控制逻辑104的任何处理器。处理器114可以是,例如,gpu、ap、apu或gpgpgpu。处理器114还可以生成其他数据,例如但不限于,控制指令118(图1中可选的)或测试信号(图4a中未示出),并将其提供给控制逻辑104。从处理器114传输到控制逻辑104的显示数据流106可以包括显示屏210上的像素的原始显示数据和/或补偿数据。
54.在本实施例中,处理器114包括图形管道404、预处理模块405和数据传输器406。每个图形流水线404可以是二维(2d)渲染流水线或三维(3d)渲染流水线,用于将具有以顶点形式的几何基元的二维或三维图像转换为显示数据块,其中每个显示数据块对应于显示屏210上的一个像素。图形管道404可以作为软件(例如,计算程序)、硬件(例如,处理单元)或其组合来实现。图形流水线404可包括多个阶段,例如用于处理顶点数据的顶点着色器、用于将顶点转换为具有插值数据的碎片的光栅化器、用于计算每块显示数据的光照、颜色、深度和纹理的像素着色器、以及用于对每块显示数据执行最终处理(例如,混合)并将其写入帧缓冲器(未示出)的适当位置的渲染输出单元(rop)。每个图形流水线404可以独立地同时
处理一组顶点数据并并行地生成相应的显示数据集。
55.在本实施例中,图形管道404被配置成在每一帧中为显示屏210上的像素生成多个显示数据,包括像素数据和/或补偿数据。每个显示数据片可以对应于显示屏210上的像素阵列中的一个像素。例如,对于具有分辨率为2400
×
2160的显示屏,在每一帧中,由图形管道404生成的显示数据包括2400
×
2160块,其中每块表示要施加到各个像素(例如,包括若干子像素)的电信号的一组值。显示数据可由图形管道404以合适的帧速率(例如,频率)生成,在该速率下,连续的显示帧被提供给显示屏210,例如30帧/秒、60帧/秒、72帧/秒、120帧/秒或240帧/秒。在一些实施例中,图形管道404仅生成像素数据,补偿数据由预处理模块405中的单独的单元,例如,补偿数据生成单元生成。生成补偿数据的具体方式不应受本公开的实施例的限制。
56.预处理模块405可操作性地耦合到图形管道404,并且被配置为处理由图形管道404提供的显示屏210的显示数据,以例如,生成补偿数据并压缩补偿数据。图4b是示出了根据图4a的一个实施例的处理器114中的预处理模块405的详细框图。在本实施例中,预处理模块405包括下采样单元412、量化单元413、基本查找表确定单元414、子查找表确定单元415和码流确定单元416。图形管道404可在每个帧中生成多个补偿数据片。每个补偿数据片可被用于补偿显示屏210上的一个像素。例如,对于具有2400
×
2160的分辨率的显示屏,在每一帧中生成的补偿数据包括2400
×
2160片,其中每个补偿数据片代表要施加到各个像素(例如,包括若干个子像素)的电信号值的集合。在一些实施例中,每个补偿数据片对应于(或用于补偿)一个各自的子像素。在一些实施例中,分辨率是指显示屏210的物理/原生分辨率。在一些不同的实施例中,每一个补偿数据(例如,每一组电信号的值)可以是单个值或多个值。
57.在一些实施例中,在每个帧中,预处理模块405对补偿数据执行下采样操作。可以生成多个下采样补偿数据片。下采样操作可以由下采样单元412执行。下降采样单元412可以确定多个下采样补偿数据片。每个下降采样补偿数据片可以代表一个以上的补偿数据的下采样值。因此,下采样的补偿数据的大小(例如,片数)可以小于补偿数据的大小(例如,在下采样过程之前)。在一些实施例中,下采样单元412确定代表补偿数据的大小减小的比例的下采样系数(例如,大于1)。图5a示出了由下采样单元412执行的一个示例性的下采样过程。
58.如图5a所示,下采样单元412可以接收由图形管道404生成的多个补偿数据片。补偿数据可以被布置成由多个行和多个列组成的阵列501。每个行可以包括沿行方向(例如,水平方向)布置的多个补偿数据片,并且每个列可以包括沿列方向(例如,垂直方向)布置的多个补偿数据片。在一些实施例中,下采样单元412确定m
×
n的下采样系数,该下采样系数对应于m行和n列中的补偿数据片。在一些实施例中,m和n各自为正整数,其中m小于行数,n小于列数。在一些实施例中,m
×
n也被称为块大小。在一些实施例中,下采样单元412将阵列501分成多个块,并得到每个块的下采样值。在一些实施例中,每个块具有相同的块大小,例如,m
×
n。在一些实施例中,每个块被下采样以由单个下采样补偿值表示。
59.在一些实施例中,补偿数据的尺寸(即,行数和列数)与像素数据的尺寸相同。即,阵列501中的行数等于显示屏210中的像素数据的行数,并且阵列501中的列数等于显示屏210中的像素数据的列数。即,阵列501的大小(或尺寸)对应于显示屏210中的像素的排列,
并且阵列501的每个元素(即补偿数据的每个块)代表显示屏210中的相应像素的补偿数据。相应地,每个块对应于显示屏210中的m
×
n个像素阵列/块。在一些实施例中,下采样单元412将补偿数据阵列(例如,具有(mj)
×
(nk)的大小)分成j
×
k块502,每个块502包括m
×
n个补偿数据。j可以等于行数除以m,k可以等于列数除以n。例如,块502各自包括多个补偿数据,例如,cda、cdb、cdc、cdd、...........等多个补偿数据片。
60.下采样单元412可根据补偿数据的划分来确定多个下采样补偿数据片。在一些实施例中,作为示例性的数据结构,下采样补偿数据被布置成j
×
k阵列503,其中每个元素504(例如,dscd11、dscd12、...)是下采样补偿数据片。在一些实施例中,每个元素504是下采样补偿值。在一些实施例中,阵列503的尺寸,例如,j
×
k,小于阵列501的尺寸。如图5a所示,下采样单元412可对左上块502中的补偿数据(例如,cda,...)进行下采样,并确定左上块502的下采样补偿数据片(例如,dscd11)。在一些实施例中,下采样单元412存储dscd11阵列503。在一些实施例中,下采样单元412还下采样来自右上区块502、左下区块502和右下区块502的补偿数据(例如,cdb、cdc、cdd、...),确定并存储在阵列503中的dscd11的右下区块、左下区块和右下区块502上的补偿数据(例如,dscd12、dscd21、dscd22、...)的各自的下采样数据块。在一些实施例中,阵列503中的下采样数据的排列可以对应于补偿数据j
×
k块的排列。在一些实施例中,下采样单元412按顺序逐行或逐列确定下采样补偿数据。在一些实施例中,j
×
k阵列503包括j
×
k下采样补偿值。即,dscd11、dscd12、dscd13、...、...、dscd21、dscd22、dscd23、...、...、dscd31、dscd32、dscd33、...,可以是阵列501中各块的下采样补偿值。在一些实施例中,下采样操作是有损数据压缩过程。
61.下采样单元412可以使用任何合适的方法对块502进行下采样,例如平均下采样方法、中位下采样方法、最大下采样方法、最小下采样方法、位置指定下采样方法和/或梯度下采样方法。例如,对于每个区块502,各自的下采样补偿数据(或下采样补偿值)可以是区块502中补偿数据的平均值(例如,使用平均下采样方法)、区块502中补偿数据的中位值(例如,使用中位下采样方法)、区块502中补偿数据的最大值(例如,使用最大下采样方法)、区块502中补偿数据的最大值(例如,使用最大下采样方法)、补偿数据在块502中的最小值(例如,使用最小下采样方法)、补偿数据在块502中的位置指定值(例如,使用位置指定的下采样方法)和/或块502的梯度值(例如,使用梯度下采样方法)。在一些实施例中,位置指定的块502的位置指定值是指在块502的特定位置/元件处的补偿数据片的值。例如,下采样单元412可以确定块502的下采样的补偿数据/值为块502中的第一左上元素的补偿数据片的值。在一些实施例中,梯度值指的是块502的最高梯度值。与块502相对应的每个像素的梯度值可以计算为:其中,abs(f)表示函数的绝对值,(x,y)表示像素的坐标,并且f(x,y)表示像素的补偿值。
62.在各种实施例中,一个区块502的区块尺寸可以与另一个区块502的区块尺寸不同。即对于不同的块502,m和n的值可以不同。在一些实施例中,一个块502在一个行/列中的一个块502的块大小与另一个行/列中的另一个块502的块大小不同。阵列503的阵列的大小,即j
×
k,可以随着m和/或n的值的变化而相应地变化。在一些实施例中,使用一种以上的
下采样方法来对j
×
k块进行下采样。例如,在一个行/列中下采样一个块502的下采样方法与在另一个行/列中下采样另一个块502的下采样方法不同。
63.预处理模块405可以从下采样补偿数据中确定多个量化的下采样补偿数据片502。该操作可由量化单元413执行。量化单元413可以对下采样补偿数据进行量化,以形成量化的下采样补偿数据。量化单元413可确定多个不同的(即,不重复的)下采样补偿数据片,将不重复的下采样补偿数据按顺序排列,并对一个或多个相邻的不重复的下采样补偿数据进行量化,以形成量化的下采样补偿数据。因此,量化的下采样补偿数据的块数小于下采样补偿数据的块数。在一些实施例中,非重复的下采样补偿数据的排列顺序是升序。在一些实施例中,每块下采样补偿数据是一个下采样补偿值,且多个不重复的下采样补偿值的排列顺序为升序。在一些实施例中,量化单元413还确定每块下采样补偿数据在多个下采样补偿数据片(例如,在阵列503中)中的每块下采样补偿数据的出现次数。出现次数由量化单元413确定的出现次数(num0、num1、num2、...)表示。
64.图5b示出了以升序排列(例如,在队列中)的不重复的多个下采样补偿数据片。在一些实施例中,量化单元413将非重复的下采样补偿数据按顺序存储在表506中。dscd0、dscd1、dscd2、...、...、dscd6、...表示出现在阵列503中的所有不同(例如,非重复)的下采样补偿数据。在一些实施例中,dscd0、dscd1、dscd2、...、...、dscd6、...各自代表不同的值。在一些实施例中,量化单元413确定一个出现次数,num0、num1、num2、...、...、num6、...,每一个代表阵列503中的非重复下采样补偿数据(dscd)的各自片的出现次数。在一些实施例中,所有的非重复下采样补偿数据被存储在表506的一列中,出现次数被存储在表506的另一列中,并且每个出现次数被映射到各自的下采样补偿数据片的出现次数。在一些实施例中,非重复的下采样补偿数据片的数量为x(例如,表506中的x行),并且表506可以具有x
×
2的大小。例如,dscd0可以是最小的不重复的下采样补偿值,并且被排序为队列中的第一。dscd0可以具有出现次数num0,例如,50,并且可以出现为dscd11、dscd13、dscd21、.....。即,dscd0可以重复地(例如,50次)出现在阵列503的下采样补偿数据中。按照升序排列,dscd1可以是第二小的下采样补偿值,并且被排序为队列中的第二位,dscd2可以是第三小的下采样补偿值,并且被排序为队列中的第三位。
65.预处理模块405可以根据下采样补偿数据的顺序(例如,升序)确定多个量化数据片。每一个量化数据片可以是彼此不同的,并且可以代表相邻的非重复的下采样补偿数据中的多个相邻的非重复的量化片的顺序。定量化单元413可以执行该操作。量化单元413可以使用表506中的下采样补偿数据确定量化数据。在一些实施例中,量化单元413可以使用下采样补偿数据和表506中的各自的出现次数来确定量化数据。在一些实施例中,该多个量化数据包括多个量化值,每个量化值代表表506中相邻的非重复的下采样补偿数据的多个相邻的下采样补偿数据的量化值。相邻的下采样补偿数据片的数目可以称为j,其中,该数目是包括小于下采样补偿数据的非重复补偿片的总数(即,x)的任何合适的正整数的步数。
66.图5c示出了由表506中的非重复性下采样补偿数据的量化确定的多个示意性的量化数据片qdscd0、qdscd1、qdscd2、...。每个qdscd0、qdscd1、qdscd1、qdscd2、...可以彼此不同(非重复),并表示表506中的一个或多个下采样补偿数据的量化。在一些实施例中,qdscd0、qdscd1、qdscd2、.....中的每一个是量化值。在一些实施例中,qdscd0、qdscd1、qdscd2、...以升序排列成队列。在一些实施例中,量化单元413将队列存储在表510中。j的
值可以大于1,在各种实施例中,j的值可以是2、3、4、...或16。例如,j可以等于3,并且量化单元413可以确定量化单元413将dscd0、dscd1和dscd2的量化值qdscd0确定为量化值qdscd0,将dscd3、dscd4和dscd5的量化值qdscd1确定为量化值qdscd1。在一些实施例中,j是所有量化值的常量值。在一些实施例中,j对于不同的量化值而言,j是变化的。在一些不同的实施例中,每个量化值的j的值根据用于确定量化值的方法来确定。在一些实施例中,表510中的队列的大小(例如,行数或量化值的数量)等于y,y小于或等于x。
67.量化单元413可以采用任何合适的方法来确定量化数据。在一些实施例中,该方法包括平均量化方法、最大量化方法、最小量化方法、中位量化方法、中位量化方法和/或特定范围的量化方法。例如,量化单元413可以确定量化值等于下采样补偿数据的j个相邻的下采样补偿数据的平均值(例如,使用平均量化法)、下采样补偿数据的j个相邻的下采样补偿数据的最大值(例如,使用最大量化法)、下采样补偿数据的j个相邻的下采样补偿数据的最小值(例如,使用最小量化法)、相邻的j个下采样补偿数据的中位数值(例如,使用中位数量化方法)和/或相邻的j个下采样补偿数据的特定范围值(例如,使用特定范围的量化方法)。在各种实施例中,可以使用相同的量化方法或不同的量化方法来确定量化数据。
68.图5d示出了一种示例性的特定范围量化方法。x轴表示下采样补偿数据的值("dscd值"),y轴表示量化的下采样补偿数据的值("qdscd值")。在一些实施例中,量化单元413根据下采样补偿数据的值确定沿x轴的多个范围。每个范围可以由一对阈值定义。在一些实施例中,对于每个范围,量化单元413确定一个量化值为在各自范围内的任何下采样补偿数据的量化的下采样补偿数据。每个范围的量化值可以是不同的量化值。为便于说明,图5d示出了8个范围,分别由8对阈值(dscdb3,dscdb2)、(dscdb2,dscdb1)、(dscdb1,dscdb0)、(dscdb0,0)、(0,dscda0)、(dscda0,dscda1)、(dscda1)、(dscda2)、(dscda2,dscda3)8个特定范围。反过来,这八个范围可以对应于量化值qb3、qb2、qb1、qb0、qa0、qa0、qa1、qa2和qa3。即落入相应范围内的任何一块下采样补偿数据(或不重复的一块下采样补偿数据)被量化为该范围内的相应量化值。例如,dscd0、dscd1和dscd2可以是在(dscdb2、dscdb1)的范围内,量化单元413可以确定dscd0、dscd1和dscd2的量化值等于qb2。即与dscd0、dscd1和dscd2对应的量化值为qb2。在一些实施例中,阈值根据下采样补偿数据的分布来确定。例如,可以确定一对阈值包括相邻不重复的下采样补偿数据的最大数目,这样可以减少量化值的数量,提高压缩效率,减少压缩后的补偿数据的存储空间。
69.在一些实施例中,如图5d所示,范围是连续的,例如,一个范围紧接在另一个范围之后。在一些实施例中,所述范围是不连续的,例如,一个范围与另一个范围相隔。每个范围中的非重复的下采样补偿数据(即j)的数目可以是相同或不同的。在一些实施例中,下采样补偿数据名义上是均匀分布的。在一些实施例中,下采样补偿数据的j个相邻的不重复的下采样补偿数据的值沿y轴具有小的和/或线性变化。在这种情况下,在一些实施例中,量化值名义上沿y轴均匀分布,并且j是所有量化值的相同数字。在一个实施例中,dscda0等于3,qa0等于2,并且dscd0、dscd1和dscd2分别等于1、2和3。然后,量化单元413将dscd0、dscd1和dscd2的量化值(或与之相对应的量化值)分别等于2,再参考图5c,在确定了每j个相邻的下采样补偿数据的量化值(例如,qb3、qb2、qb1、qb0、qa0、qa1、qa2、qa3)之后,量化单元413将量化值按升序排列在队列中。为了便于说明,将排列在队列中的量化数据表示为多个量化值。qdscd0、qdscd1、qdscd2、qdscd2、qdscd3、.....。
70.图5e示出了在阵列512中的多个量化的下采样补偿数据片。在一些实施例中,阵列512的大小为j
×
k。阵列512的每个元素可以具有与阵列503中相应的下采样补偿数据片的量化值相同的值。在一些实施例中,阵列512包括j
×
k量化的下采样补偿值。在一些实施例中,量化单元413根据表510和阵列503生成阵列512,例如,通过用表510中的量化值代替阵列503中的每块下采样补偿数据,并生成相应的量化下采样补偿数据(例如,等于量化值)。在一些实施例中,量化单元413将阵列503中的每块下采样补偿数据(例如,依次或并行地)映射到表506中具有相同值的非重复的下采样补偿数据,并将非重复的下采样补偿数据映射到表510中的量化值。例如,qdscd11代表dscd11的量化值,qdscd12代表dscd12的量化值,qdscd21代表dscd21的量化值等。由于阵列512中的元素是根据表510确定的,所以阵列512中的每个元素(qdscd11、qdscd12、......)等于表510中的一个元素(qdscd0、qdscd1、......)。
71.量化单元413可将表510中的量化数据(例如,y量化值)按出现次数排序,并生成多个第一索引,每个索引映射到一个量化值。第一索引的值可以是不重复的,并且可以包括任何合适的非负整数。在一些实施例中,确定每个量化值(即,qdscd0、qdscd1、qdscd2、qdscd3、...)的出现次数,代表阵列512中每个量化值的出现次数。在一些实施例中,量化的数据以出现次数的降序排序。在一些实施例中,排序后的量化数据被排列成队列。每个量化值可以对应于一个出现次数和一个第一索引。在一些实施例中,量化单元413将排序的量化数据、出现次数和第一索引分别存储在表中的列中。在一些实施例中,每个量化值被映射到相应的出现次数和第一索引。
72.图5f示出了一个示例性的表514,其中,量化的数据(即不重复)根据相应的出现次数的降序排列在一列中。在一些实施例中,num0≥num1≥num2≥num3,.....。多个第一索引(i0、i1、i2、...),每个映射到各自的量化值(或各自的量化值或各自的出现次数)的多个第一索引被存储在表514的另一列中。在一些实施例中,i0、i1、i2、...,分别等于0、1、2、....。在一些实施例中,量化单元413确定第一索引的数量(即,不重复的量化值的数量)是否超过预定的大小限制,该大小限制可以是任何合适的正整数,例如16、32、64或如此。如果量化单元413确定第一索引的数量大于预定的大小限制,则量化单元413可以增加j的值(表506中相邻的下采样补偿数据的数目或步骤数),并再次执行下采样补偿数据的量化。量化单元413可以继续调整j的值,直到第一索引(或y)的数量等于或小于预定的大小限制。在一些实施例中,表514的大小为y
×
3,y小于或等于预定的大小限制。
73.第一索引的范围可以小于不重复量化值的范围。例如,不重复量化的非重复量化的值可以包括负值、零和/或正值,而第一索引可以仅包括非负值。应当注意的是,在各种实施例中,第一索引可以包括具有比不重复的量化值小的范围的任何一组值。例如,非重复量化的非重复量化值的范围可以是-20到20,第一索引的范围可以是0到30,-15到15等。第一索引的具体值和数量不应受本公开的实施例的限制。
74.预处理模块405可以根据表514确定基本查找表(base lut或第一查找表)以形成ibl数据(或索引数据)。基本查找表确定单元414可以执行该操作。在一些实施例中,基本查找表确定单元414可以形成包括表514中的所有第一索引(即,y个第一索引i0、i1、i2、...)和相应的非重复量化值(即,y个量化值qdscd0、qdscd1、qdscd2、...)的基本查找表。图5g示出了一个示例性的基本查找表520。在一些实施例中,基本查找表520的第一列包括y个第一
索引,其排列顺序与表514中的顺序相同。为了说明性的目的,在基本查找表520中,第一索引由ibl0、ibl1、ibl2、...(即,i0=ibl0、i1=ibl1、i2=ibl2、...)表示。基本查找表520的第二列可以包括以与表514中相同的顺序排列的y量化值。
75.基本查找表确定单元414可根据基本查找表520和阵列512中的量化的下采样补偿数据确定多个ibl数据块。在一些实施例中,ibl数据存储在j
×
k阵列中,并且该阵列的每个元素是对应于阵列512中的量化的下采样补偿数据片(或阵列503中的对应的下采样补偿数据)的ibl值。每个ibl值与第一索引映射到具有与阵列512中的量化下采样补偿数据片的非重复量化值(在基本查找表520或表514中)的值相同的第一索引的值相同。
76.图5g示出了形成ibl数据的例子。在一些实施例中,通过使用基本查找表520将量化的下采样补偿数据转换为多个非负值来形成ibl数据。如图5g所示,基本查找表确定单元414可以逐行或逐列形成ibl数据的阵列。作为一个示例,基本查找表确定单元414可从阵列512中选择量化的下采样补偿数据的一行516(或一列,未示出),并根据基本查找表520,为行516(或列)中的每个元素确定一个第一索引。可以形成行518(或列,未示出)中的ibl值,其中行518(或列)中的每个元素是映射到相应的量化的下采样补偿数据片的ibl值。在一些实施例中,基本查找表确定单元414从阵列512中,例如,从上至下依次选择行,并逐行形成ibl数据阵列。在一些实施例中,基本查找表确定单元414依次选择来自阵列512的列,例如,从左至右,并形成逐列的ibl数据阵列。在一些实施例中,用于存储ibl数据阵列的空间小于用于存储量化下采样补偿数据阵列512的空间。
77.在一些实施例中,基本查找表确定单元414选择阵列512的一行516(例如,第一行),该行包括k个量化的下采样补偿数据(例如,qdscd11、qdscd12、qdscd13、...)。基本查找表确定单元414可以将行516中的每块量化的下采样补偿数据(例如,qdscd11、qdscd12、qdscd13、...)映射到基本查找表520中的相同值的排序量化值中的其中一个(例如,qdscd0、qdscd0、qdscd13、...)中的每块量化的下采样补偿数据(例如,qdscd11、qdscd12、qdscd13、...)。qdscd0、qdscd1、qdscd1、qdscd2),并确定映射到该量化值的第一索引(ibl0、ibl1、ibl2、...),该第一索引映射到相应的量化下采样补偿数据片的量化值。然后,基本查找表确定单元414可以生成一排k个ibl值,每个ibl值与基本查找表520中的各自的第一索引(ibl0、ibl1、ibl2、...)具有相同的值。例如,基本查找表确定单元414可以将qdscd11(即,在阵列512中的第一元素516和阵列512中的第一元素(1,1))映射到qdscd0(例如,具有与qdscd11相同的值),确定第一索引ibl0(即,映射到qdscd0),并确定ibl11(即,在阵列ibl数据中的元素(1,1))具有ibl0的值。基本查找表确定单元414可以依次或并行地处理行516中的每个元素。可形成行518的ibl数据,即,包括具有ibl11、ibl12、ibl13、.....的多个ibl值阵列。基本查找表确定单元414可以形成ibl数据的j
×
k阵列,该阵列的每个元素对应于通过量化数据映射到阵列512(或阵列503中对应的下采样补偿数据)的第一索引的值。在一些实施例中,用于存储ibl数据的每一行(例如,行518)的空间小于用于存储阵列512的每一行(例如,行516)的空间。
78.预处理模块405可进一步将阵列ibl数据阵列分成m个单元,m是小于j或k的正数,基本查找表确定单元414可执行该操作。在一些实施例中,按行划分ibl数据阵列,并且每个单元包括ibl数据阵列的一个或多个行,m是小于j的正数。在一些实施例中,每一个单元包括一个行,并且m等于j;在一些实施例中,每一个单元包括一个列,并且m等于k;在一些实施
例中,每两个相邻的行形成一个单元,并且m等于j/2。在一些实施例中,每两个相邻的列形成一个单元,且m等于k/2。图5h示出了示例性的分割522和524。在分部522中,形成m个单元522a、522b、522b、522c、...,每一个单元522a、522b、522c、...,每一个单元包括相邻的两行ibl数据。在分部524中,形成m单元524a、524b、524b、524c、...,每个单元包括相邻的两列ibl数据。
79.预处理模块405可以在m个单元的每个单元中,按照出现的次数对第一索引进行排序。子查找表确定单元415可以执行该操作。在一些实施例中,子查找表确定单元415确定该单元中每个不重复的第一索引的出现次数,并根据出现次数对不重复的第一索引进行排序。在一些实施例中,出现次数以降序排列。图5i示出了一个示例性的顺序,其中每个单元中的不重复的第一索引(ibl0、ibl1、ibl2、...)按照队列中的降序出现次数排列。在一些实施例中,子查找表确定单元415生成表526,其中,排序的不重复的第一索引被存储在一列中,并且第一索引的出现次数(num0、num1、num2、...)被排列在另一列中。如表526所示,每个出现次数被映射到相应的第一索引中。在一些实施例中,生成m个表,每个表对应于各自的ibl值/数据单元。在一些实施例中,子查找表确定单元415选择排序不重复的第一索引的列,并利用该列作为初始子查找表。可以形成m个初始子查找表。在一些实施例中,预处理模块405根据m个初始子查找表中的n个初始子查找表,将ibl数据(例如,由图5g中示出的转换形成并排列在j
×
k阵列中的转换形成)转换为m个码流。详细描述如下。
80.在一些实施例中,对于每个单元,子查找表确定单元415还确定多个第二索引(即,iibl0、iibl1、iibl2、...),每个第二索引映射到各自的第一索引。第二索引的值可以是不重复的,并且可以包括大于或等于0的任何合适的整数,在一些实施例中,iibl0、iibl1、iibl2、...,分别等于0、1、2、....,....。在一些实施例中,第二索引被存储并存储在表526的另一列中,如图5i所示,每个第二索引被映射到相应的第一索引和出现次数。在一些实施例中,子查找表确定单元415选择第一索引和第二索引的列,并利用这两个列作为初始子查找表。在一个实施例中,在表526中,ibl0等于0,num0等于100,且iibl0等于0;ibl1等于1,num1等于50,且iibl0等于1;ibl2等于2,num2等于30,且iibl2等于2;以及ibl3等于3,num3等于20,且iibl2等于3。
81.如上所述,对于每个单元,子查找表确定单元415可以根据表526确定初始子查找表。在一些实施例中,初始子查找表包括一列,该列包括排序不重复的第一索引。在一些实施例中,初始子查找表包括两列,其中,该两列包括按顺序排列的第一索引的一列和各映射到各自的第一索引的第二索引的另一列。可以形成m个初始子查找表。m个初始子查找表可以包括或不包括重复的初始子查找表。在一些实施例中,子查找表确定单元415根据其出现的次数对m个初始子查找表进行排序。在一些实施例中,确定每个初始子查找表的出现次数,子查找表确定单元415根据出现次数的降序对m个初始子查找表进行排序。在一些实施例中,子查找表确定单元415然后选择具有最高出现次数的n个初始子查找表(例如,n个初始子查找表的顶部)。在一些实施例中,n是合适的正整数,小于或等于m,例如16或32。在一些实施例中,子查找表确定单元415为n个初始子查找表中的每个初始子查找表确定一个索引。
82.对于ibl数据的m个单元的每个单元,预处理模块405可以根据各自单元和n个初始子查找表形成n个初始码流。可以确定每个初始码流的码流大小(例如,大小),并且可以确
定具有最短码流大小的初始码流为相应单元的码流。预处理模块405还可以确定用于生成码流的初始子查找表为各自单元的子查找表(例如,第二查找表)。子查找表的索引可被确定为相应的初始子查找表的索引。码流确定单元416可以执行这些操作。在一些实施例中,对于m个单元,确定m个码流,每个码流对应于各自的单元。码流确定单元416可相应地确定每个码流的码流大小、每个单元的子查找表以及各自的子查找表的索引。在各种实施例中,码流确定单元416依次或并行地确定m个单元的每个码流、码流大小和各子查找表的索引。
83.图5j示出了形成初始码流的例子。在一些实施例中,初始码流通过使用n个初始子查找表和可变长度编码表中的一个将一个单元的ibl数据转换为多个二进制代码集而形成。用于存储二进制码的空间可以比存储各自的ibl数据的空间小,提高了补偿数据的压缩效率。在一些实施例中,初始子查找表包括第一索引列,并且初始子查找表中的每个第一索引映射到可变长度编码表中的各自的二进制代码集。在一些实施例中,编码流确定单元416将各自单元中的每个ibl值映射到具有相同值的第一索引,将第一索引映射到各自的二进制代码集,并确定/形成初始编码流中的各自元素与二进制代码集相同。在一些实施例中,初始子查找表包括各映射到各自的第一索引的第二索引列,并且第一索引通过第二索引映射到二进制代码。例如,每个第一索引映射到各自的第二索引,第二索引进一步映射到各自的二进制代码集。
84.如上所述,单元519可包括至少一个行/列的ibl值。为了便于说明,图5j详细说明了由一列ibl值,例如,k个ibl值(ibl11、ibl12、ibl13、...)形成的初始码流的形成。为了便于说明,将单元519描绘成具有一列ibl值的单元519,可以用行518来表示。如图5j所示,初始子查找表532可包括以与表526中相同的顺序排列的第一索引列(ibl0、ibl1、ibl2、...)。在一些实施例中,初始子查找表532还包括以与表526中相同的顺序排列的第二索引(iibl0、iibl1、iibl2、...)列。每个第二索引被映射到相应的第一索引(例如,表526中的同一行的第一索引)。变长编码表530可包括多个二进制编码(0、10、1110、1110、...)的集合,每个二进制编码包括一个或多个位,并映射到各自的第一索引。在一些实施例中,当初始子查找表532不包括第二索引列时,每个第一索引直接映射到各自的二进制代码集。在一些实施例中,当初始子查找表532包括第二索引列时,每个第一索引通过各自的第二索引映射到各自的二进制代码集。如图5j所示,第一索引ibl0可以通过第二iibl0(或直接,未示出)映射到二进制代码"0",第一索引ibl1可以通过第二iibl1(或直接)映射到二进制代码"10",第一索引ibl2可以通过第二iibl2(或直接)映射到二进制代码"110",......在一些实施例中,编码流确定单元416在初始子查找表532中定位与单元519中的二进制编码值(ibl11、ibl12、ibl13、...)具有相同值的第一索引(ibl0、ibl1、ibl2、...),将该第一索引值映射到第一索引,并将第一索引值映射到可变长度编码表530中的相应的二进制编码值集。码流确定单元416可进一步确定初始码流528中的各自元素为映射的二进制代码值集。初始码流528的每个元素可以包括一个或多个比特。单元519中的ibl值可以被顺序地或并行地处理,并且可以确定与单元519中的每个ibl值对应的二进制代码集。在一些实施例中,单元519包括k个ibl值,并且初始码流528包括k组二进制代码。k组二进制代码的排列可以对应于k个ibl值的排列。例如,在初始码流528中,二进制代码"0"(即,对应于ibl11)被布置为第一要素,二进制代码"10"(即,对应于ibl12)被布置为第二要素,二进制代码"110"(即,对应于ibl13)被布置为第三要素,......,以此类推。
85.码流确定单元416可确定初始码流528的码流大小(例如,长度)。在一些实施例中,初始码流528的码流大小被计算为初始码流528中的总比特数,即,"0"和"1"的总比特数。例如,如图5j所示,初始码流528的码流大小计算为(1 2 3 4 5 6 7 ...)。在一些实施例中,初始码流528的码流大小根据单元519、可变长度编码表530和表526计算。即,可以在不生成该单元的初始编码流的情况下,确定单元ibl值的码流大小。例如,从表526中,编码流确定单元416可以确定表526中映射到(即,与)单元519中的所有不同(不重复的)ibl值的第一索引的出现次数,并确定可变长度编码表530中映射到第一索引的二进制编码的集合。初始编码流的大小可以是每个比特数乘以各自的出现次数的总和,其中比特数是所有映射的二进制编码集中的比特数。例如,参考图5j,假设单元518中的不重复的二进制码流值为ibl11、ibl12、...、...、ibl17,分别映射为ibl0、ibl1、...、...、ibl6,则初始码流528的码流大小为(1
×
num0 2
×
num1 3
×
num2 4
×
num3 5
×
num4 6
×
num5 7
×
num6)。在各种实施例中,可变长度编码表530可以包括任何合适的编码表,该编码表可以被用于将源值/符号映射到可变位数,并且不应受本公开的实施例的限制。
86.在一些实施例中,单元519包括两个行/列的ibl值。码流确定单元416可以依次或并行地处理这两个行/列,生成两个行/列的初始码流。例如,对于具有2
×
k的ibl值的单元,可以生成1
×
2k元素的初始码流。在一些实施例中,对应于各单元的第二行/列的位被安排在对应于第一行/列的位之后。
87.码流确定单元416可以将码流、码流的大小、以及m个单元的每一个的子查找表的索引、以及n个初始子查找表和基础查找表作为压缩补偿数据存储在存储器中,例如,存储器116,例如闪存等。图5k描绘了压缩补偿数据的示例性数据结构。如图5k所示,码流确定单元可以在存储器中存储基础查找表、n个初始子查找表、以及各单元的码流数据。在一些实施例中,每个单元(unit 0、unit 1、unit 2、...)的码流数据分别包括索引(index 0、index 1、index 2、...)、码流大小(size 0、size 1、size 2、...)、以及码流(code stream 0、code stream 1、code stream 2、...)。在一些实施例中,索引表示与该单元对应的子查找表的索引,码流大小表示该单元的码流的码流大小,且码流表示该单元的码流。在一些实施例中,m个码流的总大小,例如,存储在存储器中的码流的总大小小于m个单元的ibl数据的总大小。
88.压缩补偿数据的解压缩可以由控制逻辑104中的后处理模块408执行,该后处理模块408可以操作性地耦合到处理器114中的预处理模块405。图4c是示出了根据图4a的一个实施例的控制逻辑104中的后处理模块408的详细框图。在本实施例中,后处理模块408包括数据读取单元421、qdscd确定单元422和上采样单元423。
89.后处理模块408可以从存储器中获取压缩后的补偿数据。数据读取单元421可以执行该操作。在一些实施例中,数据读取单元421按照顺序,例如,按照数据存储在存储器中的顺序,获取基础查找表、n个初始子查找表和m个单元的码流信息。
90.后处理模块408可以确定与m个单元的每个单元对应的ibl值。qdscd确定单元422可以执行该操作。qdscd确定单元422可依次读出m个单元的每个单元的码流数据,并对各自的码流数据进行解压缩。在一些实施例中,对于每个单元,qdscd确定单元422读出索引(index 0、index 1、index 2、index 2、...)和映射到该索引的码流大小(size 0、size 1、size 2、...)。根据码流大小,qdscd确定单元422确定映射到码流大小的码流(code stream 0、code stream 1、code stream 2、...)。在一些实施例中,qdscd确定单元422根据索引确
定子查找表,并确定用于压缩过程的可变长度编码表。对于每个编码流,qdscd确定单元422可以根据可变长度编码表和子查找表确定ibl数据的单元。
91.图6a示出了从编码流中形成ibl数据的例子。如图6a所示,qdscd确定单元422通过可变长度编码表530和子查找表604将编码流602转换为ibl数据608的单元。在一些实施例中,对于每个单元,子查找表604(用于解压缩)表示初始子查找表(例如,532),通过其索引号检索,用于生成该单元的编码流。在一些实施例中,图6a所示的转换是图5j所示的转换的反操作。在一些实施例中,qdscd确定单元422在可变长度编码表606中定位与码流602的每个元素相同的二进制代码集,并将码流602的每个元素映射到相应的二进制代码集。qdscd确定单元422可以根据在压缩过程中说明的相同的映射关系(图5j),将二进制代码集映射到子查找表604中的各自的第一索引(ibl0、ibl1、ibl2、...)。然后,qdscd确定单元422可以确定单元608中的每个ibl值(例如,ibl11、ibl12、...)与各自的第一索引具有相同的值。在一些实施例中,单元608中的ibl值的排列与码流602中的相应元素的排列相匹配。例如,在单元608中,ibl11(即,对应于二进制代码"0")被布置为第一元素,ibl12(即,对应于二进制代码"10")被布置为第二元素,ibl13(即,对应于二进制代码"110")被布置为第三元素,......,以此类推。在一些实施例中,码流602包括k个元素,每个元素包括一组二进制代码。相应地,单元608可包括1
×
k个二进制码值。在一些实施例中,码流602包括2k元素,相应地,单元608可包括2
×
k ibl值。
92.子查找表604可以包括或不包括第二索引(iibl0、iibl1、iibl2、...)的列,其中,如前所述,第二索引(iibl0、iibl1、iibl2、...)是第一索引(iibl0、iibl1、...)的索引。当子查找表604不包括第二索引时,可变长度编码表606中的二进制代码集可以直接映射到相应的第一索引。当子查找表604包括第二索引时,可变长度编码表606中的二进制代码集可以通过第二索引映射到相应的第一索引。
93.后处理模块408可确定与每个单元的ibl值对应的量化下采样补偿数据。qdscd确定单元422可以执行该操作。在一些实施例中,对于每个单元,qdscd确定单元422确定一组或多组量化的下采样补偿数据,其中每组量化的下采样补偿数据是对应于该单元中的各个ibl值的量化的下采样补偿值。qdscd确定单元422可以从存储器中获得用于该操作的基础查找表。
94.图6b示出了从一个单元的ibl值形成一列量化的下采样补偿数据的例子。如图6b所示,qdscd确定单元422通过基本查找表520将ibl数据的每个单元608转换为量化的下采样补偿值的行612。在一些实施例中,图6b所示的转换是图5g所示的转换的反操作。在一些实施例中,qdscd确定单元422定位基本查找表520中的第一索引(ibl0、ibl1、ibl2、...)与基本查找表520中的每个ibl值(ibl11、ibl12、...)具有相同值的第一索引(ibl0、ibl1、ibl2、...)在单元608中,并将每个ibl值映射到相应的第一索引。qdscd确定单元422可以根据在压缩过程中(图5g中说明的)相同的映射关系,确定子查找表604中的量化值(qdscd0、qdscd1、qdscd2、...)映射到各第一索引的量化值,并将第一索引映射到各自的量化值。然后,qdscd确定单元422可以确定行612中的每个量化的下采样补偿值(qdscd11、qdscd12、qdscd13、...)具有与相应的ibl值相同的排列关系,使其与各自的量化值具有相同的值。例如,在第612行中,qdscd11(即,对应于ibl11)作为第一元素排列,具有与qdscd0相同的值,qdscd12(即,对应于ibl12)作为第二元素排列,具有与qdscd1相同的值,qdscd13(即,对应
于ibl13)作为第三元素排列,具有与qdscd2、......在一些实施例中,单元608包括1
×
k ibl值。相应地,行612可包括1
×
k量化的下采样补偿值。在一些实施例中,单元608包括2
×
k ibl值。相应地,行612可包括2
×
k ibl量化的下采样补偿值。在一些实施例中,ibl值的m个单元转换为j
×
k量化的下采样补偿值的阵列。
95.后处理模块408可以对每个量化的下采样补偿值进行上采样,以形成解压缩补偿数据。上采样单元423可以执行该操作。图6c示出了一个示例性的上采样操作。如图6c所示,上采样单元423可将j
×
k量化的下采样补偿值632(例如,qdscd11、qdscd12、qdscd21、qdscd22、...)阵列631中的每个量化的下采样补偿值j
×
k量化的补偿值632按各自的块大小进行上采样。可以形成包括(mj)
×
(nk)补偿值的上采样数据阵列633。在一些实施例中,阵列633可用于补偿显示屏210的像素数据。在一些实施例中,对于每个量化的下采样补偿值632,块的大小可以是相同的,并且可以是m
×
n,这是在图5a中示出的下采样过程中先前确定的。即,对于每一个量化的下采样补偿值632,形成m
×
n上采样补偿值的块634。上采样单元423可以根据相应的量化的下采样补偿值632确定m
×
n上采样补偿值632。m
×
n上采样补偿值可以使用任何合适的上采样方法,例如偶数上采样方法和/或插值上采样方法来确定。在一些实施例中,通过使用偶数值上采样方法,块634中的每个上采样补偿值可以与相应的量化的下采样补偿值相同。例如,uscda=qdscd11,uscdb=qdscd12,uscdc=qdscd21,uscdd=qdscd22,...,等等。在一些实施例中,通过使用插值上采样方法,可以确定块634中的每个上采样补偿值与相邻块634中的每个上采样补偿值和相邻块634中的每个下采样补偿值之间的距离成线性比例。
96.在一些实施例中,后处理模块408包括控制信号生成单元(未示出),用于生成用于显示器102的控制信号。在一些实施例中,控制信号生成单元包括定时控制器(tcon)和时钟信号发生器。tcon可向显示器102的驱动器409提供各种使能信号。时钟信号发生器可向显示器102的驱动器409提供各种时钟信号。如上所述,控制信号108,包括使能信号和时钟信号,可以控制栅极扫描驱动器304按照栅极扫描顺序扫描相应的像素行,并控制源写入驱动器306按照显示数据集中的显示数据块的顺序写入每一组显示数据。换句话说,控制信号108可以使显示屏210中的像素按照一定的顺序以一定的速度刷新。如下面详细描述的那样,显示屏210的第一部分和第二部分中的像素的刷新顺序和速率可以通过控制信号产生单元根据控制逻辑104接收到相应的显示数据集的帧速率来确定。
97.如图4a,本实施例中的数据传输器406可操作性地耦合到预处理模块405,并被配置为通过存储器116向控制逻辑104发送每个帧中的显示数据流106。显示数据流106可包括图像的原始显示数据和补偿数据(例如,压缩的补偿数据),以应用于每帧中的相应像素。例如,在每一帧中,原始显示数据(例如,用于显示子图像的子图像)和一个或多个补偿值可以作为显示数据流106传输。在一个实施例中,在一个帧中,显示数据106还可以包括在被传送到控制逻辑104之前被压缩并存储到存储器116中的补偿数据。存储器116可以包括用于在处理器114和控制逻辑104之间缓存、缓冲和/或存储显示数据106的任何合适的存储装置。在一些实施例中,在处理器114和控制逻辑104之间不耦合存储器116。即,显示数据106,例如包括像素数据和压缩补偿数据,可以从处理器114传输到控制逻辑104,而不需要任何缓冲或存储。
98.数据传输器406可以是处理器114和控制逻辑104之间的任何合适的显示接口,例
如但不限于,显示串行接口(dsi)、显示像素接口(dpi)和移动工业处理器接口(mipi)联盟的显示总线接口(dbi)、统一显示接口(udi)、数字视觉接口(dvi)、高清晰度多媒体接口(hdmi)和displayport(dp)。基于数据传输器406采用的特定接口标准,显示数据流106可以与任何合适的时序信号,例如垂直同步(v-sync)、水平同步(h-sync)、垂直后廊(vbp)、水平后廊(hbp)、垂直前廊(vfp)和水平前廊(hvp),以相应的数据格式串联传输,这些信号用于组织和同步显示屏210上的像素阵列,并使每帧中的显示数据流106与显示屏210上的像素阵列同步。在一些实施例中,数据接收器407可从数据传输器406或存储器116接收任何原始显示数据和补偿数据(例如,压缩补偿数据),并将接收到的数据输出到后处理模块408,例如用于数据解压缩。
99.在一些实施例中,控制逻辑104和显示器102是设备的一部分,例如,智能电话或平板电脑,并且处理器114是设备外部的计算机的一部分(即,控制逻辑104的外部)。例如,处理器114可以是用于生成和压缩该设备的补偿数据的计算机的一部分。在一些实施例中,处理器114与控制逻辑104之间的数据传输是通过存储器116进行的,该存储器是诸如闪存之类的存储设备,用于由处理器114存储压缩的补偿数据。在一些实施例中,处理器114生成并压缩补偿数据,并将压缩的补偿数据存储在存储器116(例如,闪存)中。存储器116可以耦合到控制逻辑104,使得压缩的补偿数据被输入到控制逻辑104中以被解压缩。在这种情况下,没有像素数据存储在闪存中。控制逻辑104进一步解压缩压缩的补偿数据并基于补偿数据生成控制信号108。
100.图7a和7b示出了根据一个实施例的用于压缩补偿数据的方法700的流程图。图7b是图7a的延续。将参考诸如图1至图3的以上附图进行描述。5a-5k。但是,可以采用任何合适的电路,逻辑,单元或模块。该方法可以由可以包括硬件(例如,电路,专用逻辑,可编程逻辑,微代码等),软件(例如,在处理设备上执行的指令),固件的任何合适的电路,逻辑,单元或模块执行或其组合。应当理解,可能不需要所有步骤来执行本文提供的公开。此外,如本领域普通技术人员将理解的,一些步骤可以同时执行,或者以与图8所示不同的顺序执行。在一些实施例中,方法700的每个操作可以由预处理模块405执行。
101.从702开始,可以对多个补偿数据进行下采样以形成多个下采样的补偿数据(dscd)。在704处,可以基于降采样的补偿数据来确定多个量化值,并且可以基于该量化值来量化降采样的补偿数据,以形成多个量化的降采样的补偿数据(qdscd)。可以基于降采样的补偿数据来生成多个量化值,并且可以将多个量化值用于形成量化的降采样的补偿数据。在706,可以基于量化的下采样补偿数据和量化值来确定基本查找表。在一些实施例中,基本查找表包括以量化值的出现次数的降序排序和布置的量化值。在708,可以确定基本查找表的大小是否大于预定大小限制(size_bl)。如果是,则该方法进行到704,在该步骤中,增加量化的步长以减小基本查找表的大小。如果否,则该方法前进至710,其中可以基于基本查找表将量化的下采样的补偿数据转换为ibl数据的阵列。在712,可以将ibl数据划分为m个ibl值单元。在一些实施例中,每个单元包括一个或多个ibl值的行/列。在714,可以基于m个初始子查找表的出现次数来确定m个初始子查找表并对其进行排序,并且可以选择具有最高出现次数的n个。在716处,可以基于可变长度编码表和n个初始子查找表将ibl值的每个单元转换为码流。可以确定子查找表,子查找表的索引以及码流的码流大小。码流可以对应于基于ibl值和n个初始子查找表的单元而生成的n个初始码流之中具有最短码流大小的
初始码流。子查找表可以是用于生成码流的初始子查找表。该索引可以是用于生成码流的初始子查找表的索引。在718,可以存储基本查找表,n个初始子查找表以及每个单元的码流信息。每个单元的码流信息可以包括码流,子查找表,子查找表的索引以及码流的码流大小。
102.图8是根据一个实施例的用于对压缩的补偿数据进行解压缩的流程图方法800。将参考诸如图1至图3的以上附图进行描述。6a-6c。但是,可以采用任何合适的电路,逻辑,单元或模块。该方法可以由可以包括硬件(例如,电路,专用逻辑,可编程逻辑,微代码等),软件(例如,在处理设备上执行的指令),固件的任何合适的电路,逻辑,单元或模块执行。,或其组合。应当理解,可能不需要所有步骤来执行本文提供的公开。此外,如本领域普通技术人员将理解的,一些步骤可以同时执行,或者以与图8所示不同的顺序执行。在一些实施例中,方法800的每个操作可以由后处理模块408执行。
103.从802开始,可以读出基本查找表,n个初始子查找表以及每个单元的码流信息。每个单元的码流信息可以包括码流,子查找表,子查找表的索引以及码流的码流大小。在804,可以基于在压缩过程中使用的码流,子查找表和可变长度编码表(例如716),将每个单元的码流转换为对应的ibl值。在806,可以基于ibl值和基本查找表将每个单元的ibl值转换为至少一行量化的下采样补偿值。在808处,量化的下采样补偿值可以被上采样以形成解压缩的补偿数据。
104.上述发明的详细描述及其所描述的示例仅供说明和描述之用,不对本公开做出任何限制。因此,可以预期的是,本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献