首页 / 专利库 / 摄影 / 视频帧 / 一种视频编码方法、解码方法及装置

一种视频编码方法、解码方法及装置

阅读:810发布:2020-05-08

专利汇可以提供一种视频编码方法、解码方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 实施例 提供的一种 视频编码 方法、解码方法及装置,视频编码方法包括:将待传输视频的多组 视频 帧 分别进行三维离散余弦变换,得到每组视频帧对应的三维矩阵;将每组视频帧对应的三维矩阵中每一列的元素按照视频帧的顺序组成一维列矩阵;将所述一维列矩阵中低于预设 阈值 的元素置零,得到置零后的一维列矩阵;将所述置零后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵;将所述传输矩阵发送至接收端。本发明实施例和 现有技术 相比,在同一压缩率的情况下,得到的传输矩阵准确度更高。,下面是一种视频编码方法、解码方法及装置专利的具体信息内容。

1.一种视频编码方法,其特征在于,应用于发射端,所述方法包括:
将待传输视频的多组视频分别进行三维离散余弦变换,得到每组视频帧对应的三维矩阵;
将每组视频帧对应的三维矩阵中每一列的元素按照视频帧的顺序组成一维列矩阵;
将所述一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵;
将所述置零后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵;
将所述传输矩阵发送至接收端。
2.根据权利要求1所述的方法,其特征在于,所述预设阈值是通过如下步骤得到:
根据预设的压缩率及待传输视频的数据量,得到编码后的视频数据量;
根据编码后的视频数据量,确定所述一维列矩阵中待删除元素的个数;
遍历所述一维列矩阵,在所述一维列矩阵中选择一个元素作为预设阈值,使得低于该元素值的元素个数与所述待删除元素个数相同。
3.根据权利要求1所述的方法,其特征在于,在所述将一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵的步骤之后,所述方法还包括:
在所述置零后的一维列矩阵中,将第i个非零元素,从该元素所在的原始行置换至与第i个目标列的序号相同的行,得到置换后的一维列矩阵;所述第i个目标列是将预设的哈德玛矩阵中的列进行分组,得到多组列,从每组列中确定可靠度最大的列,将多个可靠度最大的列进行降序后得到的;
所述将所述置零后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵包括:
将所述置换后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵。
4.根据权利要求3所述的方法,其特征在于,所述将所述传输矩阵发送至接收端的步骤包括:
将所述传输矩阵中,列可靠度排序为i的列的元素,通过信道可靠度排序为i的信道,发送至接收端,所述传输矩阵中列的可靠度排序方式与信道可靠度排序方式相同。
5.一种视频解码方法,其特征在于,应用于接收端,所述方法包括:
接收通过如权利要求1-4所述的视频编码方法得到的传输矩阵;
对所述传输矩阵进行线性逆变换,得到测量矩阵;
使用正交匹配追踪算法从所述测量矩阵中,估测一维列矩阵中非零元素的值,得到重构的一维列矩阵;
对所述重构的一维列矩阵,进行三维离散余弦反变换,得到待传输视频传输后的多组视频帧。
6.根据权利要求5所述的方法,其特征在于,在所述对所述重构的一维列矩阵,进行三维离散余弦反变换,得到待传输视频传输后的多组视频帧的步骤之前,所述方法还包括:
当接收到发射端发送的元素置换信息时,基于所述元素置换信息,将所述重构后的一维列矩阵中的非零元素进行反置换,使得反置换后的一维矩阵中的第i个非零元素,从第i个非零元素所在的目标行置换至原始行;
其中,所述元素置换信息包括:发射端将一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵后,该置零后的一维列矩阵每个非零元素的原始行,以及发射端在置零后的一维列矩阵中,将第i个非零元素,置换后的目标行,所述目标行为与第i个目标列的序号相同的行,所述第i个目标列是将预设的哈德玛矩阵中的列进行分组,得到多组列,从每组列中确定可靠度最大的列,将多个可靠度最大的列进行降序后的第i个列;
所述对所述重构的一维列矩阵,进行三维离散余弦反变换,得到待传输视频传输后的多组视频帧包括:对反置换后的一维列矩阵,进行三维离散反变换,得到待传输视频传输后的多组视频帧。
7.一种视频编码装置,其特征在于,应用于发射端,所述装置包括:
变换模,用于将待传输视频的多组视频帧分别进行三维离散余弦变换,得到每组视频帧对应的三维矩阵;
一维列矩阵获取模块,用于将每组视频帧对应的三维矩阵中每一列的元素按照视频帧的顺序组成一维列矩阵;
置零模块,用于将所述一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵;
相乘模块,用于将所述置零后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵;
发送模块,用于将所述传输矩阵发送至接收端。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:置换模块,用于:
在所述置零后的一维列矩阵中,将第i个非零元素,从该元素所在的原始行置换至与第i个目标列的序号相同的行,得到置换后的一维列矩阵;所述第i个目标列是将预设的哈德玛矩阵中的列进行分组,得到多组列,从每组列中确定可靠度最大的列,将多个可靠度最大的列进行降序后得到的;
所述相乘模块具体用于:
将置换后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵。
9.一种视频解码装置,其特征在于,应用于接收端,所述装置包括:
接收模块,用于接收通过如权利要求1-4所述的视频编码方法得到的传输矩阵;
线性逆变换模块,用于对所述传输矩阵进行线性逆变换,获得测量矩阵;
重构模块,用于使用正交匹配追踪算法从所述测量矩阵中,估测一维列矩阵中非零元素的值,得到重构的一维列矩阵;
反变换模块,用于对所述重构的一维列矩阵,进行三维离散余弦反变换,得到待传输视频传输后的多组视频帧。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:反置换模块,用于:
当接收到发射端发送的元素置换信息时,基于所述元素置换信息,将所述重构后的一维列矩阵中的非零元素进行反置换,使得反置换后的一维矩阵中的第i个非零元素,从第i个非零元素所在的目标行置换至原始行;
其中,所述元素置换信息包括:发射端将一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵后,该置零后的一维列矩阵每个非零元素的原始行,以及发射端在置零后的一维列矩阵中,将第i个非零元素,置换后的目标行,所述目标行为与第i个目标列的序号相同的行,所述第i个目标列是将预设的哈德玛矩阵中的列进行分组,得到多组列,从每组列中确定可靠度最大的列,将多个可靠度最大的列进行降序后的第i个列;
所述反变换模块具体用于,对反置换后一维列矩阵,进行三维离散反变换,得到待传输视频传输后的多组视频帧。

说明书全文

一种视频编码方法、解码方法及装置

技术领域

[0001] 本发明涉及视频处理领域,特别是涉及一种视频编码方法、解码方法及装置。

背景技术

[0002] 随着网络视频量的增加,视频的传输也面临着挑战,在视频传输前对视频进行压缩以减少视频数据量已经不可避免,而对视频编码可以减少视频数据量以达到对视频压缩的目的。
[0003] 相关技术中常常使用软播视频传输系统对视频进行编码,传输以及解码,该系统在对待传输视频传输前,发射端会根据预设的压缩率,对待传输视频进行编码,由于经过发射端编码的待传输视频与待传输视频的像素值呈线性关系,因此可以很好的避免传统视频传输出现的“悬崖效应”,即当信道的信噪比小于某一值时,视频传输效果出现断崖式下降的现象,或者当信道的信噪比大于某一值时,视频传输效果不会增加的现象,这些现象称为悬崖效应。
[0004] 软播系统的发射端将待传输视频进行切片后得到视频,将视频帧分得到多个视频块,计算每个视频块包含的信息量,根据预设的压缩率,计算编码后的视频的数据量,进一步确定从所有视频块中剩余视频块的个数,按照视频块包含的信息量从小至大,删除视频块,得到与剩余视频块的个数相同的目标视频块,对一组目标视频块进行3D-DCT(Three Dimensional-Discrete Cosine Transform,3维离散余弦变换)得到三维矩阵,将每个三维矩阵与哈德玛矩阵相乘得到目标矩阵,每个目标矩阵代表一个编码后的一组目标视频块的信息,然后将一个目标矩阵与功率矩阵相乘,得到一个传输矩阵,传输矩阵中包含对编码后的目标视频块分配的功率大小,然后按照信道可靠度大小,将传输矩阵中元素按照行分组,按照信道可靠度与行分组编号一一对应的关系,将分组后的行元素通过信道发送给接收端,接收端对传输矩阵进行解码,得到传输后的视频块,对视频块进行拼接,得到待传输视频的视频帧。
[0005] 由于现有技术中,软播系统的发射端对视频编码的过程中,根据预设的压缩率,计算需要剩余的视频块的数据量,然后从所有视频块中删除包含信息量较少的视频块,而有些信息量较少的视频块可能会包括待传输视频的重要信息,例如:边缘像素点信息,点信息等,因此目标视频块并不能准确的代表待传输视频,通过视频块得到的传输矩阵的准确性不高,因此接收端接收的传输矩阵准确性不高,接收端对传输矩阵进行解码,导致得到待传输视频传输后的效果与待传输视频的差距较大。

发明内容

[0006] 本发明实施例的目的在于提供一种视频编码方法、解码方法及装置,以减少待传输视频传输后的效果与待传输视频的差距。具体技术方案如下:
[0007] 第一方面,本发明实施例提供的一种视频编码方法,应用于发射端,该方法包括:
[0008] 将待传输视频的多组视频帧分别进行三维离散余弦变换,得到每组视频帧对应的三维矩阵;
[0009] 将每组视频帧对应的三维矩阵中每一列的元素按照视频帧的顺序组成一维列矩阵;
[0010] 将一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵;
[0011] 将置零后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵;
[0012] 将传输矩阵发送至接收端。
[0013] 可选的,预设阈值是通过如下步骤得到:
[0014] 根据预设的压缩率及待传输视频的数据量,得到编码后的视频数据量;
[0015] 根据编码后的视频数据量,确定一维列矩阵中待删除元素的个数;
[0016] 遍历一维列矩阵,在一维列矩阵中选择一个元素作为预设阈值,使得低于该元素值的元素个数与待删除元素个数相同。
[0017] 可选的,在将一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵的步骤之后,本发明实施例提供的一种视频编码方法还包括:
[0018] 在置零后的一维列矩阵中,将第i个非零元素,从该元素所在的原始行置换至与第i个目标列的序号相同的行,得到置换后的一维列矩阵;第i个目标列是将预设的哈德玛矩阵中的列进行分组,得到多组列,从每组列中确定可靠度最大的列,将多个可靠度最大的列进行降序后得到的;
[0019] 将置零后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵包括:
[0020] 将置换后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵。
[0021] 可选的,将传输矩阵发送至接收端的步骤包括:
[0022] 将传输矩阵中,列可靠度排序为i的列的元素,通过信道可靠度排序为i的信道,发送至接收端,传输矩阵中列的可靠度排序方式与信道可靠度排序方式相同。
[0023] 第二方面,本发明实施例提供的一种视频解码方法,应用于接收端,该方法包括:
[0024] 接收通过如第一方面实施例提供的视频编码方法得到的传输矩阵;
[0025] 对传输矩阵进行线性逆变换,得到测量矩阵;
[0026] 使用正交匹配追踪算法从测量矩阵中,估测一维列矩阵中非零元素的值,得到重构的一维列矩阵;
[0027] 对重构的一维列矩阵,进行三维离散余弦反变换,得到待传输视频传输后的多组视频帧。
[0028] 可选的,在对重构的一维列矩阵,进行三维离散余弦反变换,得到待传输视频传输后的多组视频帧的步骤之前,本发明实施例提供的一种视频解码方法还包括:
[0029] 当接收到发射端发送的元素置换信息时,基于元素置换信息,将重构后的一维列矩阵中的非零元素进行反置换,使得反置换后的一维矩阵中的第i个非零元素,从第i个非零元素所在的目标行置换至原始行;
[0030] 其中,元素置换信息包括:发射端将一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵后,该置零后的一维列矩阵每个非零元素的原始行,以及发射端在置零后的一维列矩阵中,将第i个非零元素,置换后的目标行,目标行为与第i个目标列的序号相同的行,第i个目标列是将预设的哈德玛矩阵中的列进行分组,得到多组列,从每组列中确定可靠度最大的列,将多个可靠度最大的列进行降序后的第i个列;
[0031] 对重构的一维列矩阵,进行三维离散余弦反变换,得到待传输视频传输后的多组视频帧包括:对反置换后的一维列矩阵,进行三维离散反变换,得到待传输视频传输后的多组视频帧。
[0032] 第三方面,本发明实施例提供的一种视频编码装置,应用于发射端,该装置包括:
[0033] 变换模块,用于将待传输视频的多组视频帧分别进行三维离散余弦变换,得到每组视频帧对应的三维矩阵;
[0034] 一维列矩阵获取模块,用于将每组视频帧对应的三维矩阵中每一列的元素按照视频帧的顺序组成一维列矩阵;
[0035] 置零模块,用于将一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵;
[0036] 相乘模块,用于将置零后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵。
[0037] 发送模块,用于将传输矩阵发送至接收端。
[0038] 可选的,本发明第三方面实施例提供的一种视频编码装置还包括:阈值计算模块,用于:
[0039] 根据预设的压缩率及待传输视频的数据量,得到编码后的视频数据量;
[0040] 根据编码后的视频数据量,确定一维列矩阵中待删除元素的个数;
[0041] 遍历一维列矩阵,在一维列矩阵中选择一个元素作为预设阈值,使得低于该元素值的元素个数与待删除元素个数相同。
[0042] 可选的,本发明第三方面实施例提供的一种视频编码装置还包括:置换模块,用于:
[0043] 在置零后的一维列矩阵中,将第i个非零元素,从该元素所在的原始行置换至与第i个目标列的序号相同的行;
[0044] 第i个目标列是将预设的哈德玛矩阵中的列进行分组,得到多组列,从每组列中确定可靠度最大的列,将多个可靠度最大的列进行降序后的第i个列。
[0045] 相乘模块具体用于:
[0046] 将置换后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵。
[0047] 可选的,发送模块,具体用于:
[0048] 将传输矩阵中,列可靠度排序为i的列的元素,通过信道可靠度排序为i的信道,发送至接收端。
[0049] 其中,传输矩阵中列的可靠度排序方式与信道可靠度排序方式相同。
[0050] 第四方面,本发明实施例提供的一种视频解码装置,其特征在于,应用于接收端,该装置包括:
[0051] 接收模块,用于接收通过如实施例1-3的视频编码方法得到的传输矩阵;
[0052] 线性逆变换模块,用于对传输矩阵进行线性逆变换,获得测量矩阵;
[0053] 重构模块,用于使用正交匹配追踪算法从测量矩阵中,估测一维列矩阵中非零元素的值,得到重构的一维列矩阵;
[0054] 反变换模块,用于对重构的一维列矩阵,进行三维离散余弦反变换,得到待传输视频传输后的多组视频帧。
[0055] 本发明第四方面实施例提供的一种视频解码装置还包括:反置换模块,用于:
[0056] 当接收到发射端发送的元素置换信息时,基于元素置换信息,将重构后的一维列矩阵中的非零元素进行反置换,使得反置换后的一维矩阵中的第i个非零元素,从第i个非零元素所在的目标行置换至原始行;
[0057] 其中,元素置换信息包括:发射端将一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵后,该置零后的一维列矩阵每个非零元素的原始行,以及发射端在置零后的一维列矩阵中,将第i个非零元素,置换后的目标行,目标行为与第i个目标列的序号相同的行,第i个目标列是将预设的哈德玛矩阵中的列进行分组,得到多组列,从每组列中确定可靠度最大的列,将多个可靠度最大的列进行降序后的第i个列。
[0058] 反变换模块具体用于:对反置换后一维列矩阵,进行三维离散反变换,得到待传输视频传输后的视频帧。
[0059] 第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现本发明实施例第一方面提供的一种视频编码方法以及本发明第二方面提供的一种视频解码方法的步骤。
[0060] 第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行本发明实施例第一方面提供的一种视频编码方法以及本发明第二方面提供的一种视频解码方法的步骤。
[0061] 第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的一种视频编码方法、解码方法。
[0062] 本发明实施例提供的一种视频编码方法、解码方法及装置,通过将将待传输视频的多组视频帧分别进行三维离散余弦变换,得到每组视频帧对应的三维矩阵;将每组视频帧对应的三维矩阵中每一列的元素按照视频帧的顺序组成一维列矩阵;将一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵;将置零后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵;将传输矩阵发送至接收端。相比于现有技术,通过设置阈值,对该一维列矩阵中低于阈值的元素置零,而小于阈值的元素往往是待传输视频的高频信息,即待传输视频的局部信息,而局部信息常常是可以忽略的信息,得到置零后的一维列矩,达到视频压缩的目的,将置零后的一维列矩与功率矩阵相乘后得到的传输矩阵,将该传输矩阵发送至接收端后,接收端解码传输矩阵得到待传输视频传输后的多组视频帧,因此本发明实施例在同一压缩率的情况下,待传输视频传输后的视频帧相比于现有技术中传输后的视频帧的准确度更高。
[0063] 当然,实施本发明的任一产品或方法并不一定需要同时达到以上的所有优点。附图说明
[0064] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0065] 图1为本发明实施例提供的一种视频编码方法的流程图
[0066] 图2为本发明实施例提供的确定预设阈值过程的流程图;
[0067] 图3为本发明实施例提供的发射端对置零后的一维列矩阵中的非零元素置换行位置过程的流程图;
[0068] 图4为本发明实施例提供的一种视频解码方法的流程图;
[0069] 图5为本发明实施例提供的接收端对重构的一维列矩阵中的非零元素的行位置进行反置换过程的流程图;
[0070] 图6为本发明实施例提供的一种视频编码装置的结构示意图;
[0071] 图7为本发明实施例提供的一种视频解码装置的结构示意图;
[0072] 图8为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

[0073] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0074] 方法实施例1
[0075] 如图1所示,本发明实施例提供的一种视频编码方法,应用于发射端,该方法包括:
[0076] S101,将待传输视频的多组视频帧分别进行三维离散余弦变换,得到每组视频帧对应的三维矩阵。
[0077] 示例性的,发射端将待传输视频切片后获得t个视频帧,将t个视频帧划为一组GoP(Group of Pictures,画面组),将一个画面组作为一组输入,记为I,每个视频帧的像素点数为a×b,一组输入划分的总的块数为B=p×q,a表示视频帧中行像素点总数,b表示视频帧中列像素点总数,p表示视频帧分块后,每行的视频块总数,q表示视频帧分块后,每列的视频块总数,i表示视频块的序号,i=1,2,...,B。每一块Ii中的像素点的个数为N=(a×b×t)/(p×q)。对一组输入中的每一块Ii进行三维离散余弦变换,得到一组输入对应的三维矩阵,该三维矩阵是一个系数矩阵,该三维矩阵表示一组视频帧的像素点包含低频信息还是高频信息。
[0078] S102,将每组视频帧对应的三维矩阵中每一列的元素按照视频帧的顺序组成一维列矩阵。
[0079] 可以理解,在一组视频帧进行三维离散余弦变换后,得到的三维矩阵的三个维度分别是:行维度,列维度和时间维度,时间维度表征视频帧在时间上的顺序,三维矩阵中的元素表示一组视频帧像素点包含的信息是局部信息还是全部信息。按照视频帧的时间顺序,在三维矩阵上读取每一列的元素。将每一列元素按照获取的前后顺序,依次放置在一维列矩阵行的位置上。
[0080] 示例性的,假设获取的三维矩阵的两列元素,将第一列元素中的第i个元素顺序放置一维列矩阵的第i行,将第二列元素中的第j个元素放置在一维列矩阵中第j行,j的最小值为i的最大值加1,i的取值范围为1至三维矩阵中列元素的总个数。
[0081] S103,将一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵。
[0082] 作为本发明实施例提供的一种可选的实施方式,将一维列矩阵中低于预设阈值的元素置零后,可以使用标记标注一维列矩阵中每个元素是非零还是零元素。
[0083] 示例性的,比特序列1或者0标记元素是零元素还是非零元素,标记是1代表元素是非零元素,标记为0表示该元素是零元素。
[0084] S104,将置零后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵。
[0085] 作为本发明实施例提供的一种可选的实施方式,可以将置零后的一维列矩阵与预设的哈德码矩阵中的前M行所组成的矩阵相乘,得到目标矩阵。
[0086] 其中,M的值大于一维列矩阵的行数。
[0087] 可以理解,由于预设的哈德码矩阵的行数都大于一维列矩阵的行数,因此选择预设的哈德码矩阵中前M行所组成的矩阵与一维矩阵相乘,可以减少目标矩阵的维度,提高编码效率。
[0088] 可以理解,一维列矩阵乘以预设的功率矩阵gi,对一维列矩阵的元素值进行放大或缩小,得到传输矩阵,在实际运行时,可以以最小化接收端恢复待传输视频后的像素点与发送端待传输视频的像素点之间的均方误差为目标进行功率分配,在发送总功率P一定的条件下,使用预设的功率表达式得到预设的功率矩阵。
[0089] 其中,预设的功率表达式为:
[0090]
[0091] xi=gi·ai
[0092] 其中,λi是第i块的方差,i=1,2,…,B,B表示一组视频帧中视频块的总数,gi表示预设的功率矩阵。
[0093] 将得到的目标矩阵与预设的功率矩阵相乘,得到传输矩阵。
[0094] S105,将传输矩阵发送至接收端。
[0095] 相比于现有技术,上述实施例提供的视频编码方法,通过设置阈值,对一维列矩阵中低于阈值的元素置零,而小于阈值的元素往往是待传输视频的高频信息,即待传输视频的局部信息,而局部信息常常是可以忽略的信息,得到置零后的一维列矩阵,达到视频压缩的目的,将置零后的一维列矩与预设的哈德码矩阵、功率矩阵相乘后得到传输矩阵,将该传输矩阵发送至接收端,在同一压缩率的情况下,上述实施例得到的传输矩阵准确度更高。
[0096] 方法实施例2
[0097] 作为本发明实施例提供的一种可选的实施方式,如图2所示,预设阈值可以通过如下步骤获得:
[0098] S201,根据预设的压缩率及待传输视频的数据量,得到编码后的视频数据量。
[0099] 示例性的,假设预设的压缩率为40%,待传输视频的数据量为100M,则需要将待传输视频压缩至40M,也就是说,编码后的视频数据量为40M,传输矩阵的数据量为40M。
[0100] S202,根据编码后的视频数据量,确定一维列矩阵中待删除元素的个数。
[0101] 示例性的,假设待传输视频的数据量为100M,当编码后的视频数据量为40M时,一维列矩阵中的元素个数为60个,预设德码矩阵大小和预设功率矩阵的大小,由于传输矩阵是置零后的一维列矩阵与预设德码矩阵相乘得到目标矩阵,目标矩阵与预设功率矩阵相乘得到的,因此对传输矩阵进行逆推,可以得到置零后的一维列矩阵的大小,使用比例公式:得到置零后的一维列矩阵中非
零元素的个数,使用一维列矩阵中的元素个数60减去置零后的一维列矩阵中非零元素的个数,得到在一维列矩阵中待删除元素的个数。
[0102] S203,遍历一维列矩阵,在一维列矩阵中选择一个元素作为预设阈值,使得低于该元素值的元素个数与待删除元素个数相同。
[0103] 可以理解,一维列矩阵中的元素总个数是确定的,当待删除元素的个数确定时,可以遍历一维列矩阵中的所有元素,尝试选择一个元素,确定低于该元素值的元素个数,如果低于该元素值的元素个数小于待删除元素个数,则在一维列矩阵中的大于该元素的待定元素中,选择与该元素差值最小的待定元素,以此种方式直至找到一个待定元素,使得低于该待定元素值的元素个数与待删除元素个数相同,将该待定元素作为预设阈值。
[0104] 本发明实施例通过预设的压缩率来计算预设阈值,然后根据预设阈值对一维列矩阵的元素进行置零,可以提高对待传输视频编码的效率。
[0105] 方法实施例3
[0106] 如图3所示,作为本发明实施例提供的一种可选的实施方式,在上述S103的步骤之后,本发明实施例提供的一种视频编码方法还包括:
[0107] S301,在置零后的一维列矩阵中,将第i个非零元素,从该元素的原始行置换至与第i个目标列的序号相同的行。
[0108] 其中,第i个目标列是将预设的哈德玛矩阵中的列进行分组,得到多组列,从每组列中确定可靠度最大的列,将多个可靠度最大的列进行降序后得到的。
[0109] 由于哈德玛矩阵HN中前M行所组成的矩阵Hm,Hm中的列的重复间隔是S,所以把Hm的列分为S组,各组间的列是完全不同的,每组内有N/S个列,每组内的列是完全相同的。比较每组内各列的可靠度,选出最大的一个。
[0110] 其中, Hm是HN的前M行,HN是由四个 的矩阵构成, 表示 中的每个元素取相反数。
[0111] 哈德码矩阵第r列的可靠度为:
[0112]
[0113] 其中,第r列元素的二进制表示为b1b2...bl...bn,可以理解,最重要的比特的n越小,l=1,2,…,n,n=log2N,pwr表示哈德玛矩阵第r列的可靠度,pwr的值越大代表列的可靠性越大。
[0114] 根据可靠度最大的列的序号,对置零后的一维列矩阵di中的非零元素进行位置变换,得到ui。
[0115] 示例性的,Hm可以为:
[0116] Hm={ca.b|ca,b∈HN,1≤a≤M,1≤b≤N},
[0117] 其中,M表示哈德码矩阵的行数,N表示哈德码矩阵的列数,a表示行序号,b表示列序号。
[0118] 将Hm的列分为三组,计算每组中列的可靠度,假设第一组中第3列的可靠度最大,可靠度最大为7,第二组中第2列的可靠度最大,可靠度最大为5,第三组中第1列的可靠度最大,可靠度最大为10,将可靠度最大的3个列进行排序,可靠度为10的列的可靠度最大,列的序号为7,则将一维矩阵中第1个非零元素从原始行,原始行为2,置换至第7行。
[0119] 作为本发明实施例提供的一种可选的实施方式,可以在每组可靠度最大的列进行降序排列后的结果中,确定前K个可靠度最大的列,作为目标列,K的取值是置零后的一维列矩阵中的非零元素的个数。
[0120] 可以理解,本实施方式可以保证:包含视频帧中大部分信息的非零元素,在可靠度较大信道上进行传输,可进一步提高抵抗噪声干扰的能
[0121] 作为本发明实施例提供的另一种可选的实施方式,可以计算每组中可靠度最大的列的权重,将可靠度最大的列的权重进行降序排列,选择确定前K个权重最大的列,作为目标列,K的取值是置零后的一维列矩阵中的非零元素的个数。
[0122] 第r列的列重为:
[0123] cwr=wt(Hm(r))
[0124] 其中,Hm(r)是Hm的第r列,wt(Hm(r))是计算Hm(r)中标注为“1”的元素的个数的函数。
[0125] 可以理解,本实施方式保证包含视频帧中大部分信息的非零元素是在列重较大,且可靠度也相对较大的信道上进行传输,可进一步提高抵抗噪声干扰的能力。
[0126] 相应的,步骤S104包括:
[0127] S302,将置换后的一维列矩阵与哈德码矩阵相乘,得到目标矩阵,将得到的目标矩阵与预设的功率矩阵相乘,得到传输矩阵。
[0128] 其中,N行的ui中得到M行的ai(M
[0129] ai=Hm·ui
[0130] 其中,Hm是哈德玛矩阵HN的前M行,ui是置换后的一维列矩阵。
[0131] 本发明实施例,通过将置零后的一维列矩阵中的非零元素,从原始行置换至哈德码矩阵每组可靠度最大的列对应的目标行位置,使得置零后的一维列矩阵与哈德码矩阵相乘后的目标矩阵中的非零元素在可靠度最大的列,当目标矩阵与功率分配矩阵相乘后,得到的传输矩阵的非零元素在可靠度最大的列,因此可以提高待传输视频中的重要信息传输的可靠性。
[0132] 作为本发明实施例提供的一种可选的实施方式,上述S105的步骤可以将传输矩阵中,列可靠度排序为i的列的元素,通过信道可靠度排序为i的信道,发送至接收端实现。
[0133] 其中,传输矩阵中列的可靠度排序与信道可靠度排序为升序。
[0134] 示例性的,假设传输矩阵中有2列,分别为a,b,可靠度大小分别为18,15。假设信道有3条,分别是:c、d、e,可靠度大小分别为:47,39,30,将列按照可靠度大小升序排序,可靠度大小排序为1的列元素,将在可靠度排序为第1的信道上传输,可靠度大小排序为2的列元素,将在可靠度排序为第2的信道上传输。
[0135] 本实施方式可以保证传输矩阵中列可靠度较大的列的元素在可靠度较大的信道上传输,因此可以减少信道对传输矩阵的影响,提高对传输矩阵进行传输的准确性。
[0136] 如图4所示,本发明实施例提供了一种视频解码方法,该方法包括:
[0137] S401,接收通过如实施例1-3的视频编码方法得到的传输矩阵。
[0138] S402,对传输矩阵进行线性逆变换,得到测量矩阵。
[0139] 作为本发明实施例提供的一种可选的实施方式,可以使用逆变换表达式对传输矩阵进行线性逆变换,获得测量矩阵。
[0140] 其中,逆变换表达式为:
[0141] ni是影响第i块的均值为0的高斯白噪声, 是测量矩阵,yi是接收端接收的传输矩阵,xi是发送端发送的传输矩阵,ai是目标矩阵。
[0142] S403,使用正交匹配追踪算法从测量矩阵中,估测一维列矩阵中非零元素的值,得到重构的一维列矩阵。
[0143] S404,对重构的一维列矩阵,进行三维离散余弦反变换,得到待传输视频传输后的多组视频帧。
[0144] 本发明实施例通过对传输后的传输矩阵使用正交匹配追踪算法进行重构,从而进一步得到重构的一维列矩阵,进行三维离散余弦反变换,得到待传输视频传输后的视频帧,完成对传输矩阵的解码过程,得到待传输视频传输后的视频帧,减少待传输视频传输后的视频帧与待传输视频的视频帧的差距。
[0145] 作为本发明实施例提供的一种可选的实施方式,上述S403可以通过以下步骤实现:
[0146] 步骤a:设置一维列矩阵为空矩阵。
[0147] 步骤b:使用最小二乘法估从测量矩阵中,估测一维列矩阵中非零元素。
[0148] 步骤c:将估测出的一维列矩阵中的非零元素添加至一维列矩阵中,得到更新后的一维列矩阵。
[0149] 步骤d:使用残差表达式,计算更新后的一维列矩阵的第i个非零元素与测量矩阵中第i个元素的残差。
[0150] 残差表达式为: tempk=tempk-1∪Hm(k),re是更新后的一维列矩阵与测量矩阵的残差。
[0151] 步骤e:使用更新表达式更新,更新后的一维列矩阵的第i个非零元素与测量矩阵中第i个元素的残差。
[0152] 其中,更新表达式为:
[0153]
[0154] 其中,k=1,2,...,K,K表示哈德码矩阵中可靠度最大的列的个数,或者权重最大的列的个数, 是更新后的一维列矩阵,yi是接收端接收的传输矩阵,Λ(k)表示Λ中第k个元素,Hm(k)表示Hm中第k列,Λ=[c1 c2  ... cK],cK表示每组中可靠度最大的列进行降序后的结果中,第K个列的序号,或者每组中可靠度最大的列进行降序后的结果中,选择前N个列,在前N个列中权重排序在前的K个列的序号。
[0155] 重复执行步骤b至步骤e,直至更新后的一维列矩阵中的最后一个非零元素与测量矩阵中的目标元素的残差最小,将更新后的一维列矩阵作为重构的一维列矩阵;目标元素与最后一个非零元素的行序号相同,测量矩阵的行数与更新后的一维列矩阵的行数相同,测量矩阵的列数与更新后的一维列矩阵的列数相同。
[0156] 作为本发明实施例提供的一种可选的实施方式,去除重构的一维列矩阵中的零元素,将去除零元素后的重构的一维列矩阵进行三维离散余弦反变换,待传输视频传输后的多组视频帧。
[0157] 作为本发明实施例提供的一种可选的实施方式,当接收端接收到发射端发送的元素置换信息时,接收端会对重构的一维列矩阵中的非零元素的行位置进行反置换,将进行反置换后的一维列矩阵进行三维离散余弦反变换,得到待传输视频传输后的多组视频帧。
[0158] 如图5所示,接收端会对重构的一维列矩阵中的非零元素的行位置进行反置换可以通过如下步骤实现:
[0159] S501,基于元素置换信息,将重构后的一维列矩阵中的非零元素进行反置换,使得反置换后的一维矩阵中的第i个非零元素,从第i个非零元素所在的目标行置换至原始行。
[0160] 其中,元素置换信息包括:发射端将一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵后,该置零后的一维列矩阵每个非零元素的原始行,以及发射端在置零后的一维列矩阵中,将第i个非零元素,置换后的目标行,目标行为与第i个目标列的序号相同的行,第i个目标列是将预设的哈德玛矩阵中的列进行分组,得到多组列,从每组列中确定可靠度最大的列,将多个可靠度最大的列进行降序后的第i个列。
[0161] 相应的,上述步骤S404包括:
[0162] S502,对反置换后的一维列矩阵,进行三维离散反变换,得到待传输视频传输后的多组视频帧。
[0163] 本发明实施例通过接收端接收元素置换信息,获知发射端对置零后的一维列矩阵中的非零元素是否置换行位置,从而接收端在对重构的一维列矩阵进行三维离散反变换前,对重构的一维列矩阵中非零元素的行位置进行反置换,从而减小反置换后的一维列矩阵与发射端置零后的一维矩阵的差距,提高得到待传输视频传输后的多组视频帧的准确性。
[0164] 如图6所示,本发明实施例提供的一种视频编码装置,应用于发射端,该装置包括:
[0165] 变换模块601,用于将待传输视频的多组视频帧分别进行三维离散余弦变换,得到每组视频帧对应的三维矩阵。
[0166] 一维列矩阵获取模块602,用于将每组视频帧对应的三维矩阵中每一列的元素按照视频帧的顺序组成一维列矩阵。
[0167] 置零模块603,用于将一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵。
[0168] 相乘模块604,用于将置零后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵。
[0169] 发送模块605,用于将传输矩阵发送至接收端。
[0170] 可选的,本发明实施例提供的一种视频编码装置还包括:阈值计算模块,用于:
[0171] 根据预设的压缩率及待传输视频的数据量,得到编码后的视频数据量。
[0172] 根据编码后的视频数据量,确定一维列矩阵中待删除元素的个数。
[0173] 遍历一维列矩阵,在一维列矩阵中选择一个元素作为预设阈值,使得低于该元素值的元素个数与待删除元素个数相同。
[0174] 可选的,本发明实施例提供的一种视频编码装置还包括:置换模块,用于:
[0175] 在置零后的一维列矩阵中,将第i个非零元素,从该元素所在的原始行置换至与第i个目标列的序号相同的行。
[0176] 第i个目标列是将预设的哈德玛矩阵中的列进行分组,得到多组列,从每组列中确定可靠度最大的列,将多个可靠度最大的列进行降序后的第i个列。
[0177] 相乘模块具体用于:
[0178] 将置换后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵。
[0179] 可选的,发送模块,具体用于:
[0180] 将传输矩阵中,列可靠度排序为i的列的元素,通过信道可靠度排序为i的信道,发送至接收端。
[0181] 其中,传输矩阵中列的可靠度排序方式与信道可靠度排序方式相同。
[0182] 相比于现有技术,通过设置阈值,对该一维列矩阵中低于阈值的元素置零,而小于阈值的元素往往是待传输视频的高频信息,即待传输视频的局部信息,而局部信息常常是可以忽略的信息,得到置零后的一维列矩,达到视频压缩的目的,将置零后的一维列矩与功率矩阵相乘后得到的传输矩阵,将该传输矩阵发送至接收端后,接收端解码传输矩阵得到待传输视频传输后的多组视频帧,因此本发明实施例在同一压缩率的情况下,待传输视频传输后的视频帧相比于现有技术中传输后的视频帧的准确度更高。
[0183] 如图7所示,本发明实施例提供的一种视频解码装置,其特征在于,应用于接收端,该装置包括:
[0184] 接收模块701,用于接收通过如实施例1-3的视频编码方法得到的传输矩阵;
[0185] 线性逆变换模块702,用于对传输矩阵进行线性逆变换,获得测量矩阵。
[0186] 重构模块703,用于使用正交匹配追踪算法从测量矩阵中,估测一维列矩阵中非零元素的值,得到重构的一维列矩阵。
[0187] 反变换模块704,用于对重构的一维列矩阵,进行三维离散余弦反变换,得到待传输视频传输后的多组视频帧。
[0188] 本发明实施例通过对传输后的传输矩阵使用正交匹配追踪算法进行重构,从而进一步得到重构的一维列矩阵,进行三维离散余弦反变换,得到待传输视频传输后的视频帧,完成对传输矩阵的解码过程,得到待传输视频传输后的视频帧,减少待传输视频传输后的视频帧与待传输视频的视频帧的差距。
[0189] 本发明实施例提供的一种视频解码装置还包括:反置换模块,用于:
[0190] 当接收到发射端发送的元素置换信息时,基于元素置换信息,将重构后的一维列矩阵中的非零元素进行反置换,使得反置换后的一维矩阵中的第i个非零元素,从第i个非零元素所在的目标行置换至原始行。
[0191] 其中,元素置换信息包括:发射端将一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵后,该置零后的一维列矩阵每个非零元素的原始行,以及发射端在置零后的一维列矩阵中,将第i个非零元素,置换后的目标行,目标行为与第i个目标列的序号相同的行,第i个目标列是将预设的哈德玛矩阵中的列进行分组,得到多组列,从每组列中确定可靠度最大的列,将多个可靠度最大的列进行降序后的第i个列。
[0192] 反变换模块具体用于:对反置换后一维列矩阵,进行三维离散反变换,得到待传输视频传输后的多组视频帧。
[0193] 本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
[0194] 存储器803,用于存放计算机程序;
[0195] 处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:
[0196] 将待传输视频的多组视频帧分别进行三维离散余弦变换,得到每组视频帧对应的三维矩阵。
[0197] 将每组视频帧对应的三维矩阵中每一列的元素按照视频帧的顺序组成一维列矩阵。
[0198] 将一维列矩阵中低于预设阈值的元素置零,得到置零后的一维列矩阵。
[0199] 将置零后的一维列矩阵依次与预设的哈德码矩阵、功率矩阵相乘,得到传输矩阵。
[0200] 将传输矩阵发送至接收端,或者
[0201] 接收通过如权利要求1-4的视频编码方法得到的传输矩阵。
[0202] 对传输矩阵进行线性逆变换,得到测量矩阵。
[0203] 使用正交匹配追踪算法从测量矩阵中,估测一维列矩阵中非零元素的值,得到重构的一维列矩阵。
[0204] 对重构的一维列矩阵,进行三维离散余弦反变换,得到待传输视频传输后的多组视频帧。
[0205] 本发明实施例提供的视频编码方法,通过设置阈值,对该一维列矩阵中低于阈值的元素置零,而小于阈值的元素往往是待传输视频的高频信息,即待传输视频的局部信息,而局部信息常常是可以忽略的信息,得到置零后的一维列矩,达到视频压缩的目的,将置零后的一维列矩与功率矩阵相乘后得到的传输矩阵,将该传输矩阵发送至接收端后,接收端解码传输矩阵得到待传输视频传输后的多组视频帧,因此本发明实施例在同一压缩率的情况下,待传输视频传输后的视频帧相比于现有技术中传输后的视频帧的准确度更高。
[0206] 本发明实施例提供的视频解码方法,通过对传输后的传输矩阵使用正交匹配追踪算法进行重构,从而进一步得到重构的一维列矩阵,进行三维离散余弦反变换,得到待传输视频传输后的视频帧,完成对传输矩阵的解码过程,得到待传输视频传输后的视频帧,减少待传输视频传输后的视频帧与待传输视频的视频帧的差距。
[0207] 上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard Architecture,EISA)总线等。该通信总线可以分为地址总线数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0208] 通信接口用于上述电子设备与其他设备之间的通信。
[0209] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0210] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0211] 在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一一种视频编码方法或者一种视频编码方法的步骤。
[0212] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一一种视频编码方法或者一种视频编码方法。
[0213] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
[0214] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0215] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0216] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈