CN104219524B - 使用感兴趣对象的数据对视频成码的比特率控制 - Google Patents

使用感兴趣对象的数据对视频成码的比特率控制 Download PDF

Info

Publication number
CN104219524B
CN104219524B CN201410235369.0A CN201410235369A CN104219524B CN 104219524 B CN104219524 B CN 104219524B CN 201410235369 A CN201410235369 A CN 201410235369A CN 104219524 B CN104219524 B CN 104219524B
Authority
CN
China
Prior art keywords
macro block
macro
video
block
image
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
CN201410235369.0A
Other languages
English (en)
Other versions
CN104219524A (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN104219524A publication Critical patent/CN104219524A/zh
Application granted granted Critical
Publication of CN104219524B publication Critical patent/CN104219524B/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/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/115Selection of the code volume for a coding unit prior to coding
    • 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/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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]

Landscapes

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

Abstract

描述了包括使用感兴趣对象数据的对视频成码的比特率控制的***、制品和方法。

Description

使用感兴趣对象的数据对视频成码的比特率控制
背景
网际协议语音(VoIP)提供各种数据传输服务,包括诸如视频会议等具有双向或广播视频和音频传输的多媒体会话。随着质量的提高和成本的下降,视频会议已经变得非常流行。这已经提高了诸如视频会议等允许共享和传送大量多媒体数据的应用的比特率效率的重要性。这些传输使用视频编码器,该视频编码器压缩视频信息以使得能够通过给定带宽发送更多信息。经压缩的信号然后可被传送到在显示之前对该信号进行解码或解压缩的接收器。具有较低带宽的一些网络需要降低总比特率以便甚至在维持视频中关键内容的视觉质量的同时接收和显示视频数据。对于具有相对较大带宽的网络,在维持视频中关键内容的视觉质量的同时降低比特率提供了供其它传输(无论与正在传送的视频的显示或音频有关的传输还是其它无关的网络传输)自由使用的更多带宽。
附图说明
本文中所描述的内容通过示例而非限制地在附图中示出。为说明的简单和清楚起见,在附图中示出的元素不一定按比例绘制。例如,为清楚起见,某些元素的尺寸可能相对于其它元素被放大。此外,在认为合适的地方,在附图中重复附图标记以指示相应或相似的元件。在附图中:
图1是示例视频成码(coding)***的示图;
图2是图1的示例视频成码***的一部分的示图;
图3是替换视频成码***的示图;
图4是根据一个示例视频成码***的视频帧的示图;
图5是示出图4的视频帧的映射的示图;
图6是示出图4的视频帧的另一映射的示图;
图7是示出示例视频成码过程的流程图;
图8是操作中的示例视频成码过程的示图;
图9是示例视频成码***的示图;
图10是用于操作示例视频成码***的示例***的示图;以及
图11是完全根据本公开至少一些实现安排的示例***的示图。
具体实施方式
现在参考附图描述一个或多个实现。尽管讨论了特定配置和构造,然而应当理解这样做只是为了解说目的。相关领域内技术人员应当理解,可使用其它配置和安排而不背离说明书的精神和范围。相关领域内技术人员将显而易见,也可在本申请所描述内容以外的多种其它***和应用中采用本文所述的技术和/或安排。
尽管以下描述陈述了可在诸如片上***(SoC)架构之类的架构中出现的多个实现,但是本文所述的技术和/或安排的实现不限于特定的架构和/或计算***并且可由用于类似目的的任何架构和/或计算***所实现。例如,使用例如多个集成电路(IC)芯片和/或封装的多种架构、和/或多种计算设备和/或诸如机顶盒、智能电话等的消费者电子(CE)设备可实现本文所述的技术和/或安排。此外,尽管下列描述可能陈述了诸如逻辑实现、***组件的类型和相互关系、逻辑划分/集成选择等的诸多具体细节,但是可在不具有此类具体细节的情况下实现所要求保护的主题。在其它实例中,诸如例如控制结构和全软件指令序列之类的某些内容可能并未详细示出以避免模糊本文所公开的内容。
本文所公开的内容可实现在硬件、固件、软件或它们的任意组合中。本文所公开的内容还可被实现为存储在机器可读介质上的指令,其可由一个或多个处理器读取和执行。机器可读介质可包括用于存储或传送机器(例如,计算设备)可读形式的信息的任何介质和/或机制。例如,机器可读介质可包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号等)等等。在另一形式中,诸如非瞬态计算机可读介质等非瞬态制品可以与上述示例或其它示例中的任一个联用,不同之处在于它本质上不包括瞬时信号。它本质上包括除了信号之外的可以按诸如RAM等“瞬时”方式临时保存数据的那些元件。
在说明书中对“一个实现”、“实现”、“示例实现”等的引用表明所描述的实现可包括特定特征、结构或特性,但不一定每个实现均包括该特定特征、结构或特性。此外,这样的短语不一定是指同一个实现。此外,当结合一个实现描述特定特征、结构或特性时,认为在本领域技术人员学识范围内,可以与其他实现一起实施这样的特征、结构或特性,不论本文是否有明确描述。
以下描述了包括使用感兴趣对象数据的对视频成码的比特率控制的***、制品和方法。
经编码的比特流可使用从编码器到解码器的具有最大带宽或比特率能力的传输路径,并且这些传输路径可以与或不与其它数据流共享。解码器也可以对比特率施加其它限制。因此,降低视频或诸如视频会议传输等VoIP传输的比特率可以在较低带宽网络上提供高质量视频传输或者为其它网络传输提供可用带宽。
一种用于降低视频会议的比特率的方法包括对显示器上的诸如人脸等感兴趣对象特征进行参数建模。参数模型提供用于渲染检测到的对象的参数。有了这些模型,编解码器***仅仅向接收器传送检测到的对象的基础网格或线框以及用于重建对象的参数。接收器或解码器然后使用渲染参数来重建图像上的感兴趣对象并重新使用先前提供的背景数据。然而,该方法受到接收器侧的特定动画能力的限制,这可导致不现实的或降级的图像以及对象的不自然移动。
对于许多视频或VoIP传输,诸如在视频会议期间,用户经常将他们的注意力集中在正在前景中说话的人,而较少关注周围的背景。人眼以与用于数码相机的视场焦点概念相似的方式运作,其中所聚焦的项目通常在清晰的焦点中,而前景和/或背景中的其它次要项目可能是模糊的或者具有较低质量。如将在下文描述的,现在有可能通过在维持图像中感兴趣对象的高质量图像的同时降低图像中背景的质量来传送具有较低比特率的经编码比特流以便进行视频传输。这可以在宏块级基础上执行,其中宏块所提供的图像质量依赖于该宏块到图像上由对象位置定义的点的距离。
用于该***的成码标准可以是具有高级视频编解码器(AVC)和SVC扩展(诸如H.264/MPEG-4AVC–SVC)等的H.264,诸如MPEG-2或VCI等,但在所公开的视频成码***的情况下许多其它版本或标准可以适当地操作。高效率视频成码(HEVC)也可以与本***中的SVC联用。可以使用的其它标准包括来自谷歌的VP8/WebM等。
SVC是用于应对现代视频服务环境中的网络和设备的异质性的重要工具。SVC比特流包含可以独立解码的若干子集比特流,这些子流表示具有不同分辨率、帧率、质量、位深等的源视频内容。通过使用多层成码结构来实现可缩放性。一般而言,通常存在一个基础层,可以首先对该基础层进行编码,然后对SVC***中的若干增强层进行编码。本公开允许维护高质量图像,并因此可能更适于增强层之一,但可用于包括基础层在内的任一层。可以在单个层、所有层或仅仅特定层提供本***,诸如允许某一最低质量图像的那些层。
参考图1,根据本公开的至少某些实现来安排示例视频成码***100。在各种实现中,视频成码***100可被配置成根据上述一个或多个标准来承担视频编码和/或实现视频编解码器。此外,视频成码***100能够以各种形式被实现为图像处理器、视频处理器和/或媒体处理器的一部分,并且可承担帧间预测、帧内预测、预测性成码和/或残余预测。
如此处所使用的,术语“成码器(coder)”可以指编码器和/或解码器。类似地,如此处所使用的,术语“成码”可以指经由编码器编码和/或经由解码器解码。成码器、编码器或解码器可具有编码器和解码器两者的组件。
在一些示例中,视频成码***100可包括为了清楚起见未在图1中示出的附加项。例如,视频成码***100可包括处理器、射频型(RF)收发机、显示器和/或天线。此外,视频成码***100可包括诸如扬声器、话筒、加速计、存储器、路由器、网络接口逻辑等为了清楚起见未在图1中示出的附加项。
在一些示例中,视频成码***100可执行SVC操作。例如,示出了两个空间分辨率层(例如,基础层101’和增强层101);然而,除了基础层101’之外还可以利用任何数量的增强层。基础层101’可经由H.264/AVC(和/或HEVC)兼容编码器来处理。与基础层相关联的信息(例如,诸如预测模式、重构的像素等)可用于增强层101的成码。
例如,在视频成码***100在增强层101上操作期间,,当前视频信息可以按视频数据帧的形式被提供给内部位深增加模块102,并由变换和量子化模块108来进行视频变换和量子化过程。变换和量子化模块108的输出可被提供给熵成码模块109以及去量子化和逆变换模块110。去量子化和逆变换模块110可实现变换和量子化模块108承担的操作的逆。本领域技术人员可以认识到,如此处所使用的变换和量子化模块和去量子化和逆变换模块可采用缩放技术。去量子化和逆变换模块110的输出可被提供给包括以下组件的环路:去块化(de-blocking)过滤器114、样本自适应偏移过滤器116、自适应环路过滤器118、缓冲器120、运动估计模块122、运动补偿模块124以及帧内预测模块126。如图1所示,运动补偿模块124或帧内预测模块126的输出与去量子化和逆变换模块110的输出相组合以作为对去块化过滤器114的输入。
例如,在视频成码***100中,当前视频帧可被提供给运动估计模块122。***100可以按光栅扫描次序以图像宏块(以下描述)为单位处理当前帧。当视频成码***100以帧间模式操作时,运动估计模块122可响应于当前视频帧和参考视频帧而生成残余信号。运动补偿模块124然后可使用参考视频帧和运动估计模块122所提供的残余信号来生成预测帧。
预测帧然后被从当前帧中扣除并且结果被提供给宏块(或M块或MB)分配器106。宏块分配器106可通过分成一个或多个几何宏块来划分预测帧以便进行压缩。宏块分配器还可将宏块分配给各个片和/或定义形成宏块的更小的分块。结果可被提供给变换和量子化模块108以生成一组量子化变换系数,这组量子化变换系数可由熵成码模块109来进行重排序和熵成码以生成视频成码***100所提供的经压缩比特流(例如,网络抽象层(NAL)比特流)的一部分。在各种实现中,视频成码***100所提供的比特流可包括除了用于对每一块进行解码的辅助信息(例如,预测模式、量子化参数、运动向量信息等)之外的经熵编码的系数,并且可被提供给如此处所描述的其它***和/或设备以便传输或存储。
变换和量子化模块108的输出还可被提供给去量子化和逆变换模块110。去量子化和逆变换模块110可实现变换和量子化模块108承担的操作的逆,并且去量子化和逆变换模块110的输出可以与预测帧进行组合以生成重构帧。当视频成码***100以帧内预测模式操作时,帧内预测模块126可使用重构帧来执行此处将不会更详细地描述的帧内预测模式。
以一种形式,对于H.264/AVC标准等,宏块与多个像素(通常是16×16)相关联。宏块还可以是其它大小(诸如8×8)或者自身可以被进一步分成4×4或8×8块以便压缩。
当使用HEVC标准时,宏块已经被成码单元(CU)(也被称为大成码单元(LCR))替代。对于该标准,可通过分成成码树块的一个或多个片(例如,具有对应的色度样本的64×64亮度样本)来划分当前帧以供宏块分配器106进行压缩。在四分树拆分模式中,每一个成码树块还可以分成成码单元(CU)。此外,四分树上的每一个叶CU可被分成分区单元(PU)以便进行运动补偿预测。在根据本公开的各种实现中,CU可具有各种大小,包括但不限于64x64、32x32、16x16和8x8,而对于2Nx2N CU,对应的PU也可具有各种大小,包括但不限于2Nx2N、2NxN、Nx2N、NxN、2Nx0.5N、2Nx1.5N、0.5Nx2N和1.5Nx2N。然而,应当注意,上述只是示例CU分区和PU分区形状和大小,本公开不限于任何特定CU分区和PU分区形状和/或大小。
此处,术语“宏块”通常被用来意指用于成码的像素块。因此,此处的宏块对于HEVC等可以指视频数据的CU或PU,或者对于H.264/AVC等可以指作为视频或像素数据的分区的8x8或16x16或其它形状的块,除非另外定义。应理解,宏块大小在每一帧上可以是统一的,但在帧之间可以不是统一的,并且在单个帧上可以不是始终统一的。
在各种实现中,并且对于上述两个标准,片可被指定为I(内)、P(预测)、B(双向预测)、SP(切换P)、SI(切换I)型片,等等。一般而言,帧可包括不同的片类型。此外,帧可被指定为非参考帧或可用作对帧间预测的参考的参考帧。在I片中,使用空间预测,并且以一种形式,仅仅来自帧本身中的数据。在P片中,可通过估计帧之间的运动来进行时间(而不是空间)预测。在B片中,表示每一个PU的两个运动估计的两个运动向量可用于进行时间预测或运动估计。换言之,例如,可以从帧上的相对于B片的过去、将来或两者的片预测B片。另外,可以从在相对于显示次序的过去或将来出现的多个图片中估计运动。在各种实现中,可以按对应于上述大小的各种CU或PU级估计运动。
类似地,在基础层101’上的视频成码***100的操作期间,当前视频信息可以按视频数据帧的形式提供给空间抽取或位深减小模块103,并且然后被传递至宏块分配器106’。宏块分配器106’通过分成宏块来执行对帧的划分以便进行压缩,并且可将帧分成一个或多个片或块或两者,并且结果可被提供给变换和量子化模块108’。变换和量子化模块108’可执行视频变换和量子化过程。变换和量子化模块108’的输出可被提供给去量子化和逆变换模块110’。去量子化和逆变换模块110’可实现变换和量子化模块108’执行的操作的逆,以便向包括以下组件的环路提供输出:去块化过滤器114’、样本自适应偏移过滤器116’、自适应环路过滤器118’、缓冲器120’、运动估计模块122’、运动补偿模块124’以及帧内预测模块126’Z。本领域技术人员可以认识到,如此处所使用的变换和量子化模块和去量子化和逆变换模块可采用缩放技术。如图1所示,运动补偿模块124’或帧内预测模块126’的输出都与去量子化和逆变换模块110’的输出相组合以作为对去块化过滤器114’的输入。
在操作中,在解码期间,两层SVC比特流可被解复用成两个单独的比特流(例如,基础层101’比特流和增强层101比特流)以便解码。基础层101'比特流可被独立解码以重构基础层输出视频。对于基于HEVC的SVC,基础层101’比特流可被独立解码,而增强层101比特流无法被独立解码以重构输出视频。增强层101比特流可以与基础层重构视频一起解码,因为层间预测可用于某些增强层块的编码。基础层101’重构视频可以在被应用于层间预测之前处理。可选地执行对针对空间可缩放性上采样的图片的附加操作、用于位深可缩放性的图片色调映射、用于交织渐进可缩放性的去交织、或者某个其它种类的处理。
如将在下文更详细地描述的,本公开提供了用于本***的多个可能的实现。在视频成码***100(图1-2)的情况下,比特率控制可由可集成特定映射任务的视频速率控制器150来执行。视频速率控制器150可被认为是编码器的一部分或者可以是与编码器分开或远离编码器的。或者,视频成码***300(图3)具有映射控件302,该映射控件在视频速率控制器310外部或远程执行特定任务,然后将数据传送到视频速率控制器310以便降低比特率。视频速率控制器310可以是或不是编码器308的一部分。构想许多其它组合和示例。
参考图1-2,视频速率控制器150可接收视频帧数据,并且可以通信地连接到宏块分配器106和106’以及变换和量子化模块108和108’。虽然视频速率控制器150被示为改变基础层101’和增强层101两者的比特率,视频速率控制器150可以只对一层、对至少一层、对多个特定层或所有层起作用。视频速率控制器150改变正在编码的视频数据的比特率以便为所得的经编码比特流提供较低的比特率。
一般而言,视频速率控制器150确定形成帧或图像的宏块中的哪一些也显示图像中的诸如脸部等感兴趣对象的至少一部分。视频速率控制器150还确定那些宏块显示诸如背景的一部分等非对象图像的部分。如此处所使用的,术语“背景”可以指视频图像中的未被定义为感兴趣区域或对象(或被简称为非对象)且不引起用户的密切关注的区域。背景可包括位于所确定的感兴趣对象的后面或前面(例如,前景)的图像部分。这与引起用户关注的对象或感兴趣对象形成对比。显示背景且在一种形式中仅仅显示背景或非对象的宏块由指示从该宏块到相对于对象定义的点(诸如对象的中心点)的距离的水平来映射或标记。用于非对象宏块的图像数据然后可依据宏块的水平来减少。在一种形式中,这可通过使用QP缩放因子或内容知晓过滤器或两者来执行。
关于这些方法以及视频成码***100或300的其它方面的附加和/或替换细节可以在以下参考图2-6更详细地讨论的一个或多个示例实现中示出。如以下将更详细讨论的,视频成码***100可用于执行以下结合图7和8讨论的多种功能中的部分或全部。
参考图2,在一种示例形式中,视频成码***100的层101和101’中的任一个或两者可具有逻辑模块200。某些逻辑模块可被包括在视频速率控制器150中。视频速率控制器150可具有对象检测模块252、宏块水平图生成器模块(或MB级生成器或简称为生成器)254、内容知晓过滤器256和/或量子化参数(QP)控制模块258。对象检测模块252和宏块水平图生成器254可以分别连接或通信地或操作地耦合到图像数据202和宏块分配器模块106(或106’)。内容知晓过滤器256和QP控制模块258连接或通信地或操作地耦合到变换和量子化模块108(或108’)。
参考图3,在一个示例替代配置中,单独的映射控件302提供对象检测模块252和宏块水平图生成器模块254,而不是视频速率控制器。在该示例中,编码器308包括具有内容知晓过滤器模块256和/或QP控制模块258的视频速率控制器310。映射控件302还可包括图像捕捉设备304或可以与图像捕捉设备306通信。在一种形式中,映射控件302可以是或者可以链接到相机,诸如网络摄像头或其它数字或模拟相机或摄像机。在一些示例中,视频数据可经由网络摄像头传感器等来捕捉(例如,互补金属-氧化物半导体图像传感器(CMOS)或电荷耦合器件图像传感器(CCD)),而不使用红-绿-蓝(RGB)深度相机和/或话筒阵列来定位谁正在说话。在其它示例中,作为网络对摄像头传感器的补充或替换,可使用RGB深度相机和/或话筒阵列。许多不同类型的相机可以与此处描述的本***联用。
对于视频成码***300,映射控件302可以与同一设备中同一编码器内或作为其一部分的视频速率控制器310分开,诸如具有照片或视频捕捉能力的相机或设备。作为另一替代实施例,映射控件302可以位于视频控制器310和编码器308的远程。在这些情况下,宏块水平以及对应的图像数据可被传送到视频速率控制器310或者以其它方式变得对于视频速率控制器310是可访问的,这些宏块水平以及对应的图像数据可以被或不被存储在诸如服务器或其它网络设备处的存储器等其它地方。否则,水平图和比特率降低与以下描述的***100执行的相同或相似地操作。
再次参考图2,更详细地,图像数据202接收至少包括关于每一个像素的亮度和色彩的细节的图像数据帧。图像数据最初可以从此处描述的图像捕捉设备接收,或者可包括来自量子化模块并经由过滤器、运动和/或预测环路204的循环数据,以添加例如预测帧的编码。每一帧(也被称为图像或图片)可以包括或不包括具有诸如关于视频会议的脸部等对象或感兴趣对象和背景的图像。然而,将会理解,***100或300可以在图像包括除了脸部之外的对象(诸如动物、机器,诸如车辆等)的情况下并因此在许多不同的对象是可能的焦点的情况下操作。对于H.264/AVC示例,图像数据然后被传送到对象检测模块252和宏块分配器106。宏块分配器106可将帧分成8x8、16x16或其它大小的宏块以及其它分区,以便进行更高效的编码。
参考图4,对象检测模块252检测或跟踪对象并确定是否可以在每一帧I_in中找到一个或多个对象,并且如果是,则检测该帧中的一个或多个对象的僵化或捕捉到的位置。在一些示例中,将脸部检测为对象可包括至少部分地基于Viola-Jones型框架的检测(参见例如Paul Viola、Michael Jones的Rapid Object Detection using a Boosted Cascade ofSimple Features(使用提升的简单特征级联的快速对象检测),CVPR2001和/或YangzhouDu、Qiang Li的2010年12月10日提交的题为TECHNIQUES FOR FACE DETECTION ANDTRACKING(用于脸部检测和跟踪的技术)的PCT/CN2010/000997)。这些脸部检测技术可允许相对累积,以包括脸部检测、陆标检测、脸部对准、微笑/眨眼/性别/年龄检测、脸部识别、检测两个或更多脸部等。存在检测脸部和其它对象的许多其它示例,并且本对象检测模块252可使用这些示例。
在所示示例中,帧或图像400包括矩形404中标记的对象402。为了确定和设置对象在一种示例形式的图像400中的排列或位置,对象检测模块252可将矩形的左上角指派为(xi,yi),且该对象的大小可包括如由矩形表示的对象的宽度(指派为wi)和对象的高度(指派为hi)。对于不规则形状的对象,(wi,hi)可测量该对象的最大维度,但构想其它维度(诸如平均宽度和高度)。将理解,存在定义可以在此处使用的对象的位置的许多其它不同的方式。如由等式(1)示出的检测到的一个或多个对象Oi的位置数据可被提供给宏块水平图生成器254:
O={o1,o2,...oM}={(x1,y1,w1,h1),(x2,y2,w2,h2),...(xM,yM,wM,hM)} (1)
其中等式(1)中的M是图像I_in内的感兴趣对象的数量。
宏块水平图生成器254或其它模块然后可计算点P相对于对象位置的位置。该点可以是由矩形的中心表示的对象的中心点,或者对于例如非对称或不规则形状可以是考虑对象区域的确切位置的对象或矩形的质心。存在关于使用哪一点(诸如外边界点或对象或矩形的角等)的许多其它示例,并且在一个示例中,可以使用任何点,只要对于整个帧中的宏块持续使用该点。当单个帧中存在多个对象时,可确定该组对象(此处被称为全体)的单个中心点或质心以便进行比特率控制。在所示示例中,一个或多个对象的中心点的位置co=(xo,yo)可通过下式来确定:
仍然参考图4,宏块水平图生成器模块254可以从宏块分配器106接收宏块分配。因此,帧400可被分成宏块402,并且一些对象宏块406提供图像400上的对象404的至少一部分,并且一些非对象宏块408提供图像400中的背景(或不重要的前景)。在一种形式中,非对象宏块408不提供对象404的任一部分的图像数据。
宏块水平图生成器254然后可确定在帧中宏块相对于对象位置的位置,以便用对于成码和相对于对象的重要性水平来标记每一个宏块。在一种形式中,可以为每一帧中的每一个宏块提供该操作。在其它形式中,可以为至少一个帧执行该操作。该操作可以为初始视频图像、预测帧或两者执行。在另一形式中,该过程可以为帧中的至少一个宏块或少于帧中的所有宏块的多个宏块执行。
参考图5,为了确定哪些宏块是非对象宏块,图像I_in的分辨率被指定为(WMB x K)x(HMB x L)且(K,L)∈IN,其中IN是整数集,K、L是从0开始的图像的总水平和垂直宏块(MB)计数(换言之是图像中的MB的行和列的数量),0在图像I_in的左上角,且WMB x HMB是一个MB的分辨率(通常以像素测量,但可以是其它定义的单位)。指示MB、MBk,l是否包含任何感兴趣对象的一部分的二元图500可被导出为:
其中此处的等式中的i(且i=1,...M)是感兴趣对象的实例的索引。等式(3)中的二元图的分辨率等于I_in内的MB的总数(以使得,k=0,1,2,...K–1,且l=0,1,2,...L–1)。将以上等式应用于所示示例,对于对象宏块406,bk,l=1,且对于非对象宏块408,bk,l=0。
参考图6,一旦建立二元位图500并获得中心点P位置,宏块水平图生成器254就可建立具有每一个宏块(或至少一个宏块或少于所有宏块的多个宏块)的指示每一个MBk,l的重要性水平的标签的MB水平图Lm。通过一种方法,宏块水平图生成器254将只减少图像相关位的数量,并因此对于非对象宏块降低图像质量。用于获取水平图600的等式可以是:
(4-1)
其中k=0,1,2,...K,l=0,1,2,...L,并且其中
dk,l=L2_norm[((k+1/2)×WMB,(l+1/2)×HMB),(xo,yo)]
(4-2)
否则,对于bk,l=1,Lmk,l=0
(4-3)
其中等式(4-1)中的g(N)是单调增函数以使得g(1)小于g(2),g(2)小于g(3),以此类推,且N是水平的所需数值。g(N)可由诸如视频速率控制器150或***的其它部分等应用本身来执行,但在一个具体示例中,g(N)可由宏块水平图生成器254自身来导出或计算或者甚至可具有默认设置。作为一个示例,g(N)=N。只要g(N)是单调增函数,g(N)无需被限于此。作为所示示例,N在此被设为3(包括对象内的水平0)。在更大的g(N)值的情况下,从一个宏块水平到另一水平的转变或具体而言分配给单个水平的距离的范围将会更小。从等式(1)到(4-2),然后将会理解,本方法确定至少一个宏块相对于图像上的对象位置的位置,并且然后用依据位置的水平来标记该宏块。如下文所解释的,由宏块提供的图像部分的质量然后可至少部分地依据该定位或水平来调整。更具体而言,以上等式确定从宏块到相对于对象定义的点的距离,并且该点可以是中心点、质心、外边界点、转角或对象的其它相关点,或者标识对象的矩形,只要在宏块帧上持续使用该点。作为另一替代实施例,有可能使用帧上的不止一个点来确定该帧的不同区域上的水平而不是具有对于整个帧的水平集。因此,在这种情况下,比特率可依据帧的区域而不同地降低。
作为又一可能替换实施例,还将理解,此处的点可以是区域而不是具有图像上的单个像素位置的单个点,并且在这种情况下可以例如从该区域的最近边界点到宏块测量到宏块的距离。
水平各自可表示离该点的特定距离或距离范围,并且可以按以上从例如WMB、HMB和xi、yi、wi和hi获取的像素单元来测量。在一个示例中,每一个水平都可以与离该点的至少一个不同距离或距离范围相关联。水平的数量并非是特别受限的,除非受到***能力的限制。在具有更多水平的情况下,水平之间的比特率转变或阶梯将更小,以提供相对更大的比特率但从对象到背景的更平滑过渡。因此,在比特率的降低可以优先于清晰对象边界的情况下,可选择比***容量更少的水平。在一种形式中,可以提供用于标记非对象宏块的至少两个水平。至少一个较近的水平(例如图6中的水平1)可被置于具有对象的外边界的宏块附近,而至少一个其它水平(诸如图6的水平2)可以与显示对象的宏块隔开。这一水平图600(图6)是三水平MB水平图的示例,该水平图具有图像中由被标记为水平0的对象MB602表示的单个对象402以及依据离所示示例中的中心点P的距离而被分别标记为1和2的MB408和410。
水平的数量可被自动设置或者由视频速率控制器150或310、宏块水平图生成器254或在视频速率控制器150或310内部或外部的其它模块来设为默认。否则,水平的数量可由另一应用或程序来设置或者甚至可基于可用的传输比特率。因此,在某些形式中,有可能在从一个或多个解码器接收到时确定可用比特率,和/或***可以基于特定应用或计算机程序将或不将标准比特率限制考虑在内。比特率然后可被调整为匹配可用比特率。对于其中对于视频会议存在多个接收器客户机的一个示例,每一个接收器联系服务器(MCU/多点控制单元)并提供其优选的视频格式(分辨率或编解码器等)以及接收器和服务器之间的带宽。服务器将聚集所有这些请求并生成适合大多数客户机同时实现可能最佳质量的最小带宽和分辨率集合。该带宽和分辨率集合将被传递至编码器并且编码器将确定如何生成各层并在接收器之间分配带宽。可用比特率是按Bps(每秒比特)计算的。视频速率控件150然后可通过例如基于该可用比特率来调整层数,调整经编码的比特率。
将会理解,在一个替代实施例中,对象宏块还可以由视频速率控制器150或310来处理,以使得对象404自身内,处在或最接近诸如对象的中心点等相关点P的宏块接收到最高质量图像成码,而被定位在远离中心点但仍然被认为在对象内的宏块接收到稍低质量图像成码,以便至少提供一些进一步比特率降低。在这种情况下,可以在对象内定义进一步的水平划分,其中可以为对象中的处在或最接近中心点或其它相关点的那些宏块保留0水平。
也如上所述,当图像图像保有多个对象时,中心点、质心或与对象相关的其它点被计算为针对对象组的单个点。这导致更靠近中心点的宏块以比较远离中心点的那些宏块以更好质量的图像来成码。这可被用来避免较大的计算负载,即使该负载可能降低位于较远离对象组的中心的对象的图像质量。
一旦宏块水平被映射(图6),这些水平就可被提供给内容知晓过滤器模块256、QP控制模块258或两者。当使用内容知晓过滤器256时,内容知晓过滤器将获取当前正被分析的宏块的水平,并且过滤强度可依据宏块水平来设置,且对于一个示例过滤强度随着水平数值的增加而提高(但在适当且与其它等式一致时,过滤可被设为随着水平数值的增加而降低)。过滤然后可被应用于所提供的关于该宏块的图像数据以便诸如通过消除高频数据来减少数据量,并且该过程对每一个宏块继续。在一种形式中,关于每一个非对象宏块而不是关于对象宏块的图像数据被减少,但这无需始终如此,如上所述。
更详细地,作为一个示例,内容知晓过滤器可以是高斯低通过滤器,但将会理解可使用其它类型的过滤器。内容知晓过滤器对帧I_in施加过滤且其过滤强度在空间上自适应于I_in的MB水平图。内容知晓过滤器的输出(I_int)可被计算为:
其中x=0,1,2,...(WMB x K–1),且y=0,1,2,...(HMB x L–1),且等式(5)中的Lm变成过滤强度s。为了实现比特率降低,上述等式中的f(s,x,y)可以是低通过滤器(LPF),且其过滤强度s随着MB标记值单调增加。因此,对于非对象宏块,与更靠近对象402的水平1宏块408相比,对于水平2宏块410过滤强度可以更强。这一过滤可减少与宏块相关联的图像数据量,且该减少随着宏块离相关点的距离的增加而有相对较小的递增。与简单地对对象和背景进行不同成码的其它一步***相比,这提供了例如从图像中的对象到背景以及沿着对象边界的平滑得多的过渡。这一平滑过渡避免了可由自适应过滤导致的马赛克效应。
如果不提供内容知晓QP控制,则经过滤的图像数据然后可被提供给变换和量子化108(或108’)以便进行普通的变换和量子化,如下所述。或者,经过滤的图像数据可被传递至QP控制模块258或可提供QP控制模块258,而不是内容知晓过滤器模块256。
QP控制模块258接收MB水平图数据,并依据宏块的水平来选择缩放因子sf。该缩放因子可由QP控制模块本身258、视频速率控制器150或302内的其它模块来提供,或者可由诸如Handbrake等其它编码应用来提供。该缩放因子可以依据宏块水平而在逐个宏块的基础上应用,以计算每一个宏块的量子化参数。在以下描述的一个实验中,使用sf1.4。假定固定的QP、QPI,所述QP控制模块258将MBk,l的QPk,l确定为:
一旦获取每一个宏块的QP,对于这些帧,图像数据的变换和量子化就可以如常继续。而且,没有检测到任何对象的帧也可以在普通变换和量子化下继续。对于普通量子化,残余通过近似离散余弦变换(DCT)的整数变换来被变换到空间频域。QP确定步长以将经变换的系数与有限步集合相关联。较大的QP值表示粗略地近似空间变换的大步,以使得能够通过仅仅几个系数来捕捉到大多数信号。较小的QP值更准确地近似块的空间频谱,但以更多位为代价。为此,可使用将预测误差和可用比特率考虑在内的算法。在H.264中,QP的每一个单位增加将步长延长12%并将比特率降低大约12%。
更具体而言,在一种形式中,可执行DCT计算,但可由视频成码***100使用其它类型的系数计算。在一种形式中,这可包括使用所提供的像素数据的4x4或8x8矩阵乘法。矩阵算子(每一个矩阵中的元素)可以是八比特整数,且结果可被限于16比特整数。这些DCT计算的结果然后可以是频域中的系数的4x4或8x8矩阵。
系数块或矩阵然后可被量子化并在计算中被用来简化系数(例如,将所有系数调节成特定范围或量子化步(QS)内的实数,该特定范围或量子化步的大小可依据QP来选择)。作为一个示例,通常可形成任何图像的显著部分的零系数序列然后可被丢弃(或更准确地简单计数),以压缩经编码的比特流的数据。在一种示例形式中,其中A/QP=B且A是系数,而QP是量子化参数且B是具有相对较小范围的整数。B于是可被编码到比特流中。接收到B的解码器然后可执行计算,诸如A’=QP*B,其中A’不一定等于A,但它可以相对接近。QP的值确定准确性。
一旦变换和量子化模块108完成系数,熵编码器模块109执行熵成码,并且经编码的比特流可被传送到具有上述比特率限制的解码器904(参见图9)。
如以下将更详细讨论的,视频成码***100或300可用于执行以下结合图7和/或8讨论的多种功能中的部分或全部。
参考图7,根据本公开的至少某些实现来安排示例视频成码过程700。在所示实现中,过程700可包括由框702、704、和/或706中的一个或多个所示出的一个或多个操作、功能或动作。作为非限制性示例,本文将参考图1-6中的示例视频成码***100或300来描述过程700。
过程700可用作用于使用感兴趣对象数据来对视频成码进行片级比特率控制的计算机实现的方法。过程700可开始于操作702“接收指示至少一个对象在要显示的图像上的位置的图像数据”,其中宏块水平图生成器模块可接收指示对象在要显示的图像上的位置的图像数据。在一些替换实施例中,宏块水平图生成器可位于视频速率控制器处或者可以是单独的映射控件,并且可位于视频编码器处或者远离视频编码器。
处理可以从操作702继续至操作704“确定形成图像的至少一部分且与对象位置相关的多个宏块中的各个宏块的位置”,其中宏块水平图生成器模块可确定形成图像的至少一部分且与对象位置相关的多个宏块中的各个宏块的位置。作为一些示例,宏块位置可相对于对象的中心点或其它点来确定。作为一个示例,从宏块到中心点的距离可用于用依据离中心点的距离且指示该宏块的重要性的水平来标记该宏块。
处理然后可以从操作704继续至操作706“由视频编码器至少部分地依据宏块中至少一个宏块相对于对象在图像上的位置的位置来调整由该宏块提供的图像部分的质量”,其中视频编码器至少部分地依据宏块中的至少一个相对于对象在图像上的位置来调整由该宏块提供的图像部分的质量。作为一个示例,视频编码器可具有视频速率控制器,该视频速率控制器具有内容知晓过滤器模块、QP控制模块或减少用于提供与该宏块相关联的图像部分的比特数并由此降低由该宏块提供的图像部分的质量的其它程序或模块。
与过程700相关的一些附加和/或替换细节可在以下关于图8更详细讨论的实现的一个或多个示例中示出。具体而言,例如视频速率控制器可具有内容知晓过滤器模块、QP控制模块或两者,并且操作次序可以依据使用哪些模块而不同。
参考图8,示例视频成码***100根据本公开的至少某些实现来操作视频成码过程700。使用内容知晓过滤器模块256和QP控制模块258两者的过程用实线示出,而一些可选的、替代方法用虚线表示。更详细地且在所示实现中,过程800可包括如由802到834平均编号的一个或多个动作示出的一个或多个操作、功能或动作。作为非限制性示例,本文将参考图1-2和7中的示例视频成码***100来描述过程800。
在所示实现中,视频成码***100可包括逻辑模块200、类似物、和/或其组合。例如,逻辑模块200可包括形成视频速率控制器150的那些逻辑模块,诸如对象检测模块252、宏块水平图生成器模块254、内容知晓过滤器256和/或量子化参数(QP)控制模块258、类似物和/或其组合。这些逻辑模块还协调或通信地耦合到视频帧馈源或图像数据202和上述宏块分配器106以及图8所示的变换和量子化模块108,其可以被或不被认为是逻辑模块200的一部分。宏块水平图生成器模块254可被配置成依据宏块相对于图像上的对象的位置来将重要性水平映射到宏块。不同的视频速率控制器150然后可依据宏块的位置或水平来调整由该宏块提供的图像部分的图像质量。该调整可由内容知晓过滤器模块256或QP控制模块258或两者来执行。内容知晓过滤器模块256使用低通过滤器来移除数据(诸如一个示例中的高频数据)以减少用于显示该宏块所提供的图像部分的比特数。过滤器的强度可依据宏块的水平来设置。类似地,QP控制模块258使用缩放因子来调整至少一个量子化参数,并进而同样依据宏块的水平来调整量子化步的大小以及该有损压缩中丢失的数据量。尽管如图8所示视频成码***100可包括与特定模块相关联的一组特定的操作或动作,但是这些操作或动作可以与不同于本文所示特定模块的模块相关联。
过程800可用作用于使用感兴趣对象数据来对视频成码进行比特率控制的计算机实现的方法。过程800可首先包括操作“接收图像数据”802,并且该图像数据然后可由对象检测模块252用来“检测对象位置”804并映射对象位置,包括图像中的一个或多个对象的位置和大小。该对象位置信息(参见以上对于一个示例的等式(1))然后可以变得可供宏块水平图生成器模块254来执行操作,806。宏块水平图生成器模块254(此处也被称为MB水平生成器)可以从例如宏块分配器106“接收宏块分配”808,该宏块分配包括宏块在图像上的位置。MB水平生成器254然后可使用对象位置信息和宏块位置来“确定哪些MB显示对象的至少一部分”,810。作为一个示例方法,这可通过使用以上等式(3)来实现。
一旦确定哪些宏块具有显示对象的至少一部分的图像数据,这些对象宏块就可被标记为水平0(等式4-3)。计算然后可被用来“将水平分配给MB”812并且在本示例中是分配给非对象MB,以指示非对象MB到对象的距离(例如参见以上等式(4-1)和(4-2))。在一个示例中,该距离可以从对象的中心点P测量。在一种形式中,MB水平生成器254随着宏块被定位成较远离对象或点P而分配较高的水平。如上所述,或者水平可被编号成按反方向上升,并且在替代操作中水平分配也被提供给对象MB。一旦水平已被分配给宏块,水平和其它图像数据就可变得可供视频速率控制器150中的调整要被压缩并被传送到接收器和解码器的图像数据的模块来执行操作,814。
具体而言,且对于其中MB图像数据将被过滤并且其QP被调整的所示示例,操作814可以通过首先过滤图像数据来继续。内容知晓过滤器模块使用水平和宏块图像数据来“至少部分地依据MB的水平来过滤图像数据”818。如上所述,这包括依据水平来调整过滤器的强度(例如等式(5))。过滤器越强,将被丢弃的图像数据越多。其余图像数据和宏块水平然后变得可供QP控制模块258(如果存在的话)执行操作,820。
虽然图8示出特定模块从不同模块或其它组件接收数据,但将会理解这包括一个组件存储数据并使该数据变得可供另一组件用来从存储获取数据,无论是控制器、模块、编码器等。
接下来,QP控制模块258使用宏块的水平来为每一个宏块选择缩放因子(sf)。变换和量子化模块108可以“建立QP”824以便进行普通操作,并且提供AP以供QP控制模块258执行操作,826。QP控制模块258然后可使用QP和缩放因子sf来通过对每一宏块使用计算(参见例如等式(6))来“至少部分地基于MB的水平来调整QP”828。然后可提供调整后的量子化参数以调整至少一个宏块的压缩。具体而言,一旦量子化参数调整完成,操作830可以通过如上所述变换和量子化模块108“完成量子化”832并且“将数据发送到熵编码器”834来继续。有了该操作,QP至少部分地基于以下至少两个在先的、内容知晓的比特率调整来调整:依据宏块水平的图像数据的过滤以及然后的通过也依据宏块水平的缩放因子的QP调整。
在其它替换形式中,视频速率控制器150、应用或其它程序或甚至用户可具有选择过滤或QP调整或两者的选项。在其它替代实施例中,***100可以只提供过滤器或QP调整。当只提供过滤时,在过滤操作818后,操作822然后可以直接通过变换和量子化模块108完成量子化和压缩832来继续。否则,当在不过滤的情况下调整QP时,在分配水平812后,操作816可以直接继续至QP控制模块258,基于宏块的水平来调整QP828。在这种情况下,操作830然后可以通过变换和量子化模块108继续压缩来继续。
对于图像中的单个对象的配置(作为一个示例诸如用于视频聊天且与诸如图6所示的双水平非对象MB标记联用的人脸),已近发现使用内容知晓过滤和QP调整两者的比特率降低导致与不具有比特率降低的***和只使用一种比特率降低方法的***相比显著的比特率降低。因此,在一个实验中,使用具有检测到的脸部的同一图像,***在不应用比特流降低的情况下实现了96fps以及具有268kbps比特率的平均比特流。当只使用过滤时,***实现了128fps以及178kbps或90kbps的平均比特流或者33.6%的比特流降低。对于所示示例,具有过滤强度1/144和1/400的12x12和20x202D加权低通过滤器分别用于具有等于1和2的水平映射的宏块。当仅以1.4的缩放因子应用QP调整时,***实现了122fps和平均134kbps比特率,降低134kbps或50%。最后,当以1.4的缩放因子应用两种方法时,***实现了106fps和116kbps的平均比特流,降低152kbps或56.7%。
此外,可响应于由一个或多个计算机程序产品提供的指令采用图7和8的任何一个或多个操作。此类程序产品可包括提供指令的信号承载介质,当这些指令由例如处理器执行时可提供本文所述的功能。计算机程序产品可按任何形式的计算机可读介质来提供。因此,例如包括一个或多个处理器核的处理器可响应于通过计算机可读介质传送给处理器的指令采用如图7和8所示的一个或多个框。如上所述,在一种形式中,可提供非瞬态计算机可读介质。
如本文所述任一实现所使用,术语“模块”指的是配置成提供本文所述功能的软件、固件和/或硬件的任何组合。软件可具体化为软件包、代码和/或指令集或指令,而如本文所述任一实现所使用的“硬件”可单独或任意组合地包括例如硬接线电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。模块可整体或单独地被具体化为形成较大***(例如集成电路(IC)、片上***(SoC)等等)的一部分的电路。
参考图9,可根据本公开的至少某些实现来安排示例视频成码***100。在所示实现中,视频成码***100可包括成像设备901、视频编码器902、天线903、视频解码器904、一个或多个处理器906、一个或多个存储器存储908、显示器910和/或逻辑模块200。逻辑模块200可包括视频速率控制器150,该视频速率控制器150具有对象检测模块252以及宏块水平图生成器模块254。可选地,视频速率控制器150还可包括内容知晓过滤器模块256和/或QP控制模块258、类似物和/或其组合。
如所示,成像设备901、编码器902、处理器906和/或存储器存储908能够彼此通信和/或与逻辑模块200的某些部分通信。类似地,天线903、视频解码器904和/或显示器910能够彼此通信和/或与逻辑模块200的某些部分通信。因此,视频编码器902可包括逻辑模块200中的全部或部分,而视频解码器904可包括类似的逻辑模块。同样,如以上参考图3的描述所提及的,***可具有远程映射控件302,该控件在视频编码器902和映射控件302之间划分逻辑模块200。尽管如图9所示视频成码***100或***300可包括与特定模块相关联的一组特定的操作、组件或动作,但是这些操作、组件或动作可以与不同于本文所示特定模块的模块相关联。
在一些示例中,视频编码器902可被配置成通过依据宏块相对于至少一个对象在图像上的位置的位置减少由该宏块提供的比特数,来控制经编码的比特流的比特率。视频成码***100还可包括天线903、视频解码器904、类似物和/或其组合。天线903可被配置成传递视频数据的经编码比特流,具体而言例如从编码器902接收经编码的比特流并将该经编码的比特流传送到解码器904。视频解码器904可以通信地耦合到天线903并且可被配置成解码经编码的比特流。
在其他示例中,视频成码***100可包括显示设备910、一个或多个处理器906、一个或多个存储器存储908、对象检测模块252、宏块水平图生成器模块254、内容知晓过滤器模块256和/或QP控制模块258、类似物和/或其组合。显示器910可被配置成呈现视频数据。处理器906可通信地耦合至显示器910。存储器存储908可以通信地耦合到一个或多个处理器906。视频编码器902(或其它示例中的视频解码器904)中的宏块水平图生成器254可以通信地耦合到一个或多个处理器906,并且可被配置成用对应于从宏块到例如图像上的对象的中心点或其它相关点的至少一个距离的水平来标记宏块。
通过各种方法,包括视频速率控制器150或映射控件302/控制器308中的对象检测模块252、宏块水平图生成器模块254、内容知晓过滤器模块256和/或QP控制模块258的逻辑模块可以用硬件实现,而软件可实现其它逻辑模块。例如,在某些形式中,对象检测模块252和宏块水平图生成器模块254可由专用集成电路(ASIC)逻辑来实现,而内容知晓过滤器模块256和/或QP控制模块258可由诸如处理器906等逻辑执行的软件指令来提供。然而,本公开不限于此,并且视频速率控制器150或308模块中的任一个都可以由硬件、固件和/或软件的任意组合来实现。此外,存储器存储908可以是任何类型的存储器,诸如易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或者非易失性存储器(例如,闪存等)等等。在非限制性示例中,存储器存储908可通过高速缓存存储器来实现。
参考图10,根据本公开的示例***1000操作本文描述的视频成码***的一个或多个方面。应从下述***组件的特质中理解,这些组件可以关联于或用于操作上述视频成码***的特定部分或多个部分。在多个实现中,***1000可以是媒体***,不过***1000不限于此情境。例如,***1000可以集成到个人计算机(PC)、膝上型计算机、超膝上型计算机、平板电脑、触摸板、便携式计算机、手持式计算机、掌上电脑、个人数字助理(PDA)、蜂窝电话、蜂窝电话/PDA的组合、电视机、智能设备(例如,智能电话、智能平板电脑或智能电视机)、移动因特网设备(MID)、消息接发设备、数据通信设备等等。
在多个实现中,***1000包括耦合至显示器1020的平台1002。平台1002可以从诸如内容服务设备1030或内容递送设备1040之类的内容设备或其他类似的内容源接收内容。可使用包括一个或多个导航特征的导航控制器1050来与例如平台1002和/或显示器1020交互。在下文中更详细地描述这些组件中的每一个。
在多个实现中,平台1002可包括芯片组1005、处理器1010、存储器1012、存储1014、图形子***1015、应用1016、和/或无线电装置1018的任意组合。芯片组1005可以在处理器1010、存储器1012、存储1014、图形子***1015、应用1016和/或无线电装置1018之间提供相互通信。例如,芯片组1005可以包括能够与存储1014进行相互通信的存储适配器(未描绘)。
处理器1010可被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核或任何其它微处理器或中央处理单元(CPU)。在多个实现中,处理器1010可以是双核处理器、双核移动处理器等等。
存储器1012可以实现为易失性存储器设备,诸如,但不仅限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
存储1014可以实现为非易失性存储设备,诸如,但不仅限于,磁盘驱动、光盘驱动、磁带驱动、内部存储设备、附连存储设备、闪存、电池供电的SDRAM(同步DRAM)和/或网络可访问的存储设备。在多个实现中,存储1014可包括用于提高针对有价值数字媒体的存储性能增强保护(例如当包含多个硬盘驱动器时)的技术。
图形子***1015可以对诸如静止图像或视频之类的图像执行处理,供显示。图形子***1015可以是,例如,图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字接口可以被用来可通信地耦合图形子***1015和显示器1020。例如,该接口可以是高清晰度多媒体接口、显示器端口、无线HDMI和/或无线HD兼容技术中的任一种。图形子***1015可以集成到处理器1010或芯片组1005中。在一些实现中,图形子***1015可以是通信耦合至芯片组1005的独立卡。
此处所描述的图形和/或视频处理技术可以以各种硬件架构来实现。例如,图形和/或视频功能可以集成在芯片组内。替代地,可以使用单独的图形和/或视频处理器。作为又一实现,图形和/或视频功能可由包括多核处理器的通用处理器提供。在进一步的实施例中,这些功能可在消费者电子设备中实现。
无线电装置1018可以包括能够使用各种合适的无线通信技术传输和接收信号的一个或多个无线电装置。这样的技术可以涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络以及卫星网络。在跨这样的网络的通信中,无线电装置1018可以根据任何版本的一个或多个适用的标准来操作。
在多个实现中,显示器1020可包括任何电视机类型的监视器或显示器。例如,显示器1020可包括计算机显示屏、触摸屏显示器、视频监视器、类似电视机的装置和/或电视机。显示器1020可以是数字和/或模拟的。在多个实现中,显示器1020可以是全息显示器。同样,显示器1020还可以是可以接收视觉投影的透明表面。这样的投影可以传达各种形式的信息、图像和/或对象。例如,这样的投影可以是对于移动增强的现实(MAR)应用程序的视觉覆盖。在一个或多个软件应用1016的控制下,平台1002可以在显示器1022上显示用户界面1020。
在多个实现中,内容服务设备1030可由任何国家的、国际的和/或独立的服务来主持,从而可经由例如因特网而可由平台1002访问。内容服务设备1030可以耦合到平台1002和/或显示器1020。平台1002和/或内容服务设备1030可以耦合到网络1060以往返于网络1060进行通信(例如,发送和/或接收)媒体信息。内容递送设备1040还可以耦合到平台1002和/或显示器1020。
在多个实现中,内容服务设备1030可包括有线电视盒、个人计算机、网络、电话、能够递送数字信息和/或内容的启用因特网的装置或设备、以及能够经由网络1060或直接在内容提供方与平台1002和/或显示器1020之间单向或双向地通信内容的任何其它类似装置。可以理解,内容可以通过网络1060往返于***1000中的组件中的任何一个和内容提供商单向地和/或双向地传递。内容的示例可以包括任何媒体信息,包括,例如,视频、音乐、医学和游戏信息等等。
内容服务设备1030可接收诸如有线电视节目之类的内容,包括媒体信息、数字信息和/或其它内容。内容提供商的示例可以包括任何有线或***或无线电或因特网内容提供商。所提供的示例不旨在以任何方式限制根据本公开的实现。
在多个实现中,平台1002可接收来自具有一个或多个导航特征的导航控制器1050的控制信号。控制器1050的导航特征可以被用来例如与用户界面1022进行交互。在多个实施例中,导航控制器1050可以是定点装置,该定点装置可以是计算机硬件组件(尤其是人类接口设备),其允许用户向计算机输入空间(例如连续和多维的)数据。诸如图形用户界面(GUI)、电视机和监视器之类的许多***可使用户使用物理手势控制并向计算机或电视机提供数据。
控制器1050的导航特征的移动可通过显示在显示器上的指针、光标、聚焦环或其它可视指示器的移动而复制在显示器(例如显示器1020)上。例如,在软件应用1016的控制下,位于导航控制器1050上的导航特征可以被例如映射到用户界面1022上显示的虚拟导航特征。在多个实施例中,控制器1050可以不是单独的组件,而可被集成到平台1002和/或显示器1020中。然而,本公开不限于这些元件或本文示出或描述的情境。
在多个实现中,驱动器(未示出)可包括使用户能像电视机那样即时地打开和关闭平台1002的技术,例如通过在初始启动之后的按钮(在启用时)的触摸。甚至当平台被“关闭”时,程序逻辑仍可允许平台1002将内容以流方式发送至媒体适配器或其它内容服务装置1030或内容递送装置1040。此外,例如,芯片组1005可包括对于8.1环绕音频和/或高清晰度(7.1)环绕音频的硬件和/或软件支持。驱动器可以包括集成的图形平台的图形驱动器。在各实施例中,图形驱动器可以包括***组件互连(PCI)Express图形卡。
在多个实现中,可集成***1000中示出的组件中的任何一个或多个。例如,可以集成平台1002和内容服务设备1030,或者也可以集成平台1002和内容递送设备1040,或者,例如,也可以集成平台1002、内容服务设备1030,以及内容递送设备1040。在各种实施例中,平台1002和显示器1020可以是集成单元。例如,可以集成显示器1020和内容服务设备1030,或者也可以集成显示器1020和内容递送设备1040。这些示例不旨在限制本公开。
在各种实施例中,***1000可以实现为无线***、有线***或两者的组合。当实现为无线***时,***800可以包括适用于通过无线共享介质进行通信的组件和接口,诸如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等等。无线共享介质的示例可以包括诸如RF频谱之类的无线频谱的某些部分等等。当被实现为有线***时,***1000可包括适合于在有线通信介质上通信的组件和接口,诸如输入/输出(I/O)适配器、将I/O适配器与相应的有线通信介质连接的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可包括,线路、电缆、金属导线、印刷电路板(PCB)、后面板、交换机结构、半导体材料、双绞线、同轴电缆、光纤等等。
平台1002可以建立一个或多个逻辑或物理信道以传递信息。信息可以包括媒体信息和控制信息。媒体信息可以是指表示给用户的内容的任何数据。例如,内容示例可包括来自语音会话、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音谈话的数据可以是,例如,语音信息、静默时段、背景噪声、舒适噪声、音调等等。控制信息可以是指表示用于自动化***的命令、指令或控制字的任何数据。例如,控制信息可以用来通过***路由媒体信息,或指示节点以预先确定的方式处理媒体信息。然而,各实现不限于图10中所示出的或所描述的上下文中的元件。
参考图11,小形状因子设备1100是其中可包含***1000的不同物理样式或形状因子的一个示例。通过该方法,设备1100可被实现为具有无线能力的移动计算设备。移动计算设备可以是指具有处理***和移动电源(诸如,例如,一个或多个电池或太阳能板)的任何设备。
如前所述,移动计算设备的例子可包括个人计算机(PC)、膝上计算机、超薄笔记本电脑、平板计算机、触摸板、便携式计算机、手持式计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视机、智能设备(例如智能电话、智能平板计算机或智能电视机)、移动互联网设备(MID)、发消息设备、数据通信设备等。
移动计算设备的示例还可以包括被配置为由人佩带的计算机,诸如腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带计算机、臂带计算机、鞋计算机、衣服计算机及其他可佩带的计算机。例如,在多个实施例中,移动计算设备可被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。虽然可以利用作为示例实现为智能电话的移动计算设备描述一些实施例,但是,可以理解,其他实施例也可以使用其他无线移动计算设备来实现。在此上下文中,实施例不受限制。
如图11所示,设备1100可包括外壳1102、显示器1104、输入/输出(I/O)设备1106以及天线1108。设备1100还可包括导航特征1112。显示器1104可包括适于移动计算设备的用于显示信息的任何合适的显示单元。I/O设备1106可包括用于向移动计算设备输入信息的任何合适的I/O设备。I/O设备1106的示例可以包括字母数字键盘、数字键区、触摸板、输入键、按钮、开关、往复式开关、麦克风、扬声器、语音识别设备以及软件等等。也可通过话筒(未示出)向设备1100输入信息。这样的信息可通过语音识别装置(未示出)来数字化。在此上下文中,实施例不受限制。
本文描述的设备和过程的各种形式可使用硬件元件、软件元件或两者的组合来实现。硬件元件的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、感应器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、***程序、机器程序、操作***软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。判断一个实施例或实现是否使用硬件元件或软件元件来实现可以根据任意数量的因素而不同,如所希望的计算速率、功率级别、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度,及其他设计或性能约束。
至少一个实施例的一个或多个方面可以通过存储在机器可读介质上的代表性的指令来实现,指令表示处理器内的各种逻辑,指令在由机器读取时使机器制造执行此处所描述的技术的逻辑。被称为“IP核”的这些表示可以被存储在有形的机器可读介质上,并被提供给多个客户或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
尽管已经参考多个实现描述了本文陈述的某些特征,但不打算以限制的含义解释本说明书。对本公开所属技术领域中的技术人员显而易见的本文所述实现的各种修改以及其它实现被认为落在本公开的精神和范围内。
以下示例涉及进一步的实现。
一种用于视频成码的计算机实现的方法包括接收指示在要显示的图像上至少一个对象的位置的图像数据,以及确定形成图像的至少一部分且与对象位置相关的多个宏块中的各个宏块的位置。该方法然后包括由视频编码器至少部分地依据至少一个宏块相对于对象在图像上的位置的位置来调整由宏块中至少一个提供的图像部分的质量。
该方法还可包括确定哪些宏块是不形成对象部分的非对象宏块,并且调整包括调整非对象宏块的图像质量。该调整还可包括至少部分地依据从宏块到相对于对象定义的点的距离来调整对应于该宏块的图像部分的质量。在一个示例中,这可包括至少部分地依据从宏块到对象的中心点和质心中的至少一个的距离来调整图像部分的质量。作为一个方法,该方法包括将多个宏块中的每一个与多个水平中的至少一个相关联,其中每一个水平都可以与离相对于对象定义的点的至少一个不同距离相关联。在一特定示例中,可以提供用于标记非对象宏块的至少两个水平。在其它示例中,至少一个水平可被置于具有对象的外边界的宏块附近,并且至少一个其它水平可以与显示对象的宏块隔开。在一些示例中,该调整包括调整用于减少与宏块相关联的比特数的过滤强度。在其它示例中,调整包括设置用于计算分配给宏块的量子化参数(QP)的缩放因子。作为又一些其它示例,调整质量至少部分地依据从至少一个宏块到图像上的对象组的中心点的距离。同样,在一种形式中,该对象可以是人脸。
作为另一实现,一种用于在计算机上进行视频成码的***包括显示器、通信地耦合到该显示器的至少一个处理器以及通信地耦合到该处理器的至少一个存储器。宏块水平图生成器可以通信地耦合到该处理器,并且可被配置成接收指示在要显示的图像上至少一个对象的位置的图像数据,以及确定形成图像的至少一部分且与对象位置相关的多个宏块中的各个宏块的位置。视频速率控制器可以通信地耦合到该处理器,并且可被配置成至少部分地依据宏块中至少一个相对于对象在图像上的位置的位置来调整由该宏块提供的图像部分的质量。
在某些形式中,宏块水平图生成器确定哪些宏块是不形成对象部分的非对象宏块。视频速率控制器可被配置成调整非对象宏块的图像质量,并且可被配置成至少部分地依据从宏块到相对于对象定义的点的距离来调整对应于该宏块的图像部分的质量。另外,视频速率控制器可被配置成至少部分地依据从宏块到对象的中心点和质心中的至少一个的距离来调整图像部分的质量。宏块水平图生成器还可被配置成将多个宏块中的各个宏块与多个水平中的至少一个相关联,其中每一个水平与离相对于对象定义的点的至少一个不同距离相关联。在其它示例中,宏块水平图生成器可被配置成将多个宏块中的各个宏块与多个水平中的至少一个相关联,其中每一个水平与离相对于对象定义的点的至少一个不同距离相关联。作为一种方法,可以提供用于标记非对象宏块的至少两个水平。作为另一种方法,至少一个水平可被置于具有对象的外边界的宏块附近,并且至少一个其它水平可以与显示对象的宏块隔开。作为又一种方法,视频速率控制器可被配置成至少部分地通过调整用于减少与宏块相关联的比特数的过滤强度来调整图像质量。对于某些实现,视频速率控制器可被配置成至少部分地通过设置用于计算分配给宏块的量子化参数(QP)的缩放因子来调整图像质量。在其它实现中,视频速率控制器可被配置成至少部分地依据从至少一个宏块到图像上的对象组的中心点的距离来调整图像的质量。
对于其它实现,一种其中存储有具有指令的计算机程序的用于视频成码的非瞬态制品,这些指令在被执行时使得计算机访问指示在要显示的图像上至少一个对象的位置的图像数据,确定形成该图像的至少一部分且与对象位置相关的多个宏块中的各个宏块的位置,并且至少部分地依据宏块中至少一个相对于对象在图像上的位置的位置来调整该宏块所提供的图像部分的质量。
在又一替代实施例中,这些指令使得该计算机确定哪些宏块是不形成对象部分的非对象宏块,并且调整包括调整非对象宏块的图像质量,并且其中调整质量包括至少部分地依据从宏块到相对于对象定义的点的距离来调整对应于该宏块的图像部分的质量。调整质量还可包括至少部分地依据从宏块到相对于对象定义的点的距离来调整图像部分的质量。在一种形式中,这包括至少部分地依据从宏块到对象的中心点和质心中的至少一个的距离来调整图像部分的质量。在其它示例中,这些指令使得计算机将多个宏块中的各个宏块与多个水平中的至少一个相关联,其中每一个水平都可以与离相对于对象定义的点的至少一个不同距离相关联。在一种形式中,可以提供用于标记非对象宏块的至少两个水平。在一种形式中,至少一个水平可被置于具有对象的外边界的宏块附近,并且至少一个其它水平可以与显示对象的宏块隔开。同样,在一种形式中,这些指令导致调整用于减少与宏块相关联的比特数的过滤强度。在另一或附加形式中,这些指令导致设置用于计算分配给宏块的量子化参数(QP)的缩放因子。调整质量还可以至少部分地依据从至少一个宏块到图像上的对象组的中心点的距离。作为一种方法,该对象可以是人脸。
在进一步的示例中,至少一个机器可读介质可包括多个指令,这些指令响应于在计算设备上执行而导致计算设备执行根据以上示例中的任何一个示例的方法。
在又一示例中,一种设备可包括用于执行根据以上示例中的任何一个示例的方法的装置。
以上示例可包括特定特征组合。但是,这些上述示例在这方面不受限制,在多个实现中,上述示例可包括仅采用此类特征的子集、采用此类特征的不同次序、采用此类特征的不同组合、和/或采用与明确列出的那些特征相比而言的附加特征。例如,相对于此处的任何示例方法描述的所有特征可相对于任何示例装置、示例***、和/或示例制品来实现,反之亦然。

Claims (23)

1.一种用于视频成码的计算机实现的方法,包括:
接收指示在要显示的图像上至少一个对象的位置的图像数据;
确定形成所述图像的至少一部分且与所述对象的位置相关的多个宏块中的各个宏块的位置,其中确定多个宏块中的各个宏块的位置包括将所述多个宏块中的每一个与多个水平中的至少一个相关联,每个水平表示离相对于所述对象定义的点的距离范围;以及
由视频编码器至少部分地依据宏块中的至少一个相对于所述对象在所述图像上的位置的位置,来调整由所述至少一个宏块提供的图像部分的质量,所述调整包括:
依据所述宏块的水平来调整过滤器的过滤强度,其中对过滤强度的调整被应用到整个宏块且当不同宏块距所述对象距离不同时在不同宏块之间不同;
在提供宏块以变换和量子化所述宏块的数据之前减少与所述宏块相关联的比特数;
依据被用来调整过滤器的过滤强度的所述宏块的所述水平来设置用于计算分配给宏块的量子化参数(QP)的缩放因子。
2.如权利要求1所述的方法,其特征在于,包括确定哪些宏块是不形成所述对象的一部分的非对象宏块,并且其中调整包括调整所述非对象宏块的图像质量。
3.如权利要求1所述的方法,其特征在于,调整包括至少部分地依据从宏块到相对于所述对象定义的点的距离来调整对应于该宏块的图像部分的质量。
4.如权利要求1所述的方法,其特征在于,调整包括至少部分地依据从宏块到所述对象的中心点和质心中的至少一个的距离来调整所述图像部分的质量。
5.如权利要求1所述的方法,其特征在于,包括将所述多个宏块中的各个宏块与多个水平中的至少一个相关联,每一个水平与离相对于所述对象定义的点的至少一个不同距离相关联。
6.如权利要求1所述的方法,其特征在于,每一个水平与离相对于所述对象定义的点的至少一个不同距离相关联,并且其中提供用于标记非对象宏块的至少两个水平。
7.如权利要求1所述的方法,其特征在于,包括将所述多个宏块中的每一个与多个水平中的至少一个相关联,每一个水平与离相对于所述对象定义的点的至少一个不同距离相关联,并且其中至少一个水平被置于具有所述对象的外边界的宏块附近,并且至少一个其它水平与显示所述对象的宏块隔开。
8.如权利要求1所述的方法,其特征在于,调整包括调整用于减少与宏块相关联的比特数的过滤强度。
9.如权利要求1所述的方法,其特征在于,调整质量至少部分地依据从至少一个宏块到所述图像上的对象组的中心点的距离。
10.如权利要求1所述的方法,其特征在于,所述对象是人脸。
11.如权利要求1所述的方法,其特征在于
包括确定哪些宏块是不形成所述对象的一部分的非对象宏块,并且其中调整包括调整所述非对象宏块的图像质量,
其中调整包括至少部分地依据从宏块到相对于所述对象定义的点的距离来调整对应于该宏块的图像部分的质量,
其中调整包括至少部分地依据从宏块到所述对象的中心点和质心中的至少一个的距离来调整所述图像部分的质量,
每一个水平与离相对于所述对象定义的点的至少一个不同距离相关联,
其中提供用于标记非对象宏块的至少两个水平,
其中至少一个水平被置于具有所述对象的外边界的宏块附近,并且至少一个其它水平与显示所述对象的宏块隔开,
其中调整包括调整用于减少与宏块相关联的比特数的过滤强度,
其中调整质量至少部分地依据从至少一个宏块到所述图像上的对象组的中心点的距离,并且
其中所述对象是人脸。
12.一种用于在计算机上进行视频成码的***:
显示器;
通信地耦合到所述显示器的至少一个处理器;
通信地耦合到所述处理器的至少一个存储器;
通信地耦合到所述处理器的宏块水平图生成器,被配置成:
接收指示在要显示的图像上至少一个对象的位置的图像数据,以及
确定形成所述图像的至少一部分且与所述对象的位置相关的多个宏块中的各个宏块的位置,其中确定多个宏块中的各个宏块的位置包括将所述多个宏块中的每一个与多个水平中的至少一个相关联,每个水平表示离相对于所述对象定义的点的距离范围;以及
通信地耦合到所述处理器的视频速率控制器,视频速率控制器被配置成至少部分地依据宏块中的至少一个相对于所述对象在所述图像上的位置的位置来调整由所述至少一个宏块提供的图像部分的质量,所述调整包括:
依据所述宏块的水平来调整过滤器的过滤强度,其中对过滤强度的调整被应用到整个宏块且当不同宏块距所述对象距离不同时在不同宏块之间不同;
在提供宏块以变换和量子化所述宏块的数据之前减少与所述宏块相关联的比特数;
依据被用来调整过滤器的过滤强度的所述宏块的所述水平来设置用于计算分配给宏块的量子化参数(QP)的缩放因子。
13.如权利要求12所述的***,其特征在于,所述宏块水平图生成器被配置成确定哪些宏块是不形成所述对象的一部分的非对象宏块,并且其中所述视频速率控制器被配置成调整所述非对象宏块的图像质量。
14.如权利要求12所述的***,其特征在于,所述视频速率控制器被配置成至少部分地依据从宏块到相对于所述对象定义的点的距离来调整对应于该宏块的图像部分的质量。
15.如权利要求12所述的***,其特征在于,所述视频速率控制器被配置成至少部分地依据从宏块到所述对象的中心点和质心中的至少一个的距离来调整所述图像部分的质量。
16.如权利要求12所述的***,其特征在于,每一个水平与离相对于所述对象定义的点的至少一个不同距离相关联。
17.如权利要求12所述的***,其特征在于,每一个水平与离相对于所述对象定义的点的至少一个不同距离相关联,并且其中提供用于标记非对象宏块的至少两个水平。
18.如权利要求12所述的***,其特征在于,每一个水平与离相对于所述对象定义的点的至少一个不同距离相关联,并且其中至少一个水平被置于具有所述对象的外边界的宏块附近,并且至少一个其它水平与显示所述对象的宏块隔开。
19.如权利要求12所述的***,其特征在于,所述视频速率控制器被配置成至少部分地通过调整用于减少与宏块相关联的比特数的过滤强度来调整所述图像质量。
20.如权利要求12所述的***,其特征在于,所述视频速率控制器被配置成至少部分地依据从至少一个宏块到所述图像上的对象组的中心点的距离来调整所述图像的质量。
21.如权利要求12所述的***,其特征在于,所述宏块水平图生成器确定哪些宏块是不形成所述对象的一部分的非对象宏块,
其中所述视频速率控制器被配置成调整所述非对象宏块的图像质量,
其中所述视频速率控制器被配置成至少部分地依据从宏块到相对于所述对象定义的点的距离来调整对应于该宏块的图像部分的质量,
其中所述视频速率控制器被配置成至少部分地依据从宏块到所述对象的中心点和质心中的至少一个的距离来调整所述图像部分的质量,
其中每一个水平与离相对于所述对象定义的点的至少一个不同距离相关联,
其中所述宏块水平图生成器被配置成将多个宏块中的各个宏块与多个水平中的至少一个相关联,每一个水平与离相对于所述对象定义的点的至少一个不同距离相关联,
其中提供用于标记非对象宏块的至少两个水平,
其中至少一个水平被置于具有所述对象的外边界的宏块附近,并且至少一个其它水平与显示所述对象的宏块隔开,
其中所述视频速率控制器被配置成至少部分地通过调整用于减少与宏块相关联的比特数的过滤强度来调整所述图像质量,
其中所述视频速率控制器被配置成至少部分地依据从至少一个宏块到所述图像上的对象组的中心点的距离来调整所述图像的质量,并且
其中所述对象是人脸。
22.一种用于视频成码的设备,包括:多个装置,分别用于执行如权利要求1-11中的任一项所述的方法中的对应操作步骤。
23.一种存储指令的机器可读存储介质,所述指令当被机器执行时,使所述机器执行如权利要求1-11中任一项所述的方法。
CN201410235369.0A 2013-05-30 2014-05-29 使用感兴趣对象的数据对视频成码的比特率控制 Active CN104219524B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/906,031 US10230950B2 (en) 2013-05-30 2013-05-30 Bit-rate control for video coding using object-of-interest data
US13/906,031 2014-05-30

Publications (2)

Publication Number Publication Date
CN104219524A CN104219524A (zh) 2014-12-17
CN104219524B true CN104219524B (zh) 2018-07-17

Family

ID=50841624

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410235369.0A Active CN104219524B (zh) 2013-05-30 2014-05-29 使用感兴趣对象的数据对视频成码的比特率控制

Country Status (4)

Country Link
US (1) US10230950B2 (zh)
EP (1) EP2809073A1 (zh)
CN (1) CN104219524B (zh)
BR (1) BR102014013046B1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10230950B2 (en) 2013-05-30 2019-03-12 Intel Corporation Bit-rate control for video coding using object-of-interest data
US9510004B2 (en) * 2013-06-12 2016-11-29 Microsoft Technology Licensing, Llc Multi-layered rate control for scalable video coding
US20160219248A1 (en) 2013-08-29 2016-07-28 Vid Scale, Inc. User-adaptive video telephony
US10063886B2 (en) * 2013-10-07 2018-08-28 Vid Scale, Inc. Combined scalability processing for multi-layer video coding
US9471995B2 (en) * 2014-01-14 2016-10-18 Vixs Systems Inc. Codec engine with inline image processing
TWI508531B (zh) * 2014-06-04 2015-11-11 Hon Hai Prec Ind Co Ltd 視訊編碼裝置及方法
CN105303514B (zh) * 2014-06-17 2019-11-05 腾讯科技(深圳)有限公司 图像处理方法和装置
GB2544476B (en) 2015-11-16 2018-08-08 Displaylink Uk Ltd Data compression method and apparatus
US10009622B1 (en) * 2015-12-15 2018-06-26 Google Llc Video coding with degradation of residuals
CN105979304A (zh) * 2016-05-31 2016-09-28 北京奇艺世纪科技有限公司 一种视频推送方法及装置
US10499065B2 (en) 2016-07-21 2019-12-03 Samsung Display Co. Ltd. System and method for sending video data over a wireless channel
CN109792546B (zh) * 2016-09-30 2022-01-04 英国电讯有限公司 从服务器向客户端设备传送视频内容的方法
EP3301921A1 (en) * 2016-09-30 2018-04-04 Thomson Licensing Method and apparatus for calculating quantization parameters to encode and decode an immersive video
CN109792545B (zh) 2016-09-30 2021-12-07 英国电讯有限公司 从服务器向客户端装置传送视频内容的方法
US10542262B2 (en) 2016-11-15 2020-01-21 City University Of Hong Kong Systems and methods for rate control in video coding using joint machine learning and game theory
JP6660868B2 (ja) * 2016-11-15 2020-03-11 Kddi株式会社 動画像符号化装置及び動画像復号装置並びにプログラム
US10504259B2 (en) * 2017-04-24 2019-12-10 Intel Corporation Separately processing regions or objects or interest from a render engine to a display engine or a display panel
CN111034184B (zh) * 2017-08-29 2022-09-02 连株式会社 提高视频质量的视频通话方法及计算机可读记录介质
CN108924464B (zh) * 2018-07-10 2021-06-08 腾讯科技(深圳)有限公司 视频文件的生成方法、装置及存储介质
KR20210072344A (ko) 2019-12-09 2021-06-17 삼성전자주식회사 전자장치 및 그 제어방법
GB2623907A (en) * 2020-05-12 2024-05-01 V Nova Int Ltd Low latency communication system and method of operation
US11425412B1 (en) * 2020-11-10 2022-08-23 Amazon Technologies, Inc. Motion cues for video encoding
CN113938684B (zh) * 2021-09-26 2023-04-21 中国科学院计算技术研究所 一种轻量级端云协同的图像编码传输方法及***

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1420690A (zh) * 2001-11-17 2003-05-28 Lg电子株式会社 基于对象的比特率控制方法和***

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6208693B1 (en) * 1997-02-14 2001-03-27 At&T Corp Chroma-key for efficient and low complexity shape representation of coded arbitrary video objects
US6801665B1 (en) 1998-09-15 2004-10-05 University Of Maryland Method and apparatus for compressing and decompressing images
US6256423B1 (en) 1998-09-18 2001-07-03 Sarnoff Corporation Intra-frame quantizer selection for video compression
JP2004343451A (ja) 2003-05-15 2004-12-02 Matsushita Electric Ind Co Ltd 動画像復号化方法および動画像復号化装置
US9578345B2 (en) 2005-03-31 2017-02-21 Euclid Discoveries, Llc Model-based video encoding and decoding
GB0611969D0 (en) * 2006-06-16 2006-07-26 Robert Gordon The University Video content prioritisation
US9571856B2 (en) * 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
US8325796B2 (en) * 2008-09-11 2012-12-04 Google Inc. System and method for video coding using adaptive segmentation
JP2011223302A (ja) * 2010-04-09 2011-11-04 Sony Corp 画像処理装置と画像処理方法
US8755441B2 (en) 2010-05-10 2014-06-17 Canon Kabushiki Kaisha Region of interest-based video transfer
US10230950B2 (en) 2013-05-30 2019-03-12 Intel Corporation Bit-rate control for video coding using object-of-interest data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1420690A (zh) * 2001-11-17 2003-05-28 Lg电子株式会社 基于对象的比特率控制方法和***

Also Published As

Publication number Publication date
BR102014013046A2 (pt) 2015-12-29
CN104219524A (zh) 2014-12-17
US10230950B2 (en) 2019-03-12
US20140355671A1 (en) 2014-12-04
BR102014013046B1 (pt) 2023-02-28
EP2809073A1 (en) 2014-12-03

Similar Documents

Publication Publication Date Title
CN104219524B (zh) 使用感兴趣对象的数据对视频成码的比特率控制
Duan et al. Video coding for machines: A paradigm of collaborative compression and intelligent analytics
CN104885467B (zh) 用于下一代视频编码的内容自适应参数变换
CN104854866B (zh) 下一代视频的内容自适应、特性补偿预测
CN103918265B (zh) 跨通道残余预测
CN104541505B (zh) 层间内部模式预测方法、设备及装置
CN106170979A (zh) 恒定质量视频编码
CN110214447A (zh) 用于360视频的解块滤波
CN104053005B (zh) 使用分级相平面相关性和块匹配的运动估计
CN104584552B (zh) Svc中重复使用层间sao参数的方法、设备、***及机器可读存储介质
CN104168479B (zh) 用于视频成码的切片级比特率控制
CN104169971A (zh) 使用非线性缩放和自适应源块大小的分层运动估计
CN104756498B (zh) 跨层运动向量预测
CN109155856A (zh) 用于视频编解码的利用近邻块模式的运动估计的方法和***
CN107534771A (zh) 用于基于复杂性量度的显示流压缩dsc的量化参数qp计算
CN104521233A (zh) 运动和质量适应的回滚帧内刷新
CN111800629A (zh) 视频解码方法、编码方法以及视频解码器和编码器
CN107925777A (zh) 用于视频译码的帧重新排序的方法和***
WO2022063265A1 (zh) 帧间预测方法及装置
CN104798373A (zh) 包括在多个独立编码流之间的共享运动估计的视频编码
TWI559749B (zh) 層間移動資料繼承之技術
CN103167286B (zh) 用于运动估计的详尽的子宏块形状候选保存和恢复协议
CN104322068A (zh) 跨层跨通道残差预测
CN104322062B (zh) 跨层跨通道样本预测
CN103975594B (zh) 用于残差预测的运动估计方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant