视频解码方法和系统的制作方法

文档序号:7746067阅读:208来源:国知局
专利名称:视频解码方法和系统的制作方法
技术领域
本发明涉及图像处理领域,更具体地涉及一种视频解码方法和系统。
背景技术
在传统的桌面或手持设备中,视频解码通常由中央处理单元(CPU)执行。对于不具有强大CPU的系统而言,对高清(HD)视频进行解码是非常困难的。为了对HD视频进行解码,一个解决方案是在这种系统中添加专用的视频解码芯片,但是这种方案成本太高;另一种解决方案在这种系统中设置图形处理单元(GPU),由GPU来完成部分解码任务。适合由GPU来完成的解码处理包括反量化(IQ)、反离散余弦变换(IDCT)、运动补偿(MC)以及色彩空间转换(CSC)。这些处理通常由顶点着色器和片断着色器完成。MC处理是所有这些处理中最复杂的处理。MC处理的复杂性是由于画面类型、运动类型、预测方向、画面DCT(离散余弦变换)编码类型、以及内插类型的不同选择导致的。对于帧画面,前向预测中存在MC_FRAME、MC_FIELD、以及MC_DMV三种运动类型,并且在后向预测中存在MC_ FRAME和MC_FIELD两种运动类型。对于场画面(上场和下场),前向预测中存在MC_FIELD、 MC_16 X 8两种运动类型,后向预测中存在MC_FIELD和MC_16 X 8两种运动类型。还存在两种用于预测的内插方法,即整数采样和双线性内插。利用GPU进行MC的传统方法通常根据不同的画面类型、运动类型以及内插类型, 将MC处理划分到多个着色器中。每个着色器利用画面中的矩形对宏块(MB)进行渲染。这样,一个画面中将存在很多矩形需要被处理。在不同矩形之间的着色器切换将带来很大开销。

发明内容
鉴于以上所述的一个或多个问题,本发明提供了一种新颖的视频解码方法和系统。根据本发明实施例的视频解码方法包括通过利用中央处理单元对一个画面的编码后的视频数据进行变长解码和反扫描,获取所述一个画面的变长解码和反扫描后的视频数据;以及通过利用可编程图形处理单元对所述一个画面的变长解码和反扫描后的视频数据进行反量化、反离散余弦变换、运动补偿以及色彩空间转换,获取所述一个画面的完成解码后的视频数据。其中,所述一个画面的变长解码、反扫描、反量化、以及反离散余弦变换后的视频数据包含有所述一个画面中的每个像素的亮度残差值和色度残差值,通过根据等式 (1)对所述一个画面中的任意一个像素的亮度/色度残差值进行运动补偿来获取所述一个像素的亮度/色度值sum = residual+(1. 0-MC_flag)氺128. 0+MC_flag氺prediction (1)其中,sum表示所述一个像素的亮度/色度值,residual表示所述一个像素的亮度 /色度残差值,prediction表示所述一个像素的亮度/色度预测值,MC_flag是所述一个像素所在宏块的运动补偿标记,当所述一个像素所在宏块为帧内编码宏块时MC_flag = 0,当所述一个像素所在宏块不是帧内编码宏块时MC_flag = 1。根据本发明实施例的视频解码系统包括中央处理单元,被配置为通过对一个画面的编码后的视频数据进行变长解码和反扫描,获取所述一个画面的变长解码和反扫描后的视频数据;可编程图形处理单元,被配置为通过对所述一个画面的变长解码和反扫描后的视频数据进行反量化、反离散余弦变换、运动补偿以及色彩空间转换,获取所述一个画面的完成解码后的视频数据。其中,所述一个画面的变长解码、反扫描、反量化、以及反离散余弦变换后的视频数据包含有所述一个画面中的每个像素的亮度残差值和色度残差值。可编程图形处理单元通过根据等式(1)对所述一个画面中的任意一个像素的亮度/色度残差值进行运动补偿来获取所述一个像素的亮度/色度值sum = residual+(1. 0-MC_flag)*128. 0+MC_flag氺prediction (1)其中,sum表示所述一个像素的亮度/色度值,residual表示所述一个像素的亮度 /色度残差值,prediction表示所述一个像素的亮度/色度预测值,MC_flag是所述一个像素所在宏块的运动补偿标记,当所述一个像素所在宏块为帧内编码宏块时MC_flag = 0,当所述一个像素所在宏块不是帧内编码宏块时MC_flag = 1。本发明将不同预测方向、不同运动类型、以及不同编码类型的场画面或帧画面的运动补偿处理结合在了一起,并且将一个画面当作一个矩形进行处理,所以不需要对着色器进行切换,从而提高了处理速度。


从下面结合附图对本发明的具体实施方式
的描述中可以更好地理解本发明,其中图1示出了根据本发明实施例的视频解码方法和系统的逻辑图;图2示出了根据本发明实施例的遵循OpenGL ES 2. 0 (其是一种嵌入式3D图形算法标准)的可编程图形流水线;图3示出了由图2所示的片断着色器实现的MC着色器的逻辑图;图4A和图4B分别示出了帧DCT编码和场DCT编码的示意图;图5示出了根据本发明实施例的视频解码系统的逻辑框图;图6示出了在场画面中对像素的亮度/色度残差值进行采样的示意图;图7示出了专用于帧画面的MC着色器的结构;图8示出了专用于场画面的MC着色器的结构;以及图9示出了 MC着色器处理器的硬件示意图。
具体实施例方式下面将详细描述本发明各个方面的特征和示例性实施例。下面的描述涵盖了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说显而易见的是, 本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更清楚的理解。本发明绝不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了相关元素、部件和算法的任何修改、替换和改进。
由于在MPEG-2视频解码中按照从左到右、从上到下的顺序对宏块(MB)进行处理, 所以MPEG-2视频解码系统中的坐标系χ轴指向右,y轴指向下。而在OpenGL ES 2. 0 (其是Khronos Group在2007年3月份制定的一种业界标准应用程序编程接口,可以大大提高不同消费电子设备的三维图形渲染速度,在嵌入式系统上实现了全面可编程的三维图形) 中,坐标系χ轴指向右,y轴指向上。图1示出了根据本发明实施例的视频解码方法和系统的逻辑图。如图1所示,该视频解码方法和系统在逻辑上包括变长解码(VLD)、反扫描(IS)、反量化(IQ)、反离散余弦变换(IDCT)、运动补偿(MC)以及色彩空间转换(CSC)处理102 114。除了 CSC处理以外的所有处理都遵循MPEG-2标准。具体地,该视频解码方法和系统对需要解码的一帧(或者一场)画面的视频数据进行解码,并将解码后的视频数据发送给显示器以显示该一帧(或者一场)画面。也就是说,该视频解码方法和系统逐画面地对视频数据流进行解码处理。 在图1中,VLD和IS处理将在CPU 116中完成,VLD和IS处理后的视频数据被存储在应用存储器120中。应用存储器也可以被称为CPU存储器、用户空间存储器或客户存储器。在 VLD和IS处理后的视频数据被从应用存储器传递到图形存储器122后,IQ、IDCT、MC以及 CSC处理将在GPU 118中完成(主要由GPU中的片断着色器完成)。在图形术语中,图形存储器通常被称为主机存储器。其中,由于画面类型、运动类型、预测方向、画面DCT编码类型、以及内插类型的不同,MC处理是上述这些处理中最复杂的一项处理。在本发明中,可以使用帧处理结构来对帧画面进行处理,并使用场处理结构来对场画面进行场处理。图2示出了根据本发明实施例的遵循OpenGL ES 2. 0的可编程图形流水线。该流水线包括顶点着色器202、图元装配单元204、栅格化单元206、片断着色器208、以及逐片断操作单元210。其中,顶点着色器和片断着色器是可编程的,其他单元是固定功能。由可编程着色器实现的GPU被称为可编程GPU。下面详细描述图2所示的可编程图形流水线的具体处理过程。在图2中,一个画面 (该画面可以看作一个矩形块)的坐标(即,该画面的四个顶点的位置坐标和纹理坐标)被发送给顶点缓存(其由顶点着色器202使用)。顶点着色器对该画面的四个顶点逐一进行处理。在OpenGL ES 2. 0中,顶点着色器进行的处理包括对顶点坐标进行平移、旋转、透视变换等几何操作,为顶点计算光照值或生成纹理坐标等,但是在本发明中,这些操作都不会使用,唯一要做的就是保持顶点的位置坐标不变。图元装配单元所完成的操作包括裁剪、透视除法、以及视图变换等,这些操作能将该画面的大小设置为期望尺寸。栅格化单元完成图元的栅格化过程,将该画面所对应的两个三角形图元用片段进行填充,这里一个片段包含对应的像素以及附属的信息。在图元装配单元和栅格化单元的处理之后,图形流水线生成将由片断着色器进行处理的片断。在片段着色器的使用过程中,该画面的视频数据将被作为纹理对象发送给纹理存储器(其由片断着色器使用)。片段着色器对每个片段进行IQ、 IDCT、MC和CSC处理过程,然后每个片段被送入逐片段操作单元。逐片段操作单元对每个片段进行裁剪框检测、模板缓冲区检测、深度缓冲区检测、混色、以及抖动操作,这些操作能将片段转化为可见的像素,以用于显示。在以上图形流水线的每个阶段,产生的结果被存储到帧缓存中。帧缓存可以是与将要描画的表面或者纹理对象有关的图形缓存。帧缓存中的这些纹理对象也可以被用作纹理存储器中的对象。当然,OpenGL ES 2.0应用程序接口(API)可以控制顶点缓存对象、流水线中的着色器、纹理存储器中的纹理对象、以及帧缓存。由于片断着色器可以更灵活地访问图形存储器并且具有更多的计算资源,所以在根据本发明实施例的视频解码处理中,IQ、IDCT、MC以及CSC处理由片断着色器完成。其中,每个画面将被作为一个矩形进行处理。每个矩形包括两个三角形,这两个三角形都可以被画为三角形扇或者三角形条带。图3示出了由图2所示的片断着色器实现的MC着色器的逻辑图。该MC着色器对需要处理的一个画面中的亮度值(Y)、蓝色色度值(Cb)、以及红色色度值(Cr)分别进行处理。首先,MC着色器302逐画面(帧画面或场画面)地对需要处理的一个画面的IDCT处理结果进行采样,即从该画面的IDCT处理结果中采样该画面中每个像素的亮度/色度残差值(Y’ /Cb' /Cr')(作为纹理304)。其次,MC着色器302从需要处理的一个画面的前向参考帧306采样前向参考帧中每个像素的亮度/色度值,并从后向参考帧308采样需要处理的一个画面的后向参考帧中每个像素的亮度/色度值,并将这些采样值作为需要处理的一个画面中像素的亮度/色度预测值。为了避免对参考方向(包括前向参考、后向参考和双向参考)不同的多个画面分别进行设置,根据本发明实施例的MC着色器同时对前向和后向参考帧进行设置,即使仅存在一个参考方向。最后,MC着色器302将需要处理的一个画面中的每个像素的亮度/色度残差值和亮度/色度预测值叠加在一起,发送到帧缓存310,以用于进行CSC处理。一个画面将被作为包括两个三角形的一个矩形进行处理。该矩形的四个顶点的位置坐标为(-1. 0,-1. 0)、(1. 0,-1. 0)、(1. 0,1. 0)、以及(-1. 0,1.0),纹理坐标为(0. 0,0. 0), (1.0,0.0)、(1.0,1.0)、以及(0.0,1.0)。这些顶点的位置坐标和纹理坐标由顶点着色器计算得出,并被作为属性发送给MC着色器302。来自顶点着色器的每个片断(即,像素)的纹理坐标v_texc00rd被MC着色器302用来对每个像素的亮度/色度残差值和亮度/色度预测值进行采样。需要处理的画面的视窗大小和画面类型被打包为(vp_width,vp_height, picture_structure,0. 0)并且被作为常量发送给 MC 着色器 302。vp_width 和 vp_height 分别表示需要处理的画面的视窗宽度和视窗高度,picture_structure表示需要处理的画面的画面类型。例如,当需要处理的画面为帧画面时picture_structure = 0,当需要处理的画面为场画面时picture_structure = 1。对于需要处理的一个帧画面,其预测模式可能为帧预测模式、双基预测模式、以及场预测模式中的一种。其中,在帧预测模式(该模式只是用于帧画面)下,需要处理的帧画面中的每个宏块具有相对于前向或后向参考帧的一个运动向量,或者具有相对于前向和后向参考帧的两个运动向量;在双基预测模式下,需要处理的帧画面被分成顶场和底场两个场来预测,并且需要处理的帧画面顶场中的每个宏块具有相对于前向参考帧的顶场和底场的两个运动向量,需要处理的帧画面底场中的每个宏块具有相对于前向参考帧的顶场和底场的两个运动向量;在场预测模式下,需要处理的帧画面被分成顶场和底场两个场来预测, 并且需要处理的帧画面顶场中的每个宏块具有相对于前向或后向参考帧的顶场的一个运动向量或者具有相对于前向和后向参考帧的顶场的两个运动向量,需要处理的帧画面底场中的每个宏块具有相对于前向或后向参考帧的底场的一个运动向量或者具有相对于前向和后向参考帧的底场的两个运动向量。
对于需要处理的一个场画面,其预测模式可能为场预测模式、双基预测模式、以及 16X8预测模式中的一种。其中,在场预测模式下,需要处理的场画面中的每个宏块具有相对于前向或后向参考帧的一个运动向量,或者具有相对于前向和后向参考帧的两个运动向量;在双基预测模式下,需要处理的场画面中的每个宏块具有相对于前向参考帧的顶场和底场的两个运动向量;在16X8预测模式下,需要处理的场画面中的每个宏块被分成上半部分和下半部分来预测,并且需要处理的场画面中的每个宏块的上半部分具有相对于前向或后向参考帧的一个运动向量或者具有相对于前向和后向参考帧的两个运动向量,需要处理的帧画面底场中的每个宏块的下半部分具有相对于前向或后向参考帧的一个运动向量或者具有相对于前向和后向参考帧的两个运动向量。在这里需要说明的是,每个宏块包括16X16个像素,并且每个宏块的运动向量即是其中包含的每个像素的运动向量。为了通过一个MC着色器统一对多个场画面或多个帧画面进行MC处理,本发明将用四个运动向量组来描述需要处理的一个画面中包含的所有宏块的运动向量。在需要处理的画面为帧画面的情况下,当该画面的预测模式为帧预测时,该画面中每个宏块相对于前向参考帧的运动向量组成了第一运动向量组(MVl),每个宏块相对于后向参考帧的运动向量组成了第二运动向量组(MV2),第三和第四运动向量组(MV3和MV4) 中的所有元素都为零;当该画面的预测模式是场预测模式时,该画面的顶场中的每个宏块相对于前向参考帧和后向参考帧的顶场的运动向量分别组成了第一向量组和第二向量组 (MVl和MV2),该画面的底场中的每个宏块相对于前向参考帧和后向参考帧的底场的运动向量分别组成了第三向量组和第四向量组(MV3和MV4);当该画面的预测模式是双基预测模式时,该画面的顶场中的每个宏块相对于前向参考帧的顶场和底场的运动向量分别组成了第一向量组(MVl)和第三向量组(MV3),该画面的底场中的每个宏块相对于前向参考帧的顶场和底场的运动向量分别组成了第二向量组(MV2)和第四向量组(MV4)。需要说明的是,如果需要处理的画面的预测方向是前向,则该画面中每个宏块相对于后向参考帧的运动向量将为零,即MV2或MV4中的所有元素均为零;如果需要处理的画面的预测方向是后向,则该画面中每个宏块相对于前向参考帧的运动向量将为零,即MVl或MV3中的所有元素均为零。在需要处理的画面为场画面的情况下,当该画面的预测模式是场预测模式时,该画面中的每个宏块相对于前向参考帧和后向参考帧的运动向量分别组成了第一向量组 (MVl)和第二向量组(MV2);当该画面的预测模式是双基预测模式时,该画面中的每个宏块相对于前向参考帧的顶场和底场的运动向量分别组成第一向量组(MVl)和第二向量组 (MV2);当该画面的预测模式是16X8预测模式时,该画面中的每个宏块的上半部分相对于前向参考帧和后向参考帧的运动向量分别组成了第一向量组(MVl)和第二向量组(MV2), 且该画面中的每个宏块的下半部分相对于前向参考帧和后向参考帧的运动向量分别组成了第三向量组(MV3)和第四向量组(MV4)。同样,如果需要处理的画面的预测方向是前向, 则该画面中每个宏块相对于后向参考帧的运动向量将为零,即MV2或MV4中的每个元素均为零;如果需要处理的画面的预测方向是后向,则该画面中每个宏块相对于前向参考帧的运动向量将为零,即MVl或MV3中的每个元素均为零。在本发明的实施例中,由于RGBA(红-绿-蓝-透明度)通道中的每个通道具有8个比特,并且这8比特数据没有正负之分(即,都为正),所以需要将一个宏块的前向或后向运动向量打包为这样的形式(运动向量的χ分量的绝对值,运动向量的Χ分量的符号标记,运动向量的y分量的绝对值,运动向量的y分量的符号标记)。其中,当运动向量的χ和 y分量为负时,运动向量的χ和y分量的符号标记均为1. 0,当运动向量的χ和y分量为正时,运动向量的χ和y分量的符号标记均为0. 0。另外,对于需要处理的一个画面,该画面中每个宏块的运动补偿标记MC_flag、预测方向标记ref_direCt、DCT编码类型标记dct_type、以及显示场选择标记ffs被打包为 (MC_flag,ref_direct, dct_type, ffs),并且被作为纹理发送给MC着色器302。另外,每个宏块的参考场选择标记mvfs也被作为纹理利用RGBA通道发送到MC着色器302。对于每个宏块,这些纹理被与该宏块相关联地打包在一起。这里需要说明的是,一个画面中的宏块可以具有不同的运动补偿方式、不同的DCT编码类型、以及不同的显示场选择,但是一个画面中的宏块一定具有相同的预测方向。DCT编码类型只存在于帧画面中,而不存在于场画面中。在本发明的实施例中,当一个宏块是帧内编码宏块时,该宏块的运动补偿标记MC_ flag = 0 ;当一个宏块不是帧内编码宏块时,该宏块的运动补偿标记MC_flag = 1。当一个宏块的预测方向为前向时,该宏块的预测方向标记ref_direct = 0 ;当一个宏块的预测方向为后向时,该宏块的预测方向标记ref_direct = 1 ;以及当一个宏块的预测方向为双向时,该宏块的预测方向标记ref_direct = 2。当一个宏块的DCT编码类型为帧DCT编码时, 该宏块的DCT编码类型标记dct_type = 0 ;当一个宏块的DCT编码类型为场DCT编码时, 该宏块的DCT编码类型标记dct_type = 1。当一个宏块的显示场为顶场时,该宏块的显示场选择标记ffs = 0 ;当一个宏块的显示场为底场时,该宏块的显示场选择标记ffs = 1。图4A和图4B分别示出了帧DCT编码和场DCT编码的示意图。如图4A中所示,在需要处理的帧画面中的一个像素所在宏块的DCT编码类型为帧DCT编码的情况下,可以从该需要处理的帧画面中获取该像素的亮度/色度残差值,并将所获取的亮度/色度残差值作为将要显示的画面中的相同位置的像素的亮度/色度残差值。如图4B所示,在需要处理的帧画面中的一个像素所在宏块的DCT编码类型为场DCT编码的情况下,可以从该需要处理的帧画面中获取该像素的亮度/色度残差值,并将所获取的亮度/色度残差值作为将要显示的画面中的相对于该像素的纹理坐标存在一定偏移的位置的像素的亮度/色度残差值。具体地,假设需要处理的画面中的像素A的纹理坐标为v_teXC00rd,可以将需要处理的画面中的相对于像素A存在一定偏移的、纹理坐标为texRef的像素B的亮度/色度残差值作为将要显示的画面中与像素A的纹理坐标相同的像素C的亮度/色度残差值texRef. s = v_texCoord. s(1)texRef. t = startTexCoord. t+(dety+2. 0*fraction*8. 0)*texDet. t (2)fraction = fract((gl_FragCoord-0. 5)/2. 0). y(3)其中,v_teXC00rd. s表示需要处理的画面中的像素A的纹理坐标的s分量, texRef. s表示需要处理的画面中的像素B的纹理坐标的s分量,texRef. t表示需要处理的画面中的像素B的纹理坐标的t分量,startTexCoord. t表示需要处理的画面中的像素 A所在宏块的最左下侧像素的纹理坐标的t分量,dety表示需要处理的画面中的像素A与像素A所在宏块的最下侧像素行之间的距离,texDet.t表示需要处理的画面中的像素A 与像素A所在宏块的最左下侧像素之间的纹理坐标距离的t分量,gl_FragCoord表示需要处理的画面中的像素A的位置坐标,fract ()表示求余函数,fraction表示fract((gl_ FragCoord-O. 5) /2. 0)的 y 分量。注意,gl_FragCoord 通常取诸如(0. 5,0. 5)、(0. 5,1. 5)、 (1.5,0. 5), (1.5, 2. 5)之类的值,所以fraction通常取0. 0或0. 5。对于帧DCT编码类型, 可以将纹理坐标偏移看作0。图5示出了根据本发明实施例的视频解码系统的逻辑框图。如图5所示,该视频解码系统包括中央处理单元502和可编程图形处理单元504。其中,可编程图形处理单元 504进一步包括画面类型判断单元5042、编码类型判断单元5044、残差值获取单元5046、预测模式判断单元5048、预测方向判断单元5050、运动向量获取单元5052、运动向量计算单元5054、预测值计算单元5056、以及偏移量计算单元5058。对于一个需要处理的画面(为了描述方便,这里记为画面D),中央处理单元502通过对画面D的编码后的视频数据进行变长解码和反扫描,获取画面D的变长解码和反扫描后的视频数据;可编程图形处理单元504通过对画面D的变长解码和反扫描后的视频数据进行反量化、反离散余弦变换、运动补偿以及色彩空间转换,获取画面D的完成解码后的视频数据。其中,画面D的变长解码、反扫描、反量化、以及反离散余弦变换后的视频数据包含有画面D中的每个像素的亮度残差值和色度残差值,可编程图形处理单元504可以通过根据等式(4)对画面D中的任意一个像素(为了描述方便,这里记为像素P)的亮度/色度残差值进行运动补偿来获取像素P的亮度/色度值sum = residual+(1. 0-MC_flag)氺128. 0+MC_flag氺prediction (4)其中,sum表示像素P的亮度/色度值,residual表示像素P的亮度/色度残差值,prediction表示像素P的亮度/色度预测值,MC_flag是像素P所在宏块的运动补偿标记,当像素P所在宏块为帧内编码宏块时MC_flag = 0,当像素P所在宏块不是帧内编码宏块时 MC_flag = 1。在可编程图形处理单元获取像素P的亮度/色度残差值的过程中,画面类型判断单元5042根据画面D的画面类型标记判断画面D是帧画面还是场画面。当画面D是场画面时,残差值获取单元5046根据像素P的纹理坐标从画面D的变长解码、反扫描、反量化、 以及反离散余弦变换后的视频数据中获取像素P的亮度/色度残差值。当画面D是帧画面时,编码类型判断单元5044根据像素P所在宏块的离散余弦变换编码类型标记判断像素P 所在宏块的离散余弦变换编码类型是场离散余弦变换编码还是帧离散余弦变换编码。如果像素P所在宏块的离散余弦变换编码类型为帧离散余弦变换编码,则残差值获取单元5046 根据像素P的纹理坐标从画面D的变长解码、反扫描、反量化、以及反离散余弦变换后的视频数据中获取像素P的亮度/色度残差值,否则残差值获取单元5046根据等式(5)至(7) 计算像素P的偏移后的纹理坐标,并根据像素P的偏移后的纹理坐标从画面D的变长解码、 反扫描、反量化、以及反离散余弦变换后的视频数据中获取像素P的亮度/色度残差值。texRef. s = v_texCoord. s(5)texRef. t = startTexCoord. t+(dety+2. 0*fraction*8. 0)*texDet. t (6)fraction = fract((gl_FragCoord-0. 5)/2. 0). y(7)其中,v_texCoord. s表示像素P的纹理坐标的s分量,texRef. s表示像素P的偏移后的纹理坐标的s分量,texRef.t表示像素P的偏移后的纹理坐标的t分量, startTexCoord. t表示像素P所在宏块的最左下侧像素的纹理坐标的t分量,dety表示像素P与像素P所在宏块的最下侧像素行之间的距离,texDet. t表示像素P与像素P所在宏块的最左下侧像素之间的纹理坐标距离的t分量,glFragCoord表示像素P的位置坐标, fract O 表示求余函数,fraction 表示 fract ((gl_FragCoord_0. 5) /2. 0)的 y 分量。在可编程图形处理单元获取像素P的亮度/色度预测值的过程中或者之前,预测模式判断单元5048根据画面D的预测模式标记判断画面D的预测模式是帧预测、场预测、 双基预测还是16X8预测,预测方向判断单元5050根据画面D的预测方向标记判断画面D 的预测方向是前向、后向还是双向。当画面D的画面类型是帧画面、预测模式是帧预测模式、且预测方向为前向/后向时,运动向量获取单元5052根据像素P的纹理坐标从第一向量组(MVl)/第二向量组(MV2) 中获取像素P相对于前向参考帧/后向参考帧的运动向量;运动向量计算单元5054根据等式(8)和(9)计算像素P相对于前向参考帧/后向参考帧的运动向量的整数部分ixy和半整数部分hxy ;预测值计算单元5056根据等式(10)至(14)计算像素P的亮度/色度预测值。ixy = vec2 (floor (mvl. χ/2. 0), floor (mvl. y/2. 0))(8)hxy = vec2 (mvl. x/2. 0-ixy. x, mvl. y/2. 0-ixy. y)(9)其中,mvl. χ和mvl. y分别表示像素P相对于前向参考帧/后向参考帧的运动向量的X分量和ι分量的绝对值,ixy. X和ixy. y分别表示像素P相对于前向参考帧/后向参考帧的运动向量的整数部分的χ分量和y分量,floor()表示向下取整函数。texO至 tex3是用纹理坐标表示的像素P周围的四个像素相对于前向参考帧/后向参考帧的运动向量,texture2D (s_reference, texO),texture2D (s_reference, texl),texture2D(s_ reference, tex2),texture2D (s_reference, tex3)分别是根据 texO 至 tex3 获取的位于前向参考帧/后向参考帧上的参考像素的亮度/色度值,vp_width是画面D的视窗宽度,vp_ height是画面D的视窗高度,texShift. χ和texShift. y均为0。prediction = ((texture2D(s_reference, texO) +hxy. x*texture2D(s_reference, texl)+hxy. y氺(s_reference, tex2)+hxy. x*hxy. y*(10)texture2D (s_reference, tex3)) +hxy. x+hxy. y)/ (1. 0+hxy. x+hxy. y+hxy. χ氺hxy. y)
权利要求
1.一种视频解码方法,包括通过利用中央处理单元对一个画面的编码后的视频数据进行变长解码和反扫描,获取所述一个画面的变长解码和反扫描后的视频数据;以及通过利用可编程图形处理单元对所述一个画面的变长解码和反扫描后的视频数据进行反量化、反离散余弦变换、运动补偿以及色彩空间转换,获取所述一个画面的完成解码后的视频数据,其中所述一个画面的变长解码、反扫描、反量化、以及反离散余弦变换后的视频数据包含有所述一个画面中的每个像素的亮度残差值和色度残差值,通过根据等式(1)对所述一个画面中的任意一个像素的亮度/色度残差值进行运动补偿来获取所述一个像素的亮度/ 色度值sum = residual+(1. 0_MC_flag)*128· 0+MC_flag*prediction (1) 其中,sum表示所述一个像素的亮度/色度值,residual表示所述一个像素的亮度/色度残差值,prediction表示所述一个像素的亮度/色度预测值,MC_flag是所述一个像素所在宏块的运动补偿标记,当所述一个像素所在宏块为帧内编码宏块时MC_flag = 0,当所述一个像素所在宏块不是帧内编码宏块时MC_flag= 1。
2.根据权利要求1所述的视频解码方法,其特征在于,获取所述一个像素的亮度/色度残差值的处理包括根据所述一个画面的画面类型标记判断所述一个画面是帧画面还是场画面; 当所述一个画面是场画面时,根据所述一个像素的纹理坐标从所述一个画面的变长解码、反扫描、反量化、以及反离散余弦变换后的视频数据中获取所述一个像素的亮度/色度残差值。
3.根据权利要求1所述的视频解码方法,其特征在于,获取所述一个像素的亮度/色度残差值的处理包括根据所述一个画面的画面类型标记判断所述一个画面是帧画面还是场画面; 当所述一个画面是帧画面时,根据所述一个像素所在宏块的离散余弦变换编码类型标记判断所述一个像素所在宏块的离散余弦变换编码类型是场离散余弦变换编码还是帧离散余弦变换编码;如果所述一个像素所在宏块的离散余弦变换编码类型为帧离散余弦变换编码,则根据所述一个像素的纹理坐标从所述一个画面的变长解码、反扫描、反量化、以及反离散余弦变换后的视频数据中获取所述一个像素的亮度/色度残差值,否则根据等式(2)至(4)计算所述一个像素的偏移后的纹理坐标 texRef. s = v_texCoord. s(2)texRef. t = startTexCoord. t+(dety+2. 0*fraction*8. 0)*texDet. t (3) fraction = fract((gl_FragCoord-0. 5)/2. 0). y(4)其中,v_texCoord. s表示所述一个像素的纹理坐标的s分量,texRef. s表示所述一个像素的偏移后的纹理坐标的s分量,texRef. t表示所述一个像素的偏移后的纹理坐标的 t分量,startTexCoord. t表示所述一个像素所在宏块的最左下侧像素的纹理坐标的t分量,dety表示所述一个像素与所述一个像素所在宏块的最下侧像素行之间的距离,texDet. t表示所述一个像素与所述一个像素所在宏块的最左下侧像素之间的纹理坐标距离的t分量,gl_FragC00rd表示所述一个像素的位置坐标,fract ()表示求余函数,fraction表示 fract ((gl_FragCoord-0. 5) /2. 0)的 y 分量;并且根据所述一个像素的偏移后的纹理坐标从所述一个画面的变长解码、反扫描、反量化、 以及反离散余弦变换后的视频数据中获取所述一个像素的亮度/色度残差值。
4.根据权利要求1所述的视频解码方法,其特征在于,所述一个画面的变长解码、反扫描、反量化、以及反离散余弦变换后的视频数据中还包含有所述一个画面中的每个宏块的运动向量,其中在所述一个画面是帧画面的情况下,当所述一个画面的预测模式是帧预测模式时,所述一个画面中的每个宏块相对于前向参考帧的运动向量组成第一向量组,且所述一个画面中的每个宏块相对于后向参考帧的运动向量组成第二向量组,当所述一个画面的预测模式是场预测模式时,所述一个画面的顶场中的每个宏块相对于前向参考帧和后向参考帧的顶场的运动向量分别组成所述第一向量组和所述第二向量组,并且所述一个画面的底场中的每个宏块相对于前向参考帧和后向参考帧的底场的运动向量分别组成第三向量组和第四向量组,当所述一个画面的预测模式是双基预测模式时,所述一个画面的顶场中的每个宏块相对于前向参考帧的顶场和底场的运动向量分别组成所述第一向量组和所述第三向量组,并且所述一个画面的底场中的每个宏块相对于前向参考帧的顶场和底场的运动向量分别组成所述第二向量组和所述第四向量组, 在所述一个画面是场画面的情况下,当所述一个画面的预测模式是场预测模式时,所述一个画面中的每个宏块相对于前向参考帧和后向参考帧的运动向量分别组成所述第一向量组和所述第二向量组,当所述一个画面的预测模式是双基预测模式时,所述一个画面中的每个宏块相对于前向参考帧的顶场和底场的运动向量分别组成所述第一向量组和所述第二向量组,当所述一个画面的预测模式是16X8预测模式时,所述一个画面中的每个宏块的上半部分相对于前向参考帧和后向参考帧的运动向量分别组成所述第一向量组和所述第二向量组,且所述一个画面中的每个宏块的下半部分相对于前向参考帧和后向参考帧的运动向量分别组成所述第三向量组和所述第四向量组。
5.根据权利要求4所述的视频解码方法,其特征在于,在获取所述一个像素的亮度/ 色度预测值之前,根据所述一个画面的画面类型标记判断所述一个画面是帧画面还是场画面,根据所述一个画面的预测模式标记判断所述一个画面的预测模式是帧预测、场预测、双基预测、还是16X8预测,并根据所述一个像素所在宏块的预测方向标记判断所述一个像素所在宏块的预测方向是前向、后向还是双向。
6.根据权利要求5所述的视频解码方法,其特征在于,当所述一个画面的画面类型是帧画面、所述一个画面的预测模式是帧预测模式、且所述一个画面的预测方向是前向/后向时,获取所述一个像素的亮度/色度预测值的处理包括根据所述一个像素的纹理坐标从所述第一向量组/所述第二向量组中获取所述一个像素相对于前向参考帧/后向参考帧的运动向量;根据等式(5)和(6)计算所述一个像素相对于前向参考帧/后向参考帧的运动向量的整数部分ixy和半整数部分hxy,其中mvl. χ和mvl. y分别表示所述一个像素相对于前向参考帧/后向参考帧的运动向量的χ分量和ι分量的绝对值,ixy. χ和ixy. y分别表示所述一个像素相对于前向参考帧/后向参考帧的运动向量的整数部分的χ分量和y分量,floor () 表示向下取整函数ixy = vec2 (floor (mvl. χ/2. 0), floor (mvl. y/2. 0)) hxy = vec2 (mvl. x/2. 0-ixy. x, mvl. y/2. 0-ixy. y)(5)(6)根据等式(7)至(11)计算所述一个像素的亮度/色度预测值,其中,texO至tex3是用纹理坐标表示的所述一个像素周围的四个像素相对于前向参考帧/后向参考帧的运动向 量,texture2D(s—reference,texO)、texture2D(s—reference,texl)、texture2D(s_ reference, tex2)、texture2D (s—reference,tex3)分别是根据 texO 至 tex3 获取的位于前向参考帧/后向参考帧上的参考像素的亮度/色度值,vp—width是所述一个画面的视窗宽度,vp—height是所述一个画面的视窗高度,texShift. χ和texShift. y均为0 prediction = ((texture2D(s—reference,texO) +hxy. χ氺texture2D(s—reference,texl)+hxy. y* (s—reference,tex2) +hxy. χ5^hxy. y* texture2D(s—reference,tex3))+hxy.x+hxy. y) / (1. 0+hxy. x+hxy. y+hxy. χ5^hxy. y)(7)texO=vec2(texShift.x +lxy.x-,texShift.y-lxy.yvp 一 height'vp __ widthtexl = tex0+vec2(l. 0/vp—width,0. 0)tex2 = tex0+vec2(0. 0,_1. 0/vp—height)tex3 = tex0+vec2 (1. 0/vp—width,-L 0/vp—height) (9)(10) (11)
7.根据权利要求5所述的视频解码方法,其特征在于,当所述一个画面的画面类型是帧画面、所述一个画面的预测模式是场预测模式、且所述一个画面的预测方向是前向/后向时以及当所述一个画面的画面类型是场画面、所述一个画面的预测模式为场预测模式或者16X8预测模式、且所述一个画面的预测方向是前向/后向时,获取所述一个像素的亮度 /色度预测值的处理包括根据所述一个像素的纹理坐标从相应的向量组中获取所述一个像素相对于前向参考帧/后向参考帧的运动向量;根据所述一个像素所在宏块的参考场选择标记判断是否需要对所述一个像素相对于前向参考帧/后向参考帧的运动向量进行偏移,如果需要,则在所述一个像素处于所述一个画面的顶场中的情况下根据等式(12)计算偏移量texShift,在所述一个像素处于所述一个画面的底场中的情况下根据等式(13)计算偏移量texShift,其中v_teXC00rd. s和v_ texCoord. t分别表示所述一个像素的纹理坐标的s分量和t分量,vp_height是所述一个画面的视窗高度texShift = vec2(v_texCoord. s, v_texCoord. t_l/vp_height)(12)texShift = vec2(v_texCoord. s, v_texCoord. t+l/vp_height)(13)根据等式(14)和(15)计算所述一个像素相对于前向参考帧/后向参考帧的运动向量的整数部分ixy和半整数部分hxy,其中mvl. χ和mvl. y分别表示所述一个像素相对于前向参考帧/后向参考帧的运动向量的χ分量和y分量的绝对值,ixy. χ和ixy. y分别表示所述一个像素相对于前向参考帧/后向参考帧的运动向量的整数部分的χ分量和y分量, floor()表示向下取整函数
8.根据权利要求6或7所述的视频解码方法,其特征在于,当所述一个画面的预测方向为双向预测时,将根据所述一个像素相对于前向参考帧的运动向量获取的所述一个像素的亮度/色度预测值和根据所述一个像素相对于后向参考帧的运动向量获取的所述一个像素的亮度/色度预测值的平均值作为所述一个像素的最终亮度/色度预测值。
9.根据权利要求5所述的视频解码方法,其特征在于,当所述一个画面的画面类型是帧画面、所述一个画面的预测模式是双基预测模式时以及当所述一个画面的画面类型是场画面、所述一个画面的预测模式为双基预测模式时,获取所述一个像素的亮度/色度预测值的处理包括根据所述一个像素的纹理坐标从相应的向量组中获取所述一个像素相对于前向参考帧的运动向量;根据所述一个像素所在宏块的参考场选择标记判断是否需要对所述一个像素相对于前向参考帧的运动向量进行偏移,如果需要,则在所述一个像素处于所述一个画面的顶场中的情况下根据等式(12)计算偏移量texShift,在所述一个像素处于所述一个画面的底场中的情况下根据等式(13)计算偏移量texShift,其中v_texCoord. s*v_texCoord. t分别表示所述一个像素的纹理坐标的s分量和t分量,vp_height是所述一个画面的视窗高度texShift = vec2(v_texCoord. s,v_texCoord. t-l/vp—height)(12)texShift = vec2(v_texCoord. s,v_texCoord. t+l/vp—height)(13)根据等式(14)和(15)计算所述一个像素相对于前向参考帧的运动向量的整数部分 ixy和半整数部分hxy,其中mvl. χ和mvl. y分别表示所述一个像素相对于前向参考帧的运动向量的χ分量和ι分量的绝对值,ixy. χ和ixy. y分别表示所述一个像素相对于前向参考帧的运动向量的整数部分的χ分量和y分量,floor ()表示向下取整函数ixy = vec2 (floor (mvl. χ/2. 0),floor (mvl. y/4. 0))(14)hxy = vec2 (mvl. x/2. 0-ixy. x, mvl. y/4. 0-ixy. y)(15)根据等式(16)至(20)计算所述一个像素的亮度/色度预测值,其中,texO至 tex3是用纹理坐标表示的所述一个像素周围的四个像素相对于前向参考帧的运动向量,texture2D(s_reference, texO)、 texture2D(s_reference, texl)、 texture2D(s_ reference, tex2)、texture2D (s_reference,tex3)分别是根据 texO 至 tex3 获取的位于前向参考帧上的参考像素的亮度/色度值,vp_width是所述一个画面的视窗宽度,texShift. χ和texShift. y表示所述偏移量的χ和y分量prediction = ((texture2D(s_reference, texO) + hxy.x*texture2D(s_reference, texl)+hxy. y氺 (s_reference, tex2)+hxy. χ氺hxy. y氺 texture2D(s_reference, tex3))+hxy. x+hxy. y) / (1. 0+hxy. x+hxy. y+hxy. χ氺hxy. y)
10.一种视频解码系统,包括 中央处理单元,被配置为通过对一个画面的编码后的视频数据进行变长解码和反扫描,获取所述一个画面的变长解码和反扫描后的视频数据;可编程图形处理单元,被配置为通过对所述一个画面的变长解码和反扫描后的视频数据进行反量化、反离散余弦变换、运动补偿以及色彩空间转换,获取所述一个画面的完成解码后的视频数据,其中所述一个画面的变长解码、反扫描、反量化、以及反离散余弦变换后的视频数据包含有所述一个画面中的每个像素的亮度残差值和色度残差值,所述可编程图形处理单元通过根据等式(1)对所述一个画面中的任意一个像素的亮度/色度残差值进行运动补偿来获取所述一个像素的亮度/色度值sum = residual+(1. 0_MC_flag)*128· 0+MC_flag*prediction (1) 其中,sum表示所述一个像素的亮度/色度值,residual表示所述一个像素的亮度/色度残差值,prediction表示所述一个像素的亮度/色度预测值,MC_flag是所述一个像素所在宏块的运动补偿标记,当所述一个像素所在宏块为帧内编码宏块时MC_flag = 0,当所述一个像素所在宏块不是帧内编码宏块时MC_flag= 1。
11.根据权利要求10所述的视频解码系统,其特征在于,所述可编程图形处理单元包括画面类型判断单元,被配置为根据所述一个画面的画面类型标记判断所述一个画面是帧画面还是场画面;残差值获取单元,被配置为当所述一个画面是场画面时,根据所述一个像素的纹理坐标从所述一个画面的变长解码、反扫描、反量化、以及反离散余弦变换后的视频数据中获取所述一个像素的亮度/色度残差值。
12.根据权利要求10所述的视频解码系统,其特征在于,所述可编程图形处理单元包括画面类型判断单元,被配置为根据所述一个画面的画面类型标记判断所述一个画面是帧画面还是场画面的装置;编码类型判断单元,被配置为当所述一个画面是帧画面时,根据所述一个像素所在宏块的离散余弦变换编码类型标记判断所述一个像素所在宏块的离散余弦变换编码类型是场离散余弦变换编码还是帧离散余弦变换编码;残差值获取单元,被配置为如果所述一个像素所在宏块的离散余弦变换编码类型为帧离散余弦变换编码,则根据所述一个像素的纹理坐标从所述一个画面的变长解码、反扫描、 反量化、以及反离散余弦变换后的视频数据中获取所述一个像素的亮度/色度残差值,否则根据等式(2)至(4)计算所述一个像素的偏移后的纹理坐标 texRef. s = v_texCoord. s(2)texRef. t = startTexCoord. t+(dety+2. 0*fraction*8. 0)*texDet. t (3) fraction = fract((gl_FragCoord-0. 5)/2. 0). y(4)其中,v_texCoord. s表示所述一个像素的纹理坐标的s分量,texRef. s表示所述一个像素的偏移后的纹理坐标的s分量,texRef. t表示所述一个像素的偏移后的纹理坐标的 t分量,startTexCoord. t表示所述一个像素所在宏块的最左下侧像素的纹理坐标的t分量,dety表示所述一个像素与所述一个像素所在宏块的最下侧像素行之间的距离,texDet. t表示所述一个像素与所述一个像素所在宏块的最左下侧像素之间的纹理坐标距离的t分量,gl_FragC00rd表示所述一个像素的位置坐标,fract ()表示求余函数,fraction表示 fract ((gl_FragCoord-0. 5) /2. 0)的 y 分量;并且根据所述一个像素的偏移后的纹理坐标从所述一个画面的变长解码、反扫描、反量化、 以及反离散余弦变换后的视频数据中获取所述一个像素的亮度/色度残差值。
13.根据权利要求10所述的视频解码方法,其特征在于,所述一个画面的变长解码、反扫描、反量化、以及反离散余弦变换后的视频数据中还包含有所述一个画面中的每个宏块的运动向量,其中在所述一个画面是帧画面的情况下,当所述一个画面的预测模式是帧预测模式时,所述一个画面中的每个宏块相对于前向参考帧的运动向量组成第一向量组,且所述一个画面中的每个宏块相对于后向参考帧的运动向量组成第二向量组,当所述一个画面的预测模式是场预测模式时,所述一个画面的顶场中的每个宏块相对于前向参考帧和后向参考帧的顶场的运动向量分别组成所述第一向量组和所述第二向量组,并且所述一个画面的底场中的每个宏块相对于前向参考帧和后向参考帧的底场的运动向量分别组成第三向量组和第四向量组,当所述一个画面的预测模式是双基预测模式时,所述一个画面的顶场中的每个宏块相对于前向参考帧的顶场和底场的运动向量分别组成所述第一向量组和所述第三向量组,并且所述一个画面的底场中的每个宏块相对于前向参考帧的顶场和底场的运动向量分别组成所述第二向量组和所述第四向量组, 在所述一个画面是场画面的情况下,当所述一个画面的预测模式是场预测模式时,所述一个画面中的每个宏块相对于前向参考帧和后向参考帧的运动向量分别组成所述第一向量组和所述第二向量组,当所述一个画面的预测模式是双基预测模式时,所述一个画面中的每个宏块相对于前向参考帧的顶场和底场的运动向量分别组成所述第一向量组和所述第二向量组,当所述一个画面的预测模式是16X8预测模式时,所述一个画面中的每个宏块的上半部分相对于前向参考帧和后向参考帧的运动向量分别组成所述第一向量组和所述第二向量组,且所述一个画面中的每个宏块的下半部分相对于前向参考帧和后向参考帧的运动向量分别组成所述第三向量组和所述第四向量组。
14.根据权利要求13所述的视频解码系统,其特征在于,所述可编程图形处理单元还包括预测模式判断单元,被配置为根据所述一个画面的预测模式标记判断所述一个画面的预测模式是帧预测、场预测、双基预测还是16X8预测;预测方向判断单元,被配置为根据所述一个画面的预测方向标记判断所述一个画面的预测方向是前向、后向还是双向。
15.根据权利要求14所述的视频解码系统,其特征在于,所述可编程图形处理单元还包括运动向量获取单元,被配置为当所述一个画面的画面类型是帧画面、所述一个画面的预测模式是帧预测模式、且所述一个画面的预测方向为前向/后向时,根据所述一个像素的纹理坐标从所述第一向量组/所述第二向量组中获取所述一个像素相对于前向参考帧/ 后向参考帧的运动向量;运动向量计算单元,被配置为根据等式(5)和(6)计算所述一个像素相对于前向参考帧/后向参考帧的运动向量的整数部分ixy和半整数部分hxy,其中mvl. χ和mvl. y分别表示所述一个像素相对于前向参考帧/后向参考帧的运动向量的χ分量和y分量的绝对值, ixy. χ和ixy. y分别表示所述一个像素相对于前向参考帧/后向参考帧的运动向量的整数部分的χ分量和ι分量,floor ()表示向下取整函数ixy = vec2 (floor (mvl. χ/2. 0),floor (mvl. y/2. 0))(5)hxy = vec2 (mvl. x/2. 0-ixy. x, mvl. y/2. 0-ixy. y)(6)预测值计算单元,被配置为根据等式(7)至(11)计算所述一个像素的亮度/色度预测值,texO至tex3是用纹理坐标表示的所述一个像素周围的四个像素相对于前向参考帧/ 后向参考中贞的运动向量,texture2D (s—reference,texO)、texture2D (s—reference,texl)、 texture2D (s—reference,tex2)、texture2D (s—reference,tex3)分别是根据 texO 至 tex3 获取的位于前向参考帧/后向参考帧上的参考像素的亮度/色度值,Vp_width是所述一个画面的视窗宽度,vp_height是所述一个画面的视窗高度,texShift. χ和texShift. y均为
16.根据权利要求14所述的视频解码系统,其特征在于,所述可编程图形处理单元还包括运动向量获取单元,被配置为当所述一个画面的画面类型是帧画面、所述一个画面的预测模式是场预测模式、且所述一个画面的预测方向为前向/后向时以及当所述一个画面的画面类型是场画面、所述一个画面的预测模式为场预测模式或者16X8预测模式、且所述一个画面的预测方向为前向/后向时,根据所述一个像素的纹理坐标从相应的向量组中获取所述一个像素相对于前向参考帧/后向参考帧的运动向量;偏移量计算单元,被配置为根据所述一个像素所在宏块的参考场选择标记判断是否需要对所述一个像素相对于前向参考帧/后向参考帧的运动向量进行偏移,如果需要,在所述一个像素处于所述一个画面的顶场中的情况下根据等式(12)计算偏移量texShift,在所述一个像素处于所述一个画面的底场中的情况下根据等式(13)计算偏移量texShift, 其中v_teXC00rd. s和v_teXC00rd. t分别表示所述一个像素的纹理坐标的s分量和t分量, vp_height是所述一个画面的视窗高度texShift = vec2 (v_texCoord. s,v_texCoord. t-l/vp—height)(12)texShift = vec2 (v_texCoord. s,v_texCoord. t+l/vp—height)(13)运动向量计算单元,被配置为根据等式(5)和(6)计算所述一个像素相对于前向参考帧/后向参考帧的运动向量的整数部分ixy和半整数部分hxy,其中mvl. χ和mvl. y分别表示所述一个像素相对于前向参考帧/后向参考帧的运动向量的χ分量和y分量的绝对值, ixy. χ和ixy. y分别表示所述一个像素相对于前向参考帧/后向参考帧的运动向量的整数部分的χ分量和ι分量,floor ()表示向下取整函数ixy = vec2 (floor (mvl. χ/2. 0),floor (mvl. y/4. 0))(5)hxy = vec2 (mvl. x/2. 0-ixy. x, mvl. y/4. 0-ixy. y)(6)预测值计算单元,被配置为根据等式(7)至(11)计算所述一个像素的亮度/色度预测值,其中,texO至tex3是用纹理坐标表示的所述一个像素周围的四个像素相对于前向参考中贞 / 后向参考中贞的运云力向量,texture2D (s_reference, texO) > texture2D (s_reference, texl)、texture2D (s_reference, tex2)、texture2D (s_reference, tex3)分别是根据 texO 至tex3获取的位于前向参考帧/后向参考帧上的参考像素的亮度/色度值,vp_width是所述一个画面的视窗宽度,texShift. χ和texShift. y表示所述偏移量的χ和y分量
17.根据权利要求15或16所述的视频解码系统,其特征在于,当所述-方向为双向预测时,所述可编程图形处理单元将根据所述一个像素相对于前向参考帧的运动向量获取的所述一个像素的亮度/色度预测值和根据所述一个像素相对于后向参考帧的运动向量获取的所述一个像素的亮度/色度预测值的平均值作为所述一个像素的最终亮度/色度预测值。
18.根据权利要求14所述的视频解码系统,其特征在于,所述可编程图形处理单元还包括运动向量获取单元,被配置当所述一个画面的画面类型是帧画面、所述一个画面的预测模式是双基预测模式时以及当所述一个画面的画面类型是场画面、所述一个画面的预测模式为双基预测模式时,根据所述一个像素的纹理坐标从相应的向量组中获取所述一个像素相对于前向参考帧的运动向量;偏移量计算单元,被配置为根据所述一个像素所在宏块的参考场选择标记判断是否需要对所述一个像素相对于前向参考帧的运动向量进行偏移,如果需要,则在所述一个像素处于所述一个画面的顶场中的情况下根据等式(12)计算偏移量texShift,在所述一个像素处于所述一个画面的底场中的情况下根据等式(13)计算偏移量texShift,其中v_ texCoord. s和v_texCoord. t分别表示所述一个像素的纹理坐标的s分量和t分量,vp_ height是所述一个画面的视窗高度texShift = vec2(ν—texCoord· s,ν—texCoord· t-l/vp—height)(12)texShift = vec2(v—texCoord· s,v—texCoord· t+l/vp—height)(13)运动向量计算单元,被配置为根据等式(14)和(15)计算所述一个像素相对于前向参考帧的运动向量的整数部分ixy和半整数部分hxy,其中mvl. χ和mvl. y分别表示所述一个像素相对于前向参考帧的运动向量的χ分量和ι分量的绝对值,ixy. χ和ixy. y分别表示所述一个像素相对于前向参考帧的运动向量的整数部分的χ分量和y分量,floor()表示向下取整函数ixy = vec2 (floor (mvl. χ/2. 0),floor (mvl. y/4. 0))(14)hxy = vec2 (mvl. x/2. 0-ixy. x, mvl. y/4. 0-ixy. y)(15)预测值计算单元,被配置为根据等式(16)至(20)计算所述一个像素的亮度/色度预测值,其中,texO至tex3是用纹理坐标表示的所述一个像素周围的四个像素相对于前向参考中贞的运动向量,texture2D (s—reference,texO)、texture2D (s—reference,texl)、texture2D (s_reference, tex2) > texture2D (s_reference, tex3)分别是根据 texO 至 tex3 获取的位于前向参考帧上的参考像素的亮度/色度值,vp—width是所述一个画面的视窗宽度,texShift. χ和texShift. y表示所述偏移量的χ和y分量
全文摘要
公开了一种视频解码方法和系统。该方法包括通过利用中央处理单元对一个画面的编码后的视频数据进行变长解码和反扫描,获取所述一个画面的变长解码和反扫描后的视频数据;以及通过利用可编程图形处理单元对所述一个画面的变长解码和反扫描后的视频数据进行反量化、反离散余弦变换、运动补偿以及色彩空间转换,获取所述一个画面的完成解码后的视频数据。所述一个画面的变长解码、反扫描、反量化、以及反离散余弦变换后的视频数据包含有所述一个画面中的每个像素的亮度残差值和色度残差值,通过根据等式(1)对所述一个画面中的任意一个像素的亮度/色度残差值进行运动补偿来获取所述一个像素的亮度/色度值sum=residual+(1.0-MC_flag)*128.0+MC_flag*prediction(1)。
文档编号H04N7/26GK102223525SQ20101014652
公开日2011年10月19日 申请日期2010年4月13日 优先权日2010年4月13日
发明者洲镰康, 白向晖, 谭志明 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1