CN106464882B - 用于通过视频编码器处理视频帧的技术 - Google Patents

用于通过视频编码器处理视频帧的技术 Download PDF

Info

Publication number
CN106464882B
CN106464882B CN201580028931.5A CN201580028931A CN106464882B CN 106464882 B CN106464882 B CN 106464882B CN 201580028931 A CN201580028931 A CN 201580028931A CN 106464882 B CN106464882 B CN 106464882B
Authority
CN
China
Prior art keywords
wave front
macroblocks
macroblock
frame
wavefront
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
CN201580028931.5A
Other languages
English (en)
Other versions
CN106464882A (zh
Inventor
C·D·里
K-H·张
李相熙
Z·j·雷
D·E·莱佐夫
X·朱
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 CN106464882A publication Critical patent/CN106464882A/zh
Application granted granted Critical
Publication of CN106464882B publication Critical patent/CN106464882B/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/645Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform

Landscapes

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

Abstract

各实施例总体上涉及一种用于将包括像素的帧分割为多个宏块的装置、方法和其他技术,每个宏块包括在四个宏块边界内的多个像素。各实施例还可以包括:通过沿着宏块边界分割所述帧来创建至少两个具有多个宏块的区域,以及基于每个区域中的所述宏块生成波前组,来自每个区域的每个波前组包括有待并行处理的一个或多个宏块。

Description

用于通过视频编码器处理视频帧的技术
技术领域
本文描述的实施例总体上涉及用于处理原始视频流的技术。更确切地,技术可以包括对原始视频流的一个或多个视频帧进行编码。
背景技术
基于模拟视频信号的全运动视频显示长期以电视的形式可用。随着计算机处理能力和可负担性的最新进展,基于数字视频信号的全运动视频显示器变得更广泛可用。在创建、修改、传输、存储和播放全运动视频序列时,数字视频***可以提供优于常规模拟视频***的显著改进。
数字视频包括连续播放或渲染的大量帧。每个帧是基于特定***的显示分辨率由像素阵列形成的静止图像。通常,视频中的原始数字信息量巨大,占用了大量存储设备并且在被传输时使用大量的带宽。
为了解决存储或传输这样大量数字视频信息的限制,已经建立了各种视频压缩标准或流程。在一些情况下,视频编码器用于获得视频数据并以占用较少空间的格式对视频数据进行编码。因此,可以更高效地使用在发送和接收视频信息的设备之间消耗的带宽,或者同时可以在那些设备之间传输更多的数据。
附图说明
图1A展示了视频帧处理***的示例性实施例。
图1B展示了计算***的示例性实施例。
图2A至2E展示了视频帧的示例性实施例。
图3A至3C展示了具有宏块依赖关系的视频帧的示例性实施例。
图3D展示了波前组表格的示例性实施例。
图4展示了宏块的示例性实施例。
图5展示了第一逻辑流程图的示例性实施例。
图6展示了第二逻辑流程图的示例性实施例。
图7展示了计算***的示例性实施例。
图8展示了计算架构的示例性实施例。
具体实施方式
各实施例总体上涉及用于一种用于对原始视频流的一个或多个视频帧进行编码的装置、***和方法。视频帧可以基于任何编码标准来编码,如被称为ITU-T/ISO H.264或作为高级视频编解码器(AVC)和MPEG-4第10部分的国际ITU-T国际标准化组织(ISO)视频压缩标准。可以根据高效率视频编码(HEVC)视频压缩标准来处理视频帧,HEVC视频压缩标准是由ISO/IEC运动图像专家组(MPEG)和ITU-T视频编码专家组(VCEG)根据ISO/IEC 23008-2MPEG-H第2部分和ITU-T H.265共同开发的H.264/MPEG-4AVC(高级视频编码)的发展产物。各实施例并不局限于这些标准并且可以根据任何其他标准(如由
Figure GDA0002269156190000021
开发的开放式且无版权的视频压缩标准VP8和VP9)来处理视频帧。
进一步地,一个或多个实施例可以涉及基于编码标准将帧分割为多个宏块并且然后分割为多个区域,每个区域具有一个或多个宏块。每个宏块可以是16×16像素矩阵或基于用于编码的视频压缩标准的任何大小。宏块可以具有由一列或一行像素定义的四个宏块边界或边。宏块边界可以用于分割视频帧以生成两个或更多个区域。
例如,可以沿宏块边界或宏块的边缘水平地或对角地分割视频帧。在各实施例中,宏块可以被分配给一个或多个波前组并且被并行地或大致同时地处理。换句话说,可以并行地处理分配给同一波前组的所有宏块。通过并行地处理宏块,可以实现显著的性能增益,包括减少处理视频帧的处理周期的数量。如通过以下描述将变得显而易见的,当沿着宏块边界将视频帧分割为多个区域时,可以并行地处理的宏块的数量增加,并且处理周期的数量显著减少。
各实施例还涉及用于执行这些操作的装置或***。所述装置可以是为了所需目的而特别构造的,或者它可以包括通过存储在计算机中的由计算机程序选择性地激活或重新配置的通用计算机。本文呈现的过程不是固有地与特定计算机或其他装置相关。各种通用机器可以与根据本文的教导编写的程序一起使用,或者可以证明构造更专用的装置来执行所需方法是方便的。从给出的描述中将出现用于各种这些机器的所需结构。
现在参考附图,其中,贯穿附图相同的参考号用来表示相同的元件。在以下描述中,出于解释的目的,阐述了许多具体的细节以便提供对其彻底的理解。然而,可能显而易见的是,可以在没有这些具体细节的情况下实践新颖的实施例。在其它实例中,以框图形式示出了公知的结构和设备,以便于对其进行描述。意图是覆盖与所要求保护的主题一致的所有修改、等同物和替代物。
图1A展示了用于处理信息和数据的视频帧处理***100的实施例。具体地,视频帧处理***100可以用于编码和解码视频帧。然而,视频帧处理***100不旨在对使用或功能的范围提出任何限制,因为技术和工具可以在各种通用或专用计算环境中实现。因此,视频帧处理***100可以包括视频帧源102、视频编码器104、传输介质106、视频解码器108和显示设备110。在一些实施例中,视频帧处理***100可以包括存储器120。在一些实施例中,视频帧处理***100可以包括根据如前所述的一个或多个标准的视频编码器/解码器处理***,诸如HVEC、H.265、VP8和VP9。
可以将例如具有模拟格式的原始全信息内容视频信号提供给视频帧源102。视频帧源102可以执行各种功能,如,将视频信号数字化成亮度(luma)和色度(chroma)格式,例如,色彩空间中的YCbCr、YUV、YIQ和YCC族。本领域技术人员将理解,对于YCbCr色彩空间,Y是亮度分量,而Cb和Cr是色度分量;对于YUV色彩空间,Y是亮度分量,而U和V是色度分量;对于YIQ色彩空间,Y是亮度分量,而I和Q是对应的同相和正交色度分量;对于YCC色彩空间,Y是亮度分量,而C(Cb)和C(Cr)是色度分量。
视频帧源102可以向视频编码器104提供格式化的数字化视频信号。不管具体视频格式如何,视频帧源102可执行必要的处理以将原始模拟视频信号的全信息数字视频信号版本提供给视频编码器104。在各实施例中,视频帧源102可以是传输介质或存储的文件。视频帧源102可以以图片或视频帧的形式向视频编码器104提供数字视频信号序列。
视频编码器104的架构和核心构建块可以基于运动补偿变换编码,并且可以执行各种运动矢量和模式计算。例如,每个视频帧可以通过将其分割为一个或多个区域来压缩,其中,每个区域可以包括一个或多个宏块。在一些实施例中,宏块可以被定义为具有对应色度样本的16×16亮度像素(或样本)的块。每个宏块还可以被分割为用于运动补偿预测的一个或多个子宏块分区。在相同或其他实施例中,宏块可以是不同的大小,例如4×4宏块、8×8宏块、32×32宏块等等,并且可以基于用于编码的标准。
视频编码器104可以从视频帧源102接收采用一个或多个视频帧形式的数字视频信号序列。视频编码器104压缩视频帧,并以比特流的形式将压缩的视频比特传送到传输介质106和/或存储器120。在一些实施例中,可以根据以上指定的标准之一来执行压缩,并且输出比特流可以是基于用于压缩的标准的比特流。
视频编码器104接收用于编码的帧。如下面将更详细讨论的,以对应于原始图像中的16×16像素的宏块或任何其它大小的像素矩阵为单位处理帧。基于一个或多个宏块依赖关系,可以将每个宏块分配或放入波前组中。波前组中的每个宏块可以被并行编码或处理。例如,属于第一波前组的所有宏块可以被并行地处理以找到运动矢量和模式,并且然后可以并行地处理属于第二波前组的所有宏块,以此类推直到所有宏块被编码。
在一些实施例中,宏块的编码可以依赖于创建宏块依赖关系的相邻宏块的编码。例如,在一些实施例中,宏块可以依赖于左、上和右上方的宏块。因此,在对相关宏块进行编码之前可以处理左、上和右上方的宏块。然而,各实施例不限于此方式,并且如将在下面关于图3A-3C更详细地解释的,可以使用预测宏块。
在一些实施例中,可以基于重构帧来形成预测宏块。例如,预测宏块可以由当前帧中的之前被编码、解码和重构的样本形成。在另一示例中,可以通过来自一个或多个参考帧的运动补偿预测来形成预测宏块。从当前宏块中减去预测宏块,以产生残差或差分宏块。使用块变换,残差或差分宏块被变换且被量化,以提供除了解码宏块和形成补偿比特流所需的其他信息之外的一组编码系数。所述其他信息可以包括例如宏块预测模式、量化器步长、描述怎样对宏块进行运动补偿的运动矢量信息以及其他。补偿的比特流可以被传送到存储/传输介质106以用于传输。
传输介质106可以提供介质,通过所述介质,编码的视频信号最终可以被提供给视频解码器108。例如,传输介质106可以是包括一个或多个有线或无线连接的数字通信***。替代地或同时地,经补偿的比特流可以被发送到存储器120,所述存储器可以使用能够存储数据的任何机器可读的或计算机可读的介质来实现,包括易失性和非易失性存储器。在一些实施例中,机器可读的或计算机可读的介质可以包括非瞬态介质。实施例并不局限于本上下文中。在一些实施例中,存储器120可以被提供用于例如临时存储视频帧信息。此外,传输介质106和/或存储器120可以将数据存储在缓冲器中。
视频解码器108接收采用包括来自传输介质106和/或存储器120的压缩视频比特的比特流形式的编码/压缩数字视频信号,并对其进行解码以产生可以提供给显示设备110的解码视频信号。在一些实施例中,编码/压缩视频信号可以采用基于如前所讨论的标准规范之一的形式,诸如H.264、HEVC、H.265、V8、V9等。通常,视频解码器108在概念上与视频编码器104相反地工作,并且可主要包括各种其它处理元件中的熵解码器。如果视频编码器104采用无损编码方法,则由视频解码器108产生的视频信号可以与提供给视频编码器104的信号完全相同。如果视频编码器104采用有损编码方法(例如,类似MPEG的编码方法),则由视频解码器108产生的视频信号可以与提供给视频编码器104的信号某种程度地不同。
在各实施例中,显示设备110可以是用于显示从视频解码器108接收的信息的任何类型的显示设备。例如,显示设备110可以包括以下各项中的至少一项:液晶显示器(LCD)、薄膜晶体管LCD(TFT-LCD)、有机发光二极管(OLED)、柔性显示器、三维(3D)显示器和投影仪。除了显示视频帧和视频信息之外,显示设备110可以显示与控制视频帧处理***100的功能相关联的用户界面(UI)或图形用户界面(GUI)。在一些实施例中,视频帧处理***100可以包括两个或更多个显示单元。例如,在一个实施例中,视频帧处理***100可以包括两个LCD显示器。
图1B展示了用于处理包括一个或多个视频帧的信息的计算***150的示例性实施例。计算***150可以表示用于处理关于视频帧处理***100的信息并且与视频帧处理***100结合使用的***。例如,处理部件152可以处理关于视频帧处理***100的信息和数据,并且存储器154可以与存储器120相同或相似。进一步地,视频编码器控制模块160可用于控制对视频编码器104的一个或多个帧进行编码的各个方面。计算***150可以包括处理部件152、存储器154、接口156和存储设备158。另外,计算***150可以包括具有宏块模块162、区域模块164和波前模块166的视频编码器控制模块160。尽管利用有限数量的部件和模块展示了计算***150,但是各实施例不限于此方式,并且计算***150可以具有用于处理信息和数据的任意数量的部件和模块。例如,计算***150可以包括视频解码器模块,以按照与以下关于视频编码器控制模块所讨论的类似的方式来解码视频帧。
处理部件152可以是任何类型的计算元件中的一个或多个,如但不限于:微处理器、处理器、中央处理单元、数字信号处理单元、双核处理器、多核处理器、图形处理单元(GPU)、移动设备处理器、桌面处理器、单核处理器、片上***(SoC)设备、复杂指令集计算(CISC)微处理器、精简指令集(RISC)微处理器、超长指令字(VLIW)微处理器、或单芯片或集成电路上的任何其他类型的处理器、处理电路或处理回路。处理部件152可以经由互连(诸如一根或多根总线、控制线和数据线)连接到计算***的其他元件并与其通信。
在一些实施例中,处理部件152可以是图形处理单元(GPU)。然而,在相同或其它实施例中,计算机***150可包括独立式且分离的GPU(未示出)。GPU可包括经优化以执行图形相关操作的任何处理单元、逻辑或电路以及视频编码器和视频解码器引擎和帧关联引擎。GPU可以用于为诸如视频游戏、图形、计算机辅助设计(CAD)、仿真与可视化工具、成像等各种应用渲染2维(2-D)和/或3维(3-D)图像。各实施例不限于此方式;GPU可处理任何类型的图形数据,如图片、视频、程序、动画、3D、2D等。
在一些实施例中,计算***150可以包括耦合到处理部件152的存储器154。如给定实现方式所需要的,存储器154可以经由一个或多个互连或者通过处理部件152和存储器154之间的专用通信总线耦合到处理部件152。存储器154可以使用能够存储数据的任何机器可读或计算机可读介质来实现,包括易失性和非易失性存储器。在一些实施例中,机器可读的或计算机可读的介质可以包括非瞬态介质。实施例并不局限于本上下文中。
存储器154可以暂时地、临时地或永久地存储数据。存储器154存储用于计算***150的指令和数据。在处理部件152正在执行指令时,存储器154还可以存储临时变量或其他中间信息,如帧信息、比特流信息、编码信息等等。存储器154不限于存储上述数据;存储器154可以存储任何类型的数据。
在一些实施例中,计算***150可以包括一个或多个接口156。接口156的示例可以包括通用串行总线(USB)端口/适配器、IEEE 1394火线端口/适配器等。实施例不限于此上下文。
在各实施例中,一个或多个接口156可以是有线或无线连接,如收发器。更确切地,一个或多个接口156可以包括能够使用各种合适的无线通信技术来发射和接收信号和信息的一个或多个无线电。这样的技术可以涉及跨一个或多个无线网络进行通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个人局域网(WPAN)、无线城域网(WMAN)、蜂窝网和卫星网。在跨这样的网络进行通信时,接口156可以根据一个或多个任何版本的适用标准来操作。实施例不限于此上下文。
在各实施例中,计算***150可以包括视频编码器控制模块160,用于由视频编码器104控制处理信息的各个方面。更确切地,视频编码器控制模块160可以将视频流的一个或多个帧分割为宏块、沿宏块边界分割帧并将宏块分组为波前组以用于并行地处理和编码。
视频编码器控制模块160可以包括用于将帧分割为一个或多个宏块的宏块模块162。每个帧可以包括基于帧的大小和分辨率的任意数量的像素。例如,帧可以具有1280×720像素大小,并且每个宏块可以是16×16像素矩阵大小。在这个示例中,帧可以是80个宏块宽和45个宏块高。
如图4中更详细讨论的,每个宏块可以具有由宏块的外部像素限定的宏块边界。更确切地,宏块可以具有左宏块边界或边缘、顶宏块边界或边缘、右宏块边界或边缘以及底宏块边界或边缘。在一些实施例中,可以沿着一个或多个宏块边界额外地分割帧以创建区域。
更确切地,视频编码器控制模块160可以包括区域模块164,用于沿着宏块边界分割帧以生成一个或多个区域。宏块可以由波前模块166分配给一个或多个波前组,并且可以并行地处理波前组中的每个宏块。当帧被分割为两个或更多个区域时,可以实现并行处理优点。例如,通过将帧分割为区域,可以减少波前组的数量,并且可以并行地处理更多的宏块。
在一些实施例中,区域模块164可以沿着宏块边界水平地分割帧以将帧分割为两个或更多个区域。如下面将关于图2B讨论的,帧可以被分成两半以创建两个区域。然而,各实施例不限于此方式并且帧可以被水平地分割以创建具有宏块的任意数量的区域。
如图2D所展示的,区域模块164还可以沿着宏块边界对角地分割帧以创建两个或更多个区域。在一些实施例中,沿着分割的宏块边界可以是在帧被分割成区域之前确定的波前边界。更确切地,可以沿着先前的波前边界分割帧以实现最优宏块并行处理。每个波前组可以通过向所述组分配一个或多个宏块来生成。在一些实施例中,波前组的分配可以从宏块边界和/或波前边界之后的开始值开始。例如,如在图2D中所展示的,波前组的分配在波前边界之后在每一行中在0处重新开始。各实施例可以不限于此方式,并且波前组的分配可以以优化并行处理的方式发生。
在一些实施例中,区域模块164可以分割帧,使得在每个区域中具有相等数量的宏块。然而,在一些情况下,由于帧的大小和/或帧中的宏块数量不可以均匀地分割帧。在这些情况下,每个区域可以不具有相等数量的宏块。例如,一个区域可以具有在其中有待处理的额外宏块。各实施例不限于此方式。
视频编码器控制模块160还可以包括用于生成一个或多个波前或波前组的波前模块166。每个波前组可以包括用于并行处理的一个或多个宏块。换句话说,同一波前组中的每个宏块可以同时地或并行地处理。
在各实施例中,波前模块166可以基于宏块依赖关系分配或生成波前组。在一些情况下,宏块可能需要在其可被处理之前处理其相邻宏块中的一个或多个宏块。例如,宏块可以要求在其可以被处理之前对其左、上和右上方的宏块进行处理。在另一个示例中,宏块可以要求在其可以被处理之前处理其左和上的宏块。各实施例不限于此方式,并且一些帧可以具有无依赖关系或多于三个依赖关系的宏块。此外,可以以交错方式将宏块分配给波前组,以补偿这些宏块依赖关系。通常,最坏情况的宏块依赖关系在整个帧中是一致的,这意味着可能存在不依赖于彼此的多个MB。通过标识宏块来形成波前组。
图2A展示了被分割为在宏块列202和宏块行204中的多个宏块的帧205的示例性实施例。图2A仅展示了用于说明目的的有限数量的宏块。然而,各实施例不限于此方式。
图2A中所展示的每个宏块可以被分配给波前组。波前组由每个宏块中的数量展示。例如,左上宏块在具有标识符206-1的波前组0中,波前组1中的宏块具有标识符206-2,波前组2中的宏块具有标识符206-3,并且波前组3中的宏块具有标识符206-4。具有相同编号的每个宏块在同一波前组中并且被并行地处理。
如前所讨论的,宏块可以被分配给波前组。
如图2A所展示的,帧205具有波前组0-19,并且可以针对有待编码的帧205处理总数为20的波前。然而,将帧分割为多个区域可以减少针对有待编码的帧需要处理的波前组和波前组的数量。
图2B/2C展示了沿着由分割线208示出的宏块边界将帧205水平地分割为区域的示例性实施例。如前所讨论的,每个区域中的宏块可以被分配给波前组。然而,在此示例性实施例中,波前组分配可以如帧207所示重复。例如,每个区域中的左上方宏块都被分配给相同的波前组0。
如图2C所展示的,可以重复波前组分配,因为宏块的一行或多行在具有相同波前组分配的行之间。例如,在此说明性实施例中,两行宏块在具有相同波前组分配的行之间。通过以这种方式将帧207分割为区域并将宏块分配给波前组,可以进一步减少有待处理的波前的数量。在此示例性实施例中,有待处理的波前的数量从20个波前组减少到14个波前组。可能是具有重复的波前组的更好的原因是因为沿着线208的所有依赖关系被有目的地去除。这意味着底部区域看起来就像顶部区域。这意味着底部区域中的左上方宏块可以与顶部区域的左上方宏块一起被处理等。
具体地,更多的宏块被分配给相同的波前组。例如,两个宏块被分配给具有标识符206-1的波前组0,两个宏块被分配给具有标识符206-2的波前组1,四个宏块被分配给具有标识符206-3的波前组2,并且四个宏块被分配给具有标识符206-4的波前组3,等等。因此,当帧207被分割为两个区域时,可以并行地处理的宏块的数量增加。通过并行地处理更多的宏块,可以减小GPU处理周期,并且可以连同电池功率节省功率。
图2D/2E展示了沿着宏块边界、沿着波前边界212对角地拆分为两个区域的帧的示例性实施例。波前边界212可以是在将视频帧分割为如图2D的视频帧205所示的区域之前在属于相同波前组的宏块处分割帧的对角线。在各实施例中,可以从视频帧的左下角到视频帧的右上角对角地分割视频帧。例如,图2D展示了沿着属于波前组9的宏块从视频帧209的左下角到右上角的波前边界212。各实施例不限于此方式,并且可以沿着任何波前边界对角地分割视频帧。
如图2D和图2E的视频帧209所展示的,可以通过沿着宏块边界、沿着波前边界将视频帧对角地分割为区域来实现附加的优点。当视频帧被水平分割或者根本不被分割时,每个波前组可以包括一个或多个宏块。图2E展示出了具有十个波前组0-9的视频帧209。在此示例性实施例中,可以并行处理附加宏块,并且可以减小额外的处理周期。例如,六个宏块被分配给具有标识符206-1的波前组0,六个宏块被分配给具有标识符206-2的波前组1,六个宏块被分配给具有标识符206-3的波前组2,并且六个宏块被分配给具有标识符206-4的波前组3。
然而,沿着波前边界对角地分割帧可能需要基于相邻宏块的预测对沿着波前边界的一个或多个宏块进行处理。在一些实施例中,可以使用运动矢量和模式的默认值来形成预测宏块。在一些实施例中,可以在视频预处理阶段期间形成相邻宏块的预测,其中,确定运动矢量和模式的值。然而,各实施例可以不限于此方式,并且可以通过本领域技术人员已知的其他方式进行宏块的预测。
在一些实施例中,帧可以被分割为区域,使得在每个区域中具有相等数量的宏块。例如,图2B和2C中所展示的帧207可以被水平地分成两半,使得在每个区域中有30个宏块。类似地,图2D和2E中所展示的视频帧209可以被对角地分割,并且每个区域也可以具有30个宏块。在一些实施例中,可以不均匀地分割帧,并且在每个区域中不存在相同数量的宏块。一个或多个区域可以包括一个或多个附加宏块。
图3A展示了具有宏块和宏块依赖关系302-1的示例性实施例视频帧205。在此示例性实施例中,视频帧205不被分割为多个区域,并且可以与图2A中所展示的视频帧205相同或相似。图3A展示出了位于列202-1和行204-2处的宏块,其具有在左、上和右上方的相邻宏块上的宏块依赖关系302-1,如箭头所示。因此,针对此位置处有待处理的宏块,必须处理其所依赖的宏块。
在此示例性实施例中,将宏块分配给波前组,使得在处理相关宏块之前处理相邻宏块。例如,如图3A所示,具有宏块依赖关系的宏块在波前组3中,而其相邻宏块在波前组1和2中。波前组1和2中的宏块可以在对波前组3中的宏块进行编码之前被处理。
如上面关于图2A所讨论的,当视频帧未被分割为区域时,可能需要附加的波前组来处理所述帧。可以通过将视频帧分割为对角水平的或某些其它形式的区域来减少波前的数量。然而,将视频帧分割为多个区域可能需要使用用于视频运动和模式计算的默认值来处理一些相关宏块。
图3B展示了被水平地分割为具有宏块和宏块依赖关系302-1和302-2的多个区域的帧207的示例性实施例。在此示例性实施例中,可以使用其父宏块中的一个或多个宏块的预测值或默认值来处理底部区域中的一个或多个宏块。例如,列202-4和行204-4处的宏块在波前组3中。然而,此宏块依赖于波前组2、7和8中的宏块,如宏块依赖关系302-2的箭头所示。当以升序处理时,波前组3中的宏块将在波前组7和8中的宏块之前被处理。因此,当在宏块在此位置时,可能需要波前组7和8中的父宏块的预测值。预测值可以是默认值或必须使用的其他预测。进一步地,如图3B所示,沿着宏块边界将帧207分割为两个区域的其它宏块也可能需要在处理它们时使用一些默认值或其他预测值。另外,沿着波前边界对角分割的帧也可具有在处理时可使用一些默认值或其它预测值的宏块。
图3C展示了沿着波前边界对角地拆分为两个区域的帧209的示例性实施例。如上文类似地讨论的,可以使用其父宏块中的一个或多个宏块的一些默认值或其他预测值来处理底部区域中的一个或多个宏块。例如,列202-6和行204-4处的宏块在波前组1中。然而,此宏块依赖于波前组0和9中的宏块,如宏块依赖关系标识符302-2的箭头所示。当以升序处理时,波前组1中的宏块将在波前组9中的宏块之前被处理。因此,当处理在此位置处的宏块时,可以使用波前组9中的父宏块的默认值或预测值。进一步地,如图3C所示,沿着宏块或波前边界将视频帧209分割为两个区域的其它宏块也可能需要在处理它们时使用一些默认值或其它预测值。
图3D展示了示例性表350,所述表350示出了基于区域数量、帧大小以及用于将帧分割为(水平的或对角的)区域所使用的方法处理视频帧所需的波前组的数量。如表350中清楚展示的,将视频帧对角地分割为区域相比分割水平视频帧具有减少用于处理的波前组的数量的显著优点。此外,在两种情况中(例如,水平和对角分割),将帧分割为多于两个的区域还减少了用于处理的波前组的数量。
在表350中所示的一个示例中,具有大小为1280×720的被分割成两个区域的帧当被水平地分割时需要124个波前组,并且当沿着波前边界被对角地分割时需要84个波前组。在另一示例中,具有相同大小的被分割为八个区域的帧当被水平分割时需要90个波前组,并且当被对角地分割时需要21个波前组。如从这些示例可以看出的,通过增加区域的数量并对角地分割帧,可以显著减少处理帧所需的波前组的数量。
在各实施例中,可以针对水平地和对角地分割的两种情况计算所需的波前组的数量。等式1可用于计算当被水平分割为具有左、上和右上依赖关系的宏块的区域时对视频帧进行编码所需的波前组的数量。
1.波前组=W+2*((H+(N-1))/N-1),其中,
W=宏块中的帧宽度;
H=宏块中的帧高度;且
N=区域数量。
等式2可用于计算当被对角分割为具有左、上和右上依赖关系的宏块的区域时对视频帧进行编码所需的波前组的数量。
2.波前组=(W+2*(H-1)+(N-1))/N,其中,
W=宏块中的帧宽度;
H=宏块中的帧高度;且
N=区域数量。
在一些实施例中,宏块可以仅具有左和上依赖关系(未示出)。等式3可用于计算当被水平分割为具有左和上依赖关系的宏块的区域时对视频帧进行编码所需的波前组的数量。
3.波前组=W+((H+(N-1))/N-1),其中,
W=宏块中的帧宽度;
H=宏块中的帧高度;且
N=区域数量。
等式4可用于计算当对角地分割为具有左和上依赖关系的宏块的区域时对视频帧进行编码所需的波前组的数量。
4.波前组=(W+(H-1)+(N-1))/N,其中,
W=宏块中的帧宽度;
H=宏块中的帧高度;且
N=区域数量。
等式1-4可以用于确定具有任意数量的宏块的任意大小显示的波前组的数量。针对多核、多线程或任何并行处理部件,每个宏块可以并行地或大致同时地被处理。因此,处理波前组所花费的时间是恒定的,而与波前组的大小无关。例如,等式5可以用于计算处理帧的时间量。
5.处理时间=WFG*WT,其中,
WFG=波前组的数量;且
WT=处理一个波前组的时间。
因此,如等式5所示,当波前组的数量减少时,处理时间可以减少。此外,随着处理时间减少,功率消耗可以减少,从而延长了基于电池功率操作的计算设备的电池寿命。进一步地,每个区域可以包含相等数量的波前,因此,可以根据因素N或区域数量改进计算***的性能。在一些情况下,波前组的处理时间可以取决于其大小。在这种情况下,可以调整每个区域中的波前组的数量,使得可以在相同或大致相同的时间处完成区域的所有处理,以实现最大并行性和可扩展性。例如,一个区域可以比另一个区域具有更多的宏块。在一些情况下,处理第一区域可能比第二区域需要更长的时间来完成。在这种情况下,波前边界可以从第一区域移动到第二区域,使得处理负载可以平衡。这些和其他优点可以通过将视频帧水平地或对角地分割成任意数量的区域来实现。
图4展示了宏块400的示例性实施例。在各实施例中,宏块400可以是具有基于线性块变换(如离散余弦变换(DCT))的图像和视频压缩格式的处理单元。宏块通常由16×16像素样本402组成,并且被进一步细分为变换块和预测块。可以基于宏块的各种图像和视频压缩格式包括联合图像专家组(JPEG)(其中,宏块被称为最小编码单元(MCU)块)、H.261、运动图像专家组(MPEG)-1第2部分、H.262/MPEG-2第2部分、H.263、MPEG-4第2部分、H.264/MPEG-4AVC等。
在各实施例中,每个宏块400可以包括宏块边界。更确切地,每个宏块400可以具有左边404-1、顶边404-2、右边404-3和底边404-4。每一边可以定义宏块400的宏块边界。进一步地,每一边可由一行或一列像素402定义。例如,顶边404-2可以由一行像素402定义。如前所讨论的,宏块400可以是16×16像素矩阵,并且因此每一边可以具有16像素的长度。然而,各实施例不限于此方式,并且宏块可以是任何大小。
图5展示了用于处理一个或多个视频帧的第一逻辑流程500图的示例性实施例。为了清楚起见,参考图1A和图1B的***100和***150讨论逻辑流程500。在各实施例中,可在框502处接收用于编码的帧。更确切地,视频编码器104可以接收来自帧源102的视频流中的一个或多个帧,用于根据本文描述的一个或多个实施例进行编码。在框504,可将帧分割为宏块,如宏块400。在一些实施例中,宏块模块162可以向视频编码器104发送信息或数据,以将每个帧分割为16×16像素宏块以用于进一步处理。可以基于帧大小将每个帧分割为多个宏块。例如,具有1280×720像素的帧大小的帧可以基于16×16的宏块大小在80×45宏块矩阵中被分割为125个宏块。
在一些实施例中,在框506处,帧也可沿着宏块边界或波前边界被分割成区域。例如,图1B的区域模块164可以向视频编码器104发送信息以沿着宏块边界并且在一些情形中沿着波前边界水平地或对角地分割帧。波前边界可以是在宏块处分割帧的对角线,如图2D所示。在各实施例中,可以从帧的左下角到帧的右上角对角地分割帧。
可以沿着宏块边界分割帧以创建任何数量的区域。例如,当沿着波前边界从帧的左下角到帧的右上角对角地分割帧时,可以创建两个区域,顶部区域和底部区域。各实施例不限于将帧分割为两个区域,并且可以将帧分割为任意数量的区域。
在框508,每个宏块可以被分配给波前组。在一些实施例中,波前模块166可以向视频编码器104发送信息以分配宏块,使得满足宏块依赖关系。每个波前组可以通过向所述组分配一个或多个宏块来生成。在一些实施例中,波前组的分配可以从宏块边界和/或波前边界之后的开始值开始。例如,如在图2D中所展示的,波前组的分配在波前边界之后在每一行中在0处重新开始。各实施例可以不限于此方式,并且波前组的分配可以以优化并行处理的方式发生。
在各实施例中,可以在框510处并行处理同一波前组中的宏块。此外,视频编码器104可以同时处理同一波前组中的所有宏块,并且可以按照基于它们的分配的升序顺序处理每个波前组,以确保满足宏块依赖关系并且限制基于预测值编码的宏块的数量。一旦所有宏块被初始处理,就可以进行第二阶段的编码。在第二阶段中,对在第一阶段中生成的所有运动矢量和模式决策进行处理,并且那些值用于对整个帧进行编码并生成最终比特流。在决策框512处,视频编码器104可判定视频帧中的所有宏块是否被编码。如果帧编码完成,则可重复框502到512,直到针对视频流的所有帧被编码。
图6展示了第二逻辑流程600的实施例。逻辑流程600可以代表由在此描述的一个或多个实施例执行的操作的部分或所有。例如,逻辑流程600可以示出由***100和***150执行的操作。
在图6所示的所展示的实施例中,在框605处,逻辑流程600可以包括将包括像素的视频帧分割为多个宏块,每个宏块包括在四个宏块边界内的多个像素。在一些实施例中,每个宏块可以包括在16×16像素矩阵中的256个像素,并且包括用于在显示设备上呈现信息的值。基于帧大小和帧像素数量,可以将帧分割为任意数量的宏块。进一步地,各实施例不限于具有16×16大小的宏块,并且宏块可以是任何大小。
四个宏块边界可包括左边界或边缘、顶部边界或边缘、右边界或边缘以及底部边界或边缘。宏块边界可以由宏块的外部像素定义。
在框610,逻辑流程600还可包括通过沿着宏块边界分割视频帧来创建至少两个具有多个宏块的区域。更确切地,可以将帧水平地或对角地分割一次或多次,以创建各自具有多个宏块的两个或更多个区域。在一些实施例中,可以生成区域,使得在每个区域中具有相等数量的宏块,以确保每个区域中的波前组的并行处理在大致相同的时间处完成。然而,一些视频帧可能不能被均匀地分割,使得每个区域具有相等数量的宏块。在这些情况下,一个或多个区域包括一个或多个额外的宏块。
在框615处,逻辑流程600还可以包括基于每个区域中的宏块生成波前组,每个波前组包括有待并行处理的一个或多个宏块。波前组可以通过将一个或多个宏块分配给每个波前组来生成。在一些实施例中,宏块可以被分配给每个波前组,使得每个波前组具有相等数量的宏块。进一步地,可以基于每个宏块在帧内的位置将宏块分配给波前组。每个宏块可以具有宏块依赖关系,并且相邻宏块可能需要在处理相关宏块之前被处理。这样,宏块可以被分配或分派给波前组,使得满足针对宏块的宏块依赖关系,从而确保父宏块在相关宏块之前被处理或者可能需要默认值或其他预测。
图7展示了***700的一个实施例。在各实施例中,***700可以表示适于与本文所述的一个或多个实施例(如图1A和图1B的***100和150)一起使用的***或架构。实施例不限于此方面。
如图7所示,***700可以包括多个元件。如针对给定的设计或性能约束集合所期望的,一个或多个元件可以使用一个或多个电路、部件、寄存器、处理器、软件子例程、模块、或其任何组合来实现。举例来讲,虽然图7示出在某个拓扑中的有限数量的元件,但是可以认识到可以按给定实现方式所期望的在***700中使用在任何合适的拓扑中的或多或少的元件。实施例不限于此上下文。
在各实施例中,***700可以包括计算设备705,所述计算设备可以是任何类型的计算机或处理设备,包括个人计算机、台式计算机、平板计算机、上网本计算机、笔记本计算机、膝上型计算机、服务器、服务器场、刀片式服务器或任何其他类型的服务器等等。
计算设备的示例还可以包括被安排来由人佩戴的计算机,例如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋计算机、服装计算机和其他可以佩带的计算机。在实施例中,例如移动计算设备可以实现为能够执行计算机应用、以及语音通信和/或数据通信的智能电话。尽管一些实施例可以用作为示例实现为智能电话的移动计算设备描述,但应理解,其他实施例也可以使用其他无线移动计算设备实现。实施例不限于此上下文。
在各实施例中,计算设备705可以包括处理器电路702。处理器电路702可以使用任何处理器或逻辑设备来实现。处理电路702可以是任何类型的计算元件中的一个或多个,如但不限于:微处理器、处理器、中央处理单元、数字信号处理单元、双核处理器、移动设备处理器、桌面处理器、单核处理器、片上***(SoC)设备、复杂指令集计算(CISC)微处理器、精简指令集(RISC)微处理器、超长指令字(VLIW)微处理器、或单芯片或集成电路上的任何其他类型的处理器或处理电路。处理电路702可以经由总线743(诸如一根或多根总线、控制线和数据线)连接到计算***的其他元件并与其通信。
在一个实施例中,计算设备705可以包括耦合到处理器电路702的存储器单元704。如给定实现方式所期望的,存储器单元704可以经由通信总线743或者通过处理器电路702与存储器单元704之间的专用通信总线耦合到处理器电路702。存储器单元704可以使用使能够储存数据的任何机器可读的或计算机可读的介质来实现,包括易失性和非易失性存储器两者。在一些实施例中,机器可读的或计算机可读的介质可以包括非瞬态介质。实施例不限于此上下文。
在各实施例中,计算设备705可以包括图形处理单元(GPU)706。GPU 706可包括经优化以执行图形相关操作的任何处理单元、逻辑或电路以及视频解码器引擎和帧关联引擎。GPU 706可以用于为诸如视频游戏、图形、计算机辅助设计(CAD)、仿真与可视化工具、成像等各种应用渲染2维(2-D)和/或3维(3-D)图像。各实施例不限于此方式;GPU 706可处理任何类型的图形数据,如图片、视频、程序、动画、3D、2D、目标图像等。
在一些实施例中,计算设备705可以包括显示控制器708。显示控制器708可以是用于处理图形信息并显示图形信息的任何类型的处理器、控制器、电路、逻辑等。显示控制器708可以从如(多个)缓冲器的一个或多个缓冲器接收或检索图形信息。在处理信息之后,显示控制器708可以将图形信息发送到显示器。
在各实施例中,***700可以包括收发器744。收发器744可以包括能够使用各种适合的无线通信技术发送和接收信号的一个或多个无线电。这样的技术可以涉及跨一个或多个无线网络进行通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个人局域网(WPAN)、无线城域网(WMAN)、蜂窝网和卫星网。在跨这类网络通信时,收发器744可以根据任意版本的一个或多个可适用标准进行操作。实施例不限于此上下文。
在各实施例中,计算设备705可以包括显示器745。显示器745可以构成能够显示从处理器电路702、图形处理单元706和显示控制器708接收的信息的任何显示设备。
在各实施例中,计算设备705可以包括存储设备746。存储设备746可以被实现为非易失性存储设备,如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附属存储设备、闪存、电池应急SDRAM(同步DRAM)和/或网络可接入的存储设备。在实施例中,存储设备746可以包括用于当例如包括多个硬盘驱动器时增加对有价值的数字媒体的存储性能增强型保护的技术。存储设备746的进一步示例可以包括硬磁盘、软磁盘、只读光盘存储器(CD-ROM)、可刻录光盘(CD-R)、可重写光盘(CD-RW)、光盘、磁介质、磁光介质、可移除存储器卡或磁盘、各种类型的DVD设备、磁带设备、盒式磁带设备等。实施例不限于此上下文。
在各实施例中,计算设备705可以包括一个或多个I/O适配器747。I/O适配器747的示例可以包括通用串行总线(USB)端口/适配器、IEEE 1394火线端口/适配器等。实施例不限于此上下文。
图8展示了适用于实现之前所述的各实施例的示例性计算架构800的实施例。在一个实施例中,计算架构800可以包括或被实现为***100和150的一部分。
如本申请中所使用的,术语“***”和“部件”旨在指计算机相关实体、或者硬件、硬件和软件的组合、软件、或执行中的软件,其示例由示例性计算架构800提供。例如,部件可以是但不限于:在处理器上运行的进程、处理器、硬盘驱动器、(光学和/或磁存储介质的)多个存储驱动、对象、可执行文件、执行线程、程序和/或计算机。举例来说,运行在服务器上的应用程序和该服务器二者都可以是部件。一个或多个部件可以驻留在进程和/或执行线程内,并且部件可以位于一个计算机上和/或分布在两个或多个计算机之间。进一步地,部件可以通过各种类型的通信介质彼此通信地耦合以协调操作。所述协调可以涉及信息的单向或双向交换。例如,部件可以以在通信介质上传达的信号的形式来传达信息。所述信息可以被实现为分配给各信号线的信号。在这种分配中,每个消息是信号。然而,另外的实施例可以替代地采用数据消息。这样的数据消息可以跨各种连接发送。示例性连接包括并行接口、串行接口和总线接口。
计算架构800包括各种公共计算元件,如一个或多个处理器、多核处理器、协处理器、存储单元、芯片组、控制器、***设备、接口、振荡器、定时设备、视频卡、音频卡,多媒体输入/输出(I/O)部件、电源等。然而,实施例不限于由计算架构800实现。
如图8所示,计算架构800包括处理单元804、***存储器806和***总线808。处理单元804可以是各种可商购的处理器中的任一种。
***总线808为***部件(包括但不限于***存储器806到处理单元804)提供接口。***总线808可以是几种类型的总线结构中的任何一种,其可以进一步使用各种可商购的总线架构中的任何一种互连到存储器总线(具有或没有存储器控制器)、***总线和局部总线。接口适配器可以经由槽架构连接到***总线808。示例槽结构可以包括但不限于加速图形端口(AGP)、卡总线、(扩展)工业标准架构((E)ISA)、微通道架构(MCA)、NuBus、***部件互连(PCI(X))、PCI Express、个人计算机存储卡国际协会(PCMCIA)等。
计算架构800可以包括或实现各种制品。制品可以包括用于存储逻辑的计算机可读存储介质。计算机可读存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移除存储器或不可移除存储器、可擦除存储器或不可擦除存储器、可写存储器或可重写存储器等。逻辑的示例可以包括使用任何合适类型的代码(诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码等)实现的可执行计算机程序指令。实施例还可以至少部分地实现为包含在非瞬态计算机可读介质之中或之上的指令,所述指令可以由一个或多个处理器读取和执行以使得能够执行本文描述的操作。
***存储器806可以包括各种类型的一个或多个更高速存储器单元形式的计算机可读存储介质,如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、聚合体存储器(如铁电聚合物存储器)、双向存储器、相变或铁电存储器、硅氧氮氧硅(SONOS)存储器、磁性或光学卡、设备阵列(如独立磁盘冗余阵列(RAID))驱动、固态存储器驱动(例如,USB存储器)、固态驱动(SSD)和适用于存储信息的任何其他类型的存储介质。在图8所示的所展示的实施例中,***存储器806可以包括非易失性存储器810和/或易失性存储器812。基本输入/输出***(BIOS)可以存储在非易失性存储器810中。
计算机802可以包括各种类型的采用一个或多个低速存储器单元的形式的计算机可读存储介质,包括内部(或外部)硬盘驱动器(HDD)814、用于从可移除磁盘818读取或写入的软磁盘驱动器(FDD)816、以及用于从可移除光盘822读取或写入的光盘驱动器820(例如,CD-ROM或DVD)。HDD 814、FDD 816和光盘驱动器820可以分别通过HDD接口824、FDD接口826和光盘驱动器接口828连接到***总线808。用于外部驱动器实现的HDD接口824可以包括通用串行总线(USB)和IEEE 1394接口技术中的至少一者或两者。
驱动器以及相关联的计算机可读介质提供数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储设备。例如,多个程序模块可以存储在驱动器和存储器单元810、812中,包括操作***830、一个或多个应用程序832、其他程序模块834和程序数据836。在一个实施例中,一个或多个应用程序832、其他程序模块834和程序数据836可以包括例如***700的各种应用和/或部件。
用户可以通过一个或多个有线/无线输入设备(例如键盘838和诸如鼠标840的定点设备)将命令和信息输入到计算机802中。其他输入设备可以包括麦克风、红外(IR)远程控制、射频(RF)远程控制、游戏板、手写笔、读卡器、软件狗(Dongle)、指纹打印读取器、手套、图形输入板、操纵杆、键盘、视网膜读取器、触摸屏(例如,电容式、电阻式等)、轨迹球、轨迹板、传感器、触控笔等等。这些和其他输入设备经常通过输入设备接口842连接到处理单元804,所述输入设备接口耦合到***总线808,但是可以通过诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等其它接口连接。
监视器844或其他类型的显示设备也经由诸如视频适配器846的接口连接到***总线808。监视器844可以在计算机802的内部或外部。除了监视器844之外,计算机通常还包括其他***输出设备,如扬声器、打印机等。
计算机802可以使用经由到一个或多个远程计算机(诸如远程计算机848)的有线和/或无线通信的逻辑连接在联网环境中操作。远程计算机848可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他公共网络节点,并且通常包括相对于计算机802描述的许多或全部元件,尽管为了简洁的目的,仅展示了存储器/存储设备850。所描绘的逻辑连接包括到局域网(LAN)852和/或更大网络(例如,广域网(WAN)854)的有线/无线连接。这种LAN和WAN联网环境在办公室和公司中是常见的,并且便于企业范围的计算机网络(诸如内联网),所有这些网络都可以连接到全球通信网络(例如互联网)。
当在LAN联网环境中使用时,计算机802通过有线和/或无线通信网络接口或适配器856连接到LAN 852。适配器856可以便于到LAN 852的有线和/或无线通信,LAN 852还可以包括设置在其上的用于与适配器856的无线功能通信的无线接入点。
当在WAN联网环境中使用时,计算机802可以包括调制解调器858,或者连接到WAN854上的通信服务器,或者具有用于通过WAN 854例如通过互联网建立通信的其他装置。调制解调器858(其可以是内部或外部的以及有线和/或无线设备)经由输入设备接口842连接到***总线808。在联网环境中,相对于计算机802描绘的程序模块或其部分可以存储在远程存储器/存储设备850中。应当理解,所示的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。
计算机802可操作以使用IEEE 802标准家族与有线或无线设备或实体进行通信,如无线设备操作性地布置在无线通信(例如,IEEE 802.11无线调制技术)中。这至少包括Wi-Fi(或无线保真)、WiMax以及蓝牙TM无线技术等等。因此,通信可以是与常规网络一样的预定义结构或简单地是至少两个设备之间的自组织通信。Wi-Fi网络使用被称为IEEE802.11x(a、b、g、n等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机彼此连接、连接到互联网以及连接到有线网络(使用IEEE 802.3相关的介质和功能)。
如之前参考图1至图8所描述的,***100和150的各元件可以包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括:设备、逻辑设备、组件、处理器、微处理器、电路、处理器、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括:软件部件、程序、应用、计算机程序、应用程序、***程序、软件开发程序、机器程序、操作***软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。然而,确定是否是使用硬件元件和/或软件元件来实现实施例可以根据多个因数而变化,如针对给定的实现方式所期望的,如期望的计算速率、功率电平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
详细的公开现在变为提供与进一步的实施例有关的示例。以下提供的示例一到三十三(1-33)旨在是示例性的而非限制性的。
在第一个示例中,一种***或一种装置,具有:处理电路;宏块模块,所述宏块模块用于在所述处理电路上执行以将包括像素的视频帧分割为多个宏块,每个宏块包括在多个宏块边界内的多个像素;区域模块,所述区域模块用于在所述处理电路上执行以通过沿着宏块边界分割所述视频帧来创建至少两个具有多个宏块的区域;以及波前模块,所述波前模块用于在所述处理电路上执行以基于每个区域中的所述宏块生成波前组,每个波前组包括有待并行处理的一个或多个宏块。
在第二个示例中并且为促进所述第一示例,一种装置可以包括区域模块,所述区域模块用于创建所述至少两个区域,包括沿着所述宏块边界对角地分割所述视频帧。
在第三个示例中并且为促进前述示例中的任一项,一种装置可以包括区域模块,所述区域模块用于从所述视频帧的左下角到所述视频帧的右上角对角地分割所述视频帧。
在第四个示例中并且为促进前述示例中的任一项,一种装置可以包括区域模块,所述区域模块用于创建所述至少两个区域,包括分割所述视频帧从而使得每个区域具有相等数量的宏块以最大化对所述宏块的并行处理。
在第五个示例中并且为促进前述示例中的任一项,一种装置可以包括波前模块,所述波前模块用于生成所述波前组,包括当不能将相等数量的宏块分配给所述波前组时将每个宏块分配给特定波前组并且将额外的宏块分配给所述波前组中的至少一个波前组。
在第六个示例中并且为促进前述示例中的任一项,一种装置可以包括波前模块,所述波前模块用于生成所述波前组,包括基于宏块依赖关系将每个宏块分配给波前组。
在第七个示例中并且为促进前述示例中的任一项,一种装置可以包括处理电路,所述处理电路用于并行地处理波前组中的每个宏块。
在第八个示例中并且为促进前述示例中的任一项,一种装置可以包括处理电路,所述处理电路用于按照基于宏块依赖关系的顺序处理每个波前组,其中,波前组中的宏块依赖于另一波前组中的宏块的处理结果。
在第九个示例中并且为促进前述示例中的任一项,一种装置可以包括包含16×16像素矩阵的宏块。
在第十个示例中并且为促进前述示例中的任一项,一种制品包括计算机可读存储介质,所述计算机可读存储介质包括多条指令,所述指令当被执行时使处理电路:将包括像素的视频帧分割为多个宏块,每个宏块包括在多个宏块边界内的多个像素;通过沿着宏块边界分割所述视频帧来创建至少两个具有多个宏块的区域;以及基于每个区域中的所述宏块生成波前组,每个波前组包括有待并行处理的一个或多个宏块。
在第十一个示例中并且为促进前述示例中的任一项,一种存储介质包括指令,所述指令当被执行时使处理电路创建至少两个区域,包括沿着所述宏块边界对角地分割所述视频帧。
在第十二个示例中并且为促进前述示例中的任一项,一种存储介质包括指令,所述指令当被执行时使处理电路对角地分割视频帧,包括从所述视频帧的左下角到所述视频帧的右上角分割所述视频帧。
在第十三个示例中并且为促进前述示例中的任一项,一种存储介质包括指令,所述指令当被执行时使处理电路创建至少两个区域,包括分割所述视频帧从而使得每个区域具有相等数量的宏块以对所述宏块进行最大并行处理。
在第十四个示例中并且为促进前述示例中的任一项,一种存储介质包括指令,所述指令当被执行时使处理电路生成波前组,包括当不能将相等数量的宏块分配给所述波前组时将每个宏块分配给特定波前组并且将额外的宏块分配给所述波前组中的至少一个波前组。
在第十五个示例中并且为促进前述示例中的任一项,一种存储介质包括指令,所述指令当被执行时使处理电路生成波前组,包括基于宏块依赖关系将每个宏块分配给波前组。
在第十六个示例中并且为促进前述示例中的任一项,一种存储介质包括指令,所述指令当被执行时使处理电路并行地处理波前组中的每个宏块。
在第十七个示例中并且为促进前述示例中的任一项,一种存储介质包括指令,所述指令当被执行时使处理电路按照基于宏块依赖关系的顺序处理每个波前组,其中,波前组中的宏块依赖于另一波前组中的宏块的处理结果。
在第十八个示例中并且为促进前述示例中的任一项,一种方法可以包括:由处理部件将包括像素的帧分割为多个宏块,每个宏块包括在多个宏块边界内的多个像素;通过沿着宏块边界分割所述帧来创建至少两个具有多个宏块的区域;以及基于每个区域中的所述宏块生成波前组,每个波前组包括有待并行处理的一个或多个宏块。
在第十九个示例中并且为促进前述示例中的任一项,一种方法可以包括:创建至少两个区域,包括沿着所述宏块边界对角地分割所述帧。
在第二十个示例中并且为促进前述示例中的任一项,一种方法可以包括:从所述视频帧的左下角到所述视频帧的右上角对角地分割所述帧。
在第二十一个示例中并且为促进前述示例中的任一项,一种方法可以包括:创建至少两个区域,包括分割所述帧从而使得每个区域具有相等数量的宏块以对所述宏块进行最大并行处理。
在第二十二个示例中并且为促进前述示例中的任一项,一种方法可以包括:生成波前组,包括当不能将相等数量的宏块分配给所述波前组时将每个宏块分配给特定波前组并且将额外的宏块分配给所述波前组中的至少一个波前组。
在第二十三个示例中并且为促进前述示例中的任一项,一种方法可以包括:生成波前组,包括基于宏块依赖关系将每个宏块分配给波前组。
在第二十四个示例中并且为促进前述示例中的任一项,一种方法可以包括:并行地处理波前组中的每个宏块。
在第二十五个示例中并且为促进前述示例中的任一项,一种方法可以包括:按照基于宏块依赖关系的顺序处理每个波前组,其中,波前组中的宏块依赖于另一波前组中的宏块的处理结果。
在第二十六个示例中并且为促进前述示例中的任一项,一种装置可以包括:用于将包括像素的帧分割为多个宏块的装置,每个宏块包括在多个宏块边界内的多个像素;用于通过沿着宏块边界分割所述帧来创建至少两个具有多个宏块的区域的装置;以及用于基于每个区域中的所述宏块生成波前组的装置,每个波前组包括有待并行处理的一个或多个宏块。
在第二十七个示例中并且为促进前述示例中的任一项,一种装置可以包括:用于创建至少两个区域的装置,所述用于创建至少两个区域的装置包括用于沿着所述宏块边界对角地分割所述帧的装置。
在第二十八个示例中并且为促进前述示例中的任一项,一种装置可以包括:用于分割所述帧的装置,所述用于分割所述帧的装置包括用于从所述视频帧的左下角到所述视频帧的右上角对角地分割所述帧的装置。
在第二十九个示例中并且为促进前述示例中的任一项,一种装置可以包括:用于创建至少两个区域的装置,所述用于创建至少两个区域的装置包括用于分割帧从而使得每个区域具有相等数量的宏块以对所述宏块进行最大并行处理的装置。
在第三十个示例中并且为促进前述示例中的任一项,一种装置可以包括:用于生成波前组的装置,所述用于生成波前组的装置包括用于当不能将相等数量的宏块分配给所述波前组时将每个宏块分配给特定波前组并且将额外的宏块分配给所述波前组中的至少一个波前组的装置。
在第三十一个示例中并且为促进前述示例中的任一项,一种装置可以包括:用于生成波前组的装置,所述用于生成波前组的装置包括用于基于宏块依赖关系将每个宏块分配给波前组的装置。
在第三十二个示例中并且为促进前述示例中的任一项,一种装置可以包括:用于并行地处理波前组中的每个宏块的装置。
在第三十三个示例中并且为促进前述示例中的任一项,一种装置可以包括:用于按照基于宏块依赖关系的顺序处理每个波前组的装置,其中,波前组中的宏块依赖于另一波前组中的宏块的处理结果。
一些实施例可使用表述“一个实施例”和“一实施例”及其派生词来描述。这些术语意味着与实施例相联系地描述的具体特征、结构或者特性被包含在至少一个实施例中。短语“在一个实施例中”在本说明书中各地方的出现不一定全都引用相同的实施例。进一步地,一些实施例可以使用表述“耦合”以及“连接”及其派生词来描述。这些术语并不必旨在作为彼此的同义词。例如,一些实施例可以使用术语“连接”和/或“耦合”来描述,以指示两个或更多个元件彼此直接物理或电气接触。然而,术语“耦合”还可以指两个或更多个元件未直接地彼此进行接触,但还是彼此进行合作或交互。
强调的是,提供本公开的摘要以允许读者快速确定本技术公开的本质。基于其将不被用于解释或者限制权利要求书的范围或者含义的理解提交所述摘要。此外,在前一个详细描述中,可以看到,出于将本公开连成一体的目的而将各种特征一起组合在单个实施例中。本公开的方法并不被解释为反映以下意图:所要求保护的实施例需要比每项权利要求中明确表述的特征更多的特征。而是被解释为:以下的权利要求书反映了本发明的主题在于比单个公开的实施例的全部特征少。因此,以下的权利要求书据此被并入详细的说明书中,其中,每项权利要求独立自主地作为单独的实施例。在所附权利要求书中,术语“包括(including)”和“其中(in which)”分别用作对应术语“包括(comprising)”和“其中,(wherein)”的易懂的英文等价词。此外,术语“第一”,“第二”,“第三”等仅用作标记,并且不旨在对其对象强加数字要求。
以上所描述的内容包括所公开的架构的示例。当然,不可能描述部件和/或方法的每个可想到的组合,但是本领域普通技术人员可以认识到许多其他组合和置换是可能的。相应地,本新颖的架构旨在涵盖落入所附权利要求书的精神和范围内的全部这种变更、修改和变体。

Claims (26)

1.一种装置,包括:
处理电路;
宏块模块,所述宏块模块用于在所述处理电路上执行以将包括像素的视频帧分割为多个宏块,每个宏块包括在多个宏块边界内的多个像素;
区域模块,所述区域模块用于在所述处理电路上执行以通过沿着宏块边界分割所述视频帧来创建至少两个具有多个宏块的区域;以及
波前模块,所述波前模块用于在所述处理电路上执行以基于每个区域中的所述宏块生成波前组,每个波前组包括有待并行处理的一个或多个宏块,所述用于生成波前组的波前模块包括向指示相应波前组的每个宏块分配相应索引,其中在用于首先进行处理的波前组的开始索引直到用于最后进行处理的波前组的最后索引之间分配所述索引,并且波前组的中间索引用于在所述开始索引与所述最后索引之间按索引顺序进行处理,其中具有在所述开始索引之后的索引的每个波前组中的宏块被放置成毗邻具有在前索引的波前组中的相应宏块,其中具有用于首先进行处理的开始索引的波前组包括放置在所述至少两个区域的第一区域的角落处的一个宏块以及沿着所述至少两个区域中的另一第二区域的对角线波前边界放置的多个宏块。
2.如权利要求1所述的装置,所述区域模块用于创建所述至少两个区域,包括沿着所述宏块边界对角地分割所述视频帧。
3.如权利要求2所述的装置,所述区域模块用于从所述视频帧的左下角到所述视频帧的右上角对角地分割所述视频帧。
4.如权利要求1所述的装置,所述区域模块用于创建所述至少两个区域,包括分割所述视频帧以使得每个区域具有相等数量的宏块以便最大化对所述宏块的并行处理。
5.如权利要求1所述的装置,所述波前模块用于生成所述波前组,包括当不能将相等数量的宏块分配给所述波前组时将每个宏块分配给特定波前组并且将额外的宏块分配给所述波前组中的至少一个波前组。
6.如权利要求1所述的装置,所述波前模块用于生成所述波前组,包括基于宏块依赖关系将每个宏块分配给波前组。
7.如权利要求1所述的装置,所述处理电路用于并行地处理波前组中的每个宏块。
8.如权利要求1所述的装置,所述处理电路用于按照基于宏块依赖关系的顺序处理每个波前组,其中,波前组中的宏块依赖于另一波前组中的宏块的处理结果。
9.如权利要求1所述的装置,其中,每个宏块包括16×16像素矩阵。
10.一种设备,包括:
用于将包括像素的帧分割为多个宏块的装置,每个宏块包括在多个宏块边界内的多个像素;
用于通过沿着宏块边界分割所述帧来创建至少两个具有多个宏块的区域的装置;以及
用于基于每个区域中的所述宏块生成波前组的装置,每个波前组包括有待并行处理的一个或多个宏块,其中生成波前组包括向指示相应波前组的每个宏块分配相应索引,其中在用于首先进行处理的波前组的开始索引直到用于最后进行处理的波前组的最后索引之间分配所述索引,并且波前组的中间索引用于在所述开始索引与所述最后索引之间按索引顺序进行处理,其中具有在所述开始索引之后的索引的每个波前组中的宏块被放置成毗邻具有在前索引的波前组中的相应宏块,其中具有用于首先进行处理的开始索引的波前组包括放置在所述至少两个区域的第一区域的角落处的一个宏块以及沿着所述至少两个区域中的另一第二区域的对角线波前边界放置的多个宏块。
11.如权利要求10所述的设备,所述用于创建至少两个区域的装置包括用于沿着所述宏块边界对角地分割所述帧的装置。
12.如权利要求11所述的设备,所述用于分割所述帧的装置包括用于从所述帧的左下角到所述帧的右上角对角地分割所述帧的装置。
13.如权利要求11所述的设备,所述用于创建至少两个区域的装置包括用于分割所述帧以使得每个区域具有相等数量的宏块以便对所述宏块进行最大并行处理的装置。
14.如权利要求11所述的设备,所述用于生成波前组的装置包括用于当不能将相等数量的宏块分配给所述波前组时将每个宏块分配给特定波前组并且将额外的宏块分配给所述波前组中的至少一个波前组的装置。
15.如权利要求11所述的设备,所述用于生成波前组的装置包括基于宏块依赖关系将每个宏块分配给波前组。
16.如权利要求11所述的设备,包括:
用于并行地处理波前组中的每个宏块的装置。
17.如权利要求11所述的设备,包括:
用于按照基于宏块依赖关系的顺序处理每个波前组的装置,其中,波前组中的宏块依赖于另一波前组中的宏块的处理结果。
18.一种计算机实现的方法,包括:
由处理部件将包括像素的帧分割为多个宏块,每个宏块包括在多个宏块边界内的多个像素;
通过沿着宏块边界分割所述帧来创建至少两个具有多个宏块的区域;以及
基于每个区域中的所述宏块生成波前组,每个波前组包括有待并行处理的一个或多个宏块,其中生成波前组包括向波前组的每个宏块分配相应索引,其中在用于首先进行处理的波前组的开始索引直到用于最后进行处理的波前组的最后索引之间分配所述索引,并且波前组的中间索引用于在所述开始索引与所述最后索引之间按索引顺序进行处理,其中具有在所述开始索引之后的索引的每个波前组中的宏块被放置成毗邻具有在前索引的波前组中的相应宏块,其中具有用于首先进行处理的开始索引的波前组包括放置在所述至少两个区域的第一区域的角落处的一个宏块以及沿着所述至少两个区域中的另一第二区域的对角线波前边界放置的多个宏块。
19.如权利要求18所述的计算机实现的方法,所述创建至少两个区域包括沿着所述宏块边界对角地分割所述帧。
20.如权利要求19所述的计算机实现的方法,所述分割所述帧包括从所述帧的左下角到所述帧的右上角对角地分割所述帧。
21.如权利要求18所述的计算机实现的方法,所述创建至少两个区域包括:分割所述帧以使得每个区域具有相等数量的宏块以便对所述宏块进行最大并行处理。
22.如权利要求18所述的计算机实现的方法,所述生成波前组包括当不能将相等数量的宏块分配给所述波前组时将每个宏块分配给特定波前组并且将额外的宏块分配给所述波前组中的至少一个波前组。
23.如权利要求18所述的计算机实现的方法,所述生成波前组包括基于宏块依赖关系将每个宏块分配给波前组。
24.如权利要求18所述的计算机实现的方法,包括:
并行地处理波前组中的每个宏块。
25.如权利要求18所述的计算机实现的方法,包括:
按照基于宏块依赖关系的顺序处理每个波前组,其中,波前组中的宏块依赖于另一波前组中的宏块的处理结果。
26.一种其上存储有指令的计算机可读介质,所述指令当由计算机处理部件执行时使所述处理部件执行如权利要求18至25中任一项所述的方法。
CN201580028931.5A 2014-06-30 2015-05-18 用于通过视频编码器处理视频帧的技术 Active CN106464882B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/319,437 US10257529B2 (en) 2014-06-30 2014-06-30 Techniques for generating wave front groups for parallel processing a video frame by a video encoder
US14/319,437 2014-06-30
PCT/US2015/031296 WO2016003548A1 (en) 2014-06-30 2015-05-18 Techniques for processing a video frame by a video encoder

Publications (2)

Publication Number Publication Date
CN106464882A CN106464882A (zh) 2017-02-22
CN106464882B true CN106464882B (zh) 2020-03-03

Family

ID=54932009

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580028931.5A Active CN106464882B (zh) 2014-06-30 2015-05-18 用于通过视频编码器处理视频帧的技术

Country Status (6)

Country Link
US (1) US10257529B2 (zh)
EP (1) EP3162056A4 (zh)
JP (1) JP6412589B2 (zh)
KR (1) KR102215363B1 (zh)
CN (1) CN106464882B (zh)
WO (1) WO2016003548A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105744283B (zh) * 2016-02-05 2019-02-22 南京云岩信息科技有限公司 并行视频编码的三维波前并行处理方法
US11553209B2 (en) 2019-05-15 2023-01-10 Hyundai Motor Company Method and apparatus for parallel encoding and decoding of moving picture data
WO2020231220A1 (ko) * 2019-05-15 2020-11-19 현대자동차주식회사 동영상 데이터의 병렬 부호화 및 복호화를 위한 방법 및 장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019002B2 (en) * 2006-06-08 2011-09-13 Qualcomm Incorporated Parallel batch decoding of video blocks
US9077998B2 (en) * 2011-11-04 2015-07-07 Qualcomm Incorporated Padding of segments in coded slice NAL units
US9124895B2 (en) 2011-11-04 2015-09-01 Qualcomm Incorporated Video coding with network abstraction layer units that include multiple encoded picture partitions
US9332259B2 (en) * 2012-01-18 2016-05-03 Qualcomm Incorporated Indication of use of wavefront parallel processing in video coding
WO2014003676A1 (en) * 2012-06-29 2014-01-03 Telefonaktiebolaget L M Ericsson (Publ) Apparatus and methods thereof for video processing
US9621905B2 (en) 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing
JP6376719B2 (ja) 2012-06-29 2018-08-22 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US20140003532A1 (en) 2012-06-29 2014-01-02 Qualcomm Incorporated Wavefront parallel processing for video coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Evaluation of data-parallel H.264 decoding approaches for strongly resourcerestricted architectures;Florian H. Seitner;《Springer Science+Business Media, LLC 》;20100331;说明书第4.5节对角线方法 *
高效的H.264 并行编码算法;孙书为;《电子学报》;20090228(第2期);说明书第2节MBRP并行编码机制 *

Also Published As

Publication number Publication date
EP3162056A4 (en) 2018-03-28
KR102215363B1 (ko) 2021-02-10
US10257529B2 (en) 2019-04-09
EP3162056A1 (en) 2017-05-03
US20150382021A1 (en) 2015-12-31
WO2016003548A1 (en) 2016-01-07
JP2017520159A (ja) 2017-07-20
CN106464882A (zh) 2017-02-22
JP6412589B2 (ja) 2018-10-24
KR20170002512A (ko) 2017-01-06

Similar Documents

Publication Publication Date Title
CN106797464B (zh) 用于视频编码和解码中的矢量编码的方法和装置
US9392292B2 (en) Parallel encoding of bypass binary symbols in CABAC encoder
JP6163674B2 (ja) 高効率次世代ビデオコーディングのためのコンテンツ適応双方向性又は機能性予測マルチパスピクチャ
US8218640B2 (en) Picture decoding using same-picture reference for pixel reconstruction
US9807410B2 (en) Late-stage mode conversions in pipelined video encoders
US20140153635A1 (en) Method, computer program product, and system for multi-threaded video encoding
CN107079169B (zh) 用于由视频编码器使用正向变换矩阵执行正向变换的方法、设备、装置和介质
CN105554505B (zh) 应用处理器及其方法以及包括该应用处理器的***
US20160007046A1 (en) Estimating rate costs in video encoding operations using entropy encoding statistics
CN105657430B (zh) 修改运动补偿信息的数据处理***和解码视频数据的方法
US11902570B2 (en) Reduction of visual artifacts in parallel video coding
CN106464882B (zh) 用于通过视频编码器处理视频帧的技术
CN105245896A (zh) Hevc并行运动补偿方法及装置
US20210321093A1 (en) Method and system of video coding with efficient intra block copying
CN116940965A (zh) 用于网格压缩的片时间对齐解码
WO2023184206A1 (en) Enhanced presentation of tiles of residual sub-layers in low complexity enhancement video coding encoded bitstream
US20240153150A1 (en) Mesh Compression Texture Coordinate Signaling and Decoding
WO2023102868A1 (en) Enhanced architecture for deep learning-based video processing
TWI691850B (zh) 用於進行即時迴路內濾波的應用處理器、用於該應用處理器之方法以及包括該應用處理器的系統
US9800876B2 (en) Method of extracting error for peak signal to noise ratio (PSNR) computation in an adaptive scalable texture compression (ASTC) encoder

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