CN106878757B - 用于对数字视频内容进行编码的方法、介质和系统 - Google Patents

用于对数字视频内容进行编码的方法、介质和系统 Download PDF

Info

Publication number
CN106878757B
CN106878757B CN201610885391.9A CN201610885391A CN106878757B CN 106878757 B CN106878757 B CN 106878757B CN 201610885391 A CN201610885391 A CN 201610885391A CN 106878757 B CN106878757 B CN 106878757B
Authority
CN
China
Prior art keywords
vector
residual vector
optimized residual
optimized
encoded
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
CN201610885391.9A
Other languages
English (en)
Other versions
CN106878757A (zh
Inventor
V·斯瓦米纳森
S·米特拉
A·马尔霍特拉
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.)
Adobe Inc
Original Assignee
Adobe Systems Inc
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 Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of CN106878757A publication Critical patent/CN106878757A/zh
Application granted granted Critical
Publication of CN106878757B publication Critical patent/CN106878757B/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/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/94Vector quantisation
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/27Server based end-user applications
    • H04N21/274Storing end-user multimedia data in response to end-user request, e.g. network recorder
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/008Vector quantisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

公开了以适合云DVR视频内容应用的无损压缩方案来压缩残差向量的技术。因此,云DVR服务提供方可以采用存储在云中的相同文件的很多副本,并且通过压缩这些副本同时仍然将它们的状态维持为不同副本(每个用户一个副本)来节省存储空间。使用向量量化用于压缩已经压缩的视频流(例如MPEG流)。由于向量量化是一种有损压缩方案,所以必须存储残差向量以在解码(回放)节点处重新生成原始视频流。可以使用熵编码方案、如算术或者霍夫曼编码来压缩残差向量。可以实现另外的策略以进一步优化该残差压缩。在一些实施例中,这些技术操作以提供压缩的25‑50%的改进。因此在一些情况下,存储空间被更加高效地使用并且视频传输可以更快。

Description

用于对数字视频内容进行编码的方法、介质和系统
技术领域
本公开涉及用于视频处理的技术,并且更加具体地涉及用于执行压缩视频内容的优化编码和存储的技术。
背景技术
通常,数据压缩减小数字文件的大小。压缩算法通常通过使用字典或者所谓的码本来使用更少的位串来表示构成数字文件的位串(即逻辑1和0)来使得数字文件更小。该减小通常先于传输或存储在编码阶段发生。因此,当这样的减小大小的串在解码阶段被接收以用于回放时,解码算法使用码本根据由编码算法生成的压缩表示来重构原始内容。重构的内容是原始内容的准确匹配还是其近似取决于所采用的压缩的类型。无损压缩算法使得能够根据压缩消息准确地重构原始内容,而有损压缩算法仅使得能够重构原始消息的近似。通常使用无损压缩算法,其中原始内容的数据丢失成问题(诸如在可执行文件、文本文件和数字数据文件的情况下,其中甚至单个位的丢失可能实际上改变内容的含义)。有损压缩算法通常用于图像、音频、视频和其他这样的数字文件,其中意图的数据丢失程度是觉察不到的或者在可接受的水平。关于有损压缩,注意,位丢失不是随机的;相反,丢失是有目的的(有损压缩算法可以将表示觉察不到的声音或者视觉区别或者噪声的位作为目标以用于排除)。
数据压缩通常在其中存储空间或者传输路径的带宽受到约束的应用中使用。例如,通常压缩经由通信网络、诸如因特网传输的图像和视频。一个这样的示例情况是所谓的“云DVR”服务,其使得能够从远程数字视频记录器向用户的回放设备(诸如电视机、台式或笔记本计算机、平板计算机、智能电话、或者其他这样的回放设备)流传输压缩数字视频内容。用于流传输的视频的标准压缩方案是MPEG压缩,然而也可以使用大量其他压缩标准。在任何情况下,由于内容被存储在基于云的DVR中,所以用户不需要使内容被维持在回放设备的本地存储装置中。还应当理解,由于压缩使得给定数字文件更小(即位更少),相对于在其未压缩状态下存储和传输该文件,可以使用更少的存储器空间来存储该文件并且能够更快地传输。然而,存在与基于云的DVR服务相关联的大量非琐碎问题。一个这样的问题涉及存储在云DVR中的每个用户的记录必须是仅与该用户相关联的不同副本的法律要求。换言之,即使多个用户已经记录了相同的程序(某个数字内容),仍然要求云DVR服务提供方保存针对这些用户中的每个用户的该程序的单个副本。因此,在应用每个用户一个副本的要求的情况下,存储节约技术、诸如重复数据删除(其通过基于指针的系统的操作利用所有用户可访问的内容的公共副本避免了内容存储冗余)不可接受。每个用户单个副本的该要求基于与个体出于时间平移该内容的个人查看的目的而合法地记录内容的权利有关的版权法。因此,即使压缩方案就位,从存储观点来看,以向多个用户提供相同内容项为任务的内容服务提供方仍然受到约束。
附图说明
图1a图示根据本公开的实施例被配置的编码器的框图。
图1b图示根据本公开的实施例被配置的解码器的框图。
图1c图示根据本公开的实施例的示例元数据,元数据可以被存储用于给定优化残差(其可以在熵编码之前和/或在熵编码之后被收集)。
图1d图示示例码本。
图2a图示根据本公开的实施例的内容编码器上的示例处理流程。
图2b图示根据本公开的实施例的内容解码器上的示例处理流程。
图3a是图示根据本公开的实施例的用于对数字视频内容进行编码的方法的流程图。
图3b是图示根据本公开的实施例的用于对残差向量进行逐向量霍夫曼编码的方法的流程图。
图3c是图示根据本公开的实施例的用于对残差向量进行逐元素霍夫曼编码的方法的流程图。
图4a是图示根据本公开的实施例的示例输入向量的编码的表。
图4b图示根据本公开的实施例的能够用于使用逐向量霍夫曼编码来对残差进行编码的表。
图4c图示根据本公开的实施例的能够用于使用逐向量非前缀霍夫曼编码来对残差进行编码的表。
图4d图示根据本公开的实施例的能够用于使用逐元素非前缀霍夫曼编码来对残差进行编码的表。
图5是图示根据本公开的实施例被配置的示例视频内容流传输系统的框图。
具体实施方式
公开了用于执行压缩视频内容的优化编码的技术。一旦编码,内容可以被更加高效地存储(即使用更少的存储空间)。给定该存储效率,这些技术在诸如其中内容存储服从每个用户一个副本的要求的存储密集型应用中特别有用。根据实施例,这些技术包括通过将流分为1和0的更小的块(即向量)来对给定压缩视频流进行向量化。该向量化过程之后是生成残差向量的基于码本的向量量化。已知,向量量化过程涉及将输入向量与给定码本的向量相比较。还已知,码本越能代表输入向量,则残差向量倾向于越小(即残差向量表示给定输入向量与最类似码本向量之间的数学差异)。然后去除或者忽略具有零值的给定残差向量的元素、也称为维度,从而通过使残差向量变得更小来优化残差向量。然后对每个优化残差向量进行熵编码(例如霍夫曼编码或算术编码)。熵编码过程的结果是已编码优化媒体数据,其可以使用更少存储器空间来存储,并且在一些情况下可以随后更加快速地流传输给用户以用于回放。另外,与已编码优化媒体数据分开地收集和存储从编码过程可知的元数据。元数据识别或者包括促进对已编码优化媒体的解码的数据。在一个实施例中,例如,元数据识别未优化残差向量中的维度的总数目以及每个非零维度的长度、连同在解码过程中有用的其他数据,诸如对应码本索引的长度、残差向量的总长度(包括所有维度,零和非零两者)、码本标识符(假定存在多于一个码本)、以及残差向量元素的符号。鉴于本公开应当理解,并非需要所有这样的元数据;相反,仅需要录入促进解码所需的元数据,其可以根据实施例而变化。为此,本文中的示例元数据的列表并非意图将本公开限于包括所有这样的元数据的实施例;相反,其他实施例可以包括这样的元数据中的任何或者组合,只要能够实现如本文中多方面地提供的空间节省编码/解码。鉴于本公开还应当理解,这样的元数据使得能够使用更少的位来执行熵编码,尤其是在向量码本是被编码的数字内容的接近表示并且因此在残差向量中引起大量零维度时。因此,可以实现更大程度的无损压缩。这样,内容提供方能够节省更多存储空间,这对于服从每个用户一个副本的要求的提供方而言特别有用。还应当注意,虽然可以如管理机构要求的针对每个用户来复制和存储已编码优化媒体数据(使得每个用户与视频内容的媒体部分的不同副本相关联),然而仅需要元数据部分的单个公共副本。另外,在其中压缩残差实际上被传输给回放节点的一些示例实施例中,内容提供方可以能够更快地流传输该内容。在这样的示例实施例中,可以将必要的码本和元数据提供给回放节点(或者事先地,或者与已编码压缩视频流同时地)以促进解码过程。然而,在其他示例实施例中,在传输节点处执行解码,使得向回放节点传输的流为原始已解码压缩视频流(或者其相对较接近的表示)。相反,现有的解决方案可能流传输更慢或者需要更长时间来递送标准压缩视频内容。
系统架构
图1a图示根据本公开的实施例配置的编码器100的框图。可见,编码器100包括向量器101、向量量化编码器103和码本105、以及残差编码器107。向量量化(VQ)编码器103包括残差生成器103a。在高层,编码器100被配置成接收压缩视频流并且输出媒体数据108,媒体数据108通常包括已编码优化残差和对应的码本索引。该输出可以被存储用于多个用户,使得每个用户有媒体数据108的一个不同的副本。在一些实施例中,仅媒体数据108的一部分服从每个用户一个副本的要求。例如,在一个这样的示例情况中,仅码本索引被存储多次(每个用户一个不同的副本)并且优化残差仅存储一次。也可以使用可以符合相关适用标准和法律要求的每个用户一个副本的方案的其他变化。另外,编码器100还提供可以连同码本105被存储作为单个副本的元数据109,使得它们先于传输或在回放节点处可用于对优化残差进行解码,如进而将要解释的。其他实施例可以不同地配置,但是仍然提供类似功能。例如,在其他实施例中,向量器101可以与VQ编码器103集成。同样,残差编码器107可以与VQ编码器103集成。集成的程度可以根据实施例而变化。还应当注意,在一些实施例中,编码可以在传输(内容提供方)节点上进行,并且解码可以在接收(回放)节点上进行,使得传输已编码压缩视频流。替选地,编码和解码都在传输节点处进行,使得传输正常(未编码)压缩视频流。大量变化将很清楚,并且本公开并非意图限于任何特定变化。
向量器101可以使用标准向量化技术来实现。在一个示例实施例中,向量器101被配置成接收MPEG压缩的视频流并且将该流分为具有已知长度的离散向量。应当理解,MPEG压缩在本文中以一般方式来使用,并且意图包括所有典型的使用情况,包括其中通过运动图片专家组(MPEG)已经发布(诸如MPEG-1、MPEG-2或MPEG-4)的这些标准之一来压缩并且使用MPEG-2传送流标准来复用给定媒体文件的音频和视频的情况。然而,鉴于本公开还应当理解,代替MPEG,可以使用任何ISO(国际标准化组织)或ITU(国际电信联盟)标准或者其他这样的标准,并且可以或者可以不复用流。因此,在更加一般的意义上,向量器101可以被配置成接收任何类型的压缩视频流,而不管所使用的压缩标准。
向量化可以以任何分辨率来执行,并且通常取决于每个向量的元素或者所谓的维度的期望数目。在一些示例实施例中,每个向量包括10到20个维度或元素,其中一个具体的实施例每个向量具有11个维度。图2a在视觉上描绘该向量化过程,示出了被处理成离散连续向量的集合的连续压缩视频流。另外可见,每个向量可以被视为单独的且不同的源文件。如进而将要解释的,使用向量量化和优化残差熵编码通过编码器100来处理这些源文件。
由向量器101生成的向量或源文件被提供给VQ编码器103,VQ编码器103对这些向量/源文件执行向量量化过程。向量量化是用于对MPEG视频流进行编码/解码的无损压缩方案,并且通常通过使用被维持为码本的代表性代码向量的集合将来自给定多维度输入空间的输入向量映射到更小维度子空间中来实现。可以训练这样的向量码本以改善其对被压缩的数字内容的代表性。因此,通过将来自多维度向量空间的值编码成更低维度的离散子空间的值的有限集合,由VQ编码器103执行的向量量化过程使得能够用更小的数据集合来相当好地表示相对更大的数据集合并且因此实现压缩。因此,另外参考图1a和2a,VQ编码器103识别给定码本105中最接近的代表性码本向量(通过被比较的向量的欧几里得范数或者其他合适的向量比较技术)。该所选码本向量与输入向量(来自向量器101)之间的差异由残差生成器103a生成,并且该差异被称为残差向量或文件。然后可以存储残差向量/文件或者使其可用于随后的处理。该随后的处理通常包括对残差向量进行优化和熵编码以进一步增加压缩,如进而将要解释的。还应当注意,也可以存储用于生成该残差向量的从码本105选择的对应代表性码本向量的索引。这将使得能够在执行解码时从码本105检索相同码本向量。
码本105可以如传统那样地来实现。在一些实施例中,码本105本质上是静态的,使得其先前在内容提供方的内容频道的有关集合上被训练并且然后被部署用于由编码器100(和解码器110)来使用。在其他实施例中,码本105本质上可以更加动态,其中码本代表性代码向量的训练和细化是进行中的。图1d中示出了示例码本105。注意,码本的大小(以及因此分辨率)可以根据实施例极大地变化。在通常意义下,码本105的分辨率越大(即不同的索引的码本向量的数目越高),则经受向量量化的目标多维空间(服务提供方的视频内容库)的代表性越强。目标多维空间的代表性越强,则残差向量的值将越小。换言之,给定码本向量越能代表给定输入向量,则所得到的残差向量中的非零维度的数目越小。所得到的残差向量中的非零维度的数目越小,则能够应用于该残差(通过零去除和熵编码)的压缩的程度越高。
一旦通过VQ编码器103计算给定的输入向量或源文件的残差向量,则将该残差向量和对应码本向量索引提供给残差编码器107,如图1a所示。在其他实施例中,注意,残差编码器107不需要接收码本向量索引,诸如图2a所示的示例情况。在任何情况下,残差编码器107可以实现任何数目的熵编码方案,诸如算术或霍夫曼编码,以压缩残差向量。对熵的引用指代以下概念:残差向量倾向于具有比在向量化压缩视频流中(从向量器101)接收的原始向量低的熵,因为逻辑0和低值维度倾向于具有高的概率,而高维度值倾向于具有低的概率。因此,从VQ编码器103接收的每个残差向量(有时称为残差文件,如图2a所示)通过残差编码器107被评估用于元数据并且然后先于对该残差向量进行熵编码来被优化。
特别地,通过残差编码器107来识别和录入与给定残差向量相关联的元数据109。因此,随后可以使得该元数据109可用于解码过程。鉴于本公开应当理解,根据一些实施例,以该方式使得元数据109可用使得能够简化熵编码方案。如先前指出的,仅需要元数据109的单个副本。图1c示出了根据一个实施例的元数据109的示例集合。可见,该示例集合中的元数据109包括或者提供用于确定以下各项的基础:对应于代表性码本向量的码本索引的长度;残差向量(未优化)的长度;残差向量(未优化)的维度数目;残差向量的每个非零维度的长度;残差向量的每个非零维度的位置(整个向量内的位置);残差向量的每个维度的符号;以及码本身份(ID)。
残差编码器107的零去除过程提供优化残差向量。因此,例如,给定来自VQ编码器103的残差向量{4 1 0 0 0 5 0 0 1 -2 0},该残差向量的优化版本将是{4 1 5 1 -2}。如在图1c中进一步指示的,元数据109还可以(或者替选地)包括关于优化残差向量的数据,诸如残差向量(已优化)的长度。如先前解释的,其他实施例可以包括更少的元数据109,诸如仅残差向量(未优化)的维度数目和残差向量的每个非零维度的长度和位置,假定其他指出的元数据109可确定或者不适用或者不需要用于解码。例如,在一些实施例中,维度符号在仅使用一个极性的情况下可能不适用;类似地,如果仅使用一个码本,则码本ID是不必要的;同样,如果适用码本索引全部具有相同大小或者从码本已知,则码本索引的长度是不必要的(相反,其已知);同样,注意,如果零维度的长度被存储在元数据109中作为零,则不需要实际地存储非零维度的位置(在这样的情况下,元数据有效地包括已编码优化残差向量的每个维度的长度,包括零和非零维度两者,并且因此每个类型的位置可确定);同样,在一些实施例中可能不需要关于未优化残差的元数据(诸如其中元数据包括优化残差向量的长度而非未优化残差向量的长度的情况)。在采用无前缀熵编码方案的另外的具体实施例中(如进而将参考图4c-d解释的),仅熵编码残差的维度的长度和/或整个长度被存储作为元数据109,并且每个维度的残差长度(在熵编码之前)和未优化残差向量的长度没有被存储作为元数据。鉴于本公开将很清楚大量变化,并且可以对元数据109进行减小、补充或修改使得其包括实现如本文中提供的优化编码方案所需要的任何元数据。可以用各种方式来对优化残差向量进行熵编码,如进而将更加详细地讨论的。
由残差编码器107执行的熵编码方案可以根据实施例而变化。示例包括算术编码和霍夫曼编码。然而,由于元数据109被存储并且使得可用于解码过程,所以熵编码方案可以被优化并且编码表可以更小。因此,例如,并且继续使用先前的示例残差向量{4 1 0 0 05 0 0 1 -2 0},该残差向量的优化版本将是{4 1 5 1 -2}。应用十进制到二进制变换,所得到的优化残差将是{100 1 101 1 10}。可以将维度符号和长度记录到元数据109中。在一些实施例中,该二进制值{100 1 101 1 10}然后可以用作到霍夫曼表中的索引或关键字以找到对应霍夫曼代码。替选地,可以将5个维度中的每个视为被呈现用于标准算术编码的5个输入符号。将参考图3a-c和4a-d来进一步讨论示例熵编码方案的另外的细节。在任何情况下,残差编码器107的输出(以及因此编码器100的输出)包括媒体数据108和元数据109。
如图1a中另外指示的,元数据109和其他非媒体数据、诸如码本105可以被存储为单个公共副本。相反,媒体数据108可以复制以在适用的情况下满足每个用户一个副本的要求。记得,媒体数据108通常包括码本索引和已编码优化残差。然而,还记得,取决于适用标准和法律要求,并非所有媒体数据108需要服从每个用户一个副本的要求。例如,如图2a的示例实施例中进一步示出的,在每个用户一个副本的体制下仅存储码本索引,并且对应的已编码优化残差仅存储一次。以符合规则集合为目标的其他这样的变化鉴于本公开将很清楚。
图1b图示根据本公开的实施例配置的解码器110的框图。应当理解,解码器110提供与编码器100互补的功能,并且为此,关于解码的讨论保持简洁并且关于编码器100的先前相关讨论在此同样适用。如在图1b中可见,解码器110包括残差解码器111(与残差编码器107互补)、向量量化(VQ)解码器113(与VQ编码器103互补)和码本105(相同)、和重新排序器115(与向量器101互补)。VQ解码器113包括向量生成器113a(与残差生成器103a互补)。另外注意,解码器110实际上可以与编码器100在相同的节点上,诸如在其中使用本文中提供的压缩技术来改善存储效率而非传输速度的应用中。然而,在其他实施例中,解码器110可以在远离传输节点的接收节点处实现,使得能够根据需要实现传输节点处的存储效率以及从传输节点到接收节点的更快的传输速度。
在高层,解码器110被配置成接收通常包括已编码优化残差和对应码本索引的媒体数据108,并且输出适合回放的压缩视频流。所接收的媒体数据108用于具体用户,使得每个用户有媒体数据108的一个不同副本。然而并且如先前解释的,在一些实施例中,仅媒体数据108的一部分服从每个用户一个副本的要求(例如码本索引可以被存储多次,每个用户一次,而优化残差仅被存储一次)。如另外可见,解码器110还接收元数据109,元数据如先前解释地可以连同码本105被存储作为单个副本,使得其可用于解码优化残差。因此,例如,继续使用由编码器100生成的先前示例优化残差{100 1 101 1 10},如先前解释的。使用元数据109,残差解码器111根据给定熵编码方案(在该示例情况下,并且根据二进制到十进制变换)将该优化残差的编码版本解码成{4 1 5 1 -2}。在该情况下,元数据可以指示具有负极性的维度。根据实施例,根据元数据109还已知残差向量的维度的总数目、以及残差向量的非零维度的长度和位置。因此,通过在控制中的该信息,残差解码器111还将{4 1 5 1 -2}解码为{4 1 0 0 0 5 0 0 1 -2 0},其是原始残差向量。一旦使用给定码本索引检索到对应码本向量,则VQ解码器113的向量生成器113a通过将原始残差向量添加到检索到的码本向量来恢复原始向量(或者该原始向量的相对接近的表示)。已恢复向量由VQ解码器113提供给重新排序器115,重新排序器115操作以组合连续向量以形成原始压缩视频流(或者其相对接近的表示)。重新排序器115可以使用标准的向量到流技术来实现。在一个示例实施例中,重新排序器115被配置成接收具有已知长度的离散向量的流并且将这些向量组合成MPEG压缩视频流,然而也可以使用其他压缩标准。
图2b在视觉上描绘根据示例实施例的一个这样的解码过程。可见,在残差解码器111处接收已编码优化残差文件连同元数据109,并且恢复残差文件或向量。注意,残差解码器111不需要接收码本向量索引文件。在任何情况下,残差解码器111可以实现任何数目的熵解码方案,诸如算术或者霍夫曼编码,以补充残差编码器107的编码方案。然后将由残差解码器111恢复的残差文件连同对应码本索引文件和码本105提供给VQ解码器113。原始向量或源文件(或者相对接近原始向量或源文件的对象)因此被VQ解码器恢复并且被提供给重新排序器115,重新排序器115执行向量到流处理。注意,解码可以先于通过通信网络流传输压缩视频流在内容提供方节点处进行,如图2b所示。然而,在其他实施例中,解码可以在向适当的用户流传输已编码优化残差文件和索引文件之后在内容消费者节点处进行。在这样的情况下,注意,仅目标用户的所选视频内容被传输给该用户并且随后由该用户的解码器来解码,如应当理解的。
鉴于本公开还应当理解,编码器100和解码器110的各种模块和部件、诸如向量器101和重新排序器115、VQ编码器103和VQ解码器113、以及残差编码器107和残差解码器111可以用软件来实现,软件是诸如在一个或多个非暂态计算机可读介质(例如硬盘驱动、固态存储装置、服务器、或者其他合适的物理存储器)上编码的指令集(例如C、C++、面向对象的C、JavaScript、BASIC等),该指令集在由一个或多个处理器执行时使得本文中提供的各种方法被执行。计算机程序产品可以包括任何数目的这样的计算机可读介质,并且本质上可以是分布式的。例如,编码器100的功能模块可以在基于云的服务器或者其他合适的计算环境上实现,并且解码器110的功能模块可以在基于客户端的计算设备或者合适的回放平台(例如电视机、笔记本计算机、投影系统、智能电话、平板计算机、台式计算机等)上实现。在其他实施例中,部件/模块可以使用硬件来实现,硬件是诸如门级逻辑(例如FPGA)或者专用半导体(例如ASIC),其在一些实施例中也可以是分布式的。其他实施例可以使用一个或多个微控制器(分布式的或者非分布式的)来实现,每个微控制器具有用于接收和输出数据的大量输入/输出端口以及用于执行本文中描述的功能的大量嵌入式例程。可以使用硬件、软件和固件的任意合适的组合。
方法
图3a是图示根据本公开的实施例的用于对数字视频内容进行编码的方法的流程图。可见,参考图1的编码器100来描述方法。然而,可以使用任何数目的编码器配置来实现该方法,如鉴于本公开将清楚的。还应当注意,方法中描绘的各种功能不一定要被指定给所示的具体示例模块。例如,309和311处元数据和媒体数据的存储分别可以由例如专用存储模块或者与在307处执行熵编码的残差编码器107分离或不同的某个其他部件来执行。为此,提供所描绘的示例方法以给出一个示例实施例,而非意图将方法限于任何特定的物理和结构配置。
方法在301处通过接收和向量化压缩视频流来开始。在一个示例情况下,压缩视频流是MPEG压缩视频流,然而也可以使用产生能够被向量化的压缩视频流的任意合适的压缩标准。方法在303继续,通过使用码本通过向量量化来生成残差向量。在一个这样的实施例中,这样的编码或向量量化包括计算输入向量与所选码本向量之间的差异,并且存储该差异值作为残差向量连同所选码本向量的码本索引。出于解码(其可以在传输节点或者接收节点处进行,如先前解释的)目的,将残差向量添加回码本向量,码本向量可以使用所存储的码本索引来查找或识别。因此,根据一个这样的实施例,后VQ编码数据被写为一系列码本索引和残差向量。注意,当使用代表性码本时,失真后VQ(即残差向量值)被最小化或者倾向于更小。换言之,当码本的准确性使得给定码本向量倾向于没有远远不同于经受VQ的给定输入向量时,可以认为码本是“代表性的”,这进而产生倾向于具有更小值的残差向量。在这样的场景中,构成给定残差向量的元素(或维度)的大部分倾向于为零,其余维度倾向于是很小的数。然而,偶尔存在高误差幅度(即码本通常不是完美的,而不管它们如何被良好地训练)。在任何情况下,注意,如果所有残差向量被填补到相同大小,则通过极大地膨胀残差文件可以使VQ的压缩优点消失。
因此,方法在305继续,去除(或者忽略)零以创建优化残差向量。方法在307继续,通过算术或霍夫曼编码对优化残差向量进行熵编码。除了被包括在方法的输出中的媒体数据,并且鉴于本公开还应当理解,大量元数据很清楚或者是自描述的并且该元数据可以用于进一步优化熵编码和解码过程。为此,方法还包括:分别在309和311,存储与已编码优化残差向量相关联的元数据,并且存储与已编码优化残差向量相关联的媒体数据。方法在313继续,确定是否存在更多输入向量需要处理,如果是,则方法在303如所示地重复;否则方法结束。
示例使用情况
因此,出于使用图3a的方法来提供示例过程流程的目的,进一步参考图4a所示的示例场景。可见,在VQ编码器处接收输入向量{0 2 0 0 1 3 2 0 1 3 0},并且选择最具代表性码本向量{-4 1 0 0 1 -2 2 0 0 5 0}。在303应用向量量化,所得到的残差(或差异)向量为{4 1 0 0 0 5 0 0 1 -2 0}。现在,在305应用零去除,所得到的优化残差向量为{41 5 1 -2},其被以二进制转换成{100 1 101 1 10}。在307使用熵编码,生成所得到的已编码优化残差向量。例如,使用霍夫曼编码,可以使用{100 1 101 1 10}作为到霍夫曼表中的索引以识别对应的霍夫曼代码。替选地,可以使用{100 1 101 1 10}来生成标准算术代码。出于简单的目的,假定已编码优化残差向量用{100 1 101 1 10}来表示。因此,在该示例情况下,媒体数据包括已编码优化残差向量{100 1 101 1 10}连同所选代表性码本向量的索引(其从码本已知)并且在该示例情况下为{0 1 1 1 1 0 1 1 1 1 1 0}。关于图4b-d提供可以如何对给定优化残差向量进行编码的另外的示例。
从图4a中描绘的示例场景另外可见,鲁棒的集合元数据已知或者很容易可确定并且可以存储在单个公共副本中并且可用于解码过程,从而使得能够做出编码优化,如先前解释的。鉴于本公开应当理解,存储和使用的元数据可以根据实施例而变化,并且图4a中描绘的示例集合并非意图暗示每个实施例必须包括所有描绘的元数据。很清楚,并不是这样,并且所描绘的元数据的子集可以同样有效,如鉴于本公开还应当理解的。取决于所使用的编码方案,可以用于优化编码和解码过程(和所实现的压缩)的其他类型的元数据很清楚。例如,如先前解释的,在一些实施例中,元数据不需要包括每个维度的任何残差长度(在熵编码之前)或者整个向量的长度。同样,如果零元素的长度被存储为零,则元数据不需要包括非零元素的位置,这表示优化残差(或者已编码优化残差,视情况而定)的所有维度长度可确定,包括零和非零,诸如图4a中所示的。同样,元数据不需要包括未优化残差向量的任何长度数据。
在任何情况下,另外参考图4a,该示例情况的元数据包括已编码优化残差向量的每个非零维度的长度以及这些非零维度中的每个在整个(未优化)向量中的位置以及整个(未优化)残差中的维度的总数目(其从例如码本向量维度可知)。因此,继续先前的示例场景,整个(未优化)已编码残差向量包括总共11个维度,其中在位置3、4、5、7、8和11处的6个为零,其余在位置1、2、6、9和10处的5个维度为非零的{100 1 101 1 10},其具有相应的长度3、1、3、1和2(即长度在该示例中用位来测量)。另外,针对每个零维度记录的长度被记录为0。由于整个(未优化)已编码残差向量的每个零和非零维度在维度长度元数据中表示,所以每个维度在整个(未优化)已编码残差向量中的位置也根据所存储的元数据已知。应当理解,知道这些位置和长度的一个益处是不需要代码前缀限制(其中没有一个代码可以是另一代码的前缀,以确保正确的解码)。在图4a中另外可见,元数据还包括每个非零维度的符号,其在该示例情况下表示在整个(未优化)的倒数第二位置处的维度为负。码本ID(在该示例情况下为CB-77)也已知并且被包括在所存储的元数据中。该ID可以用于例如在解码过程期间重新调用正确的码本,假定存在多个码本可用。另外,码本索引长度已知并且可以与元数据一起存储,并且在该示例情况下为12位;然而,假定该码本索引长度根据码本本身已知,则其不需要被包括在元数据中。还已知并且与元数据一起存储的是以其非优化和优化形式的残差向量的长度,并且在该示例实施例中分别是16位和10位。其他实施例不需要包括描述未优化形式的元数据。已知这样的索引长度和残差向量长度是有用的,例如,因为其可以用于简化媒体数据的传输。例如,媒体数据的代码向量索引可以一起运行而没有任何另外的结构以提供连续的大的串,大的串然后能够使用构成该大的串的各个索引的已知长度被解码回其组成部分。以类似的方式,媒体数据的已编码优化残差向量可以一起运行而没有任何另外的结构以提供连续的大的串,大的串然后可以使用构成该大的串的各个残差向量的已知长度来被解码回其组成部分。注意,连续串的第一索引的开始可以例如通过开始标志或字段、或者标记给定串的开始的其他索引来识别或表示。
鉴于本公开应当清楚本文中提供的由于记录元数据的大量附加优点。首先,为了利用残差误差的低失真或幅度(低失真通常指代具有零值的维度的相对高的出现),可以在元数据中信号传输残差向量的每个维度的长度。因此,值为0的维度可以在元数据中使用长度0来信号传输,从而从媒体数据的残差文件中节省1位(即对于从未优化残差向量去除的每个0,从存储的已编码优化残差向量删除1位,每个用户一个副本)。例如,并且如先前解释的,可以将未优化残差误差向量{4 1 0 0 0 5 0 0 1 -2 0}表示为{100 1 101 1 10}(媒体数据),并且可以将每个维度的长度表示为{3 1 0 0 0 3 0 0 1 2 0}(元数据)。
另外,在其中给定残差向量的所有维度为零的情况下,元数据仍然表示码本索引的长度,如先前解释的,但是残差向量的长度可以简单地存储为0,从而没有非零残差元素被信号传输。记得,如果残差向量为0,则码本向量完美地匹配被压缩的输入向量。因此,被存储的媒体数据(每个用户一个副本)不需要包括该特定残差向量;相反,解码节点可以简单地使用码本索引来检索对应码本向量以恢复原始输入向量。假定当码本向量真实地表示输入向量时0残差向量的数目高,则可以在对这些很好地表示的输入向量进行编码时实现基本的存储空间节省。
因此,鉴于本公开应当理解,与相关元数据的使用组合的零去除可以用于促进残差向量数据的压缩,并且残差向量的非零部分中的所得到的结构本身提供比在散布有零值的情况下更好的压缩。可以实现压缩的充分改善。这样,可以增加存储效率,甚至在其中应用每个用户一个副本的要求的情况下。同样,可以增加传输效率,因为传输较少的媒体数据。鉴于本公开还应当理解,根据需要,元数据可以包括例如仅与已编码优化残差向量有关的数据、或者与已编码优化残差向量和预编码优化残差向量二者有关的数据、以及甚至与未优化残差向量有关的数据。在一些实施例中,仅存储对给定已编码优化残差向量进行解码所需要的最小量的元数据。
霍夫曼编码优化
通常已知,霍夫曼编码指代向符号(或者向量维度,视情况而定)分配二进制代码的技术,其减小了用于对这些符号的典型串进行编码所需要的位的总数目。例如,如果使用字母作为符号并且典型串中这些字母的出现频率已知,则可以使用固定数目的位对每个字母进行编码,诸如用ASCII代码。霍夫曼编码还认识到,更加高效的方法是使用更小位串对更加频繁地出现的字母(诸如元音)进行编码,并且使用更长位串对不太频繁地出现的字母、诸如x和z进行编码。
已知,对标准霍夫曼编码的约束与以下概念有关:向更加频繁地出现的符号分配的更小代码不能是更大代码的前缀;否则解码变得很困难。例如,如果代码01被指定用于‘a’并且代码011被指定用于‘z’,则在缺乏解码‘a’还是‘z’的明确性的情况下成功地解码以011开始的串是不可能的。因此,标准霍夫曼编码方案得到每个符号及其权重(即出现频率)并且在考虑到每个符号的权重的情况下生成每个符号的编码,使得更高权重的符号在其编码中具有较少位。为了确保前缀约束满足,通常通过首先创建节点树或者所谓的树图来计算霍夫曼编码。该树图生成是处理器密集型例程,其可以极大地增加计算时间。
然而,鉴于本公开应当理解,诸如参考图1c和4a讨论的元数据可以用于避免对于前缀约束的需要。具体地,用于对优化残差向量(媒体数据)进行编码的代码不需要满足前缀要求,因为代码(元数据)的长度被存储用于解码。例如,参考先前示例,可以将未优化残差误差向量{4 1 0 0 0 5 0 0 1 -2 0}优化为{100 1 101 1 10}(媒体数据),如先前解释的,其可以进而使用查找表或所谓的霍夫曼表来被进行霍夫曼编码。每个维度的位长度可以分别表示为{3 1 0 0 0 3 0 0 1 2 0}(元数据);同样,霍夫曼代码的长度已知。例如,{100 1 101 1 10}可以被霍夫曼编码成例如1010(媒体数据),其长度为4位(元数据)。因此,每个维度(或位代码)在整个已编码优化残差向量中的位置已知为构成每个维度的位的数目。因此,即使一个代码是另一代码的前缀,仍然能够实现成功的解码。另外,通常需要频率树图来确保不需要符合前缀规则,从而减小计算时间。
总之,传统的霍夫曼编码过程通常包括(1)符号频率确定,(2)对符号进行分类,(3)构建树图,以及(4)向符号分配前缀代码。相反,根据本公开的另一实施例的非前缀霍夫曼编码过程通常可以包括(1)符号频率确定,(2)对符号进行分类,以及(3)向符号分配非前缀代码。因此,可以使用非前缀霍夫曼来避免构建树图。在一些这样的示例情况下,观察到了0.5位/符号或者大约25%的改进。可以使用每个字长度的所有可能的位组合。在一个这样的示例中,可能的代码是:0,1,00,01,10,11,000,001...。另外,注意,霍夫曼表也可以更小,因为仅按照降序的关键字需要在表中,因为代码通常相同。现在将参考图3b-c和4b-d使用基于霍夫曼的编码方案在示例残差压缩方案的上下文中提供另外的细节。
图3b是图示根据本发明的实施例的用于对残差向量进行逐向量霍夫曼编码以进一步压缩残差向量数据的方法的流程图。可见,方法通常包括接收321优化残差向量。方法继续,使用作为霍夫曼表的输入的整个向量对残差向量进行霍夫曼编码323从而生成已编码优化残差向量。霍夫曼代码可以基于前缀或者基于非前缀(无前缀)。如先前指出的,霍夫曼编码方案将输入数据视为符合的集合,其在VQ已编码压缩视频流的上下文中本质上表示给定残差向量的每个元素或维度可以被视为符号。因此,该类型的霍夫曼编码在本文中通常称为逐元素霍夫曼(因为其将残差向量输入视为元素的集合),并且可以在一些实施例中使用。然而,根据图3b所示实施例,注意,整个向量表示被视为用于霍夫曼编码的一个符号,其在本文中通常称为逐向量霍夫曼(因为其对残差向量整体操作而非对该向量的元素进行操作)。因此,继续以上示例使用情况,代替针对优化残差向量{4,1,5,1,和-2}使用5个单独的关键字(关键字有效地作为到霍夫曼表中的索引),各个代码一起运行以提供表示优化残差{1001101110}的一个关键字。虽然其可能具有膨胀霍夫曼表的效果,然而在结合非前缀霍夫曼代码使用时给出明显的压缩改进。
图4b示出了根据基于前缀的实施例的示例逐向量霍夫曼表。可见,优化残差值被视为单个输入值或关键字{100 1 101 1 10}(表的右边列),并且在该示例情况下匹配霍夫曼代码{000101}(表的左边列)。因此,优化残差值{1001101110}可以用该霍夫曼代码{000101}(媒体数据)来代替。
图4c示出了根据基于非前缀示例(无前缀)的示例逐向量霍夫曼表。可见,优化残差值被视为单个输入值或关键字{100 1 101 1 10}(表的右边列),并且在该示例情况下匹配非前缀霍夫曼代码{1010}(表的中间列)。由于该编码方案没有前缀,所以霍夫曼代码(表的左边列)的长度(其在该示例情况下为4位)被包括在元数据中以促进随后的解码。因此,媒体数据为{1010},并且元数据为4。注意,霍夫曼代码长度可以使用其他元数据、诸如图1c和4a中所示的元数据来记录,但是其他这样的元数据不是必须的。
图3c是图示根据本公开的另一实施例的用于对残差向量进行逐元素无前缀霍夫曼编码的方法的流程图。可见,方法包括接收331优化残差向量,并且使用无前缀霍夫曼代码对残差向量进行熵编码333,从而提供已编码优化残差向量。因此,继续以上示例使用情况,给定优化残差向量{4,1,5,1,和-2},则各个元素为{100 1 101 1 10}。
图4d示出了根据基于非前缀实施例(无前缀)的示例逐元素霍夫曼代码。可见,优化残差值被视为各个输入值或关键字{100 1 101 110}(表的右边列),并且在该示例情况下匹配霍夫曼代码{1 0 01 0 11}(表的中间列)。因此,这些霍夫曼代码可以用于形成霍夫曼编码优化残差向量{1001011},并且优化残差向量{100 1 101 1 10}可以用该霍夫曼代码{1001011}(媒体数据)来代替。由于该编码方案无前缀,所以各个霍夫曼代码(维度)的相应位长度(其在该示例情况下为{1,1,2,1,2})被包括在元数据中以促进随后的解码。因此,媒体数据为{1001011},并且元数据为{1,1,2,1,2}。注意,例如,霍夫曼代码长度可以使用图1c和4a中所示的其他元数据来记录,但是其他这样的元数据不是必须的,只要解码可以成功执行。
鉴于本公开应当理解,假定元数据、诸如已编码优化残差向量的长度(有可能包括其组成元素/维度)被存储在元数据文件中,可以使用无前缀霍夫曼代码而非规则霍夫曼编码。这样的非前缀霍夫曼代码没有自描述代码长度,但是如果代码长度可以根据元数据来确定就可以。这样的无前缀霍夫曼编码方案产生明显的压缩益处。因此,残差向量可以被无损地压缩并且存储,以实现更高的压缩速率。鉴于本公开很清楚大量应用,包括多媒体应用、视频处理和回放应用、压缩和编码应用、内容访问应用、管理和传输应用、通过网络流传输媒体应用、内容和信号传输应用、以及数据流操纵应用等。应当进一步理解,这些技术可以用任何数目的编解码器来实现。
示例系统
图5是图示根据本公开的实施例配置的示例视频内容流传输系统的框图。可见,系统用客户端服务器架构来实现,其包括经由通信网络通信地耦合至内容提供方的大量客户端节点。这样的客户端服务器实施例可以适合例如用在在线或基于云的DVR服务的上下文中,该服务允许订户或其他用户(客户端)将视频内容记录和存储到远程DVR(服务器)用于随后在适合用户的时间来回放。在该示例实施例中,内容提供方节点包括与一个或多个存储介质通信地耦合的媒体服务器计算机系统。媒体服务器计算机系统被编程或者配置有标准压缩视频流生成器和编码器100(如本文中先前讨论的)。所描绘的示例情况下的存储介质包括用于媒体数据的第一存储装置(在一个实施例中,假定每用户一个副本的要求应用于该数据,然而这样的约束当然并不需要用于本文中提供的所有应用)以及用于元数据和码本的第二存储装置。虽然存储介质被示出为单独的,但是它们实际上不需要是单独的。在其他实施例中,存储介质可以使用内容提供方的媒体服务器可访问的分布式数据库来实现。同样,虽然示出了一个媒体服务器,然而可以使用任何数目的媒体服务器来执行本文中提供的各种功能。在更加一般的意义上,可以使用大量基于云的后端配置来实现典型的内容提供方功能,其可以使用本文中提供的残差压缩技术来补充。该示例实施例中的基于客户端的回放系统包括解码器110(如本文中先前讨论的)。在其他示例实施例中,解码器110也可以在服务器侧,然而这样的配置没有利用关于传输时间的基于压缩的节省的优点。
在操作中,内容提供方经由基于客户端的回放系统和网络中的一项从用户接收记录视频内容的请求。被请求用于记录的视频内容可以是例如调度的广播或者依需购买。在任何情况下,内容提供方使用流生成器来生成压缩视频流,并且然后可以开始根据调度的广播或者在请求的时间流传输内容。在一个示例情况下,压缩视频流是MPEG压缩视频流,然而可以使用适合流传输视频的任何数目的压缩方案。
除了由内容提供方执行的该传统流传输活动,内容提供方还处理用户的请求以将内容的副本记录在用户的云DVR或者可用于这样的用户请求的其他专用存储空间上。为此,根据本公开的实施例,通过编码器100处理压缩视频流以生成用于存储在媒体存储装置100a(用户的云DVR)中的媒体数据以及用于存储在码本和元数据存储装置100b中的元数据。由编码器100执行的编码过程例如可以如先前参考图1a、2a和3a讨论地来实现,包括鉴于本公开应当理解的本文中提供的变化中的任何变化。记得,所存储的媒体数据可以是已编码优化残差向量数据。
响应于回放存储在用户的云DVR中的视频内容的请求,媒体服务器还被配置成通过网络将已编码优化残差向量数据流传输给用户。在用户的回放系统处的解码器110然后可以用于将已编码优化残差向量数据解码回压缩视频流,并且经由显示器将该流呈现给用户。由解码器110执行的解码过程例如可以如先前参考图1b、2b、3a讨论地来实现,包括鉴于本公开应当理解的本文中提供的变化中的任何变化。基于客户端的(多个)码本可以被周期性地更新(例如在下班时间期间),使得能够执行解码。元数据也可以事先、或者结合媒体数据的传输被传输给客户端。如先前解释的,解码器110也可以根据需要在内容提供节点处来实现。在这样的情况下,并非流传输已编码优化残差向量数据,而是可以向用户的客户端流传输规则地压缩的视频流。
用户的客户端可以使用任意合适的计算设备(例如笔记本计算机、台式计算机、平板计算机、智能电话等)或者其他回放系统(例如电视机和机顶盒布置、显示器和游戏控制台布置等)来实现。网络可以包括例如操作地耦合至因特网的局域网(LAN)、或者线缆网络、或者卫星网络、或者通过其能够传输视频内容的任何其他通信网络。媒体服务器可以使用被配置成接收和处理用户请求并且提供内容的一个或多个服务器计算机来实现。存储介质可以是任意合适的非易失性存储装置。
示例实施例
大量示例实施例将很清楚,并且本文中描述的特征可以以任何数目的配置来组合。
示例1包括一种用于对数字视频内容进行编码的方法。方法包括:向量化压缩视频流以提供多个向量;通过使用来自码本的码本向量的向量量化,生成该多个向量中包括的向量的残差向量;从该残差向量中去除零以创建优化残差向量;对该优化残差向量进行熵编码以产生已编码优化残差向量;存储与该已编码优化残差向量相关联的元数据,该元数据包括该已编码优化残差向量的长度以及该已编码优化残差向量的每个维度的长度中的至少一项;以及存储与该已编码优化残差向量相关联的媒体数据,该媒体数据包括对应于用于生成该残差向量的该码本向量的索引。
示例2包括示例1的主题,并且还包括重复该方法,直到该多个向量中包括的每个向量已经被处理成对应已编码优化残差向量。
示例3包括示例1或2的主题,其中该压缩视频流是MPEG压缩视频流。
示例4包括在先示例中的任一项的主题,其中对该优化残差向量进行熵编码以产生已编码优化残差向量包括算术编码和霍夫曼编码中的至少一项。
示例5包括在先示例中的任一项的主题,其中对该优化残差向量进行熵编码以产生已编码优化残差向量包括逐向量霍夫曼编码。
示例6包括在先示例中的任一项的主题,其中对该优化残差向量进行熵编码以产生已编码优化残差向量包括逐向量无前缀霍夫曼编码。
示例7包括示例1到4中的任一项的主题,其中对该优化残差向量进行熵编码以产生已编码优化残差向量包括逐元素无前缀霍夫曼编码。
示例8包括一种计算机程序产品,其包括编码有指令的一个或多个非暂态计算机可读介质,该指令在由一个或多个处理器执行时使得执行用于对数字视频内容进行编码的处理,该处理包括示例1到7中的任一项的方法。
示例9包括一种用于对数字视频内容进行编码的系统,该系统包括:存储设备;以及一个或多个处理器,被配置成:向量化压缩视频流以提供多个向量;通过使用来自码本的码本向量的向量量化,生成该多个向量中包括的向量的残差向量;从该残差向量中去除零以创建优化残差向量;对该优化残差向量进行熵编码以产生已编码优化残差向量;在该存储设备中存储与该已编码优化残差向量相关联的元数据,该元数据包括该已编码优化残差向量的长度以及该已编码优化残差向量的每个维度的长度中的至少一项;以及在该存储设备中存储与该已编码优化残差向量相关联的媒体数据,该媒体数据包括对应于用于生成该残差向量的该码本向量的索引。
示例10包括示例9的主题,其中该一个或多个处理器还被配置成:重复该生成、去除、熵编码和存储中的每一项,直到该多个向量中包括的每个向量被处理成对应已编码优化残差向量。
示例11包括示例9或10的主题,其中该系统是基于云的数字视频记录器(DVR)服务的一部分。这样的服务可以是例如有线电视提供方或者大众传媒公司。
示例12包括示例9到11中的任一项的主题,其中该一个或多个处理器被配置成通过使用算术编码和霍夫曼编码中的至少一项来对该优化残差向量进行熵编码以产生已编码优化残差向量。
示例13包括示例9到12中的任一项的主题,其中对该优化残差向量进行熵编码以产生已编码优化残差向量包括逐向量霍夫曼编码。
示例14包括示例9到13中的任一项的主题,其中该一个或多个处理器被配置成通过使用逐向量无前缀霍夫曼编码来对该优化残差向量进行熵编码以产生已编码优化残差向量。
示例15包括示例9到12中的任一项的主题,其中该一个或多个处理器被配置成通过使用逐元素无前缀霍夫曼编码来对该优化残差向量进行熵编码以产生已编码优化残差向量。
已经出于说明和描述的目的呈现了本公开的示例实施例的以上描述。其并非意图排他或者将本公开限于所公开的精确形式。鉴于本公开,很多修改和变化是可能的。意图在于,本公开的范围不受本详细描述的限制,而受所附权利要求的限制。

Claims (20)

1.一种用于对数字视频内容进行编码的方法,包括:
对压缩视频流进行向量化以提供多个向量;
通过使用来自码本的码本向量的向量量化,生成用于所述多个向量中包括的向量的残差向量;
从所述残差向量中去除零以创建优化残差向量;
对所述优化残差向量进行熵编码以产生已编码优化残差向量;
存储与所述已编码优化残差向量相关联的元数据,所述元数据包括所述已编码优化残差向量的长度以及所述已编码优化残差向量的每个维度的长度中的至少一项;以及
存储与所述已编码优化残差向量相关联的媒体数据,所述媒体数据包括对应于用于生成所述残差向量的所述码本向量的索引。
2.根据权利要求1所述的方法,还包括:
重复所述方法,直到所述多个向量中包括的每个向量已经被处理成对应的已编码优化残差向量。
3.根据权利要求1所述的方法,其中所述压缩视频流是MPEG压缩视频流。
4.根据权利要求1所述的方法,其中对所述优化残差向量进行熵编码以产生已编码优化残差向量包括算术编码和霍夫曼编码中的至少一项。
5.根据权利要求1所述的方法,其中对所述优化残差向量进行熵编码以产生已编码优化残差向量包括逐向量霍夫曼编码。
6.根据权利要求1所述的方法,其中对所述优化残差向量进行熵编码以产生已编码优化残差向量包括逐向量无前缀霍夫曼编码。
7.根据权利要求1所述的方法,其中对所述优化残差向量进行熵编码以产生已编码优化残差向量包括逐元素无前缀霍夫曼编码。
8.一种非暂态计算机可读介质,其上存储有指令,所述指令在由一个或多个处理器执行时使得执行用于对数字视频内容进行编码的处理,所述处理包括:
对压缩视频流进行向量化以提供多个向量;
通过使用来自码本的码本向量的向量量化,生成用于所述多个向量中包括的向量的残差向量;
从所述残差向量中去除零以创建优化残差向量;
对所述优化残差向量进行熵编码以产生已编码优化残差向量;
存储与所述已编码优化残差向量相关联的元数据,所述元数据包括所述已编码优化残差向量的长度以及所述已编码优化残差向量的每个维度的长度中的至少一项;以及
存储与所述已编码优化残差向量相关联的媒体数据,所述媒体数据包括对应于用于生成所述残差向量的所述码本向量的索引。
9.根据权利要求8所述的计算机可读介质,所述处理还包括:
重复所述处理,直到所述多个向量中包括的每个向量已经被处理成对应的已编码优化残差向量。
10.根据权利要求8所述的计算机可读介质,其中对所述优化残差向量进行熵编码以产生已编码优化残差向量包括算术编码和霍夫曼编码中的至少一项。
11.根据权利要求8所述的计算机可读介质,其中对所述优化残差向量进行熵编码以产生已编码优化残差向量包括逐向量霍夫曼编码。
12.根据权利要求8所述的计算机可读介质,其中对所述优化残差向量进行熵编码以产生已编码优化残差向量包括逐向量无前缀霍夫曼编码。
13.根据权利要求8所述的计算机可读介质,其中对所述优化残差向量进行熵编码以产生已编码优化残差向量包括逐元素无前缀霍夫曼编码。
14.一种用于对数字视频内容进行编码的系统,所述系统包括:
存储设备;以及
一个或多个处理器,被配置成:
对压缩视频流进行向量化以提供多个向量;
通过使用来自码本的码本向量的向量量化,生成用于所述多个向量中包括的向量的残差向量;
从所述残差向量中去除零以创建优化残差向量;
对所述优化残差向量进行熵编码以产生已编码优化残差向量;
在所述存储设备中存储与所述已编码优化残差向量相关联的元数据,所述元数据包括所述已编码优化残差向量的长度以及所述已编码优化残差向量的每个维度的长度中的至少一项;以及
在所述存储设备中存储与所述已编码优化残差向量相关联的媒体数据,所述媒体数据包括对应于用于生成所述残差向量的所述码本向量的索引。
15.根据权利要求14所述的系统,其中所述一个或多个处理器还被配置成:
重复所述生成、去除、熵编码和存储中的每一项,直到所述多个向量中包括的每个向量已经被处理成对应的已编码优化残差向量。
16.根据权利要求14所述的系统,其中所述系统是基于云的数字视频记录器(DVR)服务的一部分。
17.根据权利要求14所述的系统,其中所述一个或多个处理器被配置成通过使用算术编码和霍夫曼编码中的至少一项来对所述优化残差向量进行熵编码以产生已编码优化残差向量。
18.根据权利要求14所述的系统,其中对所述优化残差向量进行熵编码以产生已编码优化残差向量包括逐向量霍夫曼编码。
19.根据权利要求14所述的系统,其中所述一个或多个处理器被配置成通过使用逐向量无前缀霍夫曼编码来对所述优化残差向量进行熵编码以产生已编码优化残差向量。
20.根据权利要求14所述的系统,其中所述一个或多个处理器被配置成通过使用逐元素无前缀霍夫曼编码来对所述优化残差向量进行熵编码以产生已编码优化残差向量。
CN201610885391.9A 2015-12-10 2016-10-10 用于对数字视频内容进行编码的方法、介质和系统 Active CN106878757B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/964,715 2015-12-10
US14/964,715 US10063892B2 (en) 2015-12-10 2015-12-10 Residual entropy compression for cloud-based video applications

Publications (2)

Publication Number Publication Date
CN106878757A CN106878757A (zh) 2017-06-20
CN106878757B true CN106878757B (zh) 2021-11-02

Family

ID=57610444

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610885391.9A Active CN106878757B (zh) 2015-12-10 2016-10-10 用于对数字视频内容进行编码的方法、介质和系统

Country Status (5)

Country Link
US (3) US10063892B2 (zh)
CN (1) CN106878757B (zh)
AU (1) AU2016244204B2 (zh)
DE (1) DE102016012160B4 (zh)
GB (1) GB2545305B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10264262B2 (en) 2016-02-29 2019-04-16 Adobe Inc. Codebook generation for cloud-based video applications
US10601443B1 (en) * 2016-08-24 2020-03-24 Arrowhead Center, Inc. Protocol for lightweight and provable secure communication for constrained devices
CN113194275B (zh) * 2021-04-30 2022-12-27 重庆天智慧启科技有限公司 一种监控图像预览系统
CN116634168B (zh) * 2023-07-26 2023-10-24 上海方诚光电科技有限公司 一种基于工业相机的图像无损处理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1120268A (zh) * 1994-05-27 1996-04-10 株式会社东芝 向量量化装置
CN104918046A (zh) * 2014-03-13 2015-09-16 中兴通讯股份有限公司 一种局部描述子压缩方法和装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5124791A (en) 1989-05-31 1992-06-23 Utah State University Foundation Frame-to-frame compression of vector quantized signals and other post-processing
US5826225A (en) 1996-09-18 1998-10-20 Lucent Technologies Inc. Method and apparatus for improving vector quantization performance
US7269221B2 (en) 1999-04-17 2007-09-11 Altera Corporation Encoding system using motion vectors to represent frame-to-frame changes, including motion vector grouping for coding or processing
GB2365240B (en) 2000-07-19 2002-09-25 Motorola Inc Apparatus and method for image transmission
JP4214440B2 (ja) * 2000-10-19 2009-01-28 ソニー株式会社 データ処理装置およびデータ処理方法、並びに記録媒体
KR101030903B1 (ko) * 2001-11-22 2011-04-22 파나소닉 주식회사 부호화 방법 및 부호화 장치
EP1654806A4 (en) 2003-06-26 2007-01-17 Agile Tv Corp NULL SEARCH, NULL MEMORY VECTOR QUANTIZATION
US20070067166A1 (en) * 2003-09-17 2007-03-22 Xingde Pan Method and device of multi-resolution vector quantilization for audio encoding and decoding
US8326067B2 (en) * 2009-02-27 2012-12-04 Research In Motion Limited Optimization of image encoding using perceptual weighting
US9628821B2 (en) 2010-10-01 2017-04-18 Apple Inc. Motion compensation using decoder-defined vector quantized interpolation filters
WO2014004486A2 (en) * 2012-06-26 2014-01-03 Dunling Li Low delay low complexity lossless compression system
US9338406B2 (en) 2014-01-21 2016-05-10 Bart P.E. van Coppenolle Method and system for collaborative recording and compression
GB2523348B (en) * 2014-02-20 2016-03-30 Gurulogic Microsystems Oy Encoder, decoder and method
US10264262B2 (en) 2016-02-29 2019-04-16 Adobe Inc. Codebook generation for cloud-based video applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1120268A (zh) * 1994-05-27 1996-04-10 株式会社东芝 向量量化装置
CN104918046A (zh) * 2014-03-13 2015-09-16 中兴通讯股份有限公司 一种局部描述子压缩方法和装置

Also Published As

Publication number Publication date
US10063892B2 (en) 2018-08-28
US20210297708A1 (en) 2021-09-23
US11032578B2 (en) 2021-06-08
DE102016012160B4 (de) 2023-11-09
US11575947B2 (en) 2023-02-07
AU2016244204B2 (en) 2019-09-12
GB201617272D0 (en) 2016-11-23
US20170171564A1 (en) 2017-06-15
DE102016012160A1 (de) 2017-06-14
US20180310029A1 (en) 2018-10-25
CN106878757A (zh) 2017-06-20
AU2016244204A1 (en) 2017-06-29
GB2545305B (en) 2019-05-22
GB2545305A (en) 2017-06-14

Similar Documents

Publication Publication Date Title
US11638007B2 (en) Codebook generation for cloud-based video applications
US11575947B2 (en) Residual entropy compression for cloud-based video applications
KR101737294B1 (ko) 심볼 압축을 수반하는 데이터의 소스 코딩 및 디코딩을 위한 방법들 및 디바이스들
US9591334B2 (en) Common copy compression
US7800519B2 (en) Method and apparatus for compressing and decompressing data
US11538197B2 (en) Channel-wise autoregressive entropy models for image compression
KR20190040063A (ko) 인덱스 코딩 및 비트 스케줄링을 갖는 양자화기
US11893007B2 (en) Embedding codebooks for resource optimization
US20030018647A1 (en) System and method for data compression using a hybrid coding scheme
CN112398484A (zh) 一种编码方法及相关设备
BR112020000415B1 (pt) Método para compactar, método para descompactar, conjunto de dados compactados correspondente a um conjunto de dados não compactados, dispositivo para compactar, e dispositivo para descompactar
US20200186583A1 (en) Integer Multiple Description Coding System
CN104380733A (zh) 视频量化参数编码方法、视频量化参数解码方法、设备、以及程序
Huang et al. A security-based steganographic scheme in vector quantization coding between correlated neighboring blocks
US11862183B2 (en) Methods of encoding and decoding audio signal using neural network model, and devices for performing the methods
Mohamed Wireless Communication Systems: Compression and Decompression Algorithms
Suguna An Efficient Encryption-Then-Compression System using Asymmetric Numeral Method
Lambat et al. A MODIFIED ALGORITHM FOR CODEBOOK DESIGN USING VECTOR QUANTIZATION FOR IMAGE COMPRESSION
Bhosale et al. A Modified Image Template for FELICS Algorithm for Lossless Image Compression
Ramachandra Information Compression

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