一种基于矩阵分解的视频编码方法技术

技术编号:25315605 阅读:41 留言:0更新日期:2020-08-18 22:32
本发明专利技术属于视频编码技术领域,具体涉及一种基于矩阵分解的视频编码方法。本发明专利技术的方法,主要是对视频编码过程中变换量化的步骤进行改进,基于矩阵分解的方法,将变换矩阵分解成4*4矩阵,并将预测过程中得到的残差矩阵也进行同样的分解,从而简化残差矩阵的变换过程,实现快捷地,无损失地进行残差矩阵的变换,进而提高编码的速度。

【技术实现步骤摘要】
一种基于矩阵分解的视频编码方法
本专利技术属于视频编码
,具体涉及一种基于矩阵分解的视频编码方法。
技术介绍
视频编码包括:预测、变换量化和熵编码过程。如图1所示,输入的原始视频序列经过预测后得到残差信号,目的是去除图片间的空间冗余,它利用已编码的重建信息作为参考信息进行预测,然后残差信号经过变换使残差信号的能量更一步集中,接下来进行量化,对高频信号采用更大的量化步长,而对于低频信号使用更小的量化步长,保证图像基本信息没有损失。最后是熵编码过程,它将非二进制编码信息编码为二进制信息。虽然最新的编码器能够获得很好的压缩比,视频质量的损失也很小,但是因为复杂度太高,实时性不足,大部分企业仍旧倾向于使用更早版本的编码器,而不使用复杂度高的编码器。
技术实现思路
本专利技术的目的,就是针对上述问题,提出一种可以提高编码速度的基于矩阵分解的视频编码方法。本专利技术的技术方案为:一种基于矩阵分解的视频编码方法,包括以下步骤:S1、输入视频后,获取每一帧的像素矩阵,定义为大小为M*N的矩阵,然后进行逐帧处理,将当前正在处理的帧记为F;S2、将帧F划分为不同大小的块,对每一块进行预测,获得预测像素值Prx,y,再根据原始像素值Orx,y,得到残差矩阵R:R=Orx,y-Prx,yS3、对残差矩阵R进行变换量化:对变换矩阵T进行分解,设变换矩阵T为DCT-4矩阵:或DST-4矩阵:Ti(j)表示矩阵第i行第j列的元素;r>将2N*2N大小的变换矩阵T,分解为4*4大小的小型矩阵,每个矩阵包含原矩阵的16个元素,分别位于第i行,第j列;第2N-1+1-i行,第j列;第2N-1+i行,第j列;第2N+1-i行,第j列;第i行,第2N-1+1-j列;第2N-1+1-i行,第2N-1+1-j列;第2N-1+i行,第2N-1+1-j列;第2N+1-i行,第2N-1+1-j列;第i行,第2N-1+j列;第2N-1+1-i行,第2N-1+j列;第2N-1+i行,第2N-1+j列;第2N+1-i行,第2N-1+j列;第i行,第2N+1-j列;第2N-1+1-i行,第2N+1-j列;第2N-1+i行,第2N+1-j列;第2N+1-i行,第2N+1-j列;共将2N*2N大小的变换矩阵分解为2N-2*2N-2个4*4矩阵;将残差矩阵R按照相同的方式分解为4*4大小的矩阵,得到2N-2*2N-2个4*4矩阵;计算T·R得到变换之后的残差矩阵Rtr,其中上标tr表示矩阵R经过变换。将变换之后的残差矩阵进行量化:其中Quantx,y是量化结果,Round表示进行四舍五入,step表示量化步长;S4、对量化结果进行熵编码:将变换块分解成4*4大小,然后扫描系数,从最后一个系数开始扫描,每一个4*4块扫描过程变成一个一维数组,然后对一维数组进行编码,首先编码一维数组的最后一个非零系数的位置,然后编码其它非零系数的位置,最后再对非零系数的幅值进行编码,全部完成之后输出码流。本专利技术的有益效果为,相对现有技术,本专利技术能够更快捷地,无损失地进行残差矩阵的变换,从而有效提高了编码速度。附图说明图1为视频编码过程示意图。具体实施方式下面对本专利技术的技术方案进行详细说明,以便于本领域内技术人员的理解。本专利技术的方法包括以下步骤:S1、输入视频输入视频包含f0帧,每帧都是一个大小为M*N的矩阵,记录着每一个位置的像素值。在视频编码过程中,会一帧一帧一次进行处理,正在处理的帧记为F,是一个记录当前帧所有像素值的大小为M*N的矩阵。S2、预测当前帧会划分成不同大小的块,每一块都会根据周围像素或者参考帧的参考块来进行预测,预测方法分为帧内预测和帧间预测:对于帧内预测,假定编码块大小为m*n,对编码块内的每一个像素点的预测值可以通过编码块上方一行和左侧一列的像素值得到,假设上方一行像素值为refx,0,左侧一列像素值为ref0,y,则编码块内每一个点的预测像素值Prx,y大小为:Prx,y=((n*((m-y)·refx,0+y·ref0,m+1)+m*((n-x)·ref0,y+x·refn+1,0)+m*n)>>(log2m+log2n+1)(公式1)对于帧间预测,在参考帧中找到参考块referencex,y,参考块的像素值大小就作为编码块的预测像素值:Prx,y=referencex,y(公式2)帧间预测如果采用双向预测,则有两个参考块reference1x,y和reference2x,y,编码块的预测像素值可以由下式表达:其中d1是编码块与参考块reference1的距离(相隔的帧数),d2是编码块与参考块reference2的距离。根据预测像素值和原始像素值可以得到残差矩阵R(残差系数):R=Orx,y-Prx,y(公式4)S3、变换量化1.分解变换矩阵T变换矩阵T是视频编码领域里已经设定好的固定的矩阵,本方法针对其中的两种变换核进行分解,DCT-4矩阵表示如下:DST-4矩阵表示如下:Ti(j)表示矩阵第i行第j列的元素。对于2N*2N大小的变换矩阵T,分解为4*4大小的小型矩阵,每个矩阵包含原矩阵的16个元素,分别位于第i行,第j列;第2N-1+1-i行,第j列;第2N-1+i行,第j列;第2N+1-i行,第j列;第i行,第2N-1+1-j列;第2N-1+1-i行,第2N-1+1-j列;第2N-1+i行,第2N-1+1-j列;第2N+1-i行,第2N-1+1-j列;第i行,第2N-1+j列;第2N-1+1-i行,第2N-1+j列;第2N-1+i行,第2N-1+j列;第2N+1-i行,第2N-1+j列;第i行,第2N+1-j列;第2N-1+1-i行,第2N+1-j列;第2N-1+i行,第2N+1-j列;第2N+1-i行,第2N+1-j列;共将2N*2N大小的变换矩阵分解为2N-2*2N-2个4*4矩阵。2.分解残差矩阵R残差矩阵R是和变换矩阵T一样大小的矩阵,将其按照与变换矩阵同样的分解方法分解为4*4大小的矩阵,得到2N-2*2N-2个4*4矩阵。3.计算T·R过程中的中间变量视频编码通过变换技术来将残差矩阵投射到变换域,以减少码率。在对残差矩阵进行变换的过程中,可以采用以下方法,利用分块矩阵的计算方法计算T·R,其中每一步都是计算两个4*4矩阵的乘积,得到中间变量计算方法如下:k0i=b*(r1i+r2i+r3i+r4i)(公式8)k1i=(-a-b)*(r2i+r3i)(公式9)k2i=(d-b)*(r1i+r4i)(公式10)k3i=(c-b)*(r1i+r3i)(公式11)k4i=(-c-b)*(r3i+r4i)(公式12)...

【技术保护点】
1.一种基于矩阵分解的视频编码方法,其特征在于,包括以下步骤:/nS1、输入视频后,获取每一帧的像素矩阵,定义为大小为M*N的矩阵,然后进行逐帧处理,将当前正在处理的帧记为F;/nS2、将帧F划分为不同大小的块,对每一块进行预测,获得预测像素值Pr

【技术特征摘要】
1.一种基于矩阵分解的视频编码方法,其特征在于,包括以下步骤:
S1、输入视频后,获取每一帧的像素矩阵,定义为大小为M*N的矩阵,然后进行逐帧处理,将当前正在处理的帧记为F;
S2、将帧F划分为不同大小的块,对每一块进行预测,获得预测像素值Prx,y,再根据原始像素值Orx,y,得到残差矩阵R:
R=Orx,y-Prx,y
S3、对残差矩阵R进行变换量化:
对变换矩阵T进行分解,设变换矩阵T为DCT-4矩阵:



或DST-4矩阵:



Ti(j)表示矩阵第i行第j列的元素;
将2N*2N大小的变换矩阵T,分解为4*4大小的小型矩阵,每个矩阵包含原矩阵的16个元素,分别位于第i行,第j列;第2N-1+1-i行,第j列;第2N-1+i行,第j列;第2N+1-i行,第j列;第i行,第2N-1+1-j列;第2N-1+1-i行,第2N-1+1-j列;第2N-1+i行,第2N-1+1-j列;第2N+1-i行,第2N-1+1-j列;第i行,第2N-1+j列...

【专利技术属性】
技术研发人员:朱策刘翼鹏丁可可邓玲玲
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川;51

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

1