CN107439008A - 减轻数字视频的互操作性情景中的损失 - Google Patents

减轻数字视频的互操作性情景中的损失 Download PDF

Info

Publication number
CN107439008A
CN107439008A CN201680020825.7A CN201680020825A CN107439008A CN 107439008 A CN107439008 A CN 107439008A CN 201680020825 A CN201680020825 A CN 201680020825A CN 107439008 A CN107439008 A CN 107439008A
Authority
CN
China
Prior art keywords
bit stream
picture
decoding
outflow
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680020825.7A
Other languages
English (en)
Other versions
CN107439008B (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.)
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 CN107439008A publication Critical patent/CN107439008A/zh
Application granted granted Critical
Publication of CN107439008B publication Critical patent/CN107439008B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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/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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems

Landscapes

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

Abstract

提出了减轻数字视频的互操作性情景中的损失的方法。例如,比特流修改工具(例如,运行在视频会议系统的网络节点上的比特流重写器)接收经编码视频的流入比特流(例如,从使用第一损失恢复策略的编码器)。比特流修改工具处理经编码视频的流入比特流以产生经编码视频的流出比特流。通过这样做,比特流修改工具改变流入比特流与流出比特流之间的至少一个语法元素以便减轻在有损递送情况下对流出比特流的解码期间的图片损失效应。比特流修改工具输出流出比特流。以该方法,比特流修改工具可以帮助避免空白屏幕、冻结屏幕或者在有损递送情况下的解码期间的其它故障(例如,利用使用不同损失恢复策略的解码器)。

Description

减轻数字视频的互操作性情景中的损失
背景技术
当视频经过互联网流送并且通过Web浏览器或媒体播放器回放时,视频以数字形式被递送。数字视频也在视频通过许多广播服务、卫星服务和有线电视服务递送时被使用。实时视频会议经常使用数字视频,并且数字视频在使用大多数智能电话、Web相机和其它视频捕捉设备进行的视频捕捉期间被使用。
数字视频可能消耗极其大量的比特。工程师使用压缩(也被称为源译码(sourcecoding)或源编码(source encoding))以减少数字视频的比特率。压缩通过将信息转换成更低的比特率形式来降低存储和发送视频信息的成本。解压缩(也被称为解码)从圧缩形式中重构原始信息的版本。“编解码”是编码器/解码器系统。
在近二十年,已采用各种视频编解码标准,包括ITU-T H.261、H.262(MPEG-2或者ISO/IEC 13818-2)、H.263、H.264(MPEG-4 AVC或者ISO/IEC 14496-10)和H.265(HEVC或者ISO/IEC 23008-2)标准、MPEG-1(ISO/IEC 11172-2)和MPEG-4视觉(ISO/IEC 14496-2)标准和SMPTE 421M标准。视频编解码标准典型地定义了针对经编码视频比特流的语法的选择,详细说明当在编码和解码中使用特定特征时比特流中的参数。在许多情况中,视频编解码标准还提供关于解码器应该执行的、以在解码中达到一致结果的解码操作的细节。除编解码标准之外,各种专利的编解码格式(例如,VP8、VP9以及其它VPx格式)定义了针对经编码视频比特流的语法和相应的解码操作的其它选择。通常,编解码标准或格式允许由一个公司制造的编码器与由另一公司制造的解码器互操作。只要两个公司已遵循编解码标准或格式中的相关的指导准则,则在正常操作情况下由第一公司的编码器编码的内容能够成功地被第二公司的解码器解码。
然而,解码器的一些操作在编解码标准或格式之外。这样的操作可以取决于实施方式而变化,这意味着不同的解码器可以以不同的方法来实现操作。特别地,不同的解码器可以使用不同的策略以在解码期间从经编码数据的损失(例如,因为网络拥塞)中恢复。作为实施方式中的这些差异的结果,使用一种损失恢复策略的编码器当与使用另一损失恢复策略的解码器进行互操作时,可能遇到非预期的问题。例如,在视频会议期间,利用使用一个损失恢复策略的编码器编码的内容可能被递送至使用相同损失恢复策略的解码器和/或使用另一损失恢复策略的解码器。当经编码数据因为网络拥塞而丢失时,使用相同损失恢复策略的解码器可以快速地从经编码数据的损失中恢复,而使用其它损失恢复策略的解码器显示若干秒空白屏幕或者冻结屏幕,或者甚至无法恢复,要求耗时的对解码器的重启。
发明内容
概括地说,具体实施方式提出了减轻数字视频的互操作性情景中的损失的方法。例如,在视频会议系统的网络节点处的比特流重写器对其从接收到的比特流执行轻量级比特流重写过程,所述发射机节点运行使用损失恢复策略的编码器。比特流重写器修改比特流以使其当在接收机节点处被解码时对于经编码数据的损失(例如,由于网络拥塞)更加能复原,所述接收机节点运行使用另一损失恢复策略的解码器。当比特流被递送至使用与编码器相同的损失恢复策略的解码器时,比特流重写器可以跳过比特流重写过程。以该方法,比特流重写器可以帮助避免空白屏幕、冻结屏幕或者在使用其它损失恢复策略的解码器的有损递送情况下的解码期间的其它故障。
根据本文中所描述的创新的一个方面,比特流修改工具(例如,运行在视频会议系统的节点处的比特流重写器)接收根据给定的编解码标准或格式组织的经编码视频的流入比特流。比特流修改工具处理经编码视频的流入比特流以产生根据给定的编解码标准或格式组织的经编码视频的流出比特流。通过这样做,比特流修改工具改变流入比特流与流出比特流之间的至少一个语法元素以便减轻在有损递送情况下的对流出比特流的解码期间的图片损失效应。同时,视频内容的质量在时间分辨率、空间分辨率和信噪比(“SNR”)分辨率方面在流入比特流与流出比特流之间可以不变。例如,尽管改变语法元素以减轻可能的图片损失效应,但是流入比特流中的视频内容和流出比特流中的视频内容可以具有相同的帧率、相同的经编码图片维度以及相同的失真等级或量化等级。比特流修改工具输出流出比特流。
创新可以作为方法的一部分、作为被配置为执行方法的计算机系统的一部分、或者作为存储用于使计算机系统当通过计算机可执行指令编程时执行方法的所述计算机可执行指令的有形计算机可读介质的一部分来实现。可以组合地或单独地使用各种创新。发明的前述的和其它对象、特征以及优点根据以下具体实施方式将变得更加显而易见,其参照附图进行。
附图说明
图1是一些所描述的实施例在其中可以被实现的示例计算机系统的示图。
图2a和2b是一些所描述的实施例在其中可以被实现的示例网络环境的示图。
图3是示例编码器系统的示图,并且图4是示例解码器系统的示图。
图5a和5b是结合其一些所描述的实施例可以被实现的示例比特流修改工具的示图。
图6是用于比特流修改以减轻互操作性情景中的图片损失效应的概括的技术的流程图。
图7是用于在比特流修改以减轻互操作性情景中的图片损失效应期间在处理即时解码刷新(IDR)图片的两个模式之间切换的的示例方法的流程图。
图8、9a、9b、10a、10b、11和12是包括当在用于处理IDR图片的两个模式之间切换或者从多个时间层转换为单个时间层时在一些示例实施方式中被修改的语法元素的语法表。
图13和14是用于在比特流修改以减轻互操作性情景中的图片损失效应的期间从多个时间层转换至单个时间层的示例方法的示图。
具体实施方式
具体实施方式提出了减轻数字视频的互操作性情景中的损失的创新。例如,在具有一个或多个网络节点和多个终端节点(发射机节点、接收机节点)的视频会议系统中,网络节点处的比特流重写器对其从发射机节点接收到的比特流执行轻量级比特流重写过程,所述发射机节点运行使用损失恢复策略的编码器。比特流重写器修改比特流以使得当所述比特流在接收机节点处被解码时其对于经编码数据的损失更加能复原,所述接收机节点运行使用另一损失恢复策略的解码器。以该方法,比特流重写器可以帮助避免空白屏幕、冻结屏幕或者在使用其它损失恢复策略的解码器的有损递送情况下的解码期间的其它故障。当比特流被递送至使用与编码器相同的损失恢复策略的解码器时,比特流重写器可以跳过比特流重写过程,这允许解码器当在有损递送情况下解码时正常地恢复。
在本文中提出的许多示例中,比特流修改工具在视频会议系统的网络节点上运行。替代地,比特流修改工具可以在视频会议系统的终端节点上运行,与编码器或解码器位于一起。或者,比特流修改工具在另一视频递送情景中被使用(例如,经过互联网流送以用于通过Web浏览器或媒体播放器回放、通过广播服务、卫星服务或有线服务递送)。
在本文中提出的许多示例中,比特流修改工具是执行轻量级比特流重写过程的比特流重写器。替代地,比特流修改工具是完全解码流入比特流然后将结果重编码成流出比特流、或者部分解码流入比特流然后将结果重编码成流出比特流的转码器(在不修改的情况下将流入比特流的一些语法元素传递到流出比特流中)。
本文中提出的创新中的一些参照特定于H.264标准的语法元素和操作来示出。本文中提出的创新还可以被实现以用于其它标准或格式,例如,H.265/HEVC标准。
更通常地,对本文中提出的示例的各种替代是有可能的。例如,本文中提出的一些方法可以通过改变所描述的方法动作的顺序、通过分离、重复或省略某些方法动作等而更改。所公开的技术的各种方面可以组合或单独使用。不同的实施例使用所描述的创新中的一个或多个。本文中提出的一些创新解决了背景技术中指出的问题中的一个或多个。典型地,给定的技术/工具不解决所有这样的问题。
I.示例计算机系统
图1示出了其中所描述的创新中的若干创新可以被实现的适合的计算机系统(100)的概括的示例。计算机系统(100)不旨在建议关于使用或功能的范围的任意限制,因为创新可以在不同的通用或专用计算机系统中被实现。
参照图1,计算机系统(100)包括一个或多个处理单元(110,115)和存储器(120,125)。处理单元(110,115)执行计算机可执行指令。处理单元可以是通用CPU、ASIC中的处理器或者任意其它类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以增加处理功率。例如,图1示出了CPU(110)以及GPU或者协同处理单元(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,125)、存储设备(140)以及以上中的任意的组合。如本文中所使用的,术语“计算机可读介质”不包含、涵盖或者以其他方式包括载波、传播信号或者信号本身。
可以在诸如被包括在程序模块中、在目标真实或虚拟的处理器上的计算机系统中执行的那些的计算机可执行指令的一般上下文中对创新进行描述。通常,程序模块包括执行特定任务或者实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。程序模块的功能可以在各种实施例中如期望的在程序模块之间组合或者分离。用于程序模块的计算机可执行指令可以在本地或者分布式计算机系统内执行。
术语“系统”和“设备”在本文中可交换地使用。除非上下文清晰地指示,否则两个术语都不暗示对计算机系统或者计算机设备的类型的任意限制。通常,计算机系统或者计算机设备可以是本地或者分布式的,并且可以包括与实现本文中所描述的功能的软件一起的专用硬件和/或通用硬件的任意组合。
还可以使用被配置为执行所公开的方法中的任意方法的专门的计算硬件来实现所公开的方法。例如,所公开的方法可以由专门被设计为或者被配置为实现所公开的方法中的任意方法的集成电路(例如,诸如ASIC数字信号处理器(“DSP”)的ASIC、GPU或者诸如现场可编程门阵列(“FPGA”)的可编程逻辑设备(“PLD”))实现。
为了展示,具体实施方式使用如“确定”、“设置”和“使用”的术语来描述计算机系统中的计算机操作。这些术语是针对由计算机执行的操作的高级抽象,不应该与由人类执行的行为混淆。对应于这些术语的实际的计算机操作取决于实施方式而变化。
II.示例网络环境
图2a和2b示出了示例网络环境(201,202),其包括视频编码器(220)和视频解码器(270)。编码器(220)和解码器(270)使用适当的通信协议通过网络(250)来连接。网络(250)可以包括互联网或者另一计算机网络。
在图2a中所示的网络环境(201)中,每个实时通信(“RTC”)工具(210)包括用于双向通信的编码器(220)和解码器(270)两者。给定的编码器(220)可以使用接受来自编码器(220)的经编码的数据的相应的解码器(270),产生符合H.265标准、SMPTE 421M标准、H.264标准、另一标准、或者专有格式、或者其变形或延拓的输出。相比于另一RTC工具(210),给定的RTC工具(210)可以使用编码器(220)和解码器(270)的不同的实施方式,例如,来自不同公司的产品、来自相同公司的不同版本。双向通信可以是视频会议、视频电话呼叫或者其它双方或多方通信情景的一部分。虽然图2a中的网络环境(201)包括两个RTC工具(210),但是网络环境(201)可以替代地包括参加多方通信的三个或更多RTC工具(210)。例如,一个RTC工具(210)可以将编码的数据递送至多个其它RTC工具(210),这些RTC工具可以具有解码器(270)的不同的实施方式,例如,不同的损失恢复策略。
RTC工具(210)管理由编码器(220)进行的编码。图3示出了可以被包括在RTC工具(210)中的示例编码器系统(300)。替代地,RTC工具(210)使用另一编码器系统。RTC工具(210)还管理由解码器(270)进行的解码。图4示出了可以被包括在RTC工具(210)中的示例解码器系统(400)。替代地,RTC工具(210)使用另一解码器系统。
在图2a中,比特流修改工具(252)在网络(250)中的网络节点处的服务器(“互操作性服务器”)上运行。比特流修改工具(252)从一个RTC工具(210)接收流入的比特流,选择性地修改比特流以减轻互操作性情景中的损失,并且将流出的(选择性地被修改的)比特流输出至另一RTC工具(210)。其它RTC工具(210)可以接收被修改的比特流或者原始的、未被修改的比特流,取决于互操作性标准。以下对比特流修改工具(252)的示例进行描述。
在图2b中所示的网络环境(202)中,编码工具(212)包括编码器(220),其编码用于向包括解码器(270)的多个回放工具(214)递送的视频。可以提供单向通信以用于视频监控系统、web相机监测系统、远程桌面会议展示或者其中视频被编码并且从一个位置被发送至一个或多个其它位置的其它情景。不同的回放工具(214)可以使用解码器(270)的不同的实施方式,例如,来自不同公司的产品、来自相同公司的不同版本。虽然图2b中的网络环境(202)包括两个回放工具(214),但是网络环境(202)可以包括更多或更少的回放工具(214)。例如,一个编码工具(212)可以将编码的数据递送至三个或更多的回放工具(214),这些回放工具(214)可以具有解码器(270)的不同的实施方式。通常,回放工具(214)与编码工具(212)进行通信以确定供回放工具(214)接收的视频的流。回放工具(214)接收流,将接收到的经编码数据缓冲适当的期间,并且开始解码和回放。
图3示出了可以被包括在编码工具(212)中的示例编码器系统(300)。替代地,编码工具(212)使用另一编码器系统。编码工具(212)还可以包括用于管理与一个或多个回放工具(214)的连接的服务器端控制器逻辑。图4示出了可以被包括在回放工具(214)中的示例解码器系统(400)。替代地,回放工具(214)使用另一解码器系统。回放工具(214)可以包括用于管理与编码工具(212)的连接的客户端控制器逻辑。
在图2b中,比特流修改工具(252)在网络(250)中的网络节点处的服务器(互操作性服务器)上运行。比特流修改工具(252)从编码工具(212)接收流入的比特流,选择性地修改比特流以减轻互操作性情景中的损失,并且向各自的回放工具(214)输出流出的(选择性地被修改的)比特流。不同的回放工具(214)可以接收被修改的比特流或者原始的、未被修改的比特流,取决于互操作性标准。以下对比特流修改工具(252)的示例进行描述。
III.示例编码器系统和解码器系统
为了示出本文中所描述的比特流修改的特征,这个章节描述了编码和解码的各种方面,包括示例参考图片管理策略、IDR图片标记策略和可缩放编码/解码的方面。
A.示例编码器系统
图3是示例编码器系统(300)的框图。编码器系统(300)可以是能够以多个编码模式中的任意模式(例如,用于实时通信或者远程桌面会议的低延时编码模式、转码模式和用于从文件或流中产生用于回放的媒体的高较延时编码模式)操作的通用编码工具,或者其可以是被适配用于一种这样的编码模式的专用编码工具。编码器系统(300)可以被适配用于特定类型的内容的编码。编码器系统(300)可以作为操作系统模块的一部分、作为应用库的一部分、作为独立应用的一部分或者使用专用硬件而被实现。编码器系统(300)可以使用用于一些或所有编码操作的一个或多个通用处理器(例如,一个或多个CPU),使用用于某些编码操作的图形硬件(例如,GPU)或者使用诸如用于某些编码操作的ASIC的专用硬件。总体上,编码器系统(300)接收源视频图片(311)的序列并且对源图片(311)进行编码以产生作为向信道(390)的输出的经编码数据。
视频源(310)可以是相机、调谐器卡、存储介质、屏幕捕捉模块或者其它数字视频源。视频源(310)以例如30帧每秒的帧速率产生视频图片的序列。如本文中所使用的,术语“图片”通常指的是源、编码或重构的图像数据。对于逐行扫描的视频而言,图片是逐行扫描的视频帧。对于隔行视频而言,在示例实施例中,隔行视频帧可以在编码之前被去隔行。替代地,两个互补的隔行视频场被编码在一起作为单个视频帧或者被编码作为两个分别编码的场。除指示逐行扫描的视频帧或者隔行扫描的视频帧以外,术语“图片”可以指示单个非配对的视频场、互补配对的视频场、在给定时间表示视频对象的视频对象平面或者较大的图像中的感兴趣的区域。视频对象平面或者区域可以是包括多个对象或场景的区域的较大图像的一部分。
到达的源图片(311)被存储在包括多个图片缓冲存储区域(321,322,…,32n)的源图片临时存储器存储区域(320)中。图片缓冲器(321,322等)保持源图片存储区域(320)中的一个源图片。在源图片(311)中的一个或多个已被存储在图片缓冲器(321,322等)中之后,图片选择器(330)从源图片存储区域(320)中选择单独的源图片。由图片选择器(330)按照其选择图片以用于向编码器(340)输入的顺序可以与由视频源(310)按照其产生图片的顺序不同,例如,对一些图片的编码可以按顺序地被延迟,以便允许一些之后的图片被首先编码并且因此促进在时间上反向预测。
在编码器(340)之前,编码器系统(300)可以包括在编码之前执行对所选择的图片(331)的预处理(例如,滤波)的预处理器(未示出)。预处理可以包括将色彩空间转换成主要(例如,亮度)和次要(例如,对红色和对蓝色的色度差异)成分以及重新采样处理(例如,以减少色度成分的空间分辨率)以用于编码。
编码器(340)对所选择的图片(331)进行编码以产生编码的图片(341)并且还产生存储器管理控制操作(“MMCO”)或者参考图片集合(“RPS”)信息(342)。如果当前的图片不是已被编码的第一图片,则当执行其编码过程时,编码器(340)可以使用已被存储在经解码图片临时存储器存储区域(360)中的一个或多个先前被编码/解码的图片(369)。这样存储的经解码的图片(369)用作用于当前源图片(331)的内容的图片间预测的参考图片。MMCO/RPS信息(342)向解码器指示哪些重构图片可以用作参考图片,并且因此将被存储在图片存储区域中。在章节III.C.中对MMCO/RPS信息(342)和参考图片管理的使用的示例进行描述。
通常,编码器(340)包括执行诸如划分成瓦片(tile)、图片内预测估计和预测、运动估计和补偿、频率变换、量化和熵编码的编码任务的多个编码模块。由编码器(340)执行的准确的操作可以取决于压缩格式而变化。输出的经编码数据的格式可以是H.26x格式(例如,H.261、H.262、H.263、H.264、H.265)、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或者MPEG-4)、VPx格式(例如,VP8、VP9)或者另一种格式。
编码器(340)可以将图片划分成相同大小或不同大小的多个瓦片。例如,编码器(340)沿利用图片边界定义图片内的瓦片的水平和垂直边界的瓦片行和瓦片列对图片进行分离,其中,每个瓦片是矩形区域。瓦片经常用于提供针对平行处理的选择。图片还可以被组织成一个或多个切片,其中,切片可以是整个图片或者图片的一部分。切片可以独立于图片中的其它切片被解码,这改进了错误复原。出于编码和解码的目的,切片或瓦片的内容进一步地被划分成块。
针对根据H.264标准的语法,编码器(340)可以将图片划分成相同大小或不同大小的多个切片。编码器(340)将图片(或切片)的内容分离成16×16宏块。宏块包括组织成四个8×8亮度块的亮度样本值以及组织成8×8色度块的相应的色度样本值。通常,宏块具有诸如间或内的预测模式。出于用信号发送预测信息(例如,预测模式细节、运动向量(“MV”)信息等)和/或预测处理的目的,宏块包括一个或多个预测单元(例如,8×8块、4×4块,其可以被称为用于图片间预测的分区)。出于剩余编码/解码的目的,宏块还具有一个或多个剩余数据单元。
针对根据H.265标准的语法,编码器(340)将图片(或切片或瓦片)的内容分离成编码树单元。编码树单元(“CTU”)包括组织成亮度编码树块(“CTB”)的亮度样本值和组织成两个色度CTB的相应的色度样本值。CTU(及其CTB)的大小由编码器(340)选择。亮度CTB可以包括,例如,64×64、32×32或者16×16亮度样本值。CTU包括一个或多个编码单元。编码单元(“CU”)具有亮度编码块(“CB”)和两个相应的色度CB。通常,CU具有诸如间或内的预测模式。出于用信号发送预测信息(例如,预测模式细节等)和/或预测处理的目的,CU包括一个或多个预测单元。预测单元(“PU”)具有亮度预测块(“PB”)和两个色度PB。出于剩余编码/解码的目的,CU还具有一个或多个变换单元,其中,变换单元(“TU”)具有亮度变换块(“TB”)和两个色度TB。编码器决定怎样将视频划分成CTU、CU、PU、TU等。
如本文中所使用的,术语“块”可以指示宏块、剩余数据单元、CB、PB或TB或样本值的一些其它集合,取决于上下文。术语“单元”可以指示宏块、CTU、CU、PU、TU或块的一些其它集合,或者其可以指示单个块,取决于上下文,或者其可以指示切片、瓦片、图片、图片组或者其它更高级的区域。
回到图3,编码器(340)使用图片内编码和/或图片间编码来压缩图片。一般的编码控制接收图片以及来自编码器(340)的各种模块的反馈。总体上,一般编码控制向其它模块(诸如,瓦片化模块、变换器/缩放器/量化器、缩放器/逆变换器、图片内估计器、运动估计器和内/间切换)提供用于在编码期间设置和改变编码参数的控制信号。因此,一般编码控制可以在编码期间管理关于编码模式的决定。一般编码控制产生指示在编码期间做决定的一般控制数据,以便相应的解码器可以做出一致的决定。
编码器(340)按照根据图片(331)中的其它、先前重构的样本值的预测,表示源图片(331)的图片内编码的块。可以使用图片内编码来完整地或部分地对图片(331)进行编码。对于针对块的空间内预测而言,图片内估计器估计邻近的重构样本值到块的外插(例如,确定针对块所使用的空间预测的方向)。图片内估计器可以输出预测信息(例如,用于空间内预测的预测模式/方向),其被进行熵编码。图片内预测预测器应用预测信息以便根据图片(331)的邻近的、先前重构的样本值确定内预测值。
编码器(340)按照根据来自一个或多个参考图片的预测,表示源图片(331)的图片间编码的、预测的块。经解码图片临时存储器存储区域(360)(例如,经解码图片缓冲器(“DPB”))缓冲一个或多个重构的先前编码的图片以用作参考图片。运动估计器估计关于一个或多个参考图片(369)的块的运动。当使用多个参考图片时,多个参考图片可以是来自不同的时间方向或者相同的时间方向。运动估计器输出被熵编码的诸如MV信息和参考图片选择数据的运动信息。运动补偿器将MV应用到参考图片(369)以便确定用于图片间预测的运动补偿预测值。
编码器(340)可以确定块的预测值(内或间)与相应的原始值之间的差异(如果存在的话)。这些预测剩余值使用频率变换(如果频率变换未被跳过)和量化被进一步地编码。通常,频率变换器将预测剩余数据(或者如果预测为空,则为样本值数据)的块转换成频率变换系数的块。通常,缩放器/量化器缩放并且量化变换系数。例如,量化器使用在逐个图片的基础上、在逐个瓦片的基础上、在逐个切片的基础上、在逐个宏块的基础上或者在其它基础上变化的量化步骤大小将死区缩放器量化(dead-zone scalar quantization)应用到频率域数据。变换系数还可以使用其它缩放因子(例如,权重矩阵中的权重)被缩放或者以其他方式被量化。典型地,编码器(340)设置用于针对视频的图片、瓦片、切片、宏块、CU和/或其它部分的量化参数(“QP”)的值,并且相应地量化变换系数。
编码器(340)的熵编码器压缩量化的变换系数值以及某些边信息(例如,MV信息、参考图片索引、QP值、模式决定、参数选择)。典型的熵编码技术包括指数-哥伦布编码、哥伦布-莱斯编码、算术编码、差分编码、霍夫曼编码、行程长度编码以及以上的组合。熵编码器可以针对不同种的信息使用不同的编码技术,可以组合地应用多个技术(例如,通过应用哥伦布-莱斯编码接着算术编码),并且可以从特定编码技术内的多个码表之中选择。
参照图3,经编码图片(341)和MMCO/RPS信息(342)(或者等同于MMCO/RPS信息(342)的信息,因为针对图片的依赖性和顺序结构在编码器(340)处已知)由解码过程仿真器(350)处理。以与MMCO/RPS信息(342)一致的方式,解码过程仿真器(350)确定给定的经编码图片(341)是否需要被重构并存储以用作将被编码的随后图片的图片间预测中的参考图片。如果需要存储经编码图片(341),则解码过程仿真器(350)对将由接收经编码图片(341)并且产生相应的经解码图片(351)的解码器进行的解码过程进行建模。通过这样做,当编码器(340)已使用已被存储在经解码图片存储区域(360)中的经解码图片(369)时,解码过程仿真器(350)也使用来自存储区域(360)的经解码图片(369)作为解码过程的一部分。
因此,解码过程仿真器(350)实现解码器的功能中的一些功能。例如,解码过程仿真器(350)对量化的变换系数执行逆缩放和逆量化,并且,当变换阶段还未被跳过时,执行逆频率变换,产生重构的预测剩余值或样本值的块。解码过程仿真器(350)将重构的剩余值与预测的值(例如,运动补偿预测值、图片内预测值)进行组合以形成重构。这产生了来自视频信号的原始内容的近似的或者准确的重构。(在有损压缩中,一些信息从视频信号中丢失)。
对于图片内预测而言,重构的值可以被反馈回图片内估计器和图片内预测器。另外,重构的值可以用于随后图片的运动补偿预测。重构的值可以被进一步地过滤。自适应的去块化滤波器被包括在编码器(340)中的运动补偿环路内(即,“环路中(in-loop)”滤波)以平滑化经解码图片中的跨块边界行和/或列的不连续。其它滤波(例如,解振铃(de-ringing)滤波、自适应环路滤波(“ALF”)或者样本自适应偏移(“SAO”)滤波;未示出)可以替代地或额外地被应用作为环路中滤波操作。
经解码图片临时存储器存储区域(360)包括多个图片缓冲存储区域(361,362,…,36n)。以与MMCO/RPS信息(342)一致的方式,解码过程仿真器(350)管理存储区域(360)的内容以便识别具有不再被编码器(340)需要以用作参考图片的图片的任意图片缓冲器(361,362等)。在对解码过程建模之后,解码过程仿真器(350)将新被解码的图片(351)存储在以该方式已被识别的图片缓冲器(361,362等)中。
编码器(340)在基本比特流中产生经编码数据。基本比特流的语法典型地以编解码标准或格式来定义。作为编码器(340)的输出,基本比特流典型地以容器格式来分封化或组织,如以下所解释的。基本比特流中的经编码数据包括被组织为语法结构的语法元素。通常,语法元素可以是数据的任意元素,并且语法结构是基本比特流中的以指定顺序的零个或更多语法元素。对于根据H.264标准或者H.265标准的语法而言,网络抽象层(“NAL”)单元是用于传送各种类型的信息的基本语法结构。NAL单元包括要遵循的数据类型(NAL单元类型)的指示以及以字节的序列的形式的数据的有效负荷。
对于根据H.264标准或者H.265标准的语法而言,图片参数集合(“PPS”)是包括可以与图片相关联的语法元素的语法结构。可以针对单个图片使用PPS,或者可以针对序列中的多个图片重复使用PPS。典型地独立于用于图片的经编码数据而用信号发送PPS。在用于图片的经编码数据内,语法元素指示使用何种PPS以用于该图片。相似地,对于根据H.264标准或者H.265标准的语法而言,序列参数集合(“SPS”)是包括可以与图片的序列相关联的语法元素的语法结构。比特流可以包括单个SPS或者多个SPS。典型地与用于序列的其它数据分离地用信号发送SPS,并且其它数据中的语法元素指示使用何种SPS。
经编码图片(341)和MMCO/RPS信息(342)在临时经编码数据区域(370)或者其它经编码数据缓冲器中缓冲。被聚合在经编码数据区域(370)中的经编码数据包括作为基本比特流的语法的一部分的用于一个或多个图片的经编码数据。被聚合在经编码数据区域(370)中的经编码数据还可以包括与经编码视频数据有关的媒体元数据(例如,作为在一个或多个补充增强信息(“SEI”)消息或者视频可用性信息(“VUI”)消息中的一个或多个参数)。
来自临时经编码数据区域(370)的聚合的数据(371)由信道编码器(380)处理。信道编码器(380)可以分封化和/或多路复用聚合的数据以用于作为媒体流来传输或存储(例如,根据诸如ITU-T H.222.0|ISO/IEC 13818-1的媒体节目流或者传输流格式或者诸如IETF RFC 3550的互联网实时传输协议格式),在这种情况中,信道编码器(380)可以添加语法元素作为媒体传输流的语法的一部分。或者,信道编码器(380)可以组织聚合的数据用于作为文件来存储(例如,根据诸如ISO/IEC 14496-12的媒体容器格式),在这种情况中,信道编码器(380)可以添加语法元素作为媒体存储文件的语法的一部分。或者,更通常地,信道编码器(380)可以实现一个或多个媒体系统多路复用协议或者传输协议,在这种情况中,信道编码器(380)可以添加语法元素作为协议的语法的一部分。信道编码器(380)向表示存储的信道(390)、经过网络的通信连接或者用于输出的另一信道提供输出。信道编码器(380)或者信道(390)还可以包括例如用于前向错误校正(“FEC”)编码和模拟信号调制的其它元件(未示出)。
B.示例解码器系统
图4是结合其一些所描述的实施例可以被实现的示例解码器系统(400)的框图。解码器系统(400)可以是能够以多个解码模式中的任意模式(例如,用于实时通信或者远程桌面会议的低延时解码模式、转码模式和用于来自文件或流的媒体回放的较高延时解码模式)操作的通用解码工具,或者其可以是适合用于一种这样的解码模式的专用解码工具。解码器系统(400)可以被适配用于对特定类型的内容的解码。解码器系统(400)可以作为操作系统模块、作为应用库的一部分、作为独立应用或者使用专用硬件被实现。解码器系统(400)可以使用用于一些或所有解码操作的一个或多个通用处理器(例如,一个或多个CPU),使用用于某些解码操作的图形硬件(例如,GPU)或者使用诸如用于某些解码操作的ASIC的专用硬件。总体上,解码器系统(400)从信道(410)接收经编码数据,对图片进行解码,并且产生作为用于输出目的地(490)的输出的重构图片。
解码器系统(400)包括可以表示存储、经过网络的通信连接的信道(410)或者用于作为输入的经编码数据的另一信道。信道(410)产生已被信道编码的经编码数据。信道解码器(420)可以处理经编码数据。例如,信道解码器(420)对已被聚合以用于作为媒体流来传输或存储(例如,根据诸如ITU-T H.222.0|ISO/IEC 13818-1的媒体节目流或者传输流格式或者诸如IETF RFC 3550的互联网实时传输协议格式)的数据进行去分封化和/或去多路复用,在这种情况中,信道解码器(420)可以解析被添加作为媒体传输流的语法的一部分的语法元素。或者,信道解码器(420)分离已被聚合以用于作为文件来存储(例如,根据诸如ISO/IEC 14496-12的媒体容器格式)的经编码视频数据,在这种情况中,信道解码器(420)可以解析被添加作为媒体存储文件的语法的一部分的语法元素。或者,更通常地,信道解码器(420)可以实现一个或多个媒体系统去多路复用协议或者传输协议,在这种情况中,信道解码器(420)可以解析被添加作为协议的语法的一部分的语法元素。信道(410)或者信道解码器(420)还可以包括例如用于FEC解码和模拟信号解调制的其它元件(未示出)。
从信道解码器(420)输出的经编码数据(421)被存储在临时经编码数据区域(430)中直到已接收到足够量的这样的数据。经编码数据(421)包括经编码图片(431)和MMCO/RPS信息(432)。经编码数据区域(430)中的经编码数据(421)包括,作为基本经编码视频比特流的语法的一部分,用于一个或多个经编码图片的经编码数据。基本比特流的格式可以是Windows媒体视频格式、VPx格式(例如,VP8、VP9)、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或者MPEG-4)、H.26x格式(例如,H.261、H.262、H.263、H.264、H.265)或者另一种格式。经编码数据区域(430)中的经编码数据(421)还可以包括与经编码图片有关的媒体元数据(例如,作为在一个或多个SEI消息或者VUI消息中的一个或多个参数)。
通常,经编码数据区域(430)临时存储经编码数据(421)直到这样的经编码数据(421)被解码器(450)使用。在那时,用于经编码图片(431)和MMCO/RPS信息(432)的经编码数据从经编码数据区域(430)被转移至解码器(450)。当解码继续时,新的经编码数据被添加至经编码数据区域(430)并且留在经编码数据区域(430)中的最旧的经编码数据被转移至解码器(450)。
解码器(450)对经编码图片(431)进行解码以产生相应的经解码图片(451)。图片可以被划分成相同大小或不同大小的多个瓦片。图片还可以被组织成一个或多个切片。切片或瓦片的内容可以被进一步地划分成块或者样本值的其它集合。解码器(450)是基于块的并且使用取决于实施方式的块格式。块可以在不同阶段进一步地被细分。例如,图片可以被分成64×64块、32×32块或者16×16块,其可以依次被分为样本值的更小的块。在用于H.265/HEVC标准的解码的实施方式中,图片被划分成CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
解码器(450)使用图片内解码和/或图片间解码来解压缩图片。通常,解码器(450)包括执行诸如熵解码、图片内预测、运动补偿图片间预测、逆量化、逆频率变换(如果未被跳过)以及瓦片的合并的解码任务的多个解码模块。由解码器(450)执行的准确的操作可以取决于压缩格式而变化。
在解码器(450)中,缓冲器接收经编码视频比特流中的经编码数据并且使接收到的经编码数据对于解析器/熵解码器可用。解析器/熵解码器典型地应用在编码器(340)中执行的熵编码的逆(例如,上下文自适应的二进制算术解码)对熵编码的数据进行熵解码。一般解码控制接收一般控制数据并且向其它模块(例如,缩放器/逆变换器、图片内预测器、运动补偿器以及内/间切换)提供用于在解码期间设置和改变解码参数的控制信号。因此,一般解码控制可以管理关于在解码期间的解码模式的决定。
视情况而定,当执行其解码过程时,解码器(450)可以使用一个或多个先前解码的图片(469)作为用于图片间预测的参考图片。解码器(450)从经解码图片临时存储器存储区域(460)中读取这样的先前解码的图片(469)。运动补偿器接收诸如MV数据和参考图片选择数据的运动数据。运动补偿器将MV应用到重构的参考图片以形成用于正在重构的图片的任意图片间编码块的运动补偿预测值。
图片内预测模块接收内部预测数据,例如,指示预测模式方向(以用于内部空间预测)的数据。对于内部空间预测而言,使用当前图片的重构的值,根据预测模式数据,图片内预测模块根据邻近的、先前重构的样本值在空间上预测当前块的样本值。
解码器(450)还重构预测剩余值。缩放器/逆量化器逆缩放并且逆量化熵解码的变换系数。例如,解码器(450)基于比特流中的语法元素设置用于针对视频的图片、瓦片、切片和/或其它部分的QP的值,并且相应地逆量化变换系数。当频率变换还未被跳过时,逆频率变换器执行逆频率变换,产生重构的预测剩余值或样本值的块。
针对图片间预测的块,解码器(450)将重构的预测剩余值与运动补偿预测值组合。当剩余值还未被编码/用信号发送时,解码器(450)使用预测的值作为重构。解码器(450)可以相似地将预测剩余值与来自图片内预测的预测值组合。对于图片内预测而言,重构的值可以被反馈回图片内预测器。对于图片间预测而言,重构的值可以进一步地被过滤。
自适应的去块化滤波器被包括在视频解码器(450)中的运动补偿环路内以平滑化经解码图片(451)中的跨块边界行和/或列的不连续。其它滤波(例如,解振铃滤波、ALF或者SAO滤波;未示出)可以替代地或额外地被应用作为环路中滤波操作。解码器系统(400)还可以包括后处理滤波器。后处理滤波器可以包括去块化滤波、解振铃滤波、自适应Wiener滤波、胶片颗粒再现滤波、SAO滤波或者另一种滤波。
经解码图片临时存储器存储区域(460)包括多个图片缓冲存储区域(461,462,…,46n)。解码器(450)使用MMCO/RPS信息(432)以便识别其中其可以存储经解码图片(451)的图片缓冲器(461,462等)。解码器(450)在该图片缓冲器中存储经解码图片(451)。
输出定序器(480)识别以输出顺序将被产生的下一个图片什么时候在经解码图片存储区域(460)中是可用的。当以输出顺序将被产生的下一个图片(491)在经解码图片存储区域(460)中是可用的时,其由输出定序器(480)读取并且向输出目的地(490)(例如,显示器)输出以用于图片的显示。通常,图片从经解码图片存储区域(460)由输出定序器(480)输出的顺序可以与图片由解码器(450)解码的顺序不同。
C.示例参考图片管理
通常,参考图片是包括可以用于对其它图片的解码过程中的图片间预测的样本的图片,其他图片典型以解码顺序跟随参考图片。在给定时间多个参考图片可以是可用的以用于运动补偿预测。
通常,参考图片列表(“RPL”)是用于运动补偿预测的参考图片的列表。使用参考图片索引对RPL中的参考图片进行寻址。参考图片索引识别RPL中的参考图片。在编码和解码期间,当构建RPL时,RPL中的参考图片有时可以改变以便添加新解码的图片、丢掉不再用作参考图片的较旧的图片和/或重新排序RPL内的参考图片以便使更通常使用的参考图片索引的信号传送更高效。编码器和解码器可以遵循相同的规则来构建、修改(等)它们的RPL。除这样的规则之外(或者代替这样的规则),编码器可以将指示解码器如何构建、修改(等)其RPL以便匹配由编码器使用的RPL的信息用信号发送至解码器。典型地,RPL在编码和解码期间基于关于RPL的可用信息(例如,RPS中的可用的图片)被构建,根据在比特流中用信号发送的规则和/或修改而修改。
在一些示例实施方式中,针对当前的图片,编码器或解码器确定包括在诸如DPB的解码帧存储区域中的参考图片的RPS。RPS是在当前和将来经编码图片的解码过程中使用的参考图片的描述。包括在RPS中的参考图片显式地被列在比特流中。编码器或解码器一张图片确定RPS一次。例如,解码器在对用于图片的切片的切片标头进行解码之后使用在切片标头中用信号发送的语法元素来确定RPS。使用在比特流中用信号发送的图片顺序计数(“POC”)值、其部分和/或其它信息来识别参考图片。编码器或解码器确定可以用于当前图片的图片间预测(并且可以用于对以解码顺序接着当前图片的图片中的一个或多个的图片间预测)的短期参考(“STR”)图片和长期参考(“LTR”)图片的组。(编码器或解码器还可以确定可以用于以解码顺序接着当前图片的图片中的一个或多个但是不用于当前图片的图片间预测的参考图片的组。)共同地,参考图片的组是针对当前图片的RPS。
在一些示例实施方式中,针对当前图片的给定的切片,编码器或解码器创建一个或多个RPL。编码器或解码器通过组合可以用于当前图片的图片间预测的STR图片和LTR图片的组来创建RPL的临时版本(例如,RPL 0或RPL 1)。为了根据“隐式的”方法的规则来构建RPL,编码器或解码器可以使用以RPL的临时版本的参考图片,或者仅使用以RPL的临时版本的参考图片中的一些(例如,以RPL的临时版本的第一x图片)。对于“隐式的”方法而言,RPL修改信息未在比特流中用信号发送,并且不是从比特流中被解析。在“显式的”方法中,为了构建RPL,编码器或解码器使用在比特流中用信号发送的或者从比特流中被解析的RPL修改信息以根据RPL的临时版本选择特定的参考图片。相比于将由“隐式的”方法的规则所构建的RPL,RPL修改信息可以指定移除一个或多个参考图片、添加一个或多个参考图片和/或对RPL中的参考图片重新排序。
替代地,编码器或解码器使用用于管理参考图片的另一方法。
D.用于解码器重启的示例图片标记
在一些编解码标准中,即时解码刷新(“IDR”)图片是基本比特流中的特别标记的图片。在H.264标准中,例如,使用NAL单元类型的特别值来标记IDR图片。在H.265标准中,使用NAL单元类型的若干可能的值中的任意值来标记IDR图片。
通常,IDR图片以各种方式使解码器“重置”。例如,根据H.264标准,IDR图片在对IDR图片的解码之后立即使解码器将所有参考图片标记为“未使用以用于参考”。帧编号(使用帧_num(frame_num)语法元素)在IDR图片处重启。典型地,IDR图片包括图片内编码内容。以解码顺序跟随IDR图片的经编码图片可以在没有根据以解码顺序在IDR图片之前的任意图片的图片间预测的情况下被解码。以解码顺序的序列的第一图片是IDR图片。IDR图片可以之后在序列中出现以便提供用于解码的“重置”点。
在一些视频会议系统中,当接收机节点检测到损坏或者不能继续解码(例如,由于经编码数据的损失)时,运行解码器的接收机节点可以请求IDR图片。作为响应,运行在发射机节点上的编码器可以在比特流中插入IDR图片,这促进由解码器进行的恢复。直到解码器(使用IDR图片)恢复,解码器可以丢掉具有缺失参考图片的图片,替代地显示空白屏幕(例如,黑色帧)。
E.示例可缩放层
当经编码视频经过互联网被递送至机顶盒、移动计算设备或者个人计算机时,一个视频服务器可以向多个接收机设备提供经编码视频。或者,在视频会议中,一个RTC工具可以将经编码视频递送至作为接收机设备的多个其它RTC工具。不同的接收机设备可以具有不同的屏幕大小或者计算能力,一些设备能够解码和回放高质量视频而其它设备仅能够回放较低质量的视频。另外,不同的接收机设备可以使用具有不同带宽的网络连接,一些设备能够接收较高比特率(较高质量)的经编码视频而其它设备仅能够接收较低比特率(较低质量)的经编码视频。
可缩放视频编码(“SVC”)和解码是提供不同失真等级、时间质量和/或空间分辨率质量的不同版本的视频的方式。在SVC的情况下,编码器将视频分离成基层以及一个或多个增强层。基层单独提供较低质量水平(例如,较低的帧率、较低的空间分辨率和/或较高的失真)的视频的重构。一个或多个增强层可以被重构并且被添加至重构的基层视频以便按照较高的帧率、较高的空间分辨率和/或较低的失真来提高视频质量。在帧率方面的可缩放性是时间可缩放性的示例。
IV.减轻数字视频的互操作性情景中的损失
本章节描述了减轻数字视频的互操作性情景中的损失的创新。例如,在具有一个或多个网络节点和多个终端节点(接收机节点、发射机节点)的视频会议系统中,网络节点处的比特流修改工具对其从发射机节点接收到的比特流选择性地执行轻量级比特流重写过程。比特流修改工具选择性地修改比特流以使得当对比特流进行解码时使比特流对于经编码数据的损失更加能复原。以该方式,比特流重写器可以帮助避免空白屏幕、冻结屏幕或者某些解码器处的在有损递送的情况下解码期间的其它故障。在一些示例实施方式中,比特流修改工具可以改变语法元素以便在不改变视频内容的质量的情况下和在不显著改变总的比特率的情况下减轻可能的图片损失效应。
A.示例互操作性问题
解码器可以使用不同的策略以在解码期间从经编码数据的损失(例如,由于网络拥塞)中恢复。作为实施方式中的这些差异的结果,当利用使用不同损失恢复策略的解码器互操作时,编码器可能遇到非预期的问题。例如,在视频会议期间,使用编码器编码的视频内容可以被递送至使用不同损失恢复策略的若干解码器中的任意解码器。当经编码数据中的一些由于网络拥塞而丢失时,一个解码器可以快速地从经编码数据的损失中恢复,而另一解码器显示若干秒的空白屏幕或者冻结屏幕,或者甚至无法恢复,要求耗时的重启。特别地,对于一些解码器而言,当解码比特流由某些编码器产生时,图片损失效应(例如,黑色帧或者绿色帧的空白屏幕、冻结屏幕)在甚至中等有损网络的情况下频繁发生。同时,对于其它解码器而言,解码快速地从经编码数据的相当的损失中恢复。
对于H.264解码器的实施方式而言,损失恢复行为中的差异可以取决于若干因素,其包括IDR图片是否用于损失恢复以及比特流是否包括多个时间层。
一些H.264解码器很大程度上依赖IDR图片以从经编码数据的损失中恢复。适配为与这样的IDR依赖的解码器一起操作的编码器周期性地在序列中插入IDR图片,并且编码器甚至可以在编码器检测到经编码数据已丢失时按需插入IDR图片。其它H.264解码器很大程度上依赖LTR图片以便从经编码数据的损失中恢复。适配为与这样的LTR依赖的解码器一起操作的编码器使用LTR图片并且可以在长时间段维持LTR图片。对于LTR依赖的解码器而言,IDR图片的损失可能引起致命的解码错误,触发耗时的解码器重启。致命的解码错误可以由检测到由于IDR图片的损失的帧编号(帧_num)中的大间隙引起。在任意情况中,在解码器重启期间,可以显示黑色帧或绿色帧的空白屏幕。相比之下,IDR依赖的解码器典型地更加快得多地从IDR图片的损失中恢复
作为另一示例,一些H.264解码器在名义上支持组织为多个时间层的比特流的解码,但是不能适度地处理针对这样的比特流的图片损失,尤其当时间增强层的图片未被标记为参考图片时。组织为多个时间层的比特流在无损的情况下被正确地解码。然而,在许多情况中,来自组织为多个时间层的比特流的图片的损失引起解码错误,甚至触发耗时的解码器重启,在重启期间可以显示黑色帧或绿色帧的空白屏幕。相比之下,对于其它H.264解码器而言,来自组织为多个时间层的比特流的图片的损失极少引起致命的解码错误。
B.示例比特流修改工具
图5a和5b示出了运行在网络节点处的服务器(互操作性服务器)上的示例比特流修改工具(501,502)。在图5a和5b中,比特流修改工具(501,502)接收流入比特流(505),其可以是以上所描述的基本比特流。比特流修改工具(501,502)产生具有一个或多个语法元素被改变以减轻在有损递送情况下的解码期间的图片损失效应的流出比特流(525)。典型地,根据相同的编解码标准或格式(例如,两者都是H.264比特流,或者两者都是H.265比特流)组织流入比特流(505)和流出比特流(525)。
在图5a的比特流修改工具(501)中,缓冲器(512)被配置为存储流入比特流(505)。比特流重写器(514)被配置为在不改变流入比特流(505)的其它语法元素的情况下改变流入比特流(505)的一个或多个语法元素。在下一个章节中对比特流重写操作的示例进行描述。替代地,比特流重写器(514)改变其它和/或额外的语法元素。另一缓冲器(518)被配置为存储流出比特流(525)。
在图5b的比特流修改工具(502)中,缓冲器(512)被配置为存储流入比特流(505)。转码器(515)被配置为对流入比特流(505)完全进行解码然后将结果重编码到流出比特流(525)中。替代地,转码器(515)被配置为对流入比特流(505)局部地进行解码然后将结果重编码到流出比特流(525)中,在不修改的情况下将流入比特流(505)的至少一些语法元素传递到流出比特流(525)中。
图5a的比特流修改工具(501)或者图5b的比特流修改工具(502)可以改变语法元素以在不改变在时间分辨率、空间分辨率和信噪比(“SNR”)分辨率方面流入比特流(505)与流出比特流(525)之间的视频内容的质量的情况下减轻可能的图片损失效应。例如,流入比特流(505)中的视频内容和流出比特流(525)中的视频内容可以具有如由QP值或者其它编码参数或决定所指示的相同的帧率(时间分辨率的示例)、相同的经编码图片维度(空间分辨率的示例)以及相同的失真等级或者量化等级(SNR分辨率的示例)。同时,总的比特率可以在流入比特流(505)与流出比特流(525)之间不变,或者大体上不变。典型地,为了减轻可能的图片损失效应,比特流修改工具(501,502)改变用于序列、图片或者切片标头的高级、“控制”语法结构中的语法元素。如此,在大多数情况中,流出比特流(525)的比特率大体上与流入比特流(505)的比特率相同(例如,流入比特流(505)与流出比特流(525)之间的比特率的差异小于0.01%,流出比特流(525)可以轻微地小于或者轻微地大于流入比特流(505))。由于用于减轻可能的图片损失效应的语法元素中的变化的“开销”具有相对固定的、小的量。当总的比特率上升(对于较高质量的视频)时,“开销”典型地是总的比特率的更小的百分比,所以流入比特流(505)与流出比特流(525)之间的总的比特率中的百分比差异下降。对于高质量视频内容而言,流入比特流(505)与流出比特流(525)之间的比特率的差异忽略不计。
C.示例比特流修改技术
图6示出了用于比特流修改以减轻互操作性情景中的图片损失效应的概括的技术(600)。参照图5a或者5b来描述比特流修改工具,或者其它比特流修改工具可以执行技术(600)。
开始,比特流修改工具(例如,在视频会议系统的节点处运行)接收(610)根据给定的编解码标准或格式组织的经编码视频的流入比特流。比特流修改工具处理(620)流入比特流以产生根据给定的编解码标准或格式组织的经编码视频的流出比特流,然后输出(630)流出比特流。作为处理(620)的一部分,比特流修改工具改变流入比特流与流出比特流之间的至少一个语法元素以便减轻在有损递送情况下的对流出比特流的解码期间的图片损失效应。作为处理(620)的一部分,比特流修改工具可以在用于处理IDR图片的多个模式之间切换(如章节IV.D中所描述的)和/或将具有多个时间层的比特流转换成具有单个时间层的流出比特流(如章节IV.E中所描述的)。或者,比特流修改工具可以以一些其它方法改变语法元素。
为了改变语法元素,比特流修改工具可以在不修改流入比特流与流出比特流之间的其它语法元素的情况下使用流入比特流与流出比特流之间的语法元素的比特流重写。以下对轻量级比特流重写的各种示例进行描述。
或者,为了改变语法元素,比特流修改工具可以通过至少部分地对流入比特流进行解码以及至少部分地对解码的结果进行重编码来使用在流入比特流与流出比特流之间的转码。转码提供用于通过控制在重编码期间做出的决定来改变比特流的语法元素的直接方法,但是转码相比于比特流重写可能在计算上昂贵。由于其计算的复杂度,当比特流修改工具同时处理针对多个流的比特流时转码可能不能良好地缩放。另外,转码可能引入针对RTC情景的不可接受的延迟。
典型地,流入比特流是针对给定的编解码标准或格式的基本比特流,并且流出比特流是针对与流入比特流相同的编解码标准或格式的基本比特流。例如,流入比特流和流出比特流两者都是H.264比特流。或者,流入比特流和流出比特流两者都是H.265比特流。对语法元素的改变在不改变核心解码操作的最终结果的情况下可以影响用于某些解码器的损失恢复行为。
当比特流修改工具改变语法元素以便减轻可能的图片损失效应时,视频内容的质量在时间分辨率、空间分辨率和SNR分辨率方面在流入比特流与流出比特流之间可以不变。例如,流入比特流中的视频内容可以具有与流出比特流中的视频内容相同的帧率、相同的经编码图片维度以及相同的失真等级或量化等级(如由QP值或者其它编码参数或决定所指示的)。同时,流出比特流的比特率可以非常接近流入比特流的比特率。改变用于序列、图片或切片标头的高级“控制”语法结构中的语法元素以便减轻可能的图片损失效应通常不会显著地影响总的比特率。如此,在大多数情况中,流出比特流的比特率大体上与流入比特流的比特率相同(例如,比特率的差异小于0.01%)。
比特流修改工具可以在视频会议系统的网络节点(例如,用于互操作型服务器)上执行。视频会议系统还包括具有RTC工具的多个终端节点。在该上下文中,从发射机节点(例如,使用依赖IDR图片和/或对组织为多个时间层的比特流中的损失具有鲁棒性的损失恢复策略的发射机节点)接收流入比特流,并且向接收机节点(例如,使用依赖LTR图片并且对组织为多个时间层的比特流中的损失不具有鲁棒性的损失恢复策略的接收机节点)发送流出比特流。替代地,比特流修改工具在视频会议系统的另一节点上执行,或者比特流修改工具在另一环境中执行。
比特流修改工具可以选择性地执行比特流修改操作,取决于将对比特流进行解码的解码器。例如,比特流修改工具对被发送至使用一个损失恢复策略的解码器的比特流执行比特流修改操作,但是比特流修改工具不对被发送至使用另一损失恢复策略的解码器的比特流执行比特流修改操作。
D.在比特流修改期间的示例模式切换
在一些解码器中,IDR图片的损失可能引起致命的解码错误,触发耗时的解码器重启。为了针对这样的解码器减轻由于有损网络情况的图片损失效应,比特流修改工具可以特别处理流入比特流中的IDR图片。
图7示出了用于在比特流修改期间在处理IDR图片的两个模式之间切换以减轻互操作性情景中的图片损失效应的示例方法(700)。根据示例方法(700),比特流修改工具在两个模式之间切换。
图8、9a、9b、10a、10b、11和12示出了当在用于处理IDR图片的两个模式之间切换时(或者当将多个时间层转换为单个时间层时,如下一个章节中所描述的)在一些示例实施方式中被修改的语法元素。图8示出了用于根据H.264标准的NAL单元的语法结构(800)。语法结构(800)包括指定NAL单元中的数据的类型的nal_单元_类型(nal_unit_type)语法元素(802)。当nal_单元_类型语法元素(802)的值为5时,NAL单元包括用于IDR图片的编码切片的经编码数据。
图9a和9b示出了用于根据H.264标准的SPS数据的语法结构(900)。语法结构(900)包括指定序列的属性的各种语法元素。特别地,max_num_ref_帧(max_num_ref_frames)语法元素(901)指示可以用于在解码期间的运动补偿预测的参考帧的最大数量。这可以影响可用于参考图片的缓冲器的数量,并且其还可以影响在解码期间更新RPS和RPL的过程。
图10a和10b示出了用于根据H.264标准的切片标头的语法结构(1000)。切片标头语法结构(1000)可以包括具有关于参考图片列表修改(如图11中所示)的信息的语法结构(1100)和具有关于参考图片标记(如图12中所示)的信息的语法结构(1200)。如图12中所示,具有关于参考图片标记的信息的语法结构(1200)包括指示IDR图片是被标记为STR图片(值0)还是被标记为LTR图片(值1)的长_期_参考_标志(long_term_reference_flag)语法元素(1201)。
参照图7,比特流修改工具在第一模式的处理中被初始化,在第一模式的处理中流入比特流中的IDR图片维持在流出比特流中。比特流修改工具初始执行第一模式中的流入比特流的处理(710)(“模式1处理”)。比特流修改工具在接收机节点(运行解码器)确认接收到流出比特流中的IDR图片之前使用模式1处理(710)。模式1处理(710)的细节取决于实施方式。例如,作为模式1处理(710)的一部分,对于还未被标记为LTR图片的流入比特流中的IDR图片而言,比特流修改工具(a)将IDR图片标记为LTR图片,并且(b)增加用于参考图片的缓冲器大小(例如,增加指示DPB中的参考帧的最大计数的语法元素的值)。
在一些示例实施方式中,针对模式1处理(710),当处理IDR图片时,比特流修改工具选择性地调整用于SPS数据(见图9)的语法结构(900)中的max_num_ref_帧语法元素(901)。比特流修改工具根据以下规则选择性地增加max_num_ref_帧的值:
max_num_ref_帧+=(已被标记为LTR的IDR)?0:1+(单层)?0:1即,如果IDR图片还未被标记为LTR图片,则比特流修改工具增加max_num_ref_帧的值,可能增加DPB中的缓冲器的数量。增加的量可以是1个或2个缓冲器,取决于比特流是否为单层比特流。如果IDR图片已被标记为LTR图片,则max_num_ref_帧语法元素(901)的值不变。(如果max_num_ref_帧语法元素(901)的值因为其已达到最大值而不能增加,则比特流修改工具可以无限地继续模式1处理(710),跳过将IDR图片标记为LTR图片的操作)。
针对一些示例实施方式中的模式1处理(710),当处理IDR图片时,比特流修改工具还强制长_期_参考_标志语法元素(1201)具有值1(见图12)。即,如果IDR图片还未被标记为LTR图片,则比特流修改工具通过在IDR图片的任意切片的切片标头中的语法结构(1200)中将长_期_参考_标志语法元素(1201)变为具有值1而将IDR图片从STR改变为LTR。(以下对用于将IDR图片标记为LTR的基本原理进行解释。)
回到图7,比特流修改工具检查(720)其是否已接收到来自接收机节点(运行解码器)的IDR图片的接收的确认。如果没有,则比特流修改工具继续模式1处理(710)。否则,比特流修改工具切换至第二模式中的流入比特流的处理(730)(“模式2处理”)。例如,比特流修改工具从接收机节点(运行解码器)接收指示IDR图片的接收的反馈消息,并且响应于反馈消息,从模式1处理(710)切换至模式2处理(730)。
在一些示例实施方式中,当运行解码器的接收机节点接收到IDR图片时,接收机节点将反馈消息发送至运行在视频会议系统的网络节点上的互操作性服务器。反馈消息确认接收机节点已成功接收到IDR图片。然而,如果IDR图片被标记为LTR图片,则反馈消息仅由接收机节点发送。因此,为了触发反馈消息,针对还未被标记为LTR图片的IDR图片,比特流修改工具在模式1处理(710)期间将IDR图片标记为LTR图片。
回到图7,当决定是否从模式1处理(710)切换至模式2处理(730)时,比特流修改工具可以考虑其它和/或额外的情况。比特流修改工具在从模式1处理(710)切换之后使用模式2处理(730)。模式2处理(730)的细节取决于实施方式。例如,作为模式2处理(730)的一部分,针对流入比特中的IDR图片,比特流修改工具(a)通过改变NAL单元类型将IDR图片转换为内(I)图片,(b)从I图片的每个切片标头中移除至少一个语法元素,并且(c)修改包括关于参考图片处理的信息的语法结构。
在一些示例实施方式中,针对模式2处理(730),比特流修改工具通过改变各种语法元素将IDR图片转换为I图片。比特流修改工具将用于IDR图片的NAL单元语法结构(800)中的nal_单元_类型语法元素(802)从5变为1(见图8)。这有效地将IDR图片转换为I图片,这在针对一些解码器在有损网络情况下解码时减轻损失。因为图片不再是IDR图片,所以比特流修改工具从用于图片的任意切片标头语法结构(1000)中移除idr_pic_id语法元素(1002)(见图10)。比特流修改工具还修改标记语法结构(1200)的参考图片以便包括用于“非IDR”路径的一个或多个语法元素而不是用于IDR路径的语法元素。例如,比特流修改工具移除非_输出_的_之前_pics_标志(no_output_of_prior_pics_flag)语法元素和长_期_参考_标志语法元素(1201)。然后,比特流修改工具设置自适应_ref_pic_标记_模式_标志(adaptive_ref_pic_marking_mode_flag)语法元素(1202)值为1,其用于选择参考图片标记模式(对于滑动窗口模式为0;对于自适应窗口模式为1),并且设置存储器_管理_控制_操作(memory_management_control_operation)语法元素值为0。或者,在移除IDR-路径语法元素之后,比特流修改工具可以设置自适应_ref_pic_标记_模式_标志语法元素(1202)值为0。或者,在移除IDR-路径语法元素之后,比特流修改工具添加非IDR路径中的其它语法元素,总体上保持MMCO模式。
回到图7,比特流修改工具检查(740)是否继续模式2处理(730)或者切换至模式1处理(710)。切换的情况取决于实施方式。例如,比特流修改工具检测流入比特流中的SPS数据中的改变(例如,用于编码的不同的空间分辨率),并且响应于检测到改变的SPS数据,从模式2处理(730)切换至模式1处理(710)。或者,比特流修改工具检测解码器重启,并且响应于检测到解码器重启,从模式2处理(730)切换至模式1处理(710)。(在解码器重启之后,解码器期望IDR图片以便开始解码。在一些示例实施方式中,当序列数在从接收机节点到网络节点的反馈消息中被重置为零时可以推断解码器重启。)替代地,比特流修改工具基于其它标准来推断解码器已重启。当决定是否从模式2处理(730)切换至模式1处理(710)时,比特流修改工具可以考虑其它和/或额外的情况。当其不切换回模式1处理(710)时,比特流修改工具继续模式2处理(730)。
E.向单个时间层的示例转换
一些解码器尤其容易受具有多个时间层的比特流的破坏的损害,尤其当比特流的时间增强层包括非参考图片时。这样的比特流的图片的损失可能触发耗时的解码器重启,在重启期间显示黑色帧或绿色帧的空白屏幕。为了针对这样解码器减轻由于有损网络情况的图片损失效应,比特流修改工具可以将多个时间层的流入比特流转换成单个时间层的流出比特流。当比特流修改工具在用于处理IDR图片的多个模式之间切换时,用于从多个时间层切换至单个时间层的转换操作可以在多个模式中的每个模式中被执行。
图13和14示出了用于在比特流修改以减轻互操作性情景中的图片损失效应的期间从多个时间层转换至单个时间层的示例方法(1300,1400)。特别地,图13示出了用于通过比特流修改工具从两个时间层转换至单个时间层的示例方法(1300)。两个时间层展示了参考图片依赖性的常规模式。时间基层(1310)包括偶数图片P0、P2、P4、P6、P8…第一图片P0是包括图片内编码的内容的IDR图片。图13的时间基层(1310)中的每个之后的图片P2、P4、P6、P8…包括至少一些图片间编码的内容,其是利用使用时间基层(1310)中的紧接在前的图片作为参考图片的运动补偿预测编码的。时间增强层(1320)包括奇数图片P1、P3、P5、P7…时间增强层(1320)中的图片中的每个图片包括至少一些图片间编码的内容,其是利用使用时间基层(1310)中的紧接在前的图片作为参考图片的运动补偿预测编码的。时间增强层(1320)中没有图片被初始标记为参考图片。
图14示出了用于通过比特流修改工具从三个时间层转换至单个时间层的示例方法(1400)。三个时间层展示了参考图片依赖性的常规模式。时间基层(1410)包括每第四个图片P0、P4、P8…第一图片P0是包括图片内编码的内容的IDR图片。图14的时间基层(1410)中的每个之后的图片P4、P8…包括至少一些图片间编码的内容,其是利用使用时间基层(1410)中的紧接在前的图片作为参考图片的运动补偿预测编码的。第一时间增强层(1420)包括剩余的偶数图片P2、P6…第一时间增强层(1420)中的图片中的每个图片包括至少一些图片间编码的内容,其是利用使用时间基层(1410)中的紧接在前的图片作为参考图片的运动补偿预测编码的。第一时间增强层(1420)中的图片中的每个图片被标记为参考图片,因为它们可以用作用于第二时间增强层(1430)的图片的参考图片。第二时间增强层(1430)包括奇数图片P1、P3、P5、P7…第二时间增强层(1430)中的图片中的每个图片包括至少一些图片间编码的内容,其是利用使用时间基层(1410)或第一时间增强层(1420)中的紧接在前的图片作为参考图片的运动补偿预测编码的。第二时间增强层(1430)中没有图片被初始标记为参考图片。
当比特流修改工具将多个时间层的流入比特流转换成单个时间层的流出比特流时,比特流修改工具处理流入比特流的时间增强层中的图片。特别地,针对还未被标记为参考图片的时间增强层中的图片,比特流修改工具将图片标记为参考图片并且添加包括关于参考图片处理的信息的语法结构。不改变将实际上用于解码的参考图片,但是将额外的图片标记为参考图片。在图13和14的示例中,比特流修改工具将图片P1、P3、P5、P7…标记为参考图片。在一些示例实施方式中,比特流修改工具选择性地调整NAL单元语法结构(800)的nal_ref_idc语法元素(801)(见图8)。针对流入比特流中的具有等于0的nal_ref_idc的图片,比特流修改工具将nal_ref_idc语法元素(801)的值变为1并且添加具有关于参考图片标记的信息的语法结构(1200)。语法结构(1200)包括用于“非IDR”路径的一个或多个语法元素。例如,比特流修改工具添加具有0值的自适应_ref_pic_标记_模式_标志语法元素(1202)。替代地,以一些其它方法对参考图片标记语法结构(1200)进行修改。
当比特流修改工具将多个时间层的流入比特流转换成单个时间层的流出比特流时,比特流修改工具还处理流入比特流的时间基层中的图片。特别地,针对具有用于运动补偿的参考图片的时间基层中的图片,比特流修改工具选择性地调整参考图片管理信息以便解释(account for)将新图片(来自时间增强层)标记为参考图片。不改变将实际上用于解码的参考图片(例如,用于识别参考图片的相同的参考图片索引),但是可以改变参考图片管理信息以解释从时间增强层中引入新的参考图片。在图13和14的示例中,针对给定的图片,参考图片是较低的时间增强层或者时间基层中的紧接在前的图片。当在单个时间层中添加新的参考图片时,“紧接在前的图片”不再是用于解码的正确的参考图片,所以比特流修改工具调整参考图片管理信息。在图13的示例中,比特流修改工具选择性地改变用于P2、P4、P6、P8…的参考图片管理信息以“跳过”单个时间层(1390)中的紧接在前的图片(即,跳过从时间增强层(1320)中添加的新参考图片)。相似地,在图14的示例中,比特流修改工具选择性地改变用于P2、P4、P6、P8…的参考图片管理信息以“跳过”从时间增强层中添加的单个时间层(1490)中的紧接在前的图片。
在一些示例实施方式中,当选择性地调整用于时间基层中的图片的参考图片管理信息时,比特流修改工具评估其参考图片是否为LTR图片。如果不是,则比特流修改工具调整用于时间基层中的图片的参考图片管理信息。例如,比特流修改工具评估用于时间基层的图片的修改_的_pic_nums_idc(modification_of_pic_nums_idc)语法元素(1101)(在图11中所示的语法结构(1100)中)。如果修改_的_pic_nums_idc语法元素(1101)的值为2,则时间基层中的图片已使用先前被标记的LTR图片作为参考图片。如此,不调整参考图片管理信息(例如,不执行RPL修改)。否则,可以如下调整参考图片管理信息。比特流修改工具将时间基层中的先前的图片设置为DPB中的初始参考图片。比特流修改工具在包括用于时间基层中的图片的关于参考图片列表修改的信息的语法结构(1100)中做出该改变。例如,针对时间基层中的IDR图片之后的第一图片(在时间基层中帧_num等于1),比特流修改工具将修改_的_pic_nums_idc语法元素(1101)的值变为2,并且将长_期_ref_pics语法元素(1103)的值设置为0。实际上,这将IDR图片移动至DPB的头部。针对时间基层中的之后的图片(在时间基层中帧_num大于1),比特流修改工具将修改_的_pic_nums_idc语法元素(1101)的值变为0,并且设置用于abs_diff_pic_num_minus1语法元素(1102)的新值。对于图13中所示的示例而言,针对P2、P4、P6、P8…将abs_diff_pic_num_minus1语法元素(1102)的值设置为1。对于图14中所示的示例而言,针对P2、P6…将abs_diff_pic_num_minus1语法元素(1102)的值设置为1,并且针对P4、P8…将abs_diff_pic_num_minus1语法元素(1102)的值设置为3。实际上,这将时间基层中的先前的图片移动至DPB的头部。
更通常地,针对时间基层和时间增强层的图片之间的参考图片关系的给定模式,比特流修改工具选择性地调整用于单个时间层中的图片的参考图片管理信息,以使得即使当新参考图片已被添加至单个时间层时,也在解码期间使用适当的参考图片。
当将多个时间层转换成单个时间层时,比特流修改工具还可以调整用于非IDR图片的帧号。例如,针对除IDR图片以外的单个时间层中的所有图片,比特流修改工具修改帧_num语法元素(1001),实际上在每个IDR图片上将帧号重置为零并且在IDR图片之间逐个图片地增加帧号。
在一些示例实施方式中,对不同时间层中的图片独立进行编号。例如,时间基层中的图片具有帧号0、1、2…的它们自己的序列,并且时间增强层中的图片具有帧号0、1、2…的它们自己的序列。在转换至单个时间层之后,单个时间层中的图片具有它们自己的号码的序列。例如,在图13中所示的模式中,用于时间基层(1310)中的图片的帧号n变为单个时间层(1390)中的帧号2n,并且用于时间增强层(1320)中的图片的帧号n变为单个时间层(1390)中的帧号2n+1。
在图13和14中,流入比特流包括两个(图13)或者三个(图14)时间层。替代地,流入比特流包括更多的时间层。或者,流入比特流包括单个时间层,在这种情况中比特流修改工具可以跳过转换至单个时间层的过程。
考虑到可以将所公开的发明的原理应用于的许多可能的实施例,应该认识到的是,示出的实施例仅为发明的所选示例并且不应该被当作限制发明的范围。更确切地说,发明的范围由以下权利要求定义。因此,我们要求保护落入这些权利要求的范围和精神内的所有作为我们的发明。

Claims (15)

1.一个或多个计算机可读介质,其存储计算机可执行指令,用于使被配置用于视频会议或其它实时通信的系统的节点当通过所述指令编程时执行比特流修改操作,包括:
在所述系统的节点处,接收根据给定编解码标准或格式组织的经编码视频的流入比特流;
在所述系统的节点处,处理所述流入比特流以产生根据所述给定编解码标准或格式组织的经编码视频的流出比特流,包括改变所述流入比特流与所述流出比特流之间的至少一个语法元素以便减轻在有损递送情况下对所述流出比特流的解码期间的图片损失效应;以及
从所述系统的节点输出所述流出比特流。
2.根据权利要求1所述的一个或多个计算机可读介质,其中,所述系统的节点是网络节点,其中,所述流入比特流是从所述系统的发射机节点被接收的,并且其中,所述流出比特流是被发送至所述系统的接收机节点的。
3.根据权利要求1所述的一个或多个计算机可读介质,其中,所述改变所述至少一个语法元素:
在不修改所述流入比特流与所述流出比特流之间的其它语法元素的情况下,使用所述流入比特流与所述流出比特流之间的所述至少一个语法元素的比特流重写;或者
通过至少部分地解码所述流入比特流以及至少部分地重编码所述解码的结果,使用所述流入比特流与所述流出比特流之间的转码。
4.根据权利要求1所述的一个或多个计算机可读介质,其中,视频内容的质量在时间分辨率、空间分辨率和信噪比分辨率方面在所述流入比特流与所述流出比特流之间不变。
5.根据权利要求1所述的一个或多个计算机可读介质,其中,所述处理包括在多个模式之间切换,所述多个模式包括:
第一模式,其在接收机节点确认接收到所述输出比特流中的即时解码刷新(“IDR”)图片之前被使用;以及
第二模式,其在所述接收机节点已确认接收到所述输出比特流中的IDR图片之后被使用。
6.根据权利要求5所述的一个或多个计算机可读介质,其中,在所述第一模式中,所述处理包括,针对还未被标记为长期参考(“LTR”)图片的所述流入比特流中的IDR图片:
将所述IDR图片标记为LTR图片;以及
增加指示经解码图片缓冲器中的参考帧的最大计数的语法元素的值。
7.根据权利要求5所述的一个或多个计算机可读介质,其中,在所述第二模式中,所述处理包括,针对所述流入比特流中的IDR图片:
通过改变NAL单元类型将所述IDR图片转换成内(I)图片;
从所述I图片的每个切片标头中移除至少一个语法元素;以及
修改包括关于参考图片处理的信息的语法结构。
8.根据权利要求5所述的一个或多个计算机可读介质,其中,所述比特流修改操作进一步包括以下中的一个或多个:
(a)从所述接收机节点接收反馈消息,并且响应于所述反馈消息,从所述第一模式切换至所述第二模式;
(b)检测所述流入比特流中的序列参数设置数据中的变化,并且响应于检测到所述序列参数设置数据中的变化,从所述第二模式切换至所述第一模式;以及
(c)检测解码器重启,并且响应于检测到所述解码器重启,从所述第二模式切换至所述第一模式。
9.根据权利要求1所述的一个或多个计算机可读介质,其中,所述流入比特流具有多个时间层并且所述流出比特流具有单个时间层,并且其中,所述处理包括将所述多个时间层转换成所述单个时间层。
10.根据权利要求9所述的一个或多个计算机可读介质,其中,所述转换包括,针对还未被标记为参考图片的在所述多个时间层的时间增强层中的图片:
将所述图片标记为参考图片;以及
添加包括关于参考图片处理的信息的语法结构。
11.根据权利要求9所述的一个或多个计算机可读介质,其中,所述转换包括,针对具有用于运动补偿的参考图片的在所述多个时间层的时间基层中的图片,选择性地调整参考图片管理信息以解释将来自所述多个时间层的至少一个时间增强层的新图片标记为参考图片。
12.根据权利要求11所述的一个或多个计算机可读介质,其中,所述选择性地调整所述参考图片管理信息包括以下中的一个或多个:
评估针对所述时间基层中的图片的所述参考图片是否为长期参考图片,并且,如果不是,则调整所述参考图片管理信息;以及
在包括关于针对所述时间基层中的图片的参考图片列表修改的信息的语法结构中,将所述时间基层中的先前图片设置为初始参考图片。
13.根据权利要求9所述的一个或多个计算机可读介质,其中,所述转换包括调整所述流入比特流中的任意非即时解码参考图片的帧号。
14.一种方法,包括:
接收根据给定编解码标准或格式组织的经编码视频的流入比特流;
处理所述流入比特流以产生根据所述给定编解码标准或格式组织的经编码视频的流出比特流,包括改变所述流入比特流与所述流出比特流之间的至少一个语法元素以便减轻在有损递送情况下对所述流出比特流的解码期间的图片损失效应,而在时间分辨率、空间分辨率和信噪比分辨率方面不改变所述流入比特流与所述流出比特流之间的视频内容的质量;以及
输出所述流出比特流。
15.一种系统的节点,被配置用于视频会议或其它实时通信,所述节点包括:
缓冲器,被配置为接收根据给定编解码标准或格式组织的经编码视频的流入比特流;
比特流修改工具,被配置为处理所述流入比特流以产生根据所述给定编解码标准或格式组织的经编码视频的流出比特流,这通过改变所述流入比特流与所述流出比特流之间的至少一个语法元素以便减轻在有损递送情况下对所述流出比特流的解码期间的图片损失效应;以及
缓冲器,被配置为存储所述流出比特流。
CN201680020825.7A 2015-04-09 2016-04-07 一种用于减轻数字视频的互操作性情景中的损失的方法、系统节点和计算机可读介质 Active CN107439008B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/683,118 US9538137B2 (en) 2015-04-09 2015-04-09 Mitigating loss in inter-operability scenarios for digital video
US14/683,118 2015-04-09
PCT/US2016/026281 WO2016164506A1 (en) 2015-04-09 2016-04-07 Mitigating loss in inter-operability scenarios for digital video

Publications (2)

Publication Number Publication Date
CN107439008A true CN107439008A (zh) 2017-12-05
CN107439008B CN107439008B (zh) 2021-11-16

Family

ID=55755773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680020825.7A Active CN107439008B (zh) 2015-04-09 2016-04-07 一种用于减轻数字视频的互操作性情景中的损失的方法、系统节点和计算机可读介质

Country Status (4)

Country Link
US (1) US9538137B2 (zh)
EP (2) EP3262840B1 (zh)
CN (1) CN107439008B (zh)
WO (1) WO2016164506A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110121070A (zh) * 2018-02-07 2019-08-13 联发科技股份有限公司 视频压缩系统和视频压缩方法
CN110708569A (zh) * 2019-09-12 2020-01-17 北京达佳互联信息技术有限公司 一种视频处理方法、装置、电子设备及存储介质
CN111225211A (zh) * 2018-11-27 2020-06-02 北京达佳互联信息技术有限公司 转码方法、转码装置和计算机可读存储介质
CN111954034A (zh) * 2020-10-19 2020-11-17 广州佰锐网络科技有限公司 一种基于终端设备参数的视频编码方法及系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016015009A (ja) * 2014-07-02 2016-01-28 ソニー株式会社 情報処理システム、情報処理端末、および情報処理方法
GB2538997A (en) * 2015-06-03 2016-12-07 Nokia Technologies Oy A method, an apparatus, a computer program for video coding
WO2020183055A1 (en) * 2019-03-14 2020-09-17 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
KR20220070325A (ko) * 2019-10-07 2022-05-30 후아웨이 테크놀러지 컴퍼니 리미티드 서브 비트스트림 추출의 sps 오류 방지
CN111918097A (zh) * 2020-08-07 2020-11-10 杭州海康威视数字技术股份有限公司 一种解码方法、装置及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101529911A (zh) * 2006-10-16 2009-09-09 夏普株式会社 用于对多层比特流数据进行信号指示的方法和系统
EP2571278A1 (en) * 2011-09-15 2013-03-20 Thomson Licensing Video processing device and method for processing a video stream
US20130114718A1 (en) * 2011-11-03 2013-05-09 Microsoft Corporation Adding temporal scalability to a non-scalable bitstream
CN103988438A (zh) * 2011-12-01 2014-08-13 汤姆逊许可公司 用于确定在编码的比特流中的可修改元素的方法和相关联的装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625410A (en) 1993-04-21 1997-04-29 Kinywa Washino Video monitoring and conferencing system
US20060013318A1 (en) 2004-06-22 2006-01-19 Jennifer Webb Video error detection, recovery, and concealment
US20060146734A1 (en) * 2005-01-04 2006-07-06 Nokia Corporation Method and system for low-delay video mixing
US20060233247A1 (en) 2005-04-13 2006-10-19 Visharam Mohammed Z Storing SVC streams in the AVC file format
CN102036071B (zh) 2005-12-08 2014-04-02 维德约股份有限公司 用于视频通信系统中的差错弹性和随机接入的系统和方法
WO2007080223A1 (en) * 2006-01-10 2007-07-19 Nokia Corporation Buffering of decoded reference pictures
US8170116B2 (en) 2006-03-27 2012-05-01 Nokia Corporation Reference picture marking in scalable video encoding and decoding
US8320450B2 (en) 2006-03-29 2012-11-27 Vidyo, Inc. System and method for transcoding between scalable and non-scalable video codecs
EP2036355B1 (en) 2006-06-02 2015-08-05 Panasonic Corporation Coding device
ZA200904019B (en) 2007-01-05 2010-08-25 Thomson Licensing Hypothetical reference decoder for scalable video coding
CN101578884B (zh) 2007-01-08 2015-03-04 诺基亚公司 提供和使用译码的媒体流的互操作点的预定信令的系统和方法
KR100846802B1 (ko) 2007-02-14 2008-07-16 삼성전자주식회사 동영상 프레임의 디코딩 방법 및 인코딩 방법
US20090003431A1 (en) 2007-06-28 2009-01-01 Lihua Zhu Method for encoding video data in a scalable manner
KR100973657B1 (ko) 2007-11-01 2010-08-02 경희대학교 산학협력단 디블록킹 필터링을 포함하는 코덱 사이의 트랜스코딩 방법 및 장치
CN101547369B (zh) 2008-03-26 2013-02-06 盛大计算机(上海)有限公司 去除网络视频播放马赛克现象的容错方法
CN102217315B (zh) 2008-11-12 2016-03-09 汤姆森特许公司 用于画面组的并行多线程视频编码的i帧去闪烁
US8270495B2 (en) 2009-02-13 2012-09-18 Cisco Technology, Inc. Reduced bandwidth off-loading of entropy coding/decoding
EP2406954A1 (en) 2009-03-13 2012-01-18 Telefonaktiebolaget L M Ericsson (PUBL) Technique for bringing encoded data items into conformity with a scalable coding protocol
EP2493205B1 (en) 2009-10-22 2015-05-06 Nippon Telegraph And Telephone Corporation Video quality estimation device, video quality estimation method, and video quality estimation program
EP2589222B1 (en) 2010-06-29 2021-02-24 Qualcomm Incorporated Signaling video samples for trick mode video representations
US9124757B2 (en) 2010-10-04 2015-09-01 Blue Jeans Networks, Inc. Systems and methods for error resilient scheme for low latency H.264 video coding
US20120210447A1 (en) 2010-11-28 2012-08-16 Pedro Javier Vazquez Secure video download method
EP2668778A4 (en) 2011-01-26 2014-07-23 Ericsson Telefon Ab L M METHOD AND SERVER FOR RAPID CHANNEL CHANGE IN IPTV / IPTV MULTICAST / INDIVIDUAL NETWORKS
EP2560386A1 (en) 2011-08-15 2013-02-20 MediaTek, Inc Video processing apparatus and method
US8855197B2 (en) 2011-08-15 2014-10-07 Rgb Networks, Inc. Method and apparatus for aligning IDR frames in transcoded multi-bitrate video streams
EP2713624A1 (en) 2012-09-20 2014-04-02 Advanced Digital Broadcast S.A. Method and system for generating an instantaneous decoding refresh (IDR) picture slice in an H.264/AVC compliant video data stream

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101529911A (zh) * 2006-10-16 2009-09-09 夏普株式会社 用于对多层比特流数据进行信号指示的方法和系统
EP2571278A1 (en) * 2011-09-15 2013-03-20 Thomson Licensing Video processing device and method for processing a video stream
US20130114718A1 (en) * 2011-11-03 2013-05-09 Microsoft Corporation Adding temporal scalability to a non-scalable bitstream
CN103988438A (zh) * 2011-12-01 2014-08-13 汤姆逊许可公司 用于确定在编码的比特流中的可修改元素的方法和相关联的装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RICKARD SJÖBERG ET AL: "Overview of HEVC High-Level Syntax and Reference Picture Management", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110121070A (zh) * 2018-02-07 2019-08-13 联发科技股份有限公司 视频压缩系统和视频压缩方法
CN111225211A (zh) * 2018-11-27 2020-06-02 北京达佳互联信息技术有限公司 转码方法、转码装置和计算机可读存储介质
CN110708569A (zh) * 2019-09-12 2020-01-17 北京达佳互联信息技术有限公司 一种视频处理方法、装置、电子设备及存储介质
CN110708569B (zh) * 2019-09-12 2021-08-13 北京达佳互联信息技术有限公司 一种视频处理方法、装置、电子设备及存储介质
CN111954034A (zh) * 2020-10-19 2020-11-17 广州佰锐网络科技有限公司 一种基于终端设备参数的视频编码方法及系统

Also Published As

Publication number Publication date
EP4300971A2 (en) 2024-01-03
CN107439008B (zh) 2021-11-16
WO2016164506A1 (en) 2016-10-13
US20160301895A1 (en) 2016-10-13
EP3262840A1 (en) 2018-01-03
US9538137B2 (en) 2017-01-03
EP3262840B1 (en) 2023-12-20
EP4300971A3 (en) 2024-02-28

Similar Documents

Publication Publication Date Title
US11778229B2 (en) Conditional signalling of reference picture list modification information
CN107439008A (zh) 减轻数字视频的互操作性情景中的损失
CN107113422B (zh) 一种用于视频编码和解码的参考图片管理的计算机系统
CN105027570B (zh) 用来简化视频拼接的缓冲信息的语法和语义
CN105960802B (zh) 切换色彩空间时对编码和解码的调整
CN105493505B (zh) 统一的帧内块复制和帧间预测模式
CN105264888B (zh) 用于对色彩空间、色彩采样率和/或比特深度自适应切换的编码策略
CN105432082B (zh) 用于兴趣区编码的运动约束图块集合
CN106031177A (zh) 用于硬件加速的视频编码的主编码器
CN109076241A (zh) 利用样本值的非相邻参考线进行帧内图片预测
KR20210060650A (ko) 비디오 및 이미지 코딩/디코딩에서의 블록 벡터 예측
KR20170063895A (ko) 비디오 코딩을 위한 해시 기반 인코더 결정
JP2022501870A (ja) ビデオ符号化及び復号化
KR20240072202A (ko) 비디오 코딩 및 디코딩

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