CN107113439A - 用于基于gpu的解块的高并行依赖性模式 - Google Patents

用于基于gpu的解块的高并行依赖性模式 Download PDF

Info

Publication number
CN107113439A
CN107113439A CN201580061427.5A CN201580061427A CN107113439A CN 107113439 A CN107113439 A CN 107113439A CN 201580061427 A CN201580061427 A CN 201580061427A CN 107113439 A CN107113439 A CN 107113439A
Authority
CN
China
Prior art keywords
thread
dependence
threads
processor
equipment
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.)
Pending
Application number
CN201580061427.5A
Other languages
English (en)
Inventor
H.吴
J.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 CN107113439A publication Critical patent/CN107113439A/zh
Pending legal-status Critical Current

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/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/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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • H04N19/865Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness with detection of the former encoding block subdivision in decompressed video

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

线程依赖性方案可显著减少依赖性负担,并在一些实施例中改进采用相对高的依赖性的视频压缩技术(诸如VP9)中的并行效率。一个基本特征是要将单独的大内核程序分裂成多个不那么依赖的较小内核程序,由此显著提高了能够潜在地并行运行的软件线程的数量。另一个特征是要定义具有特定线程的空间位置和相关联的上下文的较大数量的线程依赖性(用于各线程的所有依赖性候选的超集),并且掩蔽一些不必要的线程依赖性。

Description

用于基于GPU的解块的高并行依赖性模式
背景技术
VP9是Google所提出的领先视频压缩标准,其在互联网媒体应用(包括流播视频和视频会议)上经历着日益增长的普及。VP9致力于64×64像素的超级块。VP9的解块模块通过首先对垂直边缘并且其次对水平边缘进行滤波(filtering),来减少超级块上的块状伪像。
VP9的解块模块因其对近邻结果的高依赖性而在传统软件实现中消耗计算成本的大部分。更具体来说,线程在能够使用由那些邻近线程进行的执行的结果来完成执行之前需要等待邻近块的线程的执行。采用传统图形处理单元(GPU)实现,计算并行效率由于VP9解块模块的新空间依赖性模式而是非常差的。
附图说明
关于下列的图来描述一些实施例:
图1示出按照一个实施例的波前26依赖性;
图2示出按照一个实施例的超级块的解块边缘及其最靠近的近邻;
图3示出按照一个实施例的用于各边缘的依赖性模式;
图4示出按照一个实施例、分裂成128个较小线程的64×64像素超级块;
图5示出用于一个实施例的七个依赖性候选;
图6示出按照一个实施例、具有变换单元(TU)大小信息的依赖性插图;
图7是用于一个实施例的流程图;
图8是用于一个实施例的示意绘图;以及图9是按照一个实施例的系统的前视图。
具体实施方式
线程依赖性方案可显著减少依赖性负担(penalty),并且在一些实施例中改进具有相对高依赖性的视频压缩技术(诸如VP9)中的并行效率。这种方法可作为图形处理单元(GPU)软件解决方案或者固定功能硬件解决方案(作为两个实施例)来应用。
单独大内核程序(kernel)可分裂成多个不太相依赖的较小内核程序,由此显著提高了能够潜在并行运行的软件线程的数量。另一个特征是定义具有特定线程的空间位置和相关联的上下文的较大数量的线程依赖性(用于各线程的所有依赖性候选的超集),并且掩蔽一些不必要的线程依赖性。
采用更复杂的依赖性模式,在传统GPU软件实现中,各线程处理较大(例如,64×64)像素块数据区域,并且在一个内核程序中操纵垂直和水平边缘解块二者。在64×64像素块上不可能将垂直边缘和水平边缘解块分离,因为它们相互依赖。各内核程序具有左、左顶部、顶部和右顶部空间结果依赖性。
对于全高清晰度(1920×1080)分辨率图片,峰值并行线程数量沿对角线仅为15个。这个数量比普及的GPU系统上可用的硬件线程的最大数量要小许多。考虑到对于实际系统需要斜升(ramp up)和冷却阶段,平均并行线程数量比峰值数量要小许多。因此,执行单元(EU)的实际使用对于VP9解块模块是非常差的。
在以下论述中,提供使用VP9的示例,但是原理也应用于具有从使用相对较大的块大小而产生的相对复杂的依赖性模式的任何解块模块。
为了解决这些问题,64×64像素数据区域可分裂为许多较小线程(即,对于总共128个线程,为64个垂直边缘解块线程和64个水平边缘解块线程)。与传统VP9的4个依赖性方向(左、左顶部、顶部、右顶部)相比,这种方式将总依赖性候选的方向从4个提高到7个。虽然依赖性方向的总数量为7,但是采用特定线程的上下文,人员能够进一步掩蔽一些依赖性,使得在一些实施例中对于特定线程需要7个依赖性中的仅仅3个。
媒体管线可使用记分板技术来增强线程依赖性。各线程在线程空间内具有关联(X, Y)坐标。各线程可具有多达八个依赖性。依赖性关系通过记分板中的相对距离(ΔX,ΔY)来描述。波前26-度依赖性是一示例。这个模式具有按照(ΔX, ΔY)的四个依赖性(-1,0) (-1 ,-1) (0,-1)和(1 ,-1)。各线程与在其正左方、左上方、正上方和右上方的线程具有依赖性。这导致能够同时运行的线程波。
图1示出这个26-度依赖性,其中方框是线程,且数字表示线程执行顺序。波前26-度产生于跨图1中所示的能够并行运行的线程集合的网格的角度。图1示出线程执行顺序,其中数字表示线程执行顺序,各框表示线程。图1中仅示出128个线程的48个。因此,在左上角标记为1的方框表示首先执行的线程,然后在右边的方框2执行,然后标记为3的方框能够执行(并行地,一次两个地)。
在26-度波前依赖性模式中,线程可依赖于在其左上方、正上方、右上方和其正左方的线程。
因此在图1中,线程2仅依赖于在其左边的线程1。第二行中的线程3依赖于在其上方的线程1和在其右上的线程2。波前是同时运行的线程的数量。因此,执行序列是线程1和2、两个线程3、两个线程4以及通过5所标识的三个线程、通过6所标识的三个线程、通过7所标识的四个线程和四个线程8。因此,波是线程1、然后2、然后3(2)、4(2)、5(3)、6(3)、7(4)等。
在具有总共48个线程的这个示例中,能够同时运行的线程的最大数量对于图1中的线程数7-12为4个。而且,这个最大在图1中左上角附近所进行的提高同时运行的线程的数量的预热时段之后被达到,并且之后跟随在接近图1中的右下角,降低同时运行的线程的数量的冷却时段。峰值的同时线程数量与线程空间的宽度或者高度相关。线程空间中可用的软件线程越多,则能够达到的GPU并行性越大。
考虑VP9解块模块中的依赖性情形。可在对垂直和水平边缘二者的4×4像素块边界上来应用最低粒度解块操作。在VP9中,每个64×64像素块区域被称作超级块。解块的数据依赖性通过解块操作排序来确定。解块排序如下所述。在超级块内部,首先按照由左至右的垂直光栅扫描顺序来应用所有垂直边缘的解块,并且然后按照由顶部至底部的水平光栅扫描顺序来应用所有水平边缘解块。
图2示出具有垂直和水平解块边缘二者的VP9超级块(通过加阴影所指示的)的左上角(8×8像素块)。垂直虚线是处理垂直解块边缘的线程,以及水平虚线是水平解块边缘。超级块的加阴影部分在上方和左边具有依赖性(如图2中所指示的)。因此,64个线程用来操纵水平边缘,以及64个线程用于垂直边缘。
图3示出对于垂直和水平边缘二者的五个缺省依赖性。实线是依赖性边缘,以及点线是关联或近邻边缘。一般来说,存在基于不同边缘空间位置的不同依赖性模式。图3中的顶部三个图像示出垂直边缘依赖性。垂直边缘操作依赖于其左近邻的垂直边缘的结果,如由在其左边具有点线L4的实线L3所示。如果垂直边缘处于超级块边界上,则它依赖于其左超级块近邻的水平边缘结果,如连接到水平点线L6的垂直实线L5所示。
图3中的底部两个图像示出水平边缘依赖性。水平边缘操作可依赖于其顶部近邻的水平边缘结果(如由在其上部具有点线L8的实线L7所示)以及其左和右垂直边缘的结果(如由具有示出在其侧的垂直点线L10的实线L9所示)。
第一基本想法是将较大线程(传统的每线程64×64像素数据区域)分裂成没有“死锁”(即,不可确定)依赖性的许多较小线程。为了避免死锁依赖性,垂直边缘操作和水平边缘操作被置于分离的交织线程中。这是对于进行分裂的关键原因,因为以其它方式依赖性死锁是不可避免的。
图4示出垂直和水平线程的交织,其中L代表左,T代表顶部,V代表仅操纵垂直边缘的线程,以及H代表仅操纵水平边缘的线程。数字是线程数量。因此,V00、H00是具有不同坐标的分离线程。例如,考虑如果图4中所示线程是顶部和左超级块(没有_T或_L),则V00具有(x, y)坐标(0, 0),并且H00具有(x, y)坐标(1, 0)。因此,V07_L、H07_L是在被处理块中的像素V00、H00的左边的下一个像素中的边缘。
将超级块分裂为128个线程(64个垂直边缘线程和64个水平边缘线程)只是一个示例。划分的理想数量能够是不同的(即,32个线程、64个线程、256个线程、…),并且既可基于硬件平台配置也可基于驱动器实现。
另一个基本概念是关于当前线程来定义7个依赖性候选,并且然后清除高达四个的不必要的依赖性。所有可能的依赖性在图5中被列出。存在7个依赖性,其被全部处于“当前线程”周围的以下线程所包括:左下线程(掩蔽0(-1, 1))、在左边两个像素的线程(掩蔽1(-2, 0))、左边的线程(掩蔽2(-1, 0))、向上一个并向左一个的线程(掩蔽3(-1, -1))、上方线程(掩蔽4(0, -1))、向上一个并在右边的线程(掩蔽5(1, -1))、右边线程(掩蔽6(1,0))。
一些内容信息可帮助减少那些线程依赖性。首先,块位点信息能够如图6中所示减少线程依赖性的数量。
其次,变换单元大小能够用来进一步减少相同方向上的依赖性的数量。专用于各帧的变换单元大小可从帧到帧进行改变。不同变换单元大小可导致不同数量的依赖性。可清除水平边缘线程对其上方近邻的依赖性,以及还可清除垂直边缘线程对其左近邻的依赖性。那些相同方向操作的依赖性是重叠像素处理的结果。
在图6中的右部分(3个情形),在16×16变换单元的左边存在8×8变换单元。在行14与行16之间存在像素重叠。行操作14的源像素必须是通过行操作18所修正的像素,因此存在结果依赖性。图6中在16×16变换单元的右边上具有8×8变换单元的左部分,在行18与行20之间不存在像素重叠。行20像素操作没有来自行18像素操作的结果依赖性。
对于16×16或更大大小的变换单元(TU),解块可从各方向(左/右、上/下)读8个像素,并且在各方向上修正7个像素。对于TU 8×8,解块可从各方向(左/右、上/下)读4个像素,并且在各方向上修正3个像素。对于TU 4×4,解块可从各方向(左/右、上/下)读4个像素,并且在各方向上修正2个像素。
对于垂直边缘的重叠/依赖性在图6中被描述。可在水平边缘上应用类似概念。采用这个TU大小信息,人员能够将依赖性从20%减少到40%,并且在一些实施例中基于变化的内容来改进并行性。由于解块将不会在图片/铺片边界上发生,故这个上下文能够被利用来进一步减少依赖性。
在一些实施例中,不是总是使用给定数量的线程,而是可经过修改。例如,通过查看给定帧的特性,可补偿(render)线程的数量以减少复杂度。
VP9内核程序可用来对VP9 剪辑(VP9 clip)进行解码。当逐帧处理剪辑时,内核程序基于帧内的编码看到变换单元大小的情况。在一个实施例中,全部七个依赖性在硬件中或者由驱动器进行设置以用于各线程驱动器。线程然后清除不需要的那些依赖性。例如,7个寄存器设置成增强写入时被清除的7个依赖性。因此,如果内核程序向寄存器进行写,则它清除被那个寄存器所增强的依赖性。因此,在最后,仅增强未被清除的寄存器的依赖性。
图7是按照一个实施例、用于实现解码内核程序的序列。序列80可在软件、固件和/或硬件中被实现。在软件和固件实施例中,它可由一个或多个非暂态计算机可读媒体(例如磁、光或者半导体存储装置)中存储的计算机执行的指令来实现。在一些实施例中,解块内核程序可以是与图形处理单元关联存储的视频压缩/解压缩算法的部分。
图7中所示的内核程序80开始于将线程的数量设置成等于像素的水平行的数量加上像素的垂直行的数量,如框82中所示。然后可如框84中所指示的,设置依赖性的数量。
因此,对于VP9算法中的一示例,线程的数量可设置成等于64,并且依赖性可设置成7个。
然后,如框86中所指示的,依赖性的数量可基于像素位点而减少。在一些实施例中,如框88中所指示的,依赖性的数量也可基于变换大小而减少。然后,如框90中所指示的,执行解块。
例如,在一些实施例中,寄存器可被提供用于7个可能依赖性中的每个,寄存器缺省地被确立用于给定线程。然后,线程本身可检查那些依赖性,并且确定是否实际需要那些依赖性。例如,当线程尝试向用于给定依赖性的给定寄存器进行写时,那个依赖性被清除并且不再被增强。
图8示出系统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一起来实现图7的序列。
存储器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。平台702和/或内容服务装置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)高速图形卡。
在各种实施例中,可集成系统700中所示组件中的任何一个或多个。例如,可集成平台702和内容服务装置730,或者可集成平台702和内容输送装置740,或者例如可集成平台702、内容服务装置730、和内容输送装置740。在各种实施例中,平台702和显示器720可以是集成单元。例如,可集成显示器720和内容服务装置730,或者可集成显示器720和内容输送装置740。这些示例并不是意在范围限制。
在各种实施例中,系统700实现为无线系统、有线系统或者二者的组合。当实现为无线系统时,系统700可包括适合于通过无线共享媒体进行通信的组件和接口,诸如一个或多个天线、传送器、接收器、收发器、放大器、滤波器、控制逻辑等。无线共享媒体的一个示例可包括无线频谱的部分,诸如RF频谱等。当实现为有线系统时,系统700可包括适合于通过有线通信媒体进行通信的组件和接口,诸如输入/输出(I/O)适配器、将I/O适配器与对应有线通信媒体相连接的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等。有线通信媒体的示例可包括导线、线缆、金属引线、印刷电路板(PCB)、底板(backplane)、交换构造、半导体材料、双绞线、同轴线缆、光纤等。
平台702可确立一个或多个逻辑或物理信道以交换信息。信息可包括媒体信息和控制信息。媒体信息可指代表示意在用于用户的内容的任何数据。内容的示例可包括例如来自语音对话、视频会议、流播视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音对话的数据可以例如是讲话信息、静寂周期、背景噪声、舒适噪声、语调等。控制信息可指代表示意在用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可用于通过系统路由媒体信息,或者指导节点以预确定方式处理媒体信息。然而,实施例并不被限制于图4中所示或所述的元件或上下文中。
如上所述,系统700可按照变化的物理类型或形状因数来实施。图9示出系统700可在其中实施的小形状因数装置800的实施例。在实施例中,例如,装置800可实现为具有无线能力的移动计算装置。例如,移动计算装置可指代具有处理系统和移动功率源或供应(诸如一个或多个电池)的任何装置。
如上所述,移动计算装置的示例可包括个人计算机(PC)、膝上型计算机、超膝上型计算机、平板、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能装置(例如智能电话、智能平板或者智能电视机)、移动互联网装置(MID)、消息传递装置、数据通信装置等。
移动计算装置的示例还可包括布置成由人穿戴的计算机,诸如手腕计算机、手指计算机、指环计算机、眼镜计算机、腰带夹计算机、臂章计算机、鞋式计算机、服饰计算机和其它可穿戴计算机。在实施例中,例如,移动计算装置可实现为能够执行计算机应用以及进行语音通信和/或数据通信的智能电话。虽然作为举例可采用实现为智能电话的移动计算装置来描述一些实施例,但可被领会到的是,其它实施例也可使用其它无线移动计算装置来实现。实施例并不被限制于这个上下文中。
在一些实施例中,处理器710可与摄像机722和全球定位系统传感器720进行通信。在软件和/或固件实施例中,耦合到处理器710的存储器712可存储用于实现图7中所示序列的计算机可读指令。
如图9中所示,装置800可包括壳体802、显示器804、输入/输出(I/O)装置806和天线808。装置800还可包括导航特征812。显示器804可包括用于显示适于移动计算装置的信息的任何适合的显示器单元。I/O装置806可包括用于将信息输入移动计算装置中的任何适合的I/O装置。I/O装置806的示例可包括字母数字键盘、数字键盘、触摸板、输入按键、按钮、开关、摇杆开关、麦克风、扬声器、语音识别装置和软件等。信息也可通过麦克风输入到装置800中。此类信息可由语音识别装置来数字化。实施例并不被限制于这个上下文中。
下列款项和/或示例属于进一步实施例:
一个示例实施例可以是一种方法,其包括通过将用于整个块的较大内核程序分裂成具有较少依赖性的较小部分来执行用于视频压缩的解块,并且通过消除不必要的依赖性来减少用于给定线程的依赖性的数量。该方法还可包括使用与用于视频压缩的块大小的行数量加上其列数量相等的线程数量。该方法还可包括基于块内的像素位点来减少不需要的依赖性。该方法还可包括基于变换单元大小来减少不需要的依赖性。该方法还可包括使用64×64像素或更大的块大小。该方法还可包括每线程指派七个依赖性,并且然后尝试减少依赖性的数量。该方法还可包括将七个依赖性指派给当前线程左边的两个线程、当前线程右边的一个线程、当前线程上方的三个线程以及在当前线程下方且在其左边的一个线程。
另一个示例实施例可以是一个或多个非暂态计算机可读媒体,其存储用来执行包括下列步骤的序列的指令:通过将用于整个块的较大内核程序分裂成具有较少依赖性的较小部分来执行用于视频压缩的解块,以及通过消除不必要的依赖性来减少用于给定线程的依赖性的数量。该媒体可包括使用与用于视频压缩的块大小的行数量加上其列数量相等的线程数量。该媒体可包括基于块内的像素位点来减少不需要的依赖性。该媒体可包括基于变换单元大小来减少不需要的依赖性。该媒体可包括使用64×64像素或更大的块大小。该媒体可包括每线程指派七个依赖性,并且然后尝试减少依赖性的数量。该媒体可包括将七个依赖性指派给当前线程左边的两个线程、当前线程右边的一个线程、当前线程上方的三个线程以及在当前线程下方且在其左边的一个线程。
在另一个示例实施例中,可以是一种设备,其包括:处理器,用来通过将用于整个块的较大内核程序分裂成具有较少依赖性的较小部分来执行用于视频压缩的解块,以及通过消除不必要的依赖性来减少用于给定线程的依赖性的数量;以及存储装置,耦合到所述处理器。该设备可包括所述处理器,所述处理器用来使用与用于视频压缩的块大小的行数量加上其列数量相等的线程数量。该设备可包括所述处理器,所述处理器用来基于块内的像素位点来减少不需要的依赖性。该设备可包括所述处理器,所述处理器用来基于变换单元大小来减少不需要的依赖性。该设备可包括所述处理器,所述处理器使用64×64像素或更大的块大小。该设备可包括所述处理器,所述处理器用来每线程指派七个依赖性,以及然后尝试减少依赖性的数量。该设备可包括所述处理器,所述处理器用来将七个依赖性指派给当前线程左边的两个线程、当前线程右边的一个线程、当前线程上方的三个线程以及在当前线程下方且在其左边的一个线程。该设备可包括通信耦合到电路的显示器。该设备可包括耦合到电路的电池。该设备可包括固件以及用来更新所述固件的模块。
本文中所述的图形处理技术可以各种硬件架构来实现。例如,图形功能性可集成在芯片集中。备选地,可使用分立图形处理器。作为仍有的另一个实施例,图形功能可由包括多核处理器的通用处理器来实现。
本说明书中各处对“一个实施例”或“一实施例”的引用意味联系该实施例所述的具体特征、结构或特性包括在本公开所包含的至少一个实现中。因此,短语“一个实施例”或“在一实施例中”的出现不一定指代相同的实施例。此外,具体特征、结构或特性可以与所示具体实施例不同的其它适合形式被创立,并且所有此类形式可被包含在本申请的权利要求内。
虽然已描述了有限数量的实施例,但本领域中的那些技术人员将从中领会到众多的修改和变化。附带权利要求旨在覆盖落入此公开的真正精神和范围之内的所有此类修改和变化。

Claims (17)

1. 一种方法,包括:
通过将用于整个块的较大内核程序分裂成具有较少依赖性的较小部分来执行用于视频压缩的解块;以及
通过消除不必要的依赖性来减少用于给定线程的依赖性的数量。
2.如权利要求1所述的方法,包括使用与用于视频压缩的块大小的行数量加上该块大小的列数量相等的线程数量。
3.如权利要求1所述的方法,包括基于所述块内的像素位点来减少不需要的依赖性。
4.如权利要求1所述的方法,包括基于变换单元大小来减少不需要的依赖性。
5.如权利要求1所述的方法,包括使用64×64像素或更大的块大小。
6.如权利要求1所述的方法,包括每线程指派七个依赖性,以及然后尝试减少依赖性的数量。
7.如权利要求6所述的方法,包括将七个依赖性指派给当前线程左边的两个线程、所述当前线程右边的一个线程、所述当前线程上方的三个线程、以及在所述当前线程下方且在所述当前线程左边的一个线程。
8. 一种设备,包括:
处理器,用来通过将用于整个块的较大内核程序分裂成具有较少依赖性的较小部分来执行用于视频压缩的解块,并且通过消除不必要的依赖性来减少用于给定线程的依赖性的数量;以及
存储装置,耦合到所述处理器。
9.如权利要求8所述的设备,所述处理器用来使用与用于视频压缩的块大小的行数量加上该块大小的列数量相等的线程数量。
10.如权利要求8所述的设备,所述处理器用来基于所述块内的像素位点来减少不需要的依赖性。
11.如权利要求8所述的设备,所述处理器用来基于变换单元大小来减少不需要的依赖性。
12.如权利要求8所述的设备,所述处理器用来使用64×64像素或更大的块大小。
13.如权利要求8所述的设备,所述处理器用来每线程指派七个依赖性,以及然后尝试减少依赖性的数量。
14.如权利要求13所述的设备,所述处理器用来将七个依赖性指派给当前线程左边的两个线程、所述当前线程右边的一个线程、所述当前线程上方的三个线程、以及在所述当前线程下方且在所述当前线程左边的一个线程。
15.如权利要求8所述的设备,包括通信耦合到电路的显示器。
16.如权利要求8所述的设备,包括耦合到电路的电池。
17.如权利要求10所述的设备,包括固件以及用来更新所述固件的模块。
CN201580061427.5A 2014-12-10 2015-11-02 用于基于gpu的解块的高并行依赖性模式 Pending CN107113439A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/565,555 2014-12-10
US14/565,555 US20160173897A1 (en) 2014-12-10 2014-12-10 High Parallelism Dependency Pattern for GPU Based Deblock
PCT/US2015/058573 WO2016093978A1 (en) 2014-12-10 2015-11-02 High parallelism dependency pattern for gpu based deblock

Publications (1)

Publication Number Publication Date
CN107113439A true CN107113439A (zh) 2017-08-29

Family

ID=56107902

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580061427.5A Pending CN107113439A (zh) 2014-12-10 2015-11-02 用于基于gpu的解块的高并行依赖性模式

Country Status (4)

Country Link
US (1) US20160173897A1 (zh)
EP (1) EP3231179A4 (zh)
CN (1) CN107113439A (zh)
WO (1) WO2016093978A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9589311B2 (en) * 2013-12-18 2017-03-07 Intel Corporation Independent thread saturation of graphics processing units
WO2018000224A1 (en) * 2016-06-29 2018-01-04 Intel Corporation Encoding and decoding video

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103229506A (zh) * 2010-12-07 2013-07-31 索尼公司 图像处理设备和图像处理方法
CN103891292A (zh) * 2011-10-24 2014-06-25 联发科技股份有限公司 非跨图块环路滤波方法及其装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10300048B4 (de) * 2002-01-05 2005-05-12 Samsung Electronics Co., Ltd., Suwon Verfahren und Vorrichtung zur Bildcodierung und -decodierung
US8594203B2 (en) * 2006-10-16 2013-11-26 Nokia Corporation System and method for using parallelly decodable slices for multi-view video coding
US20080298473A1 (en) * 2007-06-01 2008-12-04 Augusta Technology, Inc. Methods for Parallel Deblocking of Macroblocks of a Compressed Media Frame
US8861586B2 (en) * 2008-10-14 2014-10-14 Nvidia Corporation Adaptive deblocking in a decoding pipeline
US9232237B2 (en) * 2011-08-05 2016-01-05 Texas Instruments Incorporated Block-based parallel deblocking filter in video coding
WO2013037254A1 (en) * 2011-09-13 2013-03-21 Mediatek Inc. Method and apparatus for reduction of deblocking filter
US20130170562A1 (en) * 2011-12-28 2013-07-04 Qualcomm Incorporated Deblocking decision functions for video coding
KR101877867B1 (ko) * 2012-02-21 2018-07-12 삼성전자주식회사 비디오 파라미터를 이용한 복잡도 측정 기반의 병렬 인-루프 화소 보정에 대한 부호화/복호화 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103229506A (zh) * 2010-12-07 2013-07-31 索尼公司 图像处理设备和图像处理方法
CN103891292A (zh) * 2011-10-24 2014-06-25 联发科技股份有限公司 非跨图块环路滤波方法及其装置

Also Published As

Publication number Publication date
US20160173897A1 (en) 2016-06-16
EP3231179A4 (en) 2018-05-02
EP3231179A1 (en) 2017-10-18
WO2016093978A1 (en) 2016-06-16

Similar Documents

Publication Publication Date Title
US11741682B2 (en) Face augmentation in video
TWI617996B (zh) 使用方向性濾波之物件檢測技術
WO2013152452A1 (en) Parallel processing image data having top-left dependent pixels
CN109978077B (zh) 视觉识别方法、装置和系统及存储介质
CN104035540B (zh) 在图形渲染期间降低功耗
CN110047124A (zh) 渲染视频的方法、装置、电子设备和计算机可读存储介质
US20160048949A1 (en) Skin tone tuned image enhancement
US9811334B2 (en) Block operation based acceleration
US10310998B2 (en) Direct memory access with filtering
KR20220101645A (ko) 게이밍 초해상도
CN104737198A (zh) 在输入几何对象粒度上记录可见度测试的结果
US10373288B2 (en) Transpose of image data between a linear and a Y-tiled storage format
CN107113439A (zh) 用于基于gpu的解块的高并行依赖性模式
TWI517089B (zh) 色彩緩衝器快取技術
US20140179370A1 (en) System, process, and computer program product for implementing a document scanner in a hand-held device
CA2855429A1 (en) Techniques for spatially sorting graphics information
CN108288247A (zh) 一种多核dsp平台上的实时图像细节增强方法
CN106462936A (zh) 深度偏移压缩
CN108604367B (zh) 一种显示方法以及手持电子设备
US8737759B2 (en) Image blurring by partitioning a non-separable fir filter
US10728551B2 (en) Methods and apparatus for block-based layout for non-rectangular regions between non-contiguous imaging regions
EP2854102A1 (en) Conservative morphological anti-aliasing
CN113994652A (zh) 电子设备及其控制方法
CN110706167A (zh) 一种遥感图像待修复区域的精细补全处理方法及装置
US9317768B2 (en) Techniques for improved feature detection

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170829