CN112243125B - 视频编码方法以及电子设备、存储装置 - Google Patents

视频编码方法以及电子设备、存储装置 Download PDF

Info

Publication number
CN112243125B
CN112243125B CN202011128185.6A CN202011128185A CN112243125B CN 112243125 B CN112243125 B CN 112243125B CN 202011128185 A CN202011128185 A CN 202011128185A CN 112243125 B CN112243125 B CN 112243125B
Authority
CN
China
Prior art keywords
matrix
row
column
sub
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011128185.6A
Other languages
English (en)
Other versions
CN112243125A (zh
Inventor
丁可可
曾飞洋
江东
林聚财
殷俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202011128185.6A priority Critical patent/CN112243125B/zh
Publication of CN112243125A publication Critical patent/CN112243125A/zh
Application granted granted Critical
Publication of CN112243125B publication Critical patent/CN112243125B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请公开了一种视频编码方法以及电子设备、存储装置,其中,视频编码方法包括:利用当前块的预测块,得到当前块的残差块;利用由变换矩阵分解得到的若干个子变换矩阵,分别对残差块进行变换,得到若干个子变换块;基于若干个子变换块,得到残差块的变换块;对变换块进行量化编码;其中,子变换矩阵包括至少一个区域集合,区域集合包括多个互不重叠且对应位置处元素相同的同元素区域。上述方案,能够减少视频编码的运算量。

Description

视频编码方法以及电子设备、存储装置
技术领域
本申请涉及视频编码技术领域,特别是涉及一种视频编码方法以及电子设备、存储装置。
背景技术
视频编码技术旨在解决视频压缩问题,以提高视频传输、存储效率。目前,国际范围内的视频编码技术标准包括:H.264/AVC(Advanced Video Coding,高级视频编码)、H.265/HEVC(High Efficiency Video Coding,高效视频编码)、H.266/VVC(VersatileVideo Coding,多功能视频编码)等等。视频编码技术通常包括视频采集、预测、变换、量化和熵编码等几大部分,需要消耗大量的计算资源。因此,如何减少视频编码的运算量成为亟待研究的课题。
发明内容
本申请主要解决的技术问题是提供一种视频编码方法以及电子设备、存储装置,能够减少视频编码的运算量。
为了解决上述问题,本申请第一方面提供了一种视频编码方法,包括:利用当前块的预测块,得到当前块的残差块;利用由变换矩阵分解得到的若干个子变换矩阵,分别对残差块进行变换,得到若干个子变换块;基于若干个子变换块,得到残差块的变换块;对变换块进行量化编码;其中,子变换矩阵包括至少一个区域集合,区域集合包括多个互不重叠且对应位置处元素相同的同元素区域。
为了解决上述问题,本申请第二方面提供了一种视频编码装置,包括:残差获取模块、残差变换模块、变换获取模块和量化编码模块,残差获取模块用于利用当前块的预测块,得到当前块的残差块,残差变换模块用于利用由变换矩阵分解得到的若干个子变换矩阵,分别对残差块进行变换,得到若干个子变换块,其中,子变换矩阵包括至少一个区域集合,区域集合包括多个互不重叠且对应位置处元素相同的同元素区域;变换获取模块用于基于若干个子变换块,得到残差块的变换块;量化编码模块用于对变换块进行量化编码。
为了解决上述问题,本申请第三方面提供了一种电子设备,包括相互耦接的存储器和处理器,存储器存储有程序指令,处理器用于执行程序指令以实现上述第一方面中的视频编码方法。
为了解决上述问题,本申请第四方面提供了一种存储装置,存储有能够被处理器运行的程序指令,程序指令用于实现上述第一方面中的视频编码方法。
上述方案,通过利用当前块的预测块,得到当前块的残差块,从而利用由变换矩阵分解得到的若干个子变换矩阵,分别对残差块进行变换,得到若干个子变换块,进而基于若干个子变换块,得到残差块的变换块,并对变换块进行量化编码,且子变换矩阵包括至少一个区域集合,区域集合包括多个互不重叠且对应位置处元素相同的同元素区域。故此,由于子变换矩阵中包括至少一个区域集合,且区域集合包括多个同元素区域,故在利用子变换矩阵对残差块进行变换时,能够有利于大大降低两者之间的运算复杂度,从而能够有利于减少视频编码的运算量。
附图说明
图1是本申请视频编码方法一实施例的流程示意图;
图2是对残差块进行变换一实施例的状态示意图;
图3是主变换一实施例的状态示意图;
图4是利用第一区域的元素得到待分解矩阵一实施例的流程示意图;
图5是对第一区域中的元素行进行交换一实施例的流程示意图;
图6是对第一区域中的元素列进行交换一实施例的流程示意图;
图7是对第一矩阵中的元素行和元素列进行重排一实施例的流程示意图;
图8是对第一矩阵中的元素行和元素列进行重排一实施例的状态示意图;
图9是对待分解矩阵进行分解得到子变换矩阵一实施例的流程示意图;
图10是本申请视频编码装置一实施例的框架示意图;
图11是本申请电子设备一实施例的框架示意图;
图12是本申请存储装置一实施例的框架示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
请参阅图1,图1是本申请视频编码方法一实施例的流程示意图。具体而言,可以包括如下步骤:
步骤S11:利用当前块的预测块,得到当前块的残差块。
在一个实施场景中,当前块的预测块可以通过帧内预测得到,帧内预测可以去除当前块在空间上的冗余。具体可以获取当前块周围的重建像素值,作为当前块真实像素值的预测像素值,从而将当前块的真实像素值与预测像素值相减,可以得到残差块。
在另一个实施场景中,当前块的预测块可以通过帧间预测得到,帧间预测可以去除当前块在时间上的冗余。具体可以在当前块所在的图像帧前后已编码图像帧中,搜索当前块真实像素值的预测像素值,从而将当前块的真实像素值与预测像素值相减,可以得到残差块。
步骤S12:利用由变换矩阵分解得到的若干个子变换矩阵,分别对残差块进行变换,得到若干个子变换块。
本公开实施例中,子变换矩阵包括至少一个区域集合,区域集合包括多个互不重叠且对应位置处元素相同的同元素区域。需要说明的是,本公开实施例以及下述其他实施例所指的互不重叠是指区域之间不存在任何重叠。
在一个实施场景中,请结合参阅图2,图2是对残差块进行变换一实施例的状态示意图。如图2所示,残差块在进行变换的过程中,可以经过主变换(或称一次变换)、二次变换。请参阅图3,图3是主变换一实施例的状态示意图,如图3所示,主变换是可分离变换,即可以对行和列分别进行变换操作。本公开实施例中的变换矩阵具体可以为与主变换对应的变换核。主变换的变换核可以根据不同的模式进行选择,不同的模式具体可以包括但不限于:隐式MTS(Multiple Transform Selection,多变换核选择)模式、显式MTS模式、ISP(Intra Sub-Partitions,帧内子块划分)模式、SBT(Sub-Block Transform,子块变换)模式。
在一个具体的实施场景中,与主变换对应的变换核可以包括但不限于:DCT-1、DCT-2、DCT-3、DCT-4、DCT-5、DCT-6、DCT-7、DCT-8、DST-1、DST-2、DST-3、DST-4、DST-5、DST-6、DST-7、DST-8,需要说明的是,DCT表示离散余弦变换(即Discrete Cosine Transform),DST表示离散正弦变换(即Discrete Sine Transform)。具体可以根据所采用的模式设置。例如,显式MTS模式的变换核包括:DCT-2,DST-7,DCT-8;或者,隐式MTS的变换核包括:DCT-2、DST-7。其他情况可以以此类推,在此不再一一举例。
在一个实施场景中,若干子变换矩阵具体可以是由变换矩阵经过至少一次分解得到的。
在一个具体的实施场景中,在计算资源相对紧张的情况下,可以经过多次分解。例如,可以先由变换矩阵K分解得到子变换矩阵A和子变换矩阵B,再由子变换矩阵A分解得到子变换矩阵A1和子变换矩阵A2,从而可以将子变换矩阵B、子变换矩阵A1和子变换矩阵A2共计3个子变换矩阵作为最终对残差块进行变换的若干子变换矩阵;或者,还可以进一步由子变换矩阵B分解得到子变换矩阵B1和子变换矩阵B2,从而可以将子变换矩阵B1、子变换矩阵B2、子变换矩阵A1和子变换矩阵A2共计4个子变换矩阵作为最终对残差块进行变换的若干子变换矩阵。在经过4次分解、5次分解等情况下,可以以此类推,在此不再一一举例。
在另一个具体的实施场景中,在计算资源相对富余的情况下,可以仅经过一次分解。仍以变换矩阵K为例,可以仅由变换矩阵K分解得到子变换矩阵A和子变换矩阵B,从而将子变换矩阵A和子变换矩阵B共计2个子变换矩阵作为最终对残差块进行变换的若干子变换矩阵。
在一个实施场景中,为了便于分解得到包含同元素区域的子变换矩阵,可以先在变换矩阵中筛选出满足第一预设条件的第一区域,且第一区域内的元素的行数和列数为同一数值,从而可以利用第一区域的元素,得到待分解矩阵,且待分解矩阵包含至少一对同元素区域,每对同元素区域所包含的两个同元素区域分别位于待分解矩阵对角线的两侧,进而可以基于待分解矩阵所包含的同元素区域,对待分解矩阵进行分解,得到子变换矩阵。上述方式,能够先变换矩阵进行处理为在对角线两侧包含同元素区域的待分解矩阵,在此基础上能够提高子变换矩阵分解的便利性。
在一个具体的实施场景中,为了提高后续分解的便利性,第一预设条件包括:第一区域中任意两行所包含的元素绝对值相同,且第一区域中任意两列所包含的元素绝对值相同,第一区域中任一行与任一列所包含的元素绝对值相同。为了便于描述,以下述变换矩阵K为例:
Figure BDA0002734251450000041
上述变换矩阵中的元素取绝对值后,即可满足上述第一预设条件,故在上述变换矩阵K筛选出的第一区域即为变换矩阵K本身。其他情况可以以此类推,在此不再一一举例。
在另一个具体的实施场景中,第一区域内的元素的行数和列数为同一数值,该数值不限于2的幂次方,也可以是6、12、14、18等等。此外,该数值也不限于偶数,可以是任意大于1的整数。
在又一个具体的实施场景中,在筛选到多个第一区域且多个第一区域互不重叠的情况下,可以选择尺寸最大的第一区域,从而可以利用尺寸最大的第一区域的元素,得到待分解矩阵,即仅得到一个待分解矩阵。例如,在变换矩阵中筛选得到K′,K″,K″′共计3个互不重叠的第一区域,且在此其中第一区域K″′尺寸最大,故可以利用第一区域K″′的元素,得到待分解矩阵。其他情况可以以此类推,在此不再一一举例。
在又一个具体的实施场景中,在筛选到多个第一区域且多个第一区域互不重叠的情况下,也可以分别利用各个第一区域的元素,对应得到一个待分解矩阵,即可以得到多个待分解矩阵。例如,在变换矩阵中筛选得到K′,K″,K″′共计3个互不重叠的第一区域,则可以利用第一区域K′的元素,得到一个待分解矩阵,并利用第一区域K″的元素,得到一个待分解矩阵,利用第一区域K″′的元素,得到一个待分解矩阵。上述方式,在筛选到多个第一区域且多个第一区域互不重叠的情况下,分别利用各个第一区域的元素,对应得到一个待分解矩阵,能够有利于提高对残差块进行变换的精度。
在又一个具体的实施场景中,具体可以将第一区域的元素行和元素列进行交换等操作,可以得到待分解矩阵。仍以上述变换矩阵K为例,可以将上述变换矩阵K经过若干次元素行交换、元素列交换等操作,得到下述待分解矩阵T:
Figure BDA0002734251450000051
上述待分解矩阵T的对角线两侧包含一对同元素区域
Figure BDA0002734251450000052
在又一个具体的实施场景中,为了便于描述,仍以式子(2)所述的待分解矩阵T为例。待分解矩阵T的对角线两侧包含一对同元素区域
Figure BDA0002734251450000053
故此可以基于该同元素区域,将上述待分解矩阵T经过一次分解,得到下述两个子变换矩阵A和子变换矩阵B:
Figure BDA0002734251450000054
上述子变换矩阵A包括一个区域集合,包括四个互不重叠且对应位置处元素相同的同元素区域
Figure BDA0002734251450000055
子变换矩阵B包括两个区域集合,其中一个包括两个互不重叠且对应位置处元素相同的同元素区域
Figure BDA0002734251450000061
另一个包括两个互不重叠且对应位置处元素相同的同元素区域
Figure BDA0002734251450000062
在一个实施场景中,残差块可以视为一个矩阵,矩阵中的元素为残差块中对应元素的值,则可以分别利用子变换矩阵对残差块进行矩阵乘法运算,得到对应的子变换块。例如,变换矩阵K经过一次分解得到子变换矩阵A和子变换矩阵B,则可以利用子变换矩阵A对残差块进行变换,得到子变换块,并利用子变换块B对残差块进行变换,得到子变换块;或者,变换矩阵K经过两次分解得到子变换矩阵B、子变换矩阵A1和子变换矩阵A2,类似地,可以利用子变换矩阵B对残差块进行变换,得到子变换块,利用子变换矩阵A1对残差块进行变换,得到子变换块,并利用子变换矩阵A2对残差块进行变换,得到子变换块;其他情况可以以此类推,在此不再一一举例。
步骤S13:基于若干个子变换块,得到残差块的变换块。
具体地,可以对若干个子变化块求和,得到残差块的变换块。例如,以变换矩阵K经过一次分解得到子变换矩阵A和子变换矩阵B为例,可以通过下式得到残差块R的变换块:
T*R=A*R+B*R……(4)
上述式子(4)中,A*R表示利用子变换矩阵A对残差块R进行变换所得到的子变换块,B*R表示利用子变换矩阵B对残差块R进行变换所得到的子变换块。
或者,以变换矩阵K经过两次分解得到子变换矩阵B、子变换矩阵A1和子变换矩阵A2为例,可以通过下式得到残差块R的变换块:
T*R=B*R+A1*R+A2*R……(5)
上述式子(5)中,B*R表示利用子变换矩阵B对残差块R进行变换所得到的子变换块,A1*R表示利用子变换矩阵A1对残差块R进行变换所得到的子变换块,A2*R表示利用子变换矩阵A2对残差块R进行变换所得到的子变换块。其他情况可以以此类推,在此不再一一举例。
为了便于描述,在一个具体的实施场景中,仍以式子(1)所述的变换矩阵K为例,变换矩阵K经过处理得到式子(2)所述的待分解矩阵,待分解矩阵经过分解可以得到式子(3)所述的子变换矩阵A和子变换矩阵B。如前所述,残差块可以视为一个矩阵,矩阵中的元素为残差块中对应元素的值,则可以分别利用子变换矩阵对残差块进行矩阵乘法运算,得到对应的子变换块。现对残差块其中一行L的运算量进行分析:在直接利用式子(1)所述的变换矩阵K对残差块进行变换时,该行L需要分别乘以变换矩阵K的每一列,每乘一列需经过4次乘法运算,故该行L最终需经过16次乘法运算,而若利用式子(3)所述的子变换矩阵A和子变换矩阵B对残差块进行变换,该行L需分别乘以子变换矩阵A的每一列,以及子变换矩阵B的每一列,而在分别乘以子变换矩阵A的每一列的过程中,由于子变换矩阵A第一列与第三列相同,且第二列与第四列相同,故该行L仅需乘以子变换矩阵A第一列和第二列即可,且由于第一列仅包含2个不同的元素(即1和3),故在该行L乘以子变换矩阵A第一列时仅需2次乘法运算,由于第二列仅包含2个不同的元素(即2和4),故在该行L乘以子变换矩阵A第二列时仅需2次乘法运算,即行L在分别乘以子变换矩阵A的每一列的过程中仅需4次乘法运算;同理,行L在分别乘以子变换矩阵B的每一列的过程中也仅需4次乘法运算,即行L最终需经过8次乘以运算,共减少总乘法次数50%。在其他变换矩阵K的情况下,可以以此类推,在此不再一一举例。
步骤S14:对变换块进行量化编码。
具体地,可以利用预设量化步长对变换块中的各个元素进行量化,例如,可以将变换块中的各个元素除以预设量化步长,并将相除后的结果四舍五入,得到量化后的元素值。在一个实施场景中,预设量化步长可以根据实际应用需要进行设置,在此不做限定。此外,在对变换块进行量化之后,还可以进一步对量化后的变换块进行熵编码,熵编码具体可以包括定长编码、变长编码(如,哈夫曼编码等),具体不再赘述。
上述方案,通过利用当前块的预测块,得到当前块的残差块,从而利用由变换矩阵分解得到的若干个子变换矩阵,分别对残差块进行变换,得到若干个子变换块,进而基于若干个子变换块,得到残差块的变换块,并对变换块进行量化编码,且子变换矩阵包括至少一个区域集合,区域集合包括多个互不重叠且对应位置处元素相同的同元素区域。故此,由于子变换矩阵中包括至少一个区域集合,且区域集合包括多个同元素区域,故在利用子变换矩阵对残差块进行变换时,能够有利于大大降低两者之间的运算复杂度,从而能够有利于减少视频编码的运算量。
请参阅图4,图4是利用第一区域的元素得到待分解矩阵一实施例的流程示意图。本公开实施例中,待分解矩阵包含至少一对同元素区域,每对同元素区域所包含的两个同元素区域分别位于待分解矩阵主对角线的两侧。具体可以包括如下步骤:
步骤S41:对第一区域中的元素行进行交换,并对第一区域中的元素列进行交换,得到第一矩阵。
本公开实施例中,第一矩阵中的元素满足:副对角线上的元素绝对值相同,副对角线的同一平行线上的元素绝对值相同。请结合参阅式子(1),式子(1)所示的矩阵副对角线上的元素绝对值为2、3、4、4,即副对角线上的元素并不相同,故需要对其元素行进行交换,并对其元素列进行交换。
在一个实施场景中,上述元素行以及元素列的交换具体包括:可以先对第一区域中的元素行进行交换,再对元素行交换之后的第一区域中的元素列进行交换。
在一个具体的实施场景中,请参阅图5,图5是对第一区域中的元素行进行交换一实施例的流程示意图。如图5所示,在先对第一区域中的元素行进行交换时,具体可以包括如下步骤:
步骤S51:将第一区域的第i元素行作为待交换元素行,在第一区域中搜索目标元素行。
本公开实施例中,i大于1,且目标元素行的第一个元素绝对值与第i-1元素行的第j个元素绝对值相同。在一个实施场景中,i默认的初始值为2,j默认的初始值也为2。
为了便于描述,第一区域中的元素可以表示为:
Figure BDA0002734251450000081
上述式子(6)中,在首轮搜索时,i=2,j=2,元素行[a2 ai … …]第1个元素绝对值与第1(即i-1)元素行的第2个元素绝对值相同,故可以将元素行[a2 ai … …]作为首轮搜索的目标元素行。
步骤S52:判断目标元素行是否在待交换元素行上方,若否,则执行步骤S53,否则执行步骤S55。
例如,目标元素行为第1行,待交换元素行为第2行,则目标元素行在待交换行的上方;或者,目标元素行为第2行,待交换元素行也为第2行,则目标元素行不在待交换元素行的上方;或者,目标元素行为第3行,待交换元素行为第2行,则目标元素行不在待交换元素行的上方;其他情况可以以此类推,在此不再一一举例。
步骤S53:将待交换元素行与目标元素行交换,并将i加1。
仍以首轮搜索的目标元素行[a2 ai … …]为例,由于该目标元素行不在待交换元素行(即第2元素行)的上方,故可以将i加1(即将i更新为3),并将待交换元素行与目标元素行[a2 ai … …]交换,将第一矩阵更新为如式子(7)所示的矩阵:
Figure BDA0002734251450000082
步骤S54:重新执行步骤S51以及后续步骤。
第二轮搜索过程中,i=3,j=2,式子(7)中元素行[ai a1 … …]中第1个元素绝对值与第2(即i-1)元素行第2个元素绝对值相同,故可以将元素行[ai a1 … …]作为目标元素行,且由于该目标元素行在第3元素行下方,故可以将i加1(即将i更新为4),并将待交换元素行与目标元素行[ai a1… …]交换,将第一矩阵更新为如式子(8)所示的矩阵:
Figure BDA0002734251450000091
第三轮搜索过程中,i=4,j=2,式子(8)中元素行[a1 a2 … aN]中第1个元素与第3(即i-1)元素行第2个元素相同,故可以将元素行[a1 a2 … aN]作为目标元素行,且由于该目标元素行在第3元素行上方,故第三轮搜索失败。
步骤S55:将i重置为2,将j加1。
在第三轮搜索失败的情况下,可以将i重置为2,并将j加1,即将j更新为3。
步骤S56:重新执行上述步骤S51以及后续步骤。
第四轮搜索过程中,i=2,j=3,在式子(6)所述的矩阵中重新搜索目标元素行;第五轮搜索、第六轮搜索等后续搜索过程可以以此类推,在此不再一一举例。上述行交换的过程,可以一直持续直至第一区域中不存在待交换元素行为止,如i不小于第一区域中元素行的行数时,可以认为行交换结束。
仍以式子(1)所述的矩阵为例,第一轮搜索过程中,i=2,j=2,目标元素行第4元素行,经与第2元素行交换后得到式子(9)所述的矩阵:
Figure BDA0002734251450000092
第二轮搜索过程中,i=3,j=2,目标元素行即为待交换元素行;第三轮搜索过程中,i=4,j=2,目标元素行仍然为交换元素行,此时行交换结束。其他情况可以以此类推,在此不再一一举例。
在另一个具体的实施场景中,请参阅图6,图6是对第一区域中的元素列进行交换一实施例的流程示意图。如图6所示,在后对第一区域中的元素列进行交换时,具体可以包括如下步骤:
步骤S61:将第一区域的第k元素列作为待交换元素列,在第一区域中搜素目标元素列。
本公开实施例中,k大于1,且目标元素列的第一个元素为第k-1元素列的第二个元素。在一个实施场景中,k默认的初始值为2。
以式子(9)所述的矩阵为例,第一轮搜索过程中,k=2,目标元素列即为待交换元素列(即第2元素列)。
步骤S62:将待交换元素列于目标元素列交换,并将k加1。
将目标元素列与待交换元素列交换,并将k加1(即将k更新为3),在目标元素列即为待交换元素列的情况下,也可以不将待交换元素列于目标元素列交换。
步骤S63:重新执行步骤S61以及后续步骤。
本公开实施例中,在第一区域中不存在待交换元素列的情况下,可以结束对元素列的交换。
仍以式子(9)所述的矩阵为例,第二轮搜索过程中,k=3,目标元素列为第4元素列,此时将k加1(即将k更新为4),并将第4元素列与第3元素列交换,得到式子(10)所述的矩阵:
Figure BDA0002734251450000101
在k=4时,第一区域中不存在待交换元素列,则可以结束对元素列的交换。此时,式子(10)所述的第一矩阵满足:副对角线上的元素绝对值相同,副对角线的同一平行线上的元素绝对值相同。
在另一个实施场景中,上述元素行以及元素列的交换具体包括:可以先对第一区域中的元素列进行交换,再对元素列交换之后的第一区域中的元素行进行交换。
在一个具体的实施场景中,在先对元素列进行交换的过程中,可以将第一区域的第i元素列作为待交换元素列,在第一区域中搜索目标元素列,且i大于1,目标元素列的第一个元素为第i-1元素列的第j个元素,i的默认初始值可以为2,j的默认初始值也可以为2;在目标元素列不在待交换元素列左侧的情况下,将待交换元素列与目标元素列交换,并将i加1,重新执行将第一区域的第i元素列作为待交换元素列,在第一区域中搜索目标元素列的步骤,直至第一区域中不存在待交换元素列;而在目标元素列在待交换元素行左侧的情况下,则将i重置为2,将j加1,并重新执行将第一区域的第i元素列作为待交换元素列,在第一区域中搜索目标元素列的步骤。具体可以参考前述先对元素行进行交换的相关描述,在此不再赘述。
在另一个具体的实施场景中,在后对元素行进行交换的过程中,可以将第一区域的第k元素行作为待交换元素行,在第一区域中搜素目标元素行,且k大于1,目标元素行的第一个元素为第k-1元素行的第二个元素,k的默认初始值可以为2;将待交换元素行于目标元素行交换,并将k加1,重新执行将第一区域的第k元素行作为待交换元素行,在第一区域中搜素目标元素行的步骤,直至第一区域中不存在待交换元素行。具体可以参考前述后对元素列进行交换的相关描述,在此不再赘述。
步骤S42:利用数值的质因数,对第一矩阵中的元素行和元素列进行重排,得到第二矩阵。
本公开实施例中,第一区域内元素的行数和列数相同,且本公开实施例中所指的数值即为第一区域的行数(或列数)。例如,第一区域的行数(或列数)为8的情况下,其质因数为2、2和2,在第一区域的行数(或列数)为12的情况下,其质因数为2、2和3,在第一区域的行数(或列数)为18的情况下,其质因数为2、3和3,其他情况可以以此类推,在此不再一一举例。
在一个实施场景中,请结合参阅图7,图7是对第一矩阵中的元素行和元素列进行重排一实施例的流程示意图。具体可以包括如下步骤:
步骤S71:在数值的质因数中,每次选择一个未被选择过的质因数作为当前质因数。
在一个实施场景中,在数值的质因数中,每次可以随机选择一个未被选择过的质因数作为当前质因数,且每次随机选择的质因数是之前未被选择过的。例如,数值M为30的情况下,其质因数为2、3、5,则第一次可以从2、3、5中随机选择一个未被选择过的质因数作为当前质因数;第二次可以从未被选择的质因数中再次随机选择一个未被选择过的质因数作为当前质因数,此后可以以此类推。在数值M为其他值的情况下,可以以此类推,在此不再一一举例。
在另一个实施场景中,在数值的质因数中,可以按照预设顺序,每次选择一个未被选择过的质因数作为当前质因数。预设顺序可以包括但不限于:由小到大,在此不做限定。为了便于描述,数值M的质因数由小到大排序为:p1、p2、p3、……、pn。例如,在数值为8的情况下,其质因数由小到大排序为2、2和2;或者,在数值为12的情况下,其质因数由小到大排序为2、2和3;或者,在数值为18的情况下,其质因数由小到大排序为2、3和3,其他情况可以以此类推,在此不再一一举例。
每次选择一个未被选择过的质因数作为当前质因数之后,即可利用当前质因数进行本次的元素行重排及列元素重排,本次的元素行重排及元素列重排结束之后,即可重新选择一个未被选择过的质因数作为当前质因数,以开始新一次的元素行重排及元素列重排。具体可以采用如下步骤,利用当前质因数进行元素行重排及元素列重排:
步骤S72:获取各个元素行在当前的行区域中的行号,将行号除以当前质因数的余数相同的元素行,重排为一个行区域,并按照余数在预设数值排序中的顺序,将各个行区域重排。
具体地,请结合参阅图8,图8是对第一矩阵中的元素行和元素列进行重排一实施例的状态示意图。具体地,图8所示的是按照质因数由小到大的顺序对元素行和元素列进行重排,如图8所示,在第一轮元素行重排过程中,将第1、1+p1、……、M-p1+1元素行重排为一个行区域,即行号除以p1余数为1的元素行重排为一个行区域;并将2、2+p1、……、M-p1+2元素行重排为一个行区域,即行号除以p1余数为2的元素行重排为一个行区域,同理将p1、2*p1、……、M元素行重排为一个行区域,即行号除以p1余数为0的元素行重排为一个行区域,以此类推,在此不再一一举例。
步骤S73:获取各个元素列在当前的列区域中的列号,将列号除以当前质因数的余数相同的元素列,重排为一个列区域,并按照余数在预设数值排序中的顺序,将各个列区域重排。
具体地,在利用当前质因数p1,将第一矩阵的元素行进行重排之后,可以继续利用当前质因数p1,将行重排之后的第一矩阵进行列重排,即将第1、1+p1、……、M-p1+1元素列重排为一个列区域,即列号除以p1余数为1的元素列重排为一个列区域;并将2、2+p1、……、M-p1+2元素列重排为一个列区域,即列号除以p1余数为2的元素列重排为一个列区域,同理将p1、2*p1、……、M元素列重排为一个列区域,即列号除以p1余数为0的元素列重排为一个列区域,以此类推,在此不再一一举例。
需要说明的是,本公开实施例中,预设数值排序可以是1、2、3、4、5、6、7、8、9、0的排序,也可以是其他排序方式,如:1、3、5、7、9、2、4、6、8、0等等,在此不做限定。此外,尽管预设数值排序的具体方式可以有多种,但在元素行重排以及元素列重排的过程中,需遵循同一种预设数值排序。
第二轮重排过程中,将p2作为当前质因数,并利用质因数p2再次进行行重排、列重排。请继续结合参阅图8,在利用质因数p2对余数为1的行区域继续进行行重排过程中,可以将第一矩阵中第1、1+p1*p2、M-p1*p2+1元素行重排为一个行区域,即将第一轮余数为1的行区域中行号除以p2余数为1的元素行重排为一个行区域,并将第一矩阵中第1+p1、1+p1+p1*p2、……、M+1+p1-p1*p2元素行重排为一个行区域,即将第一轮余数为1的行区域中行号除以p2余数为2的元素行重排为一个行区域,同理,将第一矩阵中第1+p2*p1-p1、1*2*p2*p1-p1、……、M-p1+1元素行重排为一个行区域,即将第一轮余数为1的行区域中行号除以p2余数为0的元素行重排为一个行区域,以此类推,在此不再一一举例。
需要说明的是,在上述利用当前质因数交替进行行重排、列重排的过程中,可以先利用当前质因数进行行重排,再利用同一个当前质因数进行列重排,也可以先利用当前质因数进行列重排,再利用同一个当前质因数进行行重排,即上述步骤S72和步骤S73可以交换,也就是说,可以先执行步骤S72再执行步骤S73,也可以先执行步骤S72再执行步骤S73,在此不做限定。
在另一个实施场景中,除了可以采用上述步骤,利用当前质因数交替地进行行重排、列重排,也可以先统一对元素行进行重排,即在数值的质因数中,每次选择一个未被选择过的质因数作为当前质因数,并获取各个元素行在当前的行区域中的行号,将行号除以当前质因数的余数相同的元素行,重排为一个行区域,并按照余数在预设数值排序中的顺序,将各个行区域重排,再重新执行每次选择一个未被选择过的质因数作为当前质因数的步骤以及后续步骤,直至全部质因数选择完毕,从而完成行重排;之后再统一对元素列进行重排,即获取元素行重排过程的质因数选择顺序,并按照该质因数选择顺序,每次选择一个质因数作为当前质因数,例如,以数值M=30为例,元素行重排过程中质因数的选择顺序为:2、3、5,则元素列重排过程中,依次选择2、3、5作为当前质因数,其他情况可以以此类推,在此不再一一举例。在对元素列进行重排过程中,获取各个元素列在当前的列区域中的列号,将列号除以当前质因数的余数相同的元素列,重排为一个列区域,并按照余数在预设数值排序中的顺序,将各个列区域重排,再重新执行上述按照该质因数选择顺序,每次选择一个质因数作为当前质因数的步骤以及后续步骤,直至全部质因数选择完毕,从而完成列重排。
在又一个实施场景中,在按照由小到大的顺序选择质因数的情况下,在利用最大的质因数pn完成行重排以及列重排之后,即可结束重排;或者,还可以对行进行重排所得到的行区域以及对列进行重排所得到的列区域进行计数,当行区域的数量等于M/pn,且列区域的数量也等于M/pn时,可以结束重排。
在一个具体的实施场景中,以M=18为例,其质因数按照由小到大的顺序为:2、3、3,则可以先将2作为当前质因数,并将第第一矩阵中1、3、5、7、9、11、13、15、17行重排为一行区域A,将第一矩阵中第2、4、6、8、10、12、14、16、18行重排为一行区域B;在此基础上,可以将3作为当前质因数,则可以将行区域A中的1、4、7行重排为一行区域A1,即将第一矩阵中第1、7、13行重排为行区域A1;将行区域中的第2、5、8行重排为行区域A2,即将第一矩阵中第3、9、15行重排为行区域A2;将行区域A中的第3、6、9行重排为行区域A3,即将第一矩阵中第5、11、17重排为行矩阵A4;以此类推,将第一矩阵中第2、8、14行重排为行区域B1,将第一矩阵中第4、10、16重排为行区域B2,将第一矩阵中第6、12、18重排为行区域B3。列重排可以以此类推,在此不再一一举例。
步骤S43:对第二矩阵内的部分元素进行修正,得到待分解矩阵。
具体可以在第二矩阵中,获取分别位于主对角线两侧且尺寸相同的两个第二区域,并比较两个第二区域的元素,确定待修正元素行和待修正元素列,从而对待修正元素行和待修正元素列进行修正,以使两个第二区域对应位置处的元素相同,得到待分解矩阵。
在一个实施场景中,具体可以将待修正元素行中的元素乘以-1,并将待修正元素列中的元素乘以-1,以使两个第二区域对应位置处的元素相同。
在一个实施场景中,分别位于待分解矩阵主对角线两侧的至少一对同元素区域的尺寸为数值M的质因数中最大两个数之积。例如,当M=8时,同元素区域的尺寸为4,其他情况可以以此类推,在此不再一一举例。此外,在一个具体的实施场景中,可以获取尺寸不大于同元素区域的所有第二区域对,并比较所有第二区域对的元素,以对第二矩阵进行修正。仍以M=8为例,可以获取尺寸为4(即长宽均为4)的第二区域对,以及尺寸为2(即长宽均为2)的第二区域对,并在此基础上,对第二矩阵进行修正。
在一个具体的实施场景中,以8点DCT-7的变换矩阵为例,在8点DCT-7的变换矩阵中筛选出的第一区域即为其本身,从而利用上述步骤S41、步骤S42,可以得到如下述式子(11)所述的二矩阵:
Figure BDA0002734251450000141
由此可见,主对角线左下方的第二区域为
Figure BDA0002734251450000142
主对角线右上方的第二区域为
Figure BDA0002734251450000143
两者第三行第三列元素存在差别,故可以对第二矩阵的第七行第七列乘以-1予以修正,得到待分解矩阵:
Figure BDA0002734251450000151
区别于前述实施例,通过对第一区域中的元素行进行交换,并对第一区域中的元素列进行交换,得到第一矩阵,且第一矩阵中的元素满足:副对角线上的元素绝对值相同,副对角线的同一平行线上的元素绝对值相同,从而利用数值的质因数,对第一矩阵中的元素行和元素列进行重排,得到第二矩阵,进而对第二矩阵内的部分元素进行修正,得到待分解矩阵。故此,可以通过行列交换、行列重排等简单操作,得到最终的待分解矩阵,能够有利于降低得到待分解矩阵的运算量。
请参阅图9,图9是对待分解矩阵进行分解得到子变换矩阵一实施例的流程示意图。具体可以包括如下步骤:
步骤S91:提取待分解矩阵中尺寸最大的同元素区域。
如前述公开实施例所述,同元素区域的尺寸为同元素区域的长或宽。以式子(12)所述的待分解矩阵为例,尺寸最大的同元素区域为主对角线左下方或右上方的
Figure BDA0002734251450000152
其他情况可以以此类推,在此不再一一举例。
步骤S92:利用提取到的同元素区域的元素,将待分解矩阵分解为两个子变换矩阵。
本公开实施例中,两个子变换矩阵之和为待分解矩阵,两个子变换矩阵中的一个是利用提取到的同元素区域的元素得到的。仍以式子(12)所述的待分解矩阵T为例,可以利用提取到的同元素区域
Figure BDA0002734251450000153
构建得到如下所述的子变换矩阵A:
Figure BDA0002734251450000161
在此基础上,利用待分解矩阵T与子变换矩阵A在对应位置处元素之差,得到另一子变换矩阵B:
Figure BDA0002734251450000162
在一个实施场景中,为了尽可能地减少后续对残差块进行变换的运算量,还可以执行下述步骤:
步骤S93:检测是否满足第二预设条件,若是,则执行步骤S94,否则执行步骤S96。
在一个实施场景中,第二预设条件包括:子变换矩阵中存在同元素区域。以上述式子(13)所述的子变换矩阵A和上述式子(14)所述的子变换矩阵B为例,子变换矩阵A存在同元素区域
Figure BDA0002734251450000163
子变换矩阵B存在同元素区域
Figure BDA0002734251450000164
Figure BDA0002734251450000165
其他情况可以以此类推,在此不再一一举例。
步骤S94:将两个子变换矩阵中的至少一个,作为新的待分解矩阵。
仍以上述子变换矩阵A和子变换矩阵B为例,可以选择子变换矩阵A,作为新的待分解矩阵,也可以选择子变换矩阵B,作为新的待分解矩阵,或者,还可以分别选择子变换矩阵A、子变换矩阵B,作为新的待分解矩阵。
步骤S95:重新执行步骤S91以及后续步骤。
在将子变换矩阵A作为新的待分解矩阵的情况下,可以利用同元素区域
Figure BDA0002734251450000166
构建得到子变换矩阵A1:
Figure BDA0002734251450000171
在此基础上,利用子变换矩阵A与子变换矩阵A1在对应位置处元素的差值,得到式子(16)所述的子变换矩阵A2,从而将子变换矩阵A分解为A1和A2:
Figure BDA0002734251450000172
在将子变换矩阵A作为新的待分解矩阵的情况下,可以利用同元素
Figure BDA0002734251450000173
Figure BDA0002734251450000174
构建得到子变换矩阵B1:
Figure BDA0002734251450000175
在此基础上,利用子变换矩阵B与子变换矩阵B1在对应位置处元素的差值,得到式子(18)所述的子变换矩阵B2,从而将子变换矩阵B分解为B1和B2:
Figure BDA0002734251450000181
以此类推,在将子变换矩阵A1作为新的待分解矩阵的情况下,可以将其分解为式子(19)所述的子变换矩阵A3和式子(20)所述的子变换矩阵A4:
Figure BDA0002734251450000182
Figure BDA0002734251450000183
在将子变换矩阵A2作为新的待分解矩阵的情况下,可以将其分解为式子(21)所述的子变换矩阵A5和式子(22)所述的子变换矩阵A6:
Figure BDA0002734251450000184
Figure BDA0002734251450000191
以此类推,在将子变换矩阵B1作为新的待分解矩阵的情况下,可以将其分解为式子(23)所述的子变换矩阵B3和式子(24)所述的子变换矩阵B4:
Figure BDA0002734251450000192
Figure BDA0002734251450000193
在将子变换矩阵B2作为新的待分解矩阵的情况下,可以将其分解为式子(25)所述的子变换矩阵B5和式子(26)所述的子变换矩阵B6:
Figure BDA0002734251450000194
Figure BDA0002734251450000201
步骤S96:结束。
采用与前述公开实施例类似的方式,未分解前残差块其中一行L最终需经过64次乘法运算,而行L利用子变换矩阵A3进行变换需经过1次乘法,利用子变换矩阵A4进行变换需经过2次乘法,利用子变换矩阵A5进行变换需经过2次乘法,利用子变换矩阵A6进行变换需经过4次乘法,利用子变换矩阵B3进行变换需经过2次乘法,利用子变换矩阵B4进行变换需经过4次乘法,利用子变换矩阵B5需经过4次乘法,利用子变换矩阵B6需经过8次乘法,故利用分解得到的子变换矩阵A3~A6和子变换矩阵B3~B6进行变换共需经过27次乘法,即共可减少57.81%的乘法运算量。
区别于前述实施例,通过提取待分解矩阵中尺寸最大的同元素区域,从而利用提取到的同元素区域的元素,将待分解矩阵分解为两个子变换矩阵,且两个子变换矩阵之和为待分解矩阵,两个子变换矩阵中的一个是利用提取到的同元素区域的元素得到的,能够有利于简化对待分解矩阵的分解,提高分解待分解矩阵的速度。
请参阅图10,图10是本申请视频编码装置100一实施例的框架示意图。视频编码装置100包括:残差获取模块110、残差变换模块120、变换获取模块130和量化编码模块140,残差获取模块110用于利用当前块的预测块,得到当前块的残差块,残差变换模块120用于利用由变换矩阵分解得到的若干个子变换矩阵,分别对残差块进行变换,得到若干个子变换块,变换获取模块130用于基于若干个子变换块,得到残差块的变换块,量化编码模块140用于对变换块进行量化编码,其中,子变换矩阵包括至少一个区域集合,区域集合包括多个互不重叠且对应位置处元素相同的同元素区域。
上述方案,通过利用当前块的预测块,得到当前块的残差块,从而利用由变换矩阵分解得到的若干个子变换矩阵,分别对残差块进行变换,得到若干个子变换块,进而基于若干个子变换块,得到残差块的变换块,并对变换块进行量化编码,且子变换矩阵包括至少一个区域集合,区域集合包括多个互不重叠且对应位置处元素相同的同元素区域。故此,由于子变换矩阵中包括至少一个区域集合,且区域集合包括多个同元素区域,故在利用子变换矩阵对残差块进行变换时,能够有利于大大降低两者之间的运算复杂度,从而能够有利于减少视频编码的运算量。
在一些公开实施例中,视频编码装置100还包括区域筛选模块,用于在变换矩阵中,筛选出满足第一预设条件的第一区域;其中,第一区域内元素的行数和列数为同一数值,视频编码装置100还包括矩阵获取模块,用于利用第一区域中的元素,得到待分解矩阵;其中,待分解矩阵包含至少一对同元素区域,每对同元素区域所包含的两个同元素区域分别位于待分解矩阵对角线的两侧,视频编码装置100还包括矩阵分解模块,用于基于待分解矩阵所包含的同元素区域,对待分解矩阵进行至少一次分解,得到子变换矩阵。
区别于前述实施例,通过在变换矩阵中,筛选出满足第一预设条件的第一区域,并利用第一区域中的元素,得到待分解矩阵,且分解矩阵包含至少一对同元素区域,每对同元素区域所包含的两个同元素区域分别位于待分解矩阵对角线的两侧,从而能够基于包含同元素区域的待分解矩阵进行分解,进而能够有利于提高矩阵分解的便利性的速度。
在一些公开实施例中,在筛选到多个第一区域且多个第一区域互不重叠的情况下,待分解矩阵仅有一个,且待分解矩阵是利用多个第一区域中尺寸最大的第一区域中的元素得到的;或者,在筛选到多个第一区域且多个第一区域互不重叠的情况下,待分解矩阵有多个,每个待分解矩阵是分别利用对应一个第一区域中的元素得到的。
区别于前述实施例,在筛选到多个第一区域且多个第一区域互不重叠的情况下,待分解矩阵仅有一个,且待分解矩阵是利用多个第一区域中尺寸最大的第一区域中的元素得到的,能够基于尺寸最大的第一区域得到待分解矩阵,从而能够有利于提高得到待分解矩阵的速度;而在筛选到多个第一区域且多个第一区域互不重叠的情况下,待分解矩阵有多个,每个待分解矩阵是分别利用对应一个第一区域中的元素得到的,能够分别基于多个第一区域,对应得到多个待分解矩阵,从而能够有利于提高后续残差块变换的精度。
在一些公开实施例中,第一预设条件包括:第一区域中任意两行所包含的元素绝对值相同,且第一区域中任意两列所包含的元素绝对值相同,第一区域中任一行与任一列所包含的元素绝对值相同。
区别于前述实施例,将第一预设条件设置为包括:第一区域中任意两行所包含的元素绝对值相同,且第一区域中任意两列所包含的元素绝对值相同,第一区域中任一行与任一列所包含的元素绝对值相同,能够有利于提高后续基于第一区域得到待分解矩阵的成功率。
在一些公开实施例中,对角线为主对角线,矩阵获取模块包括交换子模块,用于对第一区域中的元素行进行交换,并对第一区域中的元素列进行交换,得到第一矩阵;其中,第一矩阵中的元素满足:副对角线上的元素绝对值相同,副对角线的同一平行线上的元素绝对值相同,矩阵获取模块包括重排子模块,用于利用数值的质因数,对第一矩阵中的元素行和元素列进行重排,得到第二矩阵,矩阵获取模块包括修正子模块,用于对第二矩阵内的部分元素进行修正,得到待分解矩阵。
区别于前述实施例,通过对第一区域中的元素行进行交换,并对第一区域中的元素列进行交换,得到第一矩阵,且第一矩阵中的元素满足:副对角线上的元素绝对值相同,副对角线的同一平行线上的元素绝对值相同,从而利用数值的质因数,对第一矩阵中的元素行和元素列进行重排,得到第二矩阵,进而对第二矩阵内的部分元素进行修正,得到待分解矩阵。故此,可以通过行列交换、行列重排等简单操作,得到最终的待分解矩阵,能够有利于降低得到待分解矩阵的运算量。
在一些公开实施例中,交换子模块包括第一行交换单元,具体用于将第一区域的第i元素行作为待交换元素行,在第一区域中搜索目标元素行;其中,i大于1,且目标元素行的第一个元素绝对值与第i-1元素行的第j个元素绝对值相同;在目标元素行不在待交换元素行上方的情况下,将待交换元素行与目标元素行交换,并将i加1,重新执行将第一区域的第i元素行作为待交换元素行,在第一区域中搜索目标元素行的步骤,直至第一区域中不存在待交换元素行;在目标元素行在待交换元素行上方的情况下,则将i重置为2,将j加1,并重新执行将第一区域的第i元素行作为待交换元素行,在第一区域中搜索目标元素行的步骤;交换子模块包括第一列交换单元,具体用于将第一区域的第k元素列作为待交换元素列,在第一区域中搜素目标元素列;其中,k大于1,且目标元素列的第一个元素绝对值与第k-1元素列的第二个元素绝对值相同;将待交换元素列于目标元素列交换,并将k加1,重新执行将第一区域的第k元素列作为待交换元素列,在第一区域中搜素目标元素列的步骤,直至第一区域中不存在待交换元素列。
区别于前述实施例,通过先进行行交换再进行列交换,并在行交换过程中,对目标元素行与待交换元素行的位置关系进行校验,能够有利于提高交换的准确性。
在一些公开实施例中,交换子模块包括第二列交换单元,具体用于将第一区域的第i元素列作为待交换元素列,在第一区域中搜索目标元素列;其中,i大于1,且目标元素列的第一个元素为第i-1元素列的第j个元素;在目标元素列不在待交换元素列左侧的情况下,将待交换元素列与目标元素列交换,并将i加1,重新执行将第一区域的第i元素列作为待交换元素列,在第一区域中搜索目标元素列的步骤,直至第一区域中不存在待交换元素列;在目标元素列在待交换元素行左侧的情况下,则将i重置为2,将j加1,并重新执行将第一区域的第i元素列作为待交换元素列,在第一区域中搜索目标元素列的步骤;交换子模块包括第二行交换单元,具体用于将第一区域的第k元素行作为待交换元素行,在第一区域中搜素目标元素行;其中,k大于1,且目标元素行的第一个元素为第k-1元素行的第二个元素;将待交换元素行于目标元素行交换,并将k加1,重新执行将第一区域的第k元素行作为待交换元素行,在第一区域中搜素目标元素行的步骤,直至第一区域中不存在待交换元素行。
区别于前述实施例,通过先进行列交换再进行行交换,并在列交换过程中,对目标元素列与待交换元素列的位置关系进行校验,能够有利于提高交换的准确性。
在一些公开实施例中,重排子模块包括质因数选择单元,用于在数值的质因数中,每次选择一个未被选择过的质因数作为当前质因数,重排子模块包括行重排单元,用于获取各个元素行在当前的行区域中的行号,将行号除以当前质因数的余数相同的元素行,重排为一个行区域,并按照余数在预设数值排序中的顺序,将各个行区域重排,重排子模块包括列重排子模块,用于获取各个元素列在当前的列区域中的列号,将列号除以当前质因数的余数相同的元素列,重排为一个列区域,并按照余数在预设数值排序中的顺序,将各个列区域重排。
区别于前述实施例,通过利用数值的质因数对第一矩阵进行行重排与列重排,能够有利于对第一矩阵实现有序重排,有利于提高重排效率和准确性。
在一些公开实施例中,同元素区域的尺寸为数值的质因数中最大两个数之积,修正子模块包括区域获取单元,用于在第二矩阵中,获取分别位于主对角线两侧且尺寸相同的两个第二区域,修正子模块包括修正确定单元,用于比较两个第二区域的元素,确定待修正元素行和待修正元素列,修正子模块包括元素修正单元,用于对待修正元素行和待修正元素列进行修正,以使两个第二区域对应位置处的元素相同,得到待分解矩阵。
区别于前述实施例,通过在第二矩阵中,获取分别位于主对角线两侧且尺寸相同的两个第二区域,并比较两个第二区域的元素,确定待修正元素行和待修正元素列,从而对待修正元素行和待修正元素列进行修正,以使两个第二区域对应位置处的元素相同,得到待分解矩阵,能够有利于确保待分解矩阵在主对角线两侧包含同元素区域,从而能够有利于提高后续分解待分解矩阵的速度和效率。
在一些公开实施例中,矩阵分解模块包括区域提取子模块,用于提取待分解矩阵中尺寸最大的同元素区域,矩阵分解模块包括矩阵分解子模块,用于利用提取到的同元素区域的元素,将待分解矩阵分解为两个子变换矩阵;其中,两个子变换矩阵之和为待分解矩阵,两个子变换矩阵中的一个是利用提取到的同元素区域的元素得到的。
区别于前述实施例,通过提取待分解矩阵中尺寸最大的同元素区域,从而利用提取到的同元素区域的元素,将待分解矩阵分解为两个子变换矩阵,且两个子变换矩阵之和为待分解矩阵,两个子变换矩阵中的一个是利用提取到的同元素区域的元素得到的,能够有利于简化对待分解矩阵的分解,提高分解待分解矩阵的速度。
在一些公开实施例中,矩阵分解模块还包括条件检测子模块,用于检测是否满足第二预设条件,矩阵分解模块还包括矩阵选择子模块,用于在检测到满足第二预设条件的情况下,将两个子变换矩阵中的至少一个,作为新的待分解矩阵,并结合矩阵提取子模块以及矩阵分解子模块、条件检测子模块重新执行提取待分解矩阵中尺寸最大的同元素区域的步骤以及后续步骤,以对新的待分解矩阵再次分解。
区别于前述实施例,在检测到满足第二预设条件的情况下,将两个子变换矩阵中的至少一个,作为新的待分解矩阵,并重新执行提取待分解矩阵中尺寸最大的同元素区域的步骤以及后续步骤,能够有利于将待分解矩阵进行多次分解,从而能够有利于进一步减少对残差块进行变换的运算量。
在一些公开实施例中,第二预设条件设置为包括:子变换矩阵中存在同元素区域。
区别于前述实施例,将第二预设条件设置为包括:子变换矩阵中存在同元素区域,能够有利于尽可能地深化对待分解矩阵的分解程度,从而能够有利于将待分解矩阵进行尽可能多地分解,从而能够有利于尽可能地减少对残差块进行变换的运算量。
请参阅图11,图11是本申请电子设备1100一实施例的框架示意图。电子设备1100包括相互耦接的存储器1101和处理器1102,存储器1101存储有程序指令,处理器1102用于执行程序指令以实现上述任一视频编码方法实施例中的步骤。具体地,电子设备可以包括但不限于:服务器、微型计算机、平板电脑、手机等电子设备,在此不做限定。
具体而言,处理器1102用于控制其自身以及存储器1101以实现上述任一视频编码方法实施例中的步骤。处理器1102还可以称为CPU(Central Processing Unit,中央处理单元)。处理器1102可能是一种集成电路芯片,具有信号的处理能力。处理器1102还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器1102可以由多个集成电路芯片共同实现。
上述方案,能够减少视频编码的运算量。
请参阅图12,图12为本申请存储装置1200一实施例的框架示意图。存储装置1200存储有能够被处理器运行的程序指令1201,程序指令1201用于实现上述任一视频编码方法实施例中的步骤。
上述方案,能够减少视频编码的运算量。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (15)

1.一种视频编码方法,其特征在于,包括:
利用当前块的预测块,得到所述当前块的残差块;
利用由变换矩阵分解得到的若干个子变换矩阵,分别对所述残差块进行变换,得到若干个子变换块,其中,所述子变换矩阵包括至少一个区域集合,所述区域集合包括多个互不重叠且对应位置处元素相同的同元素区域;
基于所述若干个子变换块,得到所述残差块的变换块;
对所述变换块进行量化编码。
2.根据权利要求1所述的方法,其特征在于,在所述利用由变换矩阵分解得到的若干个子变换矩阵,分别对所述残差块进行变换,得到若干个子变换块之前,所述方法还包括:
在所述变换矩阵中,筛选出满足第一预设条件的第一区域;其中,所述第一区域内元素的行数和列数为同一数值;
利用所述第一区域中的元素,得到待分解矩阵;其中,所述待分解矩阵包含至少一对同元素区域,每对所述同元素区域所包含的两个同元素区域分别位于所述待分解矩阵对角线的两侧;
基于所述待分解矩阵所包含的同元素区域,对所述待分解矩阵进行至少一次分解,得到所述子变换矩阵。
3.根据权利要求2所述的方法,其特征在于,在筛选到多个第一区域且所述多个第一区域互不重叠的情况下,所述待分解矩阵仅有一个,且所述待分解矩阵是利用所述多个第一区域中尺寸最大的第一区域中的元素得到的;
或者,在筛选到多个第一区域且所述多个第一区域互不重叠的情况下,所述待分解矩阵有多个,每个所述待分解矩阵是分别利用对应一个所述第一区域中的元素得到的。
4.根据权利要求2所述的方法,其特征在于,所述第一预设条件包括:所述第一区域中任意两行所包含的元素绝对值相同,且所述第一区域中任意两列所包含的元素绝对值相同,所述第一区域中任一行与任一列所包含的元素绝对值相同。
5.根据权利要求2所述的方法,其特征在于,所述对角线为主对角线;所述利用所述第一区域中的元素,得到待分解矩阵,包括:
对所述第一区域中的元素行进行交换,并对所述第一区域中的元素列进行交换,得到第一矩阵;其中,所述第一矩阵中的元素满足:副对角线上的元素绝对值相同,所述副对角线的同一平行线上的元素绝对值相同;
利用所述数值的质因数,对所述第一矩阵中的元素行和元素列进行重排,得到第二矩阵;
对所述第二矩阵内的部分元素进行修正,得到所述待分解矩阵。
6.根据权利要求5所述的方法,其特征在于,所述对所述第一区域中的元素行进行交换,包括:
将所述第一区域的第i元素行作为待交换元素行,在所述第一区域中搜索目标元素行;其中,所述i大于1,且所述目标元素行的第一个元素为第i-1元素行的第j个元素;
在所述目标元素行不在所述待交换元素行上方的情况下,将所述待交换元素行与所述目标元素行交换,并将所述i加1,重新执行所述将所述第一区域的第i元素行作为待交换元素行,在所述第一区域中搜索目标元素行的步骤,直至所述第一区域中不存在所述待交换元素行;
在所述目标元素行在所述待交换元素行上方的情况下,则将所述i重置为2,将所述j加1,并重新执行所述将所述第一区域的第i元素行作为待交换元素行,在所述第一区域中搜索目标元素行的步骤;
所述对所述第一区域中的元素列进行交换,包括:
将所述第一区域的第k元素列作为待交换元素列,在所述第一区域中搜素目标元素列;其中,所述k大于1,且所述目标元素列的第一个元素为第k-1元素列的第二个元素;
将所述待交换元素列于所述目标元素列交换,并将所述k加1,重新执行所述将所述第一区域的第k元素列作为待交换元素列,在所述第一区域中搜素目标元素列的步骤,直至所述第一区域中不存在所述待交换元素列。
7.根据权利要求5所述的方法,其特征在于,所述对所述第一区域中的元素列进行交换,包括:
将所述第一区域的第i元素列作为待交换元素列,在所述第一区域中搜索目标元素列;其中,所述i大于1,且所述目标元素列的第一个元素为第i-1元素列的第j个元素;
在所述目标元素列不在所述待交换元素列左侧的情况下,将所述待交换元素列与所述目标元素列交换,并将所述i加1,重新执行所述将所述第一区域的第i元素列作为待交换元素列,在所述第一区域中搜索目标元素列的步骤,直至所述第一区域中不存在所述待交换元素列;
在所述目标元素列在所述待交换元素行左侧的情况下,则将所述i重置为2,将所述j加1,并重新执行所述将所述第一区域的第i元素列作为待交换元素列,在所述第一区域中搜索目标元素列的步骤;
所述对所述第一区域中的元素行进行交换,包括:
将所述第一区域的第k元素行作为待交换元素行,在所述第一区域中搜素目标元素行;其中,所述k大于1,且所述目标元素行的第一个元素为第k-1元素行的第二个元素;
将所述待交换元素行于所述目标元素行交换,并将所述k加1,重新执行所述将所述第一区域的第k元素行作为待交换元素行,在所述第一区域中搜素目标元素行的步骤,直至所述第一区域中不存在所述待交换元素行。
8.根据权利要求5所述的方法,其特征在于,所述利用所述数值的质因数,对所述第一矩阵中的元素行和元素列进行重排,得到第二矩阵,包括:
在所述数值的质因数中,每次选择一个未被选择过的所述质因数作为当前质因数;
获取各个元素行在当前的行区域中的行号,将所述行号除以所述当前质因数的余数相同的元素行,重排为一个行区域,并按照所述余数在预设数值排序中的顺序,将各个所述行区域重排;
获取各个元素列在当前的列区域中的列号,将所述列号除以所述当前质因数的余数相同的元素列,重排为一个列区域,并按照所述余数在预设数值排序中的顺序,将各个所述列区域重排。
9.根据权利要求5所述的方法,其特征在于,所述对所述第二矩阵内的部分元素进行修正,得到所述待分解矩阵,包括:
在所述第二矩阵中,获取分别位于所述主对角线两侧且尺寸相同的两个第二区域;
比较所述两个第二区域的元素,确定待修正元素行和待修正元素列;
对所述待修正元素行和待修正元素列进行修正,以使两个所述第二区域对应位置处的元素相同,得到所述待分解矩阵。
10.根据权利要求2所述的方法,其特征在于,所述基于所述待分解矩阵所包含的同元素区域,对所述待分解矩阵进行至少一次分解,得到所述子变换矩阵,包括:
提取所述待分解矩阵中尺寸最大的同元素区域;
利用提取到的所述同元素区域的元素,将所述待分解矩阵分解为两个子变换矩阵;其中,所述两个子变换矩阵之和为所述待分解矩阵,所述两个子变换矩阵中的一个是利用提取到的所述同元素区域的元素得到的。
11.根据权利要求10所述的方法,其特征在于,在所述利用提取到的所述同元素区域的元素,将所述待分解矩阵分解为两个子变换矩阵之后,所述方法还包括:
在满足第二预设条件的情况下,将所述两个子变换矩阵中的至少一个,作为新的待分解矩阵,并重新执行所述提取所述待分解矩阵中尺寸最大的同元素区域的步骤以及后续步骤,以对新的待分解矩阵再次分解。
12.根据权利要求11所述的方法,其特征在于,所述第二预设条件包括:所述子变换矩阵中存在同元素区域。
13.一种视频编码装置,其特征在于,包括:
残差获取模块,用于利用当前块的预测块,得到所述当前块的残差块;
残差变换模块,用于利用由变换矩阵分解得到的若干个子变换矩阵,分别对所述残差块进行变换,得到若干个子变换块,其中,所述子变换矩阵包括至少一个区域集合,所述区域集合包括多个互不重叠且对应位置处元素相同的同元素区域;
变换获取模块,用于基于所述若干个子变换块,得到所述残差块的变换块;
量化编码模块,用于对所述变换块进行量化编码。
14.一种电子设备,其特征在于,包括相互耦接的存储器和处理器,所述存储器存储有程序指令,所述处理器用于执行所述程序指令以实现权利要求1至12任一项所述的视频编码方法。
15.一种存储装置,其特征在于,存储有能够被处理器运行的程序指令,所述程序指令用于实现权利要求1至12任一项所述的视频编码方法。
CN202011128185.6A 2020-10-20 2020-10-20 视频编码方法以及电子设备、存储装置 Active CN112243125B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011128185.6A CN112243125B (zh) 2020-10-20 2020-10-20 视频编码方法以及电子设备、存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011128185.6A CN112243125B (zh) 2020-10-20 2020-10-20 视频编码方法以及电子设备、存储装置

Publications (2)

Publication Number Publication Date
CN112243125A CN112243125A (zh) 2021-01-19
CN112243125B true CN112243125B (zh) 2022-07-12

Family

ID=74169468

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011128185.6A Active CN112243125B (zh) 2020-10-20 2020-10-20 视频编码方法以及电子设备、存储装置

Country Status (1)

Country Link
CN (1) CN112243125B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103327331A (zh) * 2013-06-18 2013-09-25 复旦大学 一种hevc标准中8×8dct变换的实现方法
CN103384901A (zh) * 2010-12-23 2013-11-06 法国电信 改进变换域中的滤波
CN111373757A (zh) * 2017-11-24 2020-07-03 索尼公司 图像处理设备和方法
CN111556319A (zh) * 2020-05-14 2020-08-18 电子科技大学 一种基于矩阵分解的视频编码方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5006214B2 (ja) * 2006-02-08 2012-08-22 ルネサスエレクトロニクス株式会社 ばらつきシミュレーション・システム、ばらつき決定モデル方法と装置ならびにプログラム
US9183181B2 (en) * 2011-01-10 2015-11-10 Cisco Technology, Inc. Integer matrix transform video compression system, method and computer program product
US10863199B2 (en) * 2018-03-26 2020-12-08 Qualcomm Incorporated Minimization of transform memory and latency via parallel factorizations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103384901A (zh) * 2010-12-23 2013-11-06 法国电信 改进变换域中的滤波
CN103327331A (zh) * 2013-06-18 2013-09-25 复旦大学 一种hevc标准中8×8dct变换的实现方法
CN111373757A (zh) * 2017-11-24 2020-07-03 索尼公司 图像处理设备和方法
CN111556319A (zh) * 2020-05-14 2020-08-18 电子科技大学 一种基于矩阵分解的视频编码方法

Also Published As

Publication number Publication date
CN112243125A (zh) 2021-01-19

Similar Documents

Publication Publication Date Title
US20240244246A1 (en) Multiple transforms adjustment stages for video coding
CN110636313B (zh) 变换、二次变换矩阵训练方法、编码器及相关装置
JP2016532377A (ja) 固定幅可変長の画素サンプル値文字列のマッチングが強化された画像圧縮方法及び装置
US6223193B1 (en) Macroblock variance estimator for MPEG-2 video encoder
US20210281842A1 (en) Method and apparatus for processing video
CN108777794B (zh) 图像的编码方法和装置、存储介质、电子装置
WO2013079035A1 (en) Image transform zero coefficient selection and zero-skip transmission for arbitrary shape transform coding
WO2019190283A1 (ko) 저복잡도 연산 dst7을 설계하는 방법 및 장치
JP6357345B2 (ja) ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置および方法
KR102447425B1 (ko) 디지털 이미지를 디코딩하기 위한 방법, 코딩 방법, 디바이스들, 및 연관된 컴퓨터 프로그램들
CN107295338B (zh) 基于无损联合图像专家小组格式的图像压缩与解压缩方法
CN105163130B (zh) 一种基于离散Tchebichef正交多项式的图像无损压缩方法
CN112243125B (zh) 视频编码方法以及电子设备、存储装置
KR20200022386A (ko) 정보 처리 장치 및 정보 처리 방법
CN108900842B (zh) Y数据压缩处理方法、装置、设备及WebP压缩系统
WO2020060832A1 (en) Fast implementation of odd one dimensional transforms
CN106664408B (zh) 一种压缩数字图像的方法
JPH10283343A (ja) データ処理方法
CN116847082A (zh) 视频编码方法和装置
CN108184127A (zh) 一种可配置的多尺寸dct变换硬件复用架构
CN113038131A (zh) 视频编码方法、装置、计算机设备和存储介质
CN114554225B (zh) 图像编码方法、装置、设备及计算机可读介质
Hong et al. New fast DCT algorithms based on Loeffler's factorization
US11290748B2 (en) Method and device for designing low complexity DST7
Jianhong et al. Fast parallel implementation of H. 264/AVC transform exploiting SIMD instructions

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant