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

应用于调色板表导出的分层直方图计算的制作方法

2022-05-08 10:43:15 来源:中国专利 TAG:

应用于调色板表导出的分层直方图计算


背景技术:

1.相关技术描述
2.调色板译码在若干视频压缩标准(例如,高效率视频译码(hevc)标准、开放媒体视频联盟1(av1)译码标准)中使用以增加视频数据的可压缩性。调色板译码涉及对直方图进行计算和分类以确定候选调色板级别。用于调色板表导出的直方图计算所需的存储区大小随着像素位深度呈指数增长。如本文所用,术语“调色板表”被定义为存储多个条目的数据结构,其中每个条目存储映射到像素分量值的索引。对于8位、10位和12位视频,传统调色板译码技术所需的直方图箱数分别为256、1024和4096。
附图说明
3.通过结合附图参考以下描述可更好地理解本文所描述的方法和机制的优点,在附图中:
4.图1是计算系统的一种实现方式的框图。
5.图2是图像和对应像素分布的图示。
6.图3是计算机生成的屏幕内容图像和对应像素分布的图示。
7.图4是耦接到存储器的编码器的一种实现方式的框图。
8.图5示出根据一种实现方式的给定块的样本直方图。
9.图6示出根据一种实现方式的在第一道次之后的给定块的抽取样本直方图。
10.图7示出根据一种实现方式的前几个抽取候选箱的选择。
11.图8示出根据一种实现方式的第二道次直方图。
12.图9是像素分量的位的一种实现方式的图示。
13.图10是用于生成用于调色板表导出的双道次直方图的过程的一种实现方式的框图。
14.图11是示出用于生成用于调色板表导出的多道次直方图的方法的一种实现方式的通用流程图。
15.图12是示出用于作为调色板表导出的一部分生成多个直方图道次的方法的一种实现方式的通用流程图。
16.图13是示出用于生成用于调色板表导出的多个直方图道次的方法的一种实现方式的通用流程图。
17.图14是示出用于计算用于调色板表导出的多道次直方图的方法的一种实现方式的通用流程图。
18.图15是示出用于使用调色板表对视频/图像块进行编码的方法的一种实现方式的通用流程图。
具体实施方式
19.在以下描述中,阐述了众多具体细节以提供对本文所呈现的方法和机制的透彻理
解。然而,本领域普通技术人员应认识到,可在没有这些具体细节的情况下实践各种实现方式。在一些情况下,并未详细示出众所周知的结构、部件、信号、计算机程序指令和技术,以避免混淆本文所描述的方法。应了解,为了使说明简单清晰,附图所示的元件未必按比例绘制。例如,一些元件的尺寸可相对于其他元件放大。
20.本文公开了用于实现用于调色板表导出的分层技术的各种系统、设备和方法。在一种实现方式中,编码器计算视频帧的像素分量值(即,颜色值)的最高有效位(msb)的第一部分的第一道次直方图。然后,编码器从第一道次直方图选择给定数量的最高像素计数箱。如本文所用,术语“箱”被定义为指定一个或多个值的区间。箱通常被指定为变量的连续非重叠区间。在这种情况下,变量是像素分量值,并且每个箱指定值范围,其中范围的大小由多少像素分量值位落在msb的第一部分之外确定。
21.在从第一道次直方图选择给定数量的最高像素计数箱之后,编码器然后通过评估来自像素分量值的一个或多个另外的位来增加这些所选择最高像素计数箱的粒度。然后针对像素分量值的msb的原始第一部分和一个或多个另外的位的级联计算第二道次直方图,并且从第二道次直方图选择最高像素计数箱。调色板表是基于来自第二道次直方图的这些最高像素计数箱导出的,并且视频帧是使用调色板表编码的。通过使用多道次直方图方法,与传统调色板表导出技术相比,存储器需求减少。
22.在一种实现方式中,像素位被划分成若干群组进行分层操作,从“m”个最高有效位(msb)开始,并通过添加“n1”个位、“n2个位”等扩展到其余位。针对“m”个msb计算第一直方图,并且然后选择来自此第一直方图的前几个箱。这前几个箱被扩展为包括“n1”个位,并且然后针对这些扩展箱计算第二直方图。选择来自第二直方图的前几个箱,并且这些箱被扩展为包括“n2”个位。在一种实现方式中,此过程一直持续到所有像素分量值位都已被评估为止。为了此讨论目的,假设“m”、“n1”和“n2”是正整数。应注意,所选择的前几个箱的数量“m”、“n1”和“n2”以及所执行的道次的数量是灵活的并且可随着实现方式而变化。这些值是基于简单硬件实现方式与性能之间的权衡调整的。
23.现在参考图1,示出计算系统100的一种实现方式的框图。在一种实现方式中,计算系统100至少包括编码器105、一个或多个处理器110、输入/输出(i/o)接口120、总线125以及一个或多个存储器装置130。在其他实现方式中,计算系统100可包括其他部件和/或计算系统100可以不同方式布置。在一种实现方式中,编码器105包括用于实现视频编解码器的逻辑。视频编解码器对未压缩视频流进行编码和/或对压缩视频流进行解码。在一种实现方式中,视频编解码器根据一种或多种视频压缩标准进行操作。应注意,如本文所用,术语“编码器”和“视频编解码器”可以是指视频/图像解码器、视频/图像编码器或视频编解码器。编码器105表示任何合适的硬件和/或软件组合。虽然编码器105被示出为不同于一个或多个处理器110的单独单元,但应理解,编码器105的一部分或全部可在一个或多个处理器110上执行或实现。
24.一个或多个处理器110表示任何数量和类型的处理单元(例如,中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、专用集成电路(asic))。在一种实现方式中,与编码器105相关联的处理中的一些由一个或多个处理器110执行。一个或多个存储器装置130表示任何数量和类型的存储器装置。例如,一个或多个存储器装置130中的存储器的类型可包括动态随机存取存储器(dram)、静态随机存取存储
器(sram)、nand闪存存储器、nor闪存存储器、铁电随机存取存储器(feram)等。一个或多个存储器装置130可由编码器105和一个或多个处理器110访问。i/o接口120表示任何数量和类型的i/o接口(例如,外围部件互连(pci)总线、pci扩展(pci-x)、pcie(pci express)总线、吉比特以太网(gbe)总线、通用串行总线(usb))。各种类型的外围装置可耦接到i/o接口120。此类外围装置包括(但不限于)显示器、键盘、鼠标、打印机、扫描仪、操纵杆或其他类型的游戏控制器、媒体记录装置、外部存储装置、网络接口卡等等。
25.在各种实现方式中,计算系统100是计算机、膝上型计算机、移动装置、游戏控制台、服务器、流式传输装置、可穿戴装置或者各种其他类型的计算系统或装置中的任一种。应注意,计算系统100的部件的数量因实现方式而不同。例如,在其他实现方式中,存在与图1所示数量相比更多或更少的每种部件。还应注意,在其他实现方式中,计算系统100包括图1中未示出的其他部件。另外,在其他实现方式中,计算系统100以与图1所示不同的方式进行结构化。
26.现在转向图2,示出图像205和对应像素分布210的图示。图2所示的图像205是在图像处理中被广泛用作测试图像的众所周知的莱娜图像。此64x64莱娜图像205的像素分布210示出在图2的底部处。像素分布210示出图像205中的像素如何跨不同的像素值分布。具有如像素分布210所示的连续色调对于由相机捕获的自然图像或视频帧来说是常见的。
27.现在参考图3,示出计算机生成的屏幕内容图像305和对应像素分布310的图示。图像305是计算机生成的屏幕截图的一个示例,并且像素分布310示出如何跨相对少量的像素分量值存在窄的像素分布。如像素分布所示,图像305包括有限的几种不同颜色。这是计算机生成的屏幕内容的常见分布类型,并且对于这些类型的计算机生成的图像,调色板译码是对这些图像进行编码以实现高压缩比的有效方式。除了计算机生成的屏幕截图之外的其他类型的图像也可受益于调色板译码。
28.现在转向图4,示出耦接到存储器430的编码器405的一种实现方式的框图。在一种实现方式中,编码器405包括具有分箱控制器415、选择单元420和调色板表生成单元425的控制逻辑410。在另一种实现方式中,编码器405由执行程序指令的处理器实现,并且在此实现方式中,分箱控制器415、选择单元420和调色板表生成单元425由程序指令而不是利用控制逻辑来实现。在其他实现方式中,分箱控制器415、选择单元420和调色板表生成单元425使用硬件和软件的组合来实现。
29.编码器405耦接到表示任何数量和类型的存储器装置的存储器430。在一种实现方式中,存储器430存储将由编码器405编码的视频帧。视频块435表示此视频帧的块中的一个。用于对视频块435进行编码的技术可用于视频帧的其他块,以及用于视频序列中的其他视频帧。替代地,视频块435可以是图像的单个块。在一种实现方式中,视频块435作为多个像素分量值存储在存储器430中。作为编码过程的一部分,分箱控制器415从视频块435的像素分量值创建第一道次直方图440a。在一种实现方式中,分箱控制器415针对每个单独的像素分量(例如,红色、绿色、蓝色)创建单独的第一道次直方图440a。为了创建第一道次直方图440a,由分箱控制器415执行的第一步骤是将像素分量值的整个范围划分成一系列区间。第一步骤也称为将值范围“分箱”,其中每个区间称为“箱”。箱通常被指定为值范围的连续非重叠区间。接下来,分箱控制器415对来自视频块435的多少像素分量值落在每个区间中进行计数。例如,在一种实现方式中,分箱控制器415检索视频块435的像素分量值,并且然
后分箱控制器415将每个像素分量值分配给其对应箱。在一种实现方式中,每个箱使用每次将像素分配给相应箱时就递增的计数器来实现。
30.在一种实现方式中,第一道次直方图440a的每个箱表示对应于给定数量的msb的像素分量值范围。给定msb数可根据实现方式而变化。例如,在一种实现方式中,第一道次直方图440a的每个箱表示对应于每个像素分量值总共八个位中的六个msb的范围。通过使用少于总数的位来生成第一道次直方图440a的箱,用于将第一道次直方图440a存储在存储器430中的存储需求被降低。例如,如果使用八个位中的六个msb来生成第一道次直方图440a,则与如果使用所有八个位的情况下的256个箱相比,仅创建了64个箱。在此示例中,每个像素分量值由分箱控制器415基于值的6个msb分配给其相应分箱。在其他实现方式中,对于更高位深度视频(例如,每样本12个位、每样本16个位)和/或如果更多像素分量值位从箱分类排除,则可获得更大量的存储节省。
31.在生成第一道次直方图440a并将其存储在存储器430中之后,第一道次直方图440a的箱由选择单元420分类。例如,基于多少像素值落在每个箱中对箱从最高到最低进行分类。然后,选择单元420选择具有最多像素值的给定数量的箱。例如,在一种实现方式中,选择单元420选择具有最多像素值的八个箱。在其他实现方式中,选择单元420在第一道次直方图440a中的所有箱之中选择具有最高像素计数(即,最高数量的像素值)的其他数量的箱。接下来,针对这些所选择箱扩展正在评估的位数,并且然后针对所扩展箱生成第二道次直方图440b。例如,如果选择单元420选择了前八个箱,并且这些箱扩展了两个位,则第二道次直方图440b将具有总共32个箱。然后根据多少像素值落在每个箱中对这些箱进行分类。然后,根据像素值计数选择前几个箱。所选择的前几个箱的数量根据实现方式而变化。
32.在一种实现方式中,调色板表生成单元425使用从第二道次直方图440b选择的前几个箱来导出用于对视频块435进行编码以创建编码块455的调色板表450。替代地,可通过扩展针对像素分量值评估的位数来执行一个或多个另外的道次以生成更多直方图。在一些情况下,如果像素值的分布如通常在自然(即,非计算机生成的)视频帧中发现的那样散布在大量箱中,则编码器405将决定不对视频块435使用调色板模式编码。在一种实现方式中,在生成第一道次直方图440a之后做出不使用调色板模式编码的决定。第一道次直方图440a的分析可确定调色板模式编码是否适合视频块435。在不使用调色板模式编码的情况下,可使用各种其他类型的常规编码技术中的任一种来对视频块435进行编码。
33.应注意,可对整个视频帧或其一部分执行上述过程。此外,针对整个视频帧生成的调色板表可用于对视频流中的后续视频帧进行编码。还注意,在另一种实现方式中,视频块435可以是图像的块。应理解,将控制逻辑410划分成分箱控制器415、选择单元420和调色板表生成单元425仅指示一种实现方式。在另一种实现方式中,单个控制单元可执行分箱控制器415、选择单元420和调色板表生成单元425的功能。在其他实现方式中,可部署将控制逻辑410划分成单独单元的其他方式。
34.在一种实现方式中,编码块455包括调色板表450的编码版本和具有将视频块435的像素映射到调色板表450的索引值的颜色索引图。调色板表450表示用于对视频块435的像素分量进行编码的任何数量的调色板表。例如,在一种实现方式中,调色板表450包括用于红色分量的第一表、用于绿色分量的第二表和用于蓝色分量的第三表。在另一种实现方式中,调色板表450是表示不同像素分量的组合的单个表。所生成的颜色索引图可使用任何
合适的编码技术进行编码。例如,在一种实现方式中,各个索引值使用游程长度编码技术进行编码。对各个索引值进行编码的其他方式是可能的并且是可预期的。
35.现在参考图5,示出给定块的样本直方图500的一种实现方式。直方图500是直方图的一个示例,其具有对应于64个可能的像素级别的64个不同箱。如本文所用,术语“直方图”被定义为图像/帧的给定块的每个像素分量值的出现频率。应注意,块可更一般地称为“译码单元”,其中译码单元的大小根据实现方式而变化。在一种实现方式中,译码单元是8x8像素块。在另一种实现方式中,译码单元是整个图像/帧。在其他实现方式中,译码单元可以是其他大小和/或布置的像素。直方图500的示例性分布仅出于说明目的而示出。y轴量度给定块中具有对应像素级别的像素的数量。出于本讨论的目的,假定给定块具有多个像素并且每个像素具有用于一个或多个信道(例如,红色、绿色、蓝色)中的每一个的数值。
36.为了生成直方图500,需要64个单独箱的存储。对于每个像素分量具有其他数量的位的其他直方图,当针对每个可能像素级别生成直方图时将需要其他数量的箱。例如,对于10位像素分量,将需要1024个存储箱。对于12位像素分量,将需要4096个存储箱。随着每个像素分量级别的位数增加,存储需求呈指数增长。
37.现在转向图6,示出在第一道次之后的给定块的抽取样本直方图600的一种实现方式的图示。图6的讨论是来自图5的直方图500的讨论的继续。直方图600包括与直方图500所示的相同的跨像素分量级别的像素分布,不同的是现在每个箱涵盖多个像素分量级别。因此,直方图600通过仅评估每个像素的位的子集而具有减少数量的箱。
38.如直方图600所示,每个矩形是中间箱,其为四个箱的集合。在此实例中,直方图600评估像素分量值的四个最高有效位(msb)。仅使用四个msb对应于总共16个箱。这有助于将64个箱(用于图5的直方图500)的存储要求减少到直方图600的16个箱。在其他实现方式中,第一道次直方图可评估其他数量的msb。
39.现在参考图7,示出从样本直方图选择前几个抽取候选箱的一种实现方式的图示。图7的讨论是来自图6的直方图600的讨论的继续。在基于如直方图600所示的像素msb的子集创建候选箱之后,选择具有最高像素计数的前四个候选箱。这四个所选择抽取候选箱705a-d在直方图700中示出为竖直矩形。应理解,前四个抽取候选箱705a-d的选择仅指示一种实现方式。在其他实现方式中,可从抽取直方图选择另一数量(例如,2个、8个)的前几个抽取候选箱。
40.现在转向图8,示出第二道次直方图800的一种实现方式的图示。图8的讨论是来自图7的直方图700的讨论的继续。在选择如直方图700所示的前四个候选箱705a-d之后,直方图800通过将两个另外的位添加到正在评估的像素分量位来细化。这将箱的数量从四个增加到16个。在一种实现方式中,对于8位图像或视频帧,多道次直方图过程将在此时停止,并且调色板表将从这16个箱中的前8个箱导出。对于每个像素分量具有多于8个位的图像,过程将通过选取前几个候选箱并且然后将这些箱扩展另外的两个位来继续另一道次。所选择候选位的数量可根据实现方式而变化。
41.现在参考图9,示出像素分量900的位的一种实现方式的图示。像素分量900表示用于存储源图像或视频帧的特定颜色空间的不同颜色值中的一个的任何数量的位。例如,在一种实现方式中,像素分量900的三个单独实例用于对图像的每个像素在红色、绿色和蓝色(rgb)颜色空间中的红色、绿色和蓝色颜色值进行编码。替代地,在另一种实现方式中,像素
分量900的三个单独实例对每个像素在(yuv)颜色空间中的亮度和色度值进行编码。在其他实现方式中,像素分量900可将像素的每个像素分量存储在其他类型的颜色空间中。更一般地,像素分量900可称为到颜色空间中的索引。
42.在一种实现方式中,使用像素分量900的“m”个群组1位同时排除像素分量900的其他最低有效位(lsb)来针对图像/帧的块计算第一道次直方图。如图所示,“m”等于六,但应理解这仅指示一种实现方式。前“p1”个候选箱是从此第一道次直方图的候选箱选取的,“p1”的值根据实现方式而变化。接下来,通过将“p1”个候选箱扩展为在直方图计算中包括“n1”个群组2位,针对这“p1”个候选箱计算第二道次直方图。如图所示,“n1”等于二,但应理解这仅指示一种实现方式。前“p2”个候选箱是从第二道次直方图选取的,“p2”的值根据实现方式而变化。可针对“n2”个群组3位和“n3”个群组4位执行另外的道次。在一种实现方式中,在已经评估了像素分量900的所有位之后,使用来自最后一组箱的前几个箱导出调色板表。
43.现在转向图10,示出针对调色板表导出生成双道次直方图的过程1000的一种实现方式的框图。过程1000中的第一步骤是减少在生成第一直方图时评估的位的数量。这增加了落在每个箱中的像素分量值的数量。例如,如果排除两个位,则四个潜在像素分量值将落在每个箱中。这是在过程1000的顶部处示出的示例。对于第一次扫描,直方图具有对应于六个msb的仅64个箱(b0-b63)。然后,从箱b0-b63选择前16个箱(t0-t15)。前16个箱是来自正在处理的块的具有最多像素分量值的箱。
44.在选择在图10中示出为t0-t15的前16个箱之后,通过从第二次扫描的像素分量值评估另外两个lsb,将每个箱扩展成四个箱。对于t0,这些箱被示出为b'(0,0)、b'(0,1)、b'(0,2)和b'(0,3)。对于t1,第二次扫描的箱是b'(1,0)、b'(1,1)、b'(1,2)和b'(1,3)。第二次扫描的其他箱遵循与来自第一次扫描的其他前几个箱t2-t15相同的模式。作为第二次扫描的结果,前16个箱被扩展成64个箱。对这64个箱进行分类,并且然后选择前8个箱(t'0-t'7)。应注意,从第二次扫描选择的特定数量的前几个箱仅指示一种实现方式。同样,用于过程1000的其他值仅指示一种特定实现方式。其他实现方式可使用其他值。
45.现在参考图11,示出用于生成用于调色板表导出的多个道次直方图的方法1100的一种实现方式。出于讨论的目的,此实现方式中的步骤和图12至图15的步骤依序示出。然而,应注意,在所描述方法的各种实现方式中,所描述要素中的一个或多个同时执行,以与所示不同的顺序执行,或者被完全省略。还根据需要执行其他另外的要素。本文所描述的各种系统或设备中的任一者被配置来实现方法1100。应注意,方法1100意图对应于(图10的)过程1000。
46.当方法1100被启动时,编码器使用每个像素分量值的前6个msb(框1105)。接下来,编码器针对像素分量值的前6个msb收集具有64个箱的直方图(框1110)。然后,编码器按降序对64个箱进行分类,并且从这64个箱选择前16个箱(框1115)。接下来,编码器通过将6个msb与2个lsb组合来将前16个箱扩展成64个箱,并且然后编码器收集具有这64个箱的直方图(框1120)。编码器按降序对64个箱进行分类并且从64个箱选择前8个箱(框1125)。在框1125之后,方法1100结束。然后,编码器在对对应块进行编码时将这些所选择8个箱用于调色板表导出。
47.现在转向图12,示出用于作为调色板表导出的一部分生成多个道次直方图的方法
1200的一种实现方式。编码器接收图像的块的给定像素分量的n位像素分量值(框1205)。应注意,块可更一般地称为“译码单元”并且图像可以是视频帧。译码单元(例如,8x8块)的大小可根据实现方式而变化。在另一种实现方式中,译码单元是整个图像或视频帧。在其他实现方式中,译码单元是图像的各种其他部分中的任一个,或者译码单元可对应于多个图像(例如,视频序列的视频帧)。出于此讨论的目的,假设“n”是正整数。n的值可根据实现方式而变化。例如,8位、10位和12位像素分量是在各种实现方式中常用的值。每个像素分量的其他数量的位也是可能的。在一种实现方式中,给定像素分量是rgb颜色空间的红色、绿色或蓝色中的一者。在另一种实现方式中,给定像素分量表示yuv或ycbcr颜色空间的亮度或色度值。在其他实现方式中,可使用其他类型的像素分量。
48.接下来,编码器基于n个像素分量值位的第一部分将像素分量值分组到第一多个箱中(框1210)。第一多个箱共同表示块的像素值的直方图。每个箱包括与指派给箱的位的第一部分相匹配的那些像素分量值。例如,在一种实现方式中,n是八,并且第一部分是六个位,并且第一箱被指派位“111111”,第二箱被指派位“111110”,等等。“11111111”、“11111110”、“11111101”和“11111100”的像素分量值被指派给第一箱,“11111011”、“11111010”、“11111001”和“11111000”的像素分量值被指派给第二箱,等等。在其他实现方式中,n是其他数量和/或第一部分包括另一数量的位。
49.然后,编码器在第一多个箱之中选择具有最高像素计数的第一组箱(框1215)。例如,在一种实现方式中,在框1215中,编码器选择具有最高像素计数的八个箱。在另一种实现方式中,在框1215中,编码器选择具有最高像素计数的16个箱。在其他实现方式中,编码器选择具有最高像素计数的某个其他数量的箱。
50.接下来,编码器基于像素分量值位的第二部分将来自第一组箱的像素分量值分组到第二多个箱中,其中第二部分大于第一部分(框1220)。换言之,在框1220中,编码器通过增加用于将像素分量值分类到箱中的位数来将第一组箱扩展成第二多个箱。然而,第二多个箱全部包含在第一组箱内,因此位数的增加仅适用于被分组到第一组箱中的那些像素分量值。在一种实现方式中,第二部分比第一部分大两个位。在其他实现方式中,第二部分比第一部分大其他数量的位。
51.然后,编码器在第二多个箱之中选择具有最高像素计数的第二组箱(框1225)。第二组箱中的箱的数量根据实现方式而变化。接下来,编码器从指派给第二组箱的像素分量值导出调色板表(框1230)。然后,编码器基于调色板表对块的像素的给定像素分量进行编码(框1235)。在框1235之后,方法1200结束。通过使用方法1200,用于生成用于调色板表编码的直方图的存储需求被降低,因为与原本使用传统技术的情况将计算的相比,更少数量的箱被计算。应注意,可对块的每个像素分量执行方法1200。图像的后续块可以类似方式编码,或者调色板表可重新用于其他块。
52.现在参考图13,示出用于生成用于调色板表导出的多个直方图道次的方法1300的一种实现方式。编码器针对第一群组的箱生成第一直方图,其中第一群组中的每个箱对应于多个潜在像素值(框1305)。应注意,每个箱的潜在像素值的数量取决于针对第一直方图多少位未进行评估。例如,如果视频帧的每个像素具有12个位,并且在第一直方图中仅评估了六个msb,则剩下六个lsb,这意味着每个箱存在64个潜在像素值。在第一直方图之后,其他实现方式的每个箱将具有其他数量的潜在像素值。
53.接下来,编码器从第一群组的箱选择具有最高像素计数的第一给定数量的箱(框1310)。第一给定数量可根据实现方式而变化。然后,编码器确定是否应生成另一直方图(条件框1315)。例如,在一种实现方式中,如果像素分量值中存在更多位尚未被评估,则编码器可决定生成另一直方图。
54.如果编码器确定应生成另一直方图(条件框1315,“是”支路),则编码器扩展从第(n-1)群组的箱评估的像素值的位数以创建第n群组的箱(框1320)。第n群组是指第二群组、第三群组、第四群组,等等,这取决于已经生成多少直方图。否则,如果编码器确定不应生成另一直方图(条件框1315,“否”支路),则编码器基于所选择箱数导出用于对视频帧的给定块进行编码的调色板表(框1335)。
55.在框1320之后,编码器针对第n群组的箱生成另一(即,第n)直方图(框1325)。然后,编码器从第n群组的箱选择具有最高像素计数的给定数量的箱(框1330)。给定数量可根据实现方式和/或根据正在生成的直方图的特定分层级别而变化。在框1330之后,方法1300返回到条件框1315。
56.现在转向图14,示出计算用于调色板表导出的多道次直方图的方法1400的另一种实现方式。编码器计算像素分量值的六个最高有效位(msb)的直方图(框1405)。应注意,直方图包括多个箱,其中每个箱包括具有对应于所述箱的相同六个msb的像素分量值的像素数的计数。接下来,编码器确定像素分量值中是否存在任何剩余位(条件框1410)。例如,在框1405之后,如果像素分量值具有八个位,则在六个msb之后还剩下两个位,并且因此条件块1410将评估为“是”。
57.如果像素分量值中存在任何剩余位(条件框1410,“是”分支),则编码器从直方图选取多个箱中的前16个箱(框1415)。在其他实现方式中,编码器选择具有最高像素的某个其他数量的箱。否则,如果像素分量值中不存在剩余位(条件框1410,“否”支路),则编码器从直方图选取多个箱中的前8个箱(框1420)。这前8个箱对应于块中最突出的颜色。在框1420之后,前8个箱用于调色板表导出(框1430),并且然后方法1400结束。在框1415之后,编码器通过增加两个位来计算直方图(框1425)。在框1425之后,方法1400返回到条件框1410。应注意,在方法1400中指定的位数和箱数表示一种特定实现方式。在其他实现方式中,这些数量可变化。
58.现在参考图15,示出用于使用调色板表对视频/图像块进行编码的方法1500的一种实现方式。编码器使用多级分层直方图生成过程标识块中给定数量的最频繁出现的像素分量值(框1505)。在(图11至图14的)方法1100、1200、1300和1400中描述了使用多级分层直方图生成过程来标识块中给定数量的最频繁出现的像素分量值(即,最突出的颜色)的不同示例。这些方法中的任一种,或其他类似的方法,都可用于实现框1505。给定数量可以是任何合适的整数值(例如,8、16、32),其中值根据实现方式而变化。
59.接下来,编码器基于给定数量的最频繁出现的像素分量值选择调色板表(框1510)。在一种实现方式中,调色板表包括七个最频繁出现的像素分量值,从而允许到表中的索引利用三个位进行编码,其中第八个索引用于不映射到调色板表中的任何值的转义像素。在其他实现方式中,调色板表具有用于其他数量的最频繁出现的像素分量值的其他数量的条目。在一种实现方式中,每个像素分量(例如,亮度、色度)具有其自己的调色板表。在另一种实现方式中,创建单个调色板表作为单独像素分量的代表性组合。在另一种实现方
式中,针对单个像素分量(例如,红色)选择调色板表,并且然后将其共享和/或修改以与其他像素分量(例如,蓝色、绿色)一起使用。上述替代方案是可能的并且是可预期的。
60.然后,利用将块的像素映射到调色板表中的条目的索引值来创建颜色索引图(框1515)。例如,块中的每个像素被转换为到调色板表中的索引,其中颜色索引图包括块中每个像素的索引。如果像素具有不包括在调色板表中的值,则可将像素编码为转义像素,并且可将像素的实际值包括在颜色索引图中或单独结构中。接下来,将调色板表和颜色索引图编码为块的表示(框1520)。可使用用于对调色板表进行编码和用于对颜色索引图进行编码的各种编码技术中的任一种。然后,经编码调色板表和颜色索引图被存储和/或传送到接收器(框1525)。在框1525之后,方法1500结束。应理解,方法1500也可用于对整个图像或视频帧,而不仅仅是图像/帧的块进行编码。
61.对于涉及将经编码调色板表和颜色索引图发送到接收器的实现方式,接收器将包括解码器,所述解码器将颠倒上述步骤以从经编码调色板表和颜色索引图重新创建块。然后可将重新创建的块驱动到显示器。在一种实现方式中,可针对视频序列的每个视频帧的块重复此过程。替代地,可针对整个第一视频帧发送经编码调色板表,并且然后某个数量的后续视频帧可重新使用此调色板表。对于后续视频帧,仅视频帧的颜色索引图被发送到接收器。在另一种实现方式中,针对帧的块生成的经编码调色板表被重新用于帧的其他块和/或其他帧的块。在一些情况下,给定块的调色板表是从对应于另一块的调色板表导出的。例如,在一种实现方式中,将增量调色板表(即,差异调色板表)应用于相邻块的调色板表以生成给定块的调色板表。从先前使用的调色板表导出新调色板表的其他方式是可能的并且是可预期的。
62.在各种实现方式中,使用软件应用程序的程序指令来实现本文所描述的方法和/或机制。例如,设想了可由通用处理器或专用处理器执行的程序指令。在各种实现方式中,此类程序指令由高级编程语言表示。在其他实现方式中,将程序指令从高级编程语言编译成二进制形式、中间形式或其他形式。替代地,编写描述硬件的行为或设计的程序指令。此类程序指令由诸如c的高级编程语言表示。替代地,使用诸如verilog的硬件设计语言(hdl)。在各种实现方式中,程序指令存储在多种非暂时性计算机可读存储介质中的任一种上。存储介质可由计算系统在使用期间访问以将程序指令提供给计算系统以用于程序执行。一般来讲,这种计算系统至少包括一个或多个存储器和被配置来执行程序指令的一个或多个处理器。
63.应当强调的是,上述实现方式仅是实现方式的非限制性示例。一旦完全了解以上公开内容,许多变化和修改对于本领域技术人员来说将变得显而易见。以下权利要求意图被解释为涵盖所有此类变化和修改。
再多了解一些

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

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

相关文献