CN107454406A - 基于avs+的vr全景视频直播高速解码方法及系统 - Google Patents
基于avs+的vr全景视频直播高速解码方法及系统 Download PDFInfo
- Publication number
- CN107454406A CN107454406A CN201710712655.5A CN201710712655A CN107454406A CN 107454406 A CN107454406 A CN 107454406A CN 201710712655 A CN201710712655 A CN 201710712655A CN 107454406 A CN107454406 A CN 107454406A
- Authority
- CN
- China
- Prior art keywords
- decoding
- avs
- panoramic videos
- live high
- panoramic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/587—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提出一种基于AVS+的VR全景视频直播高速解码方法,包括步骤:S1:设计AVS+VR全景视频解码架构;S2:对AVS+基本熵解码流程做优化调整,使得AVS+兼容AVS解码标准;S3:运用单指令流多数据流技术进行数据并行优化;S4:对整体解码流程的模块进行耗时分析,通过多核多线程并行流水线设计,实现整体解码流程的并行优化;S5:完成对VR全景视频的快速解码。本发明的解码方法及系统,从任务级并行优化的角度,根据数据级并行优化后整体解码流程的模块耗时分析,通过有效的多核多线程并行流水线设计,实现整体解码流程的并行优化,降低单帧图像的解码耗时以达到整体视频序列解码速率的提升。
Description
技术领域
本发明涉及一种视频解码方法,特别涉及一种基于AVS+的VR全景视频直播高速解码方法及系统。
背景技术
AVS系列音视频标准作为我国自主研发的音视频编解码标准,包括系统、视频、音频、数字版权管理等四个主要技术标准和一致性测试等支撑标准,为我国的高清数字广播行业提供了性价比极高的音视频编解码方案。该标准具有我国自主知识产权、较高的编码效率以及较低的实现代价等优点,为我国的信息产业发展需求提供了强有力的技术支撑。
AVS+是我国具备自主知识产权的第二代信源编码标准,具有低码率、低延时等特点。在高清、超高清数字视频高速发展的今天,应用和推广我国自主研制的软件解码器,对加快我国AVS产业化发展具有重要的推动意义。为了推动AVS产业化发展,同时更好地应对用户对VR全景视频实时播放需求以及虚拟现实、增强现实等新兴技术对编解码标准提出的挑战,进一步研究视频软件编解码的优化显得尤为重要。但是,现有技术中的AVS+软件解码器存在解码速率不高,特别是对于VR全景视频解码速度较慢的问题。
发明内容
本发明的目的是为了解决现有技术中的AVS+软件解码器对于VR全景视频解码速度较慢的问题,提出一种基于AVS+的VR全景视频直播高速解码方法及系统。
本发明提出的一种基于AVS+的VR全景视频直播高速解码方法,其特征在于,包括如下步骤:S1:设计AVS+VR全景视频解码架构;S2:对AVS+基本熵解码流程做优化调整,并对解码框架做调整,使得AVS+兼容AVS解码标准;S3:运用单指令流多数据流技术对解码流程中运算密集、访存密集导致解码耗时严重的模块进行数据并行优化;S4:对整体解码流程的模块进行耗时分析,通过多核多线程并行流水线设计,实现整体解码流程的并行优化;S5:完成对VR全景视频的快速解码。
优选地,所述步骤S2中对AVS+基本熵解码流程做优化调整,是指根据码字结构的规律制作查找表,预先存储码流结构与码字长度的对应关系,然后采用k阶指数哥伦布码的解码优化算法进行处理。
优选地,所述k阶指数哥伦布码的解码优化算法,是指首先从位流的当前位置以next_bits(8)的方式预读出8比特码流存入变量num中并判断num是否为0;若num不为0,则根据num值到预先存储好的k阶指数哥伦布码“码字结构-码字长度”的查找表中进行索引,获取该码字结构的码字长度len,计算出CodeNum的值;若num为0,则表示需要继续读入码流直至num不为0,并记录最终的码流偏移量count,计算出CodeNum的值,CodeNum的计算公式如下:
CodeNum=readbits(len+k)-2k,
其中,k表示指数哥伦布的阶数0,1,2…。
优选地,所述步骤S3中的单指令流多数据流技术,是指单指令流多数据流技术中的SSE2指令集技术。
优选地,所述步骤S3中所述的解码流程中运算密集、访存密集导致解码耗时严重的模块是指反变换模块。
优选地,所述步骤S3中,在反变换中引入快速蝶形算法来进一步减少使用的指令数目,降低模块的解码运算量。
优选地,所述步骤S3中,将反变换过程转化为“转置-水平反变换-转置-水平反变换”的过程,通过下述公式得到结果矩阵H,
其中,CoeffMatrix8×8为变换系数矩阵,T8代表8×8反变换矩阵,表示T8的转置矩阵。
优选地,所述步骤S3中,所述变换系数矩阵CoeffMatrix8×8的矩阵转置过程通过利用SSE2指令集的转换指令实现。
优选地,所述步骤S1中的AVS+VR全景视频解码架构,包括四个线程:数据接收线程;位流解析、熵解码线程;反扫描、反量化、反变换,帧内预测、运动补偿、图像重建以及滤波线程;图像输出线程。
优选地,所述步骤S4中实现整体解码流程的并行优化,所述整体解码流程中线程间的数据交互是以帧为单位进行的。
本发明还提出一种基于AVS+的VR全景视频直播高速解码系统,包括存储器,用于存放程序;处理器,运行所述程序,以用于控制所述基于AVS+的VR全景视频直播高速解码系统执行上面任一所述的方法。
本发明还提出一种包含计算机程序的计算机可读存储介质,所述计算机程序可被操作来使计算机执行上面任一所述的方法。
与现有技术相比,本发明的有益效果有:
本发明的基于AVS+的VR全景视频直播高速解码方法及系统,从数据级并行优化的角度出发,对解码流程中运算密集、访存密集导致解码耗时严重的模块运用单指令流多数据流技术进行数据并行优化。从任务级并行优化的角度出发,根据数据级并行优化后整体解码流程的模块耗时分析,通过有效的多核多线程并行流水线设计,实现整体解码流程的并行优化,降低单帧图像的解码耗时以达到整体视频序列解码速率的提升。
附图说明
图1为本发明基于AVS+的VR全景视频解码方法整体流程图。
图2为本发明基于AVS+的VR全景视频解码架构示意图。
图3为本发明基于AVS+的VR全景视频直播高速解码流程示意图。
图4为本发明快速蝶形算法实现水平反变换的流程示意图。
图5为本发明帧级多线程并行优化的流程示意图。
图6(a)为本发明原始VR全景视频播放图。
图6(b)为通过本发明的解码方法解码后的VR全景视频播放图。
具体实施方式
下面结合具体实施方式并对照附图对本发明做进一步详细说明。其中相同的附图标记表示相同的部件,除非另外特别说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
本发明提供一种基于AVS+的VR全景视频直播高速解码方法,从数据级并行优化的角度出发,对解码流程中运算密集、访存密集导致解码耗时严重的模块运用单指令流多数据流技术进行数据并行优化。从任务级并行优化的角度出发,根据数据级并行优化后整体解码流程的模块耗时分析,通过有效的多核多线程并行流水线设计,实现整体解码流程的并行优化,降低单帧图像的解码耗时以达到整体视频序列解码速率的提升。
本发明的基于AVS+的VR全景视频直播高速解码方法,具体实现步骤如图1所示,包括以下步骤:S1:设计AVS+VR全景视频解码架构;S2:对AVS+基本熵解码流程做优化调整,并对解码框架做调整,使得AVS+兼容AVS解码标准;S3:运用单指令流多数据流技术对解码流程中运算密集、访存密集导致解码耗时严重的模块进行数据并行优化;S4:对整体解码流程的模块进行耗时分析,通过多核多线程并行流水线设计,实现整体解码流程的并行优化;S5:完成对VR全景视频的快速解码。
其中,在步骤S1中,设计AVS+VR全景视频解码架构。如图2所示,基于对AVS+编码位流结构各层次语法结构的理解,设计AVS+VR全景视频解码架构,包括4个线程,依次为线程1:数据接收;线程2:位流解析、熵解码;线程3:反扫描、反量化、反变换、帧内预测、运动补偿、图像重建和环路滤波;线程4:视频输出。
解码流程如图3所示,包括:(1)位流解析:AVS+VR全景视频直播高速解码首先从NAL层读取压缩编码后的视频码流文件,逐比特进行解析直至找到正确的视频序列起始码;(2)熵解码主要从宏块信息头的相关语法元素值,经过扫描得到游程编码后的变换系数及运动矢量信息;(3)反扫描、反量化、反变换:对熵解码获得的游程编码后的变换系数即图像数据进行解码,恢复出预测编码后的残差数据,首先对变换系数进行反游程编码,然后进行反扫描,反量化获得变换残差,最后进行整数余弦反变换获得图像的残差数据;(4)帧内预测:利用熵解码得到的运动矢量信息,从而去除相邻像素之间或者相邻像素块之间的高度相关性,消除图像中存在的信息冗余;(5)运动补偿:结合熵解码获得的宏块头的相关信息、运动矢量信息以及已重建出来的参考图像,通过亚像素插值过程获得图像的预测值;(6)重建:图像重建过程将运动补偿获得预测图像与反扫描、反量化、反变换过程获得的图像残差数据进行叠加处理,恢复出原图像帧;(7)环路滤波:对重建图像以宏块为单位进行边缘滤波,去除方块效应,输出解码重构后的视频图像,。
在步骤S2中,对AVS+基本熵解码流程做优化调整,并对解码框架做调整,使得AVS+兼容AVS解码标准。
k阶指数哥伦布解码过程需要逐比特读入码流并进行0、1判断直至找到非零位,内存访问密集,效率极低。k阶哥伦布码的码字结构具有一定的规律性,以0阶指数哥伦布码为例:由(n+1)个“0”+1个“1”以及(n+1)个"xi”(i依次为n,n-1,...0)。可以根据码字结构的规律制作查找表,预先存储码流结构与码字长度的对应关系,然后采用k阶指数哥伦布码的解码优化算法对AVS+基本熵解码流程做优化调整。
k阶指数哥伦布码的解码优化算法如下:首先从位流的当前位置以next_bits(8)的方式预读出8比特码流,存入变量num中并判断变量num是否为0;若变量num不为0,则根据变量num值到预先存储好的k阶指数哥伦布码“码字结构-码字长度”的查找表中进行索引,获取该码字结构的码字长度len,计算出编码序号CodeNum的值;若变量num为0,则表示需要继续读入码流直至变量num不为0,并记录最终的码流偏移量count,计算出编码序号CodeNum的值。编码序号CodeNum的计算公式如下:
CodeNum=readbits(len+k)-2k,k表示指数哥伦布的阶数0,1,2……(1)
AVS+基本熵解码流程优化后,还需对代码结构框架做调整,AVS+基本熵解码流程优化后也即使得AVS+兼容AVS解码标准。
在步骤S3中,运用单指令流多数据流技术对解码流程中运算密集、访存密集导致解码耗时严重的模块进行数据并行优化。
具体地,运用单指令流多数据流技术(Single Instruction Multiple Data,SIMD)中的SSE2(128位寄存器)指令集对解码流程中运算密集、访存密集导致解码耗时严重的模块进行数据并行优化。在解码过程中,反变换模块属于运算密集、访问密集型模块。
AVS+标准中规定的反变换过程是以8×8的变换系数矩阵CoeffMatrix8×8为单位,通过基于8×8块的整数余弦反变换获得残差矩阵ResiduelMatrix。具体变换过程如下所示:
S31:首先根据反变换矩阵T8,对变换系数矩阵CoeffMatrix8×8进行水平反变换得到初始矩阵H':
其中T8代表8×8反变换矩阵,表示T8的转置矩阵,反变换矩阵T8的转置T8 T为:
S32:然后对初始矩阵H'的每个矩阵点h'ij进行如下计算,求得中间结果矩阵H”中的每个矩阵点h″ij:
h″ij=Clip3(-2n+7,2n+7-1,h′ij+4)>>3 i,j=0~7 (4)
式中Clip3(min,max,x)表示若x<min,则令x=min;若x>max,则令x=max。其中n代表像素样本的精度。
S33:进一步对中间结果矩阵H”进行垂直反变换得到结果矩阵H:
H=T8×H” (5)
其中,结果矩阵H表示对中间结果矩阵H”进行垂直方向反变换后获得的8×8矩阵。
最后通过对结果矩阵H中的每个矩阵点hij进行饱和操作,获取残差样值矩阵ResiduelMatrix中的每个矩阵点rij:
rij=Clip3(-2n+7,2n+7-1,hij+26)>>7 i,j=0~7 (6)
运用单指令流多数据流技术(Single Instruction Multiple Data,SIMD)中的SSE2(128位寄存器)指令集对解码流程中运算密集、访存密集导致解码耗时严重的模块进行数据并行优化。SSE2指令集即为单指令流多数据流技术,在SSE2指令集并行优化设计中引入快速蝶形算法来进一步减少使用的指令数目,降低模块的解码运算量。图4展示了快速蝶形算法在水平反变换(CoeffMatrix8x8×T8 T)的具体设计,运用设计的快速蝶形算法可以高效地实现反变换矩阵T8的转置矩阵与变换系数矩阵CoeffMatrix8x8行变换过程。其中in0~in7表示的是变换系数矩阵CoeffMatrix8x8的每一行,b0~b7为运算过程中中间矩阵的每一行,out0~out7表示水平反变换后矩阵的每一行。对8×8二维变换系数矩阵直接做运算相对复杂,转化为一维蝶形运算后,计算复杂度大大降低,计算机做运算更加便捷,从而可以快速获得水平方向上的反变换结果。
为了充分实现数据的并行处理,避免垂直反变换过程(列处理)由于内存读取不连续(矩阵在内存中的存储形式为行存储)导致的变换系数矩阵列变换的低效性,可以直接将反变换过程的实现进行如下的变换得到结果矩阵H:
在公式(7)中,首先对变换系数矩阵进行转置,然后与反变换矩阵的转置矩阵进行一次水平反变换;对水平反变换后的矩阵首先进行矩阵转置,然后与再进行一次水平反变换即可完成反变换过程,即将反变换过程转化为“转置-水平反变换-转置-水平反变换”的过程,其中变换系数矩阵的转置过程可以利用SSE2指令级的转换指令高效实现。通过多条SSE2指令实现亮度块的一行像素的插值过程,大大降低运算复杂度,减少每个像素单独插值过程中对参考像素的内存访问获取冗余。
其中,需要说明的是,通过公式(2)-(5)获得的结果矩阵H,与通过公式(7)获得的结果矩阵H是一样的,公式(7)只是比公式(2)-(5)多做了一个转置,以方便指令集并行处理。本发明基于AVS+的VR全景视频直播高速解码方法,在公式(2)水平反变换中引入快速蝶形算法减少指令数目,提高运算速度,对结果矩阵H的变换公式(7)做SSE2指令集并行优化设计。
在公式(7)中,通过对变换系数矩阵转置矩阵CoeffMatrix8x8T的行运用SSE2的指令集进行并行加(PADDW)、减(PSUBW)和左移(PSLLW)运算,可以快速获取矩阵的行。插值一个亮度块前,首先根据亮度块左上角像素点的坐标进行图像边缘判定,若该亮度块在图像内部,则从内存中读入该亮度块的参考图像对应位置的参考像素块,然后通过SSE2指令集进行亮度插值;若该亮度块位于图像边缘,则首先进行参考图像边界溢出判别,然后再读入参考像素块进行插值运算。对色度和亮度进行指令集优化,对包含整数像素插值、1/2像素插值,1/4像素插值过程的15个分支进行SSE2指令集优化。
另外,公式(7)的展开也包括水平反变换,公式(7)相当于对变换系数矩阵的转置矩阵CoeffMatrix8x8T做水平反变换,因此,在公式(7)中,在SSE2指令集并行优化设计中也同样引入快速蝶形算法来进一步减少使用的指令数目,降低模块的解码运算量。
在步骤S4中,结合第三步数据级并行优化后整体解码流程的模块耗时分析,通过有效的多核多线程并行流水线设计,实现整体解码流程的并行优化。
通过步骤S3,运用单指令流多数据流技术SIMD中的SSE2指令集对解码流程中运算密集、访存密集导致解码耗时严重的模块进行数据并行优化后,利用Visual Studio提供的“性能与诊断”分析工具对当前软件解码器进行解码耗时分析测试。位流解析和熵解码模块解码耗时占51%;反扫描、反量化、反变换模块解码耗时占11%;帧内、帧间运动补偿模块解码耗时占24%;去块滤波、图像重建模块解码耗时占14%。
多核多线程技术的核心问题在于任务调度,进行基于多核多线程的设计时,从并行效果与线程数量的关系、数据竞争问题、锁竞争、线程安全函数和高效的数据结构设计五个方面对多核多线程开发性能进行了系统全面的研究。同时,基于先入先出队列实现跨线程交互数据的结构设计,并利用临界区进行线程间的互斥保护以及信号量进行交互确保线程安全高效并行。
首先基于宏块进行任务级的多线程并行优化设计,该设计实现了解码流程的多线程并行优化,提高了解码速率,但是并未达到解码速率的倍级提升。主要是由于解码一帧图像的每一个宏块,都存在线程间数据的交互以及处理等待。对于高清1920×1080分辨率视频解码而言,单帧图像具有8100个宏块,由此可见,宏块级线程并行优化,会导致过为频繁的线程交互和线程等待,降低线程并行处理效率。
进一步从帧级角度考虑多线程流水线设计,如图5所示,以帧为单位而不是宏块为单位进行线程间数据的交互。对于VR全景视频序列而言,如图5所示,首先进行线程1,即读入NAL数据,然后进行线程2位流解析和熵解码帧图像,如果线程2完成当前帧的熵解码,则一方面会开始新一帧的视频解码,同时另一方面会将帧图像数据传递给下一线程进行后续模块的解码工作,然后线程3会继续进行帧内解码、反扫描、反量化、反变换、帧内预测、运动补偿、图像重建以及滤波等,如果线程2没有完成当前帧的熵解码,则会检测线程3处理的帧编号是否小于线程2正在处理的当前帧,如果是,则线程3继续处理帧解码,如果不是,则线程3继续等待。如此进行线程间帧数据传递,避免了线程间的频繁的数据交互过程,进一步提高了线程的并行执行效率。
S5:通过上述的解码架构、指令集和解码并行优化方案等设计的AVS+VR全景视频直播高速解码方法完成对VR全景视频的快速解码。
在测试平台信息为:CPU Intel Core i3-790,主频3.1GHz,RAM 3.16GHz,Win10操作系统上进行测试,并与未做优化的标准参考软件做对比,测试结果如表1所示。
表1 解码优化性能测试表
在表1中,从右边数第三列的“帧率”是指通过本发明的AVS+VR全景视频直播高速解码方法(简称本发明的解码方法)获得的帧率,从右边数第三列的“原始帧率”是指通过未做优化的标准参考软件进行解码后获得的帧率。从表1中可以看到,本发明的解码方法,与现有技术相比,对VR全景视频的帧率提升可达170%-206%,可见效率提升非常显著。另外,通过本发明的解码方法进行解码后的解码效果,如图6(a)和6(b)所示,图6(a)为原始VR全景视频播放图,图6(b)为通过本发明的解码方法解码后的效果图。由于并没有看到两者的区别,由此可知采用本发明的解码方法,解码的视频质量并没有下降。
需要指出,根据实施的需要,可将本发明中描述的各个步骤拆分为更多步骤,也可将两个或多个步骤或者步骤的部分操作组合成新的步骤,以实现本发明的目的。
上述根据本发明的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的处理方法。此外,当通用计算机访问用于实现在此示出的处理的代码时,代码的执行将通用计算机转换为用于执行在此示出的处理的专用计算机。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。
Claims (10)
1.一种基于AVS+的VR全景视频直播高速解码方法,其特征在于,包括如下步骤:
S1:设计AVS+VR全景视频解码架构;
S2:对AVS+基本熵解码流程做优化调整,并对解码框架做调整,使得AVS+兼容AVS解码标准;
S3:运用单指令流多数据流技术对解码流程中运算密集、访存密集导致解码耗时严重的模块进行数据并行优化;
S4:对整体解码流程的模块进行耗时分析,通过多核多线程并行流水线设计,实现整体解码流程的并行优化;
S5:完成对VR全景视频的快速解码。
2.根据权利要求1所述的基于AVS+的VR全景视频直播高速解码方法,其特征在于,所述步骤S2中对AVS+基本熵解码流程做优化调整,是指根据码字结构的规律制作查找表,预先存储码流结构与码字长度的对应关系,然后采用k阶指数哥伦布码的解码优化算法进行处理。
3.根据权利要求2所述的基于AVS+的VR全景视频直播高速解码方法,其特征在于,所述k阶指数哥伦布码的解码优化算法,是指首先从位流的当前位置以next_bits(8)的方式预读出8比特码流存入变量num中并判断num是否为0;若num不为0,则根据num值到预先存储好的k阶指数哥伦布码“码字结构-码字长度”的查找表中进行索引,获取该码字结构的码字长度len,计算出CodeNum的值;若num为0,则表示需要继续读入码流直至num不为0,并记录最终的码流偏移量count,计算出CodeNum的值,CodeNum的计算公式如下:
CodeNum=readbits(len+k)-2k,
其中,k表示指数哥伦布的阶数0,1,2…。
4.根据权利要求1所述的一种基于AVS+的VR全景视频直播高速解码方法,其特征在于,所述步骤S3中,所述的解码流程中运算密集、访存密集导致解码耗时严重的模块是指反变换模块,在反变换中引入快速蝶形算法来进一步减少使用的指令数目,降低模块的解码运算量。
5.根据权利要求1所述的一种基于AVS+的VR全景视频直播高速解码方法,其特征在于,所述步骤S3中,所述的解码流程中运算密集、访存密集导致解码耗时严重的模块是指反变换模块,将反变换过程转化为“转置-水平反变换-转置-水平反变换”的过程,通过下述公式得到结果矩阵H,
<mrow>
<mi>H</mi>
<mo>=</mo>
<msup>
<mrow>
<mo>(</mo>
<mi>C</mi>
<mi>o</mi>
<mi>e</mi>
<mi>f</mi>
<mi>f</mi>
<mi>M</mi>
<mi>a</mi>
<mi>t</mi>
<mi>r</mi>
<mi>i</mi>
<mi>x</mi>
<mn>8</mn>
<mi>x</mi>
<msup>
<mn>8</mn>
<mi>T</mi>
</msup>
<mo>&times;</mo>
<msubsup>
<mi>T</mi>
<mn>8</mn>
<mi>T</mi>
</msubsup>
<mo>)</mo>
</mrow>
<mi>T</mi>
</msup>
<mo>&times;</mo>
<msubsup>
<mi>T</mi>
<mn>8</mn>
<mi>T</mi>
</msubsup>
</mrow>
其中,CoeffMatrix8×8为变换系数矩阵,T8代表8×8反变换矩阵,表示T8的转置矩阵。
6.根据权利要求5所述的一种基于AVS+的VR全景视频直播高速解码方法,其特征在于,所述步骤S3中,所述变换系数矩阵CoeffMatrix8×8的矩阵转置过程通过利用SSE2指令集的转换指令实现。
7.根据权利要求1所述的一种基于AVS+的VR全景视频直播高速解码方法,其特征在于,所述步骤S1中的AVS+VR全景视频解码架构,包括四个线程:数据接收线程;位流解析、熵解码线程;反扫描、反量化、反变换,帧内预测、运动补偿、图像重建以及滤波线程;图像输出线程。
8.根据权利要求7中所述的一种基于AVS+的VR全景视频直播高速解码方法,其特征在于,所述步骤S4中实现整体解码流程的并行优化,所述整体解码流程中线程间的数据交互是以帧为单位进行的。
9.一种基于AVS+的VR全景视频直播高速解码系统,其特征在于,包括存储器,用于存放程序;处理器,运行所述程序,以用于控制所述基于AVS+的VR全景视频直播高速解码系统执行如权利要求1-8任一所述的方法。
10.一种包含计算机程序的计算机可读存储介质,所述计算机程序可被操作来使计算机执行如权利要求1-8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710712655.5A CN107454406A (zh) | 2017-08-18 | 2017-08-18 | 基于avs+的vr全景视频直播高速解码方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710712655.5A CN107454406A (zh) | 2017-08-18 | 2017-08-18 | 基于avs+的vr全景视频直播高速解码方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107454406A true CN107454406A (zh) | 2017-12-08 |
Family
ID=60492548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710712655.5A Pending CN107454406A (zh) | 2017-08-18 | 2017-08-18 | 基于avs+的vr全景视频直播高速解码方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107454406A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196882A (zh) * | 2017-12-29 | 2018-06-22 | 普强信息技术(北京)有限公司 | 一种针对神经网络计算的加速方法及装置 |
CN110337002A (zh) * | 2019-08-15 | 2019-10-15 | 南京邮电大学 | 一种在多核处理器平台上hevc多层次高效并行解码算法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080218593A1 (en) * | 2007-03-08 | 2008-09-11 | Genesys Logic, Inc. | Multi-streaming web camera controlling system and controlling methodology of the same |
CN101640791A (zh) * | 2009-03-10 | 2010-02-03 | 青岛海信信芯科技有限公司 | 一种解码方法、装置和解码器 |
CN101707484A (zh) * | 2009-06-18 | 2010-05-12 | 杭州高特信息技术有限公司 | 一种适合硬件实现的快速指数哥伦布码解码方法 |
CN102244781A (zh) * | 2011-03-31 | 2011-11-16 | 苏州汉辰数字多媒体有限公司 | 一种多核高速dsp平台的avs视频编码器 |
CN106454354A (zh) * | 2016-09-07 | 2017-02-22 | 中山大学 | 一种avs2并行编码处理系统及方法 |
-
2017
- 2017-08-18 CN CN201710712655.5A patent/CN107454406A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080218593A1 (en) * | 2007-03-08 | 2008-09-11 | Genesys Logic, Inc. | Multi-streaming web camera controlling system and controlling methodology of the same |
CN101640791A (zh) * | 2009-03-10 | 2010-02-03 | 青岛海信信芯科技有限公司 | 一种解码方法、装置和解码器 |
CN101707484A (zh) * | 2009-06-18 | 2010-05-12 | 杭州高特信息技术有限公司 | 一种适合硬件实现的快速指数哥伦布码解码方法 |
CN102244781A (zh) * | 2011-03-31 | 2011-11-16 | 苏州汉辰数字多媒体有限公司 | 一种多核高速dsp平台的avs视频编码器 |
CN106454354A (zh) * | 2016-09-07 | 2017-02-22 | 中山大学 | 一种avs2并行编码处理系统及方法 |
Non-Patent Citations (1)
Title |
---|
蒋骁辰: "基于AVS+实时编码的多核并行视频编码算法", 《电子与信息学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196882A (zh) * | 2017-12-29 | 2018-06-22 | 普强信息技术(北京)有限公司 | 一种针对神经网络计算的加速方法及装置 |
CN110337002A (zh) * | 2019-08-15 | 2019-10-15 | 南京邮电大学 | 一种在多核处理器平台上hevc多层次高效并行解码算法 |
CN110337002B (zh) * | 2019-08-15 | 2022-03-29 | 南京邮电大学 | 一种在多核处理器平台上hevc多层次并行解码方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4182442B2 (ja) | 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体 | |
US8213518B1 (en) | Multi-threaded streaming data decoding | |
Cheung et al. | Video coding on multicore graphics processors | |
CN102547296B (zh) | 移动估计加速电路、移动估计方法及环路滤波加速电路 | |
CN103918273B (zh) | 确定用于变换系数的二进制码字的方法 | |
WO2008067500A2 (en) | Parallel deblocking filter for h.264 video codec | |
KR101710001B1 (ko) | 그래픽 프로세스 유닛 기반 jpeg2000 인코딩/디코딩 장치 및 방법 | |
CN101616323B (zh) | 对视频编码数据流进行解码的系统和方法 | |
CN102497550A (zh) | H.264编码中运动补偿插值的并行加速方法及装置 | |
KR20130140066A (ko) | 비디오 코딩 방법 및 장치 | |
CN107046645A (zh) | 图像编解码方法及装置 | |
CN106921863A (zh) | 使用多个解码器核心解码视频比特流的方法、装置以及处理器 | |
CN109495743A (zh) | 一种基于异构多处理平台的并行化视频编码方法 | |
CN101188761A (zh) | Avs标准中基于并行处理来优化dct快速算法的方法 | |
CN107454406A (zh) | 基于avs+的vr全景视频直播高速解码方法及系统 | |
CN1589028A (zh) | 基于像素流水的帧内预测装置及预测方法 | |
Cheung et al. | Highly parallel rate-distortion optimized intra-mode decision on multicore graphics processors | |
Jiang et al. | Highly paralleled low-cost embedded HEVC video encoder on TI KeyStone multicore DSP | |
De Souza et al. | OpenCL parallelization of the HEVC de-quantization and inverse transform for heterogeneous platforms | |
Wu et al. | A parallel H. 264 encoder with CUDA: mapping and evaluation | |
CN103780914B (zh) | 环路滤波加速电路及环路滤波方法 | |
CN113259675B (zh) | 一种超高清晰度视频图像并行处理方法 | |
CN103248885B (zh) | 帧内图像预测编解码方法及视频编解码器 | |
CN112437308B (zh) | 一种WebP编码方法及装置 | |
CN102090064A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171208 |
|
RJ01 | Rejection of invention patent application after publication |