CN110583019A - 视频帧编解码器架构 - Google Patents

视频帧编解码器架构 Download PDF

Info

Publication number
CN110583019A
CN110583019A CN201880028788.3A CN201880028788A CN110583019A CN 110583019 A CN110583019 A CN 110583019A CN 201880028788 A CN201880028788 A CN 201880028788A CN 110583019 A CN110583019 A CN 110583019A
Authority
CN
China
Prior art keywords
frame
decompressed
decompressor
video
core
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
CN201880028788.3A
Other languages
English (en)
Other versions
CN110583019B (zh
Inventor
阿基·奥斯卡里·库塞拉
维莱-米科·劳蒂奥
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Priority to CN202210954555.4A priority Critical patent/CN115460417A/zh
Priority to CN202210954334.7A priority patent/CN115460416A/zh
Priority to CN202210956690.2A priority patent/CN115460418A/zh
Publication of CN110583019A publication Critical patent/CN110583019A/zh
Application granted granted Critical
Publication of CN110583019B publication Critical patent/CN110583019B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/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/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Television Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Bus Control (AREA)
  • Microcomputers (AREA)
  • Advance Control (AREA)

Abstract

描述了用于视频帧编解码器架构的技术和装置。帧解压缩器解压缩已压缩的帧以产生已解压缩的帧。帧解压缩器控制器仲裁对帧解压缩器的共享访问。SoC的多个核心请求经由帧解压缩器控制器从帧解压缩器接收已解压缩的帧。帧解压缩器控制器可以实施请求队列,并且可以基于请求的优先级或请求核心来给请求的服务排序。帧解压缩器控制器还可以通过多个核心建立用于访问的分时协议。在一些实施方式中,视频解码器与帧解压缩器逻辑集成,并且将已解压缩的帧的部分存储在视频缓冲器中,并且显示器控制器使用同步机制检索用于显示的部分。以类似的方式,帧压缩器控制器可以为多个核心仲裁对帧压缩器的共享访问。

Description

视频帧编解码器架构
背景技术
电子设备在制造、通信、医疗保健、商业、社交和娱乐领域发挥着不可或缺的作用。例如,电子设备为服务器群供电,服务器群为商业和通信提供基于云的分布式计算功能。具有计算能力的设备也嵌入到许多不同类型的现代装备中,从医疗设备到电器,从车辆到工业工具。此外,一种电子设备——智能手机——已经成为必须随身携带的东西。
许多电子设备,例如带有相机或显示屏的那些设备,可以操纵视频数据。例如,可以使用安全相机获得视频,然后对其进行增强以改善某些视觉方面,例如清晰度或对比度。现有的视频数据也可以被操纵来改善用于在智能手机或电视监视器的显示屏上呈现的个别视频帧的外观。例如,可以对电影的视频数据进行处理,以提高人工图形的真实感或提高显示分辨率。视频图像数据也在工业和医疗环境中被操纵。例如,来自三维身体扫描的图像数据可以被缝合在一起成为视频呈现,以供医生检查和分析。
在这些情况中的任何情况下,视频数据的操纵都是一项处理密集型任务。这部分是由于视频数据中通常存在的信息的大小或数量。因此,专用于处理视频数据的集成电路(IC)芯片的面积可以大于用于其它类型数据的面积。电子设备预期要处理的视频的显示分辨率不断提高,加剧了处理视频数据的难度。例如,高清晰度(HD)视频的视频数据大约是标准清晰度(SD)视频的四倍,超高清(UHD)或4K视频的视频数据大约是HD视频的四倍。
因此,电子设备预期处理的视频数据量在过去十年左右大幅增加。随着虚拟现实(VR)和人工现实(AR)的使用变得更加普遍,视频数据处理需求有望在未来几年进一步增加。因此,电子设备制造商继续努力提高电子设备处理不断增加的视频数据量的能力。
该背景描述被提供以总体呈现本公开的上下文。除非本文另有说明,否则本部分中描述的材料既不明确也不隐含地被认为是本公开或所附权利要求的现有技术。
发明内容
描述了用于视频帧编解码器架构的技术和装置。这些技术和装置使得集成电路(IC)芯片能够使用较少量的电路资源来处理高带宽视频数据,同时也便于简化工作流程以升级到较新的帧压缩/解压缩技术,包括无损技术。为此,避免了在IC芯片的多个不同核心中包括多个单独的帧解压缩单元。相反,帧解压缩器可以向充当帧解压缩器客户端电路的多个不同核心提供帧解压缩服务。帧解压缩器控制器使用对从多个核心的一个或多个核心接收的解压缩请求进行排序的排队或优先级机制来促进解压缩服务的共享。帧解压缩器控制器还可以根据分时协议仲裁对帧解压缩器的访问。在示例实施方式中,帧解压缩器与视频解码器客户端电路位于同一位置,并且帧解压缩器至少与显示器控制器共享。类似地,帧压缩器可以向充当帧压缩器客户端电路的多个不同核心提供帧压缩服务。帧压缩器控制器便于与多个核心共享压缩服务。此外,帧压缩服务和帧解压缩服务都可以在单个IC芯片中提供,以便在多个核心之间共享。
下面描述的方面包括一种电子设备,该电子设备包括帧解压缩器和帧解压缩器控制器。帧解压缩器被配置成解压缩多个已压缩的帧以产生多个已解压缩的帧。帧解压缩器控制器耦合到帧解压缩器,并且被配置成为多个核心仲裁对帧解压缩器的访问。多个核心包括第一核心和第二核心。第一核心耦合到帧解压缩器控制器,并且被配置成经由帧解压缩器控制器获得由帧解压缩器产生的多个已解压缩的帧中的一个已解压缩的帧。第二核心耦合到帧解压缩器控制器,并且被配置成经由帧解压缩器控制器获得由帧解压缩器产生的多个已解压缩的帧中的另一个已解压缩的帧。例如,第一核心可以被配置成经由帧解压缩器控制器获得由帧解压缩器产生的多个已解压缩的帧中的第一已解压缩的帧。第二核心可以被配置成经由帧解压缩器控制器获得由帧解压缩器产生的多个已解压缩的帧中的第二已解压缩的帧。
下面描述的方面还包括一种用于在多个核心之间共享帧解压缩电路的方法。该方法包括从第一核心接受对第一已解压缩的帧的第一请求。该方法还包括解压缩第一已压缩的帧以产生第一已解压缩的帧。响应于第一请求,第一已解压缩的帧被提供给第一核心。该方法还包括从第二核心接受对第二已解压缩的帧的第二请求。该方法还包括解压缩第二已压缩的帧以产生第二已解压缩的帧。响应于第二请求,将第二已解压缩的帧提供给第二核心。
下面描述的方面包括另一种电子设备,该电子设备包括视频解码器和显示器控制器。视频解码器被配置成解码视频流以产生多个已解码的帧。视频解码器包括帧压缩器、帧解压缩器和帧解压缩器控制器。帧压缩器被配置成压缩多个已解码的帧以产生多个已压缩的帧。帧解压缩器被配置成解压缩多个已压缩的帧以产生多个已解压缩的帧。帧解压缩器控制器耦合到帧解压缩器,并且被配置成仲裁对帧解压缩器的访问。显示器控制器耦合到帧解压缩器控制器。显示器控制器被配置成经由帧解压缩器控制器获得由帧解压缩器产生的多个已解压缩的帧中的一个已解压缩的帧。
下面描述的方面还包括一种系统,该系统包括帧解压缩器和多个核心。帧解压缩器被配置成解压缩多个已压缩的帧以产生多个已解压缩的帧。多个核心包括第一核心和第二核心。第一核心耦合到帧解压缩器,并且被配置成获得多个已解压缩的帧中的一个已解压缩的帧。第二核心耦合到帧解压缩器,并且被配置成获得多个已解压缩的帧中的另一个已解压缩的帧。例如,第一核心可以被配置成获得多个已解压缩的帧中的第一已解压缩的帧。第二核心可以被配置成获得多个已解压缩的帧中的第二已解压缩的帧。该系统还包括用于控制帧解压缩器为多个核心(包括第一核心和第二核心)仲裁对帧解压缩器的访问的控制装置。附加地或替代地,该系统可以包括帧压缩器,该帧压缩器被配置成压缩多个未压缩的帧以产生多个已压缩的帧。第一核心和第二核心可以各自获得多个已压缩的帧中的相应已压缩的帧。因此,该系统还可以包括用于控制帧压缩器为多个核心(包括第一核心和第二核心)仲裁对帧压缩器的访问的控制装置。
附图说明
参考以下附图描述用于实施视频帧编解码器架构的装置和技术。在所有附图中,相同的数字用于指代相似的特征和组件:
图1示出了包括印刷电路板的示例环境,其中可以实施视频帧编解码器架构。
图2示出了可以实施视频帧编解码器架构的示例环境的其他方面。
图3示出了具有视频帧编解码器架构的示例实施方式的片上系统(SoC),该架构包括帧压缩器-解压缩器、帧压缩器-解压缩器控制器和多个核心。
图3-1示出了具有包括帧压缩器、帧压缩器控制器和多个核心的视频帧编解码器架构的示例实施方式的SoC。
图3-2示出了具有包括帧解压缩器、帧解压缩器控制器和多个核心的视频帧编解码器架构的示例实施方式的SoC。
图4示出了与帧解压缩器和核心结合的示例帧压缩器-解压缩器控制器。
图5示出了实施视频帧编解码器架构的示例办法,其中多个核心包括视频解码器和显示器控制器。
图6示出了用于将已解压缩的显示帧从视频解码器路由到显示器控制器的示例技术。
图7示出了帧解压缩器控制器管理多个核心发出的已解压缩的帧请求的示例方案。
图8示出了帧压缩器-解压缩器控制器建立用于共享帧压缩资源或帧解压缩资源的分时协议的示例方案。
图9示出了用于操作本文所描述的视频帧编解码器架构的示例方法。
图10示出了根据一个或多个实施方式的可以实施视频帧编解码器架构的示例电子设备的各种组件。
具体实施例
概述
电影或其他视频的数据在闲置时消耗大量的存储带宽,在电子设备或其内部组件之间传播时也消耗大量的传输带宽。随着视频显示分辨率的提高,带宽需求也随之增加。例如,使用超高清(UHD)或4K视频,要处理的视频数据大约是十年前常用的SD视频的15-20倍。这种数据量的增加使得管理视频变得困难,即使在单个集成电路(IC)芯片中也是如此。例如,典型的片上系统(SoC)有一条系统总线,如果使用系统总线在不同SoC组件之间输送原始解码视频数据,该总线可能会过载。
众所周知,可以通过使用某种有损编解码器(如H.264)对视频进行编码来降低视频的带宽。然后,可以将编码后的视频从云服务器流传输到平板计算机,或者保存在蓝光光盘或闪速存储器中。例如,终端用户电子设备然后负责解码视频以呈现在显示屏上。解码需要将二进制1和0或位的流转换成个别的解码的视频帧,这些帧可以顺序显示以表示视频。作为这种视频编码和解码过程的一部分,视频数据被压缩和解压缩。利用这种视频级过程(例如,利用H.264编解码器),压缩量很大,但是压缩也是有损的。因此,由于视频级压缩/解压缩过程,一些视频信息丢失到图像品质可能明显改变的程度。
视频信息的这种丢失被接受,以便能够在设备之间传输大量视频数据,或者使用合理的存储量进行存储。在电子设备处解码视频流以产生解码的视频帧之后,在逐帧的基础上,将这大量视频数据重建为一组帧或许多个别帧。这些个别帧中的每一个仍然是可观的数据量。为了在电子设备处处理这一数量的视频数据,如果解码的视频帧当前没有被处理或显示,则解码的视频帧被压缩以产生压缩的视频帧。因为在任何给定时间从流中解码有限数量的帧,所以在一些实施方式中无损压缩算法可以应用于已解码的帧。无损压缩和已解压缩的帧级过程可以防止任何进一步的图像劣化。压缩的视频帧占用较少的存储器空间,在互连(如SoC的系统总线)上消耗更少的带宽。因此,压缩的视频帧可以在印刷电路板上的不同芯片之间、SoC与主存储器之间、甚至在单个SoC的不同组件之间转移。
为了能够在现有系统中使用每视频帧或帧级压缩,处理视频数据的SoC的每个相应组件或核心包括相应的解压缩单元。利用这种直观的常规办法,每个核心可以从压缩的视频帧中独立地产生解压缩的视频帧,然后根据给定核心的视频相关目的来处理解压缩的视频帧。然而,这种直观办法有几个附带的成本。首先,IC管芯上的一个可观的区域专门用于复制视频帧解压缩电路或压缩电路。第二,用于在显示屏上呈现视频的显示路径包括单独的解压缩单元。第三,升级SoC的视频帧压缩和解压缩技术的工作流程非常复杂。这种复杂性源于多个不同的核心,每个核心包括个别的解压缩单元或个别的压缩单元(在某些情况下,包括两种单元)。换句话说,要升级到更新、更高效的解压缩算法,必须同时修改包括压缩单元或解压缩单元的每个核心,然后将其与SoC的其余部分重新集成。因此,这种工作流程升级的复杂性减缓了改进的压缩/解压缩算法在多个核心芯片中的采用。
相反,这里描述的某些实施方式使用共享的帧压缩器-解压缩器。帧压缩器-解压缩器可以包括帧压缩器或帧解压缩器,或者两者。IC芯片(例如SoC)的多个核心可以从例如共享帧解压缩器获得已压缩的帧的解压缩版本。给定的核心可以请求已解压缩的帧,并且帧解压缩器可以提供包括所请求的已解压缩的帧的响应。因此,帧解压缩器可以起到提供帧解压缩服务的作用,并且每个核心可以起到帧解压缩服务的客户端的作用。类似地,帧压缩器可以起到提供帧压缩服务的作用,并且每个核心可以起到帧压缩服务的客户端的作用。这些帧级压缩和解压缩服务可以使用无损算法。
在一些实施方式中,SoC包括多个不同的组件,例如视频解码器和显示器控制器,它们作为不同的核心操作。视频解码器包括对视频流进行解码以产生已解码的帧的流解码器。视频解码器还包括帧压缩器,其从已解码的帧产生已压缩的帧。SoC的多个不同组件被配置成处理已解压缩的帧。例如,视频解码器可以使用已解压缩的参考帧来进一步解码视频流。另外,显示器控制器可以使用已解压缩的显示帧在显示屏上呈现视频。
为了获得这些示例类型的已解压缩的帧中的任何一种,帧解压缩器对对应的已压缩的帧进行解压缩。帧解压缩器可以使用一条或多条总线、至少一个缓冲器或一些其他路由机制将所请求的已解压缩的帧路由到请求核心。帧解压缩器控制器仲裁至少两个核心(例如视频解码器与显示器控制器)之间对帧解压缩器的共享访问。帧解压缩器控制器可以管理已压缩的帧请求的请求队列。管理可能需要根据优先级方案对帧请求的服务进行排序。帧解压缩器控制器还可以建立用于访问帧解压缩器的分时协议。分时协议可以包括分配给不同核心的时隙、接受核心发出的中断以取得对帧解压缩器的控制,等等。
以这些方式,帧压缩器资源或帧解压缩器资源可以在处理视频数据的两个或多个客户端核心之间共享。通过共享例如帧解压缩器,专用于帧解压缩的SoC的面积减少。此外,不需要沿着视频显示路径插入单独的帧解压缩器。此外,压缩/解压缩算法与整个SoC架构解耦。因此,压缩/解压缩算法可以更容易地并且因此更频繁地更新,因为SoC上包括更少或者甚至一个帧压缩器或者帧解压缩器,并且因此易于进行更新工作流程。
下面参考相关附图讨论不同细节层次的示例实施方式。下面的讨论首先描述示例操作环境,然后是示例方案和硬件,接着是示例方法,并以示例电子设备和相关示例方面结束。
示例环境
图1示出了包括印刷电路板104(PCB)的示例环境100,其中可以实施视频帧编解码器架构。如图所示,环境100包括电子设备102。电子设备102包括至少一个PCB 104。PCB 104包括一个或多个集成电路,例如集成电路106(IC)。如下参考图2和图3所述,PCB 104可以包括其他集成电路,例如与IC 106分立的至少一个存储器。IC 106包括:至少一个帧解压缩器108-2;多个核心110-1、110-2…110-n,n代表大于1的整数;和多个视频帧,例如至少一个已压缩的帧112和至少一个已解压缩的帧114。为了简单起见,图1仅描绘了帧解压缩器108-2,同时描述了示例环境100。然而,下面相应地参考图3和图3-1描述帧压缩器-解压缩器108和帧压缩器108-1。
在示例实施方式中,帧解压缩器108-2通信地耦合到多个核心110-1至110-n的至少一部分。帧解压缩器108-2包括解压缩已压缩的视频帧的电路。因此,帧解压缩器108-2可以解压缩已压缩的帧112,以产生已解压缩的帧114。在操作中,核心110使用帧解压缩器108-2来获得已压缩的帧的解压缩版本。例如,第n个核心110-n向帧解压缩器108-2发送指示正在请求所识别的已压缩的帧112的解压缩版本的请求116。帧解压缩器108-2提供包括已解压缩的帧114的响应118。尽管视频帧作为示例上下文被引用,但是这里描述的帧可以包括具有视觉数据的任何帧,包括计算机生成的图形帧、视频帧、组合帧等。
以类似方式,帧解压缩器108-2向多个核心110-1至110-n的个别核心提供解压缩服务。类似地,(例如,图3-1的)帧压缩器108-1可以向多个核心110-1至110-n的个别核心提供压缩服务。因此,帧解压缩器108-2或帧压缩器108-1(或两者)实现用于IC 106的帧压缩-解压缩(FCD)服务器电路122的至少一部分。类似地,多个核心110-1至110-n实现多帧压缩-解压缩(FCD)客户端电路120。使用这种客户端-服务器架构,帧压缩器单元或帧解压缩器单元可以在两个或更多个核心110之间共享,以节省IC 106上的空间,并简化用于升级IC 106的用来压缩/解压缩视频帧的压缩/解压缩技术的工作流程。下面参照图3、图3-1和图3-2描述IC 106和PCB 104的更详细的示例架构。然而,接下来参考图2描述示例实施方式的附加方面。
图2示出了其中可以实施如本文所描述的视频帧编解码器架构的示例环境200的其他方面。电子设备102用各种非限制性示例设备示出:智能手机102-1、笔记本计算机102-2、电视102-3、台式计算机102-4、平板电脑102-5和可穿戴设备102-6。如右侧所示,电子设备102包括一个或多个处理器202、一个或多个计算机可读介质204和至少一个互连216。计算机可读介质204可以存储、保持或以其他方式包括代码、数据、指令、其他信息等。电子设备102还可以包括操作系统212。尽管单独描述,但是操作系统212可以存储在一个或多个计算机可读介质204上。
被实现为计算机可读介质204上的计算机可读指令的应用(未示出)或操作系统212可以由处理器202执行。操作系统212或基本输入/输出系统(BIOS)可以包括帧编解码器参数模块214。帧编解码器参数模块214可以设置一个或多个参数,以启用、授权、调谐或以其他方式促进这里描述的共享帧压缩和解压缩功能的执行。
如图所示,计算机可读介质204可以包括至少一个视频缓冲器206、至少一个共享本地高速缓存208和至少一个主存储器210。在一些实施方式中,视频缓冲器206和共享本地高速缓存208是IC上的单独存储块。在其他实施方式中,视频缓冲器206和共享本地高速缓存208是同一存储块的一部分,例如如果共享本地高速缓存208的一部分在动态变化或固定分配方案中用作视频缓冲器206。互连216可以包括至少一条系统总线218、至少一条视频总线220和至少一条外部总线222。在一些实施方式中,视频总线220和系统总线218是不同的总线。在其他实施方式中,没有单独的视频总线,因此视频数据使用系统总线218在IC周围传播。下面参考图4至图6描述这些计算机可读介质204和这些互连216的示例实施方式。
示例组件和技术
图3示出了PCB 104的一部分。PCB 104包括片上系统302(SoC)和主存储器210。SoC302描绘了视频帧编解码器架构的示例实施方式,该架构包括帧压缩器-解压缩器108(FCD)、帧压缩器-解压缩器控制器304和多个核心110-1至110-n。SoC 302还包括共享本地高速缓存208和系统总线218。主存储器210经由外部总线222耦合到SoC 302,外部总线222被包括为PCB 104的一部分(例如,设置在PCB 104上)。
PCB 104可以用刚性或柔性材料实施,用于安装或固定多个IC芯片、互连、接口等。主存储器210可以使用例如周期性地刷新以保持存储器内容的动态随机存取存储器(DRAM)或者可以在没有电力的情况下保持存储器内容的闪速存储器来实现。通常,访问存储在主存储器210上的数据比访问存储在SoC 302(例如共享本地高速缓存208)上的数据消耗更多的能量。共享本地高速缓存208可以使用例如静态随机存取存储器(SRAM)、DRAM、闪速存储器或它们的某种组合来实现。
系统总线218互连多个核心110-1至110-n、共享本地高速缓存208、帧压缩器-解压缩器控制器304以及其他组件和接口(例如,帧压缩器-解压缩器108可以直接耦合到系统总线218)。多个核心110-1至110-n中的每个核心110可以使用系统总线218在共享本地高速缓存208处存储数据或者从共享本地高速缓存208检索数据。类似地,多个核心110-1至110-n中的每个核心110可以使用外部总线222,例如也通过使用系统总线218或共享本地高速缓存208,在主存储器210处存储数据或从主存储器210检索数据。例如,第一核心110-1可以将数据存储在共享本地高速缓存208中,然后第二核心110-2可以从共享本地高速缓存208中检索存储的数据。
在示例操作中,帧压缩器-解压缩器108(FCD)处理(例如,压缩或解压缩)多个未处理的帧306,以产生多个已处理的帧308。帧压缩器-解压缩器控制器304(FCD控制器)耦合到帧压缩器-解压缩器108,并为多个核心110-1至110-n仲裁对帧压缩器-解压缩器108的访问。尽管单独示出,但是帧压缩器-解压缩器108和帧压缩器-解压缩器控制器304可以逻辑集成在一起。多个核心110-1至110-n中的至少两个核心110耦合到帧压缩器-解压缩器控制器304。因此,每个核心110可以经由帧压缩器-解压缩器控制器304获得由帧压缩器-解压缩器108从其未处理的帧版本产生的已处理帧308。已处理帧308可以使用例如请求116和对应的响应118来获得。
帧压缩器-解压缩器108可以包括帧压缩器308-1(例如,如图3-1所描绘)、帧解压缩器108-2(例如,如图3-2所示)或两者。类似地,帧压缩器-解压缩器控制器304可以包括帧压缩器控制器304-1(例如,如图3-1所示)、帧解压器控制器304-2(例如,如图3-2所示)或两者。根据帧压缩器-解压缩器108的处理操作是压缩还是解压缩操作,未处理帧306或已处理帧308中的一个对应于已压缩的帧,并且另一个对应于已解压缩的帧。如果给定的实施方式包括帧压缩器108-1和帧解压缩器108-2(和/或帧压缩器控制器304-1和帧解压缩器控制器304-2两者),则这些组件可以位于同一位置、彼此邻近或位于IC上的不同位置。例如,每个都可以位于更靠近核心的位置,该核心可能是对应的压缩或解压缩服务的最常见客户端。此外,如果芯片包括位于同一位置的帧压缩器108-1和帧解压缩器108-2,则每个都可以包括完全单独的电路或者它们可以共享电路。在一些实施方式中,帧压缩器-解压缩器108可以被实现为无损帧数据操纵器,其根据请求116调整用于帧的数据的存储大小作为无损压缩操作或无损解压缩操作的一部分。下面相应地参考图3-1和图3-2描述压缩操作和解压缩操作的示例实施方式。
图3-1示出了具有视频帧编解码器架构的示例实施方式的SoC,该架构包括帧压缩器108-1(FC)、帧压缩器控制器304-1(FC控制器)和多个核心。帧压缩器108-1压缩未压缩的帧(例如,已解压缩的帧114或尚未压缩的帧)以产生已压缩的帧112。帧压缩器控制器304-1耦合到帧压缩器108-1,并且为多个核心110-1至110-n仲裁对帧压缩器108-1的访问。尽管单独示出,但是帧压缩器108-1和帧压缩器控制器304-1可以逻辑上集成在一起。
多个核心110-1至110-n中的至少两个核心110耦合到帧压缩器控制器304-1。这里,每个核心110可以包括产生视觉数据的组件或块。因此,每个核心110可以经由帧压缩器控制器304-1获得由帧压缩器108-1从其已解压缩的帧114版本产生的已压缩的帧112。因此,可以使用例如请求116和对应的响应118来获得已压缩的帧112。在操作中,帧压缩器控制器304-1可以以流水线方式向系统总线218上的一些请求核心110授予对帧压缩器108-1的压缩引擎的访问,以避免增加到外部总线222的流量,外部总线222提供对主存储器210的访问。在一些实施方式中,帧压缩器控制器304-1可以临时授予对请求核心110的独占访问,以访问压缩资源。
图3-2示出了具有视频帧编解码器架构的示例实施方式的SoC,该架构包括帧解压缩器108-2(FD)、帧解压缩器控制器304-2(FD控制器)和多个核心。帧解压缩器控制器304-2耦合到帧解压缩器108-2,并且为多个核心110-1至110-n仲裁对帧解压缩器108-2的访问。尽管单独示出,但是帧解压缩器108-2和帧解压缩器控制器304-2可以逻辑上集成在一起。多个核心110-1至110-n中的至少两个核心110耦合到帧解压缩器控制器304-2。因此,每个核心110可以经由帧解压缩器控制器304-2获得由帧解压缩器108-2从其已压缩的帧112版本产生的已解压缩的帧114。因此,已解压缩的帧114可以使用例如请求116和对应的响应118来获得。
下面的一些描述集中在至少可以执行解压缩操作的实施方式上。因此,每个可以明确地包括帧解压缩器108-2和帧压缩器-解压缩器控制器304或帧解压缩器控制器304-2。然而,每个实施方式可以附加地或替代地包括用于执行压缩操作的帧压缩器108-2。此外,压缩操作和已压缩的帧112的移动如何能够以至少类似于参考图4至图6针对解压缩操作描述的方式来实现是显而易见的。此外,参考图7描述的请求处理和参考图8描述的分时协议同样可以以类似的方式用于压缩操作。
核心110中的至少一些可以出于视频相关目的对视频数据进行操作。视频相关目的包括:视频解码、视频显示、视频转码(例如,使用一种算法从一种编码格式解码并使用另一种算法编码成另一种编码格式)、视频补偿(例如,图形处理单元(GPU)对视频帧进行操作以改善或增强图像)等等。参考图5,下面描述示例实施方式,其中第一核心实现为视频解码器,第二核心实现为显示器控制器。然而,首先参考图4描述帧解压缩器控制器304的示例实施方式。
图4以400总体示出了与帧解压缩器108-2和核心110结合的示例帧压缩器-解压缩器控制器304。核心110包括FCD客户端接口410,并且帧解压缩器控制器304包括FCD服务接口408。FCD客户端接口410和FCD服务接口408共同实现核心110与帧压缩器-解压缩器控制器304之间的通信。因此,使用这两个接口,核心110可以向帧压缩器-解压缩器控制器304发送请求116,并且帧压缩器-解压缩器控制器304可以向核心110发送响应118。
FCD客户端接口410和FCD服务接口408可以通过系统总线218(未示出)、视频总线218等进行通信。请求116可以使用位线、寄存器的一个或多个位、被公式化为至少一个分组等的消息等来传送。包括已解压缩的帧114的响应118可以使用将核心110耦合到帧解压缩器108-2的总线、使用核心110和帧解压缩器108-2都可以访问的存储器、它们的某种组合等来传送。下面参照图5和图6描述不同接口通信的示例。
如图所示,帧压缩器-解压缩器控制器304包括请求管理器402、请求队列404、优先级管理器406和分时协议处置器(handler)412。FCD服务接口408至少耦合到请求管理器402、优先级管理器406和分时协议处置器412。下面参考图7描述用于管理请求的示例方案,包括对请求的服务进行优先级排序。下面参考图8描述使用分时协议处置器412来建立分时协议以访问帧解压缩器108-2的示例方案。
图5示出了实施视频帧编解码器架构的示例办法500,其中SoC的多个核心包括视频解码器502和显示器控制器504。在左边,视频解码器502包括流解码器506,流解码器506包括帧压缩器108-1。然而,帧压缩器108-1可以与流解码器506或视频解码器502分开实施。在右侧,显示器控制器504包括帧缓冲器518。帧解压缩器108-2、帧压缩器-解压缩器控制器304(FCD控制器)和视频缓冲器206与视频解码器502相关联。例如,这三个组件可以与视频解码器502位于同一位置(例如,设置在视频解码器502旁边或者物理上与之混合),可以至少部分地与视频解码器502逻辑上集成,或者它们的某种组合。尽管参考视频解码器502和显示器控制器504进行了描述,但是这些原理通常适用于核心110。此外,尽管视频缓冲器206与共享本地高速缓存208分开描述,但是视频缓冲器206也可以作为共享本地高速缓存208的一部分并入或者从共享本地高速缓存208分配。
在示例实施方式中,电子设备获得视频流514,视频流514可以包括被编码以表示视频的比特流。视频流514由多个原始帧516组成,这些原始帧使用诸如H.264的某种编解码器编码。流解码器506经由系统总线218接收视频流514,并解码视频流514以产生多个已解码的帧512,其中一个被明确示出。帧压缩器108-1压缩多个已解码的帧512以产生多个已压缩的帧112。如图所示,帧压缩器108-1与流解码器506集成。因此,帧压缩器108-1可以压缩已解码的帧512,作为解码过程的一部分;然而,帧压缩可以以替代方式实施。这些解码的和已压缩的帧112可以被存储在视频缓冲器206、共享本地高速缓存208或主存储器210,以供视频解码器502或另一个核心随后使用。
解码的和已压缩的帧112可以用于不同的视频相关目的。例如,如果已压缩的帧要用于进一步的视频解码目的,则已压缩的帧112可以包括已压缩的参考帧112R。替代地,如果另一已压缩的帧用于视频显示目的,则另一已压缩的帧112可以包括已压缩的显示帧112D。对于视频解码器502的视频解码功能,帧解压缩器108-2解压缩已压缩的参考帧112R以产生已解压缩的参考帧114R。视频解码器502可以使用已解压缩的参考帧114继续解码视频流514。
对于显示器控制器504的视频显示功能,帧解压缩器108-2解压缩已压缩的显示帧112D以产生已解压缩的显示帧114D。显示器控制器504可以经由帧解压缩器控制器客户端接口410和帧解压缩器控制器服务接口408(图4的两个)从帧压缩器-解压缩器控制器304(例如,其至少包括图3-2的帧解压缩器控制器304-2)请求该解压缩服务。帧压缩器-解压缩器控制器304经由路由机制510(由实线波形箭头表示)向显示器控制器504提供已解压缩的显示帧114D。显示器控制器504可以将已解压缩的显示帧114D存储在帧缓冲器518中。显示器控制器504因此可以使用存储的已解压缩的显示帧114D在显示屏上呈现视频帧的图像。尽管图5的帧压缩器-解压缩器控制器304是根据利用帧解压缩器108-2向多个核心提供解压缩服务来描述的,但是这些原理也适用于利用帧压缩器108-1向多个核心提供压缩服务的帧压缩器-解压缩器控制器304。
图5中使用小虚线指示了多个示例路由机制510。路由机制510代表帧压缩器-解压缩器控制器304向请求核心(例如视频解码器502或显示器控制器504)提供已解压缩的帧114的不同途径。在第一路由机制510-1中,帧压缩器-解压缩器控制器304经由系统总线218向显示器控制器504的帧缓冲器518提供已解压缩的显示帧114D。在第二路由机制510-2中,帧压缩器-解压缩器控制器304经由系统总线218和共享本地高速缓存208向显示器控制器504提供已解压缩的显示帧114D。例如,帧压缩器-解压缩器控制器304可以在共享本地高速缓存208中存储已解压缩的显示帧114D,并且显示器控制器504可以从共享本地高速缓存208中检索所存储的已解压缩的显示帧114D。
在第三路由机制510-3中,帧压缩器-解压缩器控制器304经由系统总线218和主存储器210向显示器控制器504提供已解压缩的显示帧114D。例如,帧压缩器-解压缩器控制器304可以经由系统总线218和外部总线222将已解压缩的显示帧114D片外存储在主存储器210中。显示器控制器504可以使用两条总线从主存储器210检索所存储的已解压缩的显示帧114D,然后将该帧存储在帧缓冲器518中。
第四路由机制510-4涉及将视频解码器502服务为帧解压缩服务的客户端。在第四路由机制510-4中,帧压缩器-解压缩器控制器304向视频解码器502提供已解压缩的参考帧114R。为此,帧压缩器-解压缩器控制器304将已解压缩的参考帧114R转移到视频缓冲器206。视频解码器502可以从视频缓冲器206访问已解压缩的参考帧114R。
在第五路由机制510-5中,如果集成电路包括视频总线220以及系统总线218,则帧压缩器-解压缩器控制器304经由至少部分与系统总线218分离的视频总线220向显示器控制器504提供已解压缩的显示帧114D。如图所示,视频总线220专用于传播视频数据,并且至少在帧压缩器-解压缩器控制器304与显示器控制器504之间延伸。然而,视频总线220可以不同地实施,例如通过将其他视频数据传送到其他核心和从其他核心传送其他视频数据。
在第六路由机制510-6中,帧压缩器-解压缩器控制器304经由视频缓冲器206向显示器控制器504提供已解压缩的显示帧114D。帧压缩器-解压缩器控制器304将已解压缩的显示帧114D的至少一部分存储在视频缓冲器206中。在一种办法中,显示器控制器504至少使用系统总线218从视频缓冲器206中检索已解压缩的显示帧114D。在另一种办法中,显示器控制器504至少使用视频总线220(例如,如果与系统总线218分开存在)从视频缓冲器206检索已解压缩的显示帧114D。无论采用哪种办法,第六路由机制510-6都可以进一步需要显示器控制器504访问视频缓冲器206的存储器映射机制。接下来参考图6描述存储器映射机制的示例实施方式。
图6示出了用于使用第六路由机制510-6将已解压缩的显示帧114D从视频解码器502路由到显示器控制器504的示例技术600。在这个示例中,视频解码器502与帧解压缩器108-2和帧压缩器-解压缩器控制器304集成。除了视频缓冲器206之外,视频解码器502还包括同步寄存器602。在这个示例中,视频缓冲器206用作输出缓冲器。因此,帧压缩器-解压缩器控制器304使得帧解压缩器108-2将已解压缩的显示帧114D的至少一部分存储在视频缓冲器206中。
第六路由机制510-6的示例技术600涉及至少一个状态通信606。第一状态通信606-1发生在帧压缩器-解压缩器控制器304与同步寄存器602之间。第二状态通信606-2发生在显示器控制器504与同步寄存器602之间。每个状态通信606可以包括轮询操作或更新操作,并且可以通过系统总线218或视频总线220来执行。
响应于将已解压缩的显示帧114D的至少一部分存储在视频缓冲器206中,帧压缩器-解压缩器控制器304将值604写入同步寄存器602中,作为第一状态通信606-1的更新操作的一部分。该值604指示视频缓冲器206的内容的存储状态。这里,值604指示特定视频数据(例如已解压缩的显示帧114D的一个或多个显示行608)已经被新放置在视频缓冲器206中。因此,视频缓冲器206可以用作保持一个或多个显示行608的行缓冲器。
同时,显示器控制器504从同步寄存器602中提取值604作为第二状态通信606-2的轮询操作的一部分。基于值604,显示器控制器504确定所请求的已解压缩的显示帧114D的一个或多个新显示行608在视频缓冲器206中存在并且可用。显示器控制器504因此根据值604经由系统总线218或视频总线220从视频缓冲器206检索至少一个显示行608。响应于检索,显示器控制器504在同步寄存器602中写入另一个值604,作为第二状态通信606-2的更新操作的一部分,以指示对应的显示行608的检索状态。该另一个值604因此指示至少一个对应的显示行608已经从视频缓冲器206中读出。
周期性地,或者作为某些操作的一部分,帧压缩器-解压缩器控制器304轮询同步寄存器602,作为第一状态通信606-1的一部分。帧压缩器-解压缩器控制器304检查另一个值604,以确定对应的显示行608是否已经被显示器控制器504访问和检索。如果是,帧压缩器-解压缩器控制器304知道对应的显示行608的存储位置可以用新数据重写。
值604或另一个值604可以包括例如一个或多个比特。值604和另一个值604可以对应于同步寄存器602的不同存储位置或相同存储位置。尽管参考视频解码器502和显示器控制器504进行了描述,但是这些原理通常适用于核心110。通过轮询和更新同步寄存器602中的值604,可以使用存储器映射转移机制来控制已解压缩的显示帧114D的路由。
图7示出了由帧压缩器-解压缩器控制器304管理由多个核心针对已解压缩的帧发出的请求116的示例方案700。在这个示例中,视频解码器502与帧解压缩器108-2和帧压缩器-解压缩器控制器304集成。帧压缩器-解压缩器控制器304由请求管理器402、请求队列404和优先级管理器406(也在图4中示出)表示。如图所示,请求队列404包括多个请求116。每个请求116对应于优先级706。每个请求116还包括或对应于请求者标识702和帧标识704。
对已解压缩的帧的某些请求可能比其他请求更重要或在时间上相关。例如,对于终端用户来说,与流视频的实时呈现相关的请求可能比可以在后台以尽力速率(best-efforts rate)执行的视频转码操作的请求更重要。因此,前者视频相关目的的请求可以优先于后者视频相关目的的请求。为此,优先级706可以与请求、核心、帧等相关联。
在示例实施方式中,请求者标识702标识请求核心110,例如(图5和6的)视频解码器502或显示器控制器504。帧标识704例如通过帧号、时间索引或其偏移量来标识所请求的已解压缩的帧114。请求者标识702可以基于用于提供请求116的起源或总线(例如,如果为每个核心相应地提供专用总线),使用一条或多条位线上的特定电压值,用与请求116一起转移的分配的标识值来实现。帧标识704可以明确地包括在每个请求116中,可以隐含地包括在请求116中(例如,如果需要下一个连续帧),可以包括在先前的请求中作为帧范围的一部分,等等。
在操作中,请求管理器402例如经由帧解压缩器控制器服务接口408从核心110接收请求116。请求管理器402将请求116插入请求队列404中。在一种办法中,请求管理器402以先进先出(FIFO)的方式操作请求队列404。替代地,请求管理器402可以基于对应的优先级706将每个请求116插入到请求队列404中。每个个别请求116的对应的优先级706可以被包括或者可以伴随对应的个别请求116。替代地,优先级706可以被明确地批量分配给一组请求116,或者每个核心110可以与特定优先级706相关联,该特定优先级706被隐含地分配给由相关核心110发出的每个请求116。
如图所示,每个请求116与对应的优先级706相关联地存储在请求队列404中,使得具有不同优先级706的请求116存储在同一请求队列404中。替代地,帧压缩器-解压缩器控制器304可以使用多个请求队列404来实施所示的请求队列404,每个请求队列404与对应的优先级706相关联。因此,每个请求116存储在与对应于该请求116的相应优先级706相关联的相应请求队列404中。
不管用于实施所示的请求队列404的办法如何,优先级管理器406根据相应地对应于多个请求116的多个优先级706来给多个请求116的服务排序。因此,优先级管理器406使用基于两个或更多个请求116之间的相对优先级的优先级方案提取下一个请求116。优先级管理器406将下一个请求116转发给帧解压缩器108-2。帧解压缩器108-2检索对应于所请求的已解压缩的帧114的已压缩的帧112。继续图5和6的示例场景,帧解压缩器108-2检索压缩的显示帧112D,并执行解压缩操作以产生已解压缩的显示帧114D。帧压缩器-解压缩器控制器接口408使得帧解压缩器108-2将已解压缩的显示帧114D路由到视频解码器502,作为响应118的一部分。
图8示出了帧压缩器-解压缩器控制器304建立用于共享帧压缩资源(例如帧压缩器108-1(例如,图3-1))或者帧解压缩资源(例如帧解压缩器108-2(例如,图3-2))的至少一个分时协议800的示例方案。帧压缩器-解压缩器控制器304(未明确示出)的分时协议处置器412可以建立至少一个示例分时协议800-1、800-2或800-3。如箭头812所示,时间沿向右方向增加。每个示例分时协议800是根据在两个核心之间共享帧解压缩资源来描述的;然而,所公开的分时协议800可以应用于在多于两个核心之间共享帧解压缩资源。虽然图8是根据帧解压缩的分时描述的,但是这些原理也适用于实现帧压缩的分时协议。
利用第一分时协议800-1,时间被分成多个时隙。这些时隙具有固定时间,并且每个相应的时隙被分配给相应核心。时隙802-1对应于第一核心,例如视频解码器502。时隙802-2对应于第二核心,例如显示器控制器504。在操作中,分时协议处置器412在两个不同时隙的规定长度上旋转两个核心之间对帧解压缩资源的访问。在第一分时协议800-1中,中断不被启用。
相反,对于第二分时协议800-2启用中断806。这里,帧解压缩资源通常是为两个客户端之一(在本例中是第一个核心)保留的。因此,时隙804-1对应于第一核心,并且可以无限期地延伸。这些时隙804-1延伸直到分时协议处置器412接收到中断806为止。核心110可以经由系统总线上的消息、使用专用视频总线、通过将中断线路驱动为高电平等来发信号通知中断806。响应于检测到中断806,分时协议处置器412初始化上下文切换,以将对帧解压缩资源的访问转移到不同的核心,并开始另一个时隙。
如第二分时协议800-2所示,第二核心发出中断806a。分时协议处置器412检测中断806a,并将对帧解压缩器108-2的访问转移到进行中断的第二核心。因此,帧解压缩器108-2执行至少一个解压缩操作,以在中断806a之后的时隙804-2期间为请求第二核心产生已解压缩的帧114。每个时隙804-2的长度可以是固定的,可以取决于为第二核心排队的请求的数量,可以取决于每个排队请求的优先级等等。在第一核心被再次授权访问帧解压缩资源持续另一个时隙804-1之后,第二核心可以随后发出另一个中断806b。在替代办法中,分配给第二核心的每个时隙804-2可以继续,直到另一个核心发出中断(未示出)为止。因此,在该替代办法中,上下文切换可以响应于中断806而发生,并且与经过的时间无关。
利用第三分时协议800-3,时间被分成多个时隙。第三分时协议800-3是第一分时协议和第二分时协议的混合。一些时隙,例如时隙808-1,具有不可中断的固定时间。其他时隙,诸如时隙810-1,具有可以被另一个核心中断的可变时间。如图所示,第一核心被分配给时隙808-1和810-1。来自第二核心的中断806c在时隙808-1期间到达。然而,分时协议处置器412忽略该中断806c(或使该中断806c排队)。另一方面,在时隙810-1期间到达的中断806d触发上下文切换。利用上下文切换,在中断806d之后,帧解压缩资源被分配给第二核心持续时隙804-2。如果中断806c在时隙808-1期间排队(而不是被解除),则响应于中断806c,可以在时隙808-1结束时或者在时隙810-1开始时初始化上下文切换。
已经大致描述了其中可以实施视频帧编解码器架构的技术和装置的环境,现在讨论转向示例方法。
示例方法
以下讨论描述了用于操作视频帧编解码器架构的方法。这些方法可以利用前面描述的示例来实施,诸如如图1和图3所示的电子设备102和PCB 104,以及图10所描绘的电子设备1000。这些方法的方面在图9中示出,其被示为由至少一个IC芯片的一个或多个组件执行的操作902-912。这些方法的操作被示出和/或描述的顺序不旨在被解释为限制,并且所描述的方法操作的任何数量或组合可以以任何顺序组合以实施方法或替代方法。尽管图9的流程图是根据操作帧解压缩器108-2来描述的,但是这些原理可以类似地应用于操作帧压缩器108-1。
图9示出了用于操作视频帧编解码器架构的示例方法900,其可以由向多个不同核心提供帧解压缩服务的电路来实施。在902,从第一核心接受对第一已解压缩的帧的第一请求。例如,帧压缩器-解压缩器控制器304(例如,其帧解压缩器控制器304-2)可以从第一核心110-1接受对第一已解压缩的帧114的第一请求116。接受可以经由系统总线218、视频总线220、同步寄存器602等来执行。
在904,第一已压缩的帧被解压缩以产生第一已解压缩的帧。例如,帧解压缩器108-2可以解压缩第一已压缩的帧112,以产生第一已解压缩的帧114。第一请求116的服务可以根据相关联的优先级706来执行。
在906,响应于第一请求,第一已解压缩的帧被提供给第一核心。例如,帧压缩器-解压缩器控制器304可以响应于第一请求116向第一核心110-1提供第一已解压缩的帧114。可以使用路由机制500将第一已解压缩的帧114从帧解压缩器108-2转移到第一核心110-1。
在908,从第二核心接受对第二已解压缩的帧的第二请求。例如,帧压缩器-解压缩器控制器304可以从第二核心110-2接受对第二已解压缩的帧114的第二请求116。第一核心110-1可以包括显示器控制器504,并且第二核心110-2可以包括视频解码器502。
在910,第二已压缩的帧被解压缩以产生第二已解压缩的帧。例如,帧解压缩器108-2可以解压缩第二已压缩的帧112,以产生第二已解压缩的帧114。解压缩可以使用无损压缩/解压缩算法来执行。在912,响应于第二请求,第二已解压缩的帧被提供给第二核心。例如,帧压缩器-解压缩器控制器304可以响应于第二请求116向第二核心110-2提供第二已解压缩的帧114。在获得第二已解压缩的帧114之后,第二核心110-2可以根据对应的视频相关功能来处理该帧。
前面的讨论描述了与视频帧编解码器架构相关的方法。这些方法的方面可以在例如硬件(例如,固定逻辑电路)、固件或其某种组合中实施。这些技术可以使用图1至图8和图10所示的一个或多个实体或组件(电子设备1000在下面的图10中描述)来实现,这些实体或组件可以被进一步划分、组合等。因此,这些附图说明了能够采用所述技术的许多可能的系统或装置中的一些。这些图的实体和组件通常代表固件、硬件、IC芯片、电路或它们的组合。
示例电子设备
图10示出了示例电子设备1000的各种组件,示例电子设备1000可以根据参考先前图1至图9中的任何一个描述的一个或多个实施方式来实施视频帧编解码器架构。电子设备1000可以实施为固定或移动设备中的任何一个或其组合,呈消费器(consumer)、计算机、便携式、用户、服务器、通信、电话、导航、游戏、音频、相机、消息、媒体回放和/或其他类型的电子设备102(例如图1所示的智能电话)的任何形式。
电子设备1000包括通信收发器1002,通信收发器1002允许设备数据1004的有线和/或无线通信,设备数据1004例如是如上所描述的接收数据、传输数据或其他信息。示例通信收发器1002包括NFC收发器、符合各种IEEE 802.15(蓝牙TM)标准的WPAN无线电、符合各种IEEE 802.11(WiFiTM)标准中的任一标准的WLAN无线电、用于蜂窝电话的WWAN(符合3GPP)无线电、符合各种IEEE 802.16(WiMAXTM)标准的无线城域网(WMAN)无线电以及有线局域网(LAN)以太网收发器。
电子设备1000还可以包括一个或多个数据输入端口1006,经由该端口可以接收任何类型的数据、媒体内容和/或其他输入,例如用户可选的输入、消息、应用、音乐、电视内容、记录的视频内容以及从任何内容和/或数据源接收的任何其他类型的音频、视频和/或图像数据。数据输入端口1006可以包括用于闪速存储器、DVD、CD等的USB端口、同轴电缆端口和其他串行或并行连接器(包括内部连接器)。这些数据输入端口1006可用于将电子设备耦合到组件、外围设备或附件,例如键盘、麦克风或相机。
该示例的电子设备1000包括至少一个处理器1008(例如,应用处理器、微处理器、数字信号处理器(DSP)、控制器等中的任何一个或多个),处理器1008可以包括组合的处理器和存储器系统(例如,实施为SoC的一部分),组合的处理器和存储器系统处理(例如,执行)存储在计算机可读介质上的计算机可执行指令以控制设备的操作。处理器1008可以实施为应用处理器、嵌入式控制器、微控制器、SoC等。通常,处理器或处理系统可以至少部分地用硬件实施,硬件可以包括集成电路或片上系统、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD)的组件以及硅和/或其他硬件中的其他实施方式。
替代地或附加地,电子设备1000可以用电子电路中的任何一个或组合来实施,电子电路可以包括软件、硬件、固件或固定逻辑电路,其组合处理和控制电路来实施,处理和控制电路总体上用1010表示(作为电子电路1010)。该电子电路1010可以通过逻辑电路和/或硬件(例如,诸如FPGA)等实施可执行的或基于硬件的模块(未示出)。
虽然未示出,但是电子设备1000可以包括耦合设备内各种组件的系统总线、互连、交叉开关(crossbar)或数据转移系统。系统总线或互连可以包括不同总线结构中的任何一种或组合,例如存储器总线或存储器控制器、外围总线、通用串行总线和/或利用多种总线架构中的任何一种的处理器或本地总线。
电子设备1000还包括启用数据存储的一个或多个存储设备1012,其示例包括随机存取存储器(RAM)、非易失性存储器(例如只读存储器(ROM)、闪速存储器、EPROM和EEPROM)以及磁盘存储设备。(一个或多个)存储设备1012提供数据存储机制来存储设备数据1004、其他类型的代码和/或数据以及各种设备应用1020(例如,软件应用或程序)。例如,操作系统1014可以作为软件指令被保存在存储器设备1012中,并由处理器1008执行。
如图所示,电子设备1000还包括音频和/或视频处理系统1016,其处理音频数据和/或将音频和视频数据传递到音频系统1018和/或显示系统1022(例如,视频缓冲器或智能电话或相机的屏幕)。音频系统1018和/或显示系统1022可以包括处理、显示和/或以其他方式呈现音频、视频、显示和/或图像数据的任何设备。显示数据和音频信号可以经由RF(射频)链路、S-视频链路、HDMI(高清晰度多媒体接口)、复合视频链路、分量视频链路、DVI(数字视频接口)、模拟音频连接或诸如媒体数据端口1024的其他类似通信链路传送到音频组件和/或显示组件。在一些实施方式中,音频系统1018和/或显示系统1022是电子设备1000的外部或单独组件。替代地,显示系统1022可以是示例电子设备1000的集成组件,例如集成触摸接口的一部分。
图10的电子设备1000是图1的电子设备102的示例实施方式。因此,处理器1008是(例如,相应地为图1、图2和图3的)集成电路106、处理器202或SoC 302的示例。因此,如图10所示,处理器1008可以包括帧压缩器-解压缩器108、多个核心110-1至110-n以及帧压缩器-解压缩器控制器304。在图10中,视频缓冲器206、共享本地高速缓存208和主存储器210(例如,也是图2、图3、图5或图6中的每一个)被描绘为形成存储系统的至少一部分,例如通过成为一个或多个存储设备1012的一部分。如上所述,这些存储器组件中的一个或多个可以是与处理器1008的集成电路相同的集成电路的一部分(例如,视频缓冲器206和共享本地高速缓存208是图3中SoC 302的一部分),或者替代地位于单独的管芯上,或者甚至设置在不同的印刷电路板上。因此,这里描述的视频帧编解码器架构的原理可以由图10的电子设备1000实施,或者结合图10的电子设备1000实施。
尽管已经用特定于某些特征和/或方法的语言描述了视频帧编解码器架构的实施方式,但是所附权利要求的主题不一定限于所描述的特定特征或方法。相反,特定特征和方法被公开为视频帧编解码器架构的示例实施方式。

Claims (21)

1.一种电子设备,包括:
帧解压缩器,所述帧解压缩器被配置成解压缩多个已压缩的帧以产生多个已解压缩的帧;
帧解压缩器控制器,所述帧解压缩器控制器耦合到所述帧解压缩器并且被配置成为多个核心仲裁对所述帧解压缩器的访问;
耦合到所述帧解压缩器控制器的所述多个核心中的第一核心,所述第一核心被配置成经由所述帧解压缩器控制器获得由所述帧解压缩器产生的所述多个已解压缩的帧中的已解压缩的帧;和
耦合到所述帧解压缩器控制器的所述多个核心中的第二核心,所述第二核心被配置成经由所述帧解压缩器控制器获得由所述帧解压缩器产生的所述多个已解压缩的帧中的另一个已解压缩的帧。
2.根据权利要求1所述的电子设备,其中:
所述第一核心被配置成将所述已解压缩的帧用于第一视频相关目的;
所述第二核心被配置成将所述另一个已解压缩的帧用于第二视频相关目的;和
所述第一视频相关目的和所述第二视频相关目的包括从下述视频相关目的组中选择的不同的视频相关目的,所述视频相关目的组包括:视频解码、视频显示、视频转码或视频补偿。
3.根据权利要求1或2所述的电子设备,其中:
所述第一核心包括视频解码器,所述视频解码器被配置成解码视频流以产生多个已解码的帧;
所述帧解压缩器与所述视频解码器逻辑地集成在一起;以及
所述第二核心包括显示器控制器。
4.根据前述权利要求中任一项所述的电子设备,其中,所述帧解压缩器控制器包括:
请求队列,所述请求队列被配置成存储多个请求,每个请求对应于至少一个已解压缩的帧;和
请求管理器,所述请求管理器被配置成从所述多个核心接收多个请求并且将所述多个请求插入到所述请求队列中。
5.根据权利要求4所述的电子设备,其中,所述帧解压缩器控制器包括优先级管理器,所述优先级管理器被配置成根据对应于所述多个请求的多个优先级来对所述多个请求的服务进行排序。
6.根据前述权利要求中任一项所述的电子设备,其中,所述帧解压缩器控制器包括分时协议处置器,所述分时协议处置器被配置成建立分时协议以在所述多个核心之间共享所述帧解压缩器。
7.根据权利要求6所述的电子设备,其中,所述分时协议处置器被配置成以下中的至少一个:
建立所述分时协议以包括分配给所述多个核心中的至少一个核心的多个时隙;或者
建立所述分时协议以允许接收来自所述多个核心中的一个核心的中断信号,所述中断信号指示对已解压缩的帧的请求。
8.根据前述权利要求中任一项所述的电子设备,进一步包括:
帧压缩器,所述帧压缩器被配置成将未压缩的帧进行压缩以产生所述多个已压缩的帧;和
帧压缩器控制器,所述帧压缩器控制器耦合到所述帧压缩器并且被配置成为所述多个核心仲裁对所述帧压缩器的访问。
9.根据前述权利要求中任一项所述的电子设备,进一步包括:
与所述帧解压缩器相关联的视频缓冲器;和
对应于所述视频缓冲器的同步寄存器,所述同步寄存器被配置成存储指示所述视频缓冲器的内容的状态的一个或多个值,其中:
所述帧解压缩器被配置成在所述视频缓冲器中存储所述多个已解压缩的帧中的一个已解压缩的帧的至少一部分;和
所述帧解压缩器控制器被配置成向所述同步寄存器写入指示所存储的部分的状态的至少一个值。
10.一种用于在多个核心之间共享帧解压缩电路的方法,所述方法包括:
从第一核心接受对第一已解压缩的帧的第一请求;
将第一已压缩的帧解压缩以产生所述第一已解压缩的帧;
响应于所述第一请求,向所述第一核心提供所述第一已解压缩的帧;
从第二核心接受对第二已解压缩的帧的第二请求;
将第二已压缩的帧解压缩以产生所述第二已解压缩的帧;和
响应于所述第二请求,向所述第二核心提供所述第二已解压缩的帧。
11.根据权利要求10所述的方法,进一步包括:
从第三核心接受对第三已解压缩的帧的第三请求;
将第三已压缩的帧解压缩以产生所述第三已解压缩的帧;和
响应于所述第三请求,向所述第三核心提供所述第三已解压缩的帧,其中
所述第一请求指示所述第一核心;
所述第二请求指示所述第二核心;和
所述第三请求指示所述第三核心。
12.根据权利要求10或11所述的方法,进一步包括:
至少由所述第一核心和所述第二核心建立用于对所述帧解压缩电路进行访问的分时协议。
13.根据权利要求12所述的方法,其中所述建立包括:
在对应于所述第一核心的时隙期间,从所述第二核心接收中断;和
响应于接收到所述中断,从执行对所述第一核心的解压缩切换到执行对所述第二核心的解压缩。
14.根据权利要求10至13中任一项所述的方法,进一步包括:
以至少部分取决于所述第一请求与所述第二请求之间的相对优先级的顺序,执行提供所述第一已解压缩的帧和提供所述第二已解压缩的帧。
15.根据权利要求10至14中任一项所述的方法,其中:
所述第二已解压缩的帧包括行和附加行;和
提供所述第二已解压缩的帧包括:
轮询同步寄存器,以获得指示所述行相对于视频缓冲器的读取状态的至少一个值;和
响应于所述至少一个值,将所述附加行存储到所述视频缓冲器中。
16.根据权利要求10至15中任一项所述的方法,进一步包括:
从多个核心接受对多个已压缩的帧中的相应已压缩的帧的多个请求;
将多个已解压缩的帧压缩,以相应地产生所述多个已压缩的帧;和
响应于所述多个请求,向所述多个核心提供所述多个已压缩的帧。
17.一种电子设备,包括:
视频解码器,所述视频解码器被配置成解码视频流以产生多个已解码的帧,所述视频解码器包括:
帧压缩器,所述帧压缩器被配置成压缩所述多个已解码的帧以产生多个已压缩的帧;
帧解压缩器,所述帧解压缩器被配置成将所述多个已压缩的帧解压缩以产生多个已解压缩的帧;和
帧解压缩器控制器,所述帧解压缩器控制器耦合到所述帧解压缩器并且被配置成仲裁对所述帧解压缩器的访问;和
耦合到所述帧解压缩器控制器的显示器控制器,所述显示器控制器被配置成经由所述帧解压缩器控制器获得由所述帧解压缩器产生的所述多个已解压缩的帧中的已解压缩的帧。
18.根据权利要求17所述的电子设备,其中:
所述已解压缩的帧包括已解压缩的显示帧;
所述多个已压缩的帧包括已压缩的参考帧和已压缩的显示帧;
所述帧解压缩器被配置成将所述已压缩的参考帧解压缩以产生已解压缩的参考帧,并且将所述已压缩的显示帧解压缩以产生已解压缩的显示帧;
所述视频解码器被配置成使用所述已解压缩的参考帧来解码所述视频流;和
所述显示器控制器被配置成使用所述已解压缩的显示帧来控制显示屏上的呈现。
19.根据权利要求17或18所述的电子设备,其中:
所述视频解码器进一步包括:
与所述帧解压缩器相关联的视频缓冲器;和
对应于所述视频缓冲器的同步寄存器,所述同步寄存器被配置成存储指示所述视频缓冲器的内容的状态的一个或多个值;
所述帧解压缩器被配置成将所述已解压缩的帧的至少一部分存储在所述视频缓冲器中;
所述帧解压缩器控制器被配置成将指示所述已解压缩的帧的所述部分的存储状态的至少一个值写入所述同步寄存器;和
所述显示器控制器被配置成向所述同步寄存器中写入指示所述已解压缩的帧的所述部分的检索状态的至少另一个值。
20.根据权利要求17至19中任一项所述的电子设备,其中所述帧解压缩器控制器被配置成建立分时协议,以在至少所述视频解码器与所述显示器控制器之间共享所述帧解压缩器。
21.一种存储有指令的非暂时性计算机可读介质,其中所述指令当由处理器执行时使得所述处理器执行权利要求10至16中任一项所述的方法。
CN201880028788.3A 2017-10-31 2018-07-13 视频帧编解码器架构 Active CN110583019B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202210954555.4A CN115460417A (zh) 2017-10-31 2018-07-13 视频帧编解码器架构
CN202210954334.7A CN115460416A (zh) 2017-10-31 2018-07-13 视频帧编解码器架构
CN202210956690.2A CN115460418A (zh) 2017-10-31 2018-07-13 视频帧编解码器架构

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762579820P 2017-10-31 2017-10-31
US62/579,820 2017-10-31
US15/844,334 US10659797B2 (en) 2017-10-31 2017-12-15 Video frame codec architectures
US15/844,334 2017-12-15
PCT/US2018/042164 WO2019089101A1 (en) 2017-10-31 2018-07-13 Video frame codec architectures

Related Child Applications (3)

Application Number Title Priority Date Filing Date
CN202210956690.2A Division CN115460418A (zh) 2017-10-31 2018-07-13 视频帧编解码器架构
CN202210954334.7A Division CN115460416A (zh) 2017-10-31 2018-07-13 视频帧编解码器架构
CN202210954555.4A Division CN115460417A (zh) 2017-10-31 2018-07-13 视频帧编解码器架构

Publications (2)

Publication Number Publication Date
CN110583019A true CN110583019A (zh) 2019-12-17
CN110583019B CN110583019B (zh) 2022-08-19

Family

ID=66245745

Family Applications (4)

Application Number Title Priority Date Filing Date
CN202210954555.4A Pending CN115460417A (zh) 2017-10-31 2018-07-13 视频帧编解码器架构
CN202210954334.7A Pending CN115460416A (zh) 2017-10-31 2018-07-13 视频帧编解码器架构
CN202210956690.2A Pending CN115460418A (zh) 2017-10-31 2018-07-13 视频帧编解码器架构
CN201880028788.3A Active CN110583019B (zh) 2017-10-31 2018-07-13 视频帧编解码器架构

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN202210954555.4A Pending CN115460417A (zh) 2017-10-31 2018-07-13 视频帧编解码器架构
CN202210954334.7A Pending CN115460416A (zh) 2017-10-31 2018-07-13 视频帧编解码器架构
CN202210956690.2A Pending CN115460418A (zh) 2017-10-31 2018-07-13 视频帧编解码器架构

Country Status (7)

Country Link
US (4) US10659797B2 (zh)
EP (1) EP3603068A1 (zh)
JP (3) JP7057378B2 (zh)
KR (3) KR20190133756A (zh)
CN (4) CN115460417A (zh)
TW (5) TWI759250B (zh)
WO (1) WO2019089101A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10659797B2 (en) 2017-10-31 2020-05-19 Google Llc Video frame codec architectures
CN112083875B (zh) * 2019-06-12 2022-09-30 三星电子株式会社 用于在存储系统中减少读取端口并加速解压缩的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006121472A1 (en) * 2005-01-10 2006-11-16 Quartics, Inc. Integrated architecture for the unified processing of visual media
US20070177015A1 (en) * 2006-01-30 2007-08-02 Kenji Arakawa Image data transfer processor and surveillance camera system
CN102547283A (zh) * 2010-12-30 2012-07-04 Vixs系统公司 动态视频数据压缩
US20130136188A1 (en) * 2011-11-30 2013-05-30 Freescale Semiconductor, Inc Multi-core decompression of block coded video data
CN105992005A (zh) * 2015-03-04 2016-10-05 广州市动景计算机科技有限公司 视频解码方法、装置及终端设备
US9712830B1 (en) * 2016-09-15 2017-07-18 Dropbox, Inc. Techniques for image recompression

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058459A (en) 1996-08-26 2000-05-02 Stmicroelectronics, Inc. Video/audio decompression/compression device including an arbiter and method for accessing a shared memory
US6157740A (en) 1997-11-17 2000-12-05 International Business Machines Corporation Compression/decompression engine for enhanced memory storage in MPEG decoder
US7085319B2 (en) 1999-04-17 2006-08-01 Pts Corporation Segment-based encoding system using segment hierarchies
US6717989B1 (en) 1999-11-03 2004-04-06 Ati International Srl Video decoding apparatus and method for a shared display memory system
KR100320476B1 (ko) 2000-01-12 2002-01-15 구자홍 비디오 디코더 및 디코딩 방법
US8964830B2 (en) 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US8588291B2 (en) 2003-09-22 2013-11-19 Broadcom Corporation Multiple decode user interface
US7903743B2 (en) * 2005-10-26 2011-03-08 Mediatek Inc. Memory sharing in video transcoding and displaying
JP4797577B2 (ja) 2005-10-31 2011-10-19 ソニー株式会社 電池
JP4384130B2 (ja) * 2006-03-28 2009-12-16 株式会社東芝 動画像復号方法及び装置
WO2008130907A1 (en) 2007-04-17 2008-10-30 Mikos, Ltd. System and method for using three dimensional infrared imaging to identify individuals
US8121197B2 (en) 2007-11-13 2012-02-21 Elemental Technologies, Inc. Video encoding and decoding using parallel processors
US8194736B2 (en) 2008-04-15 2012-06-05 Sony Corporation Video data compression with integrated lossy and lossless compression
JP2009302704A (ja) 2008-06-11 2009-12-24 Panasonic Corp デコード装置、情報処理システムおよび動画像記録再生システム
ATE519321T1 (de) 2008-08-09 2011-08-15 Saffron Digital Ltd Verarbeitung und bereitstellung von videodaten
US9503744B2 (en) 2013-01-22 2016-11-22 Vixs Systems, Inc. Video processor with random access to compressed frame buffer and methods for use therewith
US9313493B1 (en) 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
US9351003B2 (en) * 2013-09-27 2016-05-24 Apple Inc. Context re-mapping in CABAC encoder
TWI577178B (zh) * 2016-01-06 2017-04-01 睿緻科技股份有限公司 影像處理裝置及其影像壓縮方法
TW201725908A (zh) 2016-01-07 2017-07-16 鴻海精密工業股份有限公司 視頻解碼方法
US10706779B2 (en) * 2017-02-23 2020-07-07 Synaptics Incorporated Device and method for image data processing
US10659797B2 (en) 2017-10-31 2020-05-19 Google Llc Video frame codec architectures

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006121472A1 (en) * 2005-01-10 2006-11-16 Quartics, Inc. Integrated architecture for the unified processing of visual media
US20070177015A1 (en) * 2006-01-30 2007-08-02 Kenji Arakawa Image data transfer processor and surveillance camera system
CN102547283A (zh) * 2010-12-30 2012-07-04 Vixs系统公司 动态视频数据压缩
US20130136188A1 (en) * 2011-11-30 2013-05-30 Freescale Semiconductor, Inc Multi-core decompression of block coded video data
CN105992005A (zh) * 2015-03-04 2016-10-05 广州市动景计算机科技有限公司 视频解码方法、装置及终端设备
US9712830B1 (en) * 2016-09-15 2017-07-18 Dropbox, Inc. Techniques for image recompression

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NICHOLAS H. MASTRONARDE ET AL: "A Queuing-Theoretic Approach to Task Scheduling and Processor Selection for Video-Decoding Applications", 《IEEE TRANSACTION ON MULTIMEDIA》 *

Also Published As

Publication number Publication date
JP2020527764A (ja) 2020-09-10
CN110583019B (zh) 2022-08-19
TW202224434A (zh) 2022-06-16
KR20220127368A (ko) 2022-09-19
TWI745230B (zh) 2021-11-01
US20220360803A1 (en) 2022-11-10
KR20190133756A (ko) 2019-12-03
JP2024041910A (ja) 2024-03-27
EP3603068A1 (en) 2020-02-05
TW202025759A (zh) 2020-07-01
JP7057378B2 (ja) 2022-04-19
TWI721809B (zh) 2021-03-11
TW202131690A (zh) 2021-08-16
US11968381B2 (en) 2024-04-23
US11962795B2 (en) 2024-04-16
TWI759250B (zh) 2022-03-21
JP2022105012A (ja) 2022-07-12
CN115460418A (zh) 2022-12-09
US10659797B2 (en) 2020-05-19
CN115460417A (zh) 2022-12-09
TW201919399A (zh) 2019-05-16
TWI690198B (zh) 2020-04-01
KR20210127770A (ko) 2021-10-22
KR102442576B1 (ko) 2022-09-13
JP7421589B2 (ja) 2024-01-24
US20190132604A1 (en) 2019-05-02
WO2019089101A1 (en) 2019-05-09
CN115460416A (zh) 2022-12-09
US11425404B2 (en) 2022-08-23
TW202205858A (zh) 2022-02-01
US20200275113A1 (en) 2020-08-27
US20220166994A1 (en) 2022-05-26

Similar Documents

Publication Publication Date Title
US11962795B2 (en) Video frame codec architectures
US8300699B2 (en) System, method, and computer-readable medium for reducing required throughput in an ultra-wideband system
US11032357B2 (en) Data processing offload
US9560310B2 (en) Method and system for rescaling image files
US20140078020A1 (en) Terminal apparatus, integrated circuit, and computer-readable recording medium having stored therein processing program
US20120054806A1 (en) Methods circuits & systems for wireless video transmission
US10249269B2 (en) System on chip devices and operating methods thereof
CN111478916A (zh) 基于视频流的数据传输方法、设备和存储介质
US20170048532A1 (en) Processing encoded bitstreams to improve memory utilization
CN117370239A (zh) 一种dma任务数据传输方法、dma控制器及电子设备
CN115334305A (zh) 视频数据传输方法、装置、电子设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant