CN104106264B - 元数据辅助的视频解码 - Google Patents

元数据辅助的视频解码 Download PDF

Info

Publication number
CN104106264B
CN104106264B CN201380009666.7A CN201380009666A CN104106264B CN 104106264 B CN104106264 B CN 104106264B CN 201380009666 A CN201380009666 A CN 201380009666A CN 104106264 B CN104106264 B CN 104106264B
Authority
CN
China
Prior art keywords
decoder
engine
metadata
decode
profile
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
CN201380009666.7A
Other languages
English (en)
Other versions
CN104106264A (zh
Inventor
吴勇军
S.萨瓦尼
N.塔姆普迪
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN104106264A publication Critical patent/CN104106264A/zh
Application granted granted Critical
Publication of CN104106264B publication Critical patent/CN104106264B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/103Selection of coding mode or of prediction mode
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/176Methods 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 block, e.g. a macroblock
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

公开了一种使用元数据以便做出优化决策的视频解码器。在一个实施例中,元数据被用于选定多个可用解码器引擎中的哪个应当接收视频序列。在另一实施例中,优化决策可以基于与视频序列相关联的长度和位置元数据信息。通过使用这样的元数据信息,解码器引擎可以跳过起始码扫描以使解码过程更加高效。同样基于解码器引擎的选定,可以决定竞争阻止字节移除是否应当连同起始码扫描一起发生。

Description

元数据辅助的视频解码
技术领域
本申请一般地涉及解码,并且具体地涉及使用来自具有文件容器的编码视频序列的元数据来优化解码。
背景技术
工程师使用压缩(也称为源代码化或源编码)来减小数字视频的比特率。压缩通过将信息转换成较低比特率形式而降低存储和传输视频信息的成本。解压缩(也称为解码)从经压缩的形式重建原始信息的版本。“编解码器”是编码器/解码器系统。
在过去的二十年间,已经采用了各种视频编解码器标准,包括H.261、H.262(MPEG-2)和H.263标准以及MPEG-1和MPEG-4标准。最近,已经采用了H.264标准(有时被称为AVC或14496-10)和VC-1标准。HEVC的下一代标准正在发展中。对于附加细节,参见相应标准的有代表性的版本。视频编解码器标准典型地定义用于编码视频比特流的语法的选项,从而在特定特征被用在编码和解码中时对用于视频序列的比特流中的参数进行细节化。在许多情况中,视频编解码器标准还提供关于解码器能够执行以在解码中得到正确结果的解码操作的细节。
对于现代解码,可以使用图形处理单元(GPU)。GPU是专用电子电路,其被设计成以这样的方式迅速操纵和更改存储器以便加速旨在用于输出到显示器的帧缓冲器中的图像构建。GPU被用在嵌入式系统、移动电话、个人计算机、工作站、游戏控制台等等中。现代GPU在操纵计算机图形方面非常高效,并且它们的高度并行结构使得它们比通用CPU在用于其中并行完成大块数据的处理的算法时更加高效。
尽管快速,但是大多数GPU并未被设计成操控利用任意片排序(ASO)和/或灵活宏块排序(FMO)编码的视频。使用这样的算法编码的视频典型地使用被设计成操控基线简档(profile)的解码器(比如CPU)来处理。相反,GPU一般被设计成操控具有主简档和较高简档的视频序列。不幸的是,许多H.264/AVC编码器产生基线比特流,其实际上与主简档一致,但是约束标志被不正确地设置。该不正确设置的标志使H.264/AVC解码器将那些剪辑(clip)视为包括ASO或FMO的纯基线,即便这样的算法可能未被使用。
发明内容
提供本发明内容来以简化的形式引入在下文的具体实施方式中进一步描述的概念的选择。本发明内容不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在用于限制所要求保护的主题的范围。
公开了一种使用编码视频序列的元数据以便做出优化决策的视频解码器。例如,在一个实施例中,元数据可以用于选定哪个解码器引擎可以接收视频序列。多个解码器引擎可以在解码器中可用,诸如可以操控基线简档的一个解码器引擎(例如CPU)和不能这样做但一般而言更高效的一个解码器引擎(例如GPU)。通过使用元数据选定最高效的解码器引擎,实现了优化的解码器。
在另一实施例中,优化决策可以基于与视频序列相关联的长度和位置元数据信息。通过使用这样的元数据信息,解码器引擎可以跳过起始码扫描以使解码过程更加高效。
在又一实施例中,在比特流解析器解码片头、序列参数集(SPS)、图片参数集(PPS)和补充增强信息(SEI)的同时,可以动态地移除竞争阻止字节(emulation preventionbyte)。当网络接入层单元(NALU)长度信息可用时,硬件加速的解码可以完全跳过起始码扫描,并且直接向硬件逐个发送NALU。
本发明的上述和其它目的、特征和优点将从以下参照附图进行的详细描述变得更加显而易见。
附图说明
图1是其中可以实现一些所描述的实施例的示例计算环境的图。
图2是用于基于编码视频序列中的元数据而做出解码优化决策的方法的流程图。
图3是使用元数据来确定哪个可用解码器引擎可以用于解码视频序列的流程图。
图4是较为详细的流程图,其可以用于详述图3的流程图并且是用于MPEG-4视频序列的特定示例。
图5是包括多个解码器引擎的解码器的示例架构式结构。
图6是可以使用的示例解码器引擎。
图7是用于将长度和位置传递到解码器引擎的方法的流程图。
图8是用于移除竞争阻止字节的方法的流程图。
具体实施方式
I.示例计算环境
图1图示了其中可以实现所描述的技术和工具中的若干个的适合的计算环境(100)的通用示例。计算环境(100)不旨在喻示对使用或功能性的范围的任何限制,因为技术和工具可以在多种多样的通用或专用计算环境中实现。
参照图1,计算环境(100)包括可以在实现计算设备时使用的一个或多个处理单元(110,115)和存储器(120,125)。在图1中,这种最基本的配置(130)包括在虚线内。处理单元(110,115)运行计算机可执行指令。处理单元可以是通用中央处理单元(CPU)、专用集成电路(ASIC)中的处理器或任何其它类型的处理器。在多处理系统中,多个处理单元运行计算机可执行指令以增加处理能力。例如,图1示出中央处理单元(110)以及图形处理单元或协同处理单元(115)。存储器(120,125)可以是由(多个)处理单元可访问的易失性存储器(例如寄存器、高速缓存、RAM)、非易失性存储器(例如ROM、EEPROM、闪速存储器等)、或这二者的某种组合。存储器(120,125)以适于由(多个)处理单元运行的计算机可执行指令的形式存储实现用于解码器优化的一项或多项创新的软件(180)。
计算环境可以具有附加特征。例如,计算环境(100)包括存储装置(140)、一个或多个输入设备(150)、一个或多个输出设备(160)、和一个或多个通信连接(170)。诸如总线、控制器、或网络之类的互连机制(未示出)互连计算环境(100)的组件。典型地,操作系统软件(未示出)为运行在计算环境(100)中的其它软件提供操作环境,并且协调计算环境(100)的组件的活动。
有形存储装置(140)可以是可移动或不可移动的,并且包括磁盘、磁带或磁盒、CD-ROM、DVD、或可以用于以非暂时性的方式存储信息并且可以在计算环境(100)内被访问的任何其它介质。存储装置(140)可以存储用于实现用于解码器优化的一项或多项创新的软件(180)的指令。
(多个)输入设备(150)可以是诸如键盘、鼠标、笔或跟踪球之类的触摸输入设备、语音输入设备、扫描设备、或向计算环境(100)提供输入的另一设备。为了视频解码,(多个)输入设备(150)可以是视频卡、TV调谐器卡、或以模拟或数字形式接受视频输入的类似设备、或将视频样本读入到计算环境(100)中的CD-ROM或CD-RW。(多个)输出设备(160)可以是显示器、打印机、扬声器、CD刻录机、或从计算环境(100)提供输出的另一设备。
(多个)通信连接(170)使得能够实现通过通信介质到另一计算实体的通信。通信介质输送诸如计算机可执行指令、音频或视频输入或输出、或调制数据信号中的其它数据之类的信息。调制数据信号是这样的信号:其一个或多个特性以这样的方式被设置或改变以便将信息编码在该信号中。作为示例而非限制,通信媒介包括利用电学、光学、RF或其它载体实现的有线或无线技术。
可以在计算机可读媒介的一般上下文中描述技术和工具。计算机可读媒介是可以在计算环境内被访问的任何可用有形媒介。作为示例而非限制,就计算环境(100)而言,计算机可读媒介包括存储器(120)、存储装置(140)、和以上任何组合。
可以在诸如包括在程序模块中、在目标实际或虚拟处理器上的计算环境中运行的那些之类的计算机可执行指令的一般上下文中描述技术和工具。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。程序模块的功能性可以按各种实施例中所期望的那样在程序模块之间进行组合或拆分。用于程序模块的计算机可执行指令可以在本地或分布式计算环境内运行。
在本文中互换地使用术语“系统”和“设备”。除非上下文以其它方式明确指示,否则术语既不暗示对计算系统的类型的任何限制也不暗示对计算设备的类型的任何限制。一般而言,计算系统或计算设备可以是本地的或分布式的,并且可以包括具有实现本文所描述的功能性的软件的专用硬件和/或通用硬件的任何组合。
为了呈现起见,详细描述使用比如“确定”和“选择”之类的术语来描述计算环境中的计算机操作。这些术语是针对计算机所执行的操作的高水平抽象,并且不应当与人类所执行的动作相混淆。对应于这些术语的实际计算机操作取决于实现而变化。
II.元数据辅助的解码优化的概述
图2是用于使用元数据优化解码的方法的流程图。在过程块200中,接收编码视频序列。编码视频序列可以是影片剪辑或其它视频序列,并且可以使用包括MPEG-X、AVI、MKV、ASF等的各种容器格式中的任一个。此外,可以使用用于视频压缩的任何各种标准,诸如H.264/AVC、VC-1、MPEG-4 Pt2等。在过程块202中,可以分析编码视频序列中的元数据以便做出解码决策。元数据可以是用于辅助描述或分类视频序列的未经处理的图像数据的任何数据。例如,样本描述框(STSD)可以用在MPEG-4中以获取关于诸如序列参数集(SPS)和图片参数集(PPS)之类的参数集的元数据。参数集可以包含可用于做出解码器优化决策(过程块204)的关于任意片排序(ASO)和灵活宏块排序(FMO)的附加信息。例如,通过使用元数据,可以做出将编码数据转寄到最高效的解码器引擎的选定。在其它示例中,元数据可以用于优化比特流解析,如下文进一步描述的那样。可以使用其它元数据,并且本文所描述的实施例不限于所使用的特定元数据和特定解码器优化决策。
III.使用元数据的解码器引擎选择
图3是示出与图2结合使用的附加细节或过程块的示例实施例。在过程块300中,可以分析元数据以确定最高效的解码器引擎。高效的解码器引擎可以是例如在最少量的时间内执行解码的那个解码器引擎。还可以分析其它效率参数,诸如存储器使用、精度等。在过程块302中,解码器可以包括多个(例如两个或更多)解码器引擎,并且作为分析的结果,可以将编码数据转寄到适当的解码器引擎。第一解码器引擎类型可以是能够解码主简档或较高简档处的比特流的解码器引擎。典型地,诸如GPU之类的解码器引擎,或者在设计用于解码的专用硬件中执行解码的一部分(一般称为硬件加速)的其它处理器落入该群组中。第二解码器引擎类型可以是能够解码基线、主和较高简档。使用软件解码的中央处理单元(CPU)是示例性第二解码器引擎类型。一般而言,CPU具有可以用于除解码之外的目的的通用硬件,并且因此可能不太高效。在过程块304中,所选定的解码器引擎对编码数据进行解码。解码数据然后可以用于诸如在用户显示器上显示解码视频。
图4是使用MPEG-4的特定示例扩展过程块300的方法的流程图。在过程块400中,可以解析诸如编码比特流元数据中的SPS和PPS之类的参数集。在过程块402和决策块404中,可以通过分析SPS和PPS元数据而做出ASO或FMO是否被使用的确定。如果是这样,则选定能够解码基线简档、主和较高简档的解码器引擎,诸如使用软件解码比特流的CPU(过程块406)。否则,在过程块408中,选定能够解码主简档和较高简档的解码器引擎,诸如GPU或其它硬件加速的解码引擎。
图5示出了包括可以使用的多个解码器引擎502、504的解码器500的高水平图。解码器引擎502能够解码主简档和较高编码数据,并且一般不能够解码基线简档或在解码基线简档处是无效的。因此,当数据是使用诸如ASO和FMO之类的某种类型的算法编码的时候,解码器引擎502使用起来不太合期望。解码器引擎504是能够解码基线简档、主和较高简档的解码器引擎。因此,解码器引擎504可以比解码器引擎502解码更多样的编码数据类型。在506处,解码器决策逻辑使用本文所描述的算法基于比特流中的元数据来选择哪个解码器引擎502、504可以解码所接收的编码数据。
因此,如果来自MPEG-4文件格式的元数据可用,则硬件加速的视频解码可以仍对剪辑完成,即使标志在编码比特流中被不恰当地设置。例如,如果在剪辑中存在来自MPEG-4文件格式的单个“stsd”样本条目(这通常为真),则可以在比特流解码的最开始发送所有的SPS和PPS。甚至在H.264解码器解析SPS并且发现比特流在基线简档中(与主简档不兼容)之后,H.264/AVC解码器可以解析所有PPS并且找出比特流是否确实使用FMO和ASO。如果否(这通常为真),则比特流可以仍然被发送到硬件加速器以用于视频解码。基本上,通过使用来自MPEG-4文件格式的附加元数据信息,其可以走得更远一步并且查看所有PPS,并且然后决定是否其应当针对给定剪辑使用硬件加速的视频解码。
IV.示例性视频解码器引擎
图6是可以使用本文所描述的任何实施例来执行解码的一般视频解码器引擎600的示意图。可以使用可替换的解码器引擎,并且图6仅仅是一个示例。解码器引擎600接收用于视频帧的经压缩的序列的信息695(例如经由经压缩的视频比特流)并且产生包括重建块605的输出。视频解码器的特定实施例可以使用通用解码器600的变型或补充版本。
解码器引擎600对使用帧间预测和/或帧内预测编码的块进行解压缩。为了呈现起见,图6示出通过解码器引擎600的用于帧内编码块的路径(示出为帧内块路径)和用于帧间编码块的路径(示出为帧间块路径)。解码器引擎600的许多组件用于解压缩帧间编码块和帧内编码块二者。由那些组件执行的确切操作可以取决于被解压缩的信息的类型而变化。
缓冲器690接收用于经压缩的视频序列的信息695并且使所接收的信息对熵解码器680可用。缓冲器690典型地以随时间相当恒定的速率接收信息。缓冲器690还可以包括回放缓冲器和其它缓冲器。可替换地,缓冲器690以变化的速率接收信息。
熵解码器680典型地通过应用在编码器中执行的熵编码的逆过程来对熵编码的量化数据以及熵编码的边信息(例如运动信息615、标志、模式、语法元素和其它边信息)进行熵解码。例如,熵解码器680可以使用下文所描述的所公开的基于计数器的可变长度编码技术中的任一种来执行解码(例如语法元素的解码)。逆量化器670对熵解码的数据进行逆量化。逆频率变换器660通过应用诸如逆频率变换之类的逆变换来将量化的频域数据转换成空间域视频信息。
如果要重建的块605是使用前向预测的帧间编码块,则运动补偿器630向参考帧625应用运动信息615(例如预测的运动信息)以形成被重建的块605的预测635。缓冲器(存储装置)620存储先前的重建帧以用作参考帧。可替换地,运动补偿器应用其它类型的运动补偿。通过运动补偿器的预测很少是完美的,因此解码器600还对要被添加到预测635的预测残差645进行重建以便重建块605。
当解码器需要重建帧以用于后续运动补偿时,存储装置620缓冲重建帧以便在预测后续帧时使用。在预测帧的一些实现中,以逐个块为基础预测帧(如所示)并且可以预测帧的相应块。可以使用来自相同帧中的块或不同帧的一个或多个块的运动信息来预测一个或多个预测块。
如果要重建的块605是帧内编码块,则帧内预测器655形成被重建的块610的预测665。缓冲器(存储装置)620存储先前的重建块和帧。通过运动补偿器的预测很少是完美的,因此解码器600还可以对要被添加到预测665的预测残差675进行重建以重建块610。
尽管描述了特定解码器引擎,但是可以使用各种各样的解码器结构,因为解码器引擎的类型关乎设计选定,并且取决于特定应用。
V.使用元数据的优化的比特流解析器
图7是用于使用元数据实现解码器优化的方法的流程图。为了说明的目的,与H.264/AVC解码器有关地描述图7的流程图。然而,一般要理解的是,该方法可以应用于其它解码器类型。一般而言,H.264/AVC解码器接受在每个网络接入层单元(NALU)的开头中具有起始码0x00 00 001的比特流。MPEG-4文件格式指示每个网络接入层单元的长度并且将每个样本一张图片发送到H.264/AVC解码器。当NALU长度信息可用时,硬件加速的解码可以完全跳过起始码扫描,并且直接向硬件逐个发送NALU。
在过程块700中,解码器决策逻辑(诸如在图5的506所示)检索与NALU相关联的长度和位置信息。这样的信息是元数据并且可以在与到来的比特流相关联的文件容器中找到。在过程块702中,长度和位置信息被传递到所选择的适当解码器引擎,如先前所描述的那样。可替换地,该方法可以应用于具有单个解码引擎的解码器。在过程块704中,解码器引擎可以使用长度和位置元数据信息以在不扫描起始码的情况下解码比特流。位置信息描述其中数据在比特流中起始的定位。长度信息提供数据相对于起始在哪里结束。因为已经提供了位置和长度信息,所以通过消除对起始码扫描的需要而实现CPU循环的大幅节约。
图8示出了其中分析竞争阻止字节的附加方法的实施例。H.264/AVC视频的软件解码可以移除经压缩的比特流中的竞争阻止字节0x03以得到高效的熵解码。即,对于软件CABAC/CAVLC解码而言,在熵解码的过程中不检测竞争阻止字节可以是更加高效的。软件解码中的比特流解析器被设计成基本上同时执行起始码解析和竞争阻止字节移除。另一方面,硬件加速器解码有时不需要将竞争阻止0x03从经压缩的比特流移除。不同的比特流解析器可以被设计成仅扫描起始码,在比特流解析器解码片头、序列参数集(SPS)、图片参数集(PPS)和补充增强信息(SEI)的同时(动态地)检测和移除飞行中的竞争阻止字节0x03。
在决策块800中,做出长度和位置信息在元数据中是否可用的确定。如果是,则在过程块802中,将起始码的长度和位置传递到适当的解码器引擎,使得解码器可以避免起始码扫描。如果否,则搜索起始码,使得可以确定长度和位置信息(过程块804)。搜索可以通过扫描比特流并且将每个字节与起始码进行比较以找到位置来执行。长度可以通过搜索结束码并且对起始码与结束码之间的字节进行计数来确定。在决策块806中,做出是否使用软件解码器引擎(例如CPU)或需要通过竞争阻止字节的移除的优化的解码器引擎的确定。如果这些解码器引擎中的任一个被使用,则在过程块810中,从比特流移除竞争阻止字节。在过程块812中,将其中竞争阻止字节被移除的编码数据发送到解码器引擎,所述解码器引擎能够解码基线简档、主和较高简档。还可以将长度和位置信息发送到解码器。如果决策块806消极地回应,则在过程块816中,将具有竞争阻止字节连同长度和位置信息一起的编码数据发送到能够解码主简档和较高简档的解码器。因此,当NALU长度信息可用时,硬件加速的解码可以完全跳过起始码扫描,并且直接向硬件逐个发送NALU。优化的比特流解析器实现CPU使用的大幅增加,特别是对于低端机器上的硬件加速视频解码而言更是如此。
任何所公开的方法可以实现为存储在一个或多个计算机可读存储媒介(例如,非暂时性计算机可读媒介,诸如一个或多个光学媒介盘,易失性存储器组件(诸如DRAM或SRAM),或非易失性存储器组件(诸如硬驱动))上并且运行在计算机(例如任何商业上可用的计算机,包括智能电话或包括计算硬件的其它移动设备)上的计算机可执行指令。用于实现所公开的技术的任何计算机可执行指令以及在所公开的实施例的实现期间创建和使用的任何数据可以存储在一个或多个计算机可读媒介(例如非暂时性计算机可读媒介)上。计算机可执行指令可以是例如专用软件应用、或经由万维网浏览器访问或下载的软件应用、或其它软件应用(诸如远程计算应用)的一部分。这样的软件可以通过使用一个或多个网络计算机例如运行在单个本地计算机(例如任何适合的商业上可用的计算机)上或网络环境中(例如经由因特网、广域网、局域网、客户端-服务器网络(诸如云计算网络)、或其它这样的网络)。
为了清楚起见,仅描述了基于软件的实现的某些所选方面。在本领域中众所周知的其它细节被省略。例如,应当理解,所公开的技术不限于任何特定计算机语言或程序。例如,所公开的技术可以由用C++、Java、Perl、JavaScript、Adobe Flash、或任何其它适合的编程语言编写的软件实现。同样地,所公开的技术不限于任何特定的计算机或硬件的类型。适合的计算机和硬件的某些细节是众所周知的并且无需在本公开中详细阐述。
另外,任何基于软件的实施例(包括,例如,用于使计算机执行任何所公开的方法的计算机可执行指令)可以通过适合的通信手段被上载、下载或远程访问。这样的适合的通信手段包括例如,因特网、万维网、内联网、软件应用、线缆(包括光纤线缆)、磁通信、电磁通信(包括RF、微波和红外通信)、电子通信、或其它这样的通信手段。
鉴于所公开的发明的原理可以应用到的许多可能的实施例,应当认识到所说明的实施例仅仅是本发明的优选示例并且不应当作为限制本发明的范围来考虑。而是,本发明的范围由以下权利要求限定。我们因此要求保护进入这些权利要求的范围内的全部作为我们的发明。

Claims (10)

1.在实现视频解码器的计算设备中,一种方法包括:
接收具有文件容器的编码视频序列;
由视频解码器检测视频序列内指示需要能够解码基线简档的解码器引擎的标志;
利用实现所述视频解码器的所述计算设备,分析与文件容器中的所述编码视频序列相关联的元数据;以及
使用所述元数据以做出所述视频解码器中的解码器优化决策,该解码器优化决策包括根据该元数据选择不能够解码基线简档的解码器,并且忽视该标志被设置。
2.权利要求1的方法,其中所述解码器优化决策包括基于所述元数据而从多个解码器引擎选定执行解码的解码器引擎。
3.权利要求2的方法,其中从包括以下各项之一的列表中选定所述多个解码器引擎:能够解码主简档和较高简档的视频序列的解码器引擎和能够解码基线、主和较高简档的解码器引擎。
4.权利要求3的方法,其中能够解码主简档和较高简档的视频序列的解码器引擎包括用于硬件加速的图形处理单元,并且能够解码基线、主和较高简档的解码器引擎包括中央处理单元。
5.权利要求1的方法,还包括搜索所述元数据以得到在编码中所使用的算法类型并且基于所述算法类型而选定解码引擎。
6.权利要求5的方法,其中所述算法类型包括任意片排序(ASO)和灵活宏块排序(FMO)。
7.权利要求5的方法,其中搜索所述元数据包括解析所述编码视频序列中的一个或多个参数集。
8.权利要求1的方法,还包括检索与所述编码视频序列相关联的长度信息和位置信息并且将所述长度和位置信息作为元数据传递到解码器引擎。
9.一种用于计算设备的方法,所述方法包括以下步骤:
在解码器中接收编码视频序列,该编码视频序列包括指示能够解码基线简档的解码器引擎的使用的标志;
分析所述编码视频序列中的元数据以确定至少两个解码器引擎中的哪个将会是更加高效的,该元数据指示与能够解码基线简档的解码器引擎的使用有关的信息,该指示与标志指示的相反;以及
基于该元数据将所述编码视频序列转寄到所确定的解码器引擎,其中所确定的解码器引擎不能够解码基线简档。
10.一种实现视频解码器的计算设备,所述计算设备包括一个或多个处理单元并且被适配成执行包括以下步骤的方法:
接收用于视频序列的比特流中的编码数据,其中所述比特流包括指示能够解码基线简档的解码器引擎的使用的标志和包含在元数据中的一个或多个参数集;
解析所述一个或多个参数集以确定任意片排序或灵活宏块排序是否被使用;
如果任意片排序或灵活宏块排序被使用,则将所述编码数据转寄到能够解码基线、主和较高简档的视频序列的第一解码器引擎;
如果任意片排序或灵活宏块排序未被使用,则将所述编码数据转寄到不同于所述第一解码器引擎的第二解码器引擎,所述第二解码器引擎能够解码主简档和较高简档,但不能解析基线简档,忽略该标志。
CN201380009666.7A 2012-02-17 2013-02-13 元数据辅助的视频解码 Active CN104106264B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/399,769 2012-02-17
US13/399,769 US9241167B2 (en) 2012-02-17 2012-02-17 Metadata assisted video decoding
PCT/US2013/026004 WO2013123100A1 (en) 2012-02-17 2013-02-13 Metadata assisted video decoding

Publications (2)

Publication Number Publication Date
CN104106264A CN104106264A (zh) 2014-10-15
CN104106264B true CN104106264B (zh) 2017-05-17

Family

ID=48982247

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380009666.7A Active CN104106264B (zh) 2012-02-17 2013-02-13 元数据辅助的视频解码

Country Status (6)

Country Link
US (2) US9241167B2 (zh)
EP (1) EP2815574B1 (zh)
JP (2) JP2015513386A (zh)
KR (1) KR102006044B1 (zh)
CN (1) CN104106264B (zh)
WO (1) WO2013123100A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014154288A1 (en) * 2013-03-28 2014-10-02 Irdeto B.V. Processing digital content
US9911460B2 (en) 2014-03-24 2018-03-06 Microsoft Technology Licensing, Llc Fast and smart video trimming at frame accuracy on generic platform
US9516147B2 (en) 2014-10-30 2016-12-06 Microsoft Technology Licensing, Llc Single pass/single copy network abstraction layer unit parser
US9854261B2 (en) * 2015-01-06 2017-12-26 Microsoft Technology Licensing, Llc. Detecting markers in an encoded video signal
US10129566B2 (en) * 2015-03-16 2018-11-13 Microsoft Technology Licensing, Llc Standard-guided video decoding performance enhancements
US9979983B2 (en) * 2015-03-16 2018-05-22 Microsoft Technology Licensing, Llc Application- or context-guided video decoding performance enhancements
US10271069B2 (en) 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention
US10362241B2 (en) 2016-12-30 2019-07-23 Microsoft Technology Licensing, Llc Video stream delimiter for combined frame
US10931930B2 (en) * 2018-07-06 2021-02-23 Mediatek Singapore Pte. Ltd. Methods and apparatus for immersive media content overlays
US11265580B2 (en) * 2019-03-22 2022-03-01 Tencent America LLC Supplemental enhancement information messages for neural network based video post processing
US11356706B2 (en) 2020-01-08 2022-06-07 Qualcomm Incorporated Storage and delivery of video data for video coding
US11831920B2 (en) * 2021-01-08 2023-11-28 Tencent America LLC Method and apparatus for video coding
CN115866254A (zh) * 2022-11-24 2023-03-28 亮风台(上海)信息科技有限公司 一种传输视频帧及摄像参数信息的方法与设备

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311204B1 (en) * 1996-10-11 2001-10-30 C-Cube Semiconductor Ii Inc. Processing system with register-based process sharing
US7082166B2 (en) * 2000-04-17 2006-07-25 Pts Corporation Decoder for decoding segment-based encoding of video data using segmentation performed at a decoder
AU2002332706A1 (en) * 2001-08-30 2003-03-18 Faroudja Cognition Systems, Inc. Multi-layer video compression system with synthetic high frequencies
US7613727B2 (en) * 2002-02-25 2009-11-03 Sont Corporation Method and apparatus for supporting advanced coding formats in media files
US7924921B2 (en) * 2003-09-07 2011-04-12 Microsoft Corporation Signaling coding and display options in entry point headers
US7609762B2 (en) * 2003-09-07 2009-10-27 Microsoft Corporation Signaling for entry point frames with predicted first field
US20050259729A1 (en) * 2004-05-21 2005-11-24 Shijun Sun Video coding with quality scalability
US20060013305A1 (en) * 2004-07-14 2006-01-19 Sharp Laboratories Of America, Inc. Temporal scalable coding using AVC coding tools
WO2006013854A1 (ja) * 2004-08-05 2006-02-09 Matsushita Electric Industrial Co., Ltd. 画像復号化装置および画像符号化装置
US20060126726A1 (en) 2004-12-10 2006-06-15 Lin Teng C Digital signal processing structure for decoding multiple video standards
US20060215754A1 (en) 2005-03-24 2006-09-28 Intel Corporation Method and apparatus for performing video decoding in a multi-thread environment
PL1869833T3 (pl) * 2005-04-15 2016-08-31 Thomson Licensing Sposób zdalnego zarządzania urządzeniem zdalnym i odpowiednie urządzenie wideo
WO2006124885A2 (en) * 2005-05-12 2006-11-23 Kylintv, Inc. Codec for iptv
US20070022215A1 (en) * 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
US8879857B2 (en) * 2005-09-27 2014-11-04 Qualcomm Incorporated Redundant data encoding methods and device
US8436889B2 (en) * 2005-12-22 2013-05-07 Vidyo, Inc. System and method for videoconferencing using scalable video coding and compositing scalable video conferencing servers
US8731051B1 (en) 2006-02-10 2014-05-20 Nvidia Corporation Forward and inverse quantization of data for video compression
US8619865B2 (en) * 2006-02-16 2013-12-31 Vidyo, Inc. System and method for thinning of scalable video coding bit-streams
CN101115195B (zh) 2006-07-24 2010-08-18 同济大学 视频码流的宏块级耦合的解码和环路滤波方法和装置
US8331772B1 (en) * 2006-09-07 2012-12-11 Opentv, Inc. Systems and methods to position and play content
JP4320673B2 (ja) * 2006-12-08 2009-08-26 ソニー株式会社 情報処理装置および方法、並びにプログラム
US20130166580A1 (en) * 2006-12-13 2013-06-27 Quickplay Media Inc. Media Processor
US9124650B2 (en) * 2006-12-13 2015-09-01 Quickplay Media Inc. Digital rights management in a mobile environment
US8428125B2 (en) * 2006-12-22 2013-04-23 Qualcomm Incorporated Techniques for content adaptive video frame slicing and non-uniform access unit coding
US8411734B2 (en) * 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
JP4691062B2 (ja) * 2007-03-30 2011-06-01 株式会社東芝 情報処理装置
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US8265144B2 (en) 2007-06-30 2012-09-11 Microsoft Corporation Innovations in video decoder implementations
US8208745B2 (en) * 2008-01-31 2012-06-26 Analog Devices, Inc. Spatial domain video enhancement/scaling system and method
TWI361009B (en) * 2008-03-06 2012-03-21 Realtek Semiconductor Corp Method and apparatus for processing audio/vedio bi
US9848209B2 (en) * 2008-04-02 2017-12-19 Microsoft Technology Licensing, Llc Adaptive error detection for MPEG-2 error concealment
US8503991B2 (en) * 2008-04-03 2013-08-06 The Nielsen Company (Us), Llc Methods and apparatus to monitor mobile devices
US20090290645A1 (en) * 2008-05-21 2009-11-26 Broadcast International, Inc. System and Method for Using Coded Data From a Video Source to Compress a Media Signal
PT104083A (pt) 2008-06-02 2009-12-02 Inst Politecnico De Leiria Método para transcodificar imagens de vídeo h.264/avc em mpeg-2
KR101444907B1 (ko) 2008-06-24 2014-10-01 (주)휴맥스 홀딩스 Avc 적응적 동영상 복호화 장치 및 방법
US20100027974A1 (en) * 2008-07-31 2010-02-04 Level 3 Communications, Inc. Self Configuring Media Player Control
US8964828B2 (en) 2008-08-19 2015-02-24 Qualcomm Incorporated Power and computational load management techniques in video processing
US8867605B2 (en) * 2008-10-14 2014-10-21 Nvidia Corporation Second deblocker in a decoding pipeline
US8320448B2 (en) 2008-11-28 2012-11-27 Microsoft Corporation Encoder with multiple re-entry and exit points
EP2392138A4 (en) 2009-01-28 2012-08-29 Nokia Corp METHOD AND APPARATUS FOR VIDEO ENCODING AND DECODING
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
US20100226444A1 (en) * 2009-03-09 2010-09-09 Telephoto Technologies Inc. System and method for facilitating video quality of live broadcast information over a shared packet based network
KR101632297B1 (ko) 2009-03-31 2016-07-01 삼성전자주식회사 디지털 데이터 인터페이스를 통한 압축 데이터 전송 방법 및 장치, 수신 방법 및 장치
CN101577110B (zh) 2009-05-31 2012-04-25 腾讯科技(深圳)有限公司 视频播放方法及视频播放器
CN102138335B (zh) * 2009-07-10 2013-02-06 松下电器产业株式会社 再现装置、记录方法及记录介质再现系统
US8737825B2 (en) 2009-09-10 2014-05-27 Apple Inc. Video format for digital video recorder
US20110080425A1 (en) * 2009-10-05 2011-04-07 Electronics And Telecommunications Research Institute System for providing multi-angle broadcasting service
US9369720B2 (en) * 2009-12-28 2016-06-14 Panasonic Intellectual Property Management Co., Ltd. Image coding apparatus and image coding method
JP5996439B2 (ja) * 2010-02-19 2016-09-21 テレフオンアクチーボラゲット エルエム エリクソン(パブル) Httpストリーミングにおける表現切り替えのための方法及び装置
US9100689B2 (en) * 2010-03-24 2015-08-04 Google Technology Holdings LLC Moving content between set top box and end devices in home
US20110261885A1 (en) * 2010-04-27 2011-10-27 De Rivaz Peter Francis Chevalley Method and system for bandwidth reduction through integration of motion estimation and macroblock encoding
US8576184B2 (en) * 2010-08-19 2013-11-05 Nokia Corporation Method and apparatus for browsing content files
US9411795B2 (en) * 2010-09-13 2016-08-09 Hewlett-Packard Development Company, L.P. Content placement
JP2012085211A (ja) * 2010-10-14 2012-04-26 Sony Corp 画像処理装置および方法、並びにプログラム
CN101986708A (zh) 2010-10-29 2011-03-16 北京中星微电子有限公司 一种视频解码方法及解码器
US9071848B2 (en) * 2011-03-15 2015-06-30 Broadcom Corporation Sub-band video coding architecture for packet based transmission
US9338465B2 (en) * 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
GB2492540B (en) * 2011-06-30 2015-10-14 Samsung Electronics Co Ltd Receiving a broadcast stream
WO2013030458A1 (en) * 2011-08-31 2013-03-07 Nokia Corporation Multiview video coding and decoding
US8891630B2 (en) * 2011-10-24 2014-11-18 Blackberry Limited Significance map encoding and decoding using partition set based context assignment
US9942580B2 (en) * 2011-11-18 2018-04-10 At&T Intellecutal Property I, L.P. System and method for automatically selecting encoding/decoding for streaming media
US20130148947A1 (en) * 2011-12-13 2013-06-13 Ati Technologies Ulc Video player with multiple grpahics processors
US9819949B2 (en) * 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
US9924162B2 (en) * 2012-01-19 2018-03-20 Sun Patent Trust Image decoding method including switching a decoding order to either a fixed processing order or an adaptive processing order
US9729870B2 (en) * 2012-01-31 2017-08-08 Apple Inc. Video coding efficiency with camera metadata
US11240515B2 (en) * 2012-09-10 2022-02-01 Apple Inc. Video display preference filtering

Also Published As

Publication number Publication date
EP2815574A4 (en) 2015-10-07
JP2018026871A (ja) 2018-02-15
JP2015513386A (ja) 2015-05-11
US9807409B2 (en) 2017-10-31
US20130215978A1 (en) 2013-08-22
KR102006044B1 (ko) 2019-07-31
EP2815574A1 (en) 2014-12-24
JP6423061B2 (ja) 2018-11-14
KR20140123957A (ko) 2014-10-23
CN104106264A (zh) 2014-10-15
WO2013123100A1 (en) 2013-08-22
US20160219288A1 (en) 2016-07-28
EP2815574B1 (en) 2019-07-24
US9241167B2 (en) 2016-01-19

Similar Documents

Publication Publication Date Title
CN104106264B (zh) 元数据辅助的视频解码
CN104350750B (zh) 用于简化视频随机访问的约束和单元类型的方法
CN102783035B (zh) 并行熵编码方法和设备
CN105284117B (zh) 根据运动信息压缩方案通过层间运动信息预测对图像进行编码或解码的方法和设备
CN101742321B (zh) 基于图层分解的视频编、解码方法及装置
CN103918273B (zh) 确定用于变换系数的二进制码字的方法
CN107113422A (zh) 用于视频编码和解码的灵活的参考图片管理
CN106534854A (zh) 编码和解码图像的方法、编码和解码设备
CN106131569B (zh) 图像预测解码装置、图像预测解码方法
CN105723709B (zh) 用于编码和解码图像的方法、用于编码和解码图像的装置及对应计算机程序
CN1934869A (zh) 转换器协助的视频编码器
KR102267770B1 (ko) 픽쳐들의 그룹에서 변경가능 엘리먼트들의 세트를 결정하기 위한 방법 및 디바이스
CN102939719A (zh) 用于在二进制熵编码和解码中减少源的方法和设备
CN100361152C (zh) 检测水印的方法和设备
TWI520587B (zh) Dynamic image predictive decoding method, dynamic image predictive decoding device, dynamic image predictive decoding program, dynamic image predictive coding method, dynamic image predictive coding device and dynamic image predictive coding program
TWI552573B (zh) 具有初始化片段之視訊及音訊之寫碼
CN105007486A (zh) 编码和解码图像的方法、编码和解码设备、计算机程序
US20160100172A1 (en) Data processing systems
CN107343391A (zh) 通过向量量化对图像进行编码
JP2004193897A (ja) 動画像符号化方法、動画像復号化方法、動画像符号化装置、動画像復号化装置、及びこれらを実行するためのプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150703

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150703

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant