CN103096056A - 矩阵编码方法与装置及解码方法与装置 - Google Patents

矩阵编码方法与装置及解码方法与装置 Download PDF

Info

Publication number
CN103096056A
CN103096056A CN2011103504552A CN201110350455A CN103096056A CN 103096056 A CN103096056 A CN 103096056A CN 2011103504552 A CN2011103504552 A CN 2011103504552A CN 201110350455 A CN201110350455 A CN 201110350455A CN 103096056 A CN103096056 A CN 103096056A
Authority
CN
China
Prior art keywords
matrix
plies
layer
current
coding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011103504552A
Other languages
English (en)
Other versions
CN103096056B (zh
Inventor
王云飞
郑建铧
郑萧桢
何芸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Huawei Technologies Co Ltd
Original Assignee
Tsinghua University
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University, Huawei Technologies Co Ltd filed Critical Tsinghua University
Priority to CN201110350455.2A priority Critical patent/CN103096056B/zh
Priority to PCT/CN2012/084307 priority patent/WO2013067949A1/zh
Priority to EP19173526.5A priority patent/EP3585055A1/en
Priority to EP12848646.1A priority patent/EP2765770B1/en
Publication of CN103096056A publication Critical patent/CN103096056A/zh
Priority to US14/273,149 priority patent/US9565429B2/en
Application granted granted Critical
Publication of CN103096056B publication Critical patent/CN103096056B/zh
Priority to US15/387,305 priority patent/US10123016B2/en
Priority to US16/157,739 priority patent/US10742982B2/en
Priority to US16/928,632 priority patent/US11265547B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提供一种矩阵编码方法及装置与解码方法及装置。其中,一种编码方法包括:按照预设划分层数将矩阵进行分层,并将矩阵元素分组到不同分层中;根据确定的待编码层数,按照层次顺序依次对待编码的每层中的矩阵元素进行编码处理;对于层数小于或等于待编码层数的层,将该层对应的原始矩阵元素值和对应的矩阵元素预测值的残差数据作写入码流;对于层数大于待编码层数的层,在码流中不写入该层的编码数据;将待编码层数进行编码,并写入码流。本发明技术方案提高了对矩阵的压缩比,减少了传输矩阵所占用的码率。

Description

矩阵编码方法与装置及解码方法与装置
技术领域
本发明涉及视频编码技术,尤其涉及一种矩阵编码方法与装置及解码方法与装置。
背景技术
在视频编码中,需要将图像块经过预测后的残差变换系数如离散余弦变换(Discrete Cosine Transform;简称为:DCT)系数进行量化后再编码,其中每个变换块的每个频率系数位置的量化权重即为量化矩阵(Quantization matrix;简称为:QM)。QM的尺寸与DCT变换块大小相等,例如32x32大小的DCT变换块需要对应32x32的QM。同时,不同的信号分量及图像块的不同的预测方式(帧内/帧间)也需要不同的QM。QM的元素为0~255的整数,一般对于低频的系数QM中的量化权重较小,对于高频系数,QM中量化权重较大。使用QM可以提升编码视频的图像主观质量。
目前,在JPEG(联合图象专家组),MPEG1(MPEG,运动图象专家组),MPEG2,MPEG4等图象编码标准中,均采用量化矩阵实现提升编码图像主观质量,其中,在JPEG图象编码标准中是将QM放在图象头,而在MPEG1、MPEG2、MPEG4等图象编码标准中则是将QM放在序列头中;因此,对于序列图象而言,MPEG图象编码标准的QM是每个序列拥有一个,即针对同一序列采用同一个固定的QM实现针对图象的量化处理。
图像序列中的图象内容并不是完全相同,即在同一个图象序列中各图象的细节各不相同,因此,如果对于整个序列的所有图象均采用同一个QM实现量化处理,显然无法达到最佳的量化编码后的图象主观质量。为此,在H.264/高级视频编码(Advanced Video Coding;简称为:AVC)中,在序列头和图象头都提供用户自定义的QM,以便于可以在图象级改变QM,以更好地符合视频序列图象之间的内容变化比较大的特点。
下面对目前编码标准中常用的几种具有代表性质的QM实现方法进行描述:
(1)JPEG中的量化矩阵
在JPEG标准中,只有8x8一种DCT(离散余弦变换)的变换尺寸,因此量化矩阵大小也是8x8,共有64个量化系数,对于图象的亮度分量和色度分量采用不同的量化矩阵,JPEG的量化矩阵的所有系数值均放在图象头中,每幅图象只有一个亮度量化矩阵和色度量化矩阵。当在编解码端使用标准中默认预定义的量化矩阵,则量化矩阵就不需要在码流中传输。
(2)MPEG2
在MPEG2标准中,只有8x8一种DCT变换尺寸,因此量化矩阵大小也是8x8,共有64个量化系数。对于编码图象分别采用帧内量化矩阵与帧间量化矩阵。MPEG2只允许每个序列中的所有图象只拥有一个帧内量化矩阵和一个帧间量化矩阵,所有的量化矩阵的64个系数值都是放在序列头。MPEG2也允许用户自定义量化矩阵,自定义的量化矩阵在序列扩展头中。由于是每个序列的量化矩阵不能更改,量化矩阵直接编码在码流中的负载不大。
(3)H.264/AVC标准
在H.264/AVC标准中,有8x8和4x4两种DCT变换尺寸,因此也有与之对应的8x8和4x4两组量化矩阵。对8x8的量化矩阵,共64个系数对不同的频率分量进行量化的缩放;对4x4的矩阵,共16个系数对不同的频率分量进行量化的缩放。对于4x4的块和8x8的块都有与之对应的量化矩阵。因为在图象头语法中使用量化矩阵。目前,在H.264/AVC使用以下方法编码和在码流中传输QM:首先将QM扫描为一维,然后使用差分脉冲编码调制(Differential Pulse Code Modulation;简称为:DPCM)进行调制,再使用变长码编码对调制后的数据进行编码后输出码流。该方法直接对QM进行无损压缩,但其压缩效率较低,QM编码比特所占用的码率仍较高。尤其是对较小图像尺寸的码流序列。因此为了限制量化矩阵在每帧编码图像码流中的负载,限制量化矩阵在图像头中使用只在H.264/AVC High Profile标准中,用于高清图像编码。
在高效视频编码(High Efficiency Video Coding;简称为:HEVC)中,图像块的变换尺寸增加到4x4,8x8,16x16,32x32等多种变换尺寸,并且由于使用了较大的变换块,所以对应的QM也较大。如果不压缩或者采用H.264/AVC方法对QM编码,QM将占据较大码率,QM本身编码比特可占到码率的一半以上,甚至几倍。
发明内容
本发明提供一种矩阵编码方法及装置与解码方法及装置,用以提高量化矩阵的压缩率,降低传输量化矩阵时所占用的码率。
本发明一个方面提供一种矩阵编码方法,包括:
按照预设划分层数将矩阵进行分层,并将矩阵元素分组到不同分层中;
根据确定的待编码层数,按照层次顺序依次对待编码的每层中的矩阵元素进行编码处理;
如果当前层的层数小于或等于所述待编码层数,则根据当前层对应的原始矩阵元素值和当前层对应的矩阵元素预测值计算得到残差数据作为当前层的编码数据写入码流;
如果当前层的层数大于所述待编码层数,在所述码流中不写入当前层的编码数据;
其中,当前层对应的矩阵元素预测值是由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行插值计算得到的;
将所述待编码层数进行编码,并写入所述码流。
本发明一个方面提供一种矩阵解码方法,包括:
从码流中解码出矩阵的编码层数;
根据所述编码层数和从所述码流中解码出的所述矩阵中层数小于或等于所述编码层数的各层的编码数据,按照层次顺序依次得到层数小于或等于所述编码层数的各层对应的矩阵元素重建值;
由层数小于或等于所述编码层数的层对应的矩阵元素重建值计算得到层数大于所述编码层数的各层对应的矩阵元素重建值。
本发明另一个方面提供一种矩阵编码方法,包括:
根据矩阵集合中矩阵的大小,按照编码顺序依次对所述矩阵集合中的矩阵进行编码预测,获取所述矩阵的重建矩阵,并将所述矩阵的重建矩阵进行相应的采样处理得到采样矩阵;
由当前矩阵的重建矩阵和当前矩阵得到第一误差,由按照所述编码顺序在当前矩阵之前已编码矩阵的重建矩阵进行采样处理得到的采样矩阵和当前矩阵得到第二误差;
如果所述第一误差小于或等于所述第二误差,将当前矩阵的重建矩阵作为当前矩阵对应的编码重建矩阵,并将当前矩阵对应的编码结果写入码流;
如果所述第一误差大于所述第二误差,将按照所述编码顺序在当前矩阵之前已编码矩阵的重建矩阵进行采样处理得到的采样矩阵作为当前矩阵对应的编码重建矩阵,并将当前矩阵对应的编码结果写入所述码流。
本发明另一个方面提供一种矩阵解码方法,包括:
确定矩阵集合对应的解码顺序和相应的采样方法;
从码流中解码出标识当前矩阵是否使用采样矩阵的标识比特;
如果所述标识比特标识当前矩阵使用采样矩阵,将由按照所述解码顺序在当前矩阵之前已解码矩阵的解码重建矩阵进行采样处理得到的采样矩阵,作为当前矩阵的解码重建矩阵;
如果所述标识比特标识当前矩阵不使用采样矩阵,直接从所述码流中解码出当前矩阵的解码重建矩阵;
按照所述解码顺序,依次解码出所述矩阵集合中所有矩阵的解码重建矩阵。
本发明一个方面提供一种矩阵编码装置,包括:
分层模块,用于按照预设划分层数将矩阵进行分层,并将矩阵元素分组到不同的分层中;
编码处理模块,用于根据确定的待编码层数,按照层次顺序依次对待编码的每层中的矩阵元素进行编码处理;如果当前层的层数小于或等于所述待编码层数,则根据当前层对应的原始矩阵元素值和当前层对应的矩阵元素预测值计算得到残差数据作为当前层的编码数据写入码流;如果当前层的层数大于所述待编码层数,在所述码流中不写入当前层的编码数据;
其中,当前层对应的矩阵元素预测值是由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行插值计算得到的;
第一编码写入模块,用于将所述待编码层数进行编码,并写入所述码流。
本发明一个方面提供一种矩阵解码装置,包括:
层数解码模块,用于从码流中解码出矩阵的编码层数;
第一重建模块,用于根据所述编码层数和从所述码流中解码出的所述矩阵中层数小于或等于所述编码层数的各层的编码数据,按照层次顺序依次得到层数小于或等于所述编码层数的各层对应的矩阵元素重建值;
第二重建模块,用于由层数小于或等于所述编码层数的层对应的矩阵元素重建值计算得到层数大于所述编码层数的各层对应的矩阵元素重建值。
本发明另一个方面提供一种矩阵编码装置,包括:
预测编码模块,用于根据矩阵集合中矩阵的大小,按照编码顺序依次对所述矩阵集合中的矩阵进行编码预测,获取所述矩阵的重建矩阵,并将所述矩阵的重建矩阵进行相应的采样处理得到采样矩阵;
误差获取模块,用于由当前矩阵的重建矩阵和当前矩阵得到第一误差,由按照所述编码顺序在当前矩阵之前已编码矩阵的重建矩阵进行采样处理得到的采样矩阵和当前矩阵得到第二误差;
第一编码重建模块,用于在所述第一误差小于或等于所述第二误差,将当前矩阵的重建矩阵作为当前矩阵对应的编码重建矩阵,并将当前矩阵对应的编码结果写入码流;
第二编码重建模块,用于在所述第一误差大于所述第二误差,将按照所述编码顺序在当前矩阵之前已编码矩阵的重建矩阵进行采样处理得到的采样矩阵作为当前矩阵对应的编码重建矩阵,并将当前矩阵对应的编码结果写入所述码流。
本发明另一个方面提供一种矩阵解码装置,包括:
确定模块,用于确定矩阵集合对应的解码顺序和相应的采样方法;
标识解码模块,用于从码流中解码出标识当前矩阵是否使用采样矩阵的标识比特;
第一解码重建模块,用于在所述标识比特标识当前矩阵使用采样矩阵时,将由按照所述解码顺序在当前矩阵之前已解码矩阵的解码重建矩阵进行采样处理得到的采样矩阵,作为当前矩阵的解码重建矩阵;
第二解码重建模块,用于在所述标识比特标识当前矩阵不使用采样矩阵,直接从所述码流中解码出当前矩阵的解码重建矩阵;
触发模块,用于触发所述标识解码模块、所述第一解码重建模块和所述第二解码重建模块,按照所述解码顺序,依次解码出所述矩阵集合中所有矩阵的解码重建矩阵。
本发明一个方面提供的矩阵编码方法及装置,通过采用分层结构将矩阵元素分组到不同分层中,然后根据确定的待编码层数对各层进行编码,或者将该层对应的原始矩阵元素值与矩阵元素预测值的残差数据作为编码数据写入码流,或者不在码流中写入该层对应的编码数据,提高了对矩阵的压缩比,降低了传输矩阵所占用的码率。
本发明一个方面提供的矩阵解码方法及装置,与本发明一个方面提供的矩阵编码方法及装置相适应,从码流中解码出编码层数和层数小于或等于编码层数的层的编码数据,进而基于解码出的数据实现对矩阵的重构,使编码端可以使用分层架构对矩阵编码并传输,提高了对矩阵的压缩比,降低了传输矩阵所占用的码率。
本发明另一个方面提供的矩阵编码方法及装置,通过按照编码顺序依次对矩阵集合中的多个矩阵进行编码处理,并从每个矩阵编码预测出的重建矩阵与之前已编码矩阵的重建矩阵采样得到的采样矩阵中,选择误差相对较小的矩阵作为编码重建矩阵,同时将编码结果写入码流,由于使用采样矩阵时,只需在码流中写入标识比特,而不需要写入整个矩阵,提高了对矩阵的压缩率,降低了传输矩阵所占用的码率。
本发明另一个方面提供的矩阵解码方法及装置,与本发明另一个方面提供的矩阵编码方法及装置相适应,从码流中解码出每个矩阵对应的标识该矩阵是否使用采样矩阵的标识比特,并根据标识比特或者从之前已经解码出的矩阵的解码重建矩阵采样得到当前矩阵的解码重建矩阵,或者直接从码流中解码出当前矩阵的解码重建矩阵,并按照解码顺序解码出所有矩阵的解码重建矩阵,提高了对矩阵的压缩率,降低了传输矩阵所占用的码率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为本发明一实施例提供的矩阵编码方法的流程图;
图1B为本发明一实施例提供的8x8矩阵分层结构示意图;
图1C为本发明一实施例提供的4x4矩阵分层结构示意图;
图2为本发明一实施例提供的矩阵解码方法的流程图;
图3为本发明一实施例提供的矩阵编码方法的流程图;
图4为本发明一实施例提供的矩阵解码方法的流程图;
图5A为本发明一实施例提供的矩阵编码装置的结构示意图;
图5B为本发明另一实施例提供的矩阵编码装置的结构示意图;
图6A为本发明一实施例提供的矩阵解码装置的结构示意图;
图6B为本发明另一实施例提供的矩阵解码装置的结构示意图;
图7A为本发明又一实施例提供的矩阵编码装置的结构示意图;
图7B为本发明再一实施例提供的矩阵编码装置的结构示意图;
图8为本发明又一实施例提供的矩阵解码装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1A为本发明一实施例提供的矩阵编码方法的流程图。如图1A所示,本实施例的方法包括:
步骤101、按照预设划分层数将矩阵进行分层,并将矩阵元素分组到不同分层中。
在本发明各实施例中,所述矩阵是指在编码端需要进行编码压缩,然后传输到解码端的矩阵,例如,可以是QM、缩放矩阵、系数加权矩阵、QM经过变换后的变换域矩阵、缩放矩阵经过变换后的变换域矩阵、系数加权矩阵经过变换后的变换域矩阵、QM经过编码预测后的预测残差矩阵、缩放矩阵经过编码预测后的预测残差矩阵或系统加权矩阵经过预测编码后的预测残差矩阵中任意一种或其组合。其中,所述变换可以是Z变换、DCT变换、DFT(傅里叶变换)变换等。所述编码预测是指将QM、缩放矩阵、系数加权矩阵等进行编码,然后将编码后的矩阵和编码前的矩阵(即未编码的原始矩阵)进行求残差。其中,编码预测所使用的编码方法不做限制,例如DPCM。
在本实施例中,编码架构为分层编码,即将矩阵所有元素分为若干层,每层包括不同的矩阵元素。其中,对于不同尺寸的矩阵,预先规定不同的划分层数。例如:对于大小为4x4的矩阵,可以预先定义其划分为4层,划分层数的取值范围为0~3;大小为8x8的矩阵,可以预先定义其划分为5层,划分层数取值范围为0~4;大小为16x16的矩阵,可以预先定义其划分为6层,划分层数取值范围为0~5;大小为32x32的矩阵,可以预先定义其划分为7层,划分层数取值范围为0~6。预先定义的划分层数具体数值不是固定的,可以根据矩阵大小进行调整和预先定义。如果将层中包含的矩阵元素个数增加,则划分矩阵所用的层数可以减少。
在本实施例中,编码端根据预先设定的划分层数,将矩阵进行分层,例如,例如将4x4矩阵划分为4层,将8x8矩阵划分为5层等。其中,将矩阵进行分层所使用的划分方法可以是任意一种方法,在本实施例中不做限定。下面以将8x8矩阵划分为5层和将4x4矩阵划分为4层为例,举例说明所使用的划分方法。
例如,对于8x8矩阵,可以以8x8矩阵的左上角和右下角为第0层,左下角和右上角为第1层,取8x8矩阵的中心和4个边的中点为第2层,接着划分出第3层,其余为第4层。该划分方法的划分结果如图1B所示,其中数字0、1、2、3、4分别表示第0层、第1层、第2层、第3层和第4层对应的矩阵元素位置。其中,划分层数的取值范围为0~4,共划分为5层。
例如,对于4x4矩阵,可以以4x4矩阵的左上角和右下角为第0层,左下角和右上角为第1层,取4x4矩阵的中心和4个边的中点为第2层,其余为第3层。该划分方法的划分结果如图1C所示,其中数字0、1、2、3分别表示第0层、第1层、第2层和第3层对应的矩阵元素位置。其中,划分层数的取值范围为0~3,共划分为4层。
其中,对于编码端和解码端可以预先约定所使用的划分层数和/或划分方法,这样编码端可以不用再对划分层数和/或划分方法进行编码并通过码流传输到解码端,有利于减轻编码端和解码端的编解码负担、复杂度等,并会降低传输的码流。例如,如果编码端和解码端仅预先约定了划分层数,则编码端需要将划分方法进行编码并写入码流传输给解码端,以使解码端进行正确解码。如果解码端和编码端仅预先约定了划分方法,但没有约定划分层数,则编码端需要将划分层数进行编码并写入码流传输到解码端,以使解码端进行正确解码。如果编码端和解码端预先约定了划分层数和划分方法,则编码端不需要再对划分层数和划分方法进行编码,且不需要写入码流中。
另外,解码端和编码端也可以不预先约定所使用的划分层数和划分方法,这样编码端同时对划分层数和划分方法进行编码并写入码流传输到解码端,向解码端提供解码所需的信息,这种方式有利于改变划分层数和划分方法,具有一定的灵活性。
步骤102、根据确定的待编码层数,按照层次顺序依次对待编码的每层中的矩阵元素进行编码处理。
在将矩阵进行分层后,编码端按照层次顺序开始对每层进行编码处理。其中,所述层次顺序是按照先编低层次的,再编高层次的,即从第0层开始、按照层数依次增大的顺序对各层进行编码。
在本实施例中,对于不同尺寸的矩阵,编码端可以确定对矩阵编码所使用的编码层数,即确定待编码层数,并根据所确定的待编码层数进行编码处理。其中,待编码层数的取值范围为大于或等于0,且小于预设的划分层数。编码端基于所确定的待编码层数对各层进行编码处理的方式如下:
如果当前层的层数小于或等于所述确定的待编码层数,则根据当前层对应的原始矩阵元素值和当前层对应的矩阵元素预测值计算得到残差数据作为当前层的编码数据写入码流。相应地,在解码端,从码流中解码出该当前层的编码数据,并将当前层的编码数据与当前层对应的矩阵元素预测值进行相加处理,获取当前层对应的矩阵元素重建值。其中,解码端得到的当前层对应的矩阵元素重建值与当前层对应的原始矩阵元素值相同,这对该当前层来说,实现了无损编码。
如果当前层的层数大于所述确定的待编码层数,则在码流中不写入当前层的编码数据。在解码端,将会使用当前层之前已经解码的层对应的矩阵元素重建值或者当前层中已重建的矩阵元素重建值进行插值计算得到当前层对应的矩阵元素重建值,这样当前层对应的矩阵元素重建值与当前层对应的原始矩阵元素值之间可能存在残差,属于有损编码。
其中,在本实施例中,当前层是指当前要进行编码的一层。例如:假设确定的待编码层数为2,即将矩阵划分出的层中的第0~2层矩阵元素进行编码。如果当前层为第0层,则其层数为0,当前层的层数小于待编码层数;如果当前层为第2层,则其层数为2,当前层的层数等于待编码层数;如果当前层为第3层,则其层数为3,当前层的层数大于待编码层数。
其中,当前层对应的矩阵元素预测值是由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行插值计算得到的。也就是说,在本实施例中,是通过插值的方式获取每层对应的矩阵元素预测值的。其中,插值方式可以是根据当前待插值(或称为待编码)的矩阵元素之前已编码矩阵元素的矩阵元素重建值或矩阵元素预测值,插值得到当前待插值的矩阵元素的矩阵元素预测值。例如,根据第0层对应的矩阵元素预测值或矩阵元素重建值插值出第1层对应的矩阵元素预测值,根据第0层和第1层对应的矩阵元素预测值或矩阵元素重建值插值得到第2层的矩阵元素预测值。又例如:根据第0层对应的矩阵元素值插值出其他各层对应的矩阵元素预测值。再例如:根据第0层对应的矩阵元素预测值插值得到第1层和第2层对应的矩阵元素预测值,然后根第1层和/或据第2层对应的矩阵元素预测值或矩阵元素重建值插值得到其他各层对应的矩阵元素预测值。还例如:根据第0层对应的矩阵元素值插值出第1层中部分矩阵元素预测值,并根据第0层和第1层中已插值出的矩阵元素预测值插值得到第1层其他矩阵元素预测值。
其中,对于层数小于或等于待编码层数的层来说,其对应的矩阵元素重建值等于所对应的原始矩阵元素值。对于层数大于待编码层数的层来说,其对应的矩阵元素重建值可由层数较低的层对应的矩阵元素重建值插值得到。
其中,最低层对应的矩阵元素预测值可以为最低层对应的原始矩阵元素之,或者为一个或一组预设默认值,并作为初始值插值得到其他各层对应的矩阵元素预测值。
其中,由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素重建值或者矩阵元素预测值插值得到当前层对应的矩阵元素预测值过程可以是由当所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素重建值或者矩阵元素预测值进行均匀插值计算或者加权插值计算得到当前层对应的矩阵元素预测值。下面将以图1B所示分层矩阵为例,并以均匀插值计算为例,举例说明对矩阵进行分层编码处理的过程。
首先,假设编码端确定的待编码层数为2。
对第0层进行编码处理。由于第0层是最低层,故第0层的矩阵元素预测值可以使用原始矩阵元素值或者默认值残差数据。假设以默认值作为第0层的A(0,0)元素的预测值,例如取A(0,0)元素对应的矩阵元素预测值为6,将该预测值作为A(0,0)的编码数据写入码流。对第0层的A(7,7)元素不做预测,即直接以该矩阵中的A(7,7)元素的原始值进行编码并写入码流。
对第1层进行编码处理。首先,根据第0层对应的矩阵元素预测值(以矩阵元素预测值为例)得到第1层对应的矩阵元素预测值。假设采用均匀插值计算方法,则第1层的A(0,7)元素和A(7,0)元素均以(A(0,0)+A(7,7)+1)/2为预测值。其中,“/”表示整数除法。
由于第1层的层数小于确定的待编码层数(即1<2),故将第1层各矩阵元素对应的原始矩阵元素值与其对应的矩阵元素预测值的残差数据作为第1层的编码数据写入码流。对于第1层来说,在解码端得到的其对应的矩阵元素重建值与其对应的原始矩阵元素值相同,故对1层来说属于无损编码。
对第2层进行编码处理。例如,假设根据第2层之前已编码的第0~1层对应的矩阵元素预测值使用均匀插值计算方式得到第2层的矩阵元素预测值。其中,对每层中矩阵元素进行插值的顺序可以是先进行纵向插值再进行横向插值,也可以是先进行横向插值再进行纵向插值。其中,横向插值是指以矩阵元素的行角标为依据,用行角标相同的其他已插值出的矩阵元素预测值,按照一定的插值方法对该行中待插值的矩阵元素进行插值。纵向插值是指以矩阵元素的列角标为依据,用列角标相同的其他已插值出的矩阵元素预测值,按照一定的插值方法对该列中待插值的矩阵元素进行插值。例如,本实施例中以先横向插值再纵向插值的顺序对第2层进行插值计算,得到A(0,3)元素的预测值为(A(0,0)+A(0,7)+1)/2,A(7,3)元素的预测值为(A(7,0)+A(7,7)+1)/2,A(3,0)元素的预测值为(A(0,0)+A(7,0)+1)/2,A(3,3)元素的预测值为(A(0,3)+A(7,3)+1)/2,A(3,7)元素的预测值为(A(0,7)+A(7,7)+1)/2。
由于第2层的层数等于确定的待编码层数(即2=2),故将第2层各矩阵元素对应的原始矩阵元素值与其对应的矩阵元素预测值的残差数据作为第2层的编码数据写入码流。对于第2层来说,在解码端得到的其对应的矩阵元素重建值与其对应的原始矩阵元素值相同,故对2层来说属于无损编码。
对第3层进行编码处理。例如,假设根据第3层之前已编码的第0~2层以及第3层中已经编码矩阵元素对应的矩阵元素预测值使用均匀插值计算方法得到第3层的矩阵元素预测值。其中,具体插值顺序可以是先进行纵向插值再进行横向插值,或者是先进行横向插值再进行纵向插值。本实施例假设采用先纵向插值再横向插值的顺序进行插值计算,得到A(0,1)元素的预测值为(A(0,0)+A(0,3)+1)/2,A(0,5)元素的预测值为(A(0,3)+A(0,7)+1)/2,A(3,1)元素的预测值为(A(3,0)+A(3,3)+1)/2,A(1,0)元素的预测值为(A(0,0)+A(0,3)+1)/2,A(1,3)元素的预测值为(A(0,3)+A(3,3)+1)/2,A(1,1)元素的预测值为(A(0,1)+A(3,1)+1)/2,A(0,5)元素的预测值为(A(0,3)+A(0,7)+1)/2,A(3,5)元素的预测值为(A(3,3)+A(3,7)+1)/2,A(1,7)元素的预测值为(A(0,7)+A(3,7)+1)/2,A(1,5)元素的预测值为(A(0,5)+A(3,5)+1)/2等,在此不再一一列举。
由于第3层的层数大于确定的待编码层数(即3>2),故在码流中不写入第3层的编码数据。对于第3层来说,在解码端得到的其对应的矩阵元素重建值与其对应的原始矩阵元素值可能不相同,故对3层来说属于有损编码。
对第4层进行编码处理。首先,假设根据第4层之前已编码的第0~3层以及第4层中已编码矩阵元素对应的矩阵元素预测值使用均匀插值计算方式得到第4层的矩阵元素预测值。在第4层中,同样可以先进行纵向插值再进行横向插值,或者先进行横向插值再进行纵向插值,得到第4层中各矩阵元素的预测值。
由于第4层的层数大于确定的待编码层数(即4>2),故在码流中不写入第4层的编码数据。对于第4层来说,在解码端得到的其对应的矩阵元素重建值与其对应的原始矩阵元素值可能不相同,故对4层来说属于有损编码。
其中,在上述过程中,编码端可以每获取一层的编码数据后就对该层的编码数据进行编码,并写入码流,但不限于这种方式。例如,编码端还可以在获取到所有层对应的编码数据后,进行统一编码,然后将编码结果写入码流。
进一步,本实施例并不限制对每层的编码数据进行编码时所使用的编码方法。但是,在本实施例中,对于层数较小的层来说,其编码数据可能较大,一般是以0为均值的正态分布,故较为优选地是对其编码数据进行变长码编码后写入码流。而对于层数较的层来说,其编码数据可能以0居多,故较为优选地对其编码数据进行游程编码后写入码流。其中,在编码端设定一个层数阈值,编码层数的大小可以根据设定的层数阈值来区分。例如,设定层数阈值为4,如果该层的层数小于或等于4,则对该层的编码数据进行变长码编码后写入码流;如果该层的层数大于4,则对该层的编码数据进行游程编码后写入码流。
进一步,在上述举例中,如果编码端需要将8x8矩阵的划分层数和所使用的划分方法进行编码并写入码流,则具体是指将划分层数和每层所包含的矩阵元素在矩阵中的位置进行编码并写入码流。
步骤103、将所述确定的待编码层数进行编码,并写入码流。
其中,待编码层数是由编码端确定的,表明对于划分为预设层数的矩阵元素,只对其中层数小于或等于待编码层的矩阵元素进行编码,并将编码结果写入码流,对其中层数大于待编码层的矩阵元素只预测,用矩阵元素预测值做重建值,不需将编码结果写入码流。故除了在码流中写入矩阵中各层的编码数据之外,还要对待编码层数进行编码并写入码流传输到解码端,以使解码端能够根据待编码层数进行相应地解码操作。
另外,由上述编码方式可以看出,如果当前层的层数小于或等于待编码层数,则本实施例可以实现对该层的无损编码;如果当前层的层数大于待编码层数,则本实施例对该层的编码是有损的。也就是说,可以通过调整待编码层数来实现对矩阵的有损或无损编码的控制。
在本实施例中,编码端通过采用分层架构对待编码矩阵进行编码,当需要对其中某层进行编码时,所要编码的数据(即该层的编码数据)仅为残差数据,其数据量相对较小,更有甚者不需要对某层编码,实现了对矩阵的编码压缩,与现有技术相比,提高了对矩阵的压缩效率,减少了传输矩阵时所占用的码率。其中,在小序列编码过程中采用本实施例的矩阵编码方法,尤其能够大幅提高压缩比。
进一步,对于同一矩阵可以通过改变其划分层数来改变其压缩比,例如可以通过增大划分层数并减少待编码层数来提高压缩比,具有一定的灵活性。
图2为本发明一实施例提供的矩阵解码方法的流程图。如图2所示,本实施例的方法包括:
步骤201、从接收到的码流中解码出矩阵的编码层数。
本实施例的矩阵解码方法与图1A所示矩阵编码方法相适应,是对使用分层架构进行编码的码流进行解码,并对编码端所编码的矩阵进行重建。解码端接收编码端传输的码流,首先从码流中解码出矩阵的编码层数,为后续进行解码打下基础。其中,编码层数即为由编码端确定并在编码后写入码流中的待编码层数,用以表示码流中存在哪些层对应的编码数据。或者说,通过解码出编码层数可以确定从码流中可以直接解码出哪些层。
步骤202、根据所述编码层数和从接收到的码流中解码出的矩阵中层数小于或等于编码层数的各层的编码数据,按照层次顺序依次得到层数小于或等于编码层数的各层的矩阵元素重建值。
在本实施例中,解码端接收到的码流中包含有层数小于或等于所述编码层数的各层的编码数据。解码端根据解码出的编码层数、矩阵的划分层数(即将矩阵划分出的层数信息)以及划分方法等信息,从接收到的矩阵编码码流中解码出层数小于或等于编码层数的各层的编码数据。
如果编码端根据设定的层数阈值对不同层的编码数据采用不同的编码方式时,解码端也要采用相应的方法对码流进行解码。如果当前层的层数小于或等于设定的层数阈值,编码端使用变长码编码对编码数据进行编码;相应地,解码端需要对当前层对应的码流进行变长码解码,获取当前层的编码数据。如果当前层的层数大于层数阈值,编码端使用游程编码对编码数据进行编码;相应地,解码端需要对当前层对应的码流进行游程码解码,获取当前层的编码数据。
其中,对矩阵进行划分的划分层数和/或划分方法可以由编码端与解码端预先约定。例如,当编码端与解码端仅预先约定所使用的划分层数时,编码端可以将所使用的划分方法进行编码并写入码流传输给解码端。相应地,解码端在从码流中解码出矩阵中层数小于或等于所述编码层数的各层的编码数据之前,从码流中解码出所使用的划分方法,并根据约定的划分层数和划分方法从码流中解码出各层的编码数据。又例如:当编码端与解码端仅预先约定所使用的划分方法时,编码端可以将设定的划分层数进行编码并写入码流传输给解码端。相应地,解码端在从码流中解码出矩阵中层数小于或等于所述编码层数的各层的编码数据之前,从码流中解码出划分层数,并根据解码出的划分层数和约定的划分方法从码流中解码出各层的编码数据。再例如:当编码端与解码端同时预先约定所使用的划分层数和划分方法时,解码端可以直接根据约定的划分层数和约定的划分方法从码流中解码出各层的编码数据。
当编码端与解码端未预先约定划分层数和划分方法时,编码端将划分层数和划分方法同时进行编码后写入码流传输给解码端。相应地,解码端在从码流中解码出矩阵中层数小于或等于所述编码层数的各层的编码数据之前,从接收到的码流中解码出划分层数和划分方法。
其中,层数小于或等于编码层数的各层的编码数据是编码端将层数小于或等于待编码层数的各层对应的原始矩阵元素值与各自对应的矩阵元素预测值计算得到残差数据。并且每层对应的矩阵元素预测值是由当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行插值计算得到的。故在获取层数小于或等于编码层数的各层的编码数据时,解码端将层数小于或等于编码层数的各层的编码数据分别与层数小于或等于编码层数的各层对应的矩阵元素预测值进行相加处理,从而获取层数小于或等于编码层数的各层对应的矩阵元素重建值。由此可见,在本步骤中解码出的层数小于或等于编码层数的各层对应的矩阵元素重建值与各自对应的原始矩阵元素值相同,属于无损编码,但其与直接传输原始矩阵元素值本身相比,所传输的数据量要小的多。
其中,对解码端来说,也可以采用与编码端相同的插值方式得到层数小于或等于编码层数的各层对应的矩阵元素预测值,即使用较低层中已经插值得到的矩阵元素预测值,插值得到高层中的矩阵元素预测值,具体插值方法可以是均匀插值计算方法,也可以是加权插值计算方法。例如,可以根据第0层对应的矩阵元素预测值插值出第1层对应的矩阵元素预测值,根据第0层和第1层对应的矩阵元素预测值插值得到第2层的矩阵元素预测值。又例如:根据第0层对应的矩阵元素值插值出其他各层对应的矩阵元素预测值。再例如:根据第0层对应的矩阵元素预测值插值得到第1层和第2层对应的矩阵元素预测值,然后根据第1层和/或第2层对应的矩阵元素预测值插值得到其他各层对应的矩阵元素预测值。
其中,在进行插值计算时,解码端根据预先获知的插值顺序进行插值操作,该插值顺序可以是先横向插值再纵向插值,或者先纵向插值再横向插值。
在上述方式中,最低层对应的矩阵元素预测值可以为最低层对应的原始矩阵元素值,或者为一个或一组预设默认值,并作为初始值插值得到其他各层对应的矩阵元素预测值。并且,对于解码端来说,最低层对应的矩阵元素预测值是已知的。
在此说明,解码端获取层数小于或等于所述编码层数的各层对应的矩阵元素重建值的过程可以是每解码出一层的编码数据,就获取该层对应的矩阵元素重建值。另外,解码端获取层数小于或等于所述编码层数的各层对应的矩阵元素重建值的过程还可以是在全部解码出层数小于或等于所述编码层数的各层的编码数据后,在一起获取层数小于或等于所述编码层数的各层对应的矩阵元素重建值。
步骤203、由层数小于或等于所述编码层数的层的矩阵元素重建值计算得到层数大于所述编码层数的各层对应的矩阵元素重建值。
在获取层数小于或等于编码层数的各层对应的矩阵元素重建值后,解码端由层数小于或等于待编码层数的层对应的矩阵元素重建值进行插值计算,获取层数大于所述编码层数的各层对应的矩阵元素重建值。
其中,插值方法与编码端相适应,例如可以是均匀插值计算或者加权插值计算。而且具体的插值方式也与解码端相适应,例如可以使用层数小于或等于编码层数的各层中某一层对应的矩阵元素重建值进行插值计算得到层数大于所述编码层数的各层对应的矩阵元素重建值;也可以使用其中几层对应的矩阵元素重建值进行插值计算得到层数大于所述编码层数的各层对应的矩阵元素重建值。并且所使用的插值顺序也与编码端相适应,例如可以是先横向插值再纵向插值,还可以是先纵向插值再横向插值。
其中,在该步骤中,解码端获取的层数大于所述编码层数的各层对应的矩阵元素重建值,与编码端获取的层数大于所述编码层数的各层对应的矩阵元素预测值相同,可能与原始矩阵元素值有一定误差,故属于有损编码。
另外,如果没有层数大于编码层数的层,则该步骤的操作可以不执行,也就是说,编码端对该矩阵进行了无损编码。
当由矩阵划分出的各层对应的矩阵元素重建值都获取到后,就实现了对该矩阵的重建。
在本实施例中,重建出的矩阵可以是QM、缩放矩阵、系数加权矩阵、QM经过变换后的变换域矩阵、缩放矩阵经过变换后的变换域矩阵、系数加权矩阵经过变换后的变换域矩阵、QM经过编码预测后的预测残差矩阵、缩放矩阵经过编码预测后的预测残差矩阵或系统加权矩阵经过预测编码后的预测残差矩阵中任意一种或其组合。其中,所述变换可以是Z变换、DCT变换、DFT变换等。所述编码预测是指将QM、缩放矩阵、系数加权矩阵等进行编码,然后将编码后的矩阵和编码前的矩阵(即未编码的原始矩阵)进行求残差。其中,编码预测所使用的编码方法不做限制,例如DPCM。
本实施例的矩阵解码方法,与上述实施例提供的矩阵编码方法相适应,编码端使用分层架构进行编码,实现了对矩阵的大幅压缩,提高了压缩比,降低了传输矩阵所占用的码率,在解码端,相适应的进行分层解码实现矩阵的重建。
图3为本发明一实施例提供的矩阵编码方法的流程图。如图3所示,本实施例的方法包括:
步骤301、根据矩阵集合中矩阵的大小,按照编码顺序依次对矩阵集合中的矩阵进行编码预测,获取所述矩阵的重建矩阵,并对所述矩阵的重建矩阵进行相应的采样处理得到采样矩阵。
在本实施例中,矩阵集合中包括多个大小不同的矩阵,例如同时包括大小为4x4的矩阵、8x8的矩阵、16x16的矩阵、32x32的矩阵等。对于矩阵集合中的矩阵可以是QM、缩放矩阵、系数加权矩阵、QM经过变换后的变换域矩阵、缩放矩阵经过变换后的变换域矩阵、系数加权矩阵经过变换后的变换域矩阵、QM经过编码预测后的预测残差矩阵、缩放矩阵经过编码预测后的预测残差矩阵或系统加权矩阵经过预测编码后的预测残差矩阵。
在本实施例中,按照矩阵大小对矩阵集合中的各矩阵进行编码排序,可以是从小到大的顺序,也可以是从大到小的顺序。并按照编码顺序对各矩阵进行编码预测,获取各矩阵的重建矩阵,并对各矩阵的重建矩阵进行采样处理得到采样矩阵。其中,采样处理的所使用的采样方法与编码顺序有关系,如果是按照从小到大的顺序,则采样处理是指上采样,得到的采样矩阵是比当前矩阵尺寸大的矩阵;如果是按照从大到小的顺序,则采样处理是指下采样,得到的采样矩阵是比当前矩阵尺寸小的矩阵。例如:对16x16矩阵的重建矩阵进行上采样得到32x32的采样矩阵;对16x16矩阵的重建矩阵进行下采样得到8x8的采样矩阵。
在本实施例中,不限制对矩阵进行编码预测所使用的方式。
步骤302、由当前矩阵的重建矩阵和当前矩阵得到第一误差,由按照编码顺序在当前矩阵之前已编码矩阵的重建矩阵进行采样处理得到的采样矩阵和当前矩阵得到第二误差。
在获取当前矩阵的重建矩阵和由根据编码顺序在当前矩阵之前的已编码矩阵的重建矩阵进行采样处理得到的采样矩阵后,将当前矩阵的重建矩阵与当前矩阵本身进行比较,得到第一误差,并将采样矩阵与当前矩阵本身进行比较,得到第二误差。
其中,两个矩阵进行比较获取误差的过程主要是指将两个矩阵对应位置的元素值进行比较,获取所有位置上元素值的差值,再对所有位置上元素值的差值进行平均,获取两个矩阵之间的误差。
步骤303、将第一误差和第二误差进行比较,判断第一误差是否小于或等于第二误差,如果判断结果为是,执行步骤304;如果判断结果为否,执行步骤305。本步骤主要是找出与当前矩阵本身的误差较小的一个矩阵。
以按照由小到大的顺序,依次对4x4矩阵、8x8矩阵、16x16矩阵和32x32矩阵进行编码为例,当对8x8矩阵进行编码时,该8x8矩阵即为当前矩阵,而4x4矩阵是8x8矩阵的之前的一个已编码矩阵,8x8矩阵对应的采样矩阵可由4x4矩阵的重建矩阵进行上采样得到的。例如:假设4x4矩阵的重建矩阵A为[0,1,2,3,4,5,6,7],则经上采样得到的8x8的采样矩阵B为[0,0,2,2,4,4,5,5,6,6,7,7]。在此以一维实例进行说明,但实际上重建矩阵和采样矩阵均为2维。
步骤304、将当前矩阵的重建矩阵作为当前矩阵对应的编码重建矩阵,并将当前矩阵对应的编码结果写入码流。
如果第一误差小于或等于第二误差,说明当前矩阵的重建矩阵与当前矩阵相比误差更小,故将当前矩阵的重建矩阵作为其编码重建矩阵,并对当前矩阵对应的编码数据进行编码,然后写入码流。
步骤305、将由按照编码顺序在当前矩阵之前已编码矩阵的重建矩阵进行采样处理得到的采样矩阵作为当前矩阵对应的编码重建矩阵,并将当前矩阵对应的编码结果写入码流。
如果第一误差大于第二误差,说明由按照编码顺序在当前矩阵之前已编码矩阵的重建矩阵经过采样处理得到的采样矩阵与当前矩阵的误差更小,故将由按照编码顺序在当前矩阵之前已编码矩阵的重建矩阵经过采样处理得到的采样矩阵作为其编码重建矩阵,并对当前矩阵对应的编码数据进行编码,然后写入码流。
其中,当前矩阵是指按照编码顺序编码到的某个矩阵,当对矩阵集合中所有矩阵都编码结束后,就对整个矩阵集合编码结束。
在对各个矩阵进行编码时,可以在获取到各个矩阵的编码重建矩阵后,接着对其对应的编码数据进行编码并写入码流。另外,还可以先编码得到每个矩阵的编码重建矩阵,然后在一起对每个矩阵的编码数据进行编码并写入码流。
在本实施例中,通过对矩阵集合中每个待编码矩阵进行编码预测,获取重建矩阵并和之前已编码矩阵的重建矩阵进行采样处理得到的采样矩阵进行比较,获取误差相对小的矩阵作为当前矩阵的编码重建矩阵并对当前矩阵的编码数据进行编码,一方面可以提高编码压缩率,另一方面还可以保证编码精确度。
一种步骤301的具体实施方式包括:按照矩阵由小到大的顺序对矩阵集合中的各矩阵进行编码处理。当编码到某个矩阵时,该矩阵即为当前矩阵。对矩阵集合中每个矩阵的编码处理包括:对矩阵集合中的矩阵进行编码预测,获取矩阵的重建矩阵,并对矩阵的重建矩阵进行上采样得到采样矩阵,其中,最小矩阵的编码重建矩阵为最小矩阵的重建矩阵。例如,对同时包括4x4矩阵、8x8矩阵、16x16矩阵和32x32矩阵的矩阵组进行编码,是指按照由小到大的顺序,依次对4x4矩阵、8x8矩阵、16x16矩阵和32x32矩阵进行编码。其中,最小矩阵为4x4矩阵,由于最小矩阵没有对应的采样矩阵,故直接将其重建矩阵作为其编码重建矩阵。对于8x8矩阵对应的采样矩阵为4x4矩阵的重建矩阵上采样得到,其大小为8x8。对于16x16矩阵对应的采样矩阵为8x8矩阵的重建矩阵上采样得到,其大小为16x16。对于32x32矩阵对应的采样矩阵为16x16矩阵的重建矩阵上采样得到,其大小为32x32。
另一种步骤301的具体实施方式包括:按照矩阵由大到小的顺序对矩阵集合中的各矩阵进行编码处理。当编码到某个矩阵时,该矩阵即为当前矩阵。对矩阵集合中每个矩阵的编码处理包括:对矩阵集合中的矩阵进行编码预测,获取矩阵的重建矩阵,并对矩阵的重建矩阵进行下采样得到采样矩阵。其中最大矩阵的编码重建矩阵为最大矩阵的重建矩阵。例如,对同时包括4x4矩阵、8x8矩阵、16x16矩阵和32x32矩阵的矩阵组进行编码,是指按照由大到小的顺序,依次对32x32矩阵、16x16矩阵、8x8矩阵和4x4矩阵进行编码。其中,最大矩阵为32x32矩阵,由于最大矩阵没有对应的采样矩阵,故直接将其重建矩阵作为其编码重建矩阵。对于16x16矩阵对应的采样矩阵为32x32矩阵的重建矩阵下采样得到,其大小为16x16。对于8x8矩阵对应的采样矩阵为16x16矩阵的重建矩阵下采样得到,其大小为8x8。对于4x4矩阵对应的采样矩阵为8x8矩阵的重建矩阵下采样得到,其大小为4x4。以8x8重建矩阵下采样到4x4采样矩阵为例说明下采样过程,假设8x8重建矩阵A为[0,1,2,3,4,5,6,7],下采样得到4x4采样矩阵B为[0,2,4,6]。在此以一维为例进行说明,但实际上重建矩阵和采样矩阵均为2维。
进一步,本实施例提供一种对矩阵进行编码预测,获取重建矩阵的实施方式,包括:按照预设划分层数将矩阵进行分层,并将矩阵中的矩阵元素分组到不同分层中。然后,根据确定的待编码层数,按照层次顺序依次对待编码的每层中的矩阵元素进行编码处理,形成重建矩阵。
其中,形成重建矩阵的过程也就是获取每层对应的矩阵元素重建值的过程,具体包括:如果当前层的层数小于或等于所述待编码层数,则根据当前层对应的原始矩阵元素值作为当前层对应的矩阵元素重建值。如果当前层的层数大于所述待编码层数,将当前层对应的矩阵元素预测值作为当前层对应的矩阵元素重建值。
其中,当前层对应的矩阵元素预测值是由该矩阵当前层之前已编码层中和当前层中已编码矩阵元素的重建值或者预测值进行插值计算得到的。
上述形成重建矩阵的实施方式使用分层架构实现重建,具体实现方式可参见图1A所示矩阵编码方法的描述。其区别在于,在该实施方式中是得到每层对应的矩阵元素重建值,而不是直接进行编码处理。
基于上述,当获取到当前编码到的矩阵(即当前)的重建矩阵后,继续判断该重建矩阵是否就是当前矩阵的编码重建矩阵,即通过将重建矩阵与当前矩阵的误差,与当前矩阵之前已编码矩阵的重建矩阵采样得到的采样矩阵与当前矩阵的误差进行比较。
如果确定当前矩阵的重建矩阵为其对应的编码重建矩阵,即第一误差小于或等于第二误差时,则将当前矩阵对应的编码结果写入码流的过程包括:在码流中写入标识当前矩阵是否使用采样矩阵的标识比特,且所述标识比特标识当前矩阵不使用采样矩阵,并将当前矩阵中层数小于或等于待编码层数的各层对应的矩阵元素重建值与层数小于或等于待编码层数的各层对应的矩阵元素预测值计算得到的残差数据作为层数小于或等于各层的0编码数据写入码流,且不在码流中写入当前矩阵中层数大于待编码层数的各层的编码数据,同时将待编码层数写入码流。通过对残差数据进行编码并写入码流或者不在码流中写入编码数据的方式,极大地提高了对矩阵的压缩比,可以降低传输矩阵时所占用的码率。
进一步,在上述过程中,对于层数较小的层的编码数据可能较大,一般是以0为均值的正态分布,故可以对层数较小的层的编码数据进行变长码编码,然后写入码流;而对于层数较大的层的编码数据可能以0居多,故对层数较大的层的编码数据进行游程编码,并写入码流。本实施例预先设定了层数阈值,用于判断层数小于或等于待编码层数的各层是否属于层数较小的层。如果层数小于或等于待编码层数的各层中的某层小于或等于设定的层数阈值,则该层属于层数较小的层,则对该层的编码数据进行变长码编码后写入码流;如果层数小于或等于待编码层数的各层中的某层大于设定的层数阈值,则该层属于层数较大的层,则对该层的编码数据进行游程编码后写入码流。
更进一步,在上述将当前矩阵对应的编码结果写入码流的过程中,可以首先判断该矩阵是否为对称模式,如果是,则确定只传输半个矩阵对应的编码结果,并在码流中写入标识当前矩阵是否为对称矩阵的标识比特,且该标识比特标识当前矩阵是对称矩阵。此时,在对各层进行编码时可以只对其中一半矩阵元素进行编码,进一步提高了对矩阵的压缩比,减少了所传输的码流量,降低了传输矩阵所占用的码率。
如果确定由按照编码顺序在当前矩阵之前已编码矩阵的重建矩阵采样得到的采样矩阵为当前矩阵对应的编码重建矩阵,则将当前矩阵对应的编码结果写入码流的过程包括:在码流中写入标识当前矩阵是否使用采样矩阵的标识比特,且所述标识比特标识当前矩阵使用采样矩阵,且不在码流中写入当前矩阵对应的编码数据。通常该标识比特仅为1比特,数据量较小,提高了对矩阵的压缩比,也可以降低传输矩阵所占用的码率。
进一步,考虑到HEVC块尺寸为4x4,8x8,16x16、32x32,帧内/帧间,亮度/色度U/色度V分量时,每帧数据对应的QM为24个,组成一个量化矩阵集合(QM Set)。当块尺寸更多时,量化矩阵集合中的QM数量可能更多。以帧内、帧间、亮度、色度U、色度V分别进行组合,可以得到6个均包括4x4,8x8,16x16、32x32的小矩阵集合,即该量化矩阵集合中包括6个小矩阵集合,每个小矩阵集合包括4种大小的矩阵。
其中,对每个小矩阵集合的编码处理均采样上述实施例提供的编码方法。对于不同矩阵集合之间来说,首先根据各矩阵的大小进行编码处理,对于大小相同的矩阵,按照先帧内后帧间的顺序进行编码处理,对于同一帧内或帧间的矩阵按照先亮度后色度的顺序进行编码处理。也就是说,依次根据矩阵大小、先帧内后帧间、先亮度后色度的顺序对量化矩阵集合中的多个矩阵进行处理。
例如,当按照由大到小的顺序进行编码处理时,先对帧内32x32的亮度矩阵进行编码处理。具体的,通过对帧内32x32的亮度矩阵进行编码预测,得到帧内32x32的亮度矩阵的重建矩阵,将该重建矩阵作为帧内32x32的亮度矩阵的编码重建矩阵,并对帧内32x32的亮度矩阵的重建矩阵进行下采样得到帧内16x16的亮度采样矩阵。然后,对帧内32x32的色度U矩阵进行编码处理。具体的,通过对帧内32x32的色度U矩阵进行编码预测,得到帧内32x32的色度U矩阵的重建矩阵,将该重建矩阵作为帧内32x32的色度U矩阵的编码重建矩阵,并对帧内32x32的色度U矩阵的重建矩阵进行下采样得到帧内16x16的色度U采样矩阵。同理,对帧内32x32的色度V矩阵进行编码处理。然后,依次对帧间32x32的亮度矩阵、32x32的色度U矩阵、32x32的色度V矩阵进行编码处理。
接下来,对帧内16x16的亮度矩阵进行编码处理。具体的,通过对帧内16x16的亮度矩阵进行编码预测,得到帧内16x16的亮度矩阵的重建矩阵,将该重建矩阵与由帧内32x32的亮度矩阵的重建矩阵进行下采样得到的帧内16x16的亮度采样矩阵,分别与帧内16x16的亮度矩阵进行比较,获取两个误差,并将这两个误差进行比较,取其中误差较小的一个矩阵作为帧内16x16的亮度矩阵的编码重建矩阵,并对帧内16x16的亮度矩阵的重建矩阵进行下采样得到帧内8x8的亮度采样矩阵。然后,依次对帧内16x16的色度U矩阵、帧内16x16的色度V矩阵、帧间16x16的亮度矩阵、帧间16x16的色度U矩阵、帧间16x16的色度V矩阵进行编码处理。
按照上述方式依次对量化矩阵中的每个矩阵进行编码,直到将所有矩阵都编码结束为止。
对于按照由小到大的顺序进行编码处理时,先对帧内4x4的亮度矩阵进行编码处理。然后依次对帧内4x4的色度U矩阵、帧内4x4的色度V矩阵、帧间4x4的亮度矩阵、帧间4x4的色度U矩阵、帧间4x4的色度V矩阵进行编码处理。
接着,依次对帧内8x8的亮度矩阵、帧内8x8的色度U矩阵、帧内8x8的色度V矩阵、帧间8x8的亮度矩阵、帧间8x8的色度U矩阵、帧间8x8的色度V矩阵进行编码处理。其中,帧内8x8的亮度矩阵对应的采样矩阵是由帧内4x4的亮度矩阵的重建矩阵进行上采样得到;帧内8x8的色度U矩阵对应的采样矩阵是由帧内4x4的色度U矩阵的重建矩阵进行上采样得到;帧内8x8的色度V矩阵对应的采样矩阵是由帧内4x4的色度V矩阵的重建矩阵进行上采样得到;帧间8x8的亮度矩阵对应的采样矩阵是由帧间4x4的亮度矩阵的重建矩阵进行上采样得到;帧间8x8的色度U矩阵对应的采样矩阵是由帧间4x4的色度U矩阵的重建矩阵进行上采样得到;帧间8x8的色度V矩阵对应的采样矩阵是由帧间4x4的色度V矩阵的重建矩阵进行上采样得到。
接着,依次对帧内16x16的亮度矩阵、帧内16x16的色度U矩阵、帧内16x16的色度V矩阵、帧间16x16的亮度矩阵、帧间16x16的色度U矩阵、帧间16x16的色度V矩阵进行编码处理。
最后,依次对帧内32x32的亮度矩阵、帧内32x32的色度U矩阵、帧内32x32的色度V矩阵、帧间32x32的亮度矩阵、帧间32x32的色度U矩阵、帧间32x32的色度V矩阵进行编码处理。
图4为本发明一实施例提供的矩阵解码方法的流程图。如图4所示,本实施例的方法包括:
步骤401、确定矩阵集合对应的解码顺序和相应的采样方法。
其中,对于包括多个矩阵的矩阵集合进行解码时,解码端要先确定按照什么样的顺序对矩阵集合中的多个矩阵进行解码,例如按照矩阵由小到大的顺序,或按照矩阵由大到小的顺序。并且,解码端还需要确定与解码顺序相适应的采样方法,例如,如果按照矩阵由小到大的顺序进行解码,则采样方法为上采样;如果按照矩阵由大到小的顺序进行解码,则采样方法为下采样。
对于解码端来说,可以预先与编码端约定对矩阵集合进行编解码时的编解码顺序和相应的采样方法。
另外,如果编码端使用标识比特标识所使用的编码顺序和相应的采样方法,并将标识比特写入码流发送解码端,则解码端可以从码流中解码出标识解码顺序和相应的采样方法的标识比特,从而确定应该使用的解码顺序和相应的采样方法。例如:当解码到标识比特为1时,表示按照矩阵由小到大的顺序进行解码,并使用上采样方法;当解码到标识比特为0时,表示按照矩阵由大到小的顺序进行解码,并使用下采样方法。
步骤402、从码流中解码出标识当前矩阵是否使用采样矩阵的标识比特。
步骤403、判断所述标识比特是否标识当前矩阵使用采样矩阵;如果判断结果为是,执行步骤404;如果判断结果为否,执行步骤405。
其中,解码端可以根据解码出的标识比特的取值来判断当前矩阵是否使用采样矩阵。例如:如果标识比特为1,则标识当前矩阵使用采样矩阵作为其解码重建矩阵;如果标识比特为0,则标识当前矩阵不使用采样矩阵作为其解码重建矩阵。
步骤404、将由按照解码顺序在当前矩阵之前已解码矩阵的解码重建矩阵进行采样处理得到的采样矩阵,作为当前矩阵的解码重建矩阵,并执行步骤406。
当当前矩阵使用采样矩阵时,解码端对按照解码顺序在当前矩阵之前已解码矩阵的解码重建矩阵进行采样处理,得到采样矩阵,然后将得到的采样矩阵作为当前矩阵的解码重建矩阵。例如:当按照矩阵由小到大的顺序解码时,解码端可以对已解码的4x4矩阵的解码重建矩阵进行上采样得到采样矩阵,并将得到的采样矩阵作为8x8矩阵的解码重建矩阵,但并不限于使用在当前矩阵之前已解码且与当前矩阵相邻的矩阵。
步骤405、直接从码流中解码出当前矩阵的解码重建矩阵,并执行步骤406。
当当前矩阵不使用采样矩阵时,解码端根据解码顺序,从码流中解码当前矩阵的编码数据,并根据解码出的编码数据获取当前矩阵的解码重建矩阵。
其中,当编码端使用分层架构对当前矩阵进行编码时,解码端从码流中解码出当前矩阵的解码重建矩阵的过程为:解码端从码流中解码出当前矩阵的编码层数,并从当前矩阵对应的码流数据中解码出当前矩阵中层数小于或等于编码层数的各层的编码数据,然后根据解码出的编码层数和层数小于或等于编码层数的各层的编码数据,按照层次顺序(先解低层次再解高层次)依次得到当前矩阵中层数小于或等于编码层数的各层对应的矩阵元素重建值;接着,解码端由当前矩阵中层数小于或等于编码层数的层对应的矩阵元素重建值进行插值计算得到当前矩阵中层数大于编码层数的各层对应的矩阵元素重建值。其中,所使用的插值方法及插值顺序等均与编码端相适应。例如:插值方法可以是均匀插值方法或加权插值方法;插值顺序可以是先横向再纵向,也可以是先纵向再横向。
当得到当前矩阵中各层对应的矩阵元素重建值后,就得到了当前矩阵的解码重建矩阵。
在上述过程中,解码端从码流中解码出的当前矩阵中层数小于或等于编码层数的各层的编码数据的过程包括:对于层数小于或等于编码层数的各层,如果层数小于或等于设定的层数阈值,则对层数小于或等于编码层数的各层对应的码流进行变长码解码,获取层数小于或等于编码层数的各层的编码数据;如果层数大于层数阈值,则对层数小于或等于编码层数的各层对应的码流进行游程码解码,获取层数小于或等于编码层数的各层的编码数据。该解码过程与编码端相适应。
步骤406、按照解码顺序,继续对码流进行解码处理,并转去执行步骤402,从而从码流中依次解码出矩阵集合中所有矩阵的解码重建矩阵。
本实施例的矩阵解码方法,与图3所示矩阵编码方法相适应,首先确定解码顺序和相应的采样方法,并根据从码流中解码出的标识比特,确定获取矩阵集合中每个矩阵的解码重建矩阵的方式,其中,当标识比特标识当前矩阵使用采样矩阵时,在码流中不存在该当前矩阵的编码数据,提高了编码端对矩阵的压缩比,降低了传输矩阵所占用的码率。
图5A为本发明一实施例提供的矩阵编码装置的结构示意图。如图5A所示,本实施例的装置包括:分层模块51、编码处理模块52和第一编码写入模块53。
其中,分层模块51,用于按照预设划分层数将矩阵进行分层,并将矩阵元素分组到不同的分层中。
编码处理模块52,与分层模块51连接,用于根据确定的待编码层数,按照层次顺序依次对待编码的每层中的矩阵元素进行编码处理。其中,编码到的层被称为当前层,如果当前层的层数小于或等于待编码层数,则编码处理模块52根据当前层对应的原始矩阵元素值和当前层对应的矩阵元素预测值计算得到残差数据作为当前层的编码数据写入码流;如果当前层的层数大于待编码层数,编码处理模块52在码流中不写入当前层的编码数据。其中,当前层对应的矩阵元素预测值是由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行插值计算得到的。
第一编码写入模块53,用于将待编码层数进行编码,并写入码流。
本实施例的矩阵编码装置的各功能模块可用于执行图1A所示矩阵编码方法的流程,其具体工作原理不再赘述,详见方法实施例的描述。
在本实施例中,由矩阵编码装置编码的矩阵可以是QM、缩放矩阵、系数加权矩阵、QM经过变换后的变换域矩阵、缩放矩阵经过变换后的变换域矩阵、系数加权矩阵经过变换后的变换域矩阵、QM经过编码预测后的预测残差数据矩阵、缩放矩阵经过编码预测后的预测残差矩阵或系统加权矩阵经过预测编码后的预测残差矩阵中任意一种或其组合。其中,所述变换可以是Z变换、DCT变换、DFT变换等。所述编码预测是指将QM、缩放矩阵、系数加权矩阵等进行编码,然后将编码后的矩阵和编码前的矩阵(即未编码的原始矩阵)进行求残差。其中,编码预测所使用的编码方法不做限制,例如DPCM。
本实施例的矩阵编码装置,通过将待编码的矩阵进行分层,并根据确定的待编码层数对各层要么获取残差数据作为编码数据写入码流,要么不在码流中写入编码数据,实现对矩阵的分层编码并传输,提高了对矩阵的压缩比,减少了传输矩阵所占用的码率。
图5B为本发明另一实施例提供的矩阵编码装置的结构示意图。本实施例基于图5A所示实施例实现,如图5B所示,本实施例的矩阵编码装置还包括:第二编码写入模块54。
第二编码写入模块54,用于对预设划分层数和将矩阵进行分层的划分方法进行编码,并写入码流。或者,第二编码写入模块54,用于对将矩阵进行分层的划分方法进行编码并写入码流。其中,所述划分方法为将矩阵的矩阵元素分组到不同分层中的分组方法。
在本实施例中,编码处理模块52具体用于根据确定的待编码层数,按照先编码低层后编码高层的方式对矩阵元素进行分层编码。
编码处理模块52具体用于由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行均匀插值计算或者加权插值计算得到当前层对应的矩阵元素预测值。
另外,编码处理模块52还具体用于按照先横向再纵向的插值顺序,或者按照先纵向再横向的插值顺序,由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行插值计算得到当前层对应的矩阵元素预测值。
进一步,编码处理模块52具体用于在当前层的层数小于或等于设定的层数阈值时,对当前层的编码数据进行变长码编码后写入码流,在当前层的层数大于层数阈值时,对当前层的编码数据进行游程编码后写入码流。
上述编码处理模块52的具体工作流程可参见图1A所示方法实施例中的相应描述,在此不再赘述。
本实施例的矩阵编码装置,通过第二编码写入模块将划分层数和/或划分方法写入码流,向解码端提供解码所需的信息,提高了划分矩阵时的灵活性。
图6A为本发明一实施例提供的矩阵解码装置的结构示意图。如图6A所示,本实施例的装置包括:层数解码模块61、第一重建模块62和第二重建模块63。
其中,层数解码模块61,用于从码流中解码出矩阵的编码层数。其中,编码层数即为编码端确定并写入码流的待编码层数。
第一重建模块62,与层数解码模块61连接,用于根据编码层数和从码流中解码出的矩阵中层数小于或等于编码层数的各层的编码数据,按照层次顺序依次得到层数小于或等于编码层数的各层对应的矩阵元素重建值。
第二重建模块63,与第一重建模块62连接,用于由层数小于或等于编码层数的层对应的矩阵元素重建值计算得到层数大于编码层数的各层对应的矩阵元素重建值。
本实施例的矩阵解码装置的各功能模块可用于执行图2所示矩阵解码方法的流程,其具体工作原理不再赘述,详见方法实施例的描述。
在本实施例中,由矩阵解码装置解码出的矩阵可以是QM、缩放矩阵、系数加权矩阵、QM经过变换后的变换域矩阵、缩放矩阵经过变换后的变换域矩阵、系数加权矩阵经过变换后的变换域矩阵、QM经过编码预测后的预测残差矩阵、缩放矩阵经过编码预测后的预测残差矩阵或系统加权矩阵经过预测编码后的预测残差矩阵中任意一种或其组合。其中,所述变换可以是Z变换、DCT变换、DFT变换等。所述编码预测是指将QM、缩放矩阵、系数加权矩阵等进行编码,然后将编码后的矩阵和编码前的矩阵(即未编码的原始矩阵)进行求残差。其中,编码预测所使用的编码方法不做限制,例如DPCM。
本实施例的矩阵解码装置,与图5A所示的矩阵编码装置相配合,从码流中获取编码层数后,根据编码层数和从码流中解码出的层数小于或等于编码层数的各层的编码数据依次解码出各层对应的矩阵元素重建值,实现对矩阵的重建,允许矩阵编码装置使用分层架构对矩阵进行编码,提高了对矩阵的压缩比,减少了传输矩阵所占用的码率。
图6B为本发明另一实施例提供的矩阵解码装置的结构示意图。本实施例基于图6A所示实施例实现,如图6B所示,本实施例的装置还包括:划分信息解码模块64。
划分信息解码模块64,用于从码流中解码出矩阵的划分层数和相应的划分方法,并提供给第一重建模块62和第二重建模块63。或者,划分信息解码模块64,用于从码流中解码出划分方法,并提供给第一重建模块62和第二重建模块63。或者,划分信息解码模块64,用于从码流中解码出划分层数,并提供给第一重建模块62和第二重建模块63。其中,所述划分方法为将矩阵的矩阵元素分组到不同分层中的分组方法。
进一步,本实施例的第二重建模块63具体用于由层数小于或等于编码层数的层对应的矩阵元素重建值进行均匀插值计算或加权插值计算,得到层数大于编码层数的各层对应的矩阵元素重建值。
本实施例的第二重建模块63还具体用于按照先横向再纵向的插值顺序,或者按照先纵向再横向的插值顺序,由层数小于或等于编码层数的层对应的矩阵元素重建值进行插值计算,得到层数大于编码层数的各层对应的矩阵元素重建值。
第一重建模块62具体用于在解码到的当前层的层数小于或等于设定的层数阈值时,对当前层对应的码流进行变长码解码,获取当前层的编码数据,在解码到的当前层的层数大于层数阈值,对当前层对应的码流进行游程码解码,获取当前层的编码数据;然后根据编码层数和从码流中解码出的矩阵中层数小于或等于编码层数的各层的编码数据,按照层次顺序依次得到层数小于或等于编码层数的各层对应的矩阵元素重建值。
上述各功能模块的具体工作原理可参见图2所示方法中的相应流程,在此不再赘述。
本实施例的矩阵解码装置,与图5A或图5B所示的矩阵编码装置相配合,从码流中获取编码层数后,根据编码层数和从码流中解码出的层数小于或等于编码层数的各层的编码数据依次解码出各层对应的矩阵元素重建值,实现对矩阵的重建,允许矩阵编码装置使用分层架构对矩阵进行编码,提高了对矩阵的压缩比,减少了传输矩阵所占用的码率。
图7A为本发明又一实施例提供的矩阵编码装置的结构示意图。如图7A所示,本实施例的装置包括:预测编码模块71、误差获取模块72、第一编码重建模块73和第二编码重建模块74。
其中,预测编码模块71,用于根据矩阵集合中矩阵的大小,按照编码顺序依次对矩阵集合中的矩阵进行编码预测,获取矩阵的重建矩阵,并将矩阵的重建矩阵进行相应的采样处理得到采样矩阵。
误差获取模块72,与预测编码模块71连接,用于由当前矩阵的重建矩阵和当前矩阵得到第一误差,由按照编码顺序在当前矩阵之前已编码矩阵的重建矩阵进行采样处理得到的采样矩阵和当前矩阵得到第二误差。
第一编码重建模块73,与误差获取模块72连接,用于在误差获取模块72获取到的第一误差小于或等于第二误差时,将当前矩阵的重建矩阵作为当前矩阵对应的编码重建矩阵,并将当前矩阵对应的编码结果写入码流。
第二编码重建模块74,与误差获取模块72连接,用于在误差获取模块72获取到的第一误差大于第二误差,将按照编码顺序在当前矩阵之前已编码矩阵的重建矩阵进行采样处理得到的采样矩阵作为当前矩阵对应的编码重建矩阵,并将当前矩阵对应的编码结果写入码流。
本实施例的矩阵编码装置的各功能模块可用于执行图3所示矩阵编码方法的流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例的矩阵编码装置,以矩阵的大小为依据按照编码顺序依次对矩阵集合中各矩阵进行编码预测,得到重建矩阵,并对重建矩阵进行采样处理得到采样矩阵,从当前编码到的矩阵的重建矩阵和由之前已编码矩阵的重建矩阵采样得到的采样矩阵中选择一个误差小的矩阵作为当前矩阵的编码重建矩阵,并将当前矩阵的编码结果写入码流,实现对矩阵集合中每个矩阵的编码,提高了对每个矩阵的压缩比,减少了传输矩阵所占用的码率。
图7B为本发明再一实施例提供的矩阵编码装置的结构示意图。本实施例基于图7A所示实施例实现,如图7B所示,本实施例的装置还包括:标识编码模块75。
标识编码模块75,用于在码流中写入标识编码顺序和所使用的采样方法的标识比特,并提供给预测编码模块71。该标识比特用于标识编码顺序是按照矩阵由大到小的顺序,还是由小到大的顺序依次对多个矩阵进行编码,并且还会标识在按照矩阵由大到小的顺序进行编码时,所使用的采样方法为下采样方法,在按照矩阵由小到大的顺序进行编码时,所使用的采样方法为上采样方法。
进一步,本实施例的预测编码模块71具体用于按照矩阵由小到大的顺序,对矩阵集合中的矩阵进行编码预测,获取矩阵的重建矩阵,并对矩阵的重建矩阵进行上采样得到采样矩阵,其中最小矩阵的编码矩阵为最小矩阵的重建矩阵。或者,
预测编码模块71具体用于按照矩阵由大到小的顺序,对矩阵集合中的矩阵进行编码预测,获取矩阵的重建矩阵,并对矩阵的重建矩阵进行下采样得到采样矩阵,其中最大矩阵的编码矩阵为最大矩阵的重建矩阵。
进一步,本实施例的预测编码模块71具体用于按照预设划分层数将矩阵进行分层,并将矩阵中的矩阵元素分组到不同分层中,根据确定的待编码层数,按照层次顺序依次对待编码的每层中的矩阵元素进行编码处理;如果当前层的层数小于或等于待编码层数,则将当前层对应的原始矩阵元素值作为当前层对应的矩阵元素重建值;如果当前层的层数大于待编码层数,将当前层对应的矩阵元素预测值作为当前层对应的矩阵元素重建值,实现对矩阵的编码预测,获取矩阵的重建矩阵。
其中,当前层对应的矩阵元素预测值是由当前层之前已编码层对应的矩阵元素预测值进行插值计算得到的。
基于上述,本实施例的第一编码重建模块73具体用于在码流中写入标识当前矩阵是否使用采样矩阵的标识比特,且所述标识比特标识当前矩阵不使用采样矩阵,并将当前矩阵中层数小于或等于待编码层数的各层对应的矩阵元素重建值和层数小于或等于待编码层数的各层对应的矩阵元素预测值计算得到的残差数据作为层数小于或等于待编码层数的各层的编码数据写入码流,且不在码流中写入当前矩阵中层数大于待编码层数的各层的编码数据,同时将待编码层数写入码流。
更进一步,第一编码重建模块73更为具体的用于在层数小于或等于待编码层数的各层的层数小于或等于设定的层数阈值时,对层数小于或等于待编码层数的各层的编码数据进行变长码编码后写入码流,在层数小于或等于待编码层数的各层的层数大于层数阈值时,对层数小于或等于待编码层数的各层的编码数据进行游程编码后写入码流。
进一步,第二编码重建模块74具体用于在码流中写入标识将当前矩阵是否使用采样矩阵的标识比特,且所述标识比特标识当前矩阵使用采样矩阵,且不在码流中写入当前矩阵对应的编码数据。
其中,上述各功能模块的具体工作原理可参见图3所示实施例中的相应描述,在此不再赘述。
本实施例的矩阵编码装置,在使用采样矩阵时,在码流中仅写入标识比特而不写入编码数据,在不使用采样矩阵时,在码流中写入原始矩阵元素和矩阵元素预测值的残差数据,提高了对矩阵的压缩比,降低了传输矩阵时所占用的码率,进一步降低了传输整个矩阵集合所占用的码率。
图8为本发明又一实施例提供的矩阵解码装置的结构示意图。如图8所示,本实施例的矩阵解码装置包括:确定模块81、标识解码模块82、第一解码重建模块83、第二解码重建模块84和触发模块85。
其中,确定模块81,用于确定矩阵集合对应的解码顺序和相应的采样方法。
标识解码模块82,用于从码流中解码出标识当前矩阵是否使用采样矩阵的标识比特。
第一解码重建模块83,与确定模块81和标识解码模块82连接,用于在标识比特标识当前矩阵使用采样矩阵时,将由按照解码顺序在当前矩阵之前已解码矩阵的解码重建矩阵进行采样处理得到的采样矩阵,作为当前矩阵的解码重建矩阵。
第二解码重建模块84,与标识解码模块82连接,用于在标识比特标识当前矩阵不使用采样矩阵,直接从码流中解码出当前矩阵的解码重建矩阵。
触发模块85,与标识解码模块82、第一解码重建模块83和第二解码重建模块84连接,用于触发标识解码模块82、第一解码重建模块83和第二解码重建模块84,按照解码顺序,依次解码出矩阵集合中所有矩阵的解码重建矩阵。
本实施例的矩阵解码装置的各功能模块可用于执行图4所示矩阵解码方法的流程,其具体工作原理不再赘述,详见方法实施例的描述。
进一步,本实施例的确定模块81具体用于预先约定解码顺序和相应的采样方法,或者具体用于从码流中解码出标识解码顺序和相应的采样方法的标识比特,从而确定出解码矩阵集合所使用的解码顺序和相应的采样方法。
本实施例的第二解码重建模块84具体用于根据解码顺序,从码流中解码出当前矩阵的编码层数,根据编码层数和从码流中解码出的当前矩阵中层数小于或等于编码层数的各层的编码数据,按照层次顺序依次得到当前矩阵中层数小于或等于编码数据的各层对应的矩阵元素重建值;然后,由当前矩阵中层数小于或等于编码层数的层对应的矩阵元素重建值计算得到当前矩阵中层数大于所述编码层数的各层对应的矩阵元素重建值。
更为具体的,第二解码重建模块84用于对于层数小于或等于编码层数的各层,如果层数小于或等于设定的层数阈值,对层数小于或等于编码层数的各层对应的码流进行变长码解码,获取层数小于或等于编码层数的各层的编码数据;如果层数大于层数阈值,对层数小于或等于编码层数的各层对应的码流进行游程码解码,获取层数小于或等于编码层数的各层的编码数据。
上述功能模块具体可用于执行图4所示矩阵解码方法中的相应流程,其具体工作原理在此不再赘述。
本实施例的矩阵解码装置,与图7A所示矩阵编码装置相配合,首先确定解码顺序和相应的采样方法,并根据从码流中解码出的标识比特,确定获取矩阵集合中每个矩阵的解码重建矩阵的方式,其中,当标识比特标识当前矩阵使用采样矩阵时,在码流中不存在该当前矩阵的编码数据,提高了矩阵编码装置对矩阵的压缩比,降低了传输矩阵所占用的码率。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (48)

1.一种矩阵编码方法,其特征在于,包括:
按照预设划分层数将矩阵进行分层,并将矩阵元素分组到不同分层中;
根据确定的待编码层数,按照层次顺序依次对待编码的每层中的矩阵元素进行编码处理;
如果当前层的层数小于或等于所述待编码层数,则根据当前层对应的原始矩阵元素值和当前层对应的矩阵元素预测值计算得到的残差数据作为当前层的编码数据写入码流;
如果当前层的层数大于所述待编码层数,在所述码流中不写入当前层的编码数据;
其中,当前层对应的矩阵元素预测值是由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行插值计算得到的;
将所述待编码层数进行编码,并写入所述码流。
2.根据权利要求1所述的矩阵编码方法,其特征在于,所述根据确定的待编码层数,按照层次顺序依次对待编码的每层中的矩阵元素进行编码处理包括:
根据所述确定的待编码层数,按照先编码低层后编码高层的方式对矩阵元素进行分层编码。
3.根据权利要求1所述的矩阵编码方法,其特征在于,所述矩阵为量化矩阵、缩放矩阵、系数加权矩阵、量化矩阵经过变换后的变换域矩阵、缩放矩阵经过变换后的变换域矩阵、系数加权矩阵经过变换后的变换域矩阵、量化矩阵经过编码预测后的预测残差矩阵、缩放矩阵经过编码预测后的预测残差矩阵或系数加权矩阵经过编码预测后的预测残差矩阵。
4.根据权利要求1所述的矩阵编码方法,其特征在于,所述由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行插值计算得到当前层对应的矩阵元素预测值包括:
由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行均匀插值计算或者加权插值计算得到当前层对应的矩阵元素预测值。
5.根据权利要求1所述的矩阵编码方法,其特征在于,所述由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行插值计算得到当前层对应的矩阵元素预测值包括:
按照先横向再纵向的插值顺序,由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行插值计算得到当前层对应的矩阵元素预测值;或者
按照先纵向再横向的插值顺序,由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行插值计算得到当前层对应的矩阵元素预测值。
6.根据权利要求1所述的矩阵编码方法,其特征在于,最低层对应的矩阵元素预测值为最低层对应的原始矩阵元素值,或者为一个或者一组预设默认值。
7.根据权利要求1所述的矩阵编码方法,其特征在于,所述待编码层数小于所述预设划分层数。
8.根据权利要求1-7任一项所述的矩阵编码方法,其特征在于,还包括:
对所述预设划分层数和将所述矩阵进行分层的划分方法进行编码,并写入所述码流;或者
将所述预设划分层数在编码端预先约定,对将所述矩阵进行分层的划分方法进行编码并写入所述码流;或者
将所述预设划分层数和将所述矩阵进行分层的划分方法均在编码端预先预定;
所述划分方法为将所述矩阵的矩阵元素分组到不同分层中的分组方法。
9.根据权利要求1-7任一项所述矩阵编码方法,其特征在于,所述根据当前层对应的原始矩阵元素值和当前层对应的矩阵元素预测值计算得到残差数据作为当前层的编码数据写入码流包括:
如果当前层的层数小于或等于设定的层数阈值,对所述当前层的编码数据进行变长码编码后写入所述码流;
如果当前层的层数大于所述层数阈值,对所述当前层的编码数据进行游程编码后写入所述码流。
10.一种矩阵解码方法,其特征在于,包括:
从码流中解码出矩阵的编码层数;
根据所述编码层数和从所述码流中解码出的所述矩阵中层数小于或等于所述编码层数的各层的编码数据,按照层次顺序依次得到层数小于或等于所述编码层数的各层对应的矩阵元素重建值;
由层数小于或等于所述编码层数的层对应的矩阵元素重建值计算得到层数大于所述编码层数的各层对应的矩阵元素重建值。
11.根据权利要求10所述的矩阵解码方法,其特征在于,所述矩阵为量化矩阵、缩放矩阵、系数加权矩阵、量化矩阵经过变换后的变换域矩阵、缩放矩阵经过变换后的变换域矩阵、系数加权矩阵经过变换后的变换域矩阵、量化矩阵经过编码预测后的预测残差矩阵、缩放矩阵经过编码预测后的预测残差矩阵或系数加权矩阵经过编码预测后的预测残差矩阵。
12.根据权利要求10所述的矩阵解码方法,其特征在于,由层数小于或等于所述编码层数的层对应的矩阵元素重建值计算得到层数大于所述编码层数的各层对应的矩阵元素重建值包括:
由层数小于或等于所述编码层数的层对应的矩阵元素重建值进行均匀插值计算或加权插值计算,得到层数大于所述编码层数的各层对应的矩阵元素重建值。
13.根据权利要求10所述的矩阵解码方法,其特征在于,由层数小于或等于所述编码层数的层对应的矩阵元素重建值计算得到层数大于所述编码层数的各层对应的矩阵元素重建值包括:
按照先横向再纵向的插值顺序,由层数小于或等于所述编码层数的层对应的矩阵元素重建值计算得到层数大于所述编码层数的各层对应的矩阵元素重建值;或者
按照先纵向再横向的插值顺序,由层数小于或等于所述编码层数的层对应的矩阵元素重建值计算得到层数大于所述编码层数的各层对应的矩阵元素重建值。
14.根据权利要求10-13任一项所述的矩阵解码方法,其特征在于,还包括:
从所述码流中解码出所述矩阵的划分层数和相应的划分方法;或者
从所述码流中解码出所述划分方法;或者
从所述码流中解码出所述划分层数;所述划分方法为将所述矩阵的矩阵元素分组到不同分层中的分组方法。
15.根据权利要求10-13任一项所述的矩阵解码方法,其特征在于,所述根据所述待编码层数,从所述码流中解码出所述矩阵中层数小于或等于所述编码层数的各层的编码数据包括:
如果解码到的当前层的层数小于或等于设定的层数阈值,对所述当前层对应的码流进行变长码解码,获取所述当前层的编码数据;
如果解码到的当前层的层数大于所述层数阈值,对所述当前层对应的码流进行游程码解码,获取所述当前层的编码数据。
16.一种矩阵编码方法,其特征在于,包括:
根据矩阵集合中矩阵的大小,按照编码顺序依次对所述矩阵集合中的矩阵进行编码预测,获取所述矩阵的重建矩阵,并将所述矩阵的重建矩阵进行相应的采样处理得到采样矩阵;
由当前矩阵的重建矩阵和当前矩阵得到第一误差,由按照所述编码顺序在当前矩阵之前已编码矩阵的重建矩阵进行采样处理得到的采样矩阵和当前矩阵得到第二误差;
如果所述第一误差小于或等于所述第二误差,将当前矩阵的重建矩阵作为当前矩阵对应的编码重建矩阵,并将当前矩阵对应的编码结果写入码流;
如果所述第一误差大于所述第二误差,将按照所述编码顺序在当前矩阵之前已编码矩阵的重建矩阵进行采样处理得到的采样矩阵作为当前矩阵对应的编码重建矩阵,并将当前矩阵对应的编码结果写入所述码流。
17.根据权利要求16所述的矩阵编码方法,其特征在于,所述根据矩阵集合中待编码矩阵的大小,按照编码顺序依次对矩阵集合中的矩阵进行编码预测,获取待编码矩阵的重建矩阵,并将所述待编码矩阵的重建矩阵进行相应的采样处理得到采样矩阵包括:
按照矩阵由小到大的顺序,对所述矩阵集合中的矩阵进行编码预测,获取所述矩阵的重建矩阵,并对所述矩阵的重建矩阵进行上采样得到采样矩阵,其中最小矩阵的编码重建矩阵为最小矩阵的重建矩阵;或者
按照矩阵由大到小的顺序,对所述矩阵集合中的矩阵进行编码预测,获取所述矩阵的重建矩阵,并对所述矩阵的重建矩阵进行下采样得到采样矩阵,其中最大矩阵的编码重建矩阵为最大矩阵的重建矩阵。
18.根据权利要求16或17所述的矩阵编码方法,其特征在于,所述对矩阵集合中的矩阵进行编码预测,获取所述矩阵的重建矩阵包括:
按照预设划分层数将所述矩阵进行分层,并将所述矩阵中的矩阵元素分组到不同分层中;
根据确定的待编码层数,按照层次顺序依次对待编码的每层中的矩阵元素进行编码处理;
如果当前层的层数小于或等于所述待编码层数,则将当前层对应的原始矩阵元素值作为当前层对应的矩阵元素重建值;
如果当前层的层数大于所述待编码层数,将当前层对应的矩阵元素预测值作为当前层对应的矩阵元素重建值;
其中,当前层对应的矩阵元素预测值是由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行插值计算得到的。
19.根据权利要求18所述的矩阵编码方法,其特征在于,
如果所述第一误差大于或等于所述第二误差,所述将当前矩阵对应的编码结果写入码流包括:
在所述码流中写入标识当前矩阵是否使用采样矩阵的标识比特,所述标识比特标识当前矩阵不使用采样矩阵,并将当前矩阵中层数小于或等于所述待编码层数的各层对应的矩阵元素重建值和层数小于或等于所述待编码层数的各层对应的矩阵元素预测值计算得到的残差数据作为层数小于或等于所述待编码层数的各层的编码数据写入所述码流,且不在所述码流中写入当前矩阵中层数大于所述待编码层数的各层的编码数据,同时将所述待编码层数写入所述码流;
如果所述第一误差大于所述第二误差,所述将当前矩阵对应的编码结果写入所述码流包括:
在所述码流中写入标识将当前矩阵是否使用采样矩阵的标识比特,所述标识比特标识当前矩阵使用采样矩阵,且不在所述码流中写入当前矩阵对应的编码数据。
20.根据权利要求19所述的矩阵编码方法,其特征在于,所述将当前矩阵中层数小于或等于所述待编码层数的各层对应的矩阵元素重建值和所述各层对应的矩阵元素预测值计算得到的残差数据作为层数小于或等于所述待编码层数的各层的编码数据写入所述码流包括:
对于层数小于或等于所述待编码层数的各层,如果层数小于或等于设定的层数阈值,对层数小于或等于所述待编码层数的各层的编码数据进行变长码编码后写入所述码流;
对于层数小于或等于所述待编码层数的各层,如果层数大于所述层数阈值,对层数小于或等于所述待编码层数的各层的编码数据进行游程编码后写入所述码流。
21.根据权利要求16或17所述的矩阵编码方法,其特征在于,还包括:
在同时存在由帧内/帧间、亮度/色度组合出的多个矩阵集合时,在矩阵的大小相同时,按照先帧内后帧间、先亮度后色度的顺序,依次对多个矩阵集合中的矩阵进行编码处理。
22.根据权利要求16或17所述的矩阵编码方法,其特征在于,还包括:
预先约定所述编码顺序和所使用的采样方法;或者,
在所述码流中写入标识所述编码顺序和所使用的采样方法的标识比特。
23.一种矩阵解码方法,其特征在于,包括:
确定矩阵集合对应的解码顺序和相应的采样方法;
从码流中解码出标识当前矩阵是否使用采样矩阵的标识比特;
如果所述标识比特标识当前矩阵使用采样矩阵,将由按照所述解码顺序在当前矩阵之前已解码矩阵的解码重建矩阵进行采样处理得到的采样矩阵,作为当前矩阵的解码重建矩阵;
如果所述标识比特标识当前矩阵不使用采样矩阵,直接从所述码流中解码出当前矩阵的解码重建矩阵;
按照所述解码顺序,依次解码出所述矩阵集合中所有矩阵的解码重建矩阵。
24.根据权利要求23所述的矩阵解码方法,其特征在于,所述确定矩阵集合对应的解码顺序和相应的采样方法包括:
预先约定所述解码顺序和相应的采样方法;或者
从所述码流中解码出标识所述解码顺序和相应的采样方法的标识比特。
25.根据权利要求23或24所述的矩阵解码方法,其特征在于,确定出的解码顺序和相应的采样方法包括:
所述解码顺序为按照矩阵由小到大的顺序,相应的采样方法为上采样方法;或者
所述解码顺序为按照矩阵由大到小的顺序,相应的采样方法为下采样方法。
26.根据权利要求23或24所述的矩阵解码方法,其特征在于,所述直接从所述码流中解码出当前矩阵的解码重建矩阵包括:
根据所述解码顺序,从所述码流中解码出当前矩阵的编码层数,根据所述编码层数和从所述码流中解码出的当前矩阵中层数小于或等于所述编码层数的各层的编码数据,按照层次顺序依次得到当前矩阵中层数小于或等于所述编码数据的各层对应的矩阵元素重建值;
由当前矩阵中层数小于或等于所述编码层数的层对应的矩阵元素重建值计算得到当前矩阵中层数大于所述编码层数的各层对应的矩阵元素重建值。
27.根据权利要求26所述的矩阵解码方法,其特征在于,从所述码流中解码出的当前矩阵中层数小于或等于所述编码层数的各层的编码数据包括:
对于层数小于或等于所述编码层数的各层,如果层数小于或等于设定的层数阈值,对层数小于或等于所述编码层数的各层对应的码流进行变长码解码,获取层数小于或等于所述编码层数的各层的编码数据;
对于层数小于或等于所述编码层数的各层,如果层数大于所述层数阈值,对层数小于或等于所述编码层数的各层对应的码流进行游程码解码,获取层数小于或等于所述编码层数的各层的编码数据。
28.一种矩阵编码装置,其特征在于,包括:
分层模块,用于按照预设划分层数将矩阵进行分层,并将矩阵元素分组到不同的分层中;
编码处理模块,用于根据确定的待编码层数,按照层次顺序依次对待编码的每层中的矩阵元素进行编码处理;如果当前层的层数小于或等于所述待编码层数,则根据当前层对应的原始矩阵元素值和当前层对应的矩阵元素预测值计算得到残差数据作为当前层的编码数据写入码流;如果当前层的层数大于所述待编码层数,在所述码流中不写入当前层的编码数据;
其中,当前层对应的矩阵元素预测值是由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行插值计算得到的;
第一编码写入模块,用于将所述待编码层数进行编码,并写入所述码流。
29.根据权利要求28所述的矩阵编码装置,其特征在于,所述编码处理模块具体用于根据所述确定的待编码层数,按照先编码低层后编码高层的方式对矩阵元素进行分层编码。
30.根据权利要求28所述的矩阵编码装置,其特征在于,所述编码处理模块具体用于由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行均匀插值计算或者加权插值计算得到当前层对应的矩阵元素预测值。
31.根据权利要求28所述的矩阵编码装置,其特征在于,所述编码处理模块具体用于按照先横向再纵向的插值顺序,或者按照先纵向再横向的插值顺序,由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行插值计算得到当前层对应的矩阵元素预测值。
32.根据权利要求28-31任一项所述的矩阵编码装置,其特征在于,还包括:
第二编码写入模块,用于对所述预设划分层数和将所述矩阵进行分层的划分方法进行编码,并写入所述码流,或者用于对将所述矩阵进行分层的划分方法进行编码并写入所述码流;所述划分方法为将所述矩阵的矩阵元素分组到不同分层中的分组方法。
33.根据权利要求28-31任一项所述的矩阵编码装置,其特征在于,所述编码处理模块具体用于在当前层的层数小于或等于设定的层数阈值时,对所述当前层的编码数据进行变长码编码后写入所述码流,在当前层的层数大于所述层数阈值时,对所述当前层的编码数据进行游程编码后写入所述码流。
34.一种矩阵解码装置,其特征在于,包括:
层数解码模块,用于从码流中解码出矩阵的编码层数;
第一重建模块,用于根据所述编码层数和从所述码流中解码出的所述矩阵中层数小于或等于所述编码层数的各层的编码数据,按照层次顺序依次得到层数小于或等于所述编码层数的各层对应的矩阵元素重建值;
第二重建模块,用于由层数小于或等于所述编码层数的层对应的矩阵元素重建值计算得到层数大于所述编码层数的各层对应的矩阵元素重建值。
35.根据权利要求34所述的矩阵解码装置,其特征在于,所述第二重建模块具体用于由层数小于或等于所述编码层数的层对应的矩阵元素重建值进行均匀插值计算或加权插值计算,得到层数大于所述编码层数的各层对应的矩阵元素重建值。
36.根据权利要求34所述的矩阵解码装置,其特征在于,所述第二重建模块具体用于按照先横向再纵向的插值顺序,或者按照先纵向再横向的插值顺序,由层数小于或等于所述编码层数的层对应的矩阵元素重建值计算得到层数大于所述编码层数的各层对应的矩阵元素重建值。
37.根据权利要求34-36任一项所述的矩阵解码装置,其特征在于,还包括:
划分信息解码模块,用于从所述码流中解码出所述矩阵的划分层数和相应的划分方法,或者用于从所述码流中解码出所述划分方法,或者用于从所述码流中解码出所述划分层数;所述划分方法为将所述矩阵的矩阵元素分组到不同分层中的分组方法。
38.根据权利要求34-36任一项所述的矩阵解码装置,其特征在于,所述第一重建模块具体用于在解码到的当前层的层数小于或等于设定的层数阈值时,对所述当前层对应的码流进行变长码解码,获取所述当前层的编码数据,在解码到的当前层的层数大于所述层数阈值,对所述当前层对应的码流进行游程码解码,获取所述当前层的编码数据。
39.一种矩阵编码装置,其特征在于,包括:
预测编码模块,用于根据矩阵集合中矩阵的大小,按照编码顺序依次对所述矩阵集合中的矩阵进行编码预测,获取所述矩阵的重建矩阵,并将所述矩阵的重建矩阵进行相应的采样处理得到采样矩阵;
误差获取模块,用于由当前矩阵的重建矩阵和当前矩阵得到第一误差,由按照所述编码顺序在当前矩阵之前已编码矩阵的重建矩阵进行采样处理得到的采样矩阵和当前矩阵得到第二误差;
第一编码重建模块,用于在所述第一误差小于或等于所述第二误差,将当前矩阵的重建矩阵作为当前矩阵对应的编码重建矩阵,并将当前矩阵对应的编码结果写入码流;
第二编码重建模块,用于在所述第一误差大于所述第二误差,将按照所述编码顺序在当前矩阵之前已编码矩阵的重建矩阵进行采样处理得到的采样矩阵作为当前矩阵对应的编码重建矩阵,并将当前矩阵对应的编码结果写入所述码流。
40.根据权利要求39所述的矩阵编码装置,其特征在于,所述预测编码模块具体用于按照矩阵由小到大的顺序,对所述矩阵集合中的矩阵进行编码预测,获取所述矩阵的重建矩阵,并对所述矩阵的重建矩阵进行上采样得到采样矩阵,其中最小矩阵的编码重建矩阵为最小矩阵的重建矩阵;或者具体用于按照矩阵由大到小的顺序,对所述矩阵集合中的矩阵进行编码预测,获取所述矩阵的重建矩阵,并对所述矩阵的重建矩阵进行下采样得到采样矩阵,其中最大矩阵的编码重建矩阵为最大矩阵的重建矩阵。
41.根据权利要求39或40所述的矩阵编码装置,其特征在于,所述预测编码模块具体用于按照预设划分层数将所述矩阵进行分层,并将所述矩阵中的矩阵元素分组到不同分层中,根据确定的待编码层数,按照层次顺序依次对待编码的每层中的矩阵元素进行编码处理;如果当前层的层数小于或等于所述待编码层数,则将当前层对应的原始矩阵元素值作为当前层对应的矩阵元素重建值;如果当前层的层数大于所述待编码层数,将当前层对应的矩阵元素预测值作为当前层对应的矩阵元素重建值;
其中,当前层对应的矩阵元素预测值是由所述矩阵当前层之前已编码层中和当前层中已编码矩阵元素的矩阵元素重建值或者矩阵元素预测值进行插值计算得到的。
42.根据权利要求41所述的矩阵编码装置,其特征在于,所述第一编码重建模块具体用于在所述码流中写入标识当前矩阵是否使用采样矩阵的标识比特,所述标识比特标识当前矩阵不使用采样矩阵,并将当前矩阵中层数小于或等于所述待编码层数的各层对应的矩阵元素重建值和层数小于或等于所述待编码层数的各层对应的矩阵元素预测值计算得到的残差数据作为层数小于或等于所述待编码层数的各层的编码数据写入所述码流,且不在所述码流中写入当前矩阵中层数大于所述待编码层数的各层的编码数据,同时将所述待编码层数写入所述码流;
所述第二编码重建模块具体用于在所述码流中写入标识将当前矩阵是否使用采样矩阵的标识比特,所述标识比特标识当前矩阵使用采样矩阵,且不在所述码流中写入当前矩阵对应的编码数据。
43.根据权利要求42所述的矩阵编码装置,其特征在于,所述第一编码重建模块更为具体的用于对于层数小于或等于所述待编码层数的各层,如果层数小于或等于设定的层数阈值时,对层数小于或等于所述待编码层数的各层的编码数据进行变长码编码后写入所述码流,如果层数大于所述层数阈值时,对层数小于或等于所述待编码层数的各层的编码数据进行游程编码后写入所述码流。
44.根据权利要求39或40所述的矩阵编码装置,其特征在于,还包括:
标识编码模块,用于在所述码流中写入标识所述编码顺序和所使用的采样方法的标识比特。
45.一种矩阵解码装置,其特征在于,包括:
确定模块,用于确定矩阵集合对应的解码顺序和相应的采样方法;
标识解码模块,用于从码流中解码出标识当前矩阵是否使用采样矩阵的标识比特;
第一解码重建模块,用于在所述标识比特标识当前矩阵使用采样矩阵时,将由按照所述解码顺序在当前矩阵之前已解码矩阵的解码重建矩阵进行采样处理得到的采样矩阵,作为当前矩阵的解码重建矩阵;
第二解码重建模块,用于在所述标识比特标识当前矩阵不使用采样矩阵,直接从所述码流中解码出当前矩阵的解码重建矩阵;
触发模块,用于触发所述标识解码模块、所述第一解码重建模块和所述第二解码重建模块,按照所述解码顺序,依次解码出所述矩阵集合中所有矩阵的解码重建矩阵。
46.根据权利要求45所述的矩阵解码装置,其特征在于,所述确定模块具体用于预先约定所述解码顺序和相应的采样方法,或者具体用于从所述码流中解码出标识所述解码顺序和相应的采样方法的标识比特。
47.根据权利要求45或46所述的矩阵解码装置,其特征在于,所述第二解码重建模块具体用于根据所述解码顺序,从所述码流中解码出当前矩阵的编码层数,根据所述编码层数和从所述码流中解码出的当前矩阵中层数小于或等于所述编码层数的各层的编码数据,按照层次顺序依次得到当前矩阵中层数小于或等于所述编码数据的各层对应的矩阵元素重建值;然后,由当前矩阵中层数小于或等于所述编码层数的层对应的矩阵元素重建值计算得到当前矩阵中层数大于所述编码层数的各层对应的矩阵元素重建值。
48.根据权利要求47所述的矩阵解码装置,其特征在于,所述第二解码重建模块更为具体的用于对于层数小于或等于所述编码层数的各层,如果层数小于或等于设定的层数阈值,对层数小于或等于所述编码层数的各层对应的码流进行变长码解码,获取层数小于或等于所述编码层数的各层的编码数据;如果层数大于所述层数阈值,对层数小于或等于所述编码层数的各层对应的码流进行游程码解码,获取层数小于或等于所述编码层数的各层的编码数据。
CN201110350455.2A 2011-11-08 2011-11-08 矩阵编码方法与装置及解码方法与装置 Active CN103096056B (zh)

Priority Applications (8)

Application Number Priority Date Filing Date Title
CN201110350455.2A CN103096056B (zh) 2011-11-08 2011-11-08 矩阵编码方法与装置及解码方法与装置
PCT/CN2012/084307 WO2013067949A1 (zh) 2011-11-08 2012-11-08 矩阵编码方法与装置及解码方法与装置
EP19173526.5A EP3585055A1 (en) 2011-11-08 2012-11-08 Method and apparatus for coding matrix and method and apparatus for decoding matrix
EP12848646.1A EP2765770B1 (en) 2011-11-08 2012-11-08 Matrix encoding method and device thereof, and matrix decoding method and device thereof
US14/273,149 US9565429B2 (en) 2011-11-08 2014-05-08 Method and apparatus for coding matrix and method and apparatus for decoding matrix
US15/387,305 US10123016B2 (en) 2011-11-08 2016-12-21 Method and apparatus for coding matrix and method and apparatus for decoding matrix
US16/157,739 US10742982B2 (en) 2011-11-08 2018-10-11 Method and apparatus for coding matrix and method and apparatus for decoding matrix
US16/928,632 US11265547B2 (en) 2011-11-08 2020-07-14 Method and apparatus for coding matrix and method and apparatus for decoding matrix

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110350455.2A CN103096056B (zh) 2011-11-08 2011-11-08 矩阵编码方法与装置及解码方法与装置

Publications (2)

Publication Number Publication Date
CN103096056A true CN103096056A (zh) 2013-05-08
CN103096056B CN103096056B (zh) 2015-11-25

Family

ID=48208131

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110350455.2A Active CN103096056B (zh) 2011-11-08 2011-11-08 矩阵编码方法与装置及解码方法与装置

Country Status (4)

Country Link
US (4) US9565429B2 (zh)
EP (2) EP2765770B1 (zh)
CN (1) CN103096056B (zh)
WO (1) WO2013067949A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775717A (zh) * 2016-12-15 2017-05-31 盛科网络(苏州)有限公司 基于矩阵编码自动插入Feed‑through路径的方法
WO2018049549A1 (en) * 2016-09-13 2018-03-22 Mediatek Inc. Method of multiple quantization matrix sets for video coding
WO2020192633A1 (en) * 2019-03-25 2020-10-01 Mediatek Inc. Method and apparatus of the quantization matrix computation and representation for video coding
CN113196760A (zh) * 2018-12-17 2021-07-30 佳能株式会社 图像编码设备和图像解码设备及其控制方法和程序
CN113422960A (zh) * 2021-06-15 2021-09-21 上海辰珅信息科技有限公司 图像的传输方法及装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3083042A1 (fr) * 2018-06-25 2019-12-27 B<>Com Procede de decodage d'une image, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes
TW202106017A (zh) * 2019-06-21 2021-02-01 法商內數位Vc控股法國公司 用於視訊編碼及解碼的單一索引量化矩陣設計
CN112616057A (zh) * 2019-10-04 2021-04-06 Oppo广东移动通信有限公司 图像预测方法、编码器、解码器以及存储介质
CN111556319B (zh) * 2020-05-14 2021-12-17 电子科技大学 一种基于矩阵分解的视频编码方法
CN112511824B (zh) * 2020-11-27 2022-12-02 苏州浪潮智能科技有限公司 一种图像压缩采样方法及组件
EP4378163A1 (en) * 2021-07-27 2024-06-05 Beijing Dajia Internet Information Technology Co., Ltd. Coding enhancement in cross-component sample adaptive offset

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6944222B2 (en) 2002-03-04 2005-09-13 Koninklijke Philips Electronics N.V. Efficiency FGST framework employing higher quality reference frames
JP4949836B2 (ja) 2003-08-29 2012-06-13 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 記述的モデルパラメータを用いたエンハンスメントレイヤデータを符号化及び復号化するシステム及び方法
KR20070090241A (ko) 2004-12-10 2007-09-05 코닌클리케 필립스 일렉트로닉스 엔.브이. 디지털 비디오 레코더에서 계층화된 디지털 비디오 코딩을위한 시스템 및 방법
CN101317463B (zh) * 2006-03-16 2012-10-17 华为技术有限公司 在编解码中的实现量化的方法和装置
CN101039421A (zh) * 2006-03-16 2007-09-19 华为技术有限公司 在编解码中的实现量化的方法和装置
US8199812B2 (en) 2007-01-09 2012-06-12 Qualcomm Incorporated Adaptive upsampling for scalable video coding
ATE459209T1 (de) 2007-10-19 2010-03-15 Research In Motion Ltd BILDGRÖßENANPASSUNG NACH WILLKÜRLICHEM VERHÄLTNIS IM DCT-BEREICH
US8233727B2 (en) * 2007-10-19 2012-07-31 Research In Motion Limited Arbitrary ratio image resizing in the DCT domain
KR101426272B1 (ko) * 2008-03-10 2014-08-07 삼성전자주식회사 영상 부호화장치 및 영상 복호화장치
CN101287119B (zh) * 2008-04-28 2010-06-02 北京大学深圳研究生院 基于频谱的图像分层编解码方法及系统
CN101848069B (zh) * 2009-12-22 2013-06-19 北京邮电大学 一种基于分级业务的多天线数据传输方法、系统及装置
CN103780912B (zh) * 2011-02-10 2017-11-24 威勒斯媒体国际有限公司 图像处理装置和图像处理方法
CN102227133B (zh) * 2011-06-23 2013-01-09 天津大学 一种立体视频传输方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018049549A1 (en) * 2016-09-13 2018-03-22 Mediatek Inc. Method of multiple quantization matrix sets for video coding
CN106775717A (zh) * 2016-12-15 2017-05-31 盛科网络(苏州)有限公司 基于矩阵编码自动插入Feed‑through路径的方法
CN106775717B (zh) * 2016-12-15 2020-04-17 盛科网络(苏州)有限公司 基于矩阵编码自动插入Feed-through路径的方法
CN113196760A (zh) * 2018-12-17 2021-07-30 佳能株式会社 图像编码设备和图像解码设备及其控制方法和程序
CN113196760B (zh) * 2018-12-17 2024-03-19 佳能株式会社 图像编码设备、图像解码设备、控制方法和存储介质
WO2020192633A1 (en) * 2019-03-25 2020-10-01 Mediatek Inc. Method and apparatus of the quantization matrix computation and representation for video coding
CN113796074A (zh) * 2019-03-25 2021-12-14 联发科技股份有限公司 用于视频编解码的量化矩阵计算和表示的方法和装置
TWI759705B (zh) * 2019-03-25 2022-04-01 聯發科技股份有限公司 用於視頻編解碼的量化矩陣計算和表示的方法和裝置
US11582454B2 (en) 2019-03-25 2023-02-14 Hfi Innovation Inc. Method and apparatus of the quantization matrix computation and representation for video coding
CN113422960A (zh) * 2021-06-15 2021-09-21 上海辰珅信息科技有限公司 图像的传输方法及装置

Also Published As

Publication number Publication date
US20140241427A1 (en) 2014-08-28
EP3585055A1 (en) 2019-12-25
US10123016B2 (en) 2018-11-06
EP2765770A1 (en) 2014-08-13
US11265547B2 (en) 2022-03-01
US9565429B2 (en) 2017-02-07
US20190082180A1 (en) 2019-03-14
US10742982B2 (en) 2020-08-11
EP2765770A4 (en) 2015-08-05
EP2765770B1 (en) 2019-07-03
WO2013067949A1 (zh) 2013-05-16
US20200344478A1 (en) 2020-10-29
US20170104998A1 (en) 2017-04-13
CN103096056B (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
CN103096056B (zh) 矩阵编码方法与装置及解码方法与装置
TWI753356B (zh) 用於編碼或解碼轉換塊的方法與裝置
CN104041035B (zh) 用于复合视频的无损编码及相关信号表示方法
TWI524780B (zh) 在變換單元內之多符號位元隱藏
CN103782598A (zh) 用于无损编码的快速编码方法
GB2492333A (en) Video coding using spatial transform skip modes
KR20100004037A (ko) 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
CN105284114A (zh) 视频信号处理方法及装置
MX2012011650A (es) Metodo y aparato para codificar y decodificar imagenes y metodo y aparato para decodificar imagenes usando orden de barrido de coeficiente adaptativo.
WO2014168097A1 (en) Deriving candidate geometric partitioning modes from intra-prediction direction
EP3183877B1 (en) Method and apparatus for non-uniform mapping for quantization matrix coefficients between different sizes of matrices
CN103581680A (zh) 由量化控制改良解码器性能的方法与系统
KR20220019285A (ko) 프레임들의 시퀀스를 인코딩하는 방법 및 인코더
CN101790096B (zh) 基于二重预测的编解码方法及装置
CN103843338A (zh) 帧内编码图像块的自适应量化
CN103096052B (zh) 一种图像编码、解码的方法和装置
CN102196253A (zh) 一种帧类型自适应选择的视频编码方法及装置
CN102780886B (zh) 一种率失真优化方法
KR101362441B1 (ko) 쿼드트리 기반의 매크로블록을 위한 멀티 레벨의 양자화 파라미터 기록 방법 및 장치
JP2023157855A (ja) 符号語のチャネル間符号化を伴う画像圧縮
CN116527909A (zh) 编码参数的传输方法、装置、设备、存储介质及程序产品
CN102685483A (zh) 编码方法以及装置、解码方法以及装置
EP3763125A1 (en) Quantized coefficient coding
CN1643934A (zh) 具有量化级别的强制波动的视频编码
CN116982262A (zh) 视频编码中依赖性量化的状态转换

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant