CN107005699B - 采用成本估计的编码器分片大小控制 - Google Patents

采用成本估计的编码器分片大小控制 Download PDF

Info

Publication number
CN107005699B
CN107005699B CN201580069058.4A CN201580069058A CN107005699B CN 107005699 B CN107005699 B CN 107005699B CN 201580069058 A CN201580069058 A CN 201580069058A CN 107005699 B CN107005699 B CN 107005699B
Authority
CN
China
Prior art keywords
slices
size
slice
frame
macroblock
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
CN201580069058.4A
Other languages
English (en)
Other versions
CN107005699A (zh
Inventor
O.戈利克瓦
P.弗罗洛夫
A.法德夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN107005699A publication Critical patent/CN107005699A/zh
Application granted granted Critical
Publication of CN107005699B publication Critical patent/CN107005699B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

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

Abstract

图形处理器的视频运动估计(VME)单元在帧编码之前执行快速预处理,以便基于宏块的权重在分片之中分布宏块。预处理阶段的结果基于编码阶段迭代地被改进。在一些实施例中,这允许具有最小视频质量降低的实时分片大小限制的编码。能够采用给予宏块权重(例如实际编码之后的宏块大小)的软件或硬件编码步骤来替代硬件预处理。

Description

采用成本估计的编码器分片大小控制
背景技术
这涉及包括视频会议的通过网络的视频分发。视频传输使用相等大小的数据分组,每个分组包含完整视频可解码单元。现代压缩格式的最小可解码单元是分片(slice)。分片是帧的空间不同区域,其与同一帧的任何其他区域被分开编码。但是硬件编码器通常由于性能原因而以帧的粒度进行操作。
如果硬件编码器没有被设计成支持分片大小限制,则不可能将帧分解为分片,因为分片中的宏块(MB)分布对帧提前被预定义。没有分片大小控制(当硬件编码器对于软件用户是黑盒时),一些压缩视频分片可超过分片大小界限。
编码分片大小必须不超过所定义水平,但是将帧分裂成分片降低编码效率,并且对相同视觉质量要求更高位率。这个视觉质量可通过对具有不同分片分割的帧迭代地进行重新编码直到达到所需分片大小来取得。
附图说明
针对下列附图来描述一些实施例:
图1是一个实施例的框图;
图2是一个实施例的流程图;
图3是一个实施例的系统绘图;以及
图4是一个实施例的前视图。
具体实施方式
参照图1,绘出按照H.264/AVC标准的示范编码算法。参见从ITU电信标准化部门(ITU-T)可得到的ISO/IEC国际标准14496-10(MPEG-4部分10 2/14)高级视频译码(Advanced Video Coding)。输入视频帧100被分割为块102。每个块使用相邻重构像素经历帧内预测104。来自帧内预测的预测残余经历变换106,以便对数据进行解相关。上下文自适应变长译码(CAVLC)可被采用以对扫描变换系数进行熵编码108。备选地,可通过上下文自适应二进制算术译码(CABAC)对变换系数进行译码。要减轻块效应,自适应环内去块滤波器110可应用于来自反馈回路的重构。视频运动估计单元112确定图片100中的移动对象的运动向量的位置。运动数据则由运动补偿阶段114来使用。频率变换块106将宏块变换到空间频域中。然后量化频域数据。量化考虑当前宏块的数据值的范围。逆频率变换块116把来自逆量化阶段的频域数据变换回空间域。量化数据由熵译码块108来编码,熵译码块108采用更少位对更频繁使用的符号进行编码以及采用更多位对不太频繁使用的符号进行编码。
图形处理器的视频运动估计(VME)单元在帧编码之前执行快速预处理,以便基于宏块的权重在分片之中分布宏块。预处理阶段的结果基于编码阶段迭代地被改进。在一些实施例中,这允许具有最小视频质量降低的实时分片大小限制的编码。能够采用给予宏块权重(例如实际编码之后的宏块大小)的软件或硬件编码步骤来替代硬件预处理。
应用估计最大迭代次数,以保证实时编码。例如,如果对一帧进行编码花费4 ms,并且具有解码的一帧成本估计(或VME)花费少于2 ms,则不超过7次重新译码迭代能够被使用并且仍然取得实时编码。
应用能够使用如图2所示的阶段对帧重新译码,直到所有编码帧大小都小于所定义水平。
应用使用至少3个阶段:“试运行”、“重新译码0”和“跳帧”,以提供分片大小限制。增加阶段数量能够改进质量,但是降低性能。
应用能够具有多于六个阶段。在那种情况下,一些阶段能够重复。例如:“试运行”、“重新译码0”、“重新译码1”、“强制模式0”、“强制模式0”、“跳帧”。
参照图2,基于宏块统计来估计分片大小的预处理10能够采用硬件(VME)单元、硬件PAK单元或者通过软件编码(只列举三个示例)来实现。宏块统计可包括宏块复杂度量度或者在帧上的成本分布加上来自先前编码帧的相同数据。可使用成本函数(例如绝对差之和(SAD)、平方差之和(SSD)、率失真(RD)成本、绝对变换差之和(SATD)、哈尔成本函数(用于VME中)或者编码宏块大小)来估计宏块复杂度。
作为备选方案,能够对帧进行编码和解码。译码宏块长度能够被用作宏块成本。
预处理将具有所需译码参数的原始和参考帧看作是对相等大小分片的输入和输出估计宏块指配。参数可以是编码器初始化参数,例如位率、帧率或者图片组结构,只列举几个示例。帧中的分片数量(numSlices)从先前帧统计(例如来自前一帧的宏块大小和宏块成本)来预测。例如,分片的初始数量可设置为与前一帧中相同。在一个实施例中,在将实时编码用于预处理时:
1) 采用各分片中的相等数量的宏块对帧进行编码。
2) 通过使用解码器
Figure DEST_PATH_IMAGE001
来计算分片大小和宏块大小。
在将VME单元调用用于预处理阶段时:
a. 采用各分片中的相等数量的宏块来调用“VME”。
b.将宏块大小设置成等于VME宏块失真或成本。成本产生于VME功能运行。分片大小则设置成等于分片中的所有块的宏块大小之和:
Figure DEST_PATH_IMAGE002
Figure DEST_PATH_IMAGE003
3) 按照下列条件制作相等大小分片(这表示将宏块推送到分片,直到分片不超过平均分片大小):
Figure DEST_PATH_IMAGE005
其中avg是
Figure DEST_PATH_IMAGE006
因此,分片中的宏块成本之和则等于平均成本。
4)采用这个分片分割对帧进行编码,并且计算实际分片大小
Figure DEST_PATH_IMAGE007
5) 如果任何分片大小超过所定义水平,或者如果分片过短(菱形框12的“否”路径),则转到下一阶段。短分片的标准:
Figure DEST_PATH_IMAGE008
否则(菱形框12的“是”路径)在15退出。
重新译码0(方框14)预计在分片之间重新分布宏块,以形成具有相等总计宏块权重的分片(如下面在(3)所示)。宏块的权重控制其对图像的主观外观的重要性。它从前一阶段获得分片大小,并且按分片分布制作新宏块:
1) 根据需要/用户设置来设置MaxSliceSize并且如算法所定义来设置MaxSliceSize的MaxSliceWeight=90.0%,以降低重新译码的概率。确定权重以便在速度(在迭代次数方面)与质量(在分片大小方面)之间进行平衡。
2) 计算各分片的百分比权重:
Figure DEST_PATH_IMAGE009
3) 计算各宏块的百分比权重:
Figure DEST_PATH_IMAGE010
4) 按照下列条件制作相等加权的分片(这表示将宏块推送到分片,直到它不超过MaxSliceWeight):
Figure DEST_PATH_IMAGE011
5) 对帧进行编码并且计算新分片大小。如果任何分片的大小超过所定义水平(菱形框16的“否”路径),则转到下一阶段。否则(菱形框16的“是”路径)转到退出15。
重新译码1(方框18)修正仍然超过所需界限的分片的大小(“大分片”):
1) 在“重新译码0”之后,分片的大多数满足最大大小限制。“大分片”使用宏块权重被划分为两个部分。
Figure DEST_PATH_IMAGE012
2) 对帧进行编码并且计算分片大小。如果任何分片大小超过所定义水平(菱形框20的“否”路径),则转到下一阶段。否则(菱形框20的“是”路径)转到退出15。
如果仍然存在“大分片”而没有进一步划分它们的带宽或可能性,则使用强制模式0(方框22)。与重新译码1模式相结合来增加量化参数(QP)(其定义量化水平,量化水平反过来影响每帧的视觉质量和位率),以减小这类分片的大小。如果所有大小都“正确”(菱形框24的“是”路径),则转到退出15。否则(菱形框24的“否”路径)进入强制模式1。
强制模式1(方框26)与具有QP增加的重新译码0阶段相似。在几个“强制模式0”调用之后,特别是当分片的数量受到限制时,能够使用这种模式。它在不属于“大分片”的分片中重新排列宏块(通过“强制模式”中的量化增加所减少),以减少“大分片”中的宏块数量。如果所有大小都“正确”(菱形框28的“是”路径),则转到退出15。否则(菱形框28的“否”路径)进入跳帧(方框30)。
在仍然没有取得所需分片大小的情况下,能够在忽略模式中使用跳帧(方框30)。如果硬件支持,则还能够忽略分片。这种模式保证满足分片大小限制。编码跳帧花费小于MaxSliceSize的位数(接近零),因为MaxSliceSize必须具有合理值(例如不小于100字节)。
在一些实施例中,图2所示序列可通过软件、固件和/或硬件来实现。在软件和固件实施例中,它可通过一个或多个非暂时计算机可读介质(例如磁、光或者半导体存储装置)中存储的计算机运行指令来实现。在一些实施例中,该序列可通过图形处理器中或者硬件(其作为图形处理器的部分)中存储的指令来实现。例如,指令或硬件可以是图形处理器的视频运动估计单元的部分,以及具体针对图1,在一些实施例中可以是运动估计块112的部分。
图3图示系统700的实施例。在实施例中,系统700可以是媒体系统,但是系统700并不局限于这个上下文。例如,系统700可结合到个人计算机(PC)、膝上型计算机、超膝上型计算机、平板、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能装置(例如智能电话、智能平板或者智能电视机)、移动因特网装置(MID)、消息传递装置、数据通信装置等。
在实施例中,系统700包括耦合到显示器720的平台702。平台702可从诸如(一个或多个)内容服务装置730或者(一个或多个)内容递送装置740之类的内容装置或者其他类似内容源来接收内容。包括一个或多个导航特征的导航控制器750可用来与例如平台702和/或显示器720进行交互。下面更详细描述这些组件的每个。
在实施例中,平台702可包括芯片组705、处理器710、存储器712、存储装置714、图形子系统715、应用716和/或无线电单元718的任何组合。芯片组705可提供在处理器710、存储器712、存储装置714、图形子系统715、应用716和/或无线电单元718之中的相互通信。例如,芯片组705可包括存储适配器(未绘出),其能够提供与存储装置714的相互通信。
处理器710可被实现为复杂指令集计算机(CISC)或简化指令集计算机(RISC)处理器、x86指令集兼容处理器、多核心或者任何其他微处理器或中央处理器(CPU)。在实施例中,处理器710可包括(一个或多个)双核处理器、(一个或多个)双核移动处理器等。处理器可连同存储器712来实现图2的序列。
存储器712可被实现为易失性存储器装置,非限制性地例如随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
存储装置714可被实现为非易失性存储装置,非限制性地例如磁盘驱动器、光盘驱动器、磁带驱动器、内部存储装置、附连存储装置、闪速存储器、电池备用SDRAM(同步DRAM)和/或网络可访问存储装置。在实施例中,例如,存储装置714可包括在包含多个硬盘驱动器时增加贵重数字介质的存储性能增强保护的技术。
图形子系统715可执行诸如静止或视频之类的图像的处理供显示。例如,图形子系统715可以是图形处理单元(GPU)或者视觉处理单元(VPU)。模拟或数字接口可用来在通信上耦合图形子系统715和显示器720。例如,接口可以是高清晰度多媒体接口、DisplayPort、无线HDMI和/或符合无线HD的技术中的任一个。图形子系统715可集成到处理器710或芯片组705中。图形子系统715可能是通信上耦合到芯片组705的独立卡。
本文所述的图形和/或视频处理技术可通过各种硬件架构来实现。例如,图形和/或视频功能性可集成在芯片组中。备选地,可使用分立图形和/或视频处理器。作为又一个实施例,图形和/或视频功能可通过包括多核处理器的通用处理器来实现。在另一实施例中,功能可在消费者电子装置中实现。
无线电单元718可包括一个或多个无线电单元,其能够使用各种适合的无线通信技术来传输和接收信号。这类技术可涉及跨一个或多个无线网络的通信。示范无线网络包括(但不限于)无线局域网(WLAN)、无线个人区域网络(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在跨这类网络的通信中,无线电单元718可按照任何版本的一个或多个适用标准进行操作。
在实施例中,显示器720可包括任何电视机类型监视器或显示器。显示器720可包括例如计算机显示屏幕、触摸屏显示器、视频监视器、类似电视机的装置和/或电视机。显示器720可以是数字和/或模拟的。在实施例中,显示器720可以是全息显示器。另外,显示器720可以是可接收视觉投影的透明表面。这类投影可传送各种形式的信息、图像和/或对象。例如,这类投影可以是移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用716的控制下,平台702可在显示器720上显示用户界面722。
在实施例中,(一个或多个)内容服务装置730可由任何国家、国际和/或单独服务来托管,并且因而是平台702经由例如因特网可访问的。(一个或多个)内容服务装置730可耦合到平台702和/或显示器720。显示器720和/或(一个或多个)内容服务装置730可耦合到网络760,以便向/从网络760传递(例如发送和/或接收)媒体信息。(一个或多个)内容递送装置740还可耦合到平台702和/或显示器720。
在实施例中,(一个或多个)内容服务装置730可包括有线电视盒、个人计算机、网络、电话、因特网使能装置或者能够递送数字信息和/或内容的用具以及能够在内容提供商与平台702和/或显示器720之间、经由网络760或者直接地单向或双向传递内容的任何其他类似装置。将会理解,可经由网络760向/从系统700中的组件的任一个和内容提供商单向和/或双向传递内容。内容的示例可包括任何媒体信息,其中包括例如视频、音乐、医疗和游戏信息等。
(一个或多个)内容服务装置730接收内容,例如包括媒体信息的有线电视节目、数字信息和/或其他内容。内容提供商的示例可包括任何有线或卫星电视或无线电或者因特网内容提供商。所提供的示例并不是意在限制可适用实施例。
在实施例中,平台702可从具有一个或多个导航特征的导航控制器750接收控制信号。例如,控制器750的导航特征可用来与用户界面722进行交互。在实施例中,导航控制器750可以是指针装置,其可以是允许用户将空间(例如连续并且多维的)数据输入计算机中的计算机硬件组件(特别是人性化界面装置)。诸如图形用户界面(GUI)之类的许多系统以及电视机和监视器允许用户使用形体姿态来控制并且将数据提供给计算机或电视机。
通过显示器上显示的指针、光标、聚焦环或者其他视觉指示符的移动,可在显示器(例如显示器720)上仿效控制器750的导航特征的移动。例如,在软件应用716的控制下,位于导航控制器750上的导航特征可被映射到例如用户界面722上显示的虚拟导航特征。在实施例中,控制器750可以不是独立组件,而是集成到平台702和/或显示器720中。但是,实施例并不局限于本文所示或所述的元件或上下文。
在实施例中,驱动器(未示出)可包括使用户能够例如通过在初始启动之后触摸按钮(在被启用时)来立即接通和关断平台702、例如电视机的技术。程序逻辑可允许平台702在平台“关断”时,将内容流播到媒体适配器或者其他(一个或多个)内容服务装置730或者(一个或多个)内容递送装置740。另外,例如,芯片组705可包括对5.1环绕声音频和/或高清晰度7.1环绕声音频的硬件和/或软件支持。驱动器可包括集成图形平台的图形驱动器。在实施例中,图形驱动器可包括外设组件互连(PCI)高速(Express)图形卡。
在各个实施例中,可集成系统700中所示组件的任一个或多个。例如,可集成平台702和(一个或多个)内容服务装置730,或者可集成平台702和(一个或多个)内容递送装置740,或者例如可集成平台702、(一个或多个)内容服务装置730和(一个或多个)内容递送装置740。在各个实施例中,平台702和显示器720可以是集成单元。例如,可集成显示器720和(一个或多个)内容服务装置730,或者可集成显示器720和(一个或多个)内容递送装置740。这些示例并不是意在进行范围限制。
在各个实施例中,系统700被实现为无线系统、有线系统或者两者的组合。当被实现为无线系统时,系统700可包括适合于通过无线共享介质进行通信的组件和接口(例如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等)。无线共享介质的一个示例包括无线谱的部分,例如RF谱等。当被实现为有线系统时,系统700可包括适合于通过有线通信介质进行通信的组件和接口,例如输入/输出(I/O)适配器、将I/O适配器与对应有线通信介质连接的物理连接器、网络接口卡(NIC)、磁盘控制器、视频控制器、音频控制器等。有线通信介质的示例可包括电线、电缆、金属引线、印刷电路板(PCB)、底板、交换结构、半导体材料、双绞线、同轴电缆、光纤等。
平台702可建立一个或多个逻辑或物理信道以传递信息。信息可包括媒体信息和控制信息。媒体信息可指表示预计送往用户的内容的任何数据。内容的示例可包括例如来自语音会话的数据、视频会议、流播视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等。来自语音会话的数据可以是例如话音信息、静默期间、背景噪声、舒适噪声、信号音等。控制信息可指表示预计用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可用于路由媒体信息通过系统,或者指示节点以预定方式处理媒体信息。但是,实施例并不局限于图3所示或所述的元件或上下文。
如上所述,系统700可按照变化物理样式或形状因数来实施。图4图示其中可实施系统700的小形状因数装置800的实施例。在实施例中,例如,装置800可被实现为具有无线能力的移动计算装置。例如,移动计算装置可指具有处理系统和移动电源或电力供应(例如一个或多个电池)的任何装置。
如图4所示,装置800可包括壳体802、显示器804和810、输入/输出(I/O)装置806以及天线808。装置800还可包括导航特征812。显示器804可包括用于显示信息、适于移动计算装置的任何适合的显示单元。I/O装置806可包括用于将信息输入移动计算装置中的任何适合的I/O装置。I/O装置806的示例可包括字母数字键盘、数字键盘、触摸板、输入按键、按钮、开关、摇臂开关、话筒、扬声器、语音识别装置和软件等。信息也可通过话筒的方式输入到装置800中。这种信息可由语音识别装置来数字化。实施例并不局限于这个上下文。
如上所述,移动计算装置的示例可包括个人计算机(PC)、膝上型计算机、超膝上型计算机、平板、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能装置(例如智能电话、智能平板或者智能电视机)、移动因特网装置(MID)、消息传递装置、数据通信装置等。
移动计算装置的示例还可包括被安排成供人佩戴的计算机,例如手腕计算机、手指计算机、指环计算机、眼镜计算机、皮带夹计算机、臂章计算机、靴式计算机、服饰计算机和其他可佩戴计算机。在实施例中,例如,移动计算装置可被实现为智能电话,其能够运行计算机应用以及进行语音通信和/或数据通信。虽然作为举例可采用被实现为智能电话的移动计算装置来描述一些实施例,但是可理解,其他实施例也可使用其他无线移动计算装置来实现。实施例并不局限于这个上下文。
下列条款和/或示例涉及另外的实施例:
一个示例实施例可以是计算机实现的方法,其包括:基于宏块统计来估计分片大小;将宏块指配给相等大小分片,直到各分片不超过预先认定的大小;在分片之间重新分布宏块以减小分片大小;以及如果分片大小仍然大于预定义大小,则插入跳帧。该方法还可包括使用来自先前帧的统计来预测帧的分片数量。该方法还可包括通过将仍然超过所述预定义大小的分片划分为部分来修正所述分片的大小。该方法还可包括基于宏块大小、宏块大小之和以及分片权重来计算各宏块的百分比权重。该方法还可包括通过增加量化参数来减小分片大小。该方法还可包括基于所增加的量化参数来重新排列对分片的宏块指配。该方法还可包括迭代地减小分片大小。该方法还可包括估计保证实时编码的迭代次数。该方法还可包括确定分片是否过短。该方法还可包括使分片中的宏块权重之和小于最大分片权重。
另一个示例可以是存储指令的一个或多个非暂时计算机可读介质,指令供处理器运行以执行序列,所述序列包括:基于宏块统计来估计分片大小;将宏块指配给相等大小分片,直到各分片不超过预先认定的大小;在分片之间重新分布宏块以减小分片大小;以及如果分片大小仍然大于预定义大小,则插入跳帧。该介质可包括所述序列,所述序列包括:使用来自先前帧的统计来预测帧的分片数量。该介质可包括所述序列,所述序列包括:通过将仍然超过所述预定义大小的分片划分为部分来修正所述分片的大小。该介质可包括所述序列,所述序列包括:基于宏块大小、宏块大小之和以及分片权重来计算各宏块的百分比权重。该介质可包括所述序列,所述序列包括:通过增加量化参数来减小分片大小。该介质可包括所述序列,所述序列包括:基于所增加的量化参数来重新排列对分片的宏块指配。该介质可包括包含迭代地减小分片大小的所述序列。该介质可包括所述序列,所述序列包括:估计保证实时编码的迭代次数。该介质可包括包含确定分片是否过短的所述序列。该介质可包括所述序列,所述序列包括:使分片中的宏块权重之和小于最大分片权重。
在另一个示例实施例中可以是一种设备,其包括:处理器,所述处理器基于宏块统计来估计分片大小,将宏块指配给相等大小分片直到各分片不超过预先认定的大小,在分片之间重新分布宏块以减小分片大小,并且如果分片大小仍然大于预定义大小则插入跳帧;以及存储装置,耦合到所述处理器。该设备可包括所述处理器,所述处理器使用来自先前帧的统计来预测帧的分片数量。该设备可包括所述处理器,所述处理器通过将仍然超过所述预定义大小的分片划分为部分来修正所述分片的大小。该设备可包括所述处理器,所述处理器基于宏块大小、宏块大小之和以及分片权重来计算各宏块的百分比权重。该设备可包括所述处理器,所述处理器通过增加量化参数来减小分片大小。该设备可包括所述处理器,所述处理器基于所增加的量化参数来重新排列对分片的宏块指配。该设备可包括迭代地减小分片大小的所述处理器。该设备可包括通信上耦合到电路的显示器。该设备可包括耦合到电路的电池。该设备可包括固件以及更新所述固件的模块。
本文所述的图形处理技术可通过各种硬件架构来实现。例如,图形功能性可集成在芯片组中。备选地,可使用分立图形处理器。作为又一个实施例,图形功能可通过包括多核处理器的通用处理器来实现。
本说明书中通篇提到“一个实施例”或“一实施例”表示结合该实施例所述的具体特征、结构或特性被包含在本公开所包含的至少一个实现中。因此,词语“一个实施例”或“在一实施例中”的出现不一定表示同一个实施例。此外,具体特征、结构或特性可通过与所示具体实施例不同的其他适合的形式来创立,并且所有这类形式均可被包含在本申请的权利要求书中。
虽然描述了有限数量的实施例,但是本领域的技术人员将会从中知道大量修改和变更。预计所附权利要求书涵盖落入本公开的真实精神和范围之内的所有这类修改和变更。

Claims (29)

1.一种用于编码器分片大小控制的计算机实现的方法,包括:
在发起帧的编码之前:
确定所述帧中的多个分片;
将相等数量的宏块指配给所述多个分片中的每个分片;
使用硬件运动估计单元来确定指配给所述多个分片的所述宏块的宏块大小,其中每个宏块大小基于由所述硬件运动估计单元所生成的宏块成本;
基于所确定的宏块大小,在所述多个分片之间重新分布所述宏块,以平衡所述多个分片的分片大小,其中每个分片大小是指配给所述多个分片中的一个分片的所述宏块的宏块大小之和;以及
在所述多个分片之间重新分布所述宏块之后,基于所述多个分片的所重新分布的宏块来编码所述帧,以获得第一编码帧。
2.如权利要求1所述的方法,其中确定所述帧中的多个分片包括使用来自先前帧的统计来预测所述帧的分片总数量。
3.如权利要求1所述的方法,包括确定所述第一编码帧中的所述多个分片的实际大小。
4.如权利要求3所述的方法,包括:
确定所述第一编码帧中是否有任何分片具有超过定义分片大小的实际大小;以及
响应于确定所述第一编码帧中的至少一个分片具有超过所述定义分片大小的实际大小,基于第一减小量来减小所述多个分片的所述分片大小。
5.如权利要求4所述的方法,包括通过增加量化参数来减小所述分片大小。
6.如权利要求5所述的方法,包括基于所增加的量化参数来重新排列对所述多个分片的宏块指配。
7.如权利要求4所述的方法,包括在减小所述分片大小之后,编码所述帧以获得第二编码帧。
8.如权利要求7所述的方法,包括确定所述第二编码帧中的多个分片的实际大小。
9.如权利要求8所述的方法,包括:
确定所述第二编码帧中是否有任何分片具有超过所述定义分片大小的实际大小;以及
响应于确定所述第二编码帧中的至少一个分片具有超过所述定义分片大小的实际大小,基于第二减小量来减小所述多个分片的所述分片大小,其中所述第二减小量大于所述第一减小量。
10.一种用于编码器分片大小控制的设备,包括:
处理器,所述处理器:
在发起帧的编码之前:
确定所述帧中的多个分片;
将相等数量的宏块指配给所述多个分片中的每个分片;
使用硬件运动估计单元来确定指配给所述多个分片的所述宏块的宏块大小,其中每个宏块大小基于由所述硬件运动估计单元所生成的宏块成本;
基于所确定的宏块大小,在所述多个分片之间重新分布所述宏块,以平衡所述多个分片的分片大小,其中每个分片大小是指配给所述多个分片中的一个分片的所述宏块的宏块大小之和;以及
在所述多个分片之间重新分布所述宏块之后,基于所述多个分片的所重新分布的宏块来编码所述帧,以获得第一编码帧;以及
存储装置,所述存储装置耦合到所述处理器。
11.如权利要求10所述的设备,所述处理器使用来自先前帧的统计来预测所述帧的分片数量。
12.如权利要求10所述的设备,所述处理器确定所述第一编码帧中的所述多个分片的实际大小。
13.如权利要求12所述的设备,所述处理器:
确定所述第一编码帧中是否有任何分片具有超过定义分片大小的实际大小;以及
响应于确定所述第一编码帧中的至少一个分片具有超过所述定义分片大小的实际大小,基于第一减小量来减小所述多个分片的所述分片大小。
14.如权利要求13所述的设备,所述处理器通过增加量化参数来减小所述分片大小。
15.如权利要求14所述的设备,所述处理器基于所增加的量化参数来重新排列对所述多个分片的宏块指配。
16.如权利要求13所述的设备,所述处理器:
在减小所述分片大小之后,编码所述帧以获得第二编码帧;以及
响应于确定所述第二编码帧中的至少一个分片具有超过所述定义分片大小的实际大小,基于第二减小量来减小所述多个分片的所述分片大小,其中所述第二减小量大于所述第一减小量。
17.如权利要求10所述的设备,包括通信上耦合到电路的显示器。
18.如权利要求10所述的设备,包括耦合到电路的电池。
19.如权利要求10所述的设备,包括固件和更新所述固件的模块。
20.一种计算机可读介质,其上存储有指令,所述指令在被运行时,使得计算设备执行根据权利要求1-9中的任一项所述的方法。
21.一种用于编码器分片大小控制的设备,包括:
用于在发起帧的编码之前确定所述帧中的多个分片的部件;
用于在发起帧的编码之前将相等数量的宏块指配给所述多个分片中的每个分片的部件;
用于在发起帧的编码之前确定指配给所述多个分片的所述宏块的宏块大小的部件,其中每个宏块大小基于宏块成本;
用于在发起帧的编码之前,基于所确定的宏块大小,在所述多个分片之间重新分布所述宏块,以平衡所述多个分片的分片大小的部件,其中每个分片大小是指配给所述多个分片中的一个分片的所述宏块的宏块大小之和;以及
用于在发起帧的编码之前,在所述多个分片之间重新分布所述宏块之后,基于所述多个分片的所重新分布的宏块来编码所述帧,以获得第一编码帧的部件。
22.如权利要求21所述的设备,其中用于确定所述帧中的多个分片的部件包括用于使用来自先前帧的统计来预测所述帧的分片总数量的部件。
23.如权利要求21所述的设备,包括用于确定所述第一编码帧中的所述多个分片的实际大小的部件。
24.如权利要求23所述的设备,包括:
用于确定所述第一编码帧中是否有任何分片具有超过定义分片大小的实际大小的部件;以及
用于响应于确定所述第一编码帧中的至少一个分片具有超过所述定义分片大小的实际大小,基于第一减小量来减小所述多个分片的所述分片大小的部件。
25.如权利要求24所述的设备,包括用于通过增加量化参数来减小所述分片大小的部件。
26.如权利要求25所述的设备,包括用于基于所增加的量化参数来重新排列对所述多个分片的宏块指配的部件。
27.如权利要求24所述的设备,包括用于在减小所述分片大小之后,编码所述帧以获得第二编码帧的部件。
28.如权利要求27所述的设备,包括用于确定所述第二编码帧中的多个分片的实际大小的部件。
29.如权利要求28所述的设备,包括:
用于确定所述第二编码帧中是否有任何分片具有超过所述定义分片大小的实际大小的部件;以及
用于响应于确定所述第二编码帧中的至少一个分片具有超过所述定义分片大小的实际大小,基于第二减小量来减小所述多个分片的所述分片大小的部件,其中所述第二减小量大于所述第一减小量。
CN201580069058.4A 2015-01-16 2015-01-16 采用成本估计的编码器分片大小控制 Active CN107005699B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2015/000225 WO2016113585A1 (en) 2015-01-16 2015-01-16 Encoder slice size control with cost estimation

Publications (2)

Publication Number Publication Date
CN107005699A CN107005699A (zh) 2017-08-01
CN107005699B true CN107005699B (zh) 2021-03-12

Family

ID=52781133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580069058.4A Active CN107005699B (zh) 2015-01-16 2015-01-16 采用成本估计的编码器分片大小控制

Country Status (4)

Country Link
US (1) US10531088B2 (zh)
CN (1) CN107005699B (zh)
BR (1) BR112017012554A2 (zh)
WO (1) WO2016113585A1 (zh)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0160610B1 (ko) * 1992-04-07 1999-01-15 강진구 가변장부호화에 의한 영상압축방법과 신장방법 및 그 장치
US20070058723A1 (en) * 2005-09-14 2007-03-15 Chandramouly Ashwin A Adaptively adjusted slice width selection
US8320686B2 (en) * 2006-09-11 2012-11-27 Panasonic Corporation Detailed description of the invention
US8995522B2 (en) * 2007-04-13 2015-03-31 Apple Inc. Method and system for rate control
EP2338282A1 (en) * 2008-09-16 2011-06-29 Dolby Laboratories Licensing Corporation Adaptive video encoder control
US20100128797A1 (en) * 2008-11-24 2010-05-27 Nvidia Corporation Encoding Of An Image Frame As Independent Regions
FR2944938B1 (fr) * 2009-04-28 2011-10-21 Canon Kk Procede et dispositif de correction d'erreurs.
US8335949B2 (en) * 2009-11-06 2012-12-18 Trellisware Technologies, Inc. Tunable early-stopping for decoders
JP5396302B2 (ja) * 2010-02-08 2014-01-22 パナソニック株式会社 映像信号符号化装置及び映像信号符号化方法
US8634474B2 (en) * 2011-05-03 2014-01-21 Texas Instruments Incorporated CABAC macroblock rewind and end of slice creation to control slice size for video encoders
BR112014009571A2 (pt) * 2011-10-31 2017-04-18 Mitsubishi Electric Corp dispositivos e métodos de codificação e de decodificação de vídeo
US20130114710A1 (en) * 2011-11-08 2013-05-09 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by prediction using reference picture list, and method and apparatus for decoding video by performing compensation using reference picture list
US8923388B2 (en) * 2011-11-21 2014-12-30 Texas Instruments Incorporated Early stage slice cap decision in video coding
US20140341302A1 (en) * 2013-05-15 2014-11-20 Ce Wang Slice level bit rate control for video coding

Also Published As

Publication number Publication date
US10531088B2 (en) 2020-01-07
BR112017012554A2 (pt) 2017-12-26
US20170353723A1 (en) 2017-12-07
CN107005699A (zh) 2017-08-01
WO2016113585A1 (en) 2016-07-21

Similar Documents

Publication Publication Date Title
KR101836027B1 (ko) 일정 품질 비디오 코딩
US10200698B2 (en) Determining chroma quantization parameters for video coding
US8928678B2 (en) Media workload scheduler
EP3167616B1 (en) Adaptive bitrate streaming for wireless video
US10555002B2 (en) Long term reference picture coding
US10616577B2 (en) Adaptive video deblocking
CN106664409B (zh) 视频编码中黄金帧选择的方法、系统、设备和介质
CN106664407B (zh) 用于无线显示器的并行编解码的方法、系统、装置及可读介质
CN106664412B (zh) 包括目标比特率的视频编码速率控制和质量控制
US11418789B2 (en) Content adaptive quantization for video coding
TW201412121A (zh) 利用移動經估測失真之圖框層級位元率控制
CN112565761A (zh) 利用交叉通道引用进行多通道视频编码的方法和系统
CN107736026B (zh) 样本自适应偏移编码
US10341664B2 (en) Configurable intra coding performance enhancements
US20200099933A1 (en) Subjective visual quality enhancement for high spatial and temporal complexity video encode
US9729889B2 (en) Multi-pass quantization and bit packing control for video
CN107005699B (zh) 采用成本估计的编码器分片大小控制
CN107517380B (zh) 用于视频编码和解码的基于直方图分段的局部自适应滤波器
CN113453003A (zh) 用于并行视频编码的内容和质量适应性波阵面分割
CN107743707B (zh) 低位率视频编解码
JP6156808B2 (ja) 圧縮されたビデオデータをデコードするための装置、システム、方法、集積回路、およびプログラム
CN114630123A (zh) 用于低时延视频编码的自适应质量提升
JP2017184262A (ja) ビデオ符号化及び復号のためのヒストグラム分割ベースのローカル適応フィルタ
JP2017028714A (ja) ビデオ符号化及び復号のためのヒストグラム分割ベースのローカル適応フィルタ

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