本申请涉及计算机
技术领域:
:,尤其涉及一种编码方法、解码方法、装置、设备及存储介质。
背景技术:
::在图像传输过程中,通过需要对图像进行编码,以提高图像传输速率和减少图像传输过程中的出错率。一般地,对图像进行编码主要包括变长编码的打包方式和固定长度的打包方式。在变长编码的打包方式和固定长度的打包方式中,都会为打包后的每个码片添加一个重同步信号,以便解码设备根据重同步信号进行解码,从而加强图像码流传输的鲁棒性,防止传输出错。然而,由于需要在每个码片中添加一个重同步信号,使传输每幅图像都增加了大量的数据冗余,造成了传输带宽的浪费。技术实现要素:本申请实施例提供一种编码方法、解码方法、装置、设备及存储介质,以解决图像编码方式会产生大量的数据冗余,造成传输带宽浪费的问题。第一方面,本申请实施例提供一种编码方法,包括:获取待处理的图像;将所述图像编码成图像码流,其中,所述图像码流包括正向排列的多个宏块;将所有宏块组成多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置;将所述多个码片发送至解码设备,以使所述解码设备通过正向解码和反向解码对各个码片进行解码,得到所述图像。在一种可能的实施方式中,将所有宏块组成多个码片,包括:获取前一码片中被截断的宏块的剩余数据块;将所述剩余数据块进行反向排列,并将反向排列后的剩余数据块添加到待处理码片中的末尾位置;从所述待处理的码片中的起始位置开始,依次添加各个未组成码片的宏块,直至所述待处理码片的数据长度达到预设长度,或者,所有宏块中不存在未组成码片的宏块;在所有宏块中存在未组成码片的宏块时,获取所述待处理码片中被截断的宏块的剩余数据块,并将下一码片作为所述待处理码块,跳转至以下步骤:将所述剩余数据块进行反向排列,并将反向排列后的剩余数据块添加到待处理码片中的末尾位置。在一种可能的实施方式中,获取待处理的图像,包括:获取图像传感器采集的图像。第二方面,本申请实施例提供一种解码方法,包括:接收编码设备发送的图像的多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置;通过正向解码和反向解码对各个码片进行解码,得到所述图像。在一种可能的实施方式中,通过正向解码和反向解码对各个码片进行解码,得到所述图像,包括:针对每个码片,通过正向解码得到该码片的第一解码结果,通过反向解码得到该码片的第二解码结果,并将第一解码结果和第二解码结果按照预设运算方式进行运算,得到该码片包含的宏块和/或上一码片中被截断的宏块的剩余数据块;并在该码片包含上一码片中被截断的宏块的剩余数据块时,将所述剩余数据块与上一码片的中被截断的宏块的数据块组合生成上一码片中被截断的宏块;将所有宏块组合生成所述图像。在一种可能的实施方式中,将所有宏块组合生成所述图像,包括:对所有宏块进行离散余弦逆变换idct,得到所述图像。第三方面,本申请实施例提供一种编码装置,包括:获取模块,用于获取待处理的图像;处理模块,用于将所述图像编码成图像码流,其中,所述图像码流包括正向排列的多个宏块;所述处理模块,还用于将所有宏块组成多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置;发送模块,用于将所述多个码片发送至解码设备,以使所述解码设备通过正向解码和反向解码对各个码片进行解码,得到所述图像。在一种可能的实施方式中,所述处理模块,具体用于:获取前一码片中被截断的宏块的剩余数据块;将所述剩余数据块进行反向排列,并将反向排列后的剩余数据块添加到待处理码片中的末尾位置;从所述待处理的码片中的起始位置开始,依次添加各个未组成码片的宏块,直至所述待处理码片的数据长度达到预设长度,或者,所有宏块中不存在未组成码片的宏块;在所有宏块中存在未组成码片的宏块时,获取所述待处理码片中被截断的宏块的剩余数据块,并将下一码片作为所述待处理码块,跳转至以下步骤:将所述剩余数据块进行反向排列,并将反向排列后的剩余数据块添加到待处理码片中的末尾位置。在一种可能的实施方式中,所述获取模块,具体用于:获取图像传感器采集的图像。第四方面,本申请实施例提供一种解码装置,包括:接收模块,用于接收编码设备发送的图像的多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置;处理模块,用于通过正向解码和反向解码对各个码片进行解码,得到所述图像。在一种可能的实施方式中,所述处理模块,具体用于:针对每个码片,通过正向解码得到该码片的第一解码结果,通过反向解码得到该码片的第二解码结果,并将第一解码结果和第二解码结果按照预设运算方式进行运算,得到该码片包含的宏块和/或上一码片中被截断的宏块的剩余数据块;并在该码片包含上一码片中被截断的宏块的剩余数据块时,将所述剩余数据块与上一码片的中被截断的宏块的数据块组合生成上一码片中被截断的宏块;将所有宏块组合生成所述图像。在一种可能的实施方式中,所述处理模块,具体用于:对所有宏块进行离散余弦逆变换idct,得到所述图像。第五方面,本申请实施例提供一种编码设备,包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的实施方式所述的编码方法。第六方面,本申请实施例提供一种解码设备,包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的实施方式所述的解码方法。第七方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的实施方式所述的编码方法。第八方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的实施方式所述的解码方法。本申请实施例提供的编码方法、解码方法、装置、设备及存储介质,获取待处理的图像;将图像编码成图像码流,其中,图像码流包括正向排列的多个宏块;将所有宏块组成多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置;将多个码片发送至解码设备,以使解码设备通过正向解码和反向解码对各个码片进行解码,得到图像,通过将前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置的编码方式,以及正向解码和反向解码的解码方式,使得码片中不需要添加重同步信号也能保证数据传输的正确性,从而避免由增加重同步信号导致的冗余,提高传输带宽利用率。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请一实施例提供的图像传输系统的架构示意图;图2为本申请一实施例提供的编码方法的流程示意图;图3为本申请又一实施例提供的编码方法的流程示意图;图4为本申请实施例提供的图像编码得到的各个码片的示意图;图5为本申请另一实施例提供的解码方法的流程示意图图6为本申请再一实施例提供的图像传输方法的交互信令图;图7为本申请一实施例提供的编码装置的结构示意图;图8为本申请又一实施例提供的解码装置的结构示意图;图9为本申请一实施例提供的编码设备的硬件结构示意图;图10为本申请一实施例提供的解码设备的硬件结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。图1为本申请一实施例提供的图像传输系统的架构示意图。如图1所示,本实施例提供的编码系统包括编码设备11和解码设备12。其中,编码设备11可以为摄像机、手机、车载终端、监测设备等,在此不作限定。解码设备12可以为手机、台式计算机、笔记本电脑、车载终端、服务器等,在此不作限定。编码设备11和解码设备12可以通过有线通信方式或无线通信方式进行数据传输。编码设备11可以将待发送的图像进行编码得到图像对应的多个码片,然后将多个码片发送给解码设备12,解码设备12通过对多个码片进行解码得到图像。其中,图像可以为照片或者视频图像,在此不作限定。在一种可能的应用场景中,编码设备为部署于沙漠、热带雨林等人员难以到达的区域,用于采集地貌、环境等图像的摄像机。摄像机包括图像传感器,通过图像传感器采集图像,然后将图像进行编码得到图像对应的码片,并通过无线网络将图像对应的码片发送给解码设备。解码设备为工作人员的用户终端,用于解码得到图像,并将图像显示给工作人员查看。由于编码设备部署于人员较少的区域,电源更换较为困难,编码设备通常采用低处理能力、低功耗的处理器以降低能耗,防止电源耗尽又无法及时补充的情况。采用现有的编码方式,在每个码片增加一个重同步信号,会导致图像传输存在大量的冗余,浪费带宽,导致编码设备由于传输过多冗余数据而能耗过大。而采用本实施例提供的编码方式,可以将前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置的编码方式,以及正向解码和反向解码的解码方式,使得码片中不需要添加重同步信号也能保证数据传输的正确性,从而避免由增加重同步信号导致的冗余,提高传输带宽利用率,进而保证编码设备低能耗的运行,避免频繁更换电源的问题。图2为本申请一实施例提供的编码方法的流程示意图。该方法的执行主体为编码设备。如图2所示,该方法包括:s201、获取待处理的图像。本实施例中,待处理的图像为编码设备需要进行编码传输的图像,该图像可以为图片或视频图像,在此不作限定。编码设备可以包括图像传感器,可以将图像传感器采集的图像作为待处理的图像;编码设备也可以获取其他设备发送的或者数据库存储中的图像,作为待处理的图像,在此不作限定。s202、将所述图像编码成图像码流,其中,所述图像码流包括正向排列的多个宏块。本实施例中,编码设备可以将图像进行编码得到图像码流,例如,图像码流可以为jpeg(jointphotographicexpertgroup,联合照片专家组)格式、png(portablenetworkgraphics,便携式网络图形)、exif(exchangeableimagefileformat,可交换的图像文件格式)格式等,在此不作限定。一幅图像可以分解为多个宏块,每个宏块中的数据按照正向排列,即将宏块中的数据按照从起始位置到末尾位置依次排列。s203、将所有宏块组成多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置。本实施例中,编码设备可以将该图像的所有宏块组成多个码片。本实施例为固定长度的打包方式,因此,每个码片的数据长度相同。例如,图像共有29个宏块,可以将29个宏块组成6个码片进行传输,每个码片包括一个或多个宏块。由于是固定长度的打包方式,对于其中的某个码片,该码片中所打包的最后一个宏块可能是被截断的宏块,该被截断的宏块仅有一部分打包在该码片中,另一部分需要打包在下一码片中。本实施例中将该码片中被截断的宏块的剩余数据块进行反向排列,然后添加到下一码片的末尾位置,以便解码设备在进行解码时可以通过反向编码可以得到被截断的宏块的剩余数据块。s204、将所述多个码片发送至解码设备,以使所述解码设备通过正向解码和反向解码对各个码片进行解码,得到所述图像。本实施例中,编码设备可以将由该图像生成的多个码片发送给解码设备。解码设备通过正向解码和反向解码相结合的方式对各个码片进行解码,得到该图像。由于本实施例中码片没有对应于重同步信号,若所有码片中的宏块均采用正向排列的方式,假如一个码片中的某个宏块存在数据传输错误时,该码片中的该宏块之后的所有宏块由于无法判断起始位置,均无法进行解码,因此会造成多个宏块的数据丢失。本实施例通过将前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置,并在解码时采用正向解码和反向解码相结合的方式,假如一个码片中的某个宏块存在数据传输错误时,通过正向解码可以得到该宏块之前的宏块,通过反向解码可以得到该宏块之后的所有宏块的起始位置,进而解码得到该宏块之后的所有宏块,能够在某宏块发生传输错误时正确地解码得到出该宏块之外的其他宏块,在没有重同步信号的情况下,也能保证码流传输的鲁棒性。本申请实施例获取待处理的图像;将图像编码成图像码流,其中,图像码流包括正向排列的多个宏块;将所有宏块组成多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置;将多个码片发送至解码设备,以使解码设备通过正向解码和反向解码对各个码片进行解码,得到图像,通过将前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置的编码方式,以及正向解码和反向解码的解码方式,使得码片中不需要添加重同步信号也能保证数据传输的正确性,从而避免由增加重同步信号导致的冗余,提高传输带宽利用率。图3为本申请又一实施例提供的编码方法的流程示意图。本实施例对将所有宏块组成多个码片的具体实现过程进行了详细说明。如图3所示,s203可以包括:s301、获取前一码片中被截断的宏块的剩余数据块。s302、将所述剩余数据块进行反向排列,并将反向排列后的剩余数据块添加到待处理码片中的末尾位置。s303、从所述待处理的码片中的起始位置开始,依次添加各个未组成码片的宏块,直至所述待处理码片的数据长度达到预设长度,或者,所有宏块中不存在未组成码片的宏块。s304、在所有宏块中存在未组成码片的宏块时,获取所述待处理码片中被截断的宏块的剩余数据块,并将下一码片作为所述待处理码块,跳转至以下步骤:将所述剩余数据块进行反向排列,并将反向排列后的剩余数据块添加到待处理码片中的末尾位置。在本实施例中,编码设备可以依次获取图像的各个宏块,将各个宏块添加到第一个码片中。当第一个码片的数据长度达到预设长度时停止,将第一个码片中被截断的宏块的剩余数据块进行反向排列,然后添加到第二个码片的末尾位置,然后依次获取该图像其余的宏块添加到第二个码片中,直到第二个码片的数据长度发到预设长度。将第二个码片中被截断的宏块的剩余数据块进行反向排列,然后添加到第三个码片的末尾位置,按照与上述处理第二个码片的相同方式处理第三个码片、第四个码片等,直至该图像的所有宏块全部添加到码片中,结束编码过程。下面结合一个实施示例进行说明。图4为本申请实施例提供的图像编码得到的各个码片的示意图。参照图4,假设一幅图像的码流被分解为29个宏块,分别为mb1~mb29,其中箭头指向表示宏块数据的方向,本实施例中朝向右侧的箭头方向为正向,朝向左侧的箭头为反向。mb1至mb5,以及mb6的一部分数据块被打包成第一个固定长的码片slice,mb6剩余的部分先被调转方向(即反向排列),然后被接入至第二个slice的末尾。当第二个slice编码至mb12时,已达到定长slice的长度,于是将mb12的剩余部分调转方向后放入至第三个slice的末尾。按照这样的编码方式进行到第五个slice之后,将mb27的剩余码字倒转放入至mb29的末尾,由于最后一个slice的长度并未超过预设的固定长度的界限,所以mb29无需拆分,只需按照正向顺序编码即可。图5为本申请另一实施例提供的解码方法的流程示意图。该方法的执行主体为解码设备。如图5所示,该方法包括:s501、接收编码设备发送的图像的多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置。本实施例中,编码设备将图像编码成多个码片发送至解码设备。解码设备接收到多个码片。其中,编码设备将图像编码成多个码片的具体实现方式与上述图2和图3所示的实施例相似,在此不再赘述。s502、通过正向解码和反向解码对各个码片进行解码,得到所述图像。本实施例中,解码设备通过对每个码片都进行一次正向编码和一次反向编码,然后结合正向编码和反向编码的结果得到码片中的宏块,从而得到图像。可选地,解码设备在解码得到图像后可以在屏幕上显示该图像。本申请实施例中,解码设备接收编码设备发送的图像的多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置,通过正向解码和反向解码对各个码片进行解码,得到图像,通过将前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置的编码方式,以及正向解码和反向解码的解码方式,使得码片中不需要添加重同步信号也能保证数据传输的正确性,从而避免由增加重同步信号导致的冗余,提高传输带宽利用率。可选地,针对每个码片,通过正向解码得到该码片的第一解码结果,通过反向解码得到该码片的第二解码结果,并将第一解码结果和第二解码结果按照预设运算方式进行运算,得到该码片包含的宏块和/或上一码片中被截断的宏块的剩余数据块;并在该码片包含上一码片中被截断的宏块的剩余数据块时,将所述剩余数据块与上一码片的中被截断的宏块的数据块组合生成上一码片中被截断的宏块。解码设备将所有宏块组合生成所述图像。本实施例中,解码设备依次处理各个码片。对于一个码片,解码设备按照正向顺序从该码片的起始位置至末尾位置进行正向解码,得到第一解码结果,然后按照反向顺序从该码片的末尾位置至起始位置进行反向解码,等到第二解码结果。然后按照预设运算方式对第一解码结果和第二解码结果进行运算,得到该码片中包含的数据,其中数据可以包括宏块和/或上一码片中被截断的宏块的剩余数据块。预设运算方式在此不作限定,本领域技术人员可以根据实际需求设定,例如,预设运算方式包括但不限于与运算、或运算、异或运算等中的至少一个或多个运算的组合。如果在该码片包含上一码片中被截断的宏块的剩余数据块,则解码设备将剩余数据块与上一码片的中被截断的宏块的数据块组合生成上一码片中被截断的宏块。以图4的示例为例,解码设备对第一个slice进行解码,可以得到mb1至mb5,以及mb6的一部分数据块。解码设备对第二个slice进行解码,可以得到mb7至mb11,mb12的一部分数据块以及mb6的剩余数据块,将第二个slice中mb6的剩余数据块与第一个slice中的mb6的一部分数据块结合,得到mb6。按照类似的方式依次处理其余的slice,直到所有slice处理完成。解码设备可以将所有宏块组合生成图像。可选地,对所有宏块进行离散余弦逆变换(inversediscretecosinetransformer,idct),得到图像。另外,也可以进行其他的图像变换,在此不作限定。本实施例通过将前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置,并在解码时采用正向解码和反向解码相结合的方式,假如一个码片中的某个宏块存在数据传输错误时,通过正向解码可以得到该宏块之前的宏块,通过反向解码可以得到该宏块之后的所有宏块的起始位置,进而解码得到该宏块之后的所有宏块,能够在某宏块发生传输错误时正确地解码得到出该宏块之外的其他宏块,在没有重同步信号的情况下,也能保证码流传输的鲁棒性。以图4中第二个slice为例,假设mb10中某个数据位上的数据发生错误,则解码设备通过对第二个slice的正向解码可以得到mb7至mb9,通过第二个slice的反向解码可以得到mb6的剩余数据块,以及mb11、mb12的起始位置,通过将正向解码的结果与反向解码的结果按照一定的运算得到mb11、mb12,这样在mb10发生数据错误的情况下,解码设备仍然可以解码出第二个slice中的mb7至mb9,mb11、mb12,以及mb6的剩余数据块,从而在没有重同步信号的情况下,也能保证码流传输的鲁棒性。图6为本申请再一实施例提供的图像传输方法的交互信令图。如图6所示,该方法包括:s601、编码设备获取待处理的图像。s602、编码设备将所述图像编码成图像码流,其中,所述图像码流包括正向排列的多个宏块。s603、编码设备将所有宏块组成多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置。s604、编码设备将所述多个码片发送至解码设备。s605、解码设备接收编码设备发送的图像的多个码片。s606、解码设备通过正向解码和反向解码对各个码片进行解码,得到所述图像。本实施例的具体实施方式与上述图2及图5所示的实施例类似,此处不再赘述。图7为本申请一实施例提供的编码装置的结构示意图。如图7所示,该编码装置70包括:获取模块701、处理模块702、发送模块703。获取模块701,用于获取待处理的图像。处理模块702,用于将所述图像编码成图像码流,其中,所述图像码流包括正向排列的多个宏块。所述处理模块702,还用于将所有宏块组成多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置。发送模块703,用于将所述多个码片发送至解码设备,以使所述解码设备通过正向解码和反向解码对各个码片进行解码,得到所述图像。可选地,所述处理模块702,具体用于:获取前一码片中被截断的宏块的剩余数据块;将所述剩余数据块进行反向排列,并将反向排列后的剩余数据块添加到待处理码片中的末尾位置;从所述待处理的码片中的起始位置开始,依次添加各个未组成码片的宏块,直至所述待处理码片的数据长度达到预设长度,或者,所有宏块中不存在未组成码片的宏块;在所有宏块中存在未组成码片的宏块时,获取所述待处理码片中被截断的宏块的剩余数据块,并将下一码片作为所述待处理码块,跳转至以下步骤:将所述剩余数据块进行反向排列,并将反向排列后的剩余数据块添加到待处理码片中的末尾位置。可选地,所述获取模块701,具体用于:获取图像传感器采集的图像。本申请实施例提供的编码装置,可用于执行上述的编码方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。图8为本申请又一实施例提供的解码装置的结构示意图。如图8所示,该解码装置80包括:接收模块801、处理模块802。接收模块801,用于接收编码设备发送的图像的多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置。处理模块802,用于通过正向解码和反向解码对各个码片进行解码,得到所述图像。可选地,所述处理模块802,具体用于:针对每个码片,通过正向解码得到该码片的第一解码结果,通过反向解码得到该码片的第二解码结果,并将第一解码结果和第二解码结果按照预设运算方式进行运算,得到该码片包含的宏块和/或上一码片中被截断的宏块的剩余数据块;并在该码片包含上一码片中被截断的宏块的剩余数据块时,将所述剩余数据块与上一码片的中被截断的宏块的数据块组合生成上一码片中被截断的宏块;将所有宏块组合生成所述图像。可选地,所述处理模块802,具体用于:对所有宏块进行离散余弦逆变换idct,得到所述图像。本申请实施例提供的解码装置,可用于执行上述的解码方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。图9为本申请一实施例提供的编码设备的硬件结构示意图。如图9所示,本实施例提供的编码设备90包括:至少一个处理器901和存储器902。该编码设备90还包括通信部件903。其中,处理器901、存储器902以及通信部件903通过总线904连接。在具体实现过程中,至少一个处理器901执行所述存储器902存储的计算机执行指令,使得至少一个处理器901执行如上的编码方法。处理器901的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。在上述的图9所示的实施例中,应理解,处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器。总线可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponentinterconnect,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。图10为本申请一实施例提供的解码设备的硬件结构示意图。如图10所示,本实施例提供的解码设备100包括:至少一个处理器1001和存储器1002。该解码设备100还包括通信部件1003。其中,处理器1001、存储器1002以及通信部件1003通过总线1004连接。在具体实现过程中,至少一个处理器1001执行所述存储器1002存储的计算机执行指令,使得至少一个处理器1001执行如上的解码方法。处理器1001的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。在上述的图10所示的实施例中,应理解,处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器。总线可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponentinterconnect,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上的编码方法。本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上的解码方法。上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(applicationspecificintegratedcircuits,简称:asic)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。当前第1页1 2 3 当前第1页1 2 3 
技术特征:1.一种编码方法,其特征在于,包括:
获取待处理的图像;
将所述图像编码成图像码流,其中,所述图像码流包括正向排列的多个宏块;
将所有宏块组成多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置;
将所述多个码片发送至解码设备,以使所述解码设备通过正向解码和反向解码对各个码片进行解码,得到所述图像。
2.根据权利要求1所述的方法,其特征在于,将所有宏块组成多个码片,包括:
获取前一码片中被截断的宏块的剩余数据块;
将所述剩余数据块进行反向排列,并将反向排列后的剩余数据块添加到待处理码片中的末尾位置;
从所述待处理的码片中的起始位置开始,依次添加各个未组成码片的宏块,直至所述待处理码片的数据长度达到预设长度,或者,所有宏块中不存在未组成码片的宏块;
在所有宏块中存在未组成码片的宏块时,获取所述待处理码片中被截断的宏块的剩余数据块,并将下一码片作为所述待处理码块,跳转至以下步骤:将所述剩余数据块进行反向排列,并将反向排列后的剩余数据块添加到待处理码片中的末尾位置。
3.根据权利要求1或2所述的方法,其特征在于,获取待处理的图像,包括:
获取图像传感器采集的图像。
4.一种解码方法,其特征在于,包括:
接收编码设备发送的图像的多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置;
通过正向解码和反向解码对各个码片进行解码,得到所述图像。
5.根据权利要求4所述的方法,其特征在于,通过正向解码和反向解码对各个码片进行解码,得到所述图像,包括:
针对每个码片,通过正向解码得到该码片的第一解码结果,通过反向解码得到该码片的第二解码结果,并将第一解码结果和第二解码结果按照预设运算方式进行运算,得到该码片包含的宏块和/或上一码片中被截断的宏块的剩余数据块;并在该码片包含上一码片中被截断的宏块的剩余数据块时,将所述剩余数据块与上一码片的中被截断的宏块的数据块组合生成上一码片中被截断的宏块;
将所有宏块组合生成所述图像。
6.根据权利要求5所述的方法,其特征在于,将所有宏块组合生成所述图像,包括:
对所有宏块进行离散余弦逆变换idct,得到所述图像。
7.一种编码装置,其特征在于,包括:
获取模块,用于获取待处理的图像;
处理模块,用于将所述图像编码成图像码流,其中,所述图像码流包括正向排列的多个宏块;
所述处理模块,还用于将所有宏块组成多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置;
发送模块,用于将所述多个码片发送至解码设备,以使所述解码设备通过正向解码和反向解码对各个码片进行解码,得到所述图像。
8.根据权利要求7所述的装置,其特征在于,所述处理模块,具体用于:
获取前一码片中被截断的宏块的剩余数据块;
将所述剩余数据块进行反向排列,并将反向排列后的剩余数据块添加到待处理码片中的末尾位置;
从所述待处理的码片中的起始位置开始,依次添加各个未组成码片的宏块,直至所述待处理码片的数据长度达到预设长度,或者,所有宏块中不存在未组成码片的宏块;
在所有宏块中存在未组成码片的宏块时,获取所述待处理码片中被截断的宏块的剩余数据块,并将下一码片作为所述待处理码块,跳转至以下步骤:将所述剩余数据块进行反向排列,并将反向排列后的剩余数据块添加到待处理码片中的末尾位置。
9.根据权利要求7或8所述的装置,其特征在于,所述获取模块,具体用于:
获取图像传感器采集的图像。
10.一种解码装置,其特征在于,包括:
接收模块,用于接收编码设备发送的图像的多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置;
处理模块,用于通过正向解码和反向解码对各个码片进行解码,得到所述图像。
11.根据权利要求10所述的装置,其特征在于,所述处理模块,具体用于:
针对每个码片,通过正向解码得到该码片的第一解码结果,通过反向解码得到该码片的第二解码结果,并将第一解码结果和第二解码结果按照预设运算方式进行运算,得到该码片包含的宏块和/或上一码片中被截断的宏块的剩余数据块;并在该码片包含上一码片中被截断的宏块的剩余数据块时,将所述剩余数据块与上一码片的中被截断的宏块的数据块组合生成上一码片中被截断的宏块;
将所有宏块组合生成所述图像。
12.根据权利要求11所述的装置,其特征在于,所述处理模块,具体用于:
对所有宏块进行离散余弦逆变换idct,得到所述图像。
13.一种编码设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-3任一项所述的编码方法。
14.一种解码设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求4-6任一项所述的解码方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-3任一项所述的编码方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求4-6任一项所述的解码方法。
技术总结本申请提供一种编码方法、解码方法、装置、设备及存储介质。该编码方法包括:获取待处理的图像;将所述图像编码成图像码流,其中,所述图像码流包括正向排列的多个宏块;将所有宏块组成多个码片,其中,每个码片的数据长度相同,每个码片包括至少一个宏块,前一码片中被截断的宏块的剩余数据块在反向排列后添加到下一码片中的末尾位置;将所述多个码片发送至解码设备,以使所述解码设备通过正向解码和反向解码对各个码片进行解码,得到所述图像。本申请使得码片中不需要添加重同步信号也能保证数据传输的正确性,从而避免由增加重同步信号导致的冗余,提高传输带宽利用率。
技术研发人员:席绪亚;周晶
受保护的技术使用者:中国联合网络通信集团有限公司
技术研发日:2020.02.04
技术公布日:2020.06.05