CN102763136A - 用于提供多线程视频解码的方法和设备 - Google Patents

用于提供多线程视频解码的方法和设备 Download PDF

Info

Publication number
CN102763136A
CN102763136A CN2011800092510A CN201180009251A CN102763136A CN 102763136 A CN102763136 A CN 102763136A CN 2011800092510 A CN2011800092510 A CN 2011800092510A CN 201180009251 A CN201180009251 A CN 201180009251A CN 102763136 A CN102763136 A CN 102763136A
Authority
CN
China
Prior art keywords
frame
equipment
macro
processor
block line
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.)
Granted
Application number
CN2011800092510A
Other languages
English (en)
Other versions
CN102763136B (zh
Inventor
C·库玛
S·R·基米迪
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.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of CN102763136A publication Critical patent/CN102763136A/zh
Application granted granted Critical
Publication of CN102763136B publication Critical patent/CN102763136B/zh
Expired - Fee Related 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/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/172Methods 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 picture, frame or field
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]

Abstract

一种用于使得能够提供多线程视频解码的设备可以包括至少一个处理器和包括计算机程序代码的至少一个存储器。所述至少一个存储器和计算机程序代码可以被配置成使用所述处理器促使所述设备至少执行:将各个视频帧的解码分配给用于多核处理器的每个核处理器的相应线程,其中各个视频帧被划分成宏块行,在宏块行水平解析每个相应视频帧的相关性,并在宏块行水平提供用于每个相应线程的视频解码的同步。还提供了相应的方法和计算机程序产品。

Description

用于提供多线程视频解码的方法和设备
技术领域
本发明的实施例一般地涉及视频解码技术,并且更特别地涉及用于多线程视频解码的方法和设备。
背景技术
现代通信时代已经引起有线和无线网络的巨大扩展。计算机网络、电视网络和电话网络正在经历由消费者需求激起的空前的技术扩展。无线和移动联网技术已经解决了相关消费者需求,同时提供了信息传输的更大灵活性和直接性。
当前和未来的联网技术通过扩展移动电子设备的能力来继续促进信息传输的容易性和对用户的方便性。已经开发了并将继续开发各种应用和软件以便为用户提供用以在移动环境中执行任务、通信、获得信息或服务、自娱自乐等的稳健能力。有了移动电子设备的稳健能力和此类设备的相对小的尺寸,个体几乎持续地随身携带移动电子设备变得越来越常见。此外,由于此类设备对工作、游戏、休闲、娱乐及其它目的有用,所以许多用户还频繁地与其设备相交互。
连同已扩展移动电子设备的能力的新应用和改善的网络的持续开发一起,还已引入了硬件改进。在这方面,多核处理器的使用相对于改善固定电子设备(例如个人计算机(PC))的能力而言变得非常常见。虽然多核处理器能够增加处理容量,并且已由于其稳健的处理能力而开始更频繁地在移动通信设备中使用,但多核处理器在与移动电子设备相结合地使用时可能面对某些限制。由于移动电子设备通常是电池供电的,所以使用多核处理器可能以更快的速率消耗电池资源。因此,当在移动电子设备中采用多核处理器时,用于在处理期间减少电池功率的策略可能是期望的。以较低的速率(相对于PC中的时钟速度)对用于移动电子设备的多核处理器进行计时是用于管理移动电子设备电池消耗的策略的一个示例。然而,在实现也可以改善电池消耗特性的其它策略的同时也可能体验多核处理的益处。
发明内容
因此提供了用于使得能够以多个线程来实现视频序列数据的多核解码的方法、设备和计算机程序产品。某些实施例可以实现对称多核处理(SMP)以通过在宏块行水平同步来处理视频序列的多个线程。因此,某些实施例通过要求比替换多线程视频解码技术更少频繁地同步来减少开销。因此,可以改善用于移动设备中的多核处理器的电池消耗特性。然而,可以与具有多核处理器的固定设备和/或移动设备相结合地使用实施例,以使得能够实现更高分辨率和更高帧速率的视频序列的改善的视频解码。
在一个示例性实施例中,提供了一种提供多线程视频解码的方法。该方法可以包括将各个视频帧的解码分配给用于多核处理器的每个核处理器的相应线程,其中每个相应视频帧被划分成宏块行、在宏块行水平解析每个相应视频帧的相关性、以及在宏块行水平提供用于每个相应线程的视频解码的同步。
在另一示例性实施例中,提供了一种用于提供多线程视频解码的计算机程序产品。该计算机程序产品包括具有存储在其中的计算机可执行程序代码指令的至少一个计算机可读存储介质。该计算机可执行程序代码指令可以包括程序代码指令,其用于将各个视频帧的解码分配给用于多核处理器的每个核处理器的相应线程,其中每个相应视频帧被划分成宏块行、在宏块行水平解析每个相应视频帧的相关性、以及在宏块行水平提供用于每个相应线程的视频解码的同步。
在另一示例性实施例中,提供了一种用于提供多线程视频解码的设备。该设备可以包括至少一个处理器和包括计算机程序代码的至少一个存储器。可以用处理器将所述至少一个存储器和所述计算机程序代码配置成促使设备至少执行:将各个视频帧的解码分配给用于多核处理器的每个核处理器的相应线程,其中每个相应视频帧被划分成宏块行、在宏块行水平解析每个相应视频帧的相关性、以及在宏块行水平提供用于每个相应线程的视频解码的同步。
本发明的实施例提供了供在设备中采用的方法、设备和计算机程序产品,使得例如设备用户可以享受相对于可经由设备访问的应用和服务的改善的能力。
附图说明
因此已经概括地描述了本发明的实施例,现在将对附图进行参考,附图不一定按比例绘制,并且在附图中:
图1是根据本发明的示例性实施例的移动终端的示意性方框图;
图2是根据本发明的示例性实施例的用于提供多线程视频解码的设备的示意性方框图;
图3举例说明根据本发明的示例性实施例的在宏块行水平被同步的多个线程中的视频帧的并行解码的示例;
图4示出根据本发明的示例性实施例的宏块运动矢量的基本视图,其用以举例说明绝对运动矢量、差分运动矢量与预测运动矢量之间的关系;
图5是示出根据本发明的示例性实施例的用于多线程视频解码的处理流程的方框图;以及
图6是根据本发明的示例性实施例的根据用于使得能够提供多线程视频解码的示例性方法的方框图。
具体实施方式
现在将参考附图在下文中更全面地描述本发明的某些实施例,其中示出本发明的某些但不是所有实施例。事实上,可以以许多不同的形式来体现本发明的各种实施例,并且不应将其理解为局限于本文所阐述的实施例;而是,提供这些实施例,使得本公开将满足可适用的法律要求。相同的参考标号自始至终指示相同的元件。本文所使用的术语“数据”、“内容”、“信息”和类似术语可以被可互换地用来指代能够依照本发明的实施例被发送、接收和/或存储的数据。因此,不应将任何此类术语的使用视为限制本发明的实施例的精神和范围。
此外,本文所使用的术语“电路”指的是(a)仅硬件电路实施方式(例如模拟电路和/或数字单路的实施方式);(b)电路和一个或多个计算机程序产品的组合,该计算机程序产品包括存储在一个或多个计算机可读存储器上的一起工作以促使设备执行本文所述的一个或多个功能的软件和/或固件指令;以及(c)电路,诸如,例如一个或多个微处理器或一个或多个微处理器的一部分,其要求软件或固件以进行操作,即使固件或软件在物理上不存在。“电路”的此定义适用于本文中的此术语的所有使用,包括在任何权利要求中的使用。作为另一示例,本文所使用的术语“电路”还包括包括一个或多个处理器和/或其一个或多个部分及伴随的软件和/或固件的实施方式。作为另一示例,本文所使用的术语“电路”还包括例如用于移动电话的基带集成电路或应用处理器集成电路或服务器、蜂窝式网络设备、其它网络设备和/或其它计算设备中的类似集成电路。
可以将指代物理存储介质(例如易失性或非易失性设备)的本文所定义的“计算机可读存储介质”与指代电磁信号的“计算机可读传输介质”区别开。应将本文所使用的术语“被配置成”理解为表示设备或元件的结构构造或修改以使得能够执行与之相关联地描述的相应功能或动作。
某些实施例可以用来例如为采用多核处理器的设备提供对具有在宏块行水平处处理的同步的相应数目的线程的视频内容进行解码的能力。通过在宏块行水平处理同步,与在宏块水平同步所需的开销相比,显著地减少了管理同步所需的开销的量。因此,虽然可以在固定或移动环境、特别是在移动环境中采用实施例,但在增加电池消耗效率的同时可以体验多核处理的益处。
图1(本发明的一个示例性实施例)举例说明可以受益于实施例的移动终端10的方框图。然而,应理解的是如所示和在下文描述的移动终端仅仅说明可以受益于本发明的实施例的设备的一种类型,因此,不应使其限制实施例的范围。同样地,应认识到的是下文结合移动终端10所述的部件中的至少某些是可选的,并且因此某些实施例可以包括与结合图1的示例性实施例所述的那些相比更多、更少或不同的部件。粗外,还可以结合固定设备且不仅结合移动设备来实施所述实施例。图1的移动终端10可以是许多类型的移动电子设备中的任何一个,诸如例如便携式数字助理(PDA)、寻呼机、移动电视、游戏设备、蜂窝式电话、所有类型的计算机(例如膝上型计算机或移动计算机)、照相机、音频/视频播放器、无线电、全球定位系统(GPS)设备或上述及其它类型的通信系统的任何组合。
移动终端10可以包括可与发送机14和接收机16进行操作通信的天线12(或多个天线)。移动终端10还可以包括设备,诸如控制器20或分别从和向传送机14和接收机16接收和提供信号的其它处理设备。该信号可以包括依照可适用蜂窝式系统的空中接口标准的信令信息,和/或还可以包括对应于用户语言、接收数据和/或用户生成数据的数据。在这方面,移动终端10可以能够用一个或多个空中接口标准、通信协议、调制类型和接入类型进行操作。以举例说明的方式,移动终端10可以能够依照许多第一、第二、第三和/或第四代通信协议等中的任何一个进行操作。例如,移动终端10可以能够依照第二代(2G)无线通信协议IS-136(时分多址(TDMA))、GSM(全球移动通信系统)和IS-95(码分多址(CDMA))或依照诸如通用移动通信系统(UMTS)、CDMA2000、宽带CDMA(WCDMA)和时分同步CDMA(TD-SCDMA)的第三代(3G)无线通信协议、依照诸如E-UTRAN(演进通用陆地无线电接入网)的3.9G无线通信协议、依照第四代(4G)无线通信协议等进行操作。作为替换(或附加地),移动终端10可以能够依照非蜂窝式通信机制进行操作。例如,移动终端10可以能够在无线局域网(WLAN)或其它通信网络中进行通信。然而,在某些实施例中,移动终端10(或采用示例性实施例的固定设备)可以不包括与外部设备的通信能力。
应理解的是控制器20可以包括特别地实现移动终端10的音频和逻辑功能的电路。例如,控制器20可以包括一个或多个数字信号处理器设备、微处理器设备以及各种模数转换器、数模转换器和/或其它支持电路。移动终端10的控制和信号处理功能被根据其各自的能力分配在这些设备之间。因此,控制器20还可以包括用以在调制和传输之前对消息和数据进行卷积编码和交织的功能。控制器20可以另外包括内部语音编码器,并且可以包括内部数据调制解调器。此外,控制器20可以包括用于操作可以存储在存储器中的一个或多个软件程序的功能。例如,控制器20可以能够操作诸如常规网页浏览器的连接程序。该连接程序然后可以允许移动终端10例如根据无线应用协议(WAP)、超文本传输协议(HTTP)等来发送和接收网页内容(诸如基于位置的内容和/或其它网页页面内容)。在示例性实施例中,可以将控制器20体现为多核处理器,诸如双核或四核处理器。然而,在控制器20中可以包括任何数目的处理器。
移动终端10还可以包括用户接口,包括诸如听筒或扬声器24、振铃器22、扩音器26、扩音器28、显示器28的输出设备以及用户输入接口,其可以被耦合到控制器20。允许移动终端10接收数据的用户输入接口可以包括允许移动终端10接收数据的许多设备中的任何一个,诸如键盘30、触摸显示器(未示出)、扩音器或其它输入设备。在包括键盘30的实施例中,键盘30可以包括数字(0-9)和相关键(#、*)以及用于操作移动终端10的其它硬键和软键。替换地,键盘30可以包括常规QWERTY键盘布置。键盘30还可以包括具有关联功能的各种软键。另外或替换地,移动终端10可以包括诸如操纵杆或其它用户输入接口的接口设备。移动终端10还包括电池34,诸如振动电池组,以用于对用来操作移动终端10的各种电路供电以及可选地提供机械振动作为可检测输出。
在某些实施例中,移动终端10包括与控制器20通信的媒体捕捉元件,诸如照相机、视频和/或音频模块。媒体捕捉元件可以是用于捕捉图像、视频和/或音频以进行存储、显示或传输的任何装置。例如,在其中媒体捕捉元件是照相机模块36的示例性实施例中,照相机模块36可以包括能够从捕捉图像形成数字图像的数字式照相机。同样地,照相机模块36包括诸如透镜或一个或多个其它光学组件的所有硬件以及用于从捕捉图像产生数字图像所需的软件。替换地,照相机模块36可以仅包括观看图像所需的硬件,而移动终端10的存储器设备以从捕捉图像产生数字图像所需的软件的形式存储指令以供控制器20执行。在示例性实施例中,照相机模块36还可以包括帮助控制器20处理图像数据的诸如协处理器的处理元件和/或对图像数据进行压缩和/或解压缩的编码器和/或解码器。编码器和/或解码器可以根据JPEG标准格式或另一类似格式进行编码和/或解码。对于视频,编码器和/或解码器可以采用多个标准格式中的任何一个,诸如,例如与H.261、H.262/MPEG-2、H.263、H.264、H.264/MPEG-4、MPEG-4等相关联的标准。在某些情况下,照相机模块36可以向显示器28提供活动图像数据。此外,在示例性实施例中,显示器28可以位于移动终端10的一侧且照相机模块36可以包括相对于显示器28而言位于移动终端10的另一侧的透镜,以使得照相机模块36能够在移动终端10的一侧捕捉图像并向位于移动终端10的另一侧的用户呈现此类图像的视图。
移动终端10还可以包括用户身份模块(UIM)38,其可以一般地称为智能卡。UIM 38通常是具有嵌入式处理器的存储器件。UIM 38可以包括例如订户身份模块(SIM)、通用集成电路卡(UICC)、通用订户身份模块(USIM)、可移动用户身份模块(R-UIM)或任何其它智能卡。UIM 38通常存储与移动订户有关的信息元素。除UIM 38之外,可以为移动终端10装配存储器。例如,移动终端10可以包括易失性存储器,诸如包括用于数据的临时存储的高速缓冲区域的易失性随机存取存储器(RAM)。移动终端10还可以包括其它非易失性存储器42,其可以是嵌入式的和/或可以是可移动的。非易失性存储器42可以另外或替换地包括电可擦可编程只读存储器(EEPROM)、闪速存储器等。存储器可以存储被移动终端10用来实现移动终端10的功能的许多信息片和数据。
现在将参考图2来描述本发明的示例性实施例,其中显示了用于使得能够提供多线程视频解码的设备的某些元件。可以例如在图1的移动终端10上采用图2的设备。然而,应注意的是还可以在多种其它设备(移动和固定的两者)上采用图2的设备,并且因此不应使实施例局限于在诸如图1的移动终端10的设备上的应用。替换地,可以在包括例如上列出的那些设备的组合上采用实施例。因此,可以整体地在单个设备(例如移动终端10)或用处于客户端/服务器关系的设备来体现本发明的实施例。此外,应注意的是下文所述的设备或元件可能不是强制性的,并且因此在某些实施例中可以将某些省略。
现在参考图2,提供了用于使得能够提供多线程视频解码的设备60。设备60可以包括多核处理器70、用户接口72、通信接口74和存储器设备76或否则与之通信。存储器件76可以包括例如一个或多个易失性和/或非易失性存储器。换言之,例如,存储器件76可以是电子存储器件(例如计算机可读存储介质),其包括被配置成存储可以可被机器(例如计算设备)检索的数据(例如位)的门。存储器设备76可以被配置为存储用于使得设备能够执行依照本发明的示例性实施例的各种功能的信息、数据、应用、指令等。例如,可以存储器件76配置成缓冲输入数据以便由多核处理器70来处理。另外或替换地,可以将存储器件76配置为存储指令以便由多核处理器70执行。
可以以许多不同方式来体现多核处理器70(其可以是图1的控制器20的示例)。例如,可以将多核处理器70体现为各种处理装置中的两个或更多,诸如协处理器、微处理器、控制器、数字信号处理器(DSP)、有或没有随附DSP的处理电路或各种其它处理器件,包括集成电路,诸如,例如ASIC(专用集成电路)、FPGA(现场可编程门阵列)、微控制器单元(MCU)、硬件加速器、专用计算机芯片等。在示例性实施例中,可以将多核处理器70配置成执行存储在存储器件76中或否则多核处理器70的一个或多个核可访问的指令。替换地或另外,可以将多核处理器70配置成执行硬编码功能。同样地,无论是用硬件还是软件方法或由其组合来配置,多核处理器70可以表示能够在被相应地配置的同时执行根据本发明的实施例的操作的实体(例如,在物理上用电路来体现)。因此,例如,当多核处理器70被体现为ASIC、FPGA等中的两个或更多时,可以具体地将多核处理器70配置成用于执行本文所述操作的硬件。替换地,作为另一示例,当将多核处理器70体现为软件指令的执行器时,该指令可以具体地将多核处理器70配置成在指令被执行时执行本文所述的算法和/或操作。然而,在某些情况下,多核处理器70可以是特定设备的处理器(例如移动终端或网络设备),该特定设备适于通过由用于执行本文所述算法和/或操作的指令进行的多核处理器70的进一步配置来采用本发明的实施例。多核处理器70的每个核可以特别地包括时钟、算术逻辑单元(ALU)和被配置成支持多核处理器70的操作的逻辑门。虽然下面将结合双核处理器来描述示例性实施例,但结合附加处理器核可以实施其它实施例。
同时,通信接口74可以是诸如在硬件、软件或硬件和软件的组合中体现的器件或电路的任何装置,其被配置成从/向网络和/或与所述设备通信的任何其它设备或模块接收和/或发送数据。在这方面,通信接口74可以包括例如用于使得能够与无线通信网络通信的天线(或多个天线)和支持硬件和/或软件。在某些环境中,通信接口74可以替换地或者还支持有线通信。同样地,例如,通信接口74可以包括用于经由电缆、数字订户线(DSL)、通用串行总线(USB)或其它机制来支持通信的通信调制解调器和/或其它硬件/软件。
用户接口72可以与多核处理器70通信以接收用户接口72处的用户输入的指示和/或向用户提供可听、可视、机械或其它输出。同样地,用户接口72可以包括例如键盘、鼠标、操纵杆、显示器、触摸屏、软键、扩音器、扬声器或其它输入/输出机构。在其中所述设备被体现为服务器或某些其他网络设备的示例性实施例中,可以限制或消除用户接口72。然而,在其中所述设备被体现为通信设备(例如,移动终端10)的实施例中,除其它器件或元件之外,用户接口72可以包括扬声器、扩音器、显示器和键盘等中的任何一个或全部。在这方面,例如,多核处理器70可以包括用户接口电路,其被配置成控制用户接口的一个或多个元件的至少某些功能,诸如,例如扬声器、振铃器、扩音器、显示器等。可以将多核处理器70和/或包括多核处理器70的用户接口电路配置成通过存储在多核处理器70可访问的存储器(例如存储器件76等)上的计算机程序指令(例如软件和/或固件)来控制用户接口的一个或多个元件的一个或多个功能。
在示例性实施例中,多核处理器70可以被体现为、包括或否则控制线程管理器80、解码器82和同步器84。线程管理器80、解码器82和同步器84每个可以是任何装置,诸如依照软件进行操作或否则用硬件或硬件和软件的组合(例如,多核处理器70在软件控制下操作、多核处理器70被体现为具体地被配置成执行本文所述操作的ASIC或FPGA或其组合)来体现,从而将设备或电路配置成分别执行线程管理器80、解码器82和同步器84的相应功能,如本文所述。因此,在其中采用软件的示例中,执行软件的设备或电路(例如,在一个示例中为多核处理器70)形成与此类装置相关联的结构。此外,在某些情况下,可以由多核处理器70的核中的单个来执行与线程管理器80、解码器82和/或同步器84相关联的功能。
一般地可以将解码器82配置成对根据多个视频编码标准中的任何一个编码的数据进行解码。因此,例如,一般地可以将解码器82配置成根据H.261、H.262/MPEG-2、H.263、H.264、H.264/MPEG-4、MPEG-4或其它标准对视频数据进行解码。然而,可以将解码器82配置成基于由线程管理器80向其提供的线程和如由同步器84执行的同步根据多核处理器70的控制来对此类数据进行操作。
在示例性实施例中,线程管理器80被配置成接收要解码的数据并将数据划分成将被分布到多核处理器70的各个核处理器的线程。在示例性情况下,由线程管理器80产生的线程的数目等于多核处理器80中的核处理器的数目。因此,例如,针对双核处理器,可以将输入视频帧相等地划分成分布在每个核处理器之间的线程。在某些情况下,每个帧解码操作可以在单独的线程中发生。
除输入视频帧被划分成等于多核处理器70的核处理器的数目的许多线程之外,还可以将每个帧划分成宏块行。宏块是一组像素,其尺寸取决于所采用的相应编码标准(例如4×4、8×8、12×12或16×16像素组)。因此,宏块行是如图3所示的一行宏块,其示出行X和行R。
图3举例说明根据本发明的示例性实施例的在宏块行水平被同步的多个线程中的视频帧的并行解码的示例。在这方面,图3示出两个帧(帧N和帧N+1),对于该帧而言,对应于行X和行R的数据正在单独的线程中被解码。行X和行R每个表示相应帧的一行宏块是在各个不同线程中执行的。一般而言,与参考帧相比,标准通常限制来自一个帧的绝对或差分运动矢量的可容许范围。该参考帧可以是过去帧(例如,帧N-1),或者包括未来帧的任何其它帧,这取决于所采用的标准。因此,当前帧(例如,帧N)可以具有相对于参考帧(例如帧N-1)的相关性。同样地,后续帧(例如帧N+1)可以具有相对于当前帧(例如帧N)的相关性。这些相关性是用分别从帧N延伸至帧N-1和从帧N+1至帧N的箭头举例说明的。基于这些相关性,可以将存储器件76的高速缓存器或其它部分(例如用于多核处理器70的多个核中的每一个的一般可访问高速缓存器,诸如L2或L3高速缓存器)用于存储对应于被解码的每个相应线程的帧的数据和参考帧。因此,对于许多情况而言,存储在高速缓存器或存储器中的帧的数目可以等于比在多核处理器70的处理器核上运行的活动线程的数目多一个或比线程的数目多一个。
一旦帧被线程管理器80分配给线程,则帧的处理在宏块行水平开始。在开始宏块行的处理之前,可以进行检查以保证参考帧中的数据的可用性。如果数据不可用,则同步器84可以将当前帧置于等待状态。在处理期间,解码器82可以在同步器84执行同步的同时对线程进行解码,如下文更详细地描述的。
可以将同步器84配置成与解码器82一起工作以在解码过程期间提供同步。在这方面,例如,可以将同步器84配置成基于参考帧中的解码宏块行的可用性来执行同步。在某些实施例中,可以在对每个相应宏块行进行解码之前执行同步。通过在宏块行水平而不是在宏块水平执行同步,可以显著地减少同步开销。例如,不是针对每一个单个宏块(例如,用于CIF(通用中间格式)的396次操作和用于VGA(视频图形阵列)的1200次操作)的同步,可以执行数目显著减少的检查(例如,对于CIF而言18次且对于VGA而言30次)。
如上文所指示的,视频标准通常使绝对运动矢量的垂直范围局限于几个宏块行,这取决于在位流中指示的信息的水平。对绝对运动矢量的限制可以是直接或间接的。作为示例,类似于H.264的标准指定沿垂直方向的宏块的最大绝对运动矢量,从而直接限制绝对运动矢量。同时,类似于On2VP6的标准指定用于差分运动矢量的最大范围,其提供对绝对运动矢量的间接限制。图4示出根据示例性实施例的宏块A、B、C和E基本视图以举例说明绝对运动矢量、差分运动矢量与预测运动矢量之间的关系。在这方面,E的绝对运动矢量等于E的预测运动矢量加E的差分运动矢量。在某些实施例中,可以通过考虑中值(mv1、mv2、mv3)始终小于或等于最大值(mv1、mv2、mv3)来估计特定宏块的预测运动矢量。因此,可以将用于特定宏块的预测运动矢量视为小于或等于先前行的最大运动矢量。在图4的示例的上下文中,可以通过取用于在E之上(例如MVB)、在E左侧(例如MVA)和在E的顶部和右侧(例如MVC)的宏块运动矢量的运动矢量(MV)的中值来估计用于E的预测运动矢量。在这方面,如果MVA是最大值,则中值将是MVB或MVC(因此,预测范围局限于先前行的最大MV)。同样地,如果MVB是最大值,则中值将是MVA或MVC,并且如果MVC是最大值,则中值将是MVB或MVA。因此,可以基于先前行的最大运动矢量来预先限制预测运动矢量的范围。换言之,可以通过将先前宏块行的最大运动矢量与由标准定义的最大差分运动矢量相加来设置当前宏块行的运动矢量的最大限制。
在解码器开始对宏块行进行解码之前,可以进行检查以清楚如所采用的相应的标准所定义的通过将当前行位置与最大垂直运动矢量范围相加而在参考帧中指向的位置已被解码。如果所指向的位置未被解码,则可以中止当前线程的执行直至此类解码发生。在某些实施例中,可以采用pthread_cond_wait应用编程界面(API)来发起该中止。在将每个宏块行解码之后,线程可以调用pthread_cond_broadcast API以用信号通知当前被中止的任何线程重新开始执行。因此,如果一个特定线程正在等待特定宏块行被解码,则特定线程可以在接收到信令时立即重新开始执行以指示特定宏块行已被解码。由于特定线程的帧解码是在同一相应核上执行的,所以即使存在中止,也不需要清除高速缓存器,因为在高速缓存器中仍存在相关数据。
在某些情况下,还可以进行关于在调用pthread_cond_braodcast API之前宏块行数据是否已就绪的检查。在这方面,针对支持环内去块滤波器或无限制运动矢量的标准,可以在宏块行被认为准备好用于调用pthread_cond_broadcast API之前分别完成去块和帧填充。此外,某些实施例可以采用用于处理长期图片缓冲器的规定(provision)。在这方面,如果正在被解码的帧将被放入长期图片缓冲器队列中,则可以在帧的解码期间向期望访问长期图片缓冲器的帧提供相应的指针。在帧的解码完成之后,可以将帧拷贝到针对长期图片缓冲器单独地标记的存储器中。还可以将帧指针恢复至指回长期图片缓冲器。
在某些实施例中,可以将同步器84配置成还向所执行的同步提供改进和/或提供特定于特定标准或编码方案的同步化操作。作为示例,针对使用诸如上下文自适应二进制算术编码(CABAC)的上下文自适应解码过程的视频解码器,可以在用于先前帧的表格已被更新之后更新用于帧的概率表。因此,在同步的第一点,使用来自先前帧的表格来更新用于当前帧的表格,并且随后可以针对当前帧发生CABAC初始化。针对采用CABAC或其它上下文自适应解码过程的实施例,此特定编码方案特定操作可以在每个帧的开头处发生。
可以由同步器84以总体细调调整的形式来提供对同步化过程的改进。在某些情况下,可以与进行细调调整相结合地利用关于高速缓存器尺寸(例如L2/L3高速缓存器尺寸)和帧分辨率的信息。在这方面,例如,可以使用关于高速缓存器尺寸和帧分辨率的信息来限制两个连续帧的解码之间的最大滞后。高速缓存器(例如L2/L3高速缓存器)可以被在多核处理器70的每个核之间共享。因此,通过修改滞后阈值,可以进行提供形成用于后续帧的参考的宏块行在高速缓存器中是可用的努力。
作为示例,考虑具有在尺寸上为512KB的共享L2高速缓存器的双核处理器。用于具有YUV 4:2:0数据的VGA尺寸视频的解码将产生640×480×1.5=450KB的VGA帧尺寸。针对此类系统,可以有至少3个帧缓冲器被同时地使用(例如,一个用于参考帧且一个用于当前和后续帧,如图3所示)。可以相对于用于3个帧的存储器要求来计算可用L2/L3高速缓存器的比。在本示例中,该比是512/450*3~0.38。通过将此数目与帧中的行的数目相乘,可以确定两个帧之间的最大滞后。因此,在用于VGA的本示例中,最大滞后将是0.38××30~11行。然而,滞后受限于帧中的行数的最大值和运动矢量范围的最小值,如由标准指定。因此,如果期望的是在此类系统上对QVGA视频进行解码,则该比是512/(112.5×3)~1.5。因此,QVGA可以允许有满帧滞后并且将可能不需要将此特定同步应用于QVGA。因此,如果看起来好像一个特定帧正在引导使用该特定真作为参考的另一帧,则可以使该特定帧停止,直至另一帧赶上来。
因此,基于以上描述,线程管理器80和同步器84与解码器82相结合的使用可以通过将多个核用于处理来提供解码时间的减少,但是仍限制开销并因此节省电池功率。因此,甚至可以使得移动终端能够提供高分辨率的重放和高帧速率视频内容。本发明的实施例还在提供不一定要求具体修整策略的性能增益的同时提供与多个不同类型的视频解码器一起工作的灵活性。
图5是示出根据本发明的示例性实施例的用于多线程视频解码的处理流程的方框图。在这方面,如图5所示,可以在操作100处进行关于活动线程的数目是否等于线程最大数目的确定。如果活动线程的数目等于线程的最大数目,则系统可以在操作102处等待,直至接收到信号以指示活动线程的数目小于线程的最大数目。当活动线程的数目小于最大线程数目时,可以在操作104处创建线程(例如由线程管理器80)。然后可以在操作106处进行关于先前帧的概率表是否就绪的确定。如果概率表没有就绪,则系统可以在操作108处等待,直至接收到信号以指示表格就绪。如果表格就绪,则可以在操作110处进行用于当前帧的概率表的更新。在表格更新之后,可以在操作112处进行关于参考宏块行是否就绪且帧滞后是否在极限内的确定。如果参考宏块行没有就绪或帧滞后不在极限内,则在操作114处再次插入延迟,直至此类条件消除。如果参考宏块行就绪且帧滞后在极限内,则可以在操作116处对相应的宏块行进行解码。然后可以在操作118处进行关于已解码宏块行是否是最后一行的确定。如果其不是最后一行,则操作可以返回至操作112以针对后续行重复相应的确定。然而,如果最后一行已被解码,则可以在操作120处结束帧解码。
图6是根据本发明的示例性实施例的系统、方法和程序产品的流程图。应理解的是可以由各种装置(诸如硬件、固件、处理器、电路和/或与包括一个或多个计算机程序指令的软件的执行相关联其它设备)来实现流程图的每个方框以及流程图中的方框的组合。例如,可以由计算机程序指令来体现上述程序中的一个或多个。在这方面,可以由采用本发明的实施例的设备的存储设备来存储体现上述程序的计算机程序指令,并由设备中的处理器来执行。如将认识到的,可以将任何此类计算机程序指令加载到计算机或其它可编程设备(例如硬件)上以产生机器,使得结果得到的计算机或其它可编程设备体现用于实现在一个或多个流程图方框中指定的功能的装置。还可以将这些计算机程序指令存储在计算机可读存储器中(与诸如载波或电磁信号的传输介质相反),其可以指引计算机或其它可编程设备以特定方式运行,使得存储在计算机可读存储器中的指令产生制品,其执行实现在一个或多个流程图方框中指定的功能。还可以将计算机程序指令加载到计算机或其它可编程设备上以促使在计算机或其它可编程设备上执行一系列操作以产生计算机实现进程,使得在计算机或其它可编程设备上执行的指令提供用于实现在一个或多个流程图方框中指定的功能的操作。
因此,流程图的方框支持用于执行指定功能的装置的组合、用于执行指定功能的操作的组合和用于执行指定功能的程序指令装置。还应理解的是可以由基于专用硬件的计算机系统来实现流程图的一个或多个方框及流程图中的方框的组合,所述基于专用硬件的计算机系统执行指定功能或操作或专用硬件与计算机指令的组合。
在这方面,用于使得能够提供多线程视频解码的方法的一个实施例可以包括在操作200处将各个视频帧的解码分配给用于多核处理器的每个处理器核的相应线程,其中每个相应视频帧被划分成宏块行。该方法还可以包括在操作210处在宏块行水平解析每个视频帧的相关性并在操作220处提供用于在宏块行水平的每个相应线程的视频解码的同步。
在某些实施例中,可以如下所述地修改或进一步放大以上操作中的某些。可以按照任何顺序并以任何组合来执行对以上操作的修改或扩充。在这方面,例如,解析相关性可以包括定义参考帧中的已解码宏块行的可用性。在此类实施例中,提供同步可以包括基于参考帧中的已解码宏块行的可用性来执行同步。在示例性实施例中,解析相关性可以包括在对宏块行解码之前确定参考帧中的被指向的位置是否已被解码。可以通过将当前行位置与最大垂直运动矢量范围相加来确定被指向的位置。在某些情况下,解析相关性可以包括基于先前行的最大运动矢量预先限制预测运动矢量。在示例性实施例中,提供同步可以包括针对使用上下文自适应解码过程的视频解码器在用于先前帧的概率表已被更新之后更新用于帧的概率表。在某些实施例中,提供同步可以包括基于帧分辨率和在多核处理器的每个核处理器之间具有共享访问的高速缓存器的高速缓存器尺寸来限制对连续帧进行解码之间的最大滞后。
在示例性实施例中,用于执行上述图6的方法的设备可以包括被配置成执行上述操作(200-220)中的某些或每一个的一个或多个处理器(例如,多核处理器70)。可以例如将处理器配置成通过执行硬件实现逻辑功能、执行存储的指令或执行算法以便执行每个操作来执行操作(200-220)。替换地,所述设备可以包括用于执行每个上述操作的装置。在这方面,根据示例性实施例,用于执行操作200-220的装置的示例可以包括例如多核处理器70、线程管理器80、解码器82、同步器84和/或用于执行指令或执行算法以便如上所述地处理信息的设备或电路中的相应的一些。
受益于在前述说明和相关附图中提出的教导的这些发明所述领域的技术人员将想到本文所阐述的本发明的许多修改及其它实施例。因此,应理解的是本发明不限于所公开的特定实施例,并且修改及其它实施例意图被包括在所附权利要求的范围内。此外,虽然前述说明和相关附图在元件和/或功能的某些示例性组合的背景下描述了示例性实施例,但应认识到在不脱离所附权利要求的范围的情况下可以由替换实施例来提供元件和/或功能的不同组合。在这方面,例如,还可以预期与上文明确描述的那些不同的元件和/或功能的组合,如同可以在某些所附权利要求中阐述的一样。虽然本文采用特定术语,但其仅仅是在一般和描述的意义上使用且不是出于限制的目的。

Claims (22)

1.一种设备,包括:
至少一个处理器;以及
至少一个存储器,其包括计算机程序代码,所述至少一个存储器和所述计算机程序代码被配置成用所述至少一个处理器来促使所述设备至少执行:
将各个视频帧的解码分配给多核处理器的每个核处理器的相应线程,每个相应视频帧被划分成宏块行;
在宏块行水平解析每个相应视频帧的相关性;以及
在宏块行水平提供用于每个相应线程的视频解码的同步。
2.根据权利要求1的设备,其中所述至少一个存储器和计算机程序代码被配置成用所述至少一个处理器来促使所述设备至少进一步执行:
通过确定参考帧中的已解码宏块行的可用性来解析相关性。
3.根据权利要求2的设备,其中所述至少一个存储器和计算机程序代码被配置成用所述至少一个处理器来促使所述设备至少进一步执行:
通过基于参考帧中的已解码宏块行的可用性来执行同步而提供同步。
4.根据权利要求1的设备,其中所述至少一个存储器和计算机程序代码被配置成用所述至少一个处理器来促使所述设备至少进一步执行:
通过在对宏块行解码之前确定参考帧中的被指向的位置是否已被解码来解析相关性,通过将当前行位置与最大垂直运动矢量范围相加来确定被指向的位置。
5.根据权利要求1的设备,其中所述至少一个存储器和计算机程序代码被配置成用所述至少一个处理器来促使所述设备至少进一步执行:
通过基于先前行的最大运动矢量预先限制预测运动矢量来解析相对性。
6.根据权利要求1的设备,其中所述至少一个存储器和计算机程序代码被配置成用所述至少一个处理器来促使所述设备至少进一步执行:
针对使用上下文自适应解码过程的视频解码器,通过在用于先前帧的概率表已被更新之后更新用于帧的概率表来提供同步。
7.根据权利要求1的设备,其中所述至少一个存储器和计算机程序代码被配置成用所述至少一个处理器来促使所述设备至少执行:
通过基于帧分辨率和在多核处理器的每个核处理器之间具有共享访问的高速缓存器的高速缓存器尺寸,限制连续帧的解码之间的最大滞后而提供同步。
8.一种方法,包括:
将各个视频帧的解码分配给多核处理器的每个核处理器的相应线程,每个相应视频帧被划分成宏块行;
在宏块行水平解析每个相应视频帧的相关性;以及
在宏块行水平提供用于每个相应线程的视频解码的同步。
9.根据权利要求8的方法,其中解析相关性包括:
确定参考帧中的已解码宏块行的可用性。
10.根据权利要求9的方法,其中提供同步包括:
基于参考帧中的已解码宏块行的可用性来执行同步。
11.根据权利要求8的方法,其中解析相关性包括:
在对宏块行进行解码之前确定参考帧中的被指向的位置是否已被解码,通过将当前行位置与最大垂直运动矢量范围相加来确定被指向的位置。
12.根据权利要求8的方法,其中解析相关性包括:
基于先前行的最大运动矢量来预先限制预测运动矢量。
13.根据权利要求8的方法,其中提供同步包括:
针对使用上下文自适应解码过程的视频解码器,在用于先前帧的概率表已被更新之后更新用于帧的概率表。
14.根据权利要求8的方法,其中提供同步包括:
基于帧分辨率和在多核处理器的每个核处理器之间具有共享访问的高速缓存器的高速缓存器尺寸,限制连续帧的解码之间的最大滞后而提供同步。
15.一种计算机程序产品,包括具有存储在其中的计算机可执行程序代码指令的至少一个计算机可读存储介质,所述计算机可执行程序代码指令在被设备执行时促使所述设备执行:
将各个视频帧的解码分配给多核处理器的每个核处理器的相应线程,每个相应视频帧被划分成宏块行;
在宏块行水平解析每个相应视频帧的相关性;以及
在宏块行水平提供用于每个相应线程的视频解码的同步。
16.根据权利要求15的计算机程序产品,其中所述程序代码指令促使所述设备至少进一步执行:
确定参考帧中的已解码宏块行的可用性。
17.根据权利要求16的计算机程序产品,其中程序代码指令促使所述设备至少进一步执行:
基于参考帧中的已解码宏块行的可用性进行同步。
18.根据权利要求15的计算机程序产品,其中程序代码指令促使所述设备至少进一步执行:
在对宏块行解码之前确定参考帧中的被指向的位置是否已被解码,通过将当前行位置与最大垂直运动矢量范围相加来确定被指向的位置。
19.根据权利要求15的计算机程序产品,其中程序代码指令促使所述设备至少进一步执行:
基于先前行的最大运动矢量预先限制预测运动矢量。
20.根据权利要求15的计算机程序产品,其中程序代码指令促使所述设备至少进一步执行:
针对使用上下文自适应解码过程的视频解码器,在用于先前帧的概率表已被更新之后更新用于帧的概率表,或者基于帧分辨率和在多核处理器的每个核处理器之间具有共享访问的高速缓存器的高速缓存器尺寸,限制连续帧的解码之间的最大滞后。
21.一种设备,包括:
用于将各个视频帧的解码分配给多核处理器的每个核处理器的相应线程的装置,每个相应视频帧被划分成宏块行;
用于在宏块行水平解析每个相应视频帧的相关性的装置;以及
用于在宏块行水平提供用于每个相应线程的视频解码的同步的装置。
22.一种包括计算机可执行程序代码指令的计算机程序,所述计算机可执行程序代码指令在被设备执行时促使所述设备执行:
将各个视频帧的解码分配给多核处理器的每个核处理器的相应线程,每个相应视频帧被划分成宏块行;
在宏块行水平解析每个相应视频帧的相关性;以及
在宏块行水平提供用于每个相应线程的视频解码的同步。
CN201180009251.0A 2010-02-11 2011-01-27 用于提供多线程视频解码的方法和设备 Expired - Fee Related CN102763136B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN336CH2010 2010-02-11
IN336/CHE/2010 2010-02-11
PCT/FI2011/050063 WO2011098664A1 (en) 2010-02-11 2011-01-27 Method and apparatus for providing multi-threaded video decoding

Publications (2)

Publication Number Publication Date
CN102763136A true CN102763136A (zh) 2012-10-31
CN102763136B CN102763136B (zh) 2015-04-01

Family

ID=44353708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180009251.0A Expired - Fee Related CN102763136B (zh) 2010-02-11 2011-01-27 用于提供多线程视频解码的方法和设备

Country Status (4)

Country Link
US (1) US8873638B2 (zh)
EP (1) EP2534643A4 (zh)
CN (1) CN102763136B (zh)
WO (1) WO2011098664A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103366386A (zh) * 2013-07-14 2013-10-23 西安电子科技大学 基于多进程和多线程的并行图像解压缩系统
WO2015085858A1 (zh) * 2013-12-09 2015-06-18 国民技术股份有限公司 一种多载波音频通信的处理方法、系统及音频接收端设备
CN105992005A (zh) * 2015-03-04 2016-10-05 广州市动景计算机科技有限公司 视频解码方法、装置及终端设备
CN109065061A (zh) * 2018-08-21 2018-12-21 广州市保伦电子有限公司 一种基于多核芯片的音频解码电路及方法
CN111093078A (zh) * 2018-10-23 2020-05-01 展讯通信(天津)有限公司 视频解码方法及装置、存储介质、终端
WO2021073066A1 (zh) * 2019-10-17 2021-04-22 西安万像电子科技有限公司 图像处理方法及装置

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4905747B1 (ja) * 2011-09-21 2012-03-28 富士ゼロックス株式会社 描画装置および描画処理プログラム、画像出力装置
GB2495959A (en) * 2011-10-26 2013-05-01 Imagination Tech Ltd Multi-threaded memory access processor
US20130188732A1 (en) * 2012-01-20 2013-07-25 Qualcomm Incorporated Multi-Threaded Texture Decoding
JP2014203309A (ja) * 2013-04-05 2014-10-27 オムロン株式会社 画像処理装置、制御方法およびプログラム
US9589311B2 (en) * 2013-12-18 2017-03-07 Intel Corporation Independent thread saturation of graphics processing units
US9641854B2 (en) * 2014-05-19 2017-05-02 Mediatek Inc. Count table maintenance apparatus for maintaining count table during processing of frame and related count table maintenance method
KR101676788B1 (ko) 2014-10-17 2016-11-16 삼성전자주식회사 멀티코어 시스템 기반 비디오 병렬 복호화 방법 및 그 장치
EP3275170B1 (en) 2015-03-23 2023-07-05 Tahoe Research, Ltd. Workload scheduler for computing devices with camera
US10412373B2 (en) 2015-04-15 2019-09-10 Google Llc Image capture for virtual reality displays
US10567464B2 (en) 2015-04-15 2020-02-18 Google Llc Video compression with adaptive view-dependent lighting removal
US10440407B2 (en) 2017-05-09 2019-10-08 Google Llc Adaptive control for immersive experience delivery
US10546424B2 (en) 2015-04-15 2020-01-28 Google Llc Layered content delivery for virtual and augmented reality experiences
US10444931B2 (en) 2017-05-09 2019-10-15 Google Llc Vantage generation and interactive playback
US10419737B2 (en) 2015-04-15 2019-09-17 Google Llc Data structures and delivery methods for expediting virtual reality playback
US10540818B2 (en) 2015-04-15 2020-01-21 Google Llc Stereo image generation and interactive playback
US10469873B2 (en) * 2015-04-15 2019-11-05 Google Llc Encoding and decoding virtual reality video
US20180081811A1 (en) * 2016-09-20 2018-03-22 Qualcomm Incorporated Dynamic cache partitioning through hill-climbing
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
US10474227B2 (en) 2017-05-09 2019-11-12 Google Llc Generation of virtual reality with 6 degrees of freedom from limited viewer data
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
CN109495855A (zh) * 2018-11-28 2019-03-19 南通先进通信技术研究院有限公司 一种核心网信令处理装置
CN112995532B (zh) * 2021-02-03 2023-06-13 上海哔哩哔哩科技有限公司 视频处理方法及装置
CN114286107A (zh) * 2021-12-30 2022-04-05 武汉华威科智能技术有限公司 一种提高实时视频处理效率的方法、系统、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080022320A1 (en) * 2006-06-30 2008-01-24 Scientific-Atlanta, Inc. Systems and Methods of Synchronizing Media Streams
US20090028246A1 (en) * 2007-07-13 2009-01-29 Fujitsu Limited Moving-picture coding device and moving-picture coding method
CN101543037A (zh) * 2007-05-17 2009-09-23 索尼株式会社 信息处理设备和方法
CN101584216A (zh) * 2006-12-27 2009-11-18 英特尔公司 解码和编码视频信息的方法和装置
CN101620527A (zh) * 2008-06-30 2010-01-06 英特尔公司 图形处理中管理活动线程依赖关系
CN102150425A (zh) * 2008-09-11 2011-08-10 谷歌公司 用于使用并行处理来进行解码的系统和方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI232682B (en) * 2002-04-26 2005-05-11 Ntt Docomo Inc Signal encoding method, signal decoding method, signal encoding device, signal decoding device, signal encoding program, and signal decoding program
US7266147B2 (en) * 2003-03-31 2007-09-04 Sharp Laboratories Of America, Inc. Hypothetical reference decoder
US20060256854A1 (en) * 2005-05-16 2006-11-16 Hong Jiang Parallel execution of media encoding using multi-threaded single instruction multiple data processing
EP2080379B1 (en) 2006-10-16 2018-08-22 Nokia Technologies Oy System and method for using parallelly decodable slices for multi-view video coding
US8213518B1 (en) * 2006-10-31 2012-07-03 Sony Computer Entertainment Inc. Multi-threaded streaming data decoding
US8121196B2 (en) 2006-11-02 2012-02-21 Corel Corporation Method and apparatus for multi-threaded video decoding
US8411734B2 (en) 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
US8416857B2 (en) * 2007-03-29 2013-04-09 James Au Parallel or pipelined macroblock processing
US20080260021A1 (en) * 2007-04-23 2008-10-23 Chih-Ta Star Sung Method of digital video decompression, deinterlacing and frame rate conversion
WO2008143158A1 (ja) * 2007-05-17 2008-11-27 Sony Corporation 情報処理装置および方法
WO2009078743A1 (en) 2007-12-14 2009-06-25 Intel Corporation Multithreaded processing of video frames
US20100098166A1 (en) * 2008-10-17 2010-04-22 Texas Instruments Incorporated Video coding with compressed reference frames

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080022320A1 (en) * 2006-06-30 2008-01-24 Scientific-Atlanta, Inc. Systems and Methods of Synchronizing Media Streams
CN101584216A (zh) * 2006-12-27 2009-11-18 英特尔公司 解码和编码视频信息的方法和装置
CN101543037A (zh) * 2007-05-17 2009-09-23 索尼株式会社 信息处理设备和方法
US20090028246A1 (en) * 2007-07-13 2009-01-29 Fujitsu Limited Moving-picture coding device and moving-picture coding method
CN101620527A (zh) * 2008-06-30 2010-01-06 英特尔公司 图形处理中管理活动线程依赖关系
CN102150425A (zh) * 2008-09-11 2011-08-10 谷歌公司 用于使用并行处理来进行解码的系统和方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103366386A (zh) * 2013-07-14 2013-10-23 西安电子科技大学 基于多进程和多线程的并行图像解压缩系统
WO2015085858A1 (zh) * 2013-12-09 2015-06-18 国民技术股份有限公司 一种多载波音频通信的处理方法、系统及音频接收端设备
CN105992005A (zh) * 2015-03-04 2016-10-05 广州市动景计算机科技有限公司 视频解码方法、装置及终端设备
CN109065061A (zh) * 2018-08-21 2018-12-21 广州市保伦电子有限公司 一种基于多核芯片的音频解码电路及方法
CN111093078A (zh) * 2018-10-23 2020-05-01 展讯通信(天津)有限公司 视频解码方法及装置、存储介质、终端
CN111093078B (zh) * 2018-10-23 2022-08-19 展讯通信(天津)有限公司 视频解码方法及装置、存储介质、终端
WO2021073066A1 (zh) * 2019-10-17 2021-04-22 西安万像电子科技有限公司 图像处理方法及装置

Also Published As

Publication number Publication date
WO2011098664A1 (en) 2011-08-18
EP2534643A4 (en) 2016-01-06
US20110194617A1 (en) 2011-08-11
US8873638B2 (en) 2014-10-28
CN102763136B (zh) 2015-04-01
EP2534643A1 (en) 2012-12-19

Similar Documents

Publication Publication Date Title
CN102763136A (zh) 用于提供多线程视频解码的方法和设备
KR101634500B1 (ko) 미디어 작업부하 스케줄러
CN101461247B (zh) 视频块的并行批量解码
KR102343668B1 (ko) 비디오 인코딩 방법, 비디오 디코딩 방법, 및 단말
JP6163674B2 (ja) 高効率次世代ビデオコーディングのためのコンテンツ適応双方向性又は機能性予測マルチパスピクチャ
US8861591B2 (en) Software video encoder with GPU acceleration
TWI513316B (zh) 轉碼視頻資料之技術
US20200267394A1 (en) Method and system of video coding with a multi-pass prediction mode decision pipeline
CN105144727A (zh) 用于快速切换的编解码技术
CN107211126B (zh) 编码器中的无线带宽降低
US10666946B2 (en) Method and system of video coding using display modification input
KR20140044840A (ko) 변경된 영역들을 이용한 매체 인코딩
CN1271835C (zh) 运动图像数据的记录再生方法和装置
US20130266072A1 (en) Systems, methods, and computer program products for a video encoding pipeline
CN102761739A (zh) 用来动态地调整视频译码复杂度的装置与方法
CN105491380A (zh) 用于运动向量预测因子推导的方法及装置
Wang et al. A collaborative scheduling-based parallel solution for HEVC encoding on multicore platforms
CN113676726A (zh) 高质量先进邻居管理编码器体系结构
US9535699B2 (en) Processor, multiprocessor system, compiler, software system, memory control system, and computer system
CN116437088A (zh) 图像缓存区的更新方法、装置、服务器及存储介质
US10846142B2 (en) Graphics processor workload acceleration using a command template for batch usage scenarios
CN113794887A (zh) 一种游戏引擎中视频编码的方法及相关设备
CN100496126C (zh) 影像编码装置及其方法
US20210377328A1 (en) Method and apparatus for providing cloud streaming service
JP2011182169A (ja) 符号化装置および方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160121

Address after: Espoo, Finland

Patentee after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Patentee before: Nokia Oyj

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150401

Termination date: 20180127

CF01 Termination of patent right due to non-payment of annual fee