System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向AV1调色板编码模式的高效k-means聚类硬件架构及方法技术_技高网

一种面向AV1调色板编码模式的高效k-means聚类硬件架构及方法技术

技术编号:41636862 阅读:5 留言:0更新日期:2024-06-13 02:32
本发明专利技术属于视频编码领域,公开了一种面向AV1调色板编码模式的高效k‑means聚类硬件架构及方法,本发明专利技术提出三条k‑means电路并行的架构,k‑means电路包括calc_indices和calc_centroids两个模块。calc_indices模块根据像素和簇中心的距离,来计算像素的索引,其中距离采用曼哈顿距离,索引值为像素和簇中心距离最小的簇编号。calc_centroids模块执行簇中心的更新,将索引值相同的像素累加并求平均值,作为下一次迭代的簇中心存储在C‑RAM中,本发明专利技术将不同块、同一块的k的聚类计算过程进行交织,从而提高硬件的利用率并减少取数次数。

【技术实现步骤摘要】

本专利技术属于视频编码领域,尤其涉及一种面向av1调色板编码模式的高效k-means聚类硬件架构及方法。


技术介绍

1、如今,视频压缩在通信技术中发挥着至关重要的作用,视频数据在互联网上占比已超过80%。av1由开放媒体联盟(aomedia)于2018年末发布。av1旨在超越上一代视频编码标准hevc和vp9。av1采用了几种先进的视频编码工具,包括调色板模式、块内复制和递归块划分树,以实现显著的编码增益。由于计算机生成内容的编码块中只有少量颜色,因此直接对调色板进行编码而不是传统的编码操作是更为有效的。当通过调色板模式进行编码时,一个编码单元中的颜色由调色板表示,并且块中的每个样本由调色板中一个条目的索引进行编码。在av1中,调色板模式被编码为特殊的帧内预测模式,其将对残差块执行变换和量化处理。调色板在一个块中最多包含8个条目,索引编码遵循对角线扫描顺序。

2、在av1的参考软件(libaom)中,使用k-means聚类算法生成调色板颜色表。然而,由于聚类迭代过程中存在数据依赖,无法实现并行执行,这给硬件实现带来了较大的时间消耗。不过,不同块之间以及同一块内的不同簇数k之间并不存在依赖关系。因此,可以通过块交织和块内k值的交织来设计流水线,从而降低时延并更充分地利用计算资源,使整个计算过程完全流水化,避免空闲等待,而迭代过程则可以通过重复像素数据流来实现。

3、在av1调色板编码中,遍历不同块大小和不同簇中心个数会导致计算复杂度高、计算时间长。

4、传统的k-means迭代过程存在数据依赖,无法并行执行,不利于硬件实现;

5、av1调色板编码需要遍历多种不同的块大小、不同簇中心个数导致计算量大;

6、k-means聚类的数据吞吐量要大。


技术实现思路

1、本专利技术目的在于提供一种面向av1调色板编码模式的高效k-means聚类硬件架构及方法,以解决上述的技术问题。

2、为解决上述技术问题,本专利技术的一种面向av1调色板编码模式的高效k-means聚类硬件架构及方法的具体技术方案如下:

3、一种面向av1调色板编码模式的高效k-means聚类硬件架构,包括blk_resize模块、control 模块、ser_resize模块、三条k-means电路和c_ram模块,原始像素data位宽为512bit,即64个8bit数据并行输入blk_resize模块,idx、init_centroids、iteration、k、n输入control 模块,idx为6bit表示当前数据编号,一笔数据为64个像素点,像素点个数n最大为1024,初始簇中心init_centroids的位宽为64,即最大可同时输入8个8bit的初始簇中心。簇个数k位宽为4bit,迭代次数iteration设定为4, data数据输入后首先进入blk_resize模块对数据进行排序,blk_resize模块的输出数据位宽为2048bit,即256个8bit数据并行输出,blk_resize模块1个cycle的输出经过ser_resize模块后转换为4个cycle的64个8bit数据并行输出,sar_resize模块的输出复制3份分别送入到3个并行的k-means模块中, k-means模块的输出为k个8bit的新簇中心,输出结果保存到c_ram模块中用于后续迭代,c_ram模块的大小为448x64,即最多可存储64个块,每个块7种不同的k对应的8个簇中心,地址由块编号和簇编号组成,每个地址可存储8个8bit的簇中心。

4、进一步的,所述blk_resize模块执行如下步骤:像素的排列一共有三种方式,每个块代表4x4的小块,块的序号即为输出顺序,排列方式由control模块输出的mdcnt信号控制,当mdcnt=1时,进行8x8、16x16、32x32的3种块大小并行k-means,当mdcnt=2时,进行16x4、16x8、32x16这3种块大小的并行k-means,当mdcnt=3时,进行4x16、8x16、16x32这3种块大小的并行k-means;blk_resize模块的输入位宽为512bit,输出位宽为2048bit,每4拍输入产生1拍输出。

5、进一步的,所述ser_resize模块是为了调整带宽与k-means的输入带宽适配,输入data_in为2048bit,输出为512bit,每1拍输入产生4拍输出,第1拍输出data_in的511-0bit;第2拍输出data_in的1023-512bit;第3拍输出data_in的1535-1024bit;第4拍输出data_in的2047-1536bit。

6、进一步的,所述k-means模块执行像素的聚类过程,所述k-means模块包括calc_indices和calc_centroids两个模块,所述calc_indices模块根据像素和簇中心的距离,来计算像素的索引,其中距离采用曼哈顿距离,索引值为像素和簇中心距离最小的簇编号;所述calc_centroids模块执行簇中心的更新,将索引值相同的像素累加并求平均值,作为下一次迭代的簇中心存储在c-ram中。

7、进一步的, k-means像素点并行度为64,即1个周期处理64个像素点,将不同块、同一块的不同k的聚类计算过程进行交织,每个块表示为block id@iter,其中block id是用于区分每个块的6位变量,k是不同的簇数,k从2-8变化,分别进行一次k-means计算,实现k交织,block id从0到63变化,实现块交织,ctu内所有数据都完成了一次k-means计算后,再进行第2次k-means迭代,block id重新从0开始,从第2次迭代开始,init_centroid从c-ram中读入,迭代4次后,输出centroids。

8、进一步的,所述calc_indices模块里一共有512个曼哈顿距离计算模块,所述calc_indices模块包含一个配置为减法的加法器和一个取绝对值模块,最多可同时进行64个像素和8个簇中心的曼哈顿距离计算,对计算好的距离取最小值,并输出相应的簇索引,在calc_indices模块里可同时算出64个数据的簇索引。

9、进一步的,所述calc_centroids模块内有8个sum寄存器和8个counter寄存器用于保存像素累加值和像素个数,当sum和counter累加完毕时,将数据送入除法器计算出新的簇中心,calc_centroids模块最多可并行计算簇0到簇7的簇中心更新。

10、进一步的,包括对除法器的简化,采用乘法来逆向实现除法,首先将[0,255]划分为[0,15],[16,31],...[240,255]这16个区间,将除数分别乘以16,32,...,256来判断除数落在哪个区间,再令temp等于被除数减去这个区间的最小值f_min,然后将除数依次从小到大乘以m属于[0,16]直到乘积大于temp,f_min+m即为商,本文档来自技高网...

【技术保护点】

1.一种面向AV1调色板编码模式的高效k-means聚类硬件架构,包括blk_Resize模块、control 模块、ser_Resize模块、三条k-means电路和C_RAM模块,其特征在于,原始像素Data位宽为512bit,即64个8bit数据并行输入blk_Resize模块,idx、Init_centroids、Iteration、k、n输入control 模块,idx为6bit表示当前数据编号,一笔数据为64个像素点,像素点个数n最大为1024,初始簇中心Init_centroids的位宽为64,即最大可同时输入8个8bit的初始簇中心。簇个数k位宽为4bit,迭代次数Iteration设定为4, Data数据输入后首先进入blk_Resize模块对数据进行排序,blk_Resize模块的输出数据位宽为2048bit,即256个8bit数据并行输出,blk_Resize模块1个cycle的输出经过ser_Resize模块后转换为4个cycle的64个8bit数据并行输出,sar_Resize模块的输出复制3份分别送入到3个并行的k-means模块中, K-means模块的输出为k个8bit的新簇中心,输出结果保存到C_RAM模块中用于后续迭代,C_RAM模块的大小为448X64,即最多可存储64个块,每个块7种不同的K对应的8个簇中心,地址由块编号和簇编号组成,每个地址可存储8个8bit的簇中心。

2.根据权利要求1所述的面向AV1调色板编码模式的高效k-means聚类硬件架构,其特征在于,所述blk_Resize模块执行如下步骤:像素的排列一共有三种方式,每个块代表4X4的小块,块的序号即为输出顺序,排列方式由control模块输出的mdcnt信号控制,当mdcnt=1时,进行8X8、16X16、32X32的3种块大小并行k-means,当mdcnt=2时,进行16X4、16X8、32X16这3种块大小的并行k-means,当mdcnt=3时,进行4X16、8X16、16X32这3种块大小的并行k-means;blk_Resize模块的输入位宽为512bit,输出位宽为2048bit,每4拍输入产生1拍输出。

3.根据权利要求1所述的面向AV1调色板编码模式的高效k-means聚类硬件架构,其特征在于,所述ser_Resize模块是为了调整带宽与k-means的输入带宽适配,输入data_in为2048bit,输出为512bit,每1拍输入产生4拍输出,第1拍输出data_in的511-0bit;第2拍输出data_in的1023-512bit;第3拍输出data_in的1535-1024bit;第4拍输出data_in的2047-1536bit。

4.根据权利要求1所述的面向AV1调色板编码模式的高效k-means聚类硬件架构,其特征在于,所述k-means模块执行像素的聚类过程,所述k-means模块包括calc_indices和calc_centroids两个模块,所述calc_indices模块根据像素和簇中心的距离,来计算像素的索引,其中距离采用曼哈顿距离,索引值为像素和簇中心距离最小的簇编号;所述calc_centroids模块执行簇中心的更新,将索引值相同的像素累加并求平均值,作为下一次迭代的簇中心存储在C-RAM中。

5.根据权利要求4所述的面向AV1调色板编码模式的高效k-means聚类硬件架构,其特征在于, k-means像素点并行度为64,即1个周期处理64个像素点,将不同块、同一块的不同k的聚类计算过程进行交织,每个块表示为block id@iter,其中block id是用于区分每个块的6位变量,k是不同的簇数,k从2-8变化,分别进行一次k-means计算,实现k交织,blockid从0到63变化,实现块交织,CTU内所有数据都完成了一次k-means计算后,再进行第2次k-means迭代,block id重新从0开始,从第2次迭代开始,Init_centroid从C-RAM中读入,迭代4次后,输出centroids。

6.根据权利要求4所述的面向AV1调色板编码模式的高效k-means聚类硬件架构,其特征在于,所述calc_indices模块里一共有512个曼哈顿距离计算模块,所述calc_indices模块包含一个配置为减法的加法器和一个取绝对值模块,最多可同时进行64个像素和8个簇中心的曼哈顿距离计算,对计算好的距离取最小值,并输出相应的簇索引,在calc_indices模块里可同时算出64个数据的簇索引。

7.根据权利要求4所述的面向AV1调色板编码模式的高效k-means聚类硬件架构,其特征在于,所...

【技术特征摘要】

1.一种面向av1调色板编码模式的高效k-means聚类硬件架构,包括blk_resize模块、control 模块、ser_resize模块、三条k-means电路和c_ram模块,其特征在于,原始像素data位宽为512bit,即64个8bit数据并行输入blk_resize模块,idx、init_centroids、iteration、k、n输入control 模块,idx为6bit表示当前数据编号,一笔数据为64个像素点,像素点个数n最大为1024,初始簇中心init_centroids的位宽为64,即最大可同时输入8个8bit的初始簇中心。簇个数k位宽为4bit,迭代次数iteration设定为4, data数据输入后首先进入blk_resize模块对数据进行排序,blk_resize模块的输出数据位宽为2048bit,即256个8bit数据并行输出,blk_resize模块1个cycle的输出经过ser_resize模块后转换为4个cycle的64个8bit数据并行输出,sar_resize模块的输出复制3份分别送入到3个并行的k-means模块中, k-means模块的输出为k个8bit的新簇中心,输出结果保存到c_ram模块中用于后续迭代,c_ram模块的大小为448x64,即最多可存储64个块,每个块7种不同的k对应的8个簇中心,地址由块编号和簇编号组成,每个地址可存储8个8bit的簇中心。

2.根据权利要求1所述的面向av1调色板编码模式的高效k-means聚类硬件架构,其特征在于,所述blk_resize模块执行如下步骤:像素的排列一共有三种方式,每个块代表4x4的小块,块的序号即为输出顺序,排列方式由control模块输出的mdcnt信号控制,当mdcnt=1时,进行8x8、16x16、32x32的3种块大小并行k-means,当mdcnt=2时,进行16x4、16x8、32x16这3种块大小的并行k-means,当mdcnt=3时,进行4x16、8x16、16x32这3种块大小的并行k-means;blk_resize模块的输入位宽为512bit,输出位宽为2048bit,每4拍输入产生1拍输出。

3.根据权利要求1所述的面向av1调色板编码模式的高效k-means聚类硬件架构,其特征在于,所述ser_resize模块是为了调整带宽与k-means的输入带宽适配,输入data_in为2048bit,输出为512bit,每1拍输入产生4拍输出,第1拍输出data_in的511-0bit;第2拍输出data_in的1023-512bit;第3拍输出data_in的1535-1024bit;第4拍输出data_in的2047-1536bit。

4.根据权利要求1所述的面向av1调色板编码模式的高效k-means聚类硬件架构,其特征在于,所述k-means模块执行像素的聚类过程,所述k-means模块包括calc_indices和calc_centroids两个模块,所述calc_indices模块根据像素和簇中心的距离,来计算像素的...

【专利技术属性】
技术研发人员:林家清黄晓峰崔燕唐然周方涛陈恒周洋陆宇殷海兵
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1