CN116979971A - 数据编码、解码方法、装置、计算机设备和存储介质 - Google Patents
数据编码、解码方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116979971A CN116979971A CN202310549379.0A CN202310549379A CN116979971A CN 116979971 A CN116979971 A CN 116979971A CN 202310549379 A CN202310549379 A CN 202310549379A CN 116979971 A CN116979971 A CN 116979971A
- Authority
- CN
- China
- Prior art keywords
- data
- characteristic
- deviation degree
- feature
- value
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 208
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 238000013139 quantization Methods 0.000 claims abstract description 224
- 238000012216 screening Methods 0.000 claims abstract description 149
- 238000012512 characterization method Methods 0.000 claims abstract description 92
- 238000012545 processing Methods 0.000 claims abstract description 67
- 230000000875 corresponding effect Effects 0.000 claims description 197
- 230000008569 process Effects 0.000 claims description 99
- 238000009826 distribution Methods 0.000 claims description 47
- 238000010586 diagram Methods 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 37
- 230000002596 correlated effect Effects 0.000 claims description 18
- 238000007667 floating Methods 0.000 claims description 12
- 238000011084 recovery Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 28
- 238000013473 artificial intelligence Methods 0.000 description 11
- 238000005315 distribution function Methods 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 239000013598 vector Substances 0.000 description 9
- 230000001133 acceleration Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 5
- 238000007906 compression Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013179 statistical model Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000005549 size reduction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请涉及数据编码、解码方法、装置、计算机设备和存储介质。其中数据编码方法包括:获取特征数据的辅助编码信息,根据辅助编码信息确定特征数据所包括的各特征元素各自对应的偏离程度表征信息;分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值;从特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素;针对筛选获得的每个特征元素,基于所针对的特征元素对应的偏离程度量化值对所针对的特征元素进行熵编码,获得所针对的特征元素对应的编码数据;根据编码数据,确定特征数据的编码数据流。采用本方法可以提高数据编码效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据编码方法、装置、计算机设备、存储介质和计算机程序产品,以及一种数据解码方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,出现了数据编解码技术,通过编码可以将数据进行压缩,而通过解码可以对压缩的数据进行还原。数据编解码可以广泛应用于各种场景,尤其是跨平台数据传输场景中,例如视频或语音聊天、和视频或语音会议等实时会话应用。
在数据编码过程中,经常需要进行熵编码和熵解码,熵编码目的是根据输入的特征数据估计其编码所需的比特数,熵编码通常基于统计模型来实现的,它会对编码数据进行分析和建模,以便在熵编码过程中尽可能减少所需的比特数,熵解码是熵编码的逆过程,然而相关技术中熵编码和熵解码过程的复杂度高,导致数据编解码效率低下。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数据编码效率的数据编码方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,以及一种能够提高数据解码效率的数据编码方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
一方面,本申请提供了一种数据编码方法。所述方法包括:
获取特征数据的辅助编码信息,根据所述辅助编码信息确定所述特征数据所包括的各特征元素各自对应的偏离程度表征信息;所述偏离程度表征信息表征对应的特征元素相对于所述特征数据的整体分布的偏离程度;
分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值;筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大;
从所述特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素;
针对筛选获得的每个特征元素,基于所针对的特征元素对应的偏离程度量化值对所针对的特征元素进行熵编码,获得所针对的特征元素对应的编码数据;
根据所述编码数据,确定所述特征数据的编码数据流。
另一方面,本申请还提供了一种数据编码装置。所述装置包括:
表征信息确定模块,用于获取特征数据的辅助编码信息,根据所述辅助编码信息确定所述特征数据所包括的各特征元素各自对应的偏离程度表征信息;所述偏离程度表征信息表征对应的特征元素相对于所述特征数据的整体分布的偏离程度;
量化值筛选模块,用于分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值;筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大;
特征元素筛选模块,用于从所述特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素;
熵编码模块,用于针对筛选获得的每个特征元素,基于所针对的特征元素对应的偏离程度量化值对所针对的特征元素进行熵编码,获得所针对的特征元素对应的编码数据;
编码数据流确定模块,用于根据所述编码数据,确定所述特征数据的编码数据流。
另一方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述数据编码方法的步骤。
另一方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据编码方法的步骤。
另一方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据编码方法的步骤。
上述数据编码方法、装置、计算机设备、存储介质和计算机程序产品,通过获取特征数据的辅助编码信息,根据辅助编码信息确定特征数据所包括的各特征元素各自对应的偏离程度表征信息,分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值,筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大从特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素,针对筛选获得的每个特征元素,基于所针对的特征元素对应的偏离程度量化值对所针对的特征元素进行熵编码,获得所针对的特征元素对应的编码数据,进而可以根据编码数据可以确定特征数据的编码数据流,由于在熵编码的过程中,可以按照预设筛选条件筛选所表征的偏离程度较大的偏离程度量化值,并根据筛选出的偏离程度量化值筛选特征元素,仅针对筛选出的特征元素进行熵编码,跳过未筛选出的特征元素的熵编码过程,从而可以显著减少需执行熵编码的特征元素个数,大大降低熵编码的复杂度,显著提高了数据编码效率。
另一方面,本申请提供了一种数据解码方法。所述方法包括:
获取编码数据流相对应的辅助编码信息;所述编码数据流是根据所述辅助编码信息对特征数据的一部分特征元素进行编码获得的;
根据所述辅助编码信息确定所述特征数据所包括的各特征元素各自对应的偏离程度表征信息;所述偏离程度表征信息表征对应的特征元素相对于所述特征数据的整体分布的偏离程度;
分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值;筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大;
基于所述筛选出的偏离程度量化值对所述编码数据流进行熵解码,获得相应的特征元素;
确定构成所述特征数据的未进行熵编码的特征元素所处位置的替代元素;
将熵解码获得的所述特征元素和所述替代元素合并,获得恢复的特征数据。
另一方面,本申请还提供了一种数据解码装置。所述装置包括:
辅助编码信息获取模块,用于获取编码数据流相对应的辅助编码信息;所述编码数据流是根据所述辅助编码信息对特征数据的一部分特征元素进行编码获得的;
表征信息确定模块,用于根据所述辅助编码信息确定所述特征数据所包括的各特征元素各自对应的偏离程度表征信息;所述偏离程度表征信息表征对应的特征元素相对于所述特征数据的整体分布的偏离程度;
量化值筛选模块,用于分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值;筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大;
熵解码模块,用于基于所述筛选出的偏离程度量化值对所述编码数据流进行熵解码,获得相应的特征元素;确定构成所述特征数据的未进行熵编码的特征元素所处位置的替代元素;
特征数据恢复模块,用于将熵解码获得的所述特征元素和所述替代元素合并,获得恢复的特征数据。
另一方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述数据解码方法的步骤。
另一方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据解码方法的步骤。
另一方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据解码方法的步骤。
上述数据解码方法、装置、计算机设备、存储介质和计算机程序产品,通过获取编码数据流相对应的辅助编码信息,根据辅助编码信息确定特征数据所包括的各特征元素各自对应的偏离程度表征信息,分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值,筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大,基于筛选出的偏离程度量化值对编码数据流进行熵解码,获得相应的特征元素,确定构成特征数据的未进行熵编码的特征元素所处位置的替代元素,将熵解码获得的特征元素和替代元素合并,获得恢复的特征数据,在解码过程中,由于可以筛选出所表征的偏离程度较大的偏离程度量化值,仅基于筛选出的偏离程度量化值进行熵解码,可以仅针对部分特征元素进行熵解码,大大降低熵编码的复杂度,显著提高了数据解码效率,并且由于筛选过程是按照预设筛选条件对量化处理获得偏离程度量化值进行筛选,量化处理过程中对偏离程度表征信息进行了离散化,可以保证筛选出的偏离程度量化值和编码过程中筛选出的偏离程度量化值一致,从而可以确定恢复的特征数据的准确性。
附图说明
图1为一些实施例中数据编码方法及数据解码方法的应用环境图;
图2为一些实施例中数据编码方法的流程示意图;
图3为另一些实施例中数据编码方法的流程示意图;
图4为另一些实施例中数据解码方法的流程示意图;
图5为一些实施例中视频编解码的整体过程示意图;
图6为一些实施例中编解码模型的框架图;
图7为一些实施例中熵编码模块的流程示意图;
图8为一些实施例中编码端的编码流程示意图;
图9为一些实施例中编码端的解码流程示意图;
图10为一些实施例中编码端的解码流程示意图;
图11为一些实施例中不同阈值情况下的对比结果示意图;
图12为一些实施例中数据编码装置的结构框图;
图13为一些实施例中数据解码装置的结构框图;
图14为一些实施例中计算机设备的内部结构图;
图15为一些实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数据编码方法、数据解码方法涉及人工智能的机器学习、计算机视觉、语音技术等技术,其中:
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习、自动驾驶、智慧交通等几大方向。
计算机视觉技术(Computer Vision,CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建、自动驾驶、智慧交通等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
语音技术(Speech Technology)的关键技术有自动语音识别技术和语音合成技术以及声纹识别技术。让计算机能听、能看、能说、能感觉,是未来人机交互的发展方向,其中语音成为未来最被看好的人机交互方式之一。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
本申请实施例提供的数据编码方法和数据解码方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以单独设置,可以集成在服务器104上,也可以放在云上或其他服务器上。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。
本申请实施例提供的数据编码方法可以由编码端执行,编码端可以是图1中的服务器104或者终端102,在编码过程中,编码端获取特征数据的辅助编码信息,根据辅助编码信息确定特征数据所包括的各特征元素各自对应的偏离程度表征信息,分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值,从特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素,针对筛选获得的每个特征元素,基于所针对的特征元素对应的偏离程度量化值对所针对的特征元素进行熵编码,获得所针对的特征元素对应的编码数据,根据编码数据,确定特征数据的编码数据流。
本申请实施例提供的数据编码方法可以由解码端执行,解码端可以是图1中的服务器104或者终端102,在解码过程中,解码端获取编码数据流相对应的辅助编码信息,编码数据流是根据辅助编码信息对特征数据的一部分特征元素进行编码获得的,解码端进一步根据辅助编码信息确定特征数据所包括的各特征元素各自对应的偏离程度表征信息;偏离程度表征信息表征对应的特征元素相对于特征数据的整体分布的偏离程度,分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值;筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大,基于筛选出的偏离程度量化值对编码数据流进行熵解码,获得相应的特征元素,确定构成特征数据的未进行熵编码的特征元素所处位置的替代元素,将熵解码获得的特征元素和替代元素合并,获得恢复的特征数据。
在一些实施例中,如图2所示,提供了一种数据编码方法,该方法由编码端执行,编码端可以是图1中的服务器104或者终端102,在本申请实施例中,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,获取特征数据的辅助编码信息,根据辅助编码信息确定特征数据所包括的各特征元素各自对应的偏离程度表征信息。
其中,特征数据指的是对原始数据进行前置编码得到的数据,原始数据可以视频帧数据或者图像数据,比如原始视频帧、原始图像、视频帧的运动估计数据、视频帧的残差补偿数据,相应的特征数据为特征图,原始数据还可以是音频数据,相应的特征数据可以是音频特征变量,原始数据还可以是点云数据等,相应的特征数据可以是点云特征数据。前置编码包括变换、量化、逆变换等处理,可以是基于传统的数学方式实现,也可以基于深度学习神经网络实现。辅助编码信息指的是用于辅助编码过程的信息,即边信息(SideInformation),边信息可以是对特征数据进一步进行编码得到的特征信息,例如可以是将特征数据输入神经网络进一步提取得到的特征信息,边信息包含的特征元素的个数比特征数据的特征元素少。偏离程度表征信息表征对应的特征元素相对于特征数据的整体分布的偏离程度,偏离程度表征信息可以是具体的数值并且与偏离程度正相关,偏离程度表征信息例如可以是特征元素的概率分布的尺度参数,尺度参数具体可以是方差或者标准差。
具体地,服务器可以获取特征数据,对特征数据进行降低特征维度的超先验编码,得到特征数据的辅助编码信息,然后根据辅助编码信息确定特征数据所包括的各特征元素各自对应的偏离程度表征信息。
步骤204,分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值;筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大。
其中,量化处理指的是对偏离程度表征信息进行离散化的过程。根据辅助编码信息确定的偏离程度表征信息为浮点数,浮点数为连续区间内的数值,在不同的计算环境中具有不确定性,因此需要对偏离程度表征信息进行量化处理。预设筛选条件可以根据需要进行设置。可选的,预设筛选条件可以为要求偏离程度量化值超过预设量化阈值;可选的,预设筛选条件还可以为要求偏离程度量化值为按照从小到大排序时,排列在前N;可选的,预设筛选条件还可以为要求偏离程度量化值为所有偏离程度量化值中数值最大的N%比例的数据。筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大,而偏离程度量化值与所表征的偏离程度正相关,即筛选出的偏离程度量化值比未筛选出的偏离程度量化值更大。
具体地,服务器可以确定量化步长,根据量化步长对各偏离程度表征信息进行量化处理,得到各偏离程度表征信息各自对应的偏离程度量化值。
考虑到在编码过程中,数据帧与数据帧之间存在大量冗余信息,因此在特征数据的整体分布中,大部分特征元素是聚集分布的,如果一个特征元素的偏离程度较小,那么这个特征元素很可能是冗余信息,由于冗余信息在编码过程中可以准确地进行预测,因此,在编码过程中可以跳过对这部分元素的编解码,进而可以在不影响编解码质量的前提下,实现熵编码和熵解码环节的大幅加速,以提升编解码的效率。偏离程度量化值是对偏离程度量化信息进行量化处理得到的,同样可以表征特征元素相对于特征数据的整体分布的偏离程度,因此服务器可以从各偏离程度量化值中,按照预设筛选条件进行筛选,以筛选出一部所表征的偏离程度较大的偏离程度量化值,以期望在熵编码的过程中,根据这部分偏离程度量化值筛选对非冗余信息对应的特征元素进行熵编码,并跳过对冗余信息的特征元素的熵编码。
在一些具体实施例中,当特征数据为对运动补偿数据进行前置编码获得时,针对未筛选出的偏离程度量化值,服务器还可以进行二次筛选,在二次筛选中,服务器还可以获取特征数据所属数据帧的运动估计数据,根据运动估计数据确定与未筛选出的偏离程度量化值中各偏离程度量化值各自对应的特征元素所处位置相匹配的运动估计值,进而可以从未筛选出的偏离程度量化值中,筛选相匹配的运动估计值大于运动估计阈值的偏离程度量化值。
在一些具体实施例中,各偏离程度表征信息为浮点数,各偏离程度量化值为整数。编码端在量化过程中将连续型的浮点数映射为离散型的整数,从而当解码端通过同样的方式进行量化时,可以获得相同的偏离程度量化值,解码端进一步可以按照与编码端相同的筛选方式筛选获得偏离程度量化值,从而编码端和解码端可以针对相同的特征元素进行熵编码和熵解码,避免编码过程和解码过程跨设备的情况下,偏离程度表征信息的计算结果不一致导致解码获得的重建数据不准确。
步骤206,从特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素。
其中,偏离程度量化值与特征元素之间的对应关系是根据特征元素的位置确定的,以特征数据为特征图为例,针对特征数据确定的偏离程度表征信息进行量化得到的偏离程度量化值可以是与特征图尺寸相同的图,从而针对该尺寸相同的图中每一个偏离程度量化值,在特征图中相同位置处的特征元素即为该所针对的偏离程度量化值对应的特征元素。
具体地,服务器可以从特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素,由于筛选出的偏离程度量化值只有一部分,因此筛选出的特征元素也只包括特征数据的部分特征元素,在接下来的熵编码过程中,服务器仅针对筛选出来的特征元素进行熵编码,跳过针对未筛选出的特征元素的熵编码。
步骤208,针对筛选获得的每个特征元素,基于所针对的特征元素对应的偏离程度量化值对所针对的特征元素进行熵编码,获得所针对的特征元素对应的编码数据。
具体地,本申请实施例中,熵编码采用算术编码实现,由于对原始的尺度参数进行了量化处理,在进行算术编码时,针对筛选获得的每个特征元素,服务器可以基于所针对的特征元素对应的偏离程度量化值重新确定尺度参数,根据尺度参数确定算术编码所需的概率分布函数,从而通过概率分布函数将特征元素压缩为尽可能少的字节流,即获得特征元素对应的编码数据。
在具体应用中,根据偏离程度量化值重新确定尺度参数可以通过公式(1)实现,其中,scaleQS为量化步长,scalemax为偏离程度表征信息的最大取值,具体可以为64.0,scalemin为偏离程度表征信息的最小取值,具体可以为0.11,L为最大量化等级,具体可以为256,index为偏离程度量化值,取值范围为0-255。
scale_q=exp (log (scalemin)+ scaleQS×index) 公式(1)
可选地,服务器还可以通过以上公式(1)构建偏离程度量化值与尺度参数之间的映射关系表,如:index=0对应scale_q=0.1100,index=1对应scale_q=0.1128。从而在筛选获得偏离程度量化值后,可以直接查找映射关系表获得尺度参数scale_q,从而可以提升算术编码效率。
步骤210,根据编码数据,确定特征数据的编码数据流。
具体地,服务器可以将获得的编码数据直接作为特征数据的编码数据流,或者对编码数据进一步处理后,将进一步处理后的特征数据作为特征数据的编码数据流。
在具体应用中,服务器可以将编码数据流发送至解码端,解码端可以基于编码数据流进行解码,以重建得到特征数据所属的数据帧。可选地,服务器可以将辅助编码信息编入特征数据的编码数据流中,一起发送至解码端。
上述数据编码方法中,通过获取特征数据的辅助编码信息,根据辅助编码信息确定特征数据所包括的各特征元素各自对应的偏离程度表征信息,分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值,筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大从特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素,针对筛选获得的每个特征元素,基于所针对的特征元素对应的偏离程度量化值对所针对的特征元素进行熵编码,获得所针对的特征元素对应的编码数据,进而可以根据编码数据可以确定特征数据的编码数据流,由于在熵编码的过程中,可以按照预设筛选条件筛选所表征的偏离程度较大的偏离程度量化值,并根据筛选出的偏离程度量化值筛选特征元素,仅针对筛选出的特征元素进行熵编码,跳过未筛选出的特征元素的熵编码过程,从而可以显著减少需执行熵编码的特征元素个数,大大降低熵编码的复杂度,显著提高了数据编码效率。
在一些实施例中,从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值,包括:将量化处理获得的各偏离程度量化值分别与预设量化阈值进行比较;从各偏离程度量化值中,筛选比较结果指示超过预设量化阈值的偏离程度量化值,获得一部分偏离程度量化值。
本实施例中,预设筛选条件为要求偏离程度量化值超过预设量化阈值。预设量化阈值可以根据需要进行设定和调整,可以理解的是,预设量化阈值设定的越大,在熵编码过程中跳过的特征元素就越多,熵编码环节加速效果越好,编码效率提升的越显著。当然,不同的预设量化阈值对解码过程中的重建效果也有一定的影响,因此,可以根据实际需要进行权衡。
具体地,在偏离程度量化值筛选过程中,服务器可以将量化处理获得的各偏离程度量化值分别与预设量化阈值进行比较,如果某个偏离程度量化值的比较结果指示该偏离程度量化值超过预设量化阈值,则将该偏离程度量化值筛选出来,如果某个偏离程度量化值的比较结果指示该偏离程度量化值不超过预设量化阈值,则将该偏离程度量化值过滤掉,最终可以筛选获得一部分偏离程度量化值,并且这部分偏离程度量化值是大于未筛选出的偏离程度量化值的。
本实施例中,通过将量化处理获得的各偏离程度量化值分别与预设量化阈值进行比较,从各偏离程度量化值中,筛选比较结果指示超过预设量化阈值的偏离程度量化值,从而可以快速筛选获得偏离程度量化值,提高筛选效率,从而可以提高编码效率。
在一些实施例中,从特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素,包括:获取特征数据所属数据帧的运动估计数据,根据运动估计数据确定与一部分偏离程度量化值中各偏离程度量化值各自对应的特征元素所处位置相匹配的运动估计值;从一部分偏离程度量化值中,筛选相匹配的运动估计值大于运动估计阈值的偏离程度量化值;从特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素。
本实施例中,特征数据为视频帧数据对应的特征图,运动估计数据为进行运动估计得到的运动矢量图,运动估计数据的运动估计值可以代表视频帧与视频帧之间的运动幅度大小,通常而言,运动估计值较大的位置处的像素包含了较为重要的信息,而运动估计值较大的位置处的像素通常为冗余信息,基于此,本实施例中还可以基于运动估计值对已经筛选获得的一部分偏离程度量化值进行二次筛选。
具体地,通过运动估计得到的矢量图与视频帧的原始尺寸是相同的,而特征数据相当于是进行了特征提取之后的特征图,比运动估计图的尺寸要小,因此在实际应用中,通过需要将运动估计得到的矢量图进行尺寸缩小,使之与特征图的尺寸一致,从而可以从尺寸缩小后的矢量图中确定筛选出的一部分偏离程度量化值中各偏离程度量化值各自对应的特征元素所处位置相匹配的运动估计值,在运动估计得到的矢量图中,每一个位置处有两个数值,分别为水平方向的x值以及数值方向的y值,运动估计值可以是这两个方向数值的统计值,例如可以将每一个位置处的x值和y值相加,得到该位置处的运动估计值,由于运动估计得到的矢量图与特征图尺寸一致,因此,对于特征图中每个像素,在矢量图中相同位置处的运动估计值即为位置相匹配的运动估计值,服务器可以从第一次筛选获得的一部分偏离程度量化值中,继续筛选相匹配的运动估计值大于运动估计阈值的偏离程度量化值,进一步地,服务器可以从特征图所包括的多个特征元素中,筛选与第二次筛选获得的各偏离程度量化值各自对应的特征元素。
可以理解的是,在视频编码过程中,原始数据可以是作为参考帧的视频帧、运动估计得到的矢量图以及运动补偿数据,而只有针对运动补偿数据的熵编码,才能采用本实施例提供的方法进行二次筛选。
上述实施例中,由于可以通过运动估计数据中的运动估计值进行二次筛选,可以避免第一次筛选过程中筛选到冗余信息对应的特征元素,从而可以在熵编码过程中跳过更多的特征元素,进一步降低熵编码的复杂度。
在一些实施例中,分别对各偏离程度表征信息进行量化处理,包括:确定量化步长,量化步长与偏离程度表征信息的最大取值和最小取值之间的差值正相关,与针对量化处理设定的最大量化等级负相关;分别确定各偏离程度表征信息与最小取值之间的差值;分别将各偏离程度表征信息各自对应的差值对量化步长进行取整运算,获得各偏离程度表征信息各自对应的偏离程度量化值。
具体地,量化步长可以通过以下公式(2)进行计算,其中,scaleQS为量化步长。
偏离程度量化值可以通过以下公式(3)进行计算,其中,index为偏离程度量化值,取值范围为0-255之间的整数。
本实施例中,通过确定量化步长,分别确定各偏离程度表征信息与最小取值之间的差值,分别将各偏离程度表征信息各自对应的差值对量化步长进行取整运算,获得各偏离程度表征信息各自对应的偏离程度量化值,可以将各偏离程度表征信息进行较为准确地量化。
在一些实施例中,特征数据为特征图;方法还包括:从特征图所包括的多个特征元素中,确定与未筛选出的各偏离程度量化值各自对应的特征元素;根据未筛选出的各偏离程度量化值各自对应的特征元素在特征图中的位置,对未筛选出的各偏离程度量化值各自对应的特征元素进行区域划分;针对划分出每个特征元素区域,选取处于所针对的特征元素区域的中心位置的至少一个特征元素作为区域代表元素;基于代表特征元素的偏离程度量化值对代表特征元素进行熵编码,获得特征数据的附加编码数据。
其中,区域代表元素指的是用于对所在区域中的其他元素进行代表的特征元素。区域代表元素可以是一个或者多个,多个指的是至少两个。
具体地,考虑到视频帧与视频帧之间的冗余信息通常有一定的聚集性,也就是说未筛选出的各偏离程度量化值各自对应的特征元素在特征图中是聚集在一定区域内的,因此,在编码过程中还可以对未筛选出的各偏离程度量化值各自对应的特征元素进行区域划分,划分过程具体可以是将特征元素之间的距离小于预设阈值的划分为一个区域,针对划分出每个特征元素区域,选取处于所针对的特征元素区域的中心位置的至少一个特征元素作为区域代表元素,基于代表特征元素的偏离程度量化值对代表特征元素进行熵编码,获得特征数据的附加编码数据,进而可以将该附加编码数据编入特征数据的编码数据流中,与编码数据流一起参与解码流程。
上述实施例中,通过选项区域代表元素,对区域代表元素进行熵编码,可以在保证跳过部分特征元素的熵编码的情况下,尽可能地将更多信息编入编码数据流中,以进一步确保解码重建所得到图像的准确性。
在一些实施例中,获取特征数据的辅助编码信息,根据辅助编码信息确定特征数据所包括的各特征元素各自对应的偏离程度表征信息,包括:获取特征数据,对特征数据进行降低特征维度的超先验编码,得到特征数据的辅助编码信息;利用辅助编码信息对特征数据所包括的各特征元素的概率分布进行估计,获得各特征元素各自对应的偏离程度表征信息。
本实施例中,熵编码过程可以通过AI模型实现的。在具体应用中,这里的AI模型可以是VAE(Variational AutoEncoder,即变分自编码器)模型,其中,熵模型即为VAE隐层表示的先验,而辅助编码信息用于辅助熵模型编码,即为先验的先验,因此称为超先验编码。
具体地,服务器获取到特征数据后,可以将特征数据输入到神经网络中,通过神经网络进行降低特征维度的超先验编码,得到特征数据的辅助编码信息,将辅助编码信息作为先验参数输入到熵模型中,利用熵模型对各特征元素的概率分布进行估计,对概率分布进行估计的过程相当于进行了超先验解码,获得特征数据所包括的各特征元素各自对应的偏离程度表征信息以及各特征元素各自对应的预测特征值,其中,偏离程度表征信息具体可以是特征元素概率分布的方差,预测特征值具体可以是特征元素概率分布的均值。
上述实施例中,通过超先验编码获得辅助编码信息,利用辅助编码信息对各特征元素的概率分布进行估计获得偏离程度表征信息,可以捕获隐层表示的空间相关性,使得得到的偏离程度表征信息更加准确。
在一些实施例中,特征数据与当前数据帧对应;方法还包括:获取前一帧数据帧的编码数据流,基于前一帧数据帧的编码数据流重建得到前一帧数据帧;基于重建得到的前一帧数据帧对当前数据帧进行运动估计,获得当前数据帧的运动估计数据;基于运动估计数据对当前数据帧进行残差补偿估计,获得当前数据帧的残差补偿数据;将运动估计数据和残差补偿数据,作为当前数据帧对应的特征数据。
其中,前一帧数据帧的编码数据流是通过对前一帧数据帧的特征数据进行编码处理得到的。具体步骤包括:获取前一帧数据帧的特征数据的辅助编码信息,根据辅助编码信息确定特征数据所包括的各特征元素各自对应的偏离程度表征信息;分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值;筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大;从特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素;针对筛选获得的每个特征元素,基于所针对的特征元素对应的偏离程度量化值对所针对的特征元素进行熵编码,获得所针对的特征元素对应的编码数据;根据编码数据,确定前一帧数据帧的编码数据流。
具体地,在需要针对当前数据帧进行编码时,服务器可以获取前一帧数据帧的编码数据流,基于前一帧数据帧的编码数据流重建得到前一帧数据帧,基于重建得到的前一帧数据帧对当前数据帧进行运动估计,获得当前数据帧的运动估计数据,基于运动估计数据对当前数据帧进行残差补偿估计,获得当前数据帧的残差补偿数据,所获得的运动估计数据和残差补偿数据即当前数据帧对应的原始数据,服务器对这些原始数据进行前置编码可以获得特征数据,在获得特征数据后,服务器可以通过执行前文实施例的步骤进行熵编码,以获得当前数据帧的编码数据流。
上述实施例中,获取前一帧数据帧的编码数据流,基于前一帧数据帧的编码数据流解码重建得到前一帧数据帧,在重建得到的数据帧的基础上对当前数据帧进行编码,可以有效保证解码端解码重建的数据与编码端一致。
在一些实施例中,基于前一帧数据帧的编码数据流重建得到前一帧数据帧,包括:基于针对前一数据帧的特征数据进行编码过程中筛选出的偏离程度量化值对前一帧数据帧的编码数据流进行熵解码,获得相应的特征元素;确定构成前一数据帧的特征数据的、未进行熵编码的特征元素所处位置处的替代元素;将熵解码获得的特征元素和替代元素合并,获得针对前一数据帧恢复的特征数据;基于针对前一数据帧恢复的特征数据进行数据重建,获得重建的前一帧数据帧。
具体地,在对前一帧数据帧进行编码的过程中,服务器可以筛选出一部分偏离程度量化值,进而仅针对这一部分偏离程度量化值对应的特征元素进行熵编码,针对筛选出的偏离程度量化值以及未筛选出的偏离程度量化值服务器还可以分别进行保存,在编码端解码重建前一帧数据帧的过程中,为保证重建结果的准确性,可以基于前一帧数据帧编码过程中所保存的偏离程度量化值确定熵解码所需的分布函数,进而基于确定的分布函数进行熵解码,可以获得相应的特征元素,所获得的特征元素即为对熵编码过程中所编码的特征元素进行恢复的数据,对于熵编码过程中未进行编码的特征元素,在解码过程中,无法通过熵解码获得,因此,在解码过程中,服务器可以根据未筛选出的偏离程度量化值对应的位置确定构成特征数据的未进行熵编码的特征元素所处位置处的替代元素,进而可以将熵解码获得的特征元素和替代元素合并,获得针对前一数据帧恢复的特征数据,最后基于针对前一数据帧恢复的特征数据进行数据重建,获得重建的前一帧数据帧,这里的数据重建指的是上文前置编码的逆过程。
上述实施例中,在编码端,使用基于针对前一帧数据帧的特征数据进行编码过程中筛选出的偏离程度量化值对前一帧数据帧的编码数据流进行熵解码,获得相应的特征元素,确保了编码过程和解码过程针对相同的特征元素进行熵编码和熵解码,从而可以确保解码重建的前一帧数据帧的准确性。
在一些具体实施例中,如图3所示,提供了一种数据编码方法,该方法由编码端执行,编码端可以是图1中的服务器104或者终端102,在本申请实施例中,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤302,基于针对前一帧数据帧的特征数据进行编码过程中筛选出的偏离程度量化值对前一帧数据帧的编码数据流进行熵解码,获得相应的特征元素。
步骤304,确定构成前一数据帧的特征数据的、未进行熵编码的特征元素所处位置处的替代元素。
步骤306,将熵解码获得的特征元素和替代元素合并,获得针对前一数据帧恢复的特征数据。
步骤308,基于针对前一数据帧恢复的特征数据进行数据重建,获得重建的前一帧数据帧。
步骤310,基于重建得到的前一帧数据帧对当前数据帧进行运动估计,获得当前数据帧的运动估计数据。
步骤312,基于运动估计数据对当前数据帧进行残差补偿估计,获得当前数据帧的残差补偿数据,对残差补偿数据进行前置编码获得特征数据。
步骤314,对特征数据进行降低特征维度的超先验编码,得到特征数据的辅助编码信息。
步骤316,利用辅助编码信息对特征数据所包括的各特征元素的概率分布进行估计,获得各特征元素各自对应的偏离程度表征信息。
步骤318,确定量化步长,分别确定各偏离程度表征信息与偏离程度表征信息的最小取值之间的差值。
其中,量化步长与偏离程度表征信息的最大取值和最小取值之间的差值正相关,与针对量化处理设定的最大量化等级负相关。
步骤320,分别将各偏离程度表征信息各自对应的差值对量化步长进行取整运算,获得各偏离程度表征信息各自对应的偏离程度量化值。
步骤322,将量化处理获得的各偏离程度量化值分别与预设量化阈值进行比较,筛选比较结果指示超过预设量化阈值的偏离程度量化值,获得一部分偏离程度量化值。
步骤324,根据当前数据帧的运动估计数据确定与筛选获得的一部分偏离程度量化值中各偏离程度量化值各自对应的特征元素所处位置相匹配的运动估计值。
步骤326,从筛选获得的一部分偏离程度量化值中,筛选相匹配的运动估计值大于运动估计阈值的偏离程度量化值。
步骤328,从特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素。
步骤330,针对筛选获得的每个特征元素,基于所针对的特征元素对应的偏离程度量化值对所针对的特征元素进行熵编码,获得所针对的特征元素对应的编码数据,根据编码数据,确定特征数据的编码数据流。
需要说明的是,在实际应用中,服务器还需要对运动估计数据进行前置编码获得特征数据,在获得运动估计数据对应的特征数据后,服务器进一步可以通过步骤314至步骤322筛选获得偏离程度量化值,然后通过步骤328至步骤330获得编码数据流。
上述实施例中,由于在熵编码的过程中,可以按照预设筛选条件筛选所表征的偏离程度较大的偏离程度量化值,并根据筛选出的偏离程度量化值筛选特征元素,仅针对筛选出的特征元素进行熵编码,跳过未筛选出的特征元素的熵编码过程,从而可以显著减少需执行熵编码的特征元素个数,大大降低熵编码的复杂度,显著提高了数据编码效率。
在一些实施例中,如图4所示,提供了一种数据解码方法,该方法由解码端执行,解码端可以是图1中的服务器104或者终端102,在本申请实施例中,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤402,获取编码数据流相对应的辅助编码信息。
其中,辅助编码信息指的是用于辅助编码过程的信息,即边信息(SideInformation),边信息可以是对特征数据进一步进行编码得到的特征信息,例如可以是将特征数据输入神经网络进一步提取得到的特征信息,边信息包含的特征元素的个数比特征数据的特征元素少。编码数据流是根据辅助编码信息对特征数据的一部分特征元素进行编码获得的。具体编码过程可以参考上文实施例,在此不赘述。
具体地,编码端在进行编码过程中可以将辅助编码信息编码至编码数据流中,从而终端在接收到编码数据流后,可以从接收到的编码数据流中获取到辅助编码信息,进而可以通过辅助编码信息实现数据解码。
步骤404,根据辅助编码信息确定特征数据所包括的各特征元素各自对应的偏离程度表征信息;偏离程度表征信息表征对应的特征元素相对于特征数据的整体分布的偏离程度。
其中,偏离程度表征信息表征对应的特征元素相对于特征数据的整体分布的偏离程度,偏离程度表征信息可以是具体的数值并且与偏离程度正相关,偏离程度表征信息例如可以是特征元素的概率分布的尺度参数,尺度参数具体可以是方差或者标准差。
具体地,终端可以对利用辅助编码信息对特征数据所包括的各特征元素的概率分布进行估计,获得各特征元素各自对应的偏离程度表征信息,同时还可以获得各特征元素各自对应的预测特征值。
步骤406,分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值;筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大。
其中,量化处理指的是对偏离程度表征信息进行离散化的过程。根据辅助编码信息确定的偏离程度表征信息为浮点数,浮点数为连续区间内的数值,在不同的计算环境中具有不确定性,因此需要对偏离程度表征信息进行量化处理。预设筛选条件可以根据需要进行设置。可选的,预设筛选条件可以为要求偏离程度量化值超过预设量化阈值;可选的,预设筛选条件还可以为要求偏离程度量化值为按照从小到大排序时,排列在前N;可选的,预设筛选条件还可以为要求偏离程度量化值为所有偏离程度量化值中数值最大的N%比例的数据。筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大,而偏离程度量化值与所表征的偏离程度正相关,即筛选出的偏离程度量化值比未筛选出的偏离程度量化值更大。
具体地,终端可以确定量化步长,根据量化步长对各偏离程度表征信息进行量化处理,得到各偏离程度表征信息各自对应的偏离程度量化值。由于在数据编码过程中,通过筛选偏离程度量化值,实现了仅针对部分特征元素的熵编码,即有一部分特征元素在熵编码的过程中进行了跳过,因此在解码端需要按照与编码端相同的预设筛选条件筛选出一部分偏离程度量化值。
在一些具体实施例中,预设筛选条件为要求偏离程度量化值超过预设量化阈值;从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值,包括:将量化处理获得的各偏离程度量化值分别与预设量化阈值进行比较;从各偏离程度量化值中,筛选比较结果指示超过预设量化阈值的偏离程度量化值,获得一部分偏离程度量化值。
在一些具体实施例中,当特征数据为对运动补偿数据进行前置编码获得时,针对未筛选出的偏离程度量化值,终端还可以进行二次筛选,在二次筛选中,终端还可以获取特征数据所属数据帧的运动估计数据,根据运动估计数据确定与未筛选出的偏离程度量化值中各偏离程度量化值各自对应的特征元素所处位置相匹配的运动估计值,进而可以从未筛选出的偏离程度量化值中,筛选相匹配的运动估计值大于运动估计阈值的偏离程度量化值。
在一些具体实施例中,各偏离程度表征信息为浮点数,各偏离程度量化值为整数。编码端在量化过程中将连续型的浮点数映射为离散型的整数,从而当解码端通过同样的方式进行量化时,可以获得相同的偏离程度量化值,解码端进一步可以按照与编码端相同的方式筛选获得偏离程度量化值,从而编码端和解码端可以针对相同的特征元素进行熵编码和熵解码,避免编码过程和解码过程跨设备的情况下,偏离程度表征信息的计算结果不一致导致解码获得的重建数据不准确。
步骤408,基于筛选出的偏离程度量化值对编码数据流进行熵解码,获得相应的特征元素。
具体地,终端可以基于筛选出的偏离程度量化值确定尺度参数,根据尺度参数确定算术编码所需的概率分布函数,进而根据概率分布函数进行算术解码,获得相应的特征元素。
在具体应用中,终端可以通过上文公式(1)构建偏离程度量化值与尺度参数之间的映射关系表,从而在筛选获得偏离程度量化值后,可以查找映射关系表获得尺度参数scale_q,根据尺度参数确定算术编码所需的概率分布函数。
步骤410,确定构成特征数据的未进行熵编码的特征元素所处位置的替代元素。
步骤412,将熵解码获得的特征元素和替代元素合并,获得恢复的特征数据。
具体地,在解码过程中,终端可以根据未筛选出的偏离程度量化值对应的位置确定构成特征数据的未进行熵编码的特征元素所处位置处的替代元素,进一步可以将熵解码获得的特征元素和替代元素合并,获得恢复的特征数据,最后恢复的特征数据进行数据重建,获得重建的数据帧,这里的数据重建指的是上文前置编码的逆过程。
上述数据解码方法,通过获取编码数据流相对应的辅助编码信息,根据辅助编码信息确定特征数据所包括的各特征元素各自对应的偏离程度表征信息,分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值,筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大,基于筛选出的偏离程度量化值对编码数据流进行熵解码,获得相应的特征元素,确定构成特征数据的未进行熵编码的特征元素所处位置的替代元素,将熵解码获得的特征元素和替代元素合并,获得恢复的特征数据,在解码过程中,由于可以筛选出所表征的偏离程度较大的偏离程度量化值,仅基于筛选出的偏离程度量化值进行熵解码,可以仅针对部分特征元素进行熵解码,大大降低熵编码的复杂度,显著提高了数据解码效率,并且由于筛选过程是按照预设筛选条件对量化处理获得偏离程度量化值进行筛选,量化处理过程中对偏离程度表征信息进行了离散化,可以保证筛选出的偏离程度量化值和编码过程中筛选出的偏离程度量化值一致,从而可以确定恢复的特征数据的准确性。
在一些实施例中,分别对各偏离程度表征信息进行量化处理,包括:确定量化步长,量化步长与偏离程度表征信息的最大取值与最小取值之间的差值正相关,与针对量化处理设定的量化等级负相关;分别确定各偏离程度表征信息与最小取值之间的差值;分别将各偏离程度表征信息各自对应的差值对量化步长进行取整运算,获得各偏离程度表征信息各自对应的偏离程度量化值。
由上文实施例可知,对于未进行熵编码的特征元素,需要确定替代元素,以下实施例提供两种不同的替代元素确定方式。
在一些实施例中,量化处理获得的各偏离程度量化值与特征数据中各特征元素各自的位置一一对应,辅助编码信息是通过对特征数据进行超先验编码获得的;确定构成特征数据的未进行熵编码的特征元素的位置处的替代元素,包括:获取利用辅助编码信息对各特征元素的概率分布进行估计获得的预测特征值;根据未筛选出的各偏离程度量化值各自对应的位置,分别从各预测特征值筛选位置相匹配的预测特征值;根据筛选出的各预测特征值,确定构成特征数据的未进行熵编码的特征元素所处位置处的替代元素。
本实施例中,终端在利用辅助编码信息对各特征元素的概率分布进行估计时,还可以获得预测特征值,该预测特征值具体可以是特征元素概率分布的均值,由于熵编码过程中的跳过的特征元素基本上都是冗余信息对应的特征元素,而这些特征元素对应的预测特征值通常较为准确,因此在解码过程中,对于未进行熵编码的特征元素,可以用概率分布估计所获得的预测特征值进行替代,基于此,终端在获取到预测特征值后,可以将未筛选出的各偏离程度量化值各自对应的位置,确定为未进行熵编码的特征元素所处位置,根据未进行熵编码的各特征元素所处位置,分别从各预测特征值筛选位置相匹配的预测特征值,根据筛选出的各预测特征值,确定构成特征数据的未进行熵编码的特征元素所处位置处的替代元素。
以特征数据为特征图为例进行举例说明,利用辅助编码信息对各特征元素的概率分布进行估计可以获得预测特征图,对于未筛选出的各偏离程度量化值,将其在所在图中的位置,确定为未进行熵编码的特征元素所处位置,进而可以从获得的预测特征图中确定处于相同位置的预测特征值,将该预测特征值作为特征图中同一位置处特征元素的替代元素。
上述实施例中,考虑到编码过程被跳过的元素通常确定性较高,可以使用概率分布估计的预测特征值作为真实值进行替代,可以减少编解码过程的毛刺现象。
在一些实施例中,特征数据为特征图,量化处理获得的各偏离程度量化值与特征图中各特征元素各自的位置一一对应;确定构成特征数据的未进行熵编码的特征元素所处位置的替代元素,包括:从编码数据流中获取特征图的附加编码数据,对附加编码数据进行熵解码,获得相应的区域代表元素;将未筛选出的各偏离程度量化值各自对应的位置确定为未进行熵编码的特征元素所处位置,并基于未进行熵编码的特征元素所处位置进行区域划分;针对划分出的每个区域中未进行熵编码的每个特征元素所处位置,将位置处于所针对的区域中的区域代表元素作为所针对的位置的替代元素。
本实施例中,编码端在进行编码时,还可以将附加编码数据编码至编码数据流中,附加编码数据的确定方式可以参考上文实施例,在此不赘述。从而在解码过程中,终端可以从编码数据流中获取特征图的附加编码数据,对附加编码数据进行熵解码,获得相应的区域代表元素,考虑到在编码过程中,所筛选的进行熵编码的特征元素即筛选出的偏离程度量化值对应的特征元素,也就是说,未进行熵编码的特征元素即未筛选出的偏离程度量化值对应的特征元素,因此可以将未筛选出的各偏离程度量化值各自对应的位置确定为未进行熵编码的特征元素所处位置,并对未进行熵编码的特征元素所处位置按照与编码过程相同的方式进行区域划分,针对划分出的每个区域中未进行熵编码每个特征元素所处位置,将位置处于所针对的区域中的区域代表元素作为所针对的特征元素的替代元素。
上述实施例中,通过确定未进行熵编码的特征元素所处位置,并基于未进行熵编码的特征元素所处位置进行区域划分,针对划分出的每个区域中未进行熵编码的每个特征元素所处位置,将位置处于所针对的区域中的区域代表元素作为所针对的位置的替代元素,可以确定出较为准确的替代元素。
在一些具体实施例中,本申请还提供一种应用场景,在该应用场景中,本申请的数据编码方法和数据解码方法可以用于进行视频进行编解码,其中,终端可以安装有视频类应用程序,终端通过该视频类应用程序可以进行视频播放。参考图5,服务器作为编码端对原始视频中各视频帧进行数据编码获得编码数据流后发送至终端,终端作为解码端对编码数据流进行解码获得重建的视频帧,从而可以基于重建的视频帧进行视频播放。
继续参考图5,在本实施例中,编码端的编码以及解码端的解码均是基于视频编码模型实现,视频编码模型为AI模型。在视频编解码模型的编解码过程中,主要包括两个环节,分别为I帧编解码(帧内编码)和P帧编解码(帧间编码)。通常I帧编解码使用AI图像编解码算法实现,P帧编解码模型则需要针对帧间编码的特性进行设计,通常分为运动估计和残差补偿两个模块。这些模型的核心思想就是将原始的图像转换为一些需要传输的特征图,并通过熵编码模块减少特征图传输的字节量,从而极大的减小视频传输的字节大小。
在编码环节,对于I帧模型,将原始图像转换为待传输的特征图进行传输,而对P帧模型,通常是将原始图像转换为运动估计的特征图和残差补偿的特征图进行传输。在解码环节,I帧模型收到特征图后重建出I帧图像,P帧模型收到运动估计的特征图重建运动估计,作用于参考的I帧重建图像得到运动估计的P帧中间结果,最后再利用残差补偿的特征图重建残差补偿信息,作用于P帧中间结果,从而得到P帧的重建图像。
对于如何进行特征图的传输,AI视频编解码技术中通常采用熵编码估计进行实现。熵编码是一种常见的数据压缩技术,也是现代视频编解码技术中非常重要的一环。在视频编码中,熵编码通常用于压缩视频编码器中的残差数据、运动矢量和其他编码参数,以减少视频数据的存储空间和传输带宽。
熵编码估计模块是AI视频编解码中的一个关键模块,其目的是根据输入的编码数据估计其熵编码所需的比特数。这个模块通常是基于统计模型来实现的,它会对编码数据进行分析和建模,以便在熵编码过程中尽可能减少所需的比特数。常用的熵编码算法包括哈夫曼编码、算术编码等。以算术编码为例,在熵编码的过程,需要对每一个特征元素(可以理解成特征图中的每一个值)进行算术编码计算,而为了提高解码端的重建质量,特征图通常包含大量的特征元素,使用算术编码串行逐元素编码需要消耗大量的时间。
本申请实施例提供的数据编码和数据解码方法,可以实现算术编码加速。本申请实施例提供的数据编码和数据解码方法,通过将熵编码估计的scale值(即尺度参数)转换为index(即偏离程度量化值),index值主要体现该位置确定性的程度,对于index值较低的值,确定性非常高,可以将其跳过,从而减少真实编码的元素个数,(如原本算术编码需要编码10000个元素,而经过skip策略,只需要编码其中index值较大的2000个元素,则算术编码耗时会减少4/5),极大的提升算术编码的速度,在解码过程中可以使用熵编码模型估计的值作为跳过元素的真实值,可以有效减少编解码过程的毛刺现象。以下进行具体介绍:
参考图6,对于原始数据(可能是图像、运动估计、残差估计等),经过编码模块后,可以将原始数据进行第一阶段压缩,得到特征图;解码端获取得到恢复之后的特征图,经过解码模块可以得到重建后的数据。
对于如何传输特征图,则需要引入第二阶段的压缩,即熵编码模块,参考图7,首先对待编码特征图进行熵编码估计,得到每个特征元素对应的scale值,然后将scale量化为index,最后通过index查映射关系表得到分布函数,从而实现对待编码特征图的信息压缩。在这个过程中,由于待编码特征图中特征元素较多,如果不进行筛选跳过一部分不重要的特征元素,算术编码将需要消耗很长的计算时间。基于此,本申请实施例在具体实现中,可以根据实际需要,调整需要实际编码的量,在基本不影响编解码质量的前提下,实现熵编码环节的大幅加速,推进AI视频编解码算法的实时落地。编码时,根据index的特性,只编码部分更重要的部分,可以在跳过80%-95%计算的情况下,仍然保持模型的精度不下降,从而使得熵编码环节的编码耗时大幅降低。解码时,从字节流中解码得到重要部分的特征图,对于不重要的特征图部分,利用超先验解码得到的预测特征图进行替代,从而得到用于后续解码流程的真实解码特征图y_hat。各步骤详细说明如下:
参考图8,首先对编码端的编码流程进行介绍:
对于编解码模型中得到的特征图y,其为待编码特征图。通过超先验编码模块可以将带编码特征图编码得到超先验z(即辅助编码信息),超先验z也会使用一定的方式传输至解码端。在编码端,当得到超先验z后,需要对z进行超先验解码,得到对应待编码的特征图y的预测特征图means和预测概率分布scales,means和scales可以理解为对y概率分布的估计,其中,means中的各个值为y概率分布的均值,而scales为概率分布的方差,means和scales有助于在后续的熵编码环节进行更高压缩率的压缩。从超先验解码得到的概率分布scales,首先利用上文中公式(3)进行量化得到概率分布量化值indexes(即上文的偏离程度量化值)。
对于待编码特征图y和概率分布量化indexes,都是hxwxc的特征图,设置indexes阈值参数th,th的取值范围为0-255,对于index值超过th的位置(i,j,k),同时保留该位置的待编码特征值yi,j,k和量化index值indexi,j,k,从而形成真实编码特征图y1和真实编码indexes1,而对于index值小于或等于th的位置,则形成skip编码特征图y2和skip编码indexes2,其中,真实编码indexes1可以理解为与y1尺寸相同的特征图,而skip编码indexes2可以理解为与y2尺寸相同的特征图,即真实编码特征图y1记录了筛选获得的特征元素,真实编码indexes1中记录了筛选获得的各特征元素各自对应的偏离程度量化值,skip编码特征图y2记录了未筛选出的特征元素,skip编码indexes2记录了未筛选出的各特征元素各自对应的偏离程度量化值。
由于视频帧与帧之间存在较大的冗余信息,大部分位置都能较为准确的预测,预测较准的位置index值就会比较小,从而可以进行skip,选择不同的阈值th,可以跳过不同比例的index值,从而可以形成不同程度的加速效果。当然不同的阈值th也会影响最终的重建效果,需要有所权衡,在本申请实施例中,当skip比例在80%-95%之间时,该加速策略对重建效果都不会有较大的影响,实际阈值可以根据需要进行适当调整。
在熵编码模块,首先利用上文公式(1)构建一个构建偏离程度量化值与尺度参数之间的映射关系表,将该映射关系表作为概率分布函数查找表,对于预测得到的概率分布scales,其每个元素与y中的值一一对应,对于每个scale,可以根据上文公式(2)和公式(3)得到偏离程度量化值index,使用index可以从映射关系表中查到对应的scale_q值,由于引入了超先验编码获得预测特征图means,编码过程中可以通过预测特征图means将特征图中的特征元素转换为均值为0的概率分布,从而可以直接利用scale_q作为算术编码所需的概率分布函数,从而可以将y压缩为尽可能少的字节流,方便后续的传输。
参考图9,接着对编码端的解码流程进行介绍:
由于解码模块从完整的y_hat解码得到重建数据,但是只将y的一部分元素编码为字节流进行传输,因此解码只能解码一部分y,对于其他未被编码为字节流的部分,用超先验解码得到的预测特征图means中对应位置的值进行替代,既保证编解码环节的一致性,也保证解码时采用的真实解码特征图y_hat_new能够有能力重建得到质量相当的重建数据,具体参考公式(4)。
与熵编码对应,熵解码环节对已经得到的真实解码index1中的每个index_i值,从编码字节流中逐个解码得到对应的y1_i_hat值,从而构成真实解码特征图y1_hat。即为公式(4)中的第一行部分。
对编码过程中已经得到的skip编码indexes2,对于indexes2对应的所有元素位置(i,j,k),不使用原始的特征图y2,而是使用对应位置的means替代,从而构建出skip解码特征图y2_hat。即为公式(4)中的第二行部分。
对于解码得到的y1_hat,和构建得到的y2_hat,将两个特征图进行合并(即为公式(4)得到y_hat_new的方法),即可得到真实解码特征图y_hat_new。对该特征图进行图6所示解码模块,即可得到重建的数据。
参考图10,接着对解码端的解码流程进行介绍:
在解码端的解码流程中,首先对超先验z进行超先验解码,得到对应待编码特征图y的预测特征图means和预测概率分布scales,从超先验解码得到的概率分布scales,首先利用上文中公式(3)计算得到indexes,设置indexes阈值参数th,th的取值范围为0-255,筛选index值超过th的位置(i,j,k),形成真实编码indexes1,而对于index值小于或等于th的位置,则形成skip编码indexes2。根据真实编码indexes1查找映射关系表获得熵解码所需的概率分布函数,进而从编码字节流中逐个解码得到对应的y1_i_hat值,从而构成真实解码特征图y1_hat,参考编码部分阈值筛选环节,根据th得到y2和skip编码indexes2,对于indexes2对应的所有元素位置(i,j,k),不使用原始的特征图y2,而是使用预测特征图means中对应位置处的值替代,从而构建出skip解码特征图y2_hat。对于解码得到的y1_hat,和构建得到的y2_hat,将两个特征图进行合并(即为公式(4)得到y_hat_new的方法),即可得到真实解码特征图y_hat_new。对该特征图进行图6所示解码模块,即可得到重建的数据。
本申请实施提供的数据编码和数据解码方法有较强的适用性,不依赖硬件环境,可以处理各种类型的视频编解码任务。对于采用算术编码进行熵编码压缩的AI视频编解码算法,本发明都可以有效降低算法的熵编码计算量,从而提升编解码速度,对AI视频编解码的实时落地有着重要的贡献;另外,当使用预估值替代真实值时,往往能避免一些毛刺的出现,从而提升重建数据的平滑性。本发明选择一种AI视频编解码算法进行实验对比,给出采用本发明策略后算法计算量的降低比例和对算法最终结果造成影响的对比,实际使用时可以根据需要选择不同的阈值,从而实现速度和指标的权衡。对比结果如图11所示。其中:不同曲线代表不同阈值的结果,skip-0%为不进行skip加速的结果,skip-74%、skip-81%、skip-86%、skip-88%分别为不同阈值时,减少不同比例的算术编码计算量,对算法结果造成的影响。当skip-74%时,精度基本不变的情况下,算术编码环节速度可以提升5倍,非常可观。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据编码方法的数据编码装置、以及用于实现上述所涉及的数据解码方法的数据解码装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据编码装置、数据解码装置实施例中的具体限定可以参见上文中对于数据编码方法、数据解码方法的限定,在此不再赘述。
在一些实施例中,如图12所示,提供了一种数据编码装置1200,包括:
表征信息确定模块1202,用于获取特征数据的辅助编码信息,根据辅助编码信息确定特征数据所包括的各特征元素各自对应的偏离程度表征信息;偏离程度表征信息表征对应的特征元素相对于特征数据的整体分布的偏离程度;
量化值筛选模块1204,用于分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值;筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大;
特征元素筛选模块1206,用于从特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素;
熵编码模块1208,用于针对筛选获得的每个特征元素,基于所针对的特征元素对应的偏离程度量化值对所针对的特征元素进行熵编码,获得所针对的特征元素对应的编码数据;
编码数据流确定模块1210,用于根据编码数据,确定特征数据的编码数据流。
上述数据编码装置,由于在熵编码的过程中,可以按照预设筛选条件筛选所表征的偏离程度较大的偏离程度量化值,并根据筛选出的偏离程度量化值筛选特征元素,仅针对筛选出的特征元素进行熵编码,跳过未筛选出的特征元素的熵编码过程,从而可以显著减少需执行熵编码的特征元素个数,大大降低熵编码的复杂度,显著提高了数据编码效率。
在一些实施例中,预设筛选条件为要求偏离程度量化值超过预设量化阈值;量化值筛选模块1204,还用于将量化处理获得的各偏离程度量化值分别与预设量化阈值进行比较;从各偏离程度量化值中,筛选比较结果指示超过预设量化阈值的偏离程度量化值,获得一部分偏离程度量化值。
在一些实施例中,特征元素筛选模块1206,还用于获取特征数据所属数据帧的运动估计数据,根据运动估计数据确定与一部分偏离程度量化值中各偏离程度量化值各自对应的特征元素所处位置相匹配的运动估计值;从一部分偏离程度量化值中,筛选相匹配的运动估计值大于运动估计阈值的偏离程度量化值;从特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素。
在一些实施例中,各偏离程度表征信息为浮点数,各偏离程度量化值为整数。
在一些实施例中,量化值筛选模块1204,还用于确定量化步长,量化步长与偏离程度表征信息的最大取值和最小取值之间的差值正相关,与针对量化处理设定的最大量化等级负相关;分别确定各偏离程度表征信息与最小取值之间的差值;分别将各偏离程度表征信息各自对应的差值对量化步长进行取整运算,获得各偏离程度表征信息各自对应的偏离程度量化值。
在一些实施例中,特征数据为特征图;上述数据编码装置还包括:附加编码模块,用于从特征图所包括的多个特征元素中,确定与未筛选出的各偏离程度量化值各自对应的特征元素;根据未筛选出的各偏离程度量化值各自对应的特征元素在特征图中的位置,对未筛选出的各偏离程度量化值各自对应的特征元素进行区域划分;针对划分出每个特征元素区域,选取处于所针对的特征元素区域的中心位置的至少一个特征元素作为区域代表元素;基于代表特征元素的偏离程度量化值对代表特征元素进行熵编码,获得特征数据的附加编码数据。
在一些实施例中,表征信息确定模块1202,还用于获取特征数据,对特征数据进行降低特征维度的超先验编码,得到特征数据的辅助编码信息;利用辅助编码信息对特征数据所包括的各特征元素的概率分布进行估计,获得各特征元素各自对应的偏离程度表征信息。
在一些实施例中,特征数据通过对当前数据帧的原始数据进行前置编码获得;上述数据编码装置还包括:原始数据确定模块,用于获取前一帧数据帧的编码数据流,基于前一帧数据帧的编码数据流重建得到前一帧数据帧;基于重建得到的前一帧数据帧对当前数据帧进行运动估计,获得当前数据帧的运动估计数据;基于运动估计数据对当前数据帧进行残差补偿估计,获得当前数据帧的残差补偿数据;将运动估计数据和残差补偿数据,作为当前数据帧的原始数据。
在一些实施例中,原始数据确定模块,还用于基于针对前一帧数据帧的特征数据进行编码过程中筛选出的偏离程度量化值对前一帧数据帧的编码数据流进行熵解码,获得相应的特征元素;确定构成前一数据帧的特征数据的、未进行熵编码的特征元素所处位置处的替代元素;将熵解码获得的特征元素和替代元素合并,获得针对前一数据帧恢复的特征数据;基于针对前一数据帧恢复的特征数据进行数据重建,获得重建的前一帧数据帧。
在一些实施例中,如图13所示,提供了一种数据解码装置1300,包括:
辅助编码信息获取模块1302,用于获取编码数据流相对应的辅助编码信息;编码数据流是根据辅助编码信息对特征数据的一部分特征元素进行编码获得的;
表征信息确定模块1304,用于根据辅助编码信息确定特征数据所包括的各特征元素各自对应的偏离程度表征信息;偏离程度表征信息表征对应的特征元素相对于特征数据的整体分布的偏离程度;
量化值筛选模块1306,用于分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值;筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大;
熵解码模块1308,用于基于筛选出的偏离程度量化值对编码数据流进行熵解码,获得相应的特征元素;确定构成特征数据的未进行熵编码的特征元素所处位置的替代元素;
特征数据恢复模块1310,用于将熵解码获得的特征元素和替代元素合并,获得恢复的特征数据。
上述数据解码装置,在解码过程中,由于可以筛选出所表征的偏离程度较大的偏离程度量化值,仅基于筛选出的偏离程度量化值进行熵解码,可以仅针对部分特征元素进行熵解码,大大降低熵编码的复杂度,显著提高了数据解码效率,并且由于筛选过程是按照预设筛选条件对量化处理获得偏离程度量化值进行筛选,量化处理过程中对偏离程度表征信息进行了离散化,可以保证筛选出的偏离程度量化值和编码过程中筛选出的偏离程度量化值一致,从而可以确定恢复的特征数据的准确性。
在一些实施例中,熵解码模块,还用于获取针对特征数据所属数据帧重建得到的运动估计数据,根据运动估计数据确定与一部分偏离程度量化值中各偏离程度量化值各自对应的特征元素所处位置相匹配的运动估计值;从一部分偏离程度量化值中,筛选相匹配的运动估计值大于运动估计阈值的偏离程度量化值;利用筛选出的偏离程度量化值对编码数据流进行熵解码,获得相应的特征元素。
在一些实施例中,各偏离程度表征信息为浮点数,各偏离程度量化值为整数。
在一些实施例中,量化值筛选模块,用于确定量化步长,量化步长与偏离程度表征信息的最大取值与最小取值之间的差值正相关,与针对量化处理设定的量化等级负相关;分别确定各偏离程度表征信息与最小取值之间的差值;分别将各偏离程度表征信息各自对应的差值对量化步长进行取整运算,获得各偏离程度表征信息各自对应的偏离程度量化值。
在一些实施例中,量化处理获得的各偏离程度量化值与特征数据中各特征元素各自的位置一一对应,辅助编码信息是通过对特征数据进行超先验编码获得的;熵解码模块,还用于获取利用辅助编码信息对各特征元素的概率分布进行估计获得的预测特征值;根据未筛选出的各偏离程度量化值各自对应的位置,分别从各预测特征值筛选位置相匹配的预测特征值;根据筛选出的各预测特征值,确定构成特征数据的未进行熵编码的特征元素所处位置处的替代元素。
在一些实施例中,特征数据为特征图,量化处理获得的各偏离程度量化值与特征图中各特征元素各自的位置一一对应;熵解码模块,还用于从编码数据流中获取特征图的附加编码数据,对附加编码数据进行熵解码,获得相应的区域代表元素;将未筛选出的各偏离程度量化值各自对应的位置,确定为未进行熵编码的特征元素所处位置,并基于未进行熵编码的特征元素所处位置进行区域划分;针对划分出的每个区域中未进行熵编码的每个特征元素所处位置,将位置处于所针对的区域中的区域代表元素作为所针对的位置的替代元素。
上述数据编码装置以及数据解码装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一些实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储编码数据流或者解码得到的重建数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据编码方法或者一种数据解码方法。
在一些实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图15所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据编码方法或者一种数据解码方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图14、图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一些实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任一实施例中数据编码方法或者数据解码方法的步骤。
在一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例中数据编码方法或者数据解码方法的步骤。
在一些实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一实施例中数据编码方法或者数据解码方法的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (20)
1.一种数据编码方法,其特征在于,所述方法包括:
获取特征数据的辅助编码信息,根据所述辅助编码信息确定所述特征数据所包括的各特征元素各自对应的偏离程度表征信息;所述偏离程度表征信息表征对应的特征元素相对于所述特征数据的整体分布的偏离程度;
分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值;筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大;
从所述特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素;
针对筛选获得的每个特征元素,基于所针对的特征元素对应的偏离程度量化值对所针对的特征元素进行熵编码,获得所针对的特征元素对应的编码数据;
根据所述编码数据,确定所述特征数据的编码数据流。
2.根据权利要求1所述的方法,其特征在于,所述预设筛选条件为要求偏离程度量化值超过预设量化阈值;
所述从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值,包括:
将量化处理获得的各偏离程度量化值分别与所述预设量化阈值进行比较;
从各所述偏离程度量化值中,筛选比较结果指示超过所述预设量化阈值的偏离程度量化值,获得一部分偏离程度量化值。
3.根据权利要求1所述的方法,其特征在于,所述从所述特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素,包括:
获取所述特征数据所属数据帧的运动估计数据,根据所述运动估计数据确定与所述一部分偏离程度量化值中各偏离程度量化值各自对应的特征元素所处位置相匹配的运动估计值;
从所述一部分偏离程度量化值中,筛选相匹配的运动估计值大于运动估计阈值的偏离程度量化值;
从所述特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素。
4.根据权利要求1所述的方法,其特征在于,各所述偏离程度表征信息为浮点数,各所述偏离程度量化值为整数。
5.根据权利要求4所述的方法,其特征在于,所述分别对各偏离程度表征信息进行量化处理,包括:
确定量化步长,所述量化步长与偏离程度表征信息的最大取值和最小取值之间的差值正相关,与针对量化处理设定的最大量化等级负相关;
分别确定各偏离程度表征信息与所述最小取值之间的差值;
分别将各偏离程度表征信息各自对应的差值对所述量化步长进行取整运算,获得各偏离程度表征信息各自对应的偏离程度量化值。
6.根据权利要求1所述的方法,其特征在于,所述特征数据为特征图;所述方法还包括:
从所述特征图所包括的多个特征元素中,确定与未筛选出的各偏离程度量化值各自对应的特征元素;
根据未筛选出的各偏离程度量化值各自对应的特征元素在所述特征图中的位置,对未筛选出的各偏离程度量化值各自对应的特征元素进行区域划分;
针对划分出每个特征元素区域,选取处于所针对的特征元素区域的中心位置的至少一个特征元素作为区域代表元素;
基于所述代表特征元素的偏离程度量化值对所述代表特征元素进行熵编码,获得所述特征数据的附加编码数据。
7.根据权利要求1所述的方法,其特征在于,所述获取特征数据的辅助编码信息,根据所述辅助编码信息确定所述特征数据所包括的各特征元素各自对应的偏离程度表征信息,包括:
获取特征数据,对所述特征数据进行降低特征维度的超先验编码,得到所述特征数据的辅助编码信息;
利用所述辅助编码信息对所述特征数据所包括的各特征元素的概率分布进行估计,获得各特征元素各自对应的偏离程度表征信息。
8.根据权利要求1至6中任意一项所述的方法,其特征在于,所述特征数据通过对当前数据帧的原始数据进行前置编码获得;所述方法还包括:
获取前一帧数据帧的编码数据流,基于前一帧数据帧的编码数据流重建得到前一帧数据帧;
基于重建得到的所述前一帧数据帧对当前数据帧进行运动估计,获得所述当前数据帧的运动估计数据;
基于所述运动估计数据对当前数据帧进行残差补偿估计,获得所述当前数据帧的残差补偿数据;
将所述运动估计数据和所述残差补偿数据,作为所述当前数据帧的原始数据。
9.根据权利要求8所述的方法,其特征在于,所述基于前一帧数据帧的编码数据流重建得到前一帧数据帧,包括:
基于针对前一帧数据帧的特征数据进行编码过程中筛选出的偏离程度量化值对所述前一帧数据帧的编码数据流进行熵解码,获得相应的特征元素;
确定构成所述前一数据帧的特征数据的、未进行熵编码的特征元素所处位置处的替代元素;
将熵解码获得的所述特征元素和所述替代元素合并,获得针对前一数据帧恢复的特征数据;
基于针对前一数据帧恢复的特征数据进行数据重建,获得重建的前一帧数据帧。
10.一种数据解码方法,其特征在于,所述方法包括:
获取编码数据流相对应的辅助编码信息;所述编码数据流是根据所述辅助编码信息对特征数据的一部分特征元素进行编码获得的;
根据所述辅助编码信息确定所述特征数据所包括的各特征元素各自对应的偏离程度表征信息;所述偏离程度表征信息表征对应的特征元素相对于所述特征数据的整体分布的偏离程度;
分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值;筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大;
基于所述筛选出的偏离程度量化值对所述编码数据流进行熵解码,获得相应的特征元素;
确定构成所述特征数据的未进行熵编码的特征元素所处位置的替代元素;
将熵解码获得的所述特征元素和所述替代元素合并,获得恢复的特征数据。
11.根据权利要求10所述的方法,其特征在于,所述基于所述筛选出的偏离程度量化值对所述编码数据流进行熵解码,获得相应的特征元素,包括:
获取针对所述特征数据所属数据帧重建得到的运动估计数据,根据所述运动估计数据确定与所述一部分偏离程度量化值中各偏离程度量化值各自对应的特征元素所处位置相匹配的运动估计值;
从所述一部分偏离程度量化值中,筛选相匹配的运动估计值大于运动估计阈值的偏离程度量化值;
利用筛选出的所述偏离程度量化值对所述编码数据流进行熵解码,获得相应的特征元素。
12.根据权利要求10所述的方法,其特征在于,各所述偏离程度表征信息为浮点数,各所述偏离程度量化值为整数。
13.根据权利要求12所述的方法,其特征在于,所述分别对各偏离程度表征信息进行量化处理,包括:
确定量化步长,所述量化步长与偏离程度表征信息的最大取值与最小取值之间的差值正相关,与针对量化处理设定的量化等级负相关;
分别确定各偏离程度表征信息与所述最小取值之间的差值;
分别将各偏离程度表征信息各自对应的差值对所述量化步长进行取整运算,获得各偏离程度表征信息各自对应的偏离程度量化值。
14.根据权利要求10至13中任意一项所述的方法,其特征在于,所述量化处理获得的各偏离程度量化值与所述特征数据中各特征元素各自的位置一一对应,所述辅助编码信息是通过对所述特征数据进行超先验编码获得的;
所述确定构成所述特征数据的未进行熵编码的特征元素的位置处的替代元素,包括:
获取利用所述辅助编码信息对各特征元素的概率分布进行估计获得的预测特征值;
根据未筛选出的各偏离程度量化值各自对应的位置,分别从各所述预测特征值筛选位置相匹配的预测特征值;
根据筛选出的各预测特征值,确定构成所述特征数据的未进行熵编码的特征元素所处位置处的替代元素。
15.根据权利要求10至13中任意一项所述的方法,其特征在于,所述特征数据为特征图,所述量化处理获得的各偏离程度量化值与所述特征图中各特征元素各自的位置一一对应;
所述确定构成所述特征数据的未进行熵编码的特征元素所处位置的替代元素,包括:
从所述编码数据流中获取所述特征图的附加编码数据,对所述附加编码数据进行熵解码,获得相应的区域代表元素;
将未筛选出的各偏离程度量化值各自对应的位置,确定为未进行熵编码的特征元素所处位置,并基于未进行熵编码的特征元素所处位置进行区域划分;
针对划分出的每个区域中未进行熵编码的每个特征元素所处位置,将位置处于所针对的区域中的区域代表元素作为所针对的位置的替代元素。
16.一种数据编码装置,其特征在于,所述装置包括:
表征信息确定模块,用于获取特征数据的辅助编码信息,根据所述辅助编码信息确定所述特征数据所包括的各特征元素各自对应的偏离程度表征信息;所述偏离程度表征信息表征对应的特征元素相对于所述特征数据的整体分布的偏离程度;
量化值筛选模块,用于分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值;筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大;
特征元素筛选模块,用于从所述特征数据所包括的多个特征元素中,筛选与筛选获得的各偏离程度量化值各自对应的特征元素;
熵编码模块,用于针对筛选获得的每个特征元素,基于所针对的特征元素对应的偏离程度量化值对所针对的特征元素进行熵编码,获得所针对的特征元素对应的编码数据;
编码数据流确定模块,用于根据所述编码数据,确定所述特征数据的编码数据流。
17.一种数据解码装置,其特征在于,所述装置包括:
辅助编码信息获取模块,用于获取编码数据流相对应的辅助编码信息;所述编码数据流是根据所述辅助编码信息对特征数据的一部分特征元素进行编码获得的;
表征信息确定模块,用于根据所述辅助编码信息确定所述特征数据所包括的各特征元素各自对应的偏离程度表征信息;所述偏离程度表征信息表征对应的特征元素相对于所述特征数据的整体分布的偏离程度;
量化值筛选模块,用于分别对各偏离程度表征信息进行量化处理,并从量化处理获得的各偏离程度量化值中,按照预设筛选条件筛选出一部分偏离程度量化值;筛选出的偏离程度量化值相比未筛选出的偏离程度量化值所表征的偏离程度更大;
熵解码模块,用于基于所述筛选出的偏离程度量化值对所述编码数据流进行熵解码,获得相应的特征元素;确定构成所述特征数据的未进行熵编码的特征元素所处位置的替代元素;
特征数据恢复模块,用于将熵解码获得的所述特征元素和所述替代元素合并,获得恢复的特征数据。
18.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9或者10至15中任一项所述的方法的步骤。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要1至9或者10至15中任一项所述的方法的步骤。
20.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9或者10至15中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310549379.0A CN116979971A (zh) | 2023-05-15 | 2023-05-15 | 数据编码、解码方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310549379.0A CN116979971A (zh) | 2023-05-15 | 2023-05-15 | 数据编码、解码方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116979971A true CN116979971A (zh) | 2023-10-31 |
Family
ID=88483881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310549379.0A Pending CN116979971A (zh) | 2023-05-15 | 2023-05-15 | 数据编码、解码方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116979971A (zh) |
-
2023
- 2023-05-15 CN CN202310549379.0A patent/CN116979971A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Huang et al. | Deep learning-based image semantic coding for semantic communications | |
Cheng et al. | Energy compaction-based image compression using convolutional autoencoder | |
CN111598026B (zh) | 动作识别方法、装置、设备及存储介质 | |
US10965948B1 (en) | Hierarchical auto-regressive image compression system | |
Ma et al. | Joint feature and texture coding: Toward smart video representation via front-end intelligence | |
CN116233445B (zh) | 视频的编解码处理方法、装置、计算机设备和存储介质 | |
CN113132727B (zh) | 可伸缩机器视觉编码方法和运动引导图像生成网络的训练方法 | |
CN116600119B (zh) | 视频编码、解码方法、装置、计算机设备和存储介质 | |
Akbari et al. | Learned multi-resolution variable-rate image compression with octave-based residual blocks | |
Li et al. | End-to-end optimized 360 image compression | |
Hu et al. | UAV image high fidelity compression algorithm based on generative adversarial networks under complex disaster conditions | |
CN116935292B (zh) | 一种基于自注意力模型的短视频场景分类方法及系统 | |
CN115880762B (zh) | 面向人机混合视觉的可伸缩人脸图像编码方法、系统 | |
Li et al. | Towards communication-efficient digital twin via ai-powered transmission and reconstruction | |
CN117061760A (zh) | 一种基于注意力机制的视频压缩方法和系统 | |
Cao et al. | Slimmable multi-task image compression for human and machine vision | |
CN116979971A (zh) | 数据编码、解码方法、装置、计算机设备和存储介质 | |
CN114501031B (zh) | 一种压缩编码、解压缩方法以及装置 | |
CN115170682A (zh) | 一种处理点云数据的方法和目标处理点云数据模型 | |
Yin et al. | A co-prediction-based compression scheme for correlated images | |
CN116828184B (zh) | 视频编码、解码方法、装置、计算机设备和存储介质 | |
WO2024093627A1 (zh) | 一种视频压缩方法、视频解码方法和相关装置 | |
CN116980691A (zh) | 视频播放方法、装置、设备、存储介质和计算机程序产品 | |
CN117319652A (zh) | 视频编解码模型处理、视频编码、解码方法及相关设备 | |
CN117893882A (zh) | 基于压缩轮廓图的带宽优化目标检测方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40098103 Country of ref document: HK |