CN103002276B - 多格式视频解码器及解码方法 - Google Patents
多格式视频解码器及解码方法 Download PDFInfo
- Publication number
- CN103002276B CN103002276B CN201210157099.7A CN201210157099A CN103002276B CN 103002276 B CN103002276 B CN 103002276B CN 201210157099 A CN201210157099 A CN 201210157099A CN 103002276 B CN103002276 B CN 103002276B
- Authority
- CN
- China
- Prior art keywords
- data
- vector processor
- instruction
- video
- decoding
- 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.)
- Expired - Fee Related
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种多格式视频解码器,包括从编码视频信号中产生熵解码(EDC)数据的熵解码装置。多格式视频解码装置包括一个用于存储与多个视频编码格式相应的格式配置数据的存储器模块。多个矢量处理单元从所述EDC数据中产生解码数据,其中,基于配置数据,将多个矢量处理单元配置为从多个视频编码格式中选出的一个视频编码格式。
Description
相关申请的交叉引用
依据35USC 119(e),本申请要求享有名为“MULTI-FORMAT VIDEODECODER ANDMETHODS FOR USE THEREWITH”的临时专利申请的优先权,其编号为61/450859,2011年3月9日递交申请,其内容在此以引文的形式被包含在本申请内。
技术领域
本发明涉及诸如视频编/解码器等装置中使用的针对立体电视信号的编码。
背景技术
视频编码对于现代视频处理装置来说已经变成了一个大问题。鲁棒性的编码算法可使视频信号以缩减的带宽传输,并存储在更小的存储器中。然而,这些面对用户仔细审查的编码方法的精确度正变得适应更大的解析度和更高的图像质量。针对大量的编码方法已经发布了多种标准,包括H.264标准,其也被称为MPEG-4,第10部分或高级视频编码(AVC),以及On2技术股份有限公司提出的VP8标准。这些标准提出了很多强大的技术,而进一步的改进很可能改进这些方法实现的速度和性能。所述由这些编码方法编码的视频信号必须被相似的解码,以在大多数视频显示装置上能重放出来。
运动图像专家组(MPEG)提出来一种可分级的视频编码(SVC),其可向H.264/MPEG-4AVC附加一个G扩展,以实现标准化。SVC可为包含子码流的视频码流提供解码,所述子数码流可代表低空间分辨率、低时间分辨率或其他低质量视频。一个子码流可通过总码流丢弃包而获得。SVC流允许终端设备能灵活地裁剪时间分辨率、空间分辨率或视频保真度,例如,以用于匹配特定装置的性能。
视频信号的高效快速编解码对于很多视频装置的工作运行很重要,特别是要在家中使用的视频装置。在将这样的系统与本发明进行对比之后,对于本领 域技术人员来说,常见的或传统的方法的进一步的局限性和不足之处,将会变得很明显。
发明内容
根据本发明的一个方面,其提供了一种视频解码器,包括熵解码装置,用以从编码视频信号产生熵解码(EDC)数据;多格式视频解码装置,其与所述熵解码装置耦合,包括:存储器模块,存储与多个视频编码格式相对应的格式配置数据;与所述存储器耦合的多个矢量处理单元,用以从所述EDC数据产生解码视频信号,其中,基于所述配置数据,将多个矢量处理单元配置为从多个视频编码格式中选出的一个视频编码格式。矢量处理单元
所述多个矢量处理器可以包括至少一个矩阵矢量处理器,用以并行处理多格式视频解码装置的至少一个矩阵运算。
至少一个矩阵矢量处理器可以包括多个矩阵矢量处理器。
所述多个矢量处理器可以包括至少一个滤波矢量处理器,用以并行处理所述多格式视频解码装置的至少一个滤波运算。
至少一个滤波矢量处理器可以包括多个滤波矢量处理器。
所述多个矢量处理器可以包括:至少一个矩阵矢量处理器,用以并行处理所述多格式视频解码装置的至少一个矩阵运算;和至少一个滤波矢量处理器,用以并行处理所述多格式视频解码装置的至少一个滤波运算。
所述编码视频信号可以是根据VP8编码标准编码的。
根据本发明的一个方面,其提供了一种方法,包括:从编码视频信号产生熵解码EDC数据;存储与多个视频编码格式相对应的格式配置数据;基于所述配置数据,将多个矢量处理单元配置为从多个视频编码格式中选出的一个视频编码格式;依照从多个视频编码格式中所选择的一个视频编码格式,通过所述多个矢量处理单元从所述EDC数据产生解码视频信号。
配置所述多个矢量处理单元可以包括配置至少一个矩阵矢量处理器用以并行处理至少一个矩阵运算矢量处理单元。
配置所述多个矢量处理单元可以包括配置多个矩阵矢量处理器用以并行处理多个矩阵运算矢量处理单元。
配置所述多个矢量处理单元可以包括配置至少一个滤波矢量处理器用以并 行处理至少一个滤波运算矢量处理单元。
配置多个矢量处理单元可以包括配置多个滤波矢量处理器用以并行处理多个滤波运算。
所述编码视频信号可以是根据VP8编码标准编码的。
根据本发明的一个方面,提供了一种视频解码器,包括:熵解码装置,用以从编码视频信号产生熵解码(EDC)数据,其中所述EDC数据包括运动矢量差分数据和宏块头数据以及运行级别数据;多格式视频解码装置,其与熵解码装置耦合,用以从EDC数据产生解码视频信号,所述多格式视频解码装置具有多个模块,包括:邻接管理模块,用以基于运动矢量差分数据和宏块头数据产生运动矢量数据、宏块模式数据和去块强度数据;解码运动补偿模块,其与所述邻接管理模块耦合,当宏块模式数据指示帧间预测模式时,基于运动矢量产生帧间预测数据;反量化模块,其基于运行长度数据产生反量化数据;逆变换模块,其与反量化模块耦合,基于反量化数据产生残余数据;逆帧内预测模块,其与邻接管理模块耦合,当宏块模式数据指示帧内预测模式时,产生帧内预测数据,当宏块模式数据指示帧间预测模式时,基于残余数据和帧间预测数据产生重构图片数据,当宏块模式数据指示帧内预测模式时,基于残余数据和帧内预测数据产生重构图片数据;和去块滤波器模块,其与逆变换/量化模块和邻接管理模块耦合,其基于所述去块强度数据,从所述重构图片数据产生所述解码视频信号;其中,多个模块是通过多个矢量处理单元实现的。
所述多个矢量处理器可包括至少一个矩阵矢量处理器,用以并行处理所述反量化模块的至少一个矩阵运算。
所述多个矢量处理器可包括至少一个矩阵矢量处理器,用以并行处理所述逆变换模块的至少一个矩阵运算。
所述多个矢量处理器可包括至少一个滤波矢量处理器,用以并行处理所述解码运动补偿模块的至少一个滤波运算。
所述多个矢量处理器可包括至少一个滤波矢量处理器,用以并行处理所述逆帧内预测模块的至少一个滤波运算。
所述多个矢量处理器可包括至少一个滤波矢量处理器,用以并行处理所述去块滤波器模块的至少一个滤波运算。
所述多个模块通过多个缓存器耦合在一起,所述缓存器包括至少一个帧缓 存器和至少一个环形缓存器。
所述编码视频信号可以是根据VP8编码标准编码的。
根据本发明的一个方面,其提供了一种方法,包括:从编码视频信号产生熵解码(EDC)数据,其中所述EDC数据包括运动矢量差分数据和宏块头数据以及运行长度数据;通过多个矢量处理单元从EDC数据产生解码视频信号,这是通过:基于所述运动矢量差分数据和宏块头数据,产生运动矢量数据、宏块模式数据和去块强度数据;当宏块模式数据指示帧间预测模式时,基于运动矢量数据产生帧间预测数据;基于运行长度数据产生反量化数据;基于反量化数据,产生残余数据;当宏块模式数据指示帧内预测模式时,产生帧内预测数据;当宏块模式数据指示帧间预测模式时,基于残余数据和帧间预测数据产生重构图片数据,当宏块模式数据指示帧内预测模式时,基于残余数据和帧内预测数据产生重构图片数据;基于所述去块强度数据,从所述重构图片数据产生所述解码视频信号;
所述多个矢量处理器可包括至少一个矩阵矢量处理器,用以结合基于运行长度数据产生反量化数据来并行处理至少一个矩阵运算。
所述多个矢量处理器可包括至少一个矩阵矢量处理器,用以结合基于反量化数据产生残余数据来并行处理至少一个矩阵运算。
所述多个矢量处理器可包括至少一个滤波矢量处理器,用以并行处理基于运动矢量数据产生帧间预测数据的至少一个滤波运算。
所述多个矢量处理器可包括至少一个滤波矢量处理器,用以并行处理基于运动矢量数据产生帧内预测数据的至少一个滤波运算。
所述多个矢量处理器可包括至少一个滤波矢量处理器,用以并行处理从重构图片数据产生解码视频信号的至少一个滤波运算。
所述编码视频信号可以是根据VP8编码标准编码的。
根据本发明的一个方面,提供了一种视频解码器,包括:熵解码装置,用以从编码视频信号产生熵解码(EDC)数据;多格式视频解码装置,其与所述熵解码装置耦合,包括多个矢量处理单元,用以从所述EDC数据产生解码视频信号,其中,所述多个矢量处理单元是通过VPU指令编程的,所述VPU指令被格式化为包括矢量指令部分,标量指令部分和转移指令部分。
所述多个矢量处理器可包括至少一个矩阵矢量处理器,用以并行处理所述 多格式视频解码装置的至少一个矩阵运算,其中,所述矢量指令包括矩阵命令和矩阵数据。
所述多个矢量处理器可包括至少一个滤波矢量处理器,用以并行处理所述多格式视频解码装置的至少一个滤波运算,其中,所述矢量指令包括滤波器命令和滤波器数据。
所述转移指令可包括无条件转移指令和条件转移指令中的至少一个。
所述标量指令可包括数据部。
所述标量指令还可包括数据部上的标量逻辑运算和数据部上的标量算数运算中的至少一个。
所述编码视频信号可以是根据VP8编码标准编码的。
根据本发明的一个方面,提供了一种方法,包括:用以从编码视频信号产生熵解码(EDC)数据;基于VPU指令编程多个矢量处理单元,所述VPU指令被格式化为包括矢量指令部分,标量指令部分和转移指令部分;通过多个矢量处理单元,从所述EDC数据产生解码视频信号。
编程多个矢量处理单元可包括配置至少一个矩阵矢量处理器,用以并行处理至少一个矩阵运算,其中,所述矢量指令包括矩阵命令和矩阵数据。
编程多个矢量处理单元可包括配置至少一个滤波矢量处理器,用以并行处理至少一个滤波运算,其中,所述矢量指令包括滤波器命令和滤波器数据。
所述转移指令可包括无条件转移指令和条件转移指令中的至少一个。
所述标量指令可包括数据部。
所述标量指令还可包括数据部上的标量逻辑运算和数据部上的标量算数运算中的至少一。
所述编码视频信号可以是根据VP8编码标准编码的。
根据本发明的一个方面,提供了一种视频解码器,包括:熵解码装置,用以从编码视频信号产生熵解码(EDC)数据;多格式视频解码装置,其与所述熵解码装置耦合,包括多个矢量处理单元,用以从所述EDC数据产生解码视频信号,其中,所述多个矢量处理单元包括至少一个滤波矢量处理器,用以结合多个可编程的滤波器参数进行操作。
所述多个可编程滤波器参数可基于从多个视频编码格式中选定的一个格式进行配置。
所述至少一个滤波器矢量处理器可根据包含有滤波器命令和图片数据的矢量指令,并行处理含有多个像素的图片数据。
所述至少一个滤波矢量处理器可实现n-抽头一维垂直滤波器。
所述至少一个滤波矢量处理器可实现n-抽头一维水平滤波器。
所述至少一个滤波矢量处理器可实现n-抽头二维滤波器。
所述编码视频信号是根据VP8编码标准编码的。
根据本发明的一个方面,提供了一种方法,包括:从编码视频信号中产生熵解码(EDC)数据;基于从多个视频编码格式中选出的一个格式,配置至少一个滤波矢量处理单元;通过所述至少一个滤波矢量处理单元,从所述EDC数据产生解码视频信号。
产生解码视频信号可以包括根据包含有滤波器命令和图片数据的矢量指令,通过至少一个滤波矢量处理器并行处理图片数据,其中所述图片数据含有多个像素。
产生解码视频信号可包括实施n-抽头一维垂直滤波器。
产生解码视频信号可包括实施n-抽头一维水平滤波器。
产生解码视频信号可包括实施n-抽头二维滤波器。
所述编码视频信号可以是根据VP8编码标准编码的。
附图说明
图1-3示出了根据本发明实施例的多种视频装置的图示。
图4示出了根据本发明实施例的视频系统的框图。
图5示出了根据本发明实施例的视频解码器102的框图。
图6示出了根据本发明实施例的多格式视频解码器150的框图。
图7示出了根据本发明实施例的多格式视频解码器150的框图。
图8示出了根据本发明实施例的解码过程的框图。
图9示出了与本发明另一实施例相应的矩阵矢量处理单元190的框图。
图10示出了与本发明另一实施例相应的滤波器矢量处理单元的框图。
图11示出了与本发明另一实施例相应的VPU指令180的框图。
图12示出了根据本发明实施例的视频分布系统375的框图。
图13示出了根据本发明实施例的视频存储系统179的框图。
图14示出了根据本发明实施例的一种方法的流程图。
图15示出了根据本发明实施例的一种方法的流程图。
图16示出了根据本发明实施例的一种方法的流程图。
图17示出了根据本发明实施例的一种方法的流程图。
具体实施方式
图1-3示出了根据本发明实施例的多种视频装置的图示。特别地,包含有与本发明一个或多个特征或功能相应的视频解码器的电子装置,举例来说可以是:带有内置数字视频记录器功能的机顶盒10或独立的数字视频记录器,电视机或监控器20,和便携式计算机30。当举这些装置为例时,本发明可通过参考所附图4-17和权利要求中描述的方法和系统相应的任何具有解码和/或转码视频内容能力的装置来实现。
图4示出了根据本发明实施例的视频解码器102的框图。特别地,这种视频装置包括接收模块100,如服务器、有线前端、电视接收器、有线电视接收器、卫星广播接收器、宽带解调器、3G收发器、或其他能接收接收信号98并产生通过视频编码格式编码的视频信号110的信息接收器或接发器。视频处理装置125包括视频解码器102,且与接收模块100耦合,用于解码或转码视频信号以便于存储、编辑、和/或以与视频显示装置104相应的格式重放。视频处理装置可包括内置数字视频记录器功能的机顶盒10或独立的数字视频记录器。尽管包含有视频解码器102的视频处理装置125被示出为与视频显示装置104分开,但是其也可以被集成在其他包括有视频解码器的装置如电视或监控器20和便携式计算机30中,所述视频解码器例如可以是视频解码器102。
在本发明的实施例中,所接收的信号98是广播视频信号,如电视信号、高清电视信号、强清晰度电视信号或其他可通过无线媒介传播的广播视频信号,这些信号可以直接传输、抑或是通过一个或多个卫星或其他中继站或通过有线网、光学网络或其他传输网络传输。此外,所接收的信号98可由所存储的视频文件中产生,从记录媒体如磁带、磁碟或光盘来重放,并可包括通过公共或专用网络如局域网、广域网、城域网或因特网来传输的流视频信号。
视频信号110可以包括符合数字视频编解码标准的视频信号,所述数字视频编解码标准例如是H.264、MPEG-4Part 10高级视频编码(AVC),所述视 频信号包括SVC信号、包含有基底层的编码的立体视频信号,所述基底层包括2D兼容基底层和增强层,所述增强层通过与MEPG-4AVC的MVC扩展相应的处理而产生,或是根据另一个数字格式如运动图像专家组(MPEG)格式(如MPEG1、MPEG2或MPEG4)、Quicktime格式、真实媒体格式(Real Mediaformat)、视窗媒体视频(WMV)或音频视频交错(AVI)、视频编码1(VC-1)、VP8等来产生。
视频显示装置104可包括电视机、监控器、计算机、手持装置或其他可直接或间接产生光学图像流的视频显示装置,所述光学图像流例如基于处理过的视频信号112或是作为流视频信号通过投射显示,或通过重放所存储的数字视频文件显示。
图5示出了根据本发明实施例的视频解码器102的框图。视频解码器102包括具有处理模块142的熵解码装置140,所述处理模块可从编码的视频信号如视频信号110产生熵解码(EDC)数据146。所述EDC数据146可包括运行级别数据、运动矢量区别数据、和宏块头数据和/或其他源于编码视频信号的熵解码的数据。多格式视频解码装置150包括处理模块152,存储器模块154,和可运行由EDC数据146产生解码视频信号(例如处理过的视频信号112)的硬件加速器模块156。
在本发明的实施例中,所述熵解码装置140和多格式视频解码装置150同时运作在一个流水线处理中,其中,在熵解码装置140从所述解码视频信号的第二部分中产生EDC数据146的至少一部分的时间里,多格式视频解码装置150产生所述解码视频信号的第一部分。
所述处理模块142和152均可通过单处理装置或多处理装置实现。这种处理装置可以是微处理器、协同处理器、微控制器、数字信号处理器、微型计算机、中央处理单元、现场可编程门阵列、可编程逻辑装置、状态机、逻辑电路、模拟电路、数字电路、和/或任何可基于存储于存储器如存储模块144和154的功能指令来处理信号(模拟和/或数字)的装置。这些存储器可以是单独的存储装置或多个存储装置。这种存储装置可以包括硬盘驱动器或其他磁盘驱动器、只读存储器、随机存取存储器、非永久性存储器、非易失性存储器、静态存储器、动态存储器、闪存、高速缓冲存储器、和/或任何可以存储数字信息的存储器。应当注意的是,当处理模块142和152通过状态机、模拟电路、数字电路、 和/或逻辑电路实现一个或多个它们的功能时,可能会将存储有相应功能指令的存储器内嵌于包含有状态机、模拟电路、数字电路、和/或逻辑电路的电路,或是将该存储器置于其之外。在本发明的实施例中,所述处理模块142和152各包括由ARC国际公司生产的处理器,该处理器可用以操控相邻管理模块218,也可使用其他处理器结构。
图6示出了根据本发明实施例的多格式视频解码器150的框图。所述存储器模块154包括软件库160,其中存储着与多个视频编码格式相对应的格式配置数据,所述视频编码格式例如可以是H.264、包括MPEG-4AVC的SVC和MVC扩展的MPEG-4Part 10高级视频编码(AVC)、MPEG2、MPEG4、Quicktime格式、真实媒体格式、视窗媒体视频(WMV)或音视频交错格式(AVI)、视频编码1(VC-1)、VP8、或其他视频编码/压缩格式等。所述硬件加速器模块156包括多个矢量处理单元(VPU 1、VPU 2、......VPU N),其可连同处理模块152从EDC数据146产生解码视频信号。基于配置数据,多个矢量处理单元和处理模块152被配置为所选择的多个视频编码格式中的一个。用这种方式,先前的视频解码器102可以被配置为用于特定的视频编码格式或所述视频信号110的多个格式的操作。
在本发明的实施例中,多格式视频解码器150可以从用户或设计师那里接收指示特定视频编码格式的选择数据。在本发明的另一个实施例中,由处理模块152分析EDC数据146,以识别出所述视频信号110的所述视频编码格式。无论发生何种情况,所述多格式视频解码器150都通过从所述软件库160中取出所述配置数据,并配置处理模块152和矢量处理单元以解码所选择的视频编码格式来响应所述选择。
配置数据可以包括加载程序指令以及连同EDC数据146解码使用的其他数据,所述加载程序指令由所述处理模块152以及硬件加速器模块156的矢量处理单元执行。例如,当选择特定的视频编码格式时,选择执行用于处理模块152的软件和用于硬件加速器模块156的VPU指令。在一种操作模式中,除了通过与所选择的视频编码格式相应的矢量处理单元来执行特定解码操作的指令之外,所述VPU指令还包括一个或多个指令,该指令以所选择的视频格式配置硬件加速器模块156的矢量处理单元。
连同图7-12中要被进一步讨论的,所述矢量处理器可包括一个或多个矩阵 矢量处理器,所述矩阵矢量处理器实现矩阵运算,诸如矩阵加法、乘法、移项、求逆和/或其他矩阵运算。所述矢量处理器还可包括一个或多个实现并行滤波操作的滤波矢量处理器。通过包含有矢量指令、标量指令和转移指令的VPU程序指令来配置这些矢量处理单元,以根据所选择的视频编码格式来工作。
图7示出了代表着根据本发明实施例的多格式视频解码器150的框图。具体的,按图5所描述的,多格式视频解码器150包括处理模块152和存储器模块154。另外,所述多格式视频解码器150还包括总线221、信号接口158、解码运动补偿模块204、邻接管理模块218、去块滤波器模块222、逆变换模块276、反量化模块274、和逆帧内预测模块211。尽管显示了特定的总线结构以代表多格式视频解码器150的多个模块之间的通信功能,但是其他结构可在本发明的广阔范围内实现。
在运作中,信号接口158接收EDC数据146,并可选的缓冲和预处理EDC数据146,以便于被多格式视频解码装置150的其他模块处理。相似的,通过多格式视频解码装置150的其他模块处理而产生的解码视频信号可被可选的通过如环形缓存器或其他缓存器结构结合存储器模块154的存储位置来缓冲,并且被格式化以作为处理过的视频信号112输出。
解码运动补偿模块204、邻接管理模块218、去块滤波器模块222、逆变换模块276、反量化模块274和逆帧内预测模块211被配置为根据所选择的视频格式如VP8、H.264(包括MVC和/或SVC)、VC-1或其他压缩标准来解码EDC数据146。在本发明的实施例中,解码运动补偿模块204、邻接管理模块218、去块滤波器模块222、逆变换模块276、反量化模块274和逆帧内预测模块211是通过存储器模块154中存储的软件来实现,以及通过处理模块152和矢量处理单元指令来执行,其中矢量处理单元指令是通过硬件加速器模块156的多个矢量处理单元来执行的。在特定的实施例中,解码运动补偿模块204、去块滤波器模块222、和逆帧内预测模块211是通过使用三个单独的滤波矢量处理单元来实现的,每个模块单独使用一个滤波矢量处理单元。此外,逆变换模块276和反量化模块274是由两个单独的矩阵矢量处理单元实现的,每个模块单独使用一个矩阵矢量处理单元。在本发明的实施例中,邻接管理模块218是通过处理模块152运行的软件实现的。
在运作中,邻接管理模块218基于运动矢量差分数据和宏块头数据,产生 运动矢量数据,宏块模式数据和去块强度数据。在本发明的实施例中,数据结构,如链表,数组或一个或多个寄存器,被用于关联和存储处理过的图片的各宏块的相邻数据。具体的,邻接管理模块218为临近当前宏块的一组宏块存储运动矢量数据,并基于宏块模式数据和临近当前宏块的一组宏块的运动矢量数据,为当前宏块产生运动矢量数据。此外,邻接管理模块218计算运动矢量的大小,并根据运动矢量的大小来调整去块强度数据。
当宏块模式数据指示帧间预测模式时,解码运动补偿模块204基于运动矢量数据,产生帧间预测数据。当宏块模式数据指示帧内预测模式时,逆帧内预测模块211产生帧内预测数据。反量化模块274反量化运行级别数据。反量化的运行级别数据被逆变换,如通过逆离散余弦变换或其他经由逆变换模块276的逆变换,来产生残余数据。当宏块模式数据指示帧内预测模式时,逆帧内预测模块211基于残余数据和帧内预测数据产生重构的图像数据,当宏块模式数据指示帧内预测模式时,逆帧内预测模块211基于残余数据和帧内预测数据产生重构的图像数据。
去块滤波器模块222基于去块强度数据,根据重构图像数据产生解码视频信号。在运作中,去块滤波器模块222用于平滑块的水平和垂直边缘,这些边缘可以与帧的宏块的外部边界相对应,也可与视频信号110的场或宏块的内部出现的边缘相对应。基于量化参数、临近宏块类型等确定的边界强度可以改变要实施的滤波量。例如,H.264标准定义了两个参数,α和β,用以在特定的边界上确定滤波的强度。参数α是用于包括宏块边界的数据的边界边缘参数。参数β是用于宏块内部数据的内部边缘参数。根据本发明,邻接管理模块218使用运动矢量幅值来生成去块强度数据,去块强度数据调整用于去块滤波器模块222的α和β的值。举例来说,当运动矢量幅值指示大的运动矢量时,如幅值高于第一幅值阈值时,就可选用一个较大值的α。进一步的,运动矢量量幅值指示小的运动矢量,如低于同一阀值或其他阈值的幅值,就可以选择一个较小值的α。
图8示出了根据本发明实施例的表示解码流程的框图。在这个实施例中,邻接管理模块218通过缓存器300从EDC数据146接收宏块头和运动矢量差分数据230。邻接管理模块218从宏块(MB)数据头检测宏块模式。在帧间预测模式中,邻接管理模块218计算运动矢量,也计算去块强度数据,并将该数据 和其他EDC数据一起传送(如运行级别数据272)传送至一个或多个帧缓存器,在处理流程中就表现为通过存储器模块154实现的缓存器302、304、308、310和318。解码运动补偿模块204基于从帧存储器得到的参考帧和运动矢量产生帧间预测数据,并将结果存储在缓存器314中,如环形缓存器。在帧内预测模式中,逆帧内预测模块211产生帧内预测数据。
反量化模块274从缓存器304得到运行级别数据272,并将该数据和从帧缓存器302获得的数据一起进行反量化,并产生存储在缓存器306中的去量化数据。逆变换模块276基于帧缓冲数据逆变换去量化数据,以产生存储在缓冲期312中的残余数据。残余数据和由邻接管理模块218所提供的响应于模式检测的帧内预测数据或帧间预测数据一起在帧内预测模块211中被组令以产生缓存在缓存器316中的当前重构帧/域。
去块滤波器模块222根据来自邻接管理模块218的去块强度数据来向重构帧/域施加去块滤波,以产生缓存在缓存器320中的滤波图像形式的解码视频输出226。
缓存器306、312、314、316、318和320均可是通过存储器模块154实现的环形缓存器,然而,其他缓存器结构也同样可以使用。
图9示出了根据本申请另一个实施例的矩阵矢量处理单元190的框图。具体的,矩阵矢量处理单元190包括专用硬件块,该硬件块在输入矩阵192上实施并行矩阵运算,如矩阵加法、乘法、移项、求逆和/或其他矩阵运算,产生输出矩阵194。
矩阵矢量处理单元190通过包含有矢量指令、标量指令和转移指令的VPU指令180来进行配置。这些VPU指令180包括配置数据和命令170,其用于根据所选择的视频编码格式来配置矩阵VPU 190,并且命令矩阵矢量处理单元实现相应的功能,如多格式视频解码器150的逆离散余弦变换、反量化或其他矩阵功能的全部或部分。VPU指令180还包括与装置的矢量和标量操作一起使用的矢量和/或标量数据。
图10示出了根据本发明另一个实施例的滤波矢量处理单元195的框图。具体的,滤波矢量处理单元195包括用以实现并行滤波处理的专用硬件块,如n-抽头一维水平滤波器、n-抽头一维垂直滤波器、或n-抽头二维滤波器。滤波器VPU 196用于对输入数据196进行滤波,如视频图片的像素块、像素行、像素 列或其他数据来产生滤波数据198。
滤波矢量处理单元195通过包含有矢量指令、标量指令和转移指令的VPU指令181来进行配置。这些VPU指令181包括配置数据和命令172,其用于根据所选择的视频编码格式如通过编程滤波参数(如,抽头数量,滤波器类型,和特定滤波器系数)来配置滤波器VPU195,并且命令滤波矢量处理单元实现相应的功能,如多格式视频解码器150的帧间预测数据、帧内预测数据和或滤波后图片数据的全部或部分。VPU指令181还包括与装置的矢量和标量操作一起使用的矢量和/或标量数据。
图11示出了根据本发明另一个实施例的VPU指令180或181的框图。像先前所讨论的,VPU指令包括三个部分,矢量指令182、标量指令184、和转移指令186。通过使用这些指令,矢量处理单元,如矩阵矢量处理单元190或滤波矢量处理单元195,就可被配置/编程以移动数据块,从而实现数据的矢量或标量运算,从而实现条件转移或无条件转移,或实现其他逻辑或算数运算。
在本发明的实施例中,矢量指令182可包括通过单个指令来实现多个同时的逻辑或算数运算的命令和数据。在本发明的实施例中,矢量数据可包括32位或更多位的数据块,矩阵或矢量滤波运算包括任何结合矩阵VPU 190或滤波器VPU 195讨论的运算。标量指令184可包括通过单个指令来实现单个标量逻辑或算数运算的命令和数据。在本发明的实施例中,标量数据可以包括32位或更少的标量数据块,或是多于32位的长标量块。矩阵或滤波器标量运算包括掩码创建、数据掩码、寻址指令、数据移动运算、标记计算等。转移指令包括基于逻辑或算数条件的条件或无条件转移指令。
在操作的例子中,滤波器VPU 195实现作为去块滤波器模块222的一部分的去块滤波器。在一种操作模式中,滤波器VPU 195以类似于函数或子程序调用的方式执行滤波器VPU指令181。举例来说,在初始VPU指令181中,基于所选择的特定的视频编码格式,通过加载滤波器系数和其他配置数据来建立初始滤波器配置,由此滤波器VPU 195可执行数据移动命令以配置特定的n-抽头去块滤波器。在随后的VPU指令181中,取得去块强度从而可选地调整滤波器系数或另行调整滤波器配置至当前去块强度。此外,获取输入数据196,对其进行滤波、并响应于滤波器命令将其传输至缓存器。
图12示出了根据本发明实施例的视频分配系统375的框图。具体的,通过 传输路径122将视频信号110从视频编码器传输至视频解码器102。视频解码器102用于解码用于显示在显示装置12或14或其他显示装置上的视频信号110。在本发明的实施例中,视频解码器102可在机顶盒、数字视频解码器、路由器或家庭网关中实现。可供选择的,解码器102可选地直接集成在显示装置12或14中。
传输路径122可包括按无线局域网协议如802.11协议、WIMAX协议、蓝牙协议等运作的无线路径。进一步的,传输路径可包括按有线协议如通用串行总线协议、以太网协议或其他高速协议运作的有线路径。
图13示出了根据本发明实施例的视频存储系统179的框图。具体的,装置11是带有内置数字视频记录器功能的机顶盒、单独的数字视频记录器、DVD记录器/播放器或其他存储视频信号110的装置。在这种配置中,装置11可包括视频解码器102,当从存储器得到视频信号110时视频解码器102可以解码该视频信号,从而生成具有适合视频显示装置12或14显示的格式的处理过的视频信号112。尽管举例说明了这些特定装置,然而视频存储系统179还可包括根据结合此处记载的本发明的特征和功能所描述的方法和系统的硬盘驱动器、闪存装置、计算机、DVD刻录机、或其他任何能生成、存储、解码、转码和/或显示视频信号110的视频内容的装置。
图14示出了根据本发明的实施例的方法的框图。具体的,示出了结合图1-9中所描述的一个或多个功能和特征使用的方法。在步骤400中,从编码视频信号产生熵解码(EDC)数据。在步骤402中,存储与多个视频编码格式相对应的格式配置数据。在步骤404中,基于配置数据,以从多个视频编码格式中选择出一个视频编码格式来配置多个矢量处理单元。在步骤406中,根据多个视频编码格式中所选择的一个视频编码格式,通过多个矢量处理单元从EDC数据产生解码的视频信号。
在本发明的实施例中,步骤404包括配置至少一个或更多个矩阵矢量处理器,以并行处理至少一个矩阵运算和/或配置一个或更多个滤波矢量处理器以并行处理至少一个滤波运算。
图15示出了根据本发明实施例的方法的框图。具体的,示出了结合图1-10中所描述的一个或多个功能和特征使用的方法。在步骤410中,从编码视频信号产生熵解码(EDC)数据,其中,EDC数据包括运动矢量差分数据和宏块头 数据和运行级别数据。在步骤412中,通过多个矢量处理单元,从EDC数据产生解码视频信号,这是通过:
(a)基于运动矢量差分数据和宏块头数据,产生运动矢量数据、宏块模式数据和去块强度数据;
(b)当宏块模式数据指示帧间预测模式时,基于运动矢量数据产生帧间预测数据;
(c)基于运动级别数据产生反量化数据;
(d)基于反量化数据产生残余数据;
(e)当宏块模式数据指示帧内预测模式时,产生帧内预测数据;
(f)当宏块模式数据指示帧间预测模式时,基于残余数据和帧间预测数据产生重构的图片数据,当宏块模式数据指示帧内预测模式时,基于残余数据和帧内预测数据产生重构的图片数据;
(g)基于去块强度数据,从重构的图片数据生成解码视频信号。
在本发明的实施例中,多个矢量处理器包括至少一个矩阵矢量处理器,用以结合基于运行级别数据产生反量化数据来并行处理至少一个矩阵运算。多个矢量处理器还可包括至少一个矩阵矢量处理器,用以结合基于反量化数据产生残余数据来并行处理一个矩阵运算;至少一个滤波矢量处理器,用以基于运动矢量数据来并行处理产生帧间预测数据的至少一个滤波运算;至少一个滤波矢量处理器,用以基于宏块模式数据来并行处理产生帧内预测数据的至少一个滤波运算;和/或至少一个滤波矢量处理器,用以并行处理从重构的图片数据生成解码视频信号的至少一个滤波运算。
图16示出了根据本发明实施例的方法的框图。具体的,示出了结合图1-9中所描述的一个或多个功能和特征使用的方法。在步骤420中,从编码视频信号产生熵解码(EDC)数据。在步骤422中,基于VPU指令编程多个矢量处理单元,VPU指令被格式化为包括矢量指令部分、标量指令部分、和转移指令部分。在步骤424中,通过多个矢量处理单元,从EDC数据产生解码视频信号。
在本发明的实施例中,步骤422包括配置至少一个矩阵矢量处理器,用以并行处理至少一个矩阵运算,并且其中矢量指令包括矩阵命令和矩阵数据。步骤422也可包括配置至少一个滤波矢量处理器,以并行处理至少一个滤波运算,并且其中矢量指令包括滤波器命令和滤波器数据。转移指令可包括无条件转移 指令或条件转移指令。标量指令可包括数据部、在数据部上进行的标量逻辑运算,和/或在数据部上进行的标量算数运算。
图17示出了根据本发明实施例的方法的框图。具体的,示出了结合图1-9中所描述的一个或多个功能或特征使用的方法。在步骤430中,从编码视频信号产生熵解码(EDC)数据。在步骤432中,基于从多个视频编码格式中所选择的一个格式,配置至少一个滤波矢量处理单元。在步骤434中,通过至少一个滤波矢量处理单元,从EDC数据生成解码视频数据。
步骤434可包括根据包含滤波器命令和图片数据的矢量指令通过至少一个滤波矢量处理器并行处理图片数据,其中图片数据包括多个像素。步骤434可包括实现n-抽头一维垂直滤波器;实现n-抽头一维水平滤波器;和/或实现n-抽头二维滤波器。
虽然在此描述了本发明的多种功能和特征的特定组合,但是这并不是要通过此处所描述的特定例子来限制这些特征和功能的其他组合,这些特征和功能的其他组合都包含在本发明的范围内。
本领域技术人员应当注意的是,这里所使用的术语“大体上”或“大约”为与它相应的术语和/或项目之间的相关性提供了一种行业允许的误差。这种行业允许的误差的范围在低于1%到20%之间,并且相当于、但不限于分量值、集成电路制程变异、温度变化、上升和下降时间、和/或热噪声。项目间的这种相关性在百分之几的差异到数量级的差异之间。本领域技术人员还会注意到,这里可能用到的术语“耦合的”,包括直接耦合和通过用于间接耦合的另一个组件、元件、电路、或模块间接耦合,,介入中间的组件、元件、电路、或模块不改变信号的信息,仅调整其电流级别,电压级别,和/或能量级别。本领域技术人员还会意识到,推测耦合(例如,一个元件推测与另一个元件相连)包括在两个元件之间以与“耦合”相同的方式直接和间接连接。本领域技术人员还应注意的是,这里可能使用的术语“相比毫不逊色”指示两个或多个元件、项目、信号等之间的比较,其提供了一种理想的关系。举例来说,当所想要的关系是信号1的量级大于信号2,那么当信号1的量级大于信号2或当信号2的量级小于信号1的时候,就获得了一个有利的比较。
在本发明的多个实施例的描述中使用了术语模块,模块包括以硬件、软件、和/或固件形式实现的功能块,用以实施一个或模块功能如处理输入信号以产生 输出信号。如这里所用的,模块可以包括本身是模块的子模块。
因此,这里已经描述了一个实现视频解码器的设备和方法,以及包括优选实施了的几个实施例,以。本文描述的本发明的多种实施例具有使本发明和背景技术区别开来的特征。
对本领域技术人员来说很明显的是,所公开的发明可以以多种方式修改,并可以假设出很多不同于本文所特别陈述描述的优选形式的实施例。相应的,希望通过所附的权利更求覆盖会落入本发明真正精神和范围的本发明的所有变形。
Claims (12)
1.一种视频解码器,包括:
熵解码装置,所述熵解码装置用以从编码视频信号产生熵解码EDC数据;和
多格式视频解码装置,其与所述熵解码装置耦合,包括:多个矢量处理单元VPU,用以从所述EDC数据产生解码视频信号,
其中,所述多个矢量处理单元是通过VPU指令编程的,所述VPU指令被格式化为包括矢量指令部分、标量指令部分和转移指令部分,并且其中所述标量指令部分包括数据部以及要由所述多个矢量处理单元中的至少一个执行的所述数据部上的标量逻辑运算和所述数据部上的标量算数运算中的至少一个。
2.如权利要求1中所述的视频解码器,其中,所述多个矢量处理单元包括至少一个矩阵矢量处理器,用以并行处理所述多格式视频解码装置的至少一个矩阵运算,并且其中,所述矢量指令包括矩阵命令和矩阵数据。
3.如权利要求1中所述的视频解码器,其中,所述多个矢量处理单元包括至少一个滤波矢量处理器,用以并行处理所述多格式视频解码装置的至少一个滤波运算,并且其中,所述矢量指令包括滤波命令和滤波数据。
4.如权利要求1中所述的视频解码器,其中,所述转移指令部分包括无条件转移指令和条件转移指令中的至少一个。
5.如权利要求1中所述的视频解码器,其中,所述数据部上的标量逻辑运算和所述数据部上的标量算数运算中的至少一个是在所述多个矢量处理单元中的至少一个的单个指令中执行的。
6.如权利要求1中所述的视频解码器,其中,所述编码视频信号是根据VP8编码标准编码的。
7.一种解码方法,包括:
从编码视频信号产生熵解码EDC数据;
基于矢量处理单元VPU指令编程多个矢量处理单元,所述VPU指令被格式化为包括矢量指令部分、标量指令部分和转移指令部分,其中所述标量指令部分包括数据部以及要由所述多个矢量处理单元中的至少一个执行的所述数据部上的标量逻辑运算和所述数据部上的标量算数运算中的至少一个;及
通过所述多个矢量处理单元从所述EDC数据产生解码视频信号。
8.如权利要求7所述的解码方法,其中,基于VPU指令编程多个矢量处理单元包括:配置至少一个矩阵矢量处理器用以并行处理至少一个矩阵运算,并且其中,所述矢量指令包括矩降命令和矩阵数据。
9.如权利要求7所述的解码方法,其中,基于VPU指令编程多个矢量处理单元包括:配置至少一个滤波矢量处理器用以并行处理至少一个滤波运算,并且其中,所述矢量指令包括滤波命令和滤波数据。
10.如权利要求7所述的解码方法,其中,所述转移指令部分包括无条件转移指令和条件转移指令中的至少一个。
11.权利要求7所述的解码方法,其中,所述数据部上的标量逻辑运算和所述数据部上的标量算数运算中的至少一个是在所述多个矢量处理单元中的至少一个的单个指令中执行的。
12.如权利要求7所述的解码方法,其中,所述编码视频信号是根据VP8编码标准编码的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/076,518 US20120230410A1 (en) | 2011-03-09 | 2011-03-31 | Multi-format video decoder and methods for use therewith |
US13/076,518 | 2011-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103002276A CN103002276A (zh) | 2013-03-27 |
CN103002276B true CN103002276B (zh) | 2017-10-03 |
Family
ID=47930346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210157099.7A Expired - Fee Related CN103002276B (zh) | 2011-03-31 | 2012-03-09 | 多格式视频解码器及解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103002276B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116843775B (zh) * | 2023-09-01 | 2023-12-22 | 腾讯科技(深圳)有限公司 | 一种基于反离散余弦变换的解码方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4685076A (en) * | 1983-10-05 | 1987-08-04 | Hitachi, Ltd. | Vector processor for processing one vector instruction with a plurality of vector processing units |
CN1107983A (zh) * | 1993-03-31 | 1995-09-06 | 莫托罗拉公司 | 一种数据处理系统及其方法 |
CN1188275A (zh) * | 1996-08-19 | 1998-07-22 | 三星电子株式会社 | 多媒体信号处理器中的单指令多数据处理方法及其装置 |
US6963341B1 (en) * | 2002-06-03 | 2005-11-08 | Tibet MIMAR | Fast and flexible scan conversion and matrix transpose in a SIMD processor |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8284844B2 (en) * | 2002-04-01 | 2012-10-09 | Broadcom Corporation | Video decoding system supporting multiple standards |
JP2004336451A (ja) * | 2003-05-08 | 2004-11-25 | Matsushita Electric Ind Co Ltd | 画像復号ユニットとそれを用いた画像符号化装置及び符号化方法並びに画像復号装置及び復号方法 |
US8675736B2 (en) * | 2009-05-14 | 2014-03-18 | Qualcomm Incorporated | Motion vector processing |
-
2012
- 2012-03-09 CN CN201210157099.7A patent/CN103002276B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4685076A (en) * | 1983-10-05 | 1987-08-04 | Hitachi, Ltd. | Vector processor for processing one vector instruction with a plurality of vector processing units |
CN1107983A (zh) * | 1993-03-31 | 1995-09-06 | 莫托罗拉公司 | 一种数据处理系统及其方法 |
CN1188275A (zh) * | 1996-08-19 | 1998-07-22 | 三星电子株式会社 | 多媒体信号处理器中的单指令多数据处理方法及其装置 |
US6963341B1 (en) * | 2002-06-03 | 2005-11-08 | Tibet MIMAR | Fast and flexible scan conversion and matrix transpose in a SIMD processor |
Also Published As
Publication number | Publication date |
---|---|
CN103002276A (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109964482B (zh) | 视频译码中指示双边滤波器使用的方法 | |
US20120314774A1 (en) | Video decoder with multi-format vector processor and methods for use therewith | |
JP2019508971A (ja) | ビデオコーディングのための固定フィルタからのフィルタ係数を予測すること | |
US8971416B2 (en) | Video decoder with vector processor and methods for use therewith | |
EP1509044A2 (en) | Digital video signal processing apparatus | |
CN102685492B (zh) | 用于解码多层视频的通用视频解码设备以及用于该设备的方法 | |
US8848804B2 (en) | Video decoder with slice dependency decoding and methods for use therewith | |
KR100850810B1 (ko) | 디지털 비디오 부호화를 위한 가변 정확도 화상간 타이밍지정 방법 및 장치 | |
CN116506635B (zh) | 用于对图像执行逐步解码刷新处理的方法和系统 | |
CN102655593B (zh) | 具有通用视频解码装置的视频解码器和与该解码器一起使用的方法 | |
US20210092388A1 (en) | Lossless coding of video data | |
WO2021167830A1 (en) | Methods for processing chroma signals | |
CN103002276B (zh) | 多格式视频解码器及解码方法 | |
US20140341299A1 (en) | Multi-format video decoder with vector processing instructions and methods for use therewith | |
JP6234770B2 (ja) | 動画像復号処理装置、動画像符号化処理装置およびその動作方法 | |
US20210385491A1 (en) | Method for processing adaptive color transform and low-frequency non-separable transform in video coding | |
US20120230410A1 (en) | Multi-format video decoder and methods for use therewith | |
CN102316321A (zh) | 利用非语法重用的视频编码器及其使用的方法 | |
Wu et al. | A real-time H. 264 video streaming system on DSP/PC platform |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171003 Termination date: 20180309 |