CN116600123A - 视频编码方法及装置、视频解码方法及装置、电子设备 - Google Patents
视频编码方法及装置、视频解码方法及装置、电子设备 Download PDFInfo
- Publication number
- CN116600123A CN116600123A CN202310868710.5A CN202310868710A CN116600123A CN 116600123 A CN116600123 A CN 116600123A CN 202310868710 A CN202310868710 A CN 202310868710A CN 116600123 A CN116600123 A CN 116600123A
- Authority
- CN
- China
- Prior art keywords
- residual matrix
- image block
- target image
- residual
- video
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 239000011159 matrix material Substances 0.000 claims abstract description 234
- 230000009466 transformation Effects 0.000 claims abstract description 90
- 230000001131 transforming effect Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 238000007906 compression Methods 0.000 abstract description 14
- 230000006835 compression Effects 0.000 abstract description 13
- 230000008569 process Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 230000000694 effects Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000013139 quantization Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 108091026890 Coding region Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开提供一种视频编码方法及装置、视频解码方法及装置、电子设备,涉及数字多媒体技术领域。该视频编码方法包括:在视频帧中获取目标图像块;获取目标图像块的第一残差矩阵;根据至少一种变换规则重新排列第一残差矩阵中的元素,得到第二残差矩阵;在第二残差矩阵的编码成本小于第一残差矩阵的编码成本的情况下,基于第二残差矩阵,得到目标图像块的编码数据。以此,能够优化残差矩阵的内部相关性,以降低视频的量化输出的码率,提高表达效率,整体提高了视频压缩效率和视频编码性能。
Description
技术领域
本公开涉及数字多媒体技术领域,具体涉及一种视频编码方法及装置、视频解码方法及装置、电子设备。
背景技术
随着科技的发展,视频的清晰度有着显著的提高,但随之而来的问题是未压缩的视频文件非常大,一分钟的未压缩4K素材大小可达几十GB,很难直接传输或处理,视频编码技术应运而生。
视频编码是将视频转换为数字信号,并采用压缩算法对其进行处理的过程。视频是由连续的帧构成,由于人眼的视觉暂留效应,连续的图像序列快速播放时就能呈现出动作连续的视频画面。因此,连续的视频帧之间有极强的相似性,也就是说有大量的冗余信息。在视频编码过程中,可以将原始的视频进行编码压缩,去除空间、时间维度的冗余,以便于网络传输和降低带宽。
相关技术中,可以将每一视频帧划分为多个图像块。针对每个图像块,使用帧内预测或者帧间预测模式对该图像块进行预测,得到该图像块对应的预测图像块,并将该图像块和预测图像块作差得到该图像块的残差矩阵。然后,对残差矩阵进行频域变换、量化和熵编码等操作,就能得到该图像块最终的编码数据。在此过程中,频域变换期望残差矩阵的各元素之间满足一定的分布关系,以得到更好的压缩效果。但实际应用中的残差矩阵往往不能满足该条件,因此无法保证编码性能。
发明内容
有鉴于此,本公开提供一种视频编码方法及装置、视频解码方法及装置、电子设备,以解决相关技术中编码性能不稳定的问题。
第一方面,提供一种视频编码方法,包括:在视频帧中获取目标图像块;获取目标图像块的第一残差矩阵;根据至少一种变换规则重新排列第一残差矩阵中的元素,得到第二残差矩阵;在第二残差矩阵的编码成本小于第一残差矩阵的编码成本的情况下,基于第二残差矩阵,得到目标图像块的编码数据。
在一些实施例中,根据至少一种变换规则重新排列第一残差矩阵中的元素,得到第二残差矩阵,包括:分别基于至少一种变换规则对第一残差矩阵进行变换,得到至少一个第三残差矩阵;计算至少一个第三残差矩阵各自的编码成本;选取编码成本最小的第三残差矩阵作为第二残差矩阵。
在一些实施例中,变换规则,包括:将第一残差矩阵的最后一行中的全部元素向左或向右偏移预设长度,偏移方向的末端的元素顺序移动至偏移方向的首端;分别将第一残差矩阵的其他行中的全部元素向偏移方向偏移各自的预设长度,其中,其他行为除最后一行之外的行,每行的预设长度小于或等于该行对应的下一行的预设长度。
在一些实施例中,第一残差矩阵的最后一行对应的预设长度为N,3N/4,N/2,N/4中的一个,其中,N为第一残差矩阵的每行元素的个数。
在一些实施例中,编码成本为率失真代价,率失真代价基于目标图像块的编码数据的码流长度和视频失真程度计算获得。
第二方面,提供一种视频解码方法,包括:获取目标图像块的编码数据,编码数据中包括目标图像块的第二残差矩阵,编码数据是基于上述第一方面的方法得到的;获取目标图像块对应的变换规则;基于目标图像块对应的变换规则重新排列第二残差矩阵中的元素,得到第一残差矩阵;基于第一残差矩阵,将编码数据解码为目标图像块。
第三方面,提供一种视频编码装置,包括:第一获取模块,用于在视频帧中获取目标图像块;第二获取模块,用于获取目标图像块的第一残差矩阵;变换模块,用于根据至少一种变换规则重新排列第一残差矩阵中的元素,得到第二残差矩阵;编码模块,用于在第二残差矩阵的编码成本小于第一残差矩阵的编码成本的情况下,基于第二残差矩阵,得到目标图像块的编码数据。
第四方面,提供一种视频解码装置,包括:第一获取模块,用于获取目标图像块的编码数据,编码数据中包括目标图像块的第二残差矩阵,编码数据是基于上述第一方面的方法得到的;第二获取模块,用于获取目标图像块对应的变换规则;变换模块,用于基于目标图像块对应的变换规则重新排列第二残差矩阵中的元素,得到第一残差矩阵;解码模块,用于基于第一残差矩阵,将编码数据解码为目标图像块。
第五方面,提供一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述第一方面和第二方面的方法。
第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面和第二方面的方法。
本公开实施例提供的视频编码方法,通过根据至少一种变换规则,重新排列视频帧中图像块的残差矩阵中的元素,优化残差矩阵的内部相关性;通过比较第二残差矩阵和第一残差矩阵的编码成本,选择编码成本较小的残差矩阵对目标图像块编码,得到编码数据。以此,大幅降低视频的量化输出的码率,提高表达效率,整体提高了视频压缩效率和视频编码性能。
附图说明
图1示出本公开实施例中一种视频编码方法的流程示意图。
图2示出本公开实施例中一种变换规则的流程示意图。
图3示出本公开实施例中一种根据至少一种变换规则重新排列第一残差矩阵中的元素,得到第二残差矩阵的方法的流程示意图。
图4示出本公开实施例中一种视频解码方法的流程示意图。
图5示出本公开实施例中一种视频编码装置的结构示意图。
图6示出本公开实施例中一种视频解码装置的结构示意图。
图7示出本公开实施例中一种电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
数字多媒体技术广泛应用于通信、计算机、广播电视等领域,可应用于会议电视、可视电话及数字电视、媒体存储等一系列应用场景中,促使了许多视频编码标准的产生,目前较为广泛使用的视频编码标准包括MPEG系列和H.26X系列等。
相关技术中,视频编码标准定义了视频编码序列每个字段的格式和含义。编码器遵循视频编码标准,采用某一个视频压缩算法将视频编码成符合标准的编码数据。在视频压缩过程中,连续的视频帧之间通常存在大量的相似性,因此采用预测图像和残差的方式来描述当前图像,可以减少需要编码的数据量,从而提高视频压缩效率。然而,残差中依然存在着一定的冗余和内部的相关性,使得视频的编码数据中仍包括部分冗余信息,影响了视频压缩效率和视频编码性能。
有鉴于此,本公开提供一种视频编码方法,包括:在视频帧中获取目标图像块;获取目标图像块的第一残差矩阵;根据至少一种变换规则重新排列第一残差矩阵中的元素,得到第二残差矩阵;在第二残差矩阵的编码成本小于第一残差矩阵的编码成本的情况下,基于第二残差矩阵,得到目标图像块的编码数据。因此,本公开实施例提供的视频编码方法,能够通过根据至少一种变换规则,重新排列视频帧中图像块的残差矩阵中的元素,优化残差矩阵的内部相关性;通过比较第二残差矩阵和第一残差矩阵的编码成本,选择编码成本较小的残差矩阵对目标图像块编码,得到编码数据。以此,大幅降低视频的量化输出的码率,提高表达效率,整体提高了视频压缩效率和视频编码性能。
本公开实施例提供了一种视频编码方法、视频解码方法、装置、电子设备及存储介质。该视频编码装置和/或视频解码装置具体可以集成在电子设备中,该电子设备可以是智能手机、摄像机、监控摄像头等终端或服务器等设备。
可以理解的是,本公开实施例的视频编码方法和/或视频解码方法可以是在终端上执行的,也可以是在服务器上执行,还可以由终端和服务器共同执行的。不应理解为对本公开的限制。
并且,本公开实施例的视频编码方法、视频解码方法能够应用于任意视频编码器和解码器中,适用于H.265、H.264、AVS、AV1等任意视频编码标准。可以理解的是,以上举例仅仅旨在清晰描述本公开实施例的具体实现方式,不应理解为对本公开的限制。
下面将结合附图及实施例对本示例实施方式进行详细说明。
首先,本公开实施例中提供了一种视频编码方法,该方法可以由任意具备计算处理能力的电子设备执行。
图1示出本公开实施例中一种视频编码方法的流程示意图,如图1所示,本公开实施例提供的视频编码方法包括如下步骤。
S101,在视频帧中获取目标图像块。
具体而言,视频由一系列连续的静止画面组成,视频帧就是视频中的静止画面。编码器将每一视频帧按照特定规则划分成多个图像块。其中,编码器可以将视频帧划分为多个大小相同的图像块,或是划分为多个大小不完全相同的图像块。每一图像块包括视频帧中部分图像的色度和亮度信息。示例性的,编码器可以先按照固定的大小将视频帧划分为多个大小相同的编码树单元,再将每个编码树单元按照特定规则进行树形划分,得到多个图像块。
在一些实施例中,可以选取任意图像块作为目标图像块,对当前目标图像块处理结束后,选取视频帧中其它未处理的图像块作为新的目标图像块。以此,保证本实施例的方法能遍历视频帧中的全部图像块。
S102,获取目标图像块的第一残差矩阵。
在一些实施例中,编码器会为目标图像块选择性能最佳的预测模式。其中,预测是根据已有的参考图像的信息和某些算法(如,运动补偿技术),对目标图像块进行预测。预测模式包括帧内预测模式和帧间预测模式,帧内预测模式中参考图像是当前处理的视频帧中的图像;帧间预测模式中参考图像是当前视频帧之前的前序帧中的图像。
在确定预测模式后,编码器通过将原始目标图像块与其预测图像块之间的差异计算得到残差信息,并将残差信息保存至编码信息中,从而减少视频的数据量,同时提高压缩效率和视频质量。其中,残差信息通常以矩阵作为表现形式。因此,在对目标图像块进行上述处理后,可以得到目标图像块的第一残差矩阵。
S103,根据至少一种变换规则重新排列第一残差矩阵中的元素,得到第二残差矩阵。
在一些实施例中,预设至少一种变换规则,根据变换规则将第一残差矩阵中的元素重新排列,得到第二残差矩阵。其中,第二残差矩阵中元素的集合与第一残差矩阵相同,但各元素所处的行和列的位置不一定相同。通过重新排列第一残差矩阵中的元素,以降低各元素之间的相关性的效果,使得第二残差矩阵呈现出更优的编码效果。
S104,在第二残差矩阵的编码成本小于第一残差矩阵的编码成本的情况下,基于第二残差矩阵,得到目标图像块的编码数据。
在一些实施例中,对第二残差矩阵进行频域变换。其中,频域变换是将图像从空域变换到其他域(如,频域)的正交变换,借助于正交变换的特性可使在空域上的复杂计算转换到其他域后得到简化,得到第二残差矩阵的频域系数。示例性的,频域变换可以是离散余弦变换(Discrete Cosine Transform,DCT)或离散正弦变换(Discrete Sine Transform,DST)等。频域变换能够将信息中的大部分能量压缩到较少的系数中,提高能量聚集度。
第二残差矩阵的频域系数中包括的信息量较大,为进一步压缩信息量,需要对频域系数进行量化,将频域系数中的参数分级靠档到特定的值域中。示例性的,可以对频域系数中的每个参数除以缩放因子,得到一个整数或带有余数的整数,并采用四舍五入的方法将余数舍弃,最终将频域系数量化为多个整数的形式。在此过程中,会损失信息的部分精度(即,图像质量),但能去除冗余信息,大幅提高编码效率,以实现压缩信息量的目的。
对量化后的频域系数进行熵编码,最终得到目标图像块的编码数据。
在一些实施例中,虽然变换后的编码数据压缩效率高,码率小,但其损失的信息量过大,使得这部分编码数据解码后的图像失真较大;但若是保留过多信息量,图像失真较小,那么码率会相应的增大。因此,可以使用编码成本衡量图像质量与编码效率之间的关系。其中,编码成本表征码率一定的情况下的不同方法的失真程度,一种方法的编码成本越小,就表示其编码性能越高。
因此,在面对第一残差矩阵以及重新排列第一残差矩阵得到的第二残差矩阵时,可以分别计算第一残差矩阵和第二残差矩阵的编码成本,选择编码成本较小的矩阵对目标图像块进行编码,得到编码数据。在第二残差矩阵的编码成本小于第一残差矩阵的编码成本的情况下,基于第二残差矩阵对目标图像块进行编码,得到编码数据。在第二残差矩阵的编码成本大于或等于第一残差矩阵的编码成本的情况下,基于第一残差矩阵对目标图像块进行编码,得到编码数据。其中,在基于第一残差矩阵编码时,也需要对第一残差矩阵进行频域变换和量化。
在一些实施例中,目标图像块的编码数据需要用1个比特记录目标图像块是否基于第二残差矩阵编码。若目标图像块是基于第二残差矩阵编码,那么编码数据中还需要用多个比特记录第一残差矩阵的变换规则,以便后续对视频编码进行解码时,能够基于变换规则将第二残差矩阵还原为第一残差矩阵。
在一些实施例中,可以使用残差矩阵的率失真代价作为编码成本。其中,率失真代价基于目标图像块的编码数据的码流长度和视频失真程度计算获得,可以写作:
其中,J为率失真代价,R为编码数据的码流长度,λ为Lagrange系数,D为失真程度,失真程度由编码数据反量化和反变换,与预测图像块进行重建,得到重建图像块,将重建图像块与原始目标图像块逐点相减得到。残差矩阵的率失真代价越小,表示一定码率下的失真程度越小,即编码成本越小。
通过以上步骤,本实施例的方法能够通过根据至少一种变换规则,重新排列视频帧中图像块的残差矩阵中的元素,优化残差矩阵的内部相关性;通过比较第二残差矩阵和第一残差矩阵的编码成本,选择编码成本较小的残差矩阵对目标图像块编码,得到编码数据。以此,大幅降低视频的量化输出的码率,提高表达效率,整体提高了视频压缩效率和视频编码性能。
下面介绍本公开实施例中的变换规则。图2示出本公开实施例中一种变换规则,如图2所示,本公开实施例中提供的变换规则包括如下步骤。
S201,将第一残差矩阵的最后一行中的全部元素向左或向右偏移预设长度,偏移方向的末端的元素顺序移动至偏移方向的首端。
在一些实施例中,可以将第一残差矩阵的最后一行中的全部元素向同一方向偏移预设长度。示例性的,若偏移方向为向右偏移,则偏移过程中,最后一行最右边的元素移动至该行第一个元素左边,成为该行的新的第一个元素,该行的原第一个元素成为新的第二个元素,以此类推;同时,示例性的,若第一残差矩阵为M×N阶矩阵,且预设长度为N,那么该行第一个元素将移动至第N个元素的位置。以该方法将最后一行中的全部元素偏移预设长度,得到新的最后一行,其中最后一行的元素集合以及每一元素与左右元素的对应关系不变。
S202,分别将第一残差矩阵的其他行中的全部元素向偏移方向偏移各自的预设长度。
在一些实施例中,第一残差矩阵为M×N阶矩阵,其中M、N为正整数。将第一残差矩阵的M–1行按照最后一行的偏移方向偏移其对应的预设长度,M–1行对应的预设长度小于或等于最后一行(即,第M行)对应的预设长度;M–2行对应的预设长度小于或等于M–1行对应的预设长度。示例性的,M行对应的预设长度为N,那么M–1行对应的预设长度可以为N或小于N的整数;M–2行对应的预设长度小于或等于M–1行对应的预设长度。以此类推,对第一残差矩阵中除最后一行外的其他行中的全部元素偏移各自的预设长度,得到第二残差矩阵。
值得注意的是,当预设长度为负数时,该行的实际偏移方向与最后一行的偏移方向相反。因此,若要保证第一残差矩阵中全部元素的实际偏移方向一致,其所有行对应的预设长度应为非负整数。
示例性的,第一残差矩阵为32×16阶矩阵,其最后一行(即,第32行)对应的预设长度为8,那么其第31行对应的预设长度为,其第30行对应的预设长度为,……,其第16行对应的预设长度为/>,……,其第1行对应的预设长度为/>。通过以上方法,可以保证每一行对应的预设长度小于或等于其下一行对应的预设长度,并且预设长度为非负整数;同时第一残差矩阵中每一行的偏移程度均匀变化,降低编码难度。
上述变化规则都是将第一残差矩阵中的行向左或向右偏移,可以理解的是,在一些实施例中,也可以对第一残差矩阵中的列向上或向下偏移各自的预设长度。其具体实现方式与上述行变换的实现方式类似,在此不再赘述。
通过以上步骤,本实施例的方法能够通过变换规则,使得第一残差矩阵中的每一行发生不同程度的偏移,对第一残差矩阵添加随机扰动,以优化残差矩阵的内部相关性。
在一些实施例中,第一残差矩阵的最后一行对应的预设长度为N,3N/4,N/2,N/4中的一个,其中,N为第一残差矩阵的每行元素的个数。每个不同的预设长度对应最后一行中元素的偏移程度,进而影响第一残差矩阵中所有行的偏移程度。对于视频帧中不同的图像块,其第一残差矩阵中元素的分布不同。因此,设置多种预设长度,可以使得本实施例的方法适应不同的目标图像块,以更好的优化不同的第一残差矩阵的内部相关性,进一步地提高编码性能。
不同变换规则对于图像块的处理效果不同,因此本公开实施例提供一种根据至少一种变换规则重新排列第一残差矩阵中的元素,得到第二残差矩阵的方法,如图3所示,该方法包括如下步骤。
S1031,分别基于至少一种变换规则对第一残差矩阵进行变换,得到至少一个第三残差矩阵。
在一些实施例中,可以预先设置一种变换规则。在视频编码过程中,基于该变换规则对第一残差矩阵进行变换,重新排列第一残差矩阵中的元素的位置,得到一个第三残差矩阵。通过预先设置规律的变换规则,使得编码数据中只需储存该变换规则,而无需单独记录多个图像块的变换规则,进一步提高了视频压缩效率和编码性能。
在一些实施例中,可以预先设置多种变换规则。在视频编码过程中,分别基于多种变换规则对第一残差矩阵进行变换,重新排列第一残差矩阵中的元素的位置,得到多个第三残差矩阵。其中,每个第三残差矩阵中元素的集合相同,但各元素所处的行和列的位置不一定相同。
示例性的,可以预设三种变换规则。变换规则如上述实施例,分别设置第一残差矩阵最后一行向左偏移,且对应的预设长度分别为3N/4,N/2,N/4,第一残差矩阵的其他行分别按照上述实施例中的方法向左偏移各自的预设长度。最终得到三个不同的第三残差矩阵。
或者,可以预设八种变换规则。变换规则如上述实施例,分别设置第一残差矩阵最后一行向左偏移,且对应的预设长度分别为N,3N/4,N/2,N/4,第一残差矩阵的其他行分别按照上述实施例中的方法向左偏移各自的预设长度;以及,分别设置第一残差矩阵最后一行向右偏移,且对应的预设长度分别为N,3N/4,N/2,N/4,第一残差矩阵的其他行分别按照上述实施例中的方法向右偏移各自的预设长度,最终得到八个不同的第三残差矩阵。通过上述设置,可以在预设变换规则数量较少的条件下,很大程度上实现第一残差矩阵中元素不同的位置偏移,为本实施例的方法实现更优的编码性能提供可能。
S1032,计算至少一个第三残差矩阵各自的编码成本。
在一些实施例中,分别计算至少一个第三残差矩阵的编码成本。示例性的,可以分别计算第三残差矩阵的率失真代价作为其各自的编码成本。
S1033,选取编码成本最小的第三残差矩阵作为第二残差矩阵。
在一些实施例中,可以预先设置一种变换规则,基于该变换规则对第一残差矩阵进行变换,得到一个第三残差矩阵。那么,该第三残差矩阵即为第二残差矩阵。
在一些实施例中,可以预先设置多种变换规则,分别基于多种变换规则对第一残差矩阵进行变换,得到多个第三残差矩阵。每个第三残差矩阵的编码成本不一定相同,此时,选择编码成本最小的第三残差矩阵作为第二残差矩阵。若多个个第三残差矩阵的编码成本相同且同为最小的编码成本,则选取其中任意一个第三残差矩阵作为第二残差矩阵。
在一些实施例中,可以将多种变换规则编号,编码数据中仅需记录编号而无需记录全部的变换规则,进一步提高了视频压缩效率和编码性能。
通过以上步骤,本实施例的方法能够通过预设多种变换规则,基于多种变换规则得到多个第三残差矩阵,并将编码成本最小的第三残差矩阵确定为第二残差矩阵。在此过程中,本实施例的方法尝试多种变换规则,确定出效果最好的一种变换规则,虽然增加了部分计算量,但能得到更好的效果,整体上提高了编码性能。
基于同一发明构思,本公开实施例中还提供了一种视频解码方法,如图4所示,本公开实施例中提供的视频解码方法包括如下步骤。
S401,获取目标图像块的编码数据。
在一些实施例中,解码器可以获取编码数据,并通过反量化以及反频域变换,将编码数据还原为第二残差矩阵。
S402,获取目标图像块对应的变换规则。
在一些实施例中,可以根据编码数据中的信息或解码器中预置的信息,得到该目标图像块对应的变换规则。在编码该目标图像块时,目标图像块的第一残差矩阵基于该变换规则变换为第二残差矩阵。
在一些实施例中,若编码数据中包括预设的多种变换规则的编号中的一个,那么解码器可以根据编号确定目标图像块对应于多种变换规则中的一个变换规则,以减少解码过程的计算量。
S403,基于目标图像块对应的变换规则重新排列第二残差矩阵中的元素,得到第一残差矩阵。
如上所述,目标图像块的第一残差矩阵基于上述变换规则变换为第二残差矩阵。因此,可以基于第二残差矩阵和变换规则将第二残差矩阵还原为第一残差矩阵。
S404,基于第一残差矩阵,将编码数据解码为目标图像块。
第一残差矩阵即为目标图像块的原始残差数据,因此可以基于第一残差矩阵以及预测图像块得到目标图像块。其中,预测图像块是基于参考图像和某些算法预测得到的。
在一些实施例中,编码数据中还包括目标图像块是否基于第二残差矩阵编码。因此,解码器可以通过该数据得知当前编码数据是基于第一残差矩阵得到的还是基于第二残差矩阵得到的。若是当前编码数据基于第一残差矩阵得到,那么就可以直接将其还原为目标图像块,而无需获取变换规则,进一步减少解码过程的计算量。
通过以上步骤,本实施例的方法能够将目标图像块的编码数据还原为目标图像块,完成数据到图像的转换。将多个图像通过算法结合,最终完成数据到视频的转换。
基于同一发明构思,本公开实施例中还提供了一种视频编码装置,如下面的实施例。由于该装置实施例解决问题的原理与上述方法实施例相似,因此该装置实施例的实施可以参见上述方法实施例的实施,重复之处不再赘述。
图5示出本公开实施例中一种视频编码装置的结构示意图,如图5所示,该视频编码装置500包括:第一获取模块501、第二获取模块502、变换模块503和编码模块504。
具体地,第一获取模块501用于,在视频帧中获取目标图像块。第二获取模块502用于,获取目标图像块的第一残差矩阵。变换模块503用于,根据至少一种变换规则重新排列第一残差矩阵中的元素,得到第二残差矩阵。编码模块504用于,在第二残差矩阵的编码成本小于第一残差矩阵的编码成本的情况下,基于第二残差矩阵,得到目标图像块的编码数据。
在一些实施例中,变换模块503还用于,分别基于至少一种变换规则对第一残差矩阵进行变换,得到至少一个第三残差矩阵;计算至少一个第三残差矩阵各自的编码成本;选取编码成本最小的第三残差矩阵作为第二残差矩阵。
在一些实施例中,变换模块503还用于,将第一残差矩阵的最后一行中的全部元素向左或向右偏移预设长度,偏移方向的末端的元素顺序移动至偏移方向的首端;分别将第一残差矩阵的其他行中的全部元素向偏移方向偏移各自的预设长度,其中,其他行为除最后一行之外的行,每行的预设长度小于或等于该行对应的下一行的预设长度。
在一些实施例中,第一残差矩阵的最后一行对应的预设长度为N,3N/4,N/2,N/4中的一个,其中,N为第一残差矩阵的每行元素的个数。
在一些实施例中,编码成本为率失真代价,率失真代价基于目标图像块的编码数据的码流长度和视频失真程度计算获得。
需要说明的是,上述实施例提供的视频编码装置在用于视频编码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频编码装置与视频编码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于同一发明构思,本公开实施例中还提供了一种视频解码装置,如下面的实施例。由于该装置实施例解决问题的原理与上述方法实施例相似,因此该装置实施例的实施可以参见上述方法实施例的实施,重复之处不再赘述。
图6示出本公开实施例中一种视频解码装置的结构示意图,如图6所示,该视频解码装置600包括:第一获取模块601、第二获取模块602、变换模块603和解码模块604。
具体地,第一获取模块601用于,获取目标图像块的编码数据,编码数据中包括目标图像块的第二残差矩阵,编码数据是基于本公开实施例中的方法得到的。第二获取模块602用于,获取目标图像块对应的变换规则。变换模块603用于,基于目标图像块对应的变换规则重新排列第二残差矩阵中的元素,得到第一残差矩阵。解码模块604用于,基于第一残差矩阵,将编码数据解码为目标图像块。
需要说明的是,上述实施例提供的视频解码装置在用于视频解码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频解码装置与视频解码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图7来描述根据本公开的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本公开实施例的功能和适用范围带来任何限制。
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:上述至少一个处理单元710、上述至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730。
其中,存储单元存储有程序代码,程序代码可以被处理单元710执行,使得处理单元710执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
在一些实施例中,处理单元710可以执行上述方法实施例的如下步骤:在视频帧中获取目标图像块;获取目标图像块的第一残差矩阵;根据至少一种变换规则重新排列第一残差矩阵中的元素,得到第二残差矩阵;在第二残差矩阵的编码成本小于第一残差矩阵的编码成本的情况下,基于第二残差矩阵,得到目标图像块的编码数据。
在一些实施例中,处理单元710还可以执行上述方法实施例的如下步骤:获取目标图像块的编码数据,编码数据中包括目标图像块的第二残差矩阵,编码数据是基于本公开实施例中的方法得到的;获取目标图像块对应的变换规则;基于目标图像块对应的变换规则重新排列第二残差矩阵中的元素,得到第一残差矩阵;基于第一残差矩阵,将编码数据解码为目标图像块。
存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。
存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备700也可以与一个或多个外部设备740(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质可以是可读信号介质或者可读存储介质。其上存储有能够实现本公开上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述方法实施例部分描述的根据本公开各种示例性实施方式的步骤。
本公开中的计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开中,计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可选地,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
在具体实施时,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (10)
1.一种视频编码方法,其特征在于,包括:
在视频帧中获取目标图像块;
获取所述目标图像块的第一残差矩阵;
根据至少一种变换规则重新排列所述第一残差矩阵中的元素,得到第二残差矩阵;
在所述第二残差矩阵的编码成本小于所述第一残差矩阵的编码成本的情况下,基于所述第二残差矩阵,得到所述目标图像块的编码数据。
2.根据权利要求1所述的方法,其特征在于,所述根据至少一种变换规则重新排列所述第一残差矩阵中的元素,得到第二残差矩阵,包括:
分别基于所述至少一种变换规则对所述第一残差矩阵进行变换,得到至少一个第三残差矩阵;
计算所述至少一个第三残差矩阵各自的编码成本;
选取编码成本最小的第三残差矩阵作为所述第二残差矩阵。
3.根据权利要求1所述的方法,其特征在于,所述变换规则,包括:
将所述第一残差矩阵的最后一行中的全部元素向左或向右偏移预设长度,偏移方向的末端的元素顺序移动至所述偏移方向的首端;
分别将所述第一残差矩阵的其他行中的全部元素向所述偏移方向偏移各自的预设长度,其中,所述其他行为除所述最后一行之外的行,每行的预设长度小于或等于该行对应的下一行的预设长度。
4.根据权利要求3所述的方法,其特征在于,所述第一残差矩阵的最后一行对应的预设长度为N,3N/4,N/2,N/4中的一个,其中,N为所述第一残差矩阵的每行元素的个数。
5.根据权利要求1所述的方法,其特征在于,所述编码成本为率失真代价,所述率失真代价基于所述目标图像块的编码数据的码流长度和视频失真程度计算获得。
6.一种视频解码方法,其特征在于,包括:
获取目标图像块的编码数据,所述编码数据中包括所述目标图像块的第二残差矩阵,所述编码数据是基于权利要求1至5任一项所述的方法得到的;
获取所述目标图像块对应的变换规则;
基于所述目标图像块对应的变换规则重新排列第二残差矩阵中的元素,得到第一残差矩阵;
基于所述第一残差矩阵,将所述编码数据解码为所述目标图像块。
7.一种视频编码装置,其特征在于,包括:
第一获取模块,用于在视频帧中获取目标图像块;
第二获取模块,用于获取所述目标图像块的第一残差矩阵;
变换模块,用于根据至少一种变换规则重新排列所述第一残差矩阵中的元素,得到第二残差矩阵;
编码模块,用于在所述第二残差矩阵的编码成本小于所述第一残差矩阵的编码成本的情况下,基于所述第二残差矩阵,得到所述目标图像块的编码数据。
8.一种视频解码装置,其特征在于,包括:
第一获取模块,用于获取目标图像块的编码数据,所述编码数据中包括所述目标图像块的第二残差矩阵,所述编码数据是基于权利要求1至5任一项所述的方法得到的;
第二获取模块,用于获取所述目标图像块对应的变换规则;
变换模块,用于基于所述目标图像块对应的变换规则重新排列第二残差矩阵中的元素,得到第一残差矩阵;
解码模块,用于基于所述第一残差矩阵,将所述编码数据解码为所述目标图像块。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至6任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310868710.5A CN116600123B (zh) | 2023-07-17 | 2023-07-17 | 视频编码方法及装置、视频解码方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310868710.5A CN116600123B (zh) | 2023-07-17 | 2023-07-17 | 视频编码方法及装置、视频解码方法及装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116600123A true CN116600123A (zh) | 2023-08-15 |
CN116600123B CN116600123B (zh) | 2023-11-07 |
Family
ID=87608486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310868710.5A Active CN116600123B (zh) | 2023-07-17 | 2023-07-17 | 视频编码方法及装置、视频解码方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116600123B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101743751A (zh) * | 2007-06-15 | 2010-06-16 | 高通股份有限公司 | 视帧内预测模式而定的残差块的自适应变换 |
US20100290521A1 (en) * | 2007-07-31 | 2010-11-18 | Peking University Founder Group Co., Ltd. | Method and Device For Selecting Best Mode Of Intra Predictive Coding For Video Coding |
WO2019148906A1 (zh) * | 2018-02-01 | 2019-08-08 | 腾讯科技(深圳)有限公司 | 视频编码方法、计算机设备和存储介质 |
CN114007079A (zh) * | 2021-10-09 | 2022-02-01 | 上海为旌科技有限公司 | 变换电路、方法、装置和编码器 |
CN114513663A (zh) * | 2020-11-17 | 2022-05-17 | 腾讯科技(深圳)有限公司 | 视频解码方法、装置及电子设备 |
CN116156170A (zh) * | 2023-04-24 | 2023-05-23 | 北京中星微人工智能芯片技术有限公司 | 数据流的发送方法、装置、电子设备和存储介质 |
CN116389752A (zh) * | 2023-05-11 | 2023-07-04 | 重庆中星微人工智能芯片技术有限公司 | 视频编码方法及装置、视频解码方法及装置、电子设备 |
-
2023
- 2023-07-17 CN CN202310868710.5A patent/CN116600123B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101743751A (zh) * | 2007-06-15 | 2010-06-16 | 高通股份有限公司 | 视帧内预测模式而定的残差块的自适应变换 |
US20100290521A1 (en) * | 2007-07-31 | 2010-11-18 | Peking University Founder Group Co., Ltd. | Method and Device For Selecting Best Mode Of Intra Predictive Coding For Video Coding |
WO2019148906A1 (zh) * | 2018-02-01 | 2019-08-08 | 腾讯科技(深圳)有限公司 | 视频编码方法、计算机设备和存储介质 |
CN114513663A (zh) * | 2020-11-17 | 2022-05-17 | 腾讯科技(深圳)有限公司 | 视频解码方法、装置及电子设备 |
CN114007079A (zh) * | 2021-10-09 | 2022-02-01 | 上海为旌科技有限公司 | 变换电路、方法、装置和编码器 |
CN116156170A (zh) * | 2023-04-24 | 2023-05-23 | 北京中星微人工智能芯片技术有限公司 | 数据流的发送方法、装置、电子设备和存储介质 |
CN116389752A (zh) * | 2023-05-11 | 2023-07-04 | 重庆中星微人工智能芯片技术有限公司 | 视频编码方法及装置、视频解码方法及装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116600123B (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI622288B (zh) | 視訊解碼方法 | |
CN113766249B (zh) | 视频编解码中的环路滤波方法、装置、设备及存储介质 | |
US11012718B2 (en) | Systems and methods for generating a latent space residual | |
CN112543337B (zh) | 视频解码方法、装置、计算机可读介质及电子设备 | |
CN111669588B (zh) | 一种超低时延的超高清视频压缩编解码方法 | |
CN110944179B (zh) | 一种视频数据解码方法及装置 | |
US9667958B2 (en) | Image coding and decoding methods and apparatuses | |
KR100267125B1 (ko) | 압축 디지탈 비디오 시퀀스 복호화 및 디스플레이 방법과 압축 디지탈 비디오 정보 복호화 장치 | |
US11736694B2 (en) | Image decoding method, encoding method, devices, terminal equipment and computer programs therefor | |
CN116389752A (zh) | 视频编码方法及装置、视频解码方法及装置、电子设备 | |
CN116600123B (zh) | 视频编码方法及装置、视频解码方法及装置、电子设备 | |
US20230056211A1 (en) | Video encoding method and apparatus, video decoding method and apparatus, computer program product, computer-readable storage medium, and electronic device | |
CN110536133B (zh) | 视频数据解码方法及装置 | |
CN115866297A (zh) | 视频处理方法、装置、设备及存储介质 | |
CN115550650A (zh) | 一种有效调节参考帧图像压缩率的方法及装置、电子设备 | |
CN114189684A (zh) | 一种基于jnd算法的视频编码方法、装置、介质及计算设备 | |
WO2021135856A1 (zh) | 视频编解码方法、装置、设备及存储介质 | |
CN115442617A (zh) | 一种基于视频编码的视频处理方法和装置 | |
WO2021263251A1 (en) | State transition for dependent quantization in video coding | |
CN113473154B (zh) | 视频编码、视频解码方法、装置及存储介质 | |
CN101223780A (zh) | 减少编码器和解码器之间的不匹配的视频编码方法和设备 | |
CN112218086A (zh) | 编码、解码方法、传输方法、编码、解码装置及系统 | |
CN109803147B (zh) | 基于视频纹理特征的变换处理方法及装置 | |
JP7483029B2 (ja) | ビデオ復号方法、ビデオ符号化方法、装置、媒体、及び電子機器 | |
US20240040153A1 (en) | Systems, methods, and apparatuses for video processing |
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 |