一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据编码方法和装置,计算机存储介质和电子设备与流程

2022-02-22 07:17:31 来源:中国专利 TAG:


1.本技术涉及计算机视频信息处理领域,具体涉及一种数据编码方法和装置;本技术同时涉及一种计算机存储介质和电子设备。


背景技术:

2.随着网络信息技术的发展,视频从之前的一个新兴行业,已经渗透到各行各业中,各个行业开始使用视频作为信息传输的媒介开展服务。
3.随着技术的发展以及对视频使用的不断需求,视频在清晰度上的高要求务必是其发展方向上的一个重要指标,因此,对于编码器具有性能上的需求与要求。
4.现有技术中编码方式通常包括硬编码和软编码,由于硬编码在性能上具有明显优势,所以在移动端硬编码逐渐变为主流的编码方式。但是硬编码只支持特定分辨率的编码,如果不符合特定分辨率要求,就无法使用硬编码器,鉴于此,解决的方式要么必须使用性能低的软编码器,要么在服务上限制分辨率为固定值,将分辨率固定为满足硬编码要求的分辨率。


技术实现要素:

5.本技术提供一种数据编码方法,以解决现有技术中选用硬编码方式受限于分辨率要求的问题。
6.本技术提供一种数据编码方法,包括:
7.获取原始图像数据;
8.根据所述原始图像数据中的原始像素数据,确定所述原始像素数据是否满足采用指定编码方式进行编码的编码要求;
9.若不满足,则基于所述原始图像数据,创建满足采用所述指定编码方式进行编码的拓展图像数据;
10.对所述拓展图像数据采用所述指定编码方式进行编码,获得编码后的目标图像数据。
11.在一些实施例中,所述根据所述原始图像数据中的原始像素数据,确定所述原始像素数据是否满足采用指定编码方法进行编码的编码要求,包括:
12.确定所述原始像素数据的宽度值是否满足所述指定编码方式中像素数据宽度值能够被指定值整除的编码要求。
13.在一些实施例中,所述指定编码方式为硬编码方式,所述指定值为8或16。
14.在一些实施例中,所述基于所述原始图像数据,创建满足采用所述指定编码方式进行编码的拓展图像数据,包括:
15.拓展所述原始图像数据的像素宽度值,其中,拓展后的所述原始图像数据的像素宽度值能够被所述指定编码方式中的指定值整除;
16.对拓展后的所述像素宽度值中的拓展部分像素区域进行像素填充;
17.将填充后的图像数据确定为所述拓展图像数据。
18.在一些实施例中,所述拓展所述原始图像数据的像素宽度值,包括:
19.在所述原始图像数据的像素宽度值基础上添加像素列,其中,添加的像素例数量满足添加像素列后的像素宽度值能够被所述指定值整除。
20.在一些实施例中,所述拓展所述原始图像数据的像素宽度值,包括:
21.在拓展后所述原始图像数据的像素宽度值能够被所述指定值整除的像素宽度值范围内,选取最小像素宽度值作为所述拓展后的所述像素宽度值。
22.在一些实施例中,所述对拓展后的所述像素宽度值中的拓展部分像素区域进行像素填充,包括:
23.对像素宽度方向的两端侧像素区域中的至少一侧进行像素填充。
24.在一些实施例中,所述对所述拓展图像数据采用所述指定编码方式进行编码,获得编码后的目标图像数据,包括:
25.确定所述拓展图像数据中是否包括原序列参数集,其中,所述原序列参数集用于描述原始图像中图像序列的信息;
26.若是,则对所述原序列参数集中的序列参数进行修改,获得新序列参数集;
27.将所述原序列参数集替换为所述新序列参数集;
28.按照所述指定编码方式对所述新序列参数集进行编码,获得与所述原始图像数据相同的、编码后的所述目标图像数据。
29.在一些实施例中,所述对所述原序列参数集中的序列参数进行修改,获得新序列参数集,包括:
30.对所述原序列参数集进行解码,获取所述原序列参数集中的帧剪切参数集合;
31.根据所述拓展图像数据解码后宽度值等于所述原始图像数据的宽度值的要求,对所述帧剪切参数集合中的帧剪切参数进行修改;
32.根据修改后的帧剪切参数集合确定所述新序列参数集。
33.在一些实施例中,所述根据所述拓展图像数据解码后宽度值等于所述原始图像数据的宽度值的要求,对所述剪切参数进行修改,包括:
34.对所述帧剪切参数集合中的帧剪切标志位进行赋值;
35.根据赋值后的所述帧剪切标志位,计算所述拓展图像数据的新帧剪切左偏移量参数值和新帧剪切右偏移量参数值中的至少一个参数值;
36.对所述原帧剪切左偏移量参数和原帧剪切右偏移量参数至少一个与所述参数值对应的值进行修改。
37.在一些实施例中,所述根据赋值后的所述帧剪切标志位,计算所述拓展图像数据的新帧剪切左偏移量参数值和新帧剪切右偏移量参数值中的至少一个参数值,包括:
38.根据所述拓展图像数据拓展后像素宽度值和所述拓展图像数据拓展前像素宽度值的差,获取像素宽度值的差;
39.将所述像素宽度值的差和所述帧剪切参数集合中像素宽最小单位值相除,获取二者的商;
40.将所述原帧剪切左偏移量参数和所述原帧剪切右偏移量参数中至少一个参数值,与所述商相加之和,获得新帧剪切左偏移量参数值和新帧剪切右偏移量参数值中至少一个
新参数值。
41.在一些实施例中,还包括:
42.当所述确定所述拓展图像数据中不包括原序列参数集时,执行所述对所述拓展图像数据采用所述指定编码方式进行编码,获得与所述原始图像数据相同的、编码后的目标图像数据的步骤。
43.在一些实施例中,还包括:
44.当所述根据所述原始图像数据中的原始像素数据,确定所述原始像素数据满足采用指定编码方式进行编码的编码要求时,对所述原始图像数据按照所述指定编码方式进行编码。
45.在一些实施例中,所述获取原始图像数据,包括:
46.获取原视频流中的所述原始图像数据。
47.本技术还提供一种数据编码装置,包括:
48.获取单元,用于获取原始图像数据;
49.确定单元,用于根据所述原始图像数据中的原始像素数据,确定所述原始像素数据是否满足采用指定编码方式进行编码的编码要求;
50.创建单元,用于根据所述确定单元的确定结果为不满足时,基于所述原始图像数据,创建满足采用所述指定编码方式进行编码的拓展图像数据;
51.编码单元,用于对所述拓展图像数据采用所述指定编码方式进行编码,获得与所述原始图像数据中图像内容相同的、编码后的目标图像数据。
52.本技术还提供一种计算机存储介质,用于存储网络平台产生数据,以及对应所述网络平台产生数据进行处理的程序;
53.所述程序在被读取执行时,执行如上所述的数据编码方法的步骤。
54.本技术还提供一种电子设备,包括:
55.处理器;
56.存储器,用于存储对网络平台产生数据进行处理的程序,所述程序在被所述处理器读取执行时,执行如上所述的数据编码方法的步骤。
57.与现有技术相比,本技术具有以下优点:
58.本技术提供的数据编码方法,通过获取原始图像数据;根据所述原始图像数据中的原始像素数据,确定所述原始像素数据是否满足采用指定编码方式进行编码的编码要求;若不满足,则基于所述原始图像数据,创建满足采用所述指定编码方式进行编码的拓展图像数据;对所述拓展图像数据采用所述指定编码方式进行编码,获得与所述原始图像数据中图像内容相同的、编码后的目标图像数据,不但能够保证获得与原始图像数据中图像内容相同的目标图像数据,而且不需要对分辨率进行妥协也无需更改指定硬编码方式,既能针对不同图像分辨率均采用硬编码进行编码,保证编码性能。
附图说明
59.图1是本技术提供的一种数据编码方法实施例的流程图;
60.图2是本技术提供的一种数据编码方法实施例中对拓展图像数据进行编码的流程图;
61.图3是本技术提供的一种数据编码方法实施例中编码参考图像过程示意图;
62.图4是本技术提供的一种数据编码装置实施例的结构示意图。
具体实施方式
63.在下面的描述中阐述了很多具体细节以便于充分理解本技术。但是本技术能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本技术内涵的情况下做类似推广,因此本技术不受下面公开的具体实施的限制。
64.本技术中使用的术语是仅仅出于对特定实施例描述的目的,而非旨在限制本技术。在本技术中和所附权利要求书中所使用的描述方式例如:“一种”、“第一”、和“第二”等,并非对数量上的限定或先后顺序上的限定,而是用来将同一类型的信息彼此区分。
65.通过上述背景技术可知,本技术提供的数据编码方法是为了解决现有技术中选用硬编码方式进行编码时,受限于特定分辨率要求的问题,从而提出一种既无需在编码时对视频分辨率进行妥协,也无需对采用的编码方式进行妥协。例如:对于终端设备上应用服务软件需要输出分辨率为540
×
960的视频信息,因为分辨率为540
×
960时,在终端设备上的播放比例及效果更好,但是,该终端设备采用的是硬编码方式,因此,视频的宽需要满足特定要求,例如:视频宽是8或16的倍数,然而,要保持分辨率为540
×
960的视频效果则需要切换为软编码方式进行编码,即编码方式妥协;或者,直接将视频的输出需求改为544
×
960,即分辨率妥协(即服务上妥协),从而满足所述终端设备的编码要求。然而,当采用软件编码进行编码时,必然会存在性能低的问题,而修改分辨率降低实际上对分辨率的要求,鉴于上述两种方式均不能从根本上解决编码需求,故此,提出一种既不用在编码方式上进行妥协也不用再分辨率要求上进行妥协的方案,下面将对本技术提供的一种数据编码方法实施例进行详细描述。
66.如图1所示,图1是本技术提供的一种数据编码方法实施例的流程图,该方法实施例包括:
67.步骤s101:获取原始图像数据。
68.所述步骤s101中的原始图像数据,在本实施例中,可以理解为是基于h264视频编码协议的视频信息中获取的原始图像数据。
69.h264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,被广泛的应用在视频编码处理中,本实施例主要采用所述h264编码协议进行说明,但是并不限于该种编码协议。
70.步骤s102:根据所述原始图像数据中的原始像素数据,确定所述原始像素数据是否满足采用指定编码方式进行编码的编码要求。
71.所述步骤s102中的指定编码方式在本实施例中可以是硬编码方式,当然还可以是其他指定的编码方式,本实施例中以硬编码方式进行举例说明。
72.硬编码是使用非cpu进行编码,如显卡gpu、专用的dsp、fpga、asic芯片等;软编码是使用cpu进行编码。硬编码具有性能高,低码率下通常质量低于硬编码器;软编码实现直接、简单,参数调整方便,升级易,但cpu负载重,性能较硬编码低。对于一个直播视频而言,需要经过采集-处理-编码和封装-推流-分发-播放,故编码是视频直播以及视频在终端设备播放的基本要素之一。编码性能的高低会影响流媒体的传输质量及传输成本。对于同一
平台,同一硬件环境,硬编码速度快于软编码,cpu占有率更低,故此,硬编码具有一定性能优势。
73.h264硬编码结构中,针对一个视频图像编码后的数据叫做一帧,一帧由一个片(slice)或多个片组成,一个片由一个或多个宏块(mb)组成,一个宏块由16
×
16的yuv(yuv是描述图像色彩及饱和度,指定像素的像素)数据组成。宏块作为h264编码的基本单位,即对于视频图像编码后要保证宏块为整数个,因此,在采用硬编码进行编码时,采集的原始视频数据的像素宽度值(分辨率宽度值)需要满足硬编码的编码要求,即像素宽度值需要被n整除,通常情况下n为8或16,在本实施例中主要以16为例进行说明。
74.可以理解的是,编码是对原始视频数据中的每一帧画面进行编码,因此,是对原始频数据中原始图像数据进行编码,故,步骤s102描述的是根据所述原始图像数据中的原始像素数据,确定所述原始像素数据是否满足采用指定编码方式进行编码的编码要求。
75.基于上述内容可知,所述步骤s102的具体实现过程可以包括:
76.步骤s102-1:确定所述原始像素数据的宽度值是否满足所述指定编码方式中像素数据宽度值能够被指定值整除的编码要求。
77.所述步骤s102-1中的指定值在本实施例中为上述n,即为8或16,在本实施例中主要以16为例进行说明。基于所述步骤s101中获取的原始图像数据的原始像素数据宽度值与所述指定值16相除,如果能够整除则说明原始像素数据满足硬编码的对像素宽度上的要求,反之,则不满足。因此,在不满足的情况下,主要执行步骤s103。
78.步骤s103:若不满足,则基于所述原始图像数据,创建满足采用所述指定编码方式进行编码的拓展图像数据。
79.所述步骤s103的目的在于,基于步骤s102的确定结果为原始像素数据的宽度值不满足硬编码要求时,创建满足要求的拓展图像数据。
80.所述步骤s103的具体实现过程可以包括:
81.步骤s103-1:拓展所述原始图像数据的像素宽度值,其中,拓展后的所述原始图像数据的像素宽度值能够被所述指定编码方式中的指定值整除;
82.步骤s103-2:对拓展后的所述像素宽度值中的拓展部分像素区域进行像素填充;
83.步骤s103-3:将填充后的图像数据确定为所述拓展图像数据。
84.所述步骤s103-1的目的在于拓展像素宽度值,因为原始图像数据的像素宽度值不能够被硬编码方式中的指定值(例如:16)整除,所以,需要对原始图像数据的像素宽度值进行拓展,使得拓展后的像素宽度值能够被16整除,进而就能够通过硬编码方式进行编码。
85.所述步骤s103-1的具体实现过程可以包括:
86.步骤s103-11:在所述原始图像数据的像素宽度值基础上添加列像素,其中,添加的列像素数量满足添加列像素后的像素宽度值能够被所述指定值整除。
87.可以理解的是,在后续对所述拓展图像数据进行编码处理时,能够保证编码处理的性能,因此,在本实施例中,对于添加列像素的数量可以是在满足添加列像素后的像素宽度值能够被所述指定值整除的列像素数量范围内选取最小数量,作为添加的列像素数量。换言之,在拓展后所述原始图像数据的像素宽度值能够被所述指定值整除的像素宽度值范围内,选取最小像素宽度值作为所述拓展后的所述像素宽度值。简而言之,拓展后的像素宽度值要大于原始图像数据的像素宽度值(原像素宽度值),而在大于原像素宽度值范围(a~
∞),则在该范围内选取a作为拓展后的所述像素宽度值,进而能够在后续进行无效像素填充时,即能够降低像素填充量也能保证硬编码的编码要求,为后续编码处理的性能提供进一步服务。以原始图像数据中的原始像素数据(也可以称为原始分辨率)540
×
960(宽
×
高)为例,拓展后的像素值可以为544
×
960,560
×
960、576
×
960、592
×
960
……
等,在这范围内,选取最小的宽度值即544作为拓展后的像素宽度值。
88.基于上述内容,可知所述步骤s103-2的目的在于对拓展后的像素宽度值中涉及的拓展部分进行像素填充,从而满足硬编码方式的编码要求。
89.所述步骤s103-2的具体实现过程可以包括:
90.步骤s103-21:对像素宽度方向的两端侧像素区域中的至少一侧进行像素填充。
91.基于所述步骤s103-1可以获知,拓展后的像素宽度值大于原像素宽度值,请参考图2所示,图2是本技术提供的一种数据编码方法实施例中原始图像数据拓展后的示意图。
92.在本实施例中,以原始图像数据中的原始像素数据(也可以称为原始分辨率)540
×
540(宽
×
高)为例,拓展后的像素值为544
×
540。对于图像而言,填充部分既可以在原始像素宽度值的左侧也可以是右侧,在本实施例中以右侧为例,当然,也可以在左侧和右侧分别填充,只要能够满足拓展后的像素值满足硬编码要求,填充的位置不受局限。
93.可以理解的是,拓展的目的仅是为满足硬编码方式的编码要求,因此,对于拓展后像素宽度值中拓展部分的像素填充不具有任何数据特征意义,仅为满足编码要求,因此填充的像素内容是无效的,既可以选择颜色进行无效填充,也可以图案进行无效填充。在本实施例中,主要以颜色填充为例进行说明,即设置y、u、v三个分量均为0,即绿色。其中,yuv是一种颜色编码方法,也在视频数据编码领域常用的颜色编码为yuv。yuv,分为三个分量,“y”表示明亮度(luminance或luma),也就是灰度值;而“u”和“v”表示的则是色度(chrominance或chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。yuv主流的采样方式有三种,即yuv4:4:4,yuv4:2:2,yuv4:2:0。在本实施例中,主要以yuv4:2:0为例进行说明,yuv 4:2:0采样是每四个y共用一组uv分量。
94.当然可以理解的是,虽然本技术实施例中主要以yuv三个分量值分别为0举例说明,但是对于无效像素的填充还可以采用rgb的颜色编码方式进行填充,由于在本实施例中主要是针对视频数据中的帧图像进行拓展以及填充,而对于视频数据目前主流的颜色编码方式均采用yuv,因此,在视频数据应用场景下,如果颜色编码方式要求为yuv,则在采用rgb的颜色编码方式时,可以先用rgb进行无效颜色填充,之后再转换成yuv支持的格式。
95.本实施例中,采用yuv为零的像素填充后,如图2所示,会在原始图像像素宽度的右边出现一列绿色像素区域,该区域即为拓展的像素区域部分也是无效像素区域,本实施例主要是拓展像素区域为右侧为例进行说明。
96.在本实施例中,采用无效像素填充后即获得拓展图像数据,如图2所示。以上是基于所述步骤s102中确定所述原始像素数据不满足采用指定编码方式进行编码的编码要求时,执行步骤s103创建满足采用所述指定编码方式进行编码的拓展图像数据的具体过程。
97.可以理解是,所述步骤s102确定的结果还存在另一种情况,即所述原始像素数据满足采用指定编码方式进行编码的编码要求,也就是,针对原始像素数据的像素宽度值能够被16整除,即可以采用硬编码方式对原始像素数据进行编码。因此,在所述步骤s102的确定结果为是时,本实施例还可以包括另一种执行方式,即:当所述根据所述原始图像数据中
的原始像素数据,确定所述原始像素数据满足采用指定编码方式进行编码的编码要求时,对所述原始图像数据按照所述指定编码方式进行编码。
98.基于步骤s103中创建的拓展图像数据,需要采用本实施例中的硬编码方式进行编码处理,进而进入步骤s104。
99.步骤s104:对所述拓展图像数据采用所述指定编码方式进行编码,获得编码后的目标图像数据。
100.在本实施例中所述指定编码方式主要是以硬编码的编码方式为例。步骤s104目的在于获得编码后的目标图像数据,在本实施例中,所述目标图像数据与原始图像数据的图像内容可以是相同的。
101.如图2所示,图2是本技术提供的一种数据编码方法实施例中对拓展图像数据进行编码的流程图,所述步骤s104的具体实现过程可以包括:
102.步骤s104-1:确定所述拓展图像数据中是否包括原序列参数集,其中,所述原序列参数集用于描述原始图像中图像序列的信息;
103.所述步骤s104-1中的序列参数集是指h264视频码流结构的一部分,即h264编码标准中包括参数集,所述参数集包括:nal_sps和nal_pps,其中,nal_sps是序列参数集,用于表示包括一个图像序列的所有信息,例如:图像尺寸、视频格式等。nal_pps是图像参数集,用于表示包括一个图像的所有分片的所有相关信息,包括图像类型、序列号等。
104.h264原始视频码流包括多个相互连接的nalu(nal unit:网络提取单元),而它的功能分为两层:视频编码层(vcl,video coding layer)和网络提取层(nal,network abstraction layer)。
105.vcl数据即编码处理的输出,它表示被压缩编码后的视频数据序列。在vcl数据传输或存储之前,这些编码的vcl数据,先被映射或封装进nal unit中。每个nalu包括一个原始字节序列负荷(rbsp,raw byte sequence payload)、一组对应于视频编码的nalu头部信息。
106.基于上述内容,本实施例中对原始图像数据的像素宽度值进行拓展,因此,在确定所述拓展图像数据中是否包括原序列参数集时,可以通过获取的nal unit中是否包括nal_sps序列参数集(包括有尺寸信息)进行确定。具体确定过程可以是,首先h264编码协议具有两种封装格式,一种是annexb格式,传统模式;一种是avcc格式;其中annexb模式直接读取拓展图像数据,根据nal type找到sps即可,mp4模式可以根据sps的长度来确定。例如:在h264码流中,都是以“0x00 0x00 0x01”或者“0x00 0x00 0x00 0x01”为开始码的,找到开始码之后,即当前拓展图像数据,使用开始码之后的第一个字节的低5位判断是否为7(sps),等于7表示该帧就是sps帧,从该帧就可以解析出高和宽。
107.步骤s104-2:若是,则对所述原序列参数集中的序列参数进行修改,获得新序列参数集;
108.所述步骤s104-2的具体实现过程可以包括:
109.步骤s104-21:对所述原序列参数集进行解码,获取所述原序列参数集中的帧剪切参数集合;在本实施例中,所述帧剪切参数集合可以包括:frame_crop_flag(帧剪切标志位)、frame_crop_left_offset(帧剪切左偏移量)、frame_crop_right_offset(帧剪切右偏移量)、frame_crop_top_offset(帧剪切顶部偏移量)、frame_crop_bottom_offset(帧剪切
底部偏移量)等。
110.步骤s104-22:根据所述拓展图像数据解码后宽度值等于所述原始图像数据的宽度值的要求,对所述帧剪切参数集合中的帧剪切参数进行修改;
111.所述步骤s104-22的具体实现过程可以包括:
112.对所述帧剪切参数集合中的帧剪切标志位进行赋值;即将frame_crop_flag赋值为1或true。
113.根据赋值后的所述帧剪切偏移量状态,计算所述拓展图像数据的新帧剪切左偏移量参数值和新帧剪切右偏移量参数值中的至少一个参数值;根据上述内容可知,在本实施例中,主要是针对像素宽度值右侧进行填充,因此,本实施例中获取的帧剪切偏移量主要是指frame_crop_right_offset(帧剪切右偏移量)。
114.对所述原序列参数集中原帧剪切左偏移量参数和原帧剪切右偏移量参数至少一个与所述参数值对应的值进行修改。在本实施例中,主要是将原帧剪切右偏移量修改为计算出的新帧剪切右偏移量。在本实施例中,关于frame_crop_right_offset(帧剪切右偏移量)的计算具体实现过程可以包括:
115.根据所述拓展图像数据拓展后像素宽度值和所述拓展图像数据拓展前像素宽度值的差,获取像素宽度值的差;
116.将所述像素宽度值的差和所述帧剪切参数集合中像素宽最小单位值相除,获取二者的商;
117.将所述原帧剪切左偏移量参数和所述原帧剪切右偏移量参数中至少一个参数值,与所述商相加,获得新帧剪切左偏移量参数值和新帧剪切右偏移量参数值中至少一个新参数值。
118.基于上述可以参考如下公式:
119.新frame_crop_right_offset=原frame_crop_right_offset ((n-w)/sub width);
120.其中,n为拓展后拓展图像数据的像素宽度值,w为原始图像数据的像素宽度值;subwidth为帧剪切在宽度方向上参数集的最小值或者最小单位,subheight为帧剪切在高度方向上参数集的最小值或者最小单位。在h264编码协议中,宽的最小单位是subwidth个像素,高的最小单位是subheight个像素,因此,在根据n-w确定出多余像素后,需要除以宽的最小单位,将商与原帧剪切右偏移量之和确定为拓展图像数据的帧剪切右偏移量。
121.结合上述原始图像数据的原始像素数据为540
×
960,拓展后的拓展图像数据的拓展像素数据为544
×
960,对拓展图像的右侧添加4列像素,假设原frame_crop_right_offset值为0,而yuv420p对应的subwdith为2,则拓展图像数据中新frame_crop_right_offset为0 ((544-540)/2)=2。
122.步骤s104-23:根据修改后的帧剪切参数集合确定所述新序列参数集。在本实例中,主要以帧剪切右偏移量为例进行的描述,因此,在所述步骤s104-23中修改后的帧剪切参数集合中主要包括将新帧剪切右偏移量替换为原帧剪切右偏移量的修改变化,因此,根据修改后的帧剪切参数集合确定所述新序列参数集。
123.步骤s104-3:将所述原序列参数集替换为所述新序列参数集;
124.步骤s104-4:按照所述指定编码方式对所述新序列参数集进行编码,获得与所述
原始图像数据的图像内容相同的、编码后的所述目标图像数据。
125.所述步骤s104-4在对新序列参数集进行编码后,能够获得目标图像数据,所述目标图像数据的图像内容与原始图像数据的图像内容相同(如图3所示),此处的图像内容可以理解为有效图像内容,即:目标图像数据中有效的每帧画面的与所述原始图像数据中有效的每帧画面是对应的,从而保证目标图像数据与原始图像数据所表达的信息一致。
126.基于上述内容,所述步骤s104-1中还包括:所述确定所述拓展图像数据中不包括原序列参数集的情况,那么,当所述确定所述拓展图像数据中不包括原序列参数集时,执行所述对所述拓展图像数据采用所述指定编码方式进行编码,获得与所述原始图像数据相同的、编码后的目标图像数据的步骤。因为在本实施例中对原始图像数据的像素宽度值进行了拓展,因此,需要获得拓展后拓展图像数据的像素宽度值,而像素宽度值被记录在sps中,因此,需要判断当前视频流中帧图像数据是否包括sps数据。
127.需要说明的是,在对拓展图像数据进行编码后,可以将针对拓展图像数据进行编码而创建的编码器进行销毁,当然也可以保留。
128.需要说明的是,创建的编码器可以是在所述原始像素数据的宽度值不满足所述指定编码方式中像素数据宽度值能够被指定值整除的编码要求时创建,也可以在满足时创建,创建的编码器对应不同的图像数据。
129.基于上述内容,可知,本实施例通过对原始图像数据中的宽度值进行拓展,从而保证拓展后的拓展图像数据中的像素宽度值能够被硬编码方式中指定值进行整除的要求,之后通过对拓展图像数据进行编码,保证除帧剪切参数集合以外的其他所有编码参数不会受到影响,以及保证可以正常解码的同时剔除无效像素,因为,解码时根据h264解码协议标准即可获知无效像素和有效像素;从而不但能够保证获得与原始图像数据中图像内容相同的目标图像数据,而且不需要对分辨率进行妥协也无需更改指定硬编码方式,既能针对不同图像分辨率均采用硬编码进行编码,保证编码性能。
130.需要说明的是,对上述本技术提供的数据编码方法实施例在进行解码输出时,可以采用常规的解码方式进行解码处理,即可适用于特定分辨率的输出场景。
131.可以理解的是,本本技术实施例提供的数据编码方法可以适用于视频点播、视频直播、媒体处理、媒体生产等多种动态信息数据的应用场景,当然,也可以适用于静态信息数据的处理场景,例如:图像的处理等。
132.以上是对本技术提供的一种数据编码方法实施例的具体描述,与前述提供的一种数据编码方法实施例相对应,本技术还公开一种数据编码装置实施例,请参看图4,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
133.如图4所示,图4是本技术提供的一种数据编码装置实施例的结构示意图,该装置实施例包括:
134.获取单元401,用于获取原始图像数据;所述原始图像数据可以是从原视频流中获取。因此,所述获取单元401具体可以用于获取原视频流中的所述原始图像数据。
135.确定单元402,用于根据所述原始图像数据中的原始像素数据,确定所述原始像素数据是否满足采用指定编码方式进行编码的编码要求;
136.所述确定单元402具体用于确定所述原始像素数据的宽度值是否满足所述指定编
码方式中像素数据宽度值能够被指定值整除的编码要求。其中,在本实施例中,所述指定编码方式为硬编码方式,所述指定值为8或16,所述指定值是根据h264编码协议的要求确定,不限于这两种指定值。
137.在本实施例中,确定单元402还存在一种情况,即所述原始像素数据满足采用指定编码方式进行编码的编码要求,此时,还包括原始图像编码单元,用于当所述根据所述原始图像数据中的原始像素数据,确定所述原始像素数据满足采用指定编码方式进行编码的编码要求时,对所述原始图像数据按照所述指定编码方式进行编码。
138.创建单元403,用于根据所述确定单元的确定结果为不满足时,基于所述原始图像数据,创建满足采用所述指定编码方式进行编码的拓展图像数据;
139.所述创建单元403包括:拓展子单元,填充子单元以及确定子单元。
140.所述拓展子单元,用于拓展所述原始图像数据的像素宽度值,其中,拓展后的所述原始图像数据的像素宽度值能够被所述指定编码方式中的指定值整除;所述拓展子单元,具体可以用于在所述原始图像数据的像素宽度值基础上添加像素列,其中,添加的像素例数量满足添加像素列后的像素宽度值能够被所述指定值整除。
141.为保证后续编码性能,所述拓展子单元具体用于在拓展后所述原始图像数据的像素宽度值能够被所述指定值整除的像素宽度值范围内,选取最小像素宽度值作为所述拓展后的所述像素宽度值。
142.填充子单元,用于对拓展后的所述像素宽度值中的拓展部分像素区域进行像素填充;
143.所述填充子单元具体用于对像素宽度方向的两端侧像素区域中的至少一侧进行像素填充。
144.确定子单元,用于将填充后的图像数据确定为所述拓展图像数据。
145.编码单元404,用于对所述拓展图像数据采用所述指定编码方式进行编码,获得编码后的目标图像数据。
146.所述编码单元404具体可以用于包括:确定子单元、修改子单元、替换子单元以及编码子单元。
147.所述确定子单元,用于确定所述拓展图像数据中是否包括原序列参数集,其中,所述原序列参数集用于描述原始图像中图像序列的信息;
148.所述修改子单元,用于根据所述确定子单元的确定结果如果为是,则对所述原序列参数集中的序列参数进行修改,获得新序列参数集;
149.所述替换子单元,用于将所述原序列参数集替换为所述新序列参数集;
150.所述编码子单元,用于按照所述指定编码方式对所述新序列参数集进行编码,获得与所述原始图像数据相同的、编码后的所述目标图像数据。
151.在本实施例中,所述修改子单元可以包括:解码子单元、参数修改子单元、参数集确定子单元。
152.所述解码子单元,用于对所述原序列参数集进行解码,获取所述原序列参数集中的帧剪切参数集合;
153.所述参数修改子单元,用于根据所述拓展图像数据解码后宽度值等于所述原始图像数据的宽度值的要求,对所述帧剪切参数集合中的帧剪切参数进行修改;
154.所述参数集确定子单元,用于根据修改后的帧剪切参数集合确定所述新序列参数集。
155.在本实施例中,所述参数修改子单元包括:赋值子单元、计算子单元和数值修改子单元。
156.所述赋值子单元,用于对所述帧剪切参数集合中的帧剪切标志位进行赋值;
157.根据赋值后的所述帧剪切标志位,计算所述拓展图像数据的新帧剪切左偏移量参数值和新帧剪切右偏移量参数值中的至少一个参数值;
158.所述数值修改子单元,用于对所述原帧剪切左偏移量参数和原帧剪切右偏移量参数至少一个与所述参数值对应的值进行修改。
159.所述计算子单元包括:差获取子单元、商获取子单元,和获取子单元。
160.其中,所述差获取子单元,用于根据所述拓展图像数据拓展后像素宽度值和所述拓展图像数据拓展前像素宽度值的差,获取像素宽度值的差;
161.所述商获取子单元,用于将所述差获取子单元中获取的所述像素宽度值的差和所述帧剪切参数集合中像素宽最小单位值相除,获取二者的商;
162.所述和获取子单元,用于将所述原帧剪切左偏移量参数和所述原帧剪切右偏移量参数中至少一个参数值,与所述商获取子单元中获取的商相加之和,获得新帧剪切左偏移量参数值和新帧剪切右偏移量参数值中至少一个新参数值。
163.基于上述内容,在本实施例中,所述确定子单元还包括一种情况,即所述拓展图像数据中不包括原序列参数集,因此,本实施例还包括:跳转子单元,用于当所述确定所述拓展图像数据中不包括原序列参数集时,跳转到所述编码单元,执行所述对所述拓展图像数据采用所述指定编码方式进行编码,获得与所述原始图像数据相同的、编码后的目标图像数据的步骤。
164.以上是对本技术提供的一种数据编码装置实施例的描述,由于该装置与方法相对应,所以此处描述的较为笼统概略,具体内容可以参考上述方法的描述,在装置实施例部分不再重复赘述。
165.基于上述内容,本技术还提供一种计算机存储介质,用于存储网络平台产生数据,以及对应所述网络平台产生数据进行处理的程序;
166.所述程序在被读取执行时,执行如下步骤:
167.获取原始图像数据;
168.根据所述原始图像数据中的原始像素数据,确定所述原始像素数据是否满足采用指定编码方式进行编码的编码要求;
169.若不满足,则基于所述原始图像数据,创建满足采用所述指定编码方式进行编码的拓展图像数据;
170.对所述拓展图像数据采用所述指定编码方式进行编码,获得编码后的目标图像数据。
171.其中,所述根据所述原始图像数据中的原始像素数据,确定所述原始像素数据是否满足采用指定编码方法进行编码的编码要求,包括:
172.确定所述原始像素数据的宽度值是否满足所述指定编码方式中像素数据宽度值能够被指定值整除的编码要求。所述指定编码方式为硬编码方式,所述指定值为8或16。
173.其中,所述基于所述原始图像数据,创建满足采用所述指定编码方式进行编码的拓展图像数据,包括:
174.拓展所述原始图像数据的像素宽度值,其中,拓展后的所述原始图像数据的像素宽度值能够被所述指定编码方式中的指定值整除;
175.对拓展后的所述像素宽度值中的拓展部分像素区域进行像素填充;
176.将填充后的图像数据确定为所述拓展图像数据。
177.其中,所述拓展所述原始图像数据的像素宽度值,包括:
178.在所述原始图像数据的像素宽度值基础上添加像素列,其中,添加的像素例数量满足添加像素列后的像素宽度值能够被所述指定值整除。
179.其中,所述拓展所述原始图像数据的像素宽度值,包括:
180.在拓展后所述原始图像数据的像素宽度值能够被所述指定值整除的像素宽度值范围内,选取最小像素宽度值作为所述拓展后的所述像素宽度值。
181.其中,所述对拓展后的所述像素宽度值中的拓展部分像素区域进行像素填充,包括:
182.对像素宽度方向的两端侧像素区域中的至少一侧进行像素填充。
183.其中,所述对所述拓展图像数据采用所述指定编码方式进行编码,获得与所述原始图像数据相同的、编码后的目标图像数据,包括:
184.确定所述拓展图像数据中是否包括原序列参数集,其中,所述原序列参数集用于描述原始图像中图像序列的信息;
185.若是,则对所述原序列参数集中的序列参数进行修改,获得新序列参数集;
186.将所述原序列参数集替换为所述新序列参数集;
187.按照所述指定编码方式对所述新序列参数集进行编码,获得与所述原始图像数据相同的、编码后的所述目标图像数据。
188.其中,所述对所述原序列参数集中的序列参数进行修改,获得新序列参数集,包括:
189.对所述原序列参数集进行解码,获取所述原序列参数集中的帧剪切参数集合;
190.根据所述拓展图像数据解码后宽度值等于所述原始图像数据的宽度值的要求,对所述帧剪切参数集合中的帧剪切参数进行修改;
191.根据修改后的帧剪切参数集合确定所述新序列参数集。
192.其中,所述根据所述拓展图像数据解码后宽度值等于所述原始图像数据的宽度值的要求,对所述剪切参数进行修改,包括:
193.对所述帧剪切参数集合中的帧剪切标志位进行赋值;
194.根据赋值后的所述帧剪切标志位,计算所述拓展图像数据的新帧剪切左偏移量参数值和新帧剪切右偏移量参数值中的至少一个参数值;
195.对所述原帧剪切左偏移量参数和原帧剪切右偏移量参数至少一个与所述参数值对应的值进行修改。
196.其中,所述根据赋值后的所述帧剪切标志位,计算所述拓展图像数据的新帧剪切左偏移量参数值和新帧剪切右偏移量参数值中的至少一个参数值,包括:
197.根据所述拓展图像数据拓展后像素宽度值和所述拓展图像数据拓展前像素宽度
值的差,获取像素宽度值的差;
198.将所述像素宽度值的差和所述帧剪切参数集合中像素宽最小单位值相除,获取二者的商;
199.将所述原帧剪切左偏移量参数和所述原帧剪切右偏移量参数中至少一个参数值,与所述商相加之和,获得新帧剪切左偏移量参数值和新帧剪切右偏移量参数值中至少一个新参数值。
200.其中,还包括:
201.当所述确定所述拓展图像数据中不包括原序列参数集时,执行所述对所述拓展图像数据采用所述指定编码方式进行编码,获得与所述原始图像数据相同的、编码后的目标图像数据的步骤。
202.其中,还包括:
203.当所述根据所述原始图像数据中的原始像素数据,确定所述原始像素数据满足采用指定编码方式进行编码的编码要求时,对所述原始图像数据按照所述指定编码方式进行编码。
204.其中,所述获取原始图像数据,包括:获取原视频流中的所述原始图像数据。
205.基于上述内容,本技术还提供一种电子设备,包括:
206.处理器;
207.存储器,用于存储对网络平台产生数据进行处理的程序,所述程序在被所述处理器读取执行时,执行如下步骤:
208.获取原始图像数据;
209.根据所述原始图像数据中的原始像素数据,确定所述原始像素数据是否满足采用指定编码方式进行编码的编码要求;
210.若不满足,则基于所述原始图像数据,创建满足采用所述指定编码方式进行编码的拓展图像数据;
211.对所述拓展图像数据采用所述指定编码方式进行编码,获得编码后的目标图像数据。
212.其中,所述根据所述原始图像数据中的原始像素数据,确定所述原始像素数据是否满足采用指定编码方法进行编码的编码要求,包括:
213.确定所述原始像素数据的宽度值是否满足所述指定编码方式中像素数据宽度值能够被指定值整除的编码要求。所述指定编码方式为硬编码方式,所述指定值为8或16。
214.其中,所述基于所述原始图像数据,创建满足采用所述指定编码方式进行编码的拓展图像数据,包括:
215.拓展所述原始图像数据的像素宽度值,其中,拓展后的所述原始图像数据的像素宽度值能够被所述指定编码方式中的指定值整除;
216.对拓展后的所述像素宽度值中的拓展部分像素区域进行像素填充;
217.将填充后的图像数据确定为所述拓展图像数据。
218.其中,所述拓展所述原始图像数据的像素宽度值,包括:
219.在所述原始图像数据的像素宽度值基础上添加像素列,其中,添加的像素例数量满足添加像素列后的像素宽度值能够被所述指定值整除。
220.其中,所述拓展所述原始图像数据的像素宽度值,包括:
221.在拓展后所述原始图像数据的像素宽度值能够被所述指定值整除的像素宽度值范围内,选取最小像素宽度值作为所述拓展后的所述像素宽度值。
222.其中,所述对拓展后的所述像素宽度值中的拓展部分像素区域进行像素填充,包括:
223.对像素宽度方向的两端侧像素区域中的至少一侧进行像素填充。
224.其中,所述对所述拓展图像数据采用所述指定编码方式进行编码,获得与所述原始图像数据相同的、编码后的目标图像数据,包括:
225.确定所述拓展图像数据中是否包括原序列参数集,其中,所述原序列参数集用于描述原始图像中图像序列的信息;
226.若是,则对所述原序列参数集中的序列参数进行修改,获得新序列参数集;
227.将所述原序列参数集替换为所述新序列参数集;
228.按照所述指定编码方式对所述新序列参数集进行编码,获得与所述原始图像数据相同的、编码后的所述目标图像数据。
229.其中,所述对所述原序列参数集中的序列参数进行修改,获得新序列参数集,包括:
230.对所述原序列参数集进行解码,获取所述原序列参数集中的帧剪切参数集合;
231.根据所述拓展图像数据解码后宽度值等于所述原始图像数据的宽度值的要求,对所述帧剪切参数集合中的帧剪切参数进行修改;
232.根据修改后的帧剪切参数集合确定所述新序列参数集。
233.其中,所述根据所述拓展图像数据解码后宽度值等于所述原始图像数据的宽度值的要求,对所述剪切参数进行修改,包括:
234.对所述帧剪切参数集合中的帧剪切标志位进行赋值;
235.根据赋值后的所述帧剪切标志位,计算所述拓展图像数据的新帧剪切左偏移量参数值和新帧剪切右偏移量参数值中的至少一个参数值;
236.对所述原帧剪切左偏移量参数和原帧剪切右偏移量参数至少一个与所述参数值对应的值进行修改。
237.其中,所述根据赋值后的所述帧剪切标志位,计算所述拓展图像数据的新帧剪切左偏移量参数值和新帧剪切右偏移量参数值中的至少一个参数值,包括:
238.根据所述拓展图像数据拓展后像素宽度值和所述拓展图像数据拓展前像素宽度值的差,获取像素宽度值的差;
239.将所述像素宽度值的差和所述帧剪切参数集合中像素宽最小单位值相除,获取二者的商;
240.将所述原帧剪切左偏移量参数和所述原帧剪切右偏移量参数中至少一个参数值,与所述商相加之和,获得新帧剪切左偏移量参数值和新帧剪切右偏移量参数值中至少一个新参数值。
241.其中,还包括:
242.当所述确定所述拓展图像数据中不包括原序列参数集时,执行所述对所述拓展图像数据采用所述指定编码方式进行编码,获得与所述原始图像数据相同的、编码后的目标
图像数据的步骤。
243.其中,还包括:
244.当所述根据所述原始图像数据中的原始像素数据,确定所述原始像素数据满足采用指定编码方式进行编码的编码要求时,对所述原始图像数据按照所述指定编码方式进行编码。
245.其中,所述获取原始图像数据,包括:获取原视频流中的所述原始图像数据。
246.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
247.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
248.1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
249.2、本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
250.本技术虽然以较佳实施例公开如上,但其并不是用来限定本技术,任何本领域技术人员在不脱离本技术的精神和范围内,都可以做出可能的变动和修改,因此本技术的保护范围应当以本技术权利要求所界定的范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献