技术领域
[0001] 本
发明涉及通信领域,具体涉及到一种无线视频传输方法。
背景技术
[0002] 在无线视频数据传输的过程中,通常需要将信源数据通过编码转换为适合无线信道传输的形式。新一代的国际
视频编码标准H.264/AVC更强的视频压缩能
力,使得网络能够在相同的带宽占用条件下传输比以往的编码标准
质量更高的视频数据。同时随着3G网络的广泛应用以及LTE的迅速兴起,无线通信带宽的增加使得视频业务在无线移动网络中的应用越来越广泛,但由于无线传输环境具有不稳定,容易出错的特点,使得高质量大码率的视频在无线移动环境下可靠传输需要更高的要求。
[0003] 目前,传统的无线视频传输优化主要采用基于联合信源信道编码的视频传输优化和基于跨层参数配置的视频传输优化。其中,跨层优化方法主要解决现有通用分层网络协议架构所造成的网络资源分配优化中的效率较低问题。针对无线视频传输的跨层优化方法是对联合信源信道编码视频传输优化方法的进一步延伸,可以实现适配无线传输环境的应用层实时视频编码。统一联合优化应用层视频编码和网络底层的视频传输并不是一项简单的工作。由于涉及到不同层位的资源分配,并通过全局目标进行优化,其计算复杂度要求很高,很难满足实际实时应用的需求。特别是值得注意的是,尽管结合应用层视频编码和物理层自适应调制编码的方法可以有效的从信源和信道结合的
角度,联合分配传输错误控制的强度,由于要多次对同一视频内容重复编码,并基于递归的方式逐
像素估计端到端视频失真,才能找到最优的编码量化参数和自适应调制编码模式,其计算相当复杂。
发明内容
[0004] 有鉴于此,本发明的目的是提供一种无线视频传输方法,以解决
现有技术的视频数据传输方法中,寻找最优编码量化参数和自适应调制编码模式的计算非常复杂的问题,降低计算复杂度。
[0005] 为实现上述目的,本发明提供了一种无线视频传输方法,该方法包括[0006] 设置初始编码量化参数范围;
[0007] 依据初始编码量化参数范围,估计率失真模型,依据该模型缩小量化参数范围;
[0008] 在缩小的量化参数范围中,寻求最佳编码量化参数和最佳自适应调制编码模式;
[0009] 依照最佳编码量化参数对视频数据编码,以最佳自适应调制编码模式配置物理层,以进行当前条带数据包传输。
[0010] 由于采用了以上的技术特征,使得本发明相比于现有技术,具有如下的优点和积极效果:
[0011] 本发明提供了一种低计算复杂度的跨层优化无线视频传输方法,该方法利用多通道视频编码的率失真特性,通过率失真估计和编码
块模式决策信息重用,降低跨层优化无线视频传输的计算复杂度,从而实现满足实际应用需求的低计算复杂度的跨层优化视频传输。
附图说明
[0012] 图1为依据本发明提供的一种无线视频传输方法
实施例的总
流程图;
[0013] 图2A-2B为图1中步骤S102的详细流程图;
[0014] 图3A-图3D为图1中步骤S103的详细流程图;
[0015] 图4为模式重用编码的示意图。
具体实施方式
[0016] 本发明的核心思想在于:通过率失真估计和编码块模式决策信息重用,降低无线视频跨层优化传输的计算复杂度。具体说,通过跨层优化
服务器端对同一个编码条带进行两个不同量化参数的视频编码,然后计算率失真模型。在每个自适应调制编码模式(AMC)下,根据丢包率的大小判断是否需要跨层优化端到端失真估计。如果不需要,计算满足最大传输时延的视频编码量化参数即可。如果需要跨层优化端到端失真估计,则根据率失真模型得到的量化参数进行进行一定范围的缩放。在该量化参数范围内,通过多次编码全搜索的方式找到最小的端到端失真对应的最优的编码量化参数和自适应调制编码模式。在全搜索编码中,对于量化参数相近的两次不同的编码,后一次编码采用块模式重用的方式,节省编码中块模式决策的复杂度。
[0017] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0018] 如图1所示,其为本发明提供的无线视频传输方法的流程图。由图可见,本发明提供的方法包括:
[0019] 在步骤S101中,设置初始编码量化参数范围;
[0020] 在步骤S102中,依据初始编码量化参数范围,估计率失真模型,依据该模型缩小量化参数范围;
[0021] 在步骤S103中,在缩小的量化参数范围中,寻求最佳编码量化参数和最佳自适应调制编码模式;
[0022] 在步骤S104中,依照最佳编码量化参数对视频数据编码,以最佳自适应调制编码模式配置物理层,以进行当前条带数据包传输。
[0023] 具体地,以下结合附图和表格对每个步骤进行更详尽的叙述。
[0024] 在步骤S101中,根据通常应用中最低和最高的码率需求,首先通过编码配置文件设置最大和最小的编码量化参数范围QP_min和QP_max,例如QP_min=10和QP_max=45。由于视频前后
帧之间具有一定的内容相关性,特别是运动信息较少的图像背景区域。对于inter帧编码,其前后帧之间的编码率失真关系非常接近,所以在进行量化参数QP选择时,可以选择前一帧对应
位置的QP作为当前帧编码区域的QP,也就是选择上一帧中同样位置的编码块an-1的QP作为当前编码块an的QP_min,这样可以缩减一下QP的范围。
[0025] 设置最优的编码量化参数BestQP和最优的自适应编码调制方式BestAMC为0。根据信道反馈的
信噪比SNR,计算所有候选自适应调制编码AMC(AMCi|i=1,2...I)模式对应的物理层误比特率BER(BERj|j=1,2,...J),同时计算每个AMC对应的满足最大传输时延的码率上限限制R_limit(R_limitk|k=1,2,...K)。
[0026] 物理层候选AMC模式如下表1所示:
[0027]
[0028] 表1
[0029] 表1中,AMC Index表示AMC模式的索引,从1到6分别对应一种不同的调制和编码方式;Modulation表示调
制模式;Coding Rate表示信道编码模式,而Rm表示以每个符号多少个比特表示的传输速率;系数am和bm为计算第m个AMC模式对应的误比特率模型所需要的模型系数。
[0030] 所有候选AMC模式对应的物理层误比特率BER(BERj|j=1,2,...J),可以根据SNR的值γ按如下公式计算,
[0031]
[0032] 其中系数aj和bj为计算第j个AMC模式对应的误比特率时需要的模型系数,其取值参考AMC模式表,这里j是AMC模式index。
[0033] 每个AMC模式对应的满足最大传输时延的码率上限限制R_limit(R_limitk|k=1,2,...K)可以通过如下计算,
[0034] R_limitk=Tmax·Rk·270 (2)
[0035] 其中,Tmax为视频传输一帧所能容忍的最大传输时延,此处一般设为35毫秒;Rk为第k个AMC对应的传输速率,以每个符号多少个比特表示,其取值参考AMC模式表。
[0036] 请参考图2,其为图1中步骤S102的具体流程图。由图可见,步骤S102进一步包含了以下的具体实施方式。
[0037] 在步骤S201中,设置QP=QP_min进行编码,并记录对应QP_min的码率rate_max和编码失真信息。
[0038] 在步骤S202中,判断rate_max是否大于最大AMC模式的码率上限限制max{R_limitk|k=1,2,...K},如果rate_max大于max{R_limitk|k=1,2,...K},则执行步骤S206;否则执行步骤S203。
[0039] 在步骤S203中,根据当前QP,也就是QP_min的编码码率,计算最大AMC对应的丢包率ρmax AMC;
[0040] 在步骤S204中,如果ρmax AMC大于等于0.001则执行步骤S205,否则请参考图2B,在ρmax AMC小于0.001的情况下,选择当前QP(也就是QP_min)为BestQP,最大的AMC模式作为BestAMC,执行最后的步骤S104。
[0041] 这是因为ρj(γ)为丢包率,其按照如下公式 计算;其中,S0表示传输数据包的字节数,j表示AMC模式索引,γ表示接收的信噪比SNR。对于丢包率,如果丢包率小于0.001,一般视频失真很小,肉眼很难感觉到视频的失真,所以在丢包率小于0.001的时候没必要进行复杂的端到端失真估计计算,而直接通过视频编码的失真来判断最优的编码QP和AMC模式,达到了降低计算复杂度的效果。
[0042] 那么在ρmax AMC大于等于0.001的情况下,在步骤S205中,计算当前QP(也就是QP_min)编码所对应的满足的AMC模式的端到端失真,并把其中最小的失真赋值给min_distortion。其中,端到端失真计算采用逐像素递归的方法进行估计。
[0043] 在步骤S206中,将当前量化参数设置为初始量化范围中的最大值。用QP=QP_max进行编码,记录rate_min(QP_max),以及相应的编码码率与失真信息,分别计算其得到的端到端失真D(Dm|m=1,2,...M)。
[0044] 在步骤S207中,根据步骤S205和S206得到的码率和失真信息进行率失真模型估计,即得到:
[0045] 中的a和b,其中R为编码的码率信息,Qstep为QP对应的量化步长,a和b为常数。根据QP_min和QP_max两次编码产生的R和Qstep可以计算得到a和b。
[0046] 在步骤S208中,根据最大和最小AMC模式对应的R_limitK和R_limit1,结合在步骤S207中得到的率失真模型,计算最大AMC模式对应的期望QP_expl和最小AMC模式对应的期望QP_exp1,以缩小编码量化参数范围,设置QP_min2=QP_expl,QP_max2=QP_exp1+1。
[0047] 例如当R_limit1=10,在步骤S207中,得到的率失真模型为 则可以得到Qstep为32,根据Qstep=2(QP-4)/6得到QP_exp1为34。
[0048] 类似的,根据R_limitK=15也可以算出QP_expl=28。这样估计出的QP范围[28,35],和设定固定QP范围[10,45]全搜索编码相比,可以大大缩减QP范围,进而减少编码次数和端到端失真计算的次数,也就降低了跨层优化计算的复杂度。
[0049] 以下参考图3A-图3D,其为对缩小后的量化参数范围进一步优化寻找最佳的量化编码参数和最佳AMC模式的详细流程图。
[0050] 首先,设置当前QP为QP_min2,计算最大AMC模式对应的丢包率ρK;
[0051] 如图3B,如果ρK小于0.001,则设置Best_QP等于当前QP,也就是缩小范围后的量化参数最小值QP_min2,BestAMC为其所对应的AMC,执行最后步骤S104;否则执行下一步。
[0052] 设置当前QP=QP_max2,并编码,计算满足AMC模式码率限制的对应的端到端失真D(Dm|m=1,2,...MM)。MM为满足时延码率限制的AMC模式个数。设置最小端到端失真值min_distortion为计算出的端到端失真中的最小值min{Dm|m=1,2,...MM}。假定QP_max2为Best_QP,对应AMC为BestAMC。
[0053] 将当前的QP与QP_min2比较,当前QP满足QP>QP_min2,则执行下一步骤,否则将当前QP确定为Best_QP,BestAMC为其所对应的AMC,执行步骤S104。
[0054] 若当前QP>QP_min2,则设置当前QP减去1,重新编码。如图3D所示,如果上一个编码QP没有采用模式重用编码,则并根据上一个QP编码的码流信息,进行块模式重用(同时运动信息重用)的编码;否则采用正常RDO模式决策编码。
[0055] 编码完成后计算满足AMC模式码率限制的对应的失真D(Dm|m=1,2,...MM)。如果在前一QP中得出的min_distortion大于当前QP得出的min{Dm|m=1,2,...MM},则设置min_distortion等于min{Dm|m=1,2,...MM},更新端到端失真最小值min_distortion,同时更新Best_QP和BestAMC。之后返回将当前的QP与QP_min2比较的步骤,当前QP满足QP>=QP_min2,则执行下一步骤,否则将当前QP确定为Best_QP,BestAMC为其所对应的AMC,执行步骤S104。
[0056] 如果在前一QP中得出的min_distortion不大于当前QP得出的min{Dm|m=1,2,...MM},则不需要更新端到端失真最小值min_distortion,也不更改假定的Best_QP和BestAMC,直接返回将当前的QP与QP_min2比较的步骤,当前QP满足QP>=QP_min2,则执行下一步骤,否则将当前QP设置为Best_QP,BestAMC为其所对应的AMC,执行步骤S104。
[0057] 反复执行上述的步骤,直到当前的QP满足小于或等于QP_min2的条件,其寻求具有最小端到端失真的QP数值,将此具备最小端到端失真的QP设置为Best_QP,BestAMC为其所对应的AMC,执行步骤S104。
[0058] 例如,若在反复执行上述步骤的过程中,发现当前QP编码计算得到的端到端失真比QP_min2小,且为大于QP_min2的QP值中端到端失真最小的,那么此QP值选为Best_QP,BestAMC为其所对应的AMC,执行步骤S104。
[0059] 例如,QP值为34的情况,对应的端到端失真小于QP值为35的情况,以此类推,QP为29的情况下,具有最小的端到端失真,那么选择29作为Best_QP,若30具有最小端到端失真,则30为最佳Best_QP。
[0060] 在将当前QP减去1重新编码的过程中,其中模式重用编码的特征在于采用前一个QP编码的相同位置编码块的intra或inter模式,以及编码采用的块尺寸对当前编码块进行编码。如果前一个QP编码的相同位置编码块采用的inter编码模式,则当前编码块也要采用其相应的运动向量进行预测补偿编码。对于采用的编码块尺寸,同样可以重用,参考图4。
[0061] 前一个QP编码时采用的块尺寸模式(4x4,4x8...16x16),可以作为当前编码单元的块尺寸,同时该块对应的运动向量也完全重用,这样避免了块模式决策过程,也避免了搜索运动向量所需要的大量计算,可以大大节省跨层优化视频传输的运算时间。
[0062] 专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及
算法步骤,能够以
电子硬件、计算机
软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0063] 结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的
软件模块,或者二者的结合来实施。软件模块可以置于随机
存储器(RAM)、内存、
只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、
硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0064] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何
修改、等同替换、改进等,均应包含在本发明的保护范围之内。