CN110012292B - 用于压缩视频数据的方法和装置 - Google Patents

用于压缩视频数据的方法和装置 Download PDF

Info

Publication number
CN110012292B
CN110012292B CN201810011673.5A CN201810011673A CN110012292B CN 110012292 B CN110012292 B CN 110012292B CN 201810011673 A CN201810011673 A CN 201810011673A CN 110012292 B CN110012292 B CN 110012292B
Authority
CN
China
Prior art keywords
compression
unit
buffer
predetermined
quantization level
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.)
Active
Application number
CN201810011673.5A
Other languages
English (en)
Other versions
CN110012292A (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.)
Montage LZ Technologies Chengdu Co Ltd
Original Assignee
Montage LZ Technologies Chengdu 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 Montage LZ Technologies Chengdu Co Ltd filed Critical Montage LZ Technologies Chengdu Co Ltd
Priority to CN201810011673.5A priority Critical patent/CN110012292B/zh
Priority to US16/197,368 priority patent/US10609382B2/en
Publication of CN110012292A publication Critical patent/CN110012292A/zh
Application granted granted Critical
Publication of CN110012292B publication Critical patent/CN110012292B/zh
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/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/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/172Methods 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 an image region, e.g. an object the region being a picture, frame or field
    • 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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations

Landscapes

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

Abstract

本申请公开了一种用于压缩视频数据的方法,所述方法包括:确定帧缓冲器的压缩目标;根据所述帧缓冲器的压缩目标、压缩单元中像素阵列的大小以及像素单元的比特深度计算用于每个压缩单元的单元缓冲预算;接收所述视频数据;针对所述视频数据的每个视频帧中的第k压缩单元:计算以预定无损压缩算法压缩所述第k压缩单元的单元压缩成本,以及累计压缩成本;比较对应于所述第k压缩单元的累计压缩成本和累计缓冲预算:根据累计压缩成本与累计缓冲预算的比较结果选择以预定无损压缩算法或预定有损压缩算法压缩所述第k压缩单元;以及将被压缩的所述第k压缩单元缓冲到所述帧缓冲器中。

Description

用于压缩视频数据的方法和装置
技术领域
本申请涉及视频图像处理技术领域,更具体地,涉及一种用于压缩视频数据的方法和装置。
背景技术
随着超高分辨率的视频图像在市场上的流行,视频、图形图像编解码器对外部存储器造成的带宽负担变得越来越重,并且与外部存储器大量的数据交换,同时也增加了芯片功耗。视频数据压缩是解决带宽负担的一种方式。帧压缩的方法一般有三类:有损压缩、无损压缩和有损无损混合压缩。有损压缩一般采用对待压缩数据进行量化的方法。无损帧压缩通常由预测和熵编码两级组成。第一级的处理方法一般有两种类型,一种是预测处理,得到待压缩数据与预测值的差值再进行第二级处理,如采用空域预测;另一种是变换处理,将待压缩数据转到频域后再进行第二级处理。第二级的处理方法通常是进行熵编码处理,一般采用变长码编码,从而达到数据压缩。
有损压缩通常以损失视频质量作为代价换取压缩率的提高,这会降低当前视频帧的质量,在视频编解码器中如果当前视频帧被作为后续视频帧的参考视频帧,那么当前视频帧质量的损失将会在后续视频帧中传递,使得视频序列的质量下降。虽然无损压缩不会损失视频质量,但是对纹理信息复杂的视频序列数据压缩率较低,并且不能够适用于存储预算比较有限的应用环境。
因此,有必要改进现有的视频数据压缩方法。
发明内容
本申请的一个目的在于提供一种用于压缩视频数据的方法和装置,其能够实时地回收之前压缩单元压缩时节省的帧缓冲器空间,从而提高帧缓冲器的利用率。
根据本申请的一个方面,提供了一种用于压缩视频数据的方法,所述视频数据包括一个或多个视频帧,其中每个视频帧被分割为多个压缩单元,并且每个压缩单元包括一个像素阵列,所述方法包括:确定帧缓冲器的压缩目标,所述帧缓冲器用于逐帧地缓冲被压缩的视频数据;根据所述帧缓冲器的压缩目标、所述压缩单元中像素阵列的大小以及像素单元的比特深度计算用于每个压缩单元的单元缓冲预算;接收所述视频数据;针对所述视频数据的每个视频帧中的第k压缩单元,其中k为自然数:计算以预定无损压缩算法压缩所述第k压缩单元的单元压缩成本,以及累计压缩成本,其中,所述累计压缩成本是压缩所述第k压缩单元及其之前的n个压缩单元的单元压缩成本的总和,其中n为小于k的自然数;比较对应于所述第k压缩单元的累计压缩成本和累计缓冲预算,其中所述累计缓冲预算是缓冲所述第k压缩单元及其之前的n个压缩单元的单元缓冲预算的总和:如果所述累计压缩成本未超过累计缓冲预算预定范围,则以预定无损压缩算法压缩所述第k压缩单元;而如果所述累计压缩成本超过所述累计缓冲预算预定范围,则调整预定有损压缩算法的量化等级以使得所述累计压缩成本不超过所述累计缓冲预算预定范围,并以调整了量化等级的预定有损压缩算法压缩所述第k压缩单元,其中,所述预定有损压缩算法是以量化等级配置的有损压缩算法,而所述预定范围是允许累计压缩成本超出累计缓冲预算的阈值范围;以及将被压缩的所述第k压缩单元缓冲到所述帧缓冲器中。
在一个实施例中,每个视频帧的多个压缩单元以矩阵形式排布,并且所述第k压缩单元及其之前的n个压缩单元位于压缩单元矩阵的同一行。
在一个实施例中,如果所述累计压缩成本未超过累计缓冲预算预定范围,则以预定无损压缩算法压缩所述第k压缩单元的步骤进一步包括:在以所述预定无损压缩算法压缩所述第k压缩单元时,调整预定有损压缩算法的量化等级,从而对于在第k压缩单元之后的第一个以预定有损压缩算法压缩的压缩单元,其量化等级的初始值等于预定无损压缩时调整了的量化等级的值。
在一个实施例中,在比较对应于所述第k压缩单元的累计压缩成本和累计缓冲预算之前,比较以预定无损压缩算法压缩所述第k压缩单元的单元压缩成本和所述单元缓冲预算:如果所述单元压缩成本未超过所述单元缓冲预算,则以所述预定无损压缩算法压缩所述第k压缩单元;而如果所述单元压缩成本超过所述单元缓冲预算,则继续进行上述比较对应于所述第k压缩单元的累计压缩成本和累计缓冲预算的步骤。
在一个实施例中,如果所述单元压缩成本未超过所述单元缓冲预算,则以所述预定无损压缩算法压缩所述第k压缩单元的步骤进一步包括:在以所述预定无损压缩算法压缩所述第k压缩单元时,调整预定有损压缩算法的量化等级,从而对于在第k压缩单元之后的第一个以预定有损压缩算法压缩的压缩单元,其量化等级的初始值等于预定无损压缩时调整了的量化等级的值。
在一个实施例中,调整所述预定有损压缩算法的量化等级包括:以预定调整步长调整所述量化等级的值。
在一个实施例中,对于所述第k压缩单元,在调整所述预定有损压缩算法的量化等级的步骤中,量化等级的初始值等于压缩第k-1压缩单元时采用的量化等级的值。
在一个实施例中,每个压缩单元包括多个子压缩单元,采用分别的量化等级的值来压缩每个子压缩单元。
在一个实施例中,所述帧缓冲器包括针对所述累计缓冲预算的缓冲裕量区,所述缓冲裕量区用于缓冲被压缩的所述第k压缩单元的超出所述累计缓冲预算的部分,并且所述预定范围基于所述缓冲裕量区的大小。
在一个实施例中,所述缓冲裕量区的大小不小于以预定调整步长逐步调整所述量化等级直至量化等级达到预定最大值的过程中累计占用的缓冲空间,以及所述调整所述预定有损压缩算法的量化等级以使得所述累计压缩成本不超过所述累计缓冲预算预定范围的步骤包括:以预定调整步长将所述量化等级的值从初始值调整一次,并且所述量化等级的初始值等于压缩第k-1压缩单元时采用的量化等级的值。
在一个实施例中,所述预定范围为零。
在一个实施例中,所述调整所述预定有损压缩算法的量化等级以使得所述累计压缩成本不超过所述累计缓冲预算预定范围的步骤包括:以预定调整步长将所述量化等级的值从初始值调整至少一次,直至所述累计压缩成本不超过所述累计缓冲预算。
根据本申请的一个方面,还提供了一种用于压缩视频数据的装置,其包括处理器;以及指令存储介质,所述指令存储介质被配置成存储由所述处理器执行的指令;帧缓冲器,所述帧缓冲器用于逐帧地缓冲被压缩的视频数据;其中所述处理器被配置成执行前述方面的方法的步骤。
以上为本申请的概述,可能有简化、概括和省略细节的情况,因此本领域的技术人员应该认识到,该部分仅是示例说明性的,而不旨在以任何方式限定本申请范围。本概述部分既非旨在确定所要求保护主题的关键特征或必要特征,也非旨在用作为确定所要求保护主题的范围的辅助手段。
附图说明
通过下面说明书和所附的权利要求书并与附图结合,将会更加充分地清楚理解本申请内容的上述和其他特征。可以理解,这些附图仅描绘了本申请内容的若干实施方式,因此不应认为是对本申请内容范围的限定。通过采用附图,本申请内容将会得到更加明确和详细地说明。
图1示出了根据本申请一个实施例的视频数据的示例性结构;
图2示出了一个压缩单元的示例;
图3示出了根据本申请一个实施例的视频处理系统;
图4示出了根据本申请一个实施例中的帧缓冲器的结构;
图5a示出了现有行缓冲器的缓冲方式;
图5b示出了根据本申请实施例的自适应缓冲方式的一个示例;
图5c示出了根据本申请实施例的自适应缓冲方式的另一示例;
图5d示出了根据本申请实施例的自适应缓冲方式的另一示例;
图5e示出了根据本申请实施例的自适应缓冲方式的另一示例;
图6示出了根据本申请实施例的用于压缩视频数据的方法;
图7示出了根据本申请另一个实施例的视频处理系统。
具体实施方式
在下面的详细描述中,参考了构成其一部分的附图。在附图中,类似的符号通常表示类似的组成部分,除非上下文另有说明。详细描述、附图和权利要求书中描述的说明性实施方式并非旨在限定。在不偏离本申请的主题的精神或范围的情况下,可以采用其他实施方式,并且可以做出其他变化。可以理解,可以对本申请中一般性描述的、在附图中图解说明的本申请内容的各个方面进行多种不同构成的配置、替换、组合,设计,而所有这些都明确地构成本申请内容的一部分。
图1示出了根据本申请一个实施例的视频数据100的示例性结构。
如图1所示,该视频数据100包括由多个视频帧构成的一个视频序列。在对视频数据100进行压缩处理之前,该视频数据100中的每个视频帧都被分割为多个压缩单元,例如一个视频帧100i被分割为如图1所示的M×N个压缩单元102的阵列,其中该阵列有M列N行压缩单元102(M、N为自然数)。每个压缩单元102通常都包括一个像素阵列。
图2示出了一个压缩单元的示例,其中该压缩单元包括16列4行像素,共64个像素。在一些实施例中,每个压缩单元中通常包括一个或多个子压缩单元。例如,在图2的示例中,该压缩单元包括4个子压缩单元SCU0、SCU1、SCU2以及SCU3,其中这些子压缩单元均分别包括一个4×4的像素子阵列。
图3示出了根据本申请一个实施例的视频处理系统300,该视频处理系统300可以对例如图1和图2所示的视频数据进行处理。
如图3所示,该视频处理系统300包括视频解码器302,在视频解码器302中,视频数据被进行解码处理以得到重建的视频数据,其中该重建的视频数据采用了特定视频格式,例如YUV格式。可以理解,本申请的方法和装置也可以用于视频编码器重建帧数据的压缩处理,其处理方式类似,在此仅以解码器为例进行说明。
正如图1和图2所示,重建的视频数据包括多个视频帧,其中每一视频帧被分割为多个压缩单元(CU)。在一些实施例中,用于对视频数据进行分割的图像分割模块(图中未示出)可以被设置在视频解码器302和压缩处理器304之间,或者集成在视频解码器302或压缩处理器304中。经过分割处理后,重建的视频数据被发送给压缩处理器304,以由压缩处理器304对视频数据进行压缩处理。
视频解码器302和压缩处理器304均经由总线耦接到主控处理器310。该主控处理器310用于控制视频解码器302和压缩处理器304的运行。视频解码器302和压缩处理器304还经由总线耦接到外部存储器306。其中,该存储器306一部分用于逐帧地缓冲被压缩的视频数据的帧缓冲器308。视频数据在压缩处理器304与帧缓冲器308之间通过总线进行传输。
图4示出了根据本申请一个实施例中的帧缓冲器的结构。如图4所示,帧缓冲器被分割为多个行缓冲器422,其中每个行缓冲器422可以存储一行压缩单元中所有像素的数据(经压缩处理器压缩处理后的数据)。例如,对于图4所示的帧缓冲器,其被分割为第0至第N-1个共N个行缓冲器,其中第0行缓冲器用于存储图1所示的视频帧中第(0,0)至(M-1,0)个压缩单元经压缩后的数据。在一些实施例中,帧缓冲器所包含的行缓冲器422的数量取决于每个视频帧的高度以及每个压缩单元的高度,其等于视频帧高度与压缩单元高度的商。
需要说明的是,虽然图4中显示了每个行缓冲器422可以被用于存储一行压缩单元的数据,但是在一些替代的实施例中,每个行缓冲器422也可以存储多行压缩单元,例如,帧缓冲器可以被划分为N/2个行缓冲器(N为偶数),而每个行缓冲器缓冲图1中视频帧中的两行压缩单元。可选地,帧缓冲器也可以被划分为其他数量的行缓冲器,例如N/3、N/4或更少。
可以理解,行缓冲器的数量减少意味着每个行缓冲器需要缓冲更多数量的压缩单元,但是除此之外,压缩处理器、帧缓冲器以及存储器之间的协同操作大体是相同的。在下文中,均以帧缓冲器被划分为N个行缓冲器(每个行缓冲器缓冲一行压缩单元)为例进行说明,但是本领域技术人员可以理解当帧缓冲器被划分为较少数量的行缓冲器时,帧缓冲器仍以类似的方式操作。
在现有的行缓冲器配合有损/无损混合压缩算法运行时,其通常按照视频帧包括的压缩单元的列数来设置缓冲空间,每个压缩单元被分配固定大小的缓冲空间。图5a示出了现有行缓冲器的缓冲方式。如图5a所示,假设每个压缩单元均包括一个16×4像素的像素阵列,并且每个像素阵列中每个像素的比特深度为10比特,则每个压缩单元在未压缩前的大小为640比特,也即80字节。如果帧缓冲器的压缩目标设置为节省25%,那么每个压缩单元被分配给固定大小为60字节的缓冲空间,也即单元缓冲预算为60字节。当对每个压缩单元进行压缩时,压缩处理器会首先判断使用无损压缩算法压缩该压缩单元后的大小,也即单元压缩成本。假设压缩单元CU(0,0)压缩后大小为50字节,其小于单元缓冲预算,因而可以采用无损压缩算法来压缩该压缩单元CU(0,0),并且可以将压缩后的数据存储在行缓冲器的对应的缓冲空间内。类似的,假设压缩单元CU(0,1)、CU(0,2)、CU(0,4)和CU(0,5)的无损压缩后大小分别为32、56、42和56字节,均未超出对应缓冲空间的大小,因而均可以采用无损压缩算法来压缩并缓冲这些压缩单元。但是,对于压缩单元CU(0,3),如果采用无损压缩算法压缩它的话,计算得到的预估的单元缓冲成本为80字节,这超出了对应的缓冲预算。在此情况下,现有的方法需要采用有损压缩算法来压缩它,并且需要将其至少压缩至等于60字节。然而,采用有损压缩算法压缩图像会引起图像质量的下降。
本申请的发明人发现,对于上述的现有处理方式,其在保证单元压缩成本小于或等于单元压缩预算的前提下,浪费了一些缓冲空间。例如,对于压缩单元CU(0,0),采用无损算法压缩它的单元压缩成本为50字节,而单元压缩预算为60字节,有10字节的缓冲空间被浪费了。类似的,对于压缩单元CU(0,1)、CU(0,2)、CU(0,4)和CU(0,5),分别有28、4、18和4字节的缓冲空间被浪费了。发明人注意到,如果将整个一行的压缩单元综合考虑,并且每个压缩单元不指定固定大小的压缩空间,那么行缓冲器的缓冲空间即可被充分利用。
图5b示出了根据本申请实施例的自适应缓冲方式的一个示例。如图5b所示,可以不预先给每个压缩单元分配固定大小的缓冲空间。这样,在将每一个压缩单元压缩后的数据存储在行缓冲器之后,下一个压缩单元压缩后的数据被紧接着前一压缩单元的数据进行缓冲。换言之,每个压缩单元基本被按照无损压缩算法压缩后的单元压缩成本来使用缓冲空间。例如,压缩单元CU(0,1)、CU(0,2)、CU(0,3)、CU(0,4)和CU(0,5)分别使用了32、56、80和42和56字节的缓冲空间。由于至少这些压缩单元不全部需要采用有损压缩算法来压缩,因此视频的图像质量得到了提高。另一方面也可以看出,即使均被采用无损压缩算法来进行压缩,在第6个压缩单元CU(0,5)被缓冲之后,行缓冲器被使用的缓冲空间仍小于现有缓冲方式中行缓冲器的被占用缓冲空间。换言之,行缓冲器的缓冲效率大大提高。
可以理解,取决于视频数据本身,在一些情况下,在一行压缩单元最开始的一些压缩单元的单元压缩成本就比较高,已经超出了预期的单元缓冲预算。例如,假设第一个压缩单元CU(0,0)的单元压缩成本是70字节,这已经超出了60字节的单元缓冲预算。并且,压缩处理器也无法预期后续压缩单元的单元压缩成本是多少。在这种情况下,如果仍采用无损压缩算法来压缩该压缩单元,则有可能会出现行缓冲器溢出的问题。针对此,发明人构思了这样的处理方式:仍然设置给每个压缩单元设置相应的单元缓冲预算,但是如果对于第k个压缩单元前面的k-1个压缩单元节省的缓冲空间,仍然可以被第k个压缩单元使用。
图5c示出了根据本申请实施例的自适应缓冲方式的另一示例。如图5c所示,假设压缩单元CU(0,0)、CU(0,1)、CU(0,2)、CU(0,3)、CU(0,4)和CU(0,5)无损压缩的单元压缩成本分别为70、46、56、80、42和56字节,那么,对于压缩单元CU(0,0),其被分配的缓冲空间为60字节(即等于单元缓冲预算),因此需要采用有损压缩算法将其压缩为60字节。对于压缩单元CU(0,1)、CU(0,2),其分别节省了(60-46)和(60-56)字节的缓冲空间,也即18字节的缓冲空间。这样,当缓冲压缩单元CU(0,3)时,前面节省的18字节空间可以被其所使用,因而仅需要采用有损压缩算法将其压缩至78字节即可,也即仅损失了2字节的数据内容。可以看出,这种自适应缓冲方式在保证缓冲器不溢出的前提下,提高了图像压缩的质量。
在图5c所示的实施例中,在压缩相邻的压缩单元时,其可能采用相差较大的量化等级来进行压缩,这会导致图像不同区域的图像质量存在较大差异,从而影响显示效果。在一些实施例中,对于相邻的压缩单元,在对其进行压缩时可以采用接近的量化等级,也即逐步调整量化等级。例如相邻的压缩单元的量化等级的值最多相差一个量化等级的调整步长。这可以使得图像显示较为统一,效果也比较好。但是,逐步调整量化等级有时可能会导致行缓冲器溢出,因为量化等级是逐步调整的,并不能严格按照行缓冲器的容量设置。为了处理上述溢出问题,在一些实施例中,每个行缓冲器包括了具有一定的容量的缓冲裕量区,用于临时存储溢出的数据。每个缓冲区域的容量或大小可以预先设定,例如根据逐步调整量化等级的需要来进行设置。这样,在计算压缩每个压缩单元对应的量化等级时,可以比较累计压缩成本和累计缓冲预算,只要根据当前量化等级计算的累计压缩成本不超过累计缓冲预算预定范围,即可以当前量化等级的值来压缩该压缩单元。其中,预定范围对应于行缓冲器的缓冲裕量区的大小。需要说明的是,在一些实施例中,例如图5c所示的实施例中,行缓冲器没有设置缓冲裕量区,则该预定范围为零。
换言之,帧缓冲器包括针对所述累计缓冲预算的缓冲裕量区,该缓冲裕量区用于缓冲被压缩的第k压缩单元的超出累计缓冲预算的部分,并且该预定范围基于缓冲裕量区的大小。在一些实施例中,缓冲裕量区的大小基于所述帧缓冲器的压缩目标确定,并且在调整量化等级时,以预定调整步长将所述量化等级的值从初始值调整一次,并且量化等级的初始值等于压缩第k-1压缩单元时采用的量化等级的值。该初始值例如是第k-1压缩单元的量化等级的值。
图5d示出了根据本申请实施例的自适应缓冲方式的又一示例。如图5d所示,采用上述方法计算得到的压缩单元CU(0,0)、CU(0,1)、CU(0,2)、CU(0,3)、CU(0,4)和CU(0,5)的有损压缩的单元压缩成本分别为64、64、64、56、48和56字节,其量化等级分别对应于2、2、2、3、4和3(每次量化等级的最小调整步长为1)。同时,缓冲裕量区的大小为15字节,单元缓冲预算为60字节。具体地,对于压缩单元CU(0,0)、CU(0,1)、CU(0,2),其累计压缩成本超出累计压缩预算分别为4、8和12字节,均未超出15字节的缓冲裕量区的范围。在此情况下,可以采用量化等级2来对这些压缩单元进行压缩。但是,对于压缩单元CU(0,3),如果仍采用量化等级2来压缩该压缩单元,则超出过多(16>15)。因此,改用量化等级3来压缩该压缩单元CU(0,3),从而减少对缓冲裕量区的占用。之后,对于压缩单元CU(0,4),可以采用量化等级4来压缩它,进一步释放缓冲裕量区。至此,缓冲裕量区全部被释放,下一个压缩单元可以采用无损压缩处理或者降低量化等级进行有损压缩处理。在一些例子中,由于缓冲裕量区被释放,因此在采用无损压缩处理后续压缩单元的过程中,可以同时减小量化等级以提高压缩后的图像质量。
图5e示出了根据本申请实施例的自适应缓冲方式的又一示例。如图5e所示,假设压缩单元CU(0,0)、CU(0,1)、CU(0,2)、CU(0,3)、CU(0,4)和CU(0,5)无损压缩的单元压缩成本分别为80、78、78、76、75和80字节,初始量化等级为0,量化等级调整步长为1,单元缓冲预算为60字节,量化等级最大值为3,并且调整量化等级不超过量化等级最大值。缓冲裕量区的大小(对应于累计压缩成本可以超出累计缓冲预算的预定范围)可以预先确定,例如为16字节。压缩单元CU(0,0)的无损压缩单元压缩成本为80字节,则累计压缩成本为80字节,而单元缓冲预算为60字节,因此压缩单元CU(0,0)的无损压缩的单元压缩成本超过单元缓冲预算,并且压缩单元CU(0,0)的累计压缩成本超过累计缓冲预算预定范围。相应地,调整量化等级为1。由于压缩单元CU(0,0)的无损压缩单元压缩成本超过调整量化等级后的有损压缩处理的单元压缩成本,则需要采用调整量化等级后的有损压缩(量化等级为1)处理压缩单元CU(0,0),则压缩处理压缩单元CU(0,0)的单元压缩成本为72字节,累计压缩成本为72字节。此时累计压缩成本(72字节)未超过累计缓冲预算(60字节)预定范围(16字节)。
接着,压缩单元CU(0,1)无损压缩的单元压缩成本为78字节,则累计压缩成本为150(即72+78)字节,而累计缓冲预算为120(即60×2)字节,压缩单元CU(0,1)的无损压缩单元压缩成本超过单元缓冲预算,并且压缩单元CU(0,1)的累计压缩成本(150字节)超过累计缓冲预算(120字节)预定范围(16字节)。相应地,调整量化等级为2。由于压缩单元CU(0,1)的无损压缩单元压缩成本超过调整量化等级后的有损压缩处理的单元压缩成本,则需要采用调整量化等级后的有损压缩(量化等级为2)处理压缩单元CU(0,1),则压缩处理压缩单元CU(0,1)的单元压缩成本为64字节,累计压缩成本为136(即72+64)字节。此时累计压缩成本(136字节)未超过累计缓冲预算(120字节)预定范围。
之后,压缩单元CU(0,2)无损压缩的单元压缩成本为78字节,则累计压缩成本为214(即136+78)字节,而累计缓冲预算为180(即60×3)字节,压缩单元CU(0,2)的单元压缩成本超过单元缓冲预算,并且压缩单元CU(0,2)的累计压缩成本超过累计缓冲预算预定范围。相应地,调整量化等级为3。由于压缩单元CU(0,2)的无损压缩单元压缩成本超过调整量化等级后的有损压缩处理的单元压缩成本,则需要采用调整量化等级后的有损压缩(量化等级为3)处理压缩单元CU(0,2),则压缩处理压缩单元CU(0,2)的单元压缩成本为56字节,累计压缩成本为192(即136+56)字节。此时,累计压缩成本(192字节)未超过累计缓冲预算(180字节)预定范围。
然后,压缩单元CU(0,3)无损压缩的单元压缩成本为76字节,则累计压缩成本为268(即192+76)字节,而累计缓冲预算为240(即60×4)字节,压缩单元CU(0,3)的单元压缩成本超过单元缓冲预算,并且压缩单元CU(0,3)的累计压缩成本超过累计缓冲预算预定范围。相应地,调整后的量化等级为3。由于压缩单元CU(0,3)的无损压缩单元压缩成本超过调整量化等级后的有损压缩处理的单元压缩成本,则需要采用调整量化等级后的有损压缩(量化等级为3)处理压缩单元CU(0,3),则压缩处理压缩单元CU(0,3)的单元压缩成本为56字节,累计压缩成本为248(即192+56)字节。此时,累计压缩成本(248字节)未超过累计缓冲预算(240字节)预定范围。
再然后,压缩单元CU(0,4)无损压缩的单元压缩成本为75字节,则累计压缩成本为323(即248+75)字节,而累计缓冲预算为300(即60×5)字节,压缩单元CU(0,4)的单元压缩成本超过单元缓冲预算,并且压缩单元CU(0,4)的累计压缩成本超过累计缓冲预算预定范围。相应地,调整后的量化等级为3。由于压缩单元CU(0,4)的无损压缩单元压缩成本超过调整量化等级后的有损压缩处理的单元压缩成本,则需要采用调整量化等级后的有损压缩(量化等级为3)处理压缩单元CU(0,4),则有损压缩处理单元压缩单元CU(0,4)的单元压缩成本为56字节,累计压缩成本为304(即248+56)字节。此时,累计压缩成本(248字节)未超过累计缓冲预算(240字节)预定范围。
接着,压缩单元CU(0,5)无损压缩的单元压缩成本为80字节,则累计压缩成本为384(即304+80)字节,而累计缓冲预算为360(即60×6)字节,压缩单元CU(0,5)的单元压缩成本超过单元缓冲预算,并且压缩单元CU(0,5)的累计压缩成本超过累计缓冲预算预定范围。相应地,调整后的量化等级为3。由于压缩单元CU(0,5)的无损压缩单元压缩成本超过调整量化等级后的有损压缩处理的单元压缩成本,则需要采用调整量化等级后的有损压缩处理压缩单元CU(0,5),则有损压缩处理单元压缩单元CU(0,5)的单元压缩成本为56字节,累计压缩成本为360(即304+56)字节。至此,累计压缩成本与累计缓冲预算持平,下一个压缩单元可以采用无损压缩处理或者降低量化等级进行有损压缩处理。
上述图5e示出的示例中,只有压缩单元CU(0,0)、CU(0,1)的单元压缩成本超过了单元缓冲预算,超过的总量为16(即72+64-120)字节,换言之,所述缓冲裕量区的大小至少为16字节,预定范围为16字节。例如,缓冲裕量区的大小不小于以预定调整步长逐步调整所述量化等级直至量化等级达到预定最大值的过程中累计占用的缓冲空间,其与预定调整步长的大小,量化等级的预定最大值以及单元缓冲预算(或压缩目标)相关。上述图5e示出的示例中,缓冲裕量区已经转换至量化等级的最大值中(采用量化等级最大值的有损压缩处理的单元压缩成本56字节小于单元缓冲预算60字节),并且允许部分压缩单元透支缓冲预算,如上述图5e示例中压缩单元CU(0,0)、CU(0,1)。可以理解,其他示例中压缩单元CU(0,0)、CU(0,1)、CU(0,2)、CU(0,3)、CU(0,4)或CU(0,5)的单元压缩成本未超过单元缓冲预算,或者该压缩单元的累计压缩成本未超过累计缓冲预算预定范围,或者采用无损压缩处理的单元压缩成本未超过调整量化等级后的有损压缩处理的单元压缩成本,则可以采用无损压缩处理该压缩单元,该压缩单元的后续压缩单元继续采用上述图5e示出示例中方法进行处理。
基于上述发明构思,本申请提供了一种用于压缩视频数据的方法。图6示出了根据本申请一个实施例的压缩视频数据的方法600。该方法600可以由图3所示的视频处理系统300运行,例如由压缩处理器304运行,并且用于压缩和存储图1和图2所示的视频数据。
如图6所示,在步骤S602,确定帧缓冲器的压缩目标。例如,压缩目标被预先确定为节省S%的缓冲空间。压缩目标可以根据系统的实际情况进行调整或设计。
接着,在步骤S604,根据帧缓冲器的压缩目标、压缩单元中像素阵列的大小以及像素单元的比特深度计算用于每个压缩单元的单元缓冲预算。仍以图1和图4所示的示例为例,假设每个行缓冲器用于缓冲一行压缩单元,而每个压缩单元包括16×4像素的像素阵列,每个像素的比特深度例如为10比特,那么每个压缩单元的单元缓冲预算即为640×(1-S%)比特,也即80×(1-S%)字节。假设S为25,则单元缓冲预算为60字节。
之后,在步骤S606中,接收视频数据。该视频数据例如是由视频解码器解码后分割得到的、以压缩单元为单元的数据。
再然后,在步骤S608中,针对视频数据的每个视频帧中的第k压缩单元进行压缩处理,其中k为自然数。
具体地,步骤S608包括下述步骤:
在步骤S610中,计算以预定无损压缩算法压缩第k压缩单元的单元压缩成本,以及累计压缩成本。其中,累计压缩成本是压缩第k压缩单元及其之前的n个压缩单元的单元压缩成本的总和,其中n为小于k的自然数。在图4所示的用行缓冲器进行缓冲的情况下,累计压缩成本是压缩同一行第1个压缩单元至第k-1个压缩单元的单元压缩成本的总和,具体可以参见图5c、5d或5e的示例。
在步骤S612中,比较对应于第k压缩单元的累计压缩成本和累计缓冲预算,其中累计缓冲预算是缓冲所述第k压缩单元及其之前的n个压缩单元的单元缓冲预算的总和。
根据累计压缩成本与累计缓冲预算的比较结果,确定是采用无损压缩算法还是有损压缩算法来对第k压缩单元进行压缩。具体地,如果累计压缩成本未超过累计缓冲预算预定范围,则在步骤S614中,以预定无损压缩算法压缩第k压缩单元。相反,如果所述累计压缩成本超过所述累计缓冲预算预定范围,则在步骤S616中,采用有损压缩算法压缩第k压缩单元。可以理解,在用有损压缩算法压缩第k压缩单元后,对于其后的第k+1压缩单元,在计算累计压缩成本时,需要根据有损压缩的结果计算第k压缩单元的单元压缩成本。其中,所述预定有损压缩算法是以量化等级配置的有损压缩算法。之后,在步骤S618中,将被压缩的第k压缩单元缓冲到帧缓冲器中。
需要说明的是,上述有损压缩算法是以量化等级配置的有损压缩算法。例如,该有损压缩算法是脉冲编码调制(Pulse Code Modulation,PCM)压缩算法。量化等级是决定有损压缩算法的压缩效率的参数。仍然以图2所示的具有16×4像素的像素阵列的压缩单元为例,其包括4个子压缩单元(每个子压缩单元对应于一个小的像素阵列),其中每个像素的比特深度假设为10比特。那么,量化等级为2意味着压缩后的每个像素的比特深度剩余8比特。在一些实施例中,量化等级的值为整数。例如对于2进制表示的量化等级,可以用3位的2进制表示量化等级的值为从0至7。在一些实施例中,量化等级的值也可以被设置为小数,例如对于图2所示的压缩单元,子压缩单元SCU0和SCU2的量化等级的值被设置为3(即比特深度值为7),而子压缩单元SCU1和SCU3的量化等级的值被设置为2(即比特深度值为8);这样,对于整个压缩单元来说,其量化等级的值为2.5。可以理解,如果压缩单元的4个子压缩单元中仅有一个子压缩单元的量化等级被设置为3,而其他均被设置为2,则整个压缩单元的量化等级的值为2.25。可以理解,增加子压缩单元的个数,可以得到更高的量化等级的精度,如将所述压缩单元分割为8个子压缩单元(每个子压缩单元对应于2×4像素的像素阵列),采用上述的相似的方法量化等级精度为0.125。换言之,通过给每个子压缩单元设置分别的量化等级的值,可以提高整体压缩单元的量化等级的值的精度,这可以提高压缩比率的可控性。
此外需要说明的是,在一些实施例中,在采用预定无损压缩算法压缩第k压缩单元时(例如步骤S614),量化等级这一参数的值可以保持不变;那么,对于第k压缩单元之后的第一个需要采用有损压缩算法进行压缩的压缩单元,其量化等级的初始值可以等于保持不变的量化等级的值;并且,在之后的压缩单元仍继续需要使用有损压缩算法进行压缩时,对应的量化等级的值可以被调整。
在另一些实施例中,在采用预定无损压缩算法压缩第k压缩单元时,量化等级这一参数的值可以同时调整(例如减小量化等级的值);如果有多个连续的压缩单元均采用无损压缩算法来压缩,那么量化等级的值可以减小多次直至等于量化等级取值范围的最小值。这样,对于第k压缩单元之后的第一个需要采用有损压缩算法进行压缩的压缩单元,其量化等级的初始值可以等于无损压缩时同步调整了的量化等级的值。
基于此,在步骤S616中,当采用有损压缩算法来压缩第k压缩单元时,可以调整对应量化等级的值来使得压缩该第k压缩单元的单元压缩成本保持在要求的范围内。具体地,取决于累计压缩预算的剩余大小,可以调整量化等级的值以使得累计压缩成本不超过累计缓冲预算预定范围。正如前述,该预定范围取决于缓冲裕量区的大小,其可以是零或非零值。仍以图2所示的压缩单元为例,如果缓冲裕量区的大小为零,并且该预定范围为零,当压缩图2所示的压缩单元时,未压缩时的数据大小为80字节。如果累计缓冲预算剩余65字节,量化等级的值为1的话,单元压缩成本为72字节,不符合要求;进一步将量化等级的值调整为2,这时单元压缩成本为64字节,符合累计缓冲预算的要求。因此,采用有损压缩算法压缩该压缩单元时的量化等级的值即为2。可以理解,在一些实施例中,可以以预定调整步长调整量化等级的值。例如,如果量化等级为1时计算得到的累计压缩成本不能够满足要求,则将其调整为2(与先前的1相差了一个调整步长1)再进行计算和比较;如果仍不能够满足要求,则进一步将量化等级调整为3再进行计算和比较,直至累计压缩成本小于或等于累计缓冲预算。可以看出,在这种情况下,如果量化等级可以以较高精度的小数表示,则可以更细粒化的计算和调整累计压缩成本。仍以图2所示的压缩单元为例,如果缓冲裕量区的大小不为零,并且该预定范围不为零,当压缩图2所示的压缩单元时,未压缩时的数据大小为80字节。如果累计缓冲预算剩余65字节,该压缩单元前一个压缩单元量化等级为0,这时调整该压缩单元量化等级的值为1,采用调整量化等级后的有损压缩处理该压缩单元,则单元压缩成本为72字节,该压缩单元透支缓冲裕量区7(即72-65)字节,结束该压缩单元的处理。在一些实施例中,缓冲裕量区的大小可以预先计算确定,其取决于以预定调整步长逐步调整所述量化等级直至量化等级达到预定最大值的过程中累计占用的缓冲空间。可以理解,缓冲裕量区的使用简化了压缩单元的处理过程。
可以理解,对于同一行压缩单元中相邻的压缩单元,其图像内容通常有相关性。因此,在一些实施例中,对于第k压缩单元,在步骤S616中调整量化等级的过程中,可以将量化等级的初始值设置为等于压缩第k-1压缩单元时采用的量化等级的值。这样,可以从该初始值逐渐调整量化等级的值,直至满足要求。在另一些实施例中,量化等级的初始值可以直接设置为可选择范围内的最大值或最小值,之后按照预定调整步长来调整量化等级的值,每次仅按调整步长调整一次。
在一些实施例中,对于同一行压缩单元中的相邻的两个压缩单元,其分别的量化等级的值之间的差值可以小于或等于预定阈值,例如等于调整量化等级的预定调整步长。例如,假设量化等级的预定调整步长为0.5字节,那么对于同一行中连续的压缩单元,其量化等级可以按照例如0、0.5、1、1.5、2、2.5、2.5、2、1.5、1、0.5、0的顺序逐渐变化,而非按照0、2.5、2.5、2.5、2.5、2.5、2.5、2.5、2.5、2.5、2.5、0的顺序变化(其中在第一个压缩单元与第二个压缩单元之间、以及倒数第一个压缩单元与倒数第二个压缩单元之间,量化等级的值突变)。逐渐变化量化等级的值有助于提高压缩后的图像质量。
在实际应用中,得益于步骤S612的比较步骤,使得每个压缩单元压缩并缓冲在行缓冲器中之后,对应行缓冲器中的累计缓冲预算基本均不会被超出预定范围。因此,对于下一个压缩单元,如果以无损压缩算法压缩它的单元压缩成本不超出预设的单元缓冲预算,那么在缓冲压缩后的该压缩单元之后,累计缓冲预算仍不会被超出预定范围。基于此,在一些实施例中,在步骤S612之前,可以比较以预定无损压缩算法压缩所述第k压缩单元的单元压缩成本和单元缓冲预算:如果单元压缩成本未超过所述单元缓冲预算,则以预定无损压缩算法压缩第k压缩单元;而如果单元压缩成本超过单元缓冲预算,则继续进行步骤S612。这进一步提高了整个压缩处理过程的效率。与步骤S614类似,在一些实施例中,在采用预定无损压缩算法压缩第k压缩单元时,量化等级这一参数的值可以保持不变;那么,对于第k压缩单元之后的第一个需要采用有损压缩算法进行压缩的压缩单元,其量化等级的初始值可以等于保持不变的量化等级的值。在另一些实施例中,在采用预定无损压缩算法压缩第k压缩单元时,量化等级这一参数的值可以同时调整(例如减小量化等级的值)。这样,对于第k压缩单元之后的第一个需要采用有损压缩算法进行压缩的压缩单元,其量化等级的初始值可以等于无损压缩时同步调整了的量化等级的值。
通常来说,对于彩色视频数据,其通常以特定的格式编码,例如以YUV格式。相应地,视频数据的亮度分量和色度分量通常采用不同的像素阵列表示。相应地,可以针对亮度分量和色度分量采用不同的压缩目标,只要整体而言视频数据的压缩目标满足预期设计的要求即可。例如对于YUV420的视频图像,亮度节省Sy%并且色度节省Sc%同样可以达到节省S%的压缩目标。其中,S、Sy、和Sc之间的关系式为2×Sy+Sc=3×S,其中S、Sy、Sc为正整数,Sy<=S并且Sc>=S,或者Sy>=S并且Sc<=S。例如,S=25,Sy=20,则Sc=35。
图6所示的方法可以由图3所示的视频处理系统300来实施。其中该视频处理系统300可以包括根据本申请实施例的用于压缩视频数据的装置。该装置可以包括用于存储处理器执行的指令的指令存储介质,以及处理器(例如图3所示的压缩处理器304)和帧缓冲器。处理器可以通过执行指令来执行图6方法的步骤。可以理解,在一些实施例中,用于压缩视频数据的装置可以由软件、硬件、固件或其组合来实现。
图7示出了根据本申请另一个实施例的视频处理系统700。
如图7所述,该视频处理系统700具有两组压缩/缓冲模组,也即第一压缩处理器704和第一帧缓冲器708,以及第二压缩处理器705和第二帧缓冲器709。其中,第一压缩处理器704从视频解码器702获取重建后的视频数据的压缩单元,对每个压缩单元进行压缩处理,再将压缩后的视频数据通过总线写入到外部存储器中的第一帧缓冲器708。类似地第二压缩器705从视频解码器702获取重建后的视频数据的压缩单元,对每个压缩单元进行压缩处理,再将压缩后的视频数据通过总线写到外部存储器中的第二帧缓冲器709。
这两组压缩/缓冲模组压缩后的数据的用途不同。具体地,第一组压缩/缓冲模组的数据被提供给本地的显示引擎712,用于后续视频图像显示;而第二组压缩/缓冲模组的数据则被连同其他媒体信号提供给发射器711,经发射器711混合成发射信号后发射出去,从而提供给远程显示设备使用。远程显示设备可以具有对应的解压缩模块,将所接收的发射信号中包括的压缩数据解压缩,并且之后显示出来。
这两组压缩/缓冲模组均可以采用图6所示的方法来压缩视频数据(或者也可以不采用有损压缩而是直接采用无损压缩),但是可以将第一组压缩/缓冲模组的压缩目标设置为节省较低的值,例如小于10%,而将第二组压缩/缓冲模组的压缩目标设置为节省较高的值,例如小于30%。换言之,这两组压缩/缓冲模组的压缩目标不同。之所以这样设计,是因为第二组压缩/缓冲模组压缩后的数据需要通过通信网络发送出去,其通常具有比本地传输更低的带宽,因此需要通过损失图像质量来换取较小的帧缓冲器以及发送比特率。
应当注意,尽管在上文详细描述中提及了用于压缩视频数据的方法的若干步骤,和用于压缩视频数据的装置的若干模块或子模块,但是这种划分仅仅是示例性的而非强制性的。实际上,根据本申请的实施例,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
那些本技术领域的一般技术人员可以通过研究说明书、公开的内容及附图和所附的权利要求书,理解和实施对披露的实施方式的其他改变。在权利要求中,措词“包括”不排除其他的元素和步骤,并且措辞“一”、“一个”不排除复数。在本申请的实际应用中,一个零件可能执行权利要求中所引用的多个技术特征的功能。权利要求中的任何附图标记不应理解为对范围的限制。

Claims (23)

1.一种用于压缩视频数据的方法,其特征在于,所述视频数据包括一个或多个视频帧,其中每个视频帧被分割为多个压缩单元,并且每个压缩单元包括一个像素阵列,所述方法包括:
确定帧缓冲器的压缩目标,所述帧缓冲器用于逐帧地缓冲被压缩的视频数据;
根据所述帧缓冲器的压缩目标、所述压缩单元中像素阵列的大小以及像素单元的比特深度计算用于每个压缩单元的单元缓冲预算;
接收所述视频数据;
针对所述视频数据的每个视频帧中的第k压缩单元,其中k为自然数:
计算以预定无损压缩算法压缩所述第k压缩单元的单元压缩成本,以及累计压缩成本,其中,所述累计压缩成本是压缩所述第k压缩单元及其之前的n个压缩单元的单元压缩成本的总和,其中n为小于k的自然数;
比较对应于所述第k压缩单元的累计压缩成本和累计缓冲预算,其中所述累计缓冲预算是缓冲所述第k压缩单元及其之前的n个压缩单元的单元缓冲预算的总和:如果所述累计压缩成本未超过累计缓冲预算预定范围,则以预定无损压缩算法压缩所述第k压缩单元;而如果所述累计压缩成本超过所述累计缓冲预算预定范围,则调整预定有损压缩算法的量化等级以使得所述累计压缩成本不超过所述累计缓冲预算预定范围,并以调整了量化等级的预定有损压缩算法压缩所述第k压缩单元,其中,所述预定有损压缩算法是以量化等级配置的有损压缩算法,而所述预定范围是允许累计压缩成本超出累计缓冲预算的阈值范围;
其中,所述预定范围为零;或者所述预定范围基于所述帧缓冲器包括的针对所述累计缓冲预算的缓冲裕量区的大小,其中所述缓冲裕量区用于缓冲被压缩的所述第k压缩单元的超出所述累计缓冲预算的部分。
2.根据权利要求1所述的方法,其特征在于,每个视频帧的多个压缩单元以矩阵形式排布,并且所述第k压缩单元及其之前的n个压缩单元位于压缩单元矩阵的同一行。
3.根据权利要求1所述的方法,其特征在于,如果所述累计压缩成本未超过累计缓冲预算预定范围,则以预定无损压缩算法压缩所述第k压缩单元的步骤进一步包括:
在以所述预定无损压缩算法压缩所述第k压缩单元时,调整预定有损压缩算法的量化等级,从而对于在第k压缩单元之后的第一个以预定有损压缩算法压缩的压缩单元,其量化等级的初始值等于预定无损压缩时调整了的量化等级的值。
4.根据权利要求1所述的方法,其特征在于,在比较对应于所述第k压缩单元的累计压缩成本和累计缓冲预算之前,比较以预定无损压缩算法压缩所述第k压缩单元的单元压缩成本和所述单元缓冲预算:如果所述单元压缩成本未超过所述单元缓冲预算,则以所述预定无损压缩算法压缩所述第k压缩单元;而如果所述单元压缩成本超过所述单元缓冲预算,则继续进行上述比较对应于所述第k压缩单元的累计压缩成本和累计缓冲预算的步骤。
5.根据权利要求4所述的方法,其特征在于,如果所述单元压缩成本未超过所述单元缓冲预算,则以所述预定无损压缩算法压缩所述第k压缩单元的步骤进一步包括:
在以所述预定无损压缩算法压缩所述第k压缩单元时,调整预定有损压缩算法的量化等级,从而对于在第k压缩单元之后的第一个以预定有损压缩算法压缩的压缩单元,其量化等级的初始值等于预定无损压缩时调整了的量化等级的值。
6.根据权利要求1所述的方法,其特征在于,调整所述预定有损压缩算法的量化等级包括:以预定调整步长调整所述量化等级的值。
7.根据权利要求1所述的方法,其特征在于,对于所述第k压缩单元,在调整所述预定有损压缩算法的量化等级的步骤中,量化等级的初始值等于压缩第k-1压缩单元时采用的量化等级的值。
8.根据权利要求1所述的方法,其特征在于,每个压缩单元包括多个子压缩单元,采用分别的量化等级的值来压缩每个子压缩单元。
9.根据权利要求1所述的方法,其特征在于,所述预定范围基于所述缓冲裕量区的大小,所述缓冲裕量区的大小不小于以预定调整步长逐步调整所述量化等级直至量化等级达到预定最大值的过程中累计占用的缓冲空间,以及
所述调整所述预定有损压缩算法的量化等级以使得所述累计压缩成本不超过所述累计缓冲预算预定范围的步骤包括:
以预定调整步长将所述量化等级的值从初始值调整一次,并且所述量化等级的初始值等于压缩第k-1压缩单元时采用的量化等级的值。
10.根据权利要求1所述的方法,其特征在于,所述预定范围为零,所述调整所述预定有损压缩算法的量化等级以使得所述累计压缩成本不超过所述累计缓冲预算预定范围的步骤包括:
以预定调整步长将所述量化等级的值从初始值调整至少一次,直至所述累计压缩成本不超过所述累计缓冲预算。
11.根据权利要求1所述的方法,其特征在于,对于所述视频数据的亮度分量和色度分量采用不同的压缩目标。
12.一种用于压缩视频数据的装置,其特征在于,所述视频数据包括一个或多个视频帧,其中每个视频帧被分割为多个压缩单元,并且每个压缩单元包括一个像素阵列,所述装置包括:
处理器;以及
指令存储介质,所述指令存储介质被配置成存储由所述处理器执行的指令;
帧缓冲器,所述帧缓冲器用于逐帧地缓冲被压缩的视频数据;其中
所述处理器被配置成执行下述步骤:
确定帧缓冲器的压缩目标;
根据所述帧缓冲器的压缩目标、所述压缩单元中像素阵列的大小以及像素单元的比特深度计算用于每个压缩单元的单元缓冲预算;
接收所述视频数据;
针对所述视频数据的每个视频帧中的第k压缩单元,其中k为自然数:
计算以预定无损压缩算法压缩所述第k压缩单元的单元压缩成本,以及累计压缩成本,其中,所述累计压缩成本是压缩所述第k压缩单元及其之前的n个压缩单元的单元压缩成本的总和,其中n为小于k的自然数;
比较对应于所述第k压缩单元的累计压缩成本和累计缓冲预算,其中所述累计缓冲预算是缓冲所述第k压缩单元及其之前的n个压缩单元的单元缓冲预算的总和:如果所述累计压缩成本未超过累计缓冲预算预定范围,则以预定无损压缩算法压缩所述第k压缩单元;而如果所述累计压缩成本超过所述累计缓冲预算预定范围,则调整预定有损压缩算法的量化等级以使得所述累计压缩成本不超过所述累计缓冲预算预定范围,并以调整了量化等级的预定有损压缩算法压缩所述第k压缩单元,其中,所述预定有损压缩算法是以量化等级配置的有损压缩算法,而所述预定范围是允许累计压缩成本超出累计缓冲预算的阈值范围;以及
将被压缩的所述第k压缩单元缓冲到所述帧缓冲器中;
其中,所述预定范围为零;或者所述预定范围基于所述帧缓冲器包括的针对所述累计缓冲预算的缓冲裕量区的大小,其中所述缓冲裕量区用于缓冲被压缩的所述第k压缩单元的超出所述累计缓冲预算的部分。
13.根据权利要求12所述的装置,其特征在于,每个视频帧的多个压缩单元以矩阵形式排布,并且所述第k压缩单元及其之前的n个压缩单元位于压缩单元矩阵的同一行。
14.根据权利要求12所述的装置,其特征在于,如果所述累计压缩成本未超过累计缓冲预算预定范围,则以预定无损压缩算法压缩所述第k压缩单元的步骤进一步包括:
在以所述预定无损压缩算法压缩所述第k压缩单元时,调整预定有损压缩算法的量化等级,从而对于在第k压缩单元之后的第一个以预定有损压缩算法压缩的压缩单元,其量化等级的初始值等于预定无损压缩时调整了的量化等级的值。
15.根据权利要求12所述的装置,其特征在于,所述处理器被进一步配置成执行下述步骤:
在比较对应于所述第k压缩单元的累计压缩成本和累计缓冲预算之前,比较以预定无损压缩算法压缩所述第k压缩单元的单元压缩成本和所述单元缓冲预算:如果所述单元压缩成本未超过所述单元缓冲预算,则以所述预定无损压缩算法压缩所述第k压缩单元;而如果所述单元压缩成本超过所述单元缓冲预算,则继续进行上述比较对应于所述第k压缩单元的累计压缩成本和累计缓冲预算的步骤。
16.根据权利要求15所述的装置,其特征在于,如果所述单元压缩成本未超过所述单元缓冲预算,则以所述预定无损压缩算法压缩所述第k压缩单元的步骤进一步包括:
在以所述预定无损压缩算法压缩所述第k压缩单元时,调整预定有损压缩算法的量化等级,从而对于在第k压缩单元之后的第一个以预定有损压缩算法压缩的压缩单元,其量化等级的初始值等于预定无损压缩时调整了的量化等级的值。
17.根据权利要求12所述的装置,其特征在于,所述处理器被进一步配置成执行下述步骤:
调整所述预定有损压缩算法的量化等级包括:以预定调整步长调整所述量化等级的值。
18.根据权利要求12所述的装置,其特征在于,所述处理器被进一步配置成执行下述步骤:
对于所述第k压缩单元,在调整所述预定有损压缩算法的量化等级的步骤中,量化等级的初始值等于压缩第k-1压缩单元时采用的量化等级的值。
19.根据权利要求12所述的装置,其特征在于,每个压缩单元包括多个子压缩单元,采用分别的量化等级的值来压缩每个子压缩单元。
20.根据权利要求12所述的装置,其特征在于,对于所述视频数据的亮度分量和色度分量采用不同的压缩目标。
21.根据权利要求12所述的装置,其特征在于,所述帧缓冲器被配置在外部存储器中。
22.根据权利要求12所述的装置,其特征在于,所述预定范围基于所述缓冲裕量区的大小,所述缓冲裕量区的大小不小于以预定调整步长逐步调整所述量化等级直至量化等级达到预定最大值的过程中累计占用的缓冲空间,以及所述处理器被进一步配置成执行以下步骤:
以预定调整步长将所述量化等级的值从初始值调整一次,并且所述量化等级的初始值等于压缩第k-1压缩单元时采用的量化等级的值。
23.根据权利要求12所述的装置,其特征在于,所述预定范围为零,所述处理器被进一步配置成执行以下步骤:
以预定调整步长将所述量化等级的值从初始值调整至少一次,直至所述累计压缩成本不超过所述累计缓冲预算。
CN201810011673.5A 2018-01-05 2018-01-05 用于压缩视频数据的方法和装置 Active CN110012292B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810011673.5A CN110012292B (zh) 2018-01-05 2018-01-05 用于压缩视频数据的方法和装置
US16/197,368 US10609382B2 (en) 2018-01-05 2018-11-21 Method and apparatus for compressing video data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810011673.5A CN110012292B (zh) 2018-01-05 2018-01-05 用于压缩视频数据的方法和装置

Publications (2)

Publication Number Publication Date
CN110012292A CN110012292A (zh) 2019-07-12
CN110012292B true CN110012292B (zh) 2022-02-08

Family

ID=67139978

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810011673.5A Active CN110012292B (zh) 2018-01-05 2018-01-05 用于压缩视频数据的方法和装置

Country Status (2)

Country Link
US (1) US10609382B2 (zh)
CN (1) CN110012292B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11990923B1 (en) * 2020-03-04 2024-05-21 Elasticsearch B.V. Selecting data compression parameters using a cost model
KR20220015556A (ko) * 2020-07-31 2022-02-08 삼성전자주식회사 이미지 처리 장치 및 프레임 버퍼 컴프레서
US11770535B2 (en) * 2021-02-19 2023-09-26 Samsung Display Co., Ltd. Systems and methods for joint color channel entropy encoding with positive reconstruction error

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418037B1 (en) * 2002-07-15 2008-08-26 Apple Inc. Method of performing rate control for a compression system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8175147B1 (en) * 2005-08-08 2012-05-08 Texas Instruments Incorporated Video coding rate control
US20080193028A1 (en) * 2007-02-13 2008-08-14 Yin-Chun Blue Lan Method of high quality digital image compression
US8031937B2 (en) * 2007-04-04 2011-10-04 Telefonaktiebolaget Lm Ericsson (Publ) Frame buffer compression and decompression method for graphics rendering
US9185424B2 (en) * 2011-07-05 2015-11-10 Qualcomm Incorporated Image data compression
CN103581673A (zh) * 2012-08-07 2014-02-12 上海算芯微电子有限公司 视频数据的压缩/解压缩方法及系统
US9503744B2 (en) * 2013-01-22 2016-11-22 Vixs Systems, Inc. Video processor with random access to compressed frame buffer and methods for use therewith
US20160234496A1 (en) 2015-02-09 2016-08-11 Qualcomm Incorporated Near visually lossless video recompression

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418037B1 (en) * 2002-07-15 2008-08-26 Apple Inc. Method of performing rate control for a compression system

Also Published As

Publication number Publication date
US10609382B2 (en) 2020-03-31
US20190215519A1 (en) 2019-07-11
CN110012292A (zh) 2019-07-12

Similar Documents

Publication Publication Date Title
US6639945B2 (en) Method and apparatus for implementing motion detection in video compression
CN102163416B (zh) 显示驱动电路
US5933195A (en) Method and apparatus memory requirements for storing reference frames in a video decoder
US20040179593A1 (en) Image data compression
US8908982B2 (en) Image encoding device and image encoding method
JP2002520899A (ja) Dwtベース技法によって圧縮された画像を符号化するための実時間アルゴリズムおよびアーキテクチャ
US9894371B2 (en) Video decoder memory bandwidth compression
CN110012292B (zh) 用于压缩视频数据的方法和装置
US20130021350A1 (en) Apparatus and method for decoding using coefficient compression
US10349075B2 (en) Method and device for lossless compression of video data
US20190068981A1 (en) Storing and retrieving lossy-compressed high bit depth image data
US10645386B1 (en) Embedded codec circuitry for multiple reconstruction points based quantization
US5907362A (en) Picture coding apparatus
US6584226B1 (en) Method and apparatus for implementing motion estimation in video compression
CN111131828A (zh) 一种图像压缩方法及装置
US10304213B2 (en) Near lossless compression scheme and system for processing high dynamic range (HDR) images
JP2010098352A (ja) 画像情報符号化装置
KR100304901B1 (ko) 동영상 수신 장치
US8711944B2 (en) Representations of compressed video
WO2024022359A1 (zh) 一种图像编解码方法及装置
US10750182B2 (en) Embedded codec circuitry for visual quality based allocation of refinement bits
US10798419B2 (en) Embedded codec circuitry for sub-block based encoding of quantized prediction residual levels
KR20020026189A (ko) 고정된 비율 압축을 이용하는 효율적인 비디오 데이터엑세스
US20090304073A1 (en) Systems and Methods for the Bandwidth Efficient Processing of Data
CN106954074B (zh) 一种视频数据处理方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method and device for compressing video data

Granted publication date: 20220208

Pledgee: Renlai Electronic Technology (Shanghai) Co.,Ltd.

Pledgor: Montage LZ Technologies (Chengdu) Co.,Ltd.

Registration number: Y2024980016173