首页 / 专利库 / 视听技术与设备 / 视频编码层 / 用于视频的多次量化和位压缩控制

用于视频的多次量化和位压缩控制

阅读:935发布:2020-11-25

专利汇可以提供用于视频的多次量化和位压缩控制专利检索,专利查询,专利分析的服务。并且本 发明 公开了用于视频的多次量化和位压缩控制。本发明描述了与 视频编码 中的多次量化和位压缩(PAK)参数 算法 相关的技术。,下面是用于视频的多次量化和位压缩控制专利的具体信息内容。

1.一种实现多次量化和位压缩引擎(PAK)参数算法视频编码器,包括:
比特率控制(BRC)组件,所述比特率控制(BRC)组件提供当前图像的计算出的当前帧尺寸和用户指定的目标帧尺寸;
多次PAK参数组件,所述多次PAK参数组件接收当前图像帧的计算出的当前帧尺寸和用户指定的目标帧尺寸,并且计算当前帧尺寸和目标帧尺寸之间的失配,其中多次PAK参数组件执行至少一次或多次迭代以实现当前图像帧的目标帧尺寸;以及
PAK硬件(HW)组件,所述PAK硬件(HW)组件用于在实现目标帧尺寸之后执行比特率传输。
2.如权利要求1所述的视频编码器,其特征在于,所述多次PAK参数组件在失配存在的情况下在查找表中搜索对应值,并且在帧层次或片层次上将所述对应值应用到当前图像帧直到实现目标帧尺寸。
3.如权利要求1所述的视频编码器,其特征在于,所述多次PAK参数组件执行所述至少一次或多次迭代直至最大次数的给定阈值数,所述最大次数的给定阈值数包括用于不同帧类型的不同值。
4.如权利要求1所述的视频编码器,其特征在于,所述多次PAK参数组件在当前图像帧的帧层次或片层次上执行所述至少一次或多次迭代以校正所述失配。
5.如权利要求1所述的视频编码器,其特征在于,所述多次PAK参数组件计算用于推导出查找表中的对应值的量化参数(QP)Δ,所述对应值在所述至少一次或多次迭代过程期间被应用。
6.如权利要求1至5中的任一项所述的视频编码器,其特征在于,所述至少一次或多次迭代包括在失配存在的情况下重新编码当前图像帧。
7.如权利要求1至5中的任一项所述的视频编码器,其特征在于,所述PAK HW组件在单次执行中执行比特率传输,其中所述PAK HW组件与所述至少一次或多次迭代分开地被实现。
8.如权利要求1至5中的任一项所述的视频编码器,其特征在于,所述PAK HW组件将在多次PAK参数组件处的最终迭代之后导出的参数与内部(I)帧、预测(P)帧、和/或双向(B)帧编码方法结合。
9.如权利要求1至5中的任一项所述的视频编码器,其特征在于,所述PAK HW组件将参数反馈至BRC组件,所述参数包括当前图像帧的历史数据、最大帧尺寸、最终QP、估计的QP、统计数据和系数。
10.如权利要求1至5中的任一项所述的视频编码器,其特征在于,进一步包括:模式决定组件,所述模式决定组件与由多次PAK参数组件执行的至少一次或多次迭代分开地被实现,其中所述模式决定组件提供将在当前图像帧上被执行的内部(I)帧、预测(P)帧、和/或双向(B)帧编码方法的序列。
11.一种设备,包括:
一个或多个处理器;
配置到处理器的存储器;
配置到处理器和存储器的视频编码器,包括:
视频输入,用于提供图像帧和目标帧尺寸;
运动估计器组件,用于接收用于编码的图像帧;
比特率控制(BRC)组件,用于计算所述图像帧的当前帧尺寸;
多次量化和位压缩引擎(PAK)参数组件,用于计算多次PAK参数,所述计算包括执行至少一次或多次迭代直到获得所述图像帧的目标帧尺寸;以及
PAK硬件(HW)组件,用于产生表示I帧、P帧、和/或B帧编码方法的经编码的比特流,其中经编码的比特流利用所获得的图像帧的目标帧尺寸来传输。
12.如权利要求11所述的设备,其特征在于,所述目标帧尺寸是用户指定的目标帧尺寸。
13.如权利要求11所述的设备,其特征在于,所述多次PAK参数的计算与通过PAK HW组件进行的比特流产生分开地被执行。
14.如权利要求11所述的设备,其特征在于,在目标帧尺寸和当前帧尺寸之间失配的情况下,所述多次PAK参数组件计算量化参数(QP)Δ,其中QPΔ按帧层次或片层次被应用到图像帧以获得目标帧尺寸。
15.如权利要求11所述的设备,其特征在于,所述多次PAK参数组件执行所述至少一次或多次迭代直至最大次数的给定阈值数,所述最大次数的给定阈值数包括用于不同帧类型的不同值。
16.如权利要求11至15中任一项所述的设备,其特征在于,在失配存在的情况下,所述至少一次或多次迭代包括图像帧的重新编码。
17.如权利要求11所述的设备,其特征在于,所述PAK HW组件在单次执行中执行比特流传输,其中所述PAK HW组件与所述至少一次或多次迭代分开地被实现。
18.如权利要求11所述的设备,其特征在于,所述PAK HW组件将计算出的多次参数与内部(I)帧、预测(P)帧、和/或双向(B)帧编码方法结合。
19.如权利要求11所述的设备,其特征在于,所述PAK HW组件将参数反馈至BRC组件,所述参数包括所述图像帧的历史数据、最大帧尺寸、最终QP、估计的QP、统计数据和系数。
20.如权利要求11至15中的任一项所述的设备,其特征在于,进一步包括:模式决定组件,所述模式决定组件与通过多次PAK参数组件执行的所述至少一次或多次迭代分开地被实现,其中所述模式决定组件提供将在图像帧上被执行的内部(I)帧、预测(P)帧、和/或双向(B)帧编码方法的序列。
21.一种在视频编码中实现多次量化和位压缩(PAK)参数算法的方法,包括:
接收包括图像帧的目标帧尺寸和当前帧尺寸的参数;
计算所述参数中的失配,所述失配包括图像帧的目标帧尺寸和当前帧尺寸之间的差异;
基于从计算出的失配推导出的差异来搜索对应值;
将所述对应值应用至图像帧的当前帧尺寸以校正所述失配;以及
当获得目标帧尺寸时,传输图像帧的比特流。
22.如权利要求21所述的方法,其特征在于,所接收的参数包括目标帧尺寸,所述目标帧尺寸为用户指定的目标帧尺寸,而当前帧尺寸根据所述图像帧计算得出。
23.如权利要求21所述的方法,其特征在于,所接收的参数包括历史数据、最大帧尺寸、最终量化参数(QP)和/或从PAK硬件(HW)组件反馈的估计的QP。
24.权利要求21所述的方法,其特征在于,计算失配的步骤提供用作用于在查找表中搜索对应值的基础的量化参数(QP)Δ。
25.如权利要求21至24中任一项所述的方法,其特征在于,在至少一次或多次迭代中执行所述应用对应值直到失配被校正。
26.如权利要求21至24中任一项所述的方法,其特征在于,在迭代过程期间执行所述应用对应值,直到获得用于给定帧类型的最大次数。
27.如权利要求21至24中任一项所述的方法,其特征在于,在至少一次或多次迭代中执行所述应用对应值,所述至少一次或多次迭代在失配存在的情况下包括对图像帧的重新编码。
28.如权利要求21至24中任一项所述的方法,其特征在于,所述应用对应值包括将不同的量化参数(QP)应用到当前帧尺寸。
29.如权利要求21至24中任一项所述的方法,其特征在于,在单次执行中执行所述传输比特流,所述比特流表示内部(I)帧、预测(P)帧、和/或双向(B)帧编码方法的序列和/或组合。
30.如权利要求21至24中任一项所述的方法,其特征在于,所述传输比特流将内部(I)帧、预测(P)帧、和/或双向(B)帧编码方法的序列与在最终迭代之后推导出的参数结合。

说明书全文

用于视频的多次量化和位压缩控制

背景技术

[0001] 视频编码是准备视频(视频数据)的过程,其中视频被编码成符合用于记录和回放的正确格式和规范。运动估计是视频编码和视频压缩中重要且计算密集型的任务。
[0002] 视频编码专家组(VCEG)与国际标准化组织(ISO)/国际电工技术委员会(IEC)联合工作组、运动图像专家组(MPEG)已一起开发高级视频编码(AVC)标准。AVC标准,或AVC也称为H.264。AVC标准是用于视频编码的标准的示例,并且是用于高清视频的录制、压缩和分发的最常用的格式之一。其它标准包括并且不限于,运动图像专家组2(MPEG2),可缩放视频编码(SVC),和高效率视频编码(HEVC)等等。
[0003] 在传统的视频编码系统中,当经编码的超过最大帧尺寸时,编码器重新编码整个帧,动态地改变每次重新编码的量化参数(QP)并且按照需要将该过程重复为许多步骤。为了这个目的,可实现软件/硬件解决方案以共同提高编码质量和性能。
附图说明
[0004] 图1为用于在视频编码期间实现多次量化和位压缩(PAK)参数算法的示例系统的原理图。
[0005] 图2为用于实现多次量化和位压缩(PAK)参数算法以在通过PAK硬件(HW)组件进行比特率传输之前实现用户指定的目标帧尺寸的示例视频编码器的原理图。
[0006] 图3为用于实现多次量化和位压缩(PAK)参数算法以在通过PAK硬件(HW)组件进行比特率传输之前实现用户指定的目标帧尺寸的示例方法的原理图。
[0007] 图4为用于实现多次量化和位压缩(PAK)参数算法以在通过PAK硬件(HW)组件进行比特率传输之前实现用户指定的目标帧尺寸的替代示例方法的原理图。
[0008] 图5为实现视频的多次量化和位压缩控制的示例系统的原理图。
[0009] 图6为全部根据本公开的至少一些实现设置的示例设备的原理图。
[0010] 参照附图提供以下详细描述。在附图中,附图标记的最左侧数字通常标识附图标记第一次出现在其中的图。在不同附图中使用相同的附图标记表示相似或相同的项目。
[0011] 详细描述
[0012] 本文档公开了用于实现多次量化和位压缩(PAK)参数算法以在通过PAK硬件(HW)组件进行比特率传输之前实现用户指定的目标帧尺寸的一个或多个系统、装置、方法等。在实现中,多次PAK参数算法与PAK硬件(HW)组件分开地执行,该PAK硬件(HW)组件实现当前图像帧的比特率传输。例如,多次PAK参数算法可从比特率控制(BRC)组件接收参数。这些参数可包括用于当前图像帧的用户指定的目标帧尺寸、计算出的量化参数(QP)、估计的QP、计算出的当前帧尺寸、历史数据、当前帧类型、当前帧编码方法等等。在实现中,多次PAK参数算法可执行至少一次或多次迭代以确定(用户指定的)目标帧尺寸和计算出的当前帧尺寸之间的失配。例如,失配可提供基于经确定的失配的QPΔ参数的对应等值。在该示例中,至少一次或多次迭代将QPΔ的对应等值或值应用到整个当前图像帧上直到求得目标帧尺寸。在其他实现中,将至少一次或多次迭代配置成包括对于每种帧类型(例如,内部(I)帧、预测(P)帧、和/或双向(B)帧类型)的最大数量的次数。例如,根据帧类型,将至少一次或多次迭代执行3至7之间的次数。
[0013] 在实现中,PAKHW组件可将多次PAK参数算法的输出参数用于包括最终量化和位压缩引擎的比特率传输。在该实现中,输出参数可包括用于当前图像帧的历史数据、最大帧尺寸、最终QP、估计的QP、统计数据、系数和其他变量。而且,PAK HW组件可从模式决定组件接收用于当前图像帧的I、P和/或B帧编码方法。I、P和/或B帧编码方法确定在比特率传输期间可被硬件PAK组件使用的I、P和/或B类型的序列。
[0014] 图1示出了可被利用以实现各种所描述的实施例的示例系统。然而,将容易地理解,本文所公开的技术可在其他计算设备、系统和环境中实现。图1所示的计算设备100为计算设备的一个示例,并且不旨在建议作为对"计算机和网络体系结构的使用或功能的范围的任何限制。
[0015] 在至少一个实现中,计算设备100包括至少一个处理单元102和系统存储器104。根据计算设备的精确配置和类型,系统存储器104可以是易失性(诸如RAM)、非易失性(诸如ROM、闪存等等)或它们的一些组合。系统存储器104可包括操作系统106、一个或多个程序模108,该一个或多个程序模块108在某些实现中可实现本文所描述的多次PAK参数算法方法和技术。系统存储器104可进一步包括程序数据110,程序数据可包括如本文中之后描述的宏块/形状数据库。而且,编码器112被包括在该示例中。编码器112可用于实现本文所描述的视频编码、位压缩等。编码器112可以可操作地与处理单元102、系统存储器104、和本文进一步描述的其他存储器及输入/输出设备、以及未示出的其它组件/设备耦合和通信。计算设备100的基本实现由虚线114界定。例如,在某些实现中,编码器112可以是包括3D和媒体的中央处理单元(CPU)的集成图形芯片组的一部分,其中媒体具有包括视频(具体而言视频解码/编码)的媒体功能。在某些实现中,专用集成电路或ASIC可包括作为固定功能编码器的编码器112。
[0016] 可设想,具有视频编码的设备可利用描述的技术、方法和设备。这种设备的示例包括媒体播放器、视频会议设备等等。
[0017] 在某些实现中,程序模块108可包括配置成实现本文描述的视频编码技术和方法的特定模块(未示出),诸如编码解码器或基于软件/固件的编码器。例如,这样的模块在某些实现中可执行编码器112的过程。示例编码解码器包括AVC、VCl和SVC。
[0018] 计算设备100可具有附加特征或功能。例如,计算设备100还可包括附加的数据存储设备,诸如可移动存储116和不可移动存储118。在某些实现中,可移动存储116和不可移动存储118是用于存储指令的计算机可访问介质的示例,指令可通过处理单元102执行以执行上述各种功能。一般而言,可利用软件、硬件(例如,固定逻辑电路)或这些实现的组合来实现参照附图所描述的任何功能。程序代码可存储在一个或多个计算机可访问介质或其他计算机可读存储设备中。因此,本文所描述的过程和组件可通过计算机程序产品实现。如上所述,计算机可访问介质包括在用于存储诸如计算机可读指令、数据结构、程序模块之类的信息或其他数据的任何方法和技术中实现的易失性和非易失性、可移动和不可移动介质。术语"计算机可访问媒体"和"计算机可访问介质"指的是非瞬态存储设备,并且包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储、盒式磁带、磁带、磁盘存储或其他磁存储设备、或可用于存储用于通过计算设备(例如,计算设备100)访问的任何其他非瞬态介质。任何这种计算机可访问介质可以是计算设备100的一部分。
[0019] 在一个实现中,可移动存储116具有存储在其上的一组指令,该可移动存储116是计算机可访问介质。当由处理单元102执行时,该组指令使处理单元102执行本文所述的操作、任务、功能和/或方法以及它们的任何变型。
[0020] 计算设备100还可包括一个或多个输入设备120,诸如键盘鼠标、笔、语音输入设备、触摸输入设备等等。此外,计算设备100可包括一个或多个输出设备122,诸如显示器、扬声器、打印机等等。
[0021] 计算设备100还可包括一个或多个通信连接124,该一个或多个通信连接124允许计算设备100通过连接126与一个或多个其他设备(未示出)有线或无线地通信。应当理解,所示的计算设备100是适当设备的一个示例,并且不旨在暗示作为对所描述的各种实施例的使用或功能的范围的任何限制。
[0022] 图2示出在视频压缩期间实现多次PAK参数算法以实现目标帧尺寸的示例视频编码器112。在该实现中,多次PAK参数算法可允许在视频压缩期间的高质量和高性能编码。在某些实现中,视频编码器112可被实现为中央处理单元的一部分、集成电路芯片组的一部分、或单独的组件/设备。如上所讨论的,在某些实现中,视频编码器112可被实现为固件或软件,诸如编码解码器。而且,图2仅是说明性的并且可包含附加的块或组件和/或块或组件的不同布置。
[0023] 在实现中,视频编码器112可从视频输入200接收图像帧,这些图像帧将被编码以产生以经编码的比特流的形式的对应的经编码的帧,该经编码的比特流包括I、P、和/或B流的系列或组合。在该实现中,视频编码器112的一个或多个块可被配置成执行符合一个或多个标准(诸如,MPEG、H.264等等)的视频编码。在实现中,可通过运动估计组件202处理从视频输入200接收到的图像帧,该运动估计组件202用于将接收到的图像帧编码成或I帧(即,静态帧)和/或帧间编码的帧(即,P帧或B帧)。1帧编码指的是图像帧的宏块基于同一帧的宏块来表示(即,该图像帧是在不参考除它本身之外的任何其他图像帧的情况下被编码)的编码方法。运动估计组件202可使用空间压缩技术来编码I帧。可与上述标准一致地执行空间压缩技术。因此,运动估计组件202可操作以确定图像帧中的宏块之间的相关性以产生I帧的宏块的压缩的或未压缩的表示。而且,运动估计组件202可产生表示P帧或B帧中的宏块之间的位移的运动向量,在该编码方法中该P帧或B帧可包括参考帧。运动估计组件202可使用先前存储的图像帧(未示出)作为P帧和B帧的编码方法的基础
[0024] 在实现中,运动估计组件202可接收用广定义的帧限制(例如用户指定的目标帧尺寸),用户定义的帧限制可被用于多次PAK参数的计算和运动估计,并被传递至BRC组件204。BRC组件204接收特定帧目标。在该实现中,可基于当前图像帧的帧层次或片层次(slice level)(即,图像帧被划分成片)来计算多次PAK参数。例如,多次PAK参数算法可执行迭代以通过将算法应用至当前图像帧的帧或片层次来获得多次PAK参数。迭代可包括至少一次或多次迭代直到达到用户指定的目标尺寸或用户定义的帧限制。在达到目标帧尺寸后,可处理当前帧以用于最终比特率传输。
[0025] 在实现中,特定帧限制可被BRC组件204利用以计算QP和/或计算图像帧的当前帧尺寸边界(例如,HRD帧尺寸边界)。而且,BRC组件204可从反馈回路206接收附加数据,诸如历史数据、当前帧类型、最终QP、系数、统计数据等等。例如,反馈回路206可包括前一帧统计数据、帧尺寸、最终QP、以及在当前图像帧的比特率传输期间由PAK HW组件208利用和/或实现的其他系数和/或变量。在实现中,PAK HW组件208可基于单独、独立的单次执行来执行比特率传输。
[0026] 在实现中,BRC组件204可为多次PAK参数组件210提供诸如计算出的QP、计算出的帧尺寸、当前帧类型、假想参考解码器(HRD)最大和最小帧尺寸、历史数据、比特率、帧复杂度估计等等之类的参数。而且,多次PAK参数组件210可接收诸如用于计算多次PAK参数的目标帧尺寸之类的用户特定输入。在实现中,多次PAK参数组件210可实现多次PAK参数算法迭代以计算目标帧尺寸和作为图像帧的编码结果的所获得的帧尺寸之间的失配。在该实现中,可连续执行迭代直到获得目标帧尺寸。例如,针对给定的计算出的失配,多次PAK参数组件210动态地调节用于当前帧尺寸的QP并(在帧或片层次上)将其应用于下一组迭代。在该示例中,可配置查找表以用于多次PAK参数算法迭代的实现。
[0027] 在实现中,多次PAK参数算法可使用以下伪代码或方程中的至少一个或多个以计算多次PAK参数。伪代码或方程可包括:
[0028] Max Frame Size=coefficientl*bits_per_frame; (1)
[0029] Max Frame Size=Min(Max Frame Size,HRD_max_frame- (2)
[0030] Max Frame Size=Min(Max Frame Size,User Max Frame); (3)[0031] Max_Δ=const2*(Max Frame Size-Target Frame Size); (4)
[0032] IF(Target Frame Size>=Max Frame Size)THEN继续方程6,7或8(5)
[0033] Est_QP=(previous QP*previous frame size)÷Max Frame Size (6)
[0034] tmp_qp=Max (constl,abs(Est_QP-new_QP)) (7)
[0035] QpAdj[range index]=MAX(const (range index),f(tmp_qp,iteration numbef,range index)) (8)
[0036] IF(Target Frame Size<Max Frame Size)THEN继续方程10和/或11(9)[0037] tmp_qp是根据来自BRC组件204的QP值而从查找表中选择的,例如QP越高,则tmp_qp更大; (10)
[0038] QpAdj[range index]=MAX(const(range index),f(tmp_qp,iteration numbef,range index)) (11)
[0039] 其中:1-是从查找表中找到的,并且根据帧类型(例如,I、P或B帧类型)可包括3到12的范围;
[0040] HRD_max_frame-是针对当前帧通过BRC组件204计算的。
[0041] -是包括固定值(例如,256字节)或HRD_max_frame的2%的"安全包层(safety blanket)";
[0042] User Max Frame-是用户指定的最大帧尺寸;
[0043] 2-根据诸如以下编码设定包括3到32的范围:
[0044] a)关于应当实施帧尺寸的严格程度的用户设置;2
[0045] b)帧复杂度,例如,复杂度越高,则const 更低;以及2
[0046] c)QP范围,例如,对于更低的QP,const 更大;
[0047] "const"和"f'-是具有以下性质的经验定义的查找表:
[0048] 范围数值越大-值越大、迭代次数越大、值越小。例如,f(tmp_qp,range index)=tmp_qp>>(6-range index)Const={1,2,3,6};
[0049] Max-最大;Min-最小;Est.-估计的;tmp-临时的
[0050] HRD-假想参考解码器
[0051] 方程5和方程9-采用从0到最大迭代次数(即,可变迭代次数)的所有PAK迭代上的循环;以及循环通过从0到最大数量范围(即,可变范围指数)。
[0052] 在实现中,上述方程可包括一旦获得目标帧尺寸就重置的系数和/或变量。换句话说,对于将被处理的下一图像帧,多次PAK参数组件210可利用另一组数据来计算多次PAK参数。例如,QP可被重置为它的初始值;历史数据被重置为用于下一组迭代的新值,等等。
[0053] 在实现中,模式决定组件212可决定可由PAK硬件组件208使用的I、P和/或B帧编码方法的序列。在该示例中,PAK硬件组件208可整合从多次PAK组件210接收的信号以用于当前图像帧的比特率传输。接收到的信号可包括如以上计算的多次PAK参数。在实现中,用于比特率传输的最终QP、当前帧类型等等通过反馈回路206反馈至BRC组件204。例如,历史数据可包括先前存储的用于通过BRC组件204执行计算的目的的不同帧类型。
[0054] 图3显示了示出用于实现多次PAK参数算法的示例方法的示例过程流程图300,以在通过PAK HW组件进行比特率传输之前实现用于当前图像帧的目标帧尺寸。描述方法的顺序不旨在解释为限制,并且可按照任何顺序结合任何数量的所描述的方法框以实现该方法或替代的方法。此外,可从方法删除单个框而不背离本文所描述的主题的精神和范围。而且,可在任何适当的硬件、软件、固件或它们的组合中实现该方法,而不背离本发明的范围。
[0055] 在框302,执行接收参数。在实现中,BRC组件(例如,BRC组件204)可提供由多次PAK参数组件(例如,多次PAK参数组件210)在实现用于当前图像帧的多次PAK参数算法时使用的参数。例如,提供的参数可包括历史数据、(用户指定的)目标帧尺寸、计算出的当前帧尺寸、最大帧尺寸、最小帧尺寸、最终QP、估计的QP、来自QPΔ查找表的对应值、在多次PAK参数算法中使用的统计数据和/或系数。
[0056] 在框304,执行计算参数中的失配。在实现中,多次PAK参数组件210可执行至少一次或多次迭代以实现目标帧尺寸。例如,多次PAK参数组件210计算目标帧尺寸参数和当前帧尺寸参数之间的失配。在该示例中,目标帧尺寸参数可包括用户指定的目标帧尺寸,而当前帧尺寸参数通过BRC组件204计算。
[0057] 在框306,执行确定失配存在。在实现中,多次PAK参数组件210通过计算当前图像帧的目标帧尺寸和当前帧尺寸之间的差异确定失配存在。在失配存在的情况下,则沿着"是"(YES),在框308,搜索根据计算出的失配的量的对应值。例如,可针对基于计算出的失配的特定QPΔ在动态查找表中找到对应值。而且,可在迭代通过PAK执行之前预先预计算PAK执行次数和动态查找表中的值。
[0058] 在不存在失配的情况下,沿着"否"(NO),在块310,通过PAK HW组件(例如,PAK HW组件208)单独地执行传输比特流。在实现中,传输比特流可在单次执行中执行并且独立于将由多次PAK参数算法执行的至少一次或多次迭代。例如,PAK HW组件可整合在由多次PAK参数算法执行的最终和最后迭代之后推导出的参数的最终值。
[0059] 在框312,执行将对应值应用到当前帧尺寸。在实现中,多次PAK参数组件210可执行至少一次或多次迭代以校正参数中的不匹配。例如,通过多次PAK参数算法将计算出的失配(即,查找表中的QPΔ等值)的对"应值应用到当前帧尺寸的整个帧或片层次以消除失配。在该示例中,在失配存在的情况下,该至少一次或多次迭代执行当前帧时间的重新编码。而且,将用于当前图像帧的新估计的QP、最终QP、其他历史数据、系数、以及其他变量反馈至框302以用于下一组迭代。
[0060] 在实现中,模式决定组件(例如,模式决定组件212)可在比特流传输期间为PAK HW组件208提供I、P和/或B帧编码方法的序列。在该示例中,I帧、P帧、或B帧编码方法的序列和/或组合可利用来自多次PAK参数组件210的当前帧尺寸的最终值、使用的最终QP,等等。
[0061] 在示例实现的以上描述中,为了说明的目的,陈述特定数值、材料配置、以及其他细节以更好地解释所要求保护的本发明。然而,将对本领域技术人员将显而易见的是,可利用与本文所描述的示例不同的细节实施所要求保护的本发明。在其他实例中,省略或简化已知的特征以阐明示例实现的描述。
[0062] 发明人旨在将所描述的示例实现作为主要示例。发明人不旨在用这些示例实现来限制所附权利要求的范围。相反,发明人已设想,还可以其他方式结合其他目前或未来的技术来具体化和实现所要求保护的发明。
[0063] 如在该申请中使用的,术语"或"旨在表示包含的"或",而不是排它的"或"。也就是说,除非根据上下文另有指定或显而易见,否则"X使用A或B"旨在表示任何自然包含性置换。即,如果X使用A;X使用B;或X使用A和B两者;则在任何前述实例下满足"X使用A或B"。此外,该申请和所附权利要求中使用的冠词"一"和"一个"一般应当被解释为表示"一个或多个",除非根据上下文另有规定或明确指示为单数形式。
[0064] 这些过程被示为逻辑流程图中的框的集合,逻辑流程图表示可单独在学中实现或采用硬件、软件、和/或固件的组合实现的操作序列。在软件/固件的情境下,框表示存储在一个或多个计算机可读介质上的指令,这些指令在由一个或多个处理器执行时执行所记载的操作。
[0065] 注意,描述过程的顺序不旨在解释为限制,并且可按照任何顺序结合任何数量的所述过程块以实现该过程或替代的过程。此外,可从过程删除单个块而不背离本文所描述的主题的精神和范围。
[0066] 图4显示了示出用于实现多次PAK参数算法以在通过PAK HW组件进行比特率传输之前实现用于当前图像帧的目标帧尺寸的另一示例方法的示例过程流程图400。描述方法的顺序不旨在解释为限制,并且可按照任何顺序结合任何数量的所描述的方法框以实现该方法或替代的方法。此外,可从方法删除单个框而不背离本文所描述的主题的精神和范围。而且,可在任何适当的硬件、软件、固件、或它们的组合中实现该方法,而不背离本发明的范围。
[0067] 在实现中,框402包括确定是否获得用于特定帧类型的最大次数。例如,多次PAK参数算法针对特定帧类型(例如,I、P、或B帧类型)执行至少一次或多次迭代直至最大次数的给定阈值数。在该示例中,阈值数可根据特定帧类型包括3到7之间的值。关于图4中的其余的框,如图3中所描述和讨论的相同的原理和功能被应用到图4的其余的框。
[0068] 图5示出了根据本公开的另一示例系统500。在多个实现中,系统500可以是媒体系统,不过系统500不限于此情境。例如,系统500可被结合到个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如智能电话、智能平板或智能电视)、移动因特网设备(MID)、消息收发设备、数据通信设备等等之中。
[0069] 在多个实现中,系统500包括耦合至显示器520的平台502。平台502可接收来自诸如内容服务装置530或内容递送装置540或其它类似内容源之类的内容装置的内容。可使用包括一个或多个导航部件的导航控制器550来与例如平台502和/或显示器520交互。在下文中更详细地描述这些组件中的每一个。
[0070] 在多个实现中,平台502可包括芯片组505、处理器510、存储器512、存储514、图形子系统515、应用516、和/或无线电装置518的任意组合。芯片组505可在处理器510、存储器512、存储514、图形子系统515、应用516和/或无线电装置518之间提供互通。例如,芯片组505可包括能提供与存储514的互通的存储适配器(未描绘)。
[0071] 处理器510可被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、X86指令集兼容处理器、多核或任何其它微处理器或中央处理单元(CPU)。在多个实现中,处理器510可以是双核处理器、双核移动处理器等等。
[0072] 存储器512可被实现为易失性存储设备,诸如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
[0073] 存储514可被实现为非易失性存储设备,诸如但不限于磁盘驱动器、光盘驱动器、带驱动器、内部存储设备、附连存储设备、闪存、带备用电池的SDRAM(同步DRAM)和/或网络可访问存储设备。在多个实现中,存储514可包括用于提高针对有价值数字媒体的存储性能增强保护(例如当包含多个硬盘驱动器时)的技术。
[0074] 图形子系统515可执行对诸如静态图像或视频的处理以供显示。例如,图形子系统515可以是图形处理单元(GPU)或可视处理单元(VPU)。模拟或数字接口可用于通信地耦合图形子系统515和显示器520。例如,该接口可以是高洁晰度多媒体接口、DisplayPort、无线HDMI和/或无线HD兼容技术中的任一种。图形子系统515可以集成到处理器510或芯片组505中。在一些实现中,图形子系统515可以是通信耦合至芯片组505的独立卡。
[0075] 本申请中所描述的图形和/或视频处理技术可在各种硬件体系结构中实现。例如,图形和/或视频功能可被集成在芯片组中。替代地,可使用分立的图形和/或视频处理器。作为又一实现,图形和/或视频功能可由包括多核处理器的通用处理器提供。在进一步的实施例中,这些功能可在消费者电子设备中实现。
[0076] 无线电装置518可包括能够利用各种合适的无线通信技术来发送和接收信号的一个或多个无线电装置。这样的技术可包括跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络以及卫星网络。在跨这些网络通信时,无线电装置518可根据任何版本的一个或多个可适用的标准来操作。
[0077] 在多个实现中,显示器520可包括任何电视机类型的监视器或显示器。例如,显示器520可包括计算机显示屏、触摸屏显示器、视频监视器、类似电视机的装置和/或电视机。显示器520可以是数字的和/或模拟的。在多个实现中,显示器520可以是全息显示器。此外,显示器520可以是接收可视投影的透明表面。这样的投影可传递各种形式的信息、图像和/或对象。例如,这样的投影可以是用于移动增强现实(MAR)应用的可视叠加。在一个或多个软件应用516的控制下,平台502可在显示器520上显示用户界面522。
[0078] 在多个实现中,内容服务装置530可由任何国家的、国际的和/或独立的服务来主持,从而可经由例如因特网而可由平台502访问。内容服务装置530可耦合至平台502和/或显示器520。平台502和/或内容服务装置530可耦合至网络560,以向网络560通信(例如,发送和/或接收)媒体信息并从网络560通信媒体信息。内容递送装置540可耦合至平台502和/或显示器520。
[0079] 在多个实现中,内容服务装置530可包括有线电视盒、个人计算机、网络、电话、能够递送数字信息和/或内容的启用因特网的装置或设备、以及能够经由网络560或直接在内容提供方与平台502和/或显示器520之间单向或双向地通信内容的任何其它类似装置。将理解,内容可经由网络560单向地和/或双向地通信至系统500中的任一组件和内容提供方。内容的示例可包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等等。
[0080] 内容服务装置530可接收诸如有线电视节目之类的内容,包括媒体信息、数字信息和/或其它内容。内容提供方的示例可包括任何有线或卫星电视或无线电或因特网内容提供方。所提供的示例不旨在以任何方式限制根据本公开的实现。
[0081] 在多个实现中,平台502可接收来自具有一个或多个导航部件的导航控制器550的控制信号。例如,控制器550的导航部件可用于与用户界面522交互。在多个实施例中,导航控制器550可以是定点装置,该定点装置可以是计算机硬件组件(尤其是人类接口设备),其允许用户向计算机输入空间(例如连续和多维的)数据。诸如图形用户界面(GUI)以及电视机和监视器之类的许多系统允许用户利用物理手势控制计算机或电视机并向计算机或电视机提供数据。
[0082] 控制器550的导航部件的移动可通过显示在显示器上的指针光标、聚焦环或其它可视指示器的移动而复制在显示器(例如显示器520)上。例如,在软件应用516的控制下,位于导航控制器550上的导航部件可被映射至用户界面522上显示的虚拟导航部件。在多个实施例中,控制器550可以不是单独的组件,而可被集成到平台502和/或显示器520中。然而,本公开不限于这些元件或本文示出或描述的情境。
[0083] 在多个实现中,驱动程序(未示出)可包括使用户能像电视机那样即时地打开和关闭平台502的技术,例如通过在初始启动之后的按钮(在启用时)的触摸。甚至当平台被"关闭"时,程序逻辑仍可允许平台502将内容以流方式发送至媒体适配器或其它内容服务装置530或内容递送装置540。此外,例如,芯片组505可包括对于5.1环绕音频和/或高洁晰度7.1环绕音频的硬件和/或软件支持。驱动程序可包括用于集成图形平台的图形驱动程序。在多个实施例中,图形驱动程序可包括外围组件互连(PCI)高速图形卡。
[0084] 在多个实现中,可集成系统500中示出的组件中的任何一个或多个。例如,可集成平台502和内容服务装置530,或可集成平台502和内容递送装置540,或可集成平台502、内容服务装置530以及内容递送装置540。在各个实施例中,平台502和显示器520可以是集成单元。例如,可集成显示器520和内容服务装置530,或可集成显示器520和内容递送装置540。这些示例不旨在限制本公开。
[0085] 在各个实施例中,系统500可被实现为无线系统、有线系统或二者的组合。当被实现为无线系统时,系统500可包括适合于在无线共享介质上通信的组件和接口,诸如一个或多个天线、发射机、接收机、收发机、放大器过滤器、控制逻辑等等。无线共享介质的示例可包括无线光谱的多个部分,诸如RF光谱等等。当被实现为有线系统时,系统500可包括适合于在有线通信介质上通信的组件和接口,诸如输入/输出(I/O)适配器、将I/O适配器与相应的有线通信介质连接的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可包括导线电缆、金属引线、印刷电路板(PCB)、背板开关结构、半导体材料、双绞线、同轴电缆、光纤等等。
[0086] 平台502可建立一个或多个逻辑或物理信道以通信信息。该信息可包括媒体信息和控制信息。媒体信息指的是表示针对用户的内容的任何数据。例如,内容的示例可包括来自语音对话、视频会议、流发送视频、电子邮件("email")消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等。例如,来自语音对话的数据可以是演讲信息、静默时段、背景噪声、舒适噪声音调等等。控制信息可指表示针对自动化系统的命令、指令或控制字的任何数据。例如,控制信息可用于使媒体信息路由通过系统,或指示节点以预定方式处理该媒体信息。然而,实施例不限于这些元件或图5中示出或描述的元件或情境。
[0087] 如上所述,系统500可按照不同的物理方式或形状因数来具体化。图6示出其中可具体化系统500的小形状因数装置600的实现。例如,在多个实施例中,装置600可被实现为具有无线能力的移动计算设备。移动计算设备可表示具有处理系统和移动电源或供电(诸如例如一个或多个电池)的任何装置。
[0088] 如上所述,移动计算设备的示例可包括个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如智能电话、智能平板或智能电视)、移动因特网设备(MID)、消息收发设备、数据通信设备等等。
[0089] 移动计算设备的示例还可包括被设置成由人穿戴的计算机、诸如腕部计算机、手指计算机、指环计算机、眼镜计算机、带夹计算机、臂带计算机、计算机、服装计算机以及其它可穿戴的计算机。例如,在多个实施例中,移动计算设备可被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。虽然已经以实现为智能电话的移动计算设备为例描述了一些实施例,但可理解其他实施例也可利用其他无线移动计算设备来实现。各实施例不限于此情境。
[0090] 如图6所示,设备600可包括外壳602、显示器604、输入/输出(I/O)设备606以及天线608。设备600还可包括导航部件612。显示器604可包括适于移动计算设备的用于显示信息的任何合适的显示单元。1/0设备606可包括用于向移动计算设备输入信息的任何合适的I/O设备。I/O设备606的示例可包括字母数字键盘、字母小键盘、触摸板、输入键、按钮、开关、摇臂开关、话筒、扬声器、语音识别装置和软件等等。也可通过话筒(未示出)向设备600输入信息。这样的信息可通过语音识别装置(未示出)来数字化。各实施例不限于此情境。
[0091] 各个实施例可利用硬件元件、软件元件或他们二者的组合来实现。硬件元件的示例可包括处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件中间件、固件、软件模块、例程、子例程、函数、方法、程序、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或它们的任意组合。确定实施例是利用硬件元件和/或软件元件来实现可恨据任意数量的因素而不同,这些因素比如所需计算速率、功率电平、热容限、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
[0092] 至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表示性指令来实现,这些指令表示处理器中的各种逻辑,这些指令在被机器读取时使得该机器制造用于执行本申请中所描述的技术的逻辑。被称为"IP核"的这些表示可以被存储在有形的机器可读介质上,并被提供给各个顾客或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
[0093] 尽管已经参考多个实现描述了本文陈述的某些特征,但不打算以限制的含义解释本说明书。对本公开所属技术领域中的技术人员显而易见的本文所述实现的各种修改以及其它实现被认为落在本公开的精神和范围内。
[0094] 已在特定实施例的情境中描述根据本发明的实现。这些实施例表示说明性的而非限制性的。多种变型、修改、增加、和改进是可能的。因此,可为在本文中如单个实例所描述的组件提供复数个实例。各种组件、操作和数据存储之间的边界是任意的,并且在特定说明性配置的情况下示出特定操作。设想功能的其他分配,并且功能的其他分配可落入以下权利要求的范围内。最后,如在各种配置中分立元件提供的结构和功能可实现为组合结构或组件。这些和其他变型、修改、增加、以及改进可落入如以下权利要求中定义的本发明的范围。
[0095] 以下示例属于进一步实施例:一种实现多次量化和位压缩引擎(PAK)参数算法的视频编码器,包括:比特率控制(BRC)组件,该比特率控制(BRC)组件提供当前图像帧的计算出的当前帧尺寸和用户指定的目标帧尺寸;多次PAK参数组件,该多次PAK参数组件接收当前图像帧的计算出的当前帧尺寸和用户指定的目标帧尺寸,并且计算当前帧尺寸和目标帧尺寸之间的失配,其中多次PAK参数组件执行至少一次或多次迭代以实现当前图像帧的目标帧尺寸;以及PAK硬件(HW)组件,该PAK硬件(HW)组件在实现目标帧尺寸之后执行比特率传输。
[0096] 在实现中,在视频编码器中,多次PAK参数组件在失配存在的情况下在查找表中搜索对应值,并且在帧层次或片层次将该对应值应用到当前图像帧直到实现目标帧尺寸。
[0097] 在实现中,在视频编码器中,多次PAK参数组件执行至少一次或多次迭代直至最大次数的给定阈值数,最大次数的给定阈值数包括用于不同帧类型的不同值。
[0098] 在实现中,在视频编码器中,多次PAK参数组件在当前图像帧的帧层次或片层次上执行至少一次或多次迭代。
[0099] 在实现中,在视频编码器中,多次PAK参数组件计算用于推导出查找表中的对应值的量化参数(QP)Δ,在至少一次或多次迭代期间应用该对应值。
[0100] 在实现中,在视频编码器中,在失配存在的情况下,至少一次或多次迭代包括当前图像帧的重新编码。
[0101] 在实现中,在视频编码器中,PAK HW组件在单次执行中执行比特率传输,其中PAK HW组件与至少一次或多次迭代分开地被实现。
[0102] 在实现中,在视频编码器中,PAK HW组件将在多次PAK参数组件处的最后迭代之后推导出的参数与内部(I)帧、预测(P)帧、和/或双向(B)帧编码方法结合。
[0103] 在实现中,在视频编码器中,PAK HW组件将参数反馈至BRC组件,参数包括当前图像帧的历史数据、最大帧尺寸、最终QP、估计的QP、统计数据和系数。
[0104] 在实现中,视频编码器进一步包括:模式决定组件,该模式决定组件与由多次PAK参数组件执行的至少一次或多次迭代分开地被实现,其中模式决定组件提供将在当前图像帧上被执行的内部(I)帧、预测(P)帧、和/或双向(B)帧编码方法的序列。
[0105] 在实现中,一种设备包括:一个或多个处理器;配置到处理器的存储器;配置到处理器和存储器的视频编码器包括:视频输入,用于提供图像帧和目标帧尺寸;运动估计器组件,用于接收用于编码的图像帧;比特率控制(BRC)组件,用于计算图像帧的当前帧尺寸;多次量化和位压缩引擎(PAK)参数组件,用于计算多次PAK参数,该计算包括执行至少一次或多次迭代直到获得图像帧的目标帧尺寸;以及PAK硬件(HW)组件,用于产生表示I帧、P帧、和/或B帧编码方法的经编码的比特流,其中使用获得的图像帧的目标帧尺寸传输经编码的比特流。
[0106] 在实现中,在设备中,目标帧尺寸是用户指定的目标帧尺寸。
[0107] 在实现中,在设备中,多次PAK参数的计算与通过PAK HW组件执行的比特流产生分开地被执行。
[0108] 在实现中,在设备中,在目标帧尺寸和当前帧尺寸之间失配的情况下,多次PAK参数组件计算量化参数(QP)Δ,其中QPΔ在帧层次或片层次上应用至图像帧以获得目标帧尺寸。
[0109] 在实现中,在设备中,多次PAK参数组件执行至少一次或多次迭代直至最大次数的给定阈值数,该最大次数的给定阈值数包括用于不同帧类型的不同值。
[0110] 在实现中,在设备中,在失配存在的情况下,至少一次或多次迭代包括图像帧的重新编码。
[0111] 在实现中,在设备中,PAK HW组件在单次执行中执行比特流传输,其中PAK HW组件与至少一次或多次迭代分开地被实现。
[0112] 在实现中,在设备中,PAK HW组件将计算出的多次参数与内部(I)帧、预测(P)帧、和/或双向(B)帧编码方法结合。
[0113] 在实现中,在设备中,PAK HW组件将参数反馈至BRC组件,参数包括图像帧的历史数据、最大帧尺寸、最终QP、估计的QP、统计数据和系数。
[0114] 在实现中,设备进一步包括:模式决定组件,该模式决定组件与通过多次PAK参数组件执行的至少一次或多次迭代分开地被实现,其中模式决定组件提供将在图像帧上被执行的内部(I)帧、预测(P)帧、和/或双向(B)帧编码方法的序列。
[0115] 在实现中,一种在视频编码中实现多次量化和位压缩(PAK)参数算法的方法包括:接收包括图像帧的目标帧尺寸和当前帧尺寸的参数;计算参数中的失配,该失配包括图像帧的目标帧尺寸和当前帧尺寸之间的差异;基于从计算出的失配推导出的差异搜索对应值;将该对应值应用于图像帧的当前帧尺寸以校正失配;以及当获得目标帧尺寸时传输图像帧的比特流。
[0116] 在实现中,在方法中,接收参数包括目标帧尺寸,该目标帧尺寸为用户指定的目标帧尺寸,而当前帧尺寸根据图像帧计算得出。
[0117] 在实现中,在方法中,接收参数包括历史数据、最大帧尺寸、最终量化参数(QP)和/或从PAK硬件(HW)组件反馈的估计QP。
[0118] 在实现中,在方法中,计算失配提供量化参数(QP)Δ,该量化参数(QP)Δ被用作用于在查找表中搜索对应值的基础。
[0119] 在实现中,在方法中,在至少一次或多次迭代中执行应用对应值,直到失配被校正。
[0120] 在实现中,在方法中,在迭代过程中执行应用对应值,直到获得用于给定帧类型的最大次数。
[0121] 在实现中,在方法中,在至少一次或多次迭代中执行应用对应值,该至少一次或多次迭代包括在失配存在的情况下对图像帧的重新编码。
[0122] 在实现中,在方法中,应用对应值包括将不同量化参数(QP)应用到当前帧尺寸。
[0123] 在实现中,在方法中,在单次执行中执行传输比特流,该比特流表示内部(I)帧、预测(P)帧、和/或双向(B)帧编码方法的序列和/或组合。
[0124] 在实现中,在方法中,传输比特流将内部(I)帧、预测(P)帧、和/或双向(B)帧编码方法的序列与在最后迭代之后推导出的参数结合。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈