CN116419016A - 一种码率分配方法、存储方法、装置、设备及存储介质 - Google Patents

一种码率分配方法、存储方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116419016A
CN116419016A CN202111658162.0A CN202111658162A CN116419016A CN 116419016 A CN116419016 A CN 116419016A CN 202111658162 A CN202111658162 A CN 202111658162A CN 116419016 A CN116419016 A CN 116419016A
Authority
CN
China
Prior art keywords
video
code rate
value
quality
storage
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
Application number
CN202111658162.0A
Other languages
English (en)
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.)
ZTE Corp
Huazhong University of Science and Technology
Original Assignee
ZTE Corp
Huazhong University of Science and Technology
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 ZTE Corp, Huazhong University of Science and Technology filed Critical ZTE Corp
Priority to CN202111658162.0A priority Critical patent/CN116419016A/zh
Priority to PCT/CN2022/144132 priority patent/WO2023125970A1/zh
Publication of CN116419016A publication Critical patent/CN116419016A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44204Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种码率分配方法、存储方法、装置、设备及存储介质,本发明通过获取目标视频数据,目标视频数据包括目标传输视频中所有视频片段的观看概率,其中引入观看概率有利于提高用户的观看质量;根据观看概率对视频片段进行码率分配,以使目标传输视频的总效用满足目标值;而目标传输视频的总效用根据视频片段的用户观看质量以及传输损耗确定,所述用户观看质量根据非新鲜度因子确定,非新鲜度因子根据视频片段在边缘节点的存储状态以及观看概率确定,在目标传输视频的总效用满足目标值时得到相应的码率分配结果,能够达到在提高用户对视频片段的用户观看质量的同时减小传输损耗的目标,本发明可广泛应用于通信技术领域。

Description

一种码率分配方法、存储方法、装置、设备及存储介质
技术领域
本发明涉及通信领域,尤其是一种码率分配方法、存储方法、装置、设备及存储介质。
背景技术
基于5G网络对高清视频的良好支持,高清视频逐渐应用在监控安防、远程会议、电商直播、VR游戏/视频等多个行业中,受到内容提供商和消费者们的青睐。高清视频的传输过程中需要消耗大量的带宽和存储资源,而通常情况下由服务器进行高清视频的存储,导致传输过程的损耗大,为此可以利用距离用户较近的边缘节点来缓存高清视频,用户可以直接从该边缘节点获取缓存的高清视频即可而不需要不从服务器获取,减小了传输过程中的损耗。然而,当高清视频存储于边缘节点的时间增长,该高清视频对于用户的价值会降低,在带宽有限的条件下若该高清视频维持原有码率,会对其他高清视频造成影响,导致增加高清视频整体的传输损耗并响应用户观看体验。
发明内容
本申请实施例的主要目的在于提供一种减少传输损耗的码率分配方法、存储方法、装置、设备及存储介质。
为实现上述目的,本申请实施例提供了一种码率分配方法,包括:获取目标视频数据;所述目标视频数据包括目标传输视频中所有视频片段的观看概率;根据所述观看概率对所述视频片段进行码率分配,以使所述目标传输视频的总效用满足目标值;所述目标传输视频的总效用根据所述视频片段的用户观看质量以及传输损耗确定,所述用户观看质量根据非新鲜度因子确定,所述非新鲜度因子根据所述视频片段在边缘节点的存储状态以及所述观看概率确定。
本申请实施例还提出了一种存储方法,包括:通过所述的码率分配方法得到目标传输视频中所有视频片段的观看概率以及码率分配结果;根据所述码率分配结果以及所述观看概率,预测预期有效质量以及预期传输损耗;根据所述预期有效质量、所述预期传输损耗以及边缘节点的最大容量,进行存储优化处理,得到存储决策信息;所述存储决策信息包括每一所述视频片段的第三存储决策值,所述第三存储决策值表征所述视频片段是否需要存储于边缘节点;根据所述存储决策信息进行所述视频片段的存储。
本申请实施例还提出了一种码率分配装置,包括:获取模块,用于获取目标视频数据;所述目标视频数据包括目标传输视频中所有视频片段的观看概率;处理模块,用于根据所述观看概率对所述视频片段进行码率分配,以使所述目标传输视频的总效用满足目标值;所述目标传输视频的总效用根据所述视频片段的用户观看质量以及传输损耗确定,所述用户观看质量根据非新鲜度因子确定,所述非新鲜度因子根据所述视频片段在边缘节点的存储状态以及所述观看概率确定。
本申请实施例还提出了一种存储装置,包括:确定模块,用于确定目标传输视频中所有视频片段的观看概率以及码率分配结果;预测模块,用于根据所述码率分配结果以及所述观看概率,预测预期有效质量以及预期传输损耗;优化模块,用于根据所述预期有效质量、所述预期传输损耗以及边缘节点的最大容量,进行存储优化处理,得到存储决策信息;所述存储决策信息包括每一所述视频片段的第三存储决策值,所述第三存储决策值表征所述视频片段是否需要存储于边缘节点;存储模块,用于根据所述存储决策信息进行所述视频片段的存储;所述确定目标传输视频中所有视频片段的观看概率以及码率分配结果,具体包括:获取目标视频数据;所述目标视频数据包括目标传输视频中所有视频片段的观看概率;根据所述观看概率对所述视频片段进行码率分配,以使所述目标传输视频的总效用满足目标值;所述目标传输视频的总效用根据所述视频片段的用户观看质量以及传输损耗确定,所述用户观看质量根据非新鲜度因子确定,所述非新鲜度因子根据所述视频片段在边缘节点的存储状态以及所述观看概率确定。
本申请实施例还提出了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述码率分配方法或存储方法。
本申请实施例还提出了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述码率分配方法或存储方法。
本申请实施例提出的一种码率分配方法、存储方法、装置、设备及存储介质,通过获取目标视频数据,目标视频数据包括目标传输视频中所有视频片段的观看概率,其中引入观看概率有利于提高用户的观看质量;根据观看概率对视频片段进行码率分配,以使目标传输视频的总效用满足目标值;而目标传输视频的总效用根据视频片段的用户观看质量以及传输损耗确定,所述用户观看质量根据非新鲜度因子确定,非新鲜度因子根据视频片段在边缘节点的存储状态以及观看概率确定,在目标传输视频的总效用满足目标值时得到相应的码率分配结果,能够达到在提高用户对视频片段的用户观看质量的同时减小传输损耗的目标。
附图说明
图1为本申请码率分配方法的步骤流程示意图;
图2为本申请具体实施例存储方法的步骤流程示意图;
图3为本申请具体实施例其中一个应用场景的码率分配方法以及存储方法的流程示意图;
图4为本申请具体实施例另一个应用场景的码率分配方法以及存储方法的流程示意图;
图5为本申请具体实施例码率分配装置的示意图;
图6为本申请具体实施例存储装置的示意图;
图7为本申请具体实施例电子设备的示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身没有特有的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
实施例一
如图1所示,本申请实施例提供一种码率分配方法,至少包括但不限于步骤S100-S200:
S100、获取目标视频数据。
本申请实施例中,目标视频数据包括目标传输视频中所有视频片段的观看概率。可选地,目标视频数据为用户需要观看的视频的数据,即目标传输视频的相关数据,用户端可以基于用户的输入指令生成视频请求而获取得到。需要说明的是,云端(或称为服务器端)能够对目标传输视频进行分块处理,生成多个不同空间位置的视频片段。可选地,时长为T的目标传输视频在云端被编码为K个质量级别,每个质量级别的视频在时间上被切分为长度为Δt秒(包括但不限于2秒)的视频段,每个长度为Δt秒的视频段在空间上为被分块处理成M×N个视频片段,其中,M、N分别为的水平和垂直方向的视频片段数量。本申请实施例中,为了获取用户对视频片段的感兴趣区域(Region of Interest,RoI),可以通过用户关注点轨迹确定每个视频片段的观看概率,而位于用户RoI内的观看概率之和为1,即满足
Figure BDA0003446577610000031
Figure BDA0003446577610000032
m,n为视频片段的索引位置,p(m,n)为视频片段(m,u)对应的观看概率(位于用户RoI内的概率),观看概率越高代表用户的关注度越大。需要说明的是,当目标传输视频为沉浸式视频,例如VR(Virtual Reality,虚拟现实)视频和AR(AugmentedReality,增强现实)视频,用户通过佩戴头显设备,可以看到360度的视频内容,此时RoI区域为用户在头戴式显示器中实际的可观看视口(Field of View,FoV)区域,通过眼部运动轨迹可以确定观看概率;而当目标传输视频为其他类型的视频可以通过获取采集实时鼠标的操作区域频率或通过视频图像处理来预测用户的可能关注位置的重要程度来计算。例如,用Saliency map(显著图)预测视频显著性区域,通过不同区域的灰度值比率来判断观看区域的重要程度从而确定观看概率。
S200、根据观看概率对视频片段进行码率分配,以使视频片段的总效用满足目标值。
本申请实施例中,码率分配指的是确定每一视频片段的目标传输码率,即边缘节点传输每一视频片段至用户端的码率;目标传输视频的总效用根据视频片段的用户观看质量以及传输损耗确定。可选地,目标传输视频的总效用通过总效用函数表征:
Figure BDA0003446577610000033
其中,Utilityt为t时刻的总效用,即t时刻的码率分配系统效用,QoPt(m,n)为t时刻视频片段(m,n)的用户观看质量,TCt(m,n)为t时刻视频片段(m,n)的传输损耗,δ为传输损耗的权重。从公式可知道,根据每一视频片段对应的用户观看质量减去传输损耗与传输损耗的权重的乘积可以得到每一视频片段的效用,所有视频片段的效用之和即为目标传输视频的总效用。可选地,一个视频片段的若存储于云端(云服务器),则一个视频片段的传输损耗包括边缘节点从云端获取视频片段的通信损耗以及边缘节点传输视频片段至用户端的通信损耗;若一个视频片段存储于边缘节点,视频片段的传输损耗包括边缘节点传输视频片段至用户端的通信损耗,或者还包括边缘节点的转码损耗。需要说明的是,目标传输视频的总效用满足目标值包括但不限于使得总效用函数达到最大值(MAX Utilityt);或者,先设定总效用目标阈值,当利用总效用函数计算得到的总效用大于等于总效用目标阈值则认为满足目标值,在确定总效用满足目标值时,可以提高目标传输视频的用户观看质量并减小从云端获取视频片段的传输通信损耗,提高了用户端带宽受限条件下用户观看目标传输视频的质量。
本申请实施例中,以满足目标值为使得总效用函数为最大值为例子进行说明,码率分配问题可以描述为:
Figure BDA0003446577610000041
Figure BDA0003446577610000042
Figure BDA0003446577610000043
Figure BDA0003446577610000044
其中,Bmax为边缘节点与用户端之间传输的最大带宽,
Figure BDA0003446577610000045
为t时刻的码率,具体是t时刻为视频片段(m,n)分配的用于边缘节点向用户端传输视频片段(m,n)的传输码率,ct-1(m,n)为t-1时刻的存储决策值,当存储决策值为1表示视频片段(m,n)存储在边缘节点,而当存储决策值为0代表视频片段(m,n)未存储在边缘节点;/>
Figure BDA0003446577610000046
为t-1时刻的码率,具体是t-1时刻视频片段(m,n)被边缘节点存储时的存储码率。本申请实施例中,在计算总效用时带宽约束条件限定所有/>
Figure BDA0003446577610000047
之和不能超过最大带宽Bmax;对于已存储在边缘节点的视频片段(即ct-1(m,n)=1)的码率约束条件规定,t时刻给已存储的视频片段分配的码率不能高于/>
Figure BDA0003446577610000048
从而使得用户可以直接从边缘节点获取视频片段,减少从云端获取视频片段造成额外的通信损耗。其中,/>
Figure BDA0003446577610000049
为t时刻分配给视频片段(m,n)的质量级,qK为第K个质量级别,可以通过ffprobe工具(FFmpeg中可用于查看文件格式信息工具)测得,质量级别与视频片段的码率和内容复杂度ot(m,n)紧密相关,即
Figure BDA00034465776100000410
F()表示一种映射关系。需要说明的是,通过公式(2)计算总效用时,通过整数规划问题计算复杂度为O(KM·N),然后可以确定各个视频片段的目标质量级求解最大的总效用,而本申请实施例中由于整数规划问题计算复杂度为O(KM·N)的规模时,执行时间过大,因此采用贪婪算法求得近似解最优解以减小计算复杂度,从而使得总效用满足目标值而确定每一视频片段的目标质量级以及对应的目标传输码率,实现码率分配。
可选地,本申请实施例中为确定公式(2)的总效用函数为最大值,步骤S200中根据观看概率对视频片段进行码率分配,包括步骤B201和B202,以及B203和/或B204:
B201、获取目标传输视频的总效用的新效用值和旧效用值,以及获取视频片段的质量级以及码率。
本申请实施例中,新效用值为目标传输视频的总效用的初始值,即公式(1)中的总效用函数的初始值,该初始值可以为随机确定的值或者设定值,记为newUt,例如newUt=0。而旧效用值可以为根据质量级以及码率确定的目标传输视频的总效用的当前值,记为oldUt。以当前时刻为t时刻,质量级以及码率可以为视频片段当前分配的质量级以及码率,或者也均可以为设定值,而本申请实施例中以质量级为设定值为例进行说明,不作具体限定。具体地,将每一视频片段(m,n)的质量级设置为最低的质量级别1,记为
Figure BDA00034465776100000411
构成所有视频片段(m,n)的质量级矩阵/>
Figure BDA00034465776100000412
并可以通过质量级确定对应的码率或者设定初始的码率记为/>
Figure BDA00034465776100000413
从而得到所有视频片段(m,n)的码率矩阵/>
Figure BDA00034465776100000414
从而代入公式(1)或者(2)中就可以计算得到oldUt
B202、判断码率的总和是否小于或等于带宽容量。
具体地,判断所有视频片段的码率的总和是否小于或等于带宽容量,即判断
Figure BDA0003446577610000051
是否成立。
B203、当码率的总和小于或等于带宽容量,遍历视频片段对质量级进行增加处理,根据增加处理结果、新效用值和旧效用值,更新视频片段的质量级以及码率,返回判断码率的总和是否小于或等于带宽容量的步骤,直至码率的总和大于带宽容量,得到每一视频片段的目标传输码率。
本申请实施例中,当所有视频片段的码率的总和
Figure BDA0003446577610000052
遍历视频片段对质量级进行增加处理。例如,以M×N个视频片段构成的视频片段矩阵中的第M列第N个视频片段作为第一个视频片段开始遍历过程直至遍历至第1列第1个视频片段,在遍历过程中进行视频片段的质量级的增加处理,例如,对视频片段的质量级/>
Figure BDA0003446577610000053
进行增加处理后得到增加处理结果/>
Figure BDA0003446577610000054
相当于增加后的质量级;其中,增加的数值可根据需要调整,本申请以1为示例而不对增加的数值构成具体的限制。然后,在增加处理后根据增加处理结果、新效用值和旧效用值,更新视频片段的质量级以及码率,返回步骤B202直至/>
Figure BDA0003446577610000055
从而得到每一视频片段的目标传输码率。
B204、当码率的总和非小于或非等于带宽容量,遍历视频片段对质量级进行减少处理,根据减少处理结果、新效用值和旧效用值,更新视频片段的质量级以及码率,返回判断码率的总和是否小于或等于带宽容量的步骤,直至码率的总和小于或等于带宽容量,得到每一视频片段的目标传输码率。
具体地,当码率的总和非小于或非等于带宽容量,即
Figure BDA0003446577610000056
遍历视频片段对质量级进行减少处理。例如,以M×N个视频片段构成的视频片段矩阵中的第M列第N个视频片段作为第一个视频片段开始遍历过程直至遍历至第1列第1个视频片段,在遍历过程中进行视频片段的质量级的减少处理,例如,对视频片段的质量级/>
Figure BDA0003446577610000057
进行减少处理后得到减少处理结果/>
Figure BDA0003446577610000058
相当于减少后的质量级;类似地,减少的数值可根据需要调整,本申请以1为示例而不对减少的数值构成具体的限制。然后,在减少处理后根据减少处理结果、新效用值和旧效用值,更新视频片段的质量级以及码率,返回步骤B202直至/>
Figure BDA0003446577610000059
从而得到每一视频片段的目标传输码率。
需要说明的是,当执行步骤B202或者B203后,当某一个或多个视频片段的质量级以及码率被更新后,得到更新的以M×N个视频片段构成的视频片段矩阵以及更新后的质量级矩阵,从而根据更新后的质量级矩阵确定视频片段的目标传输码率。需要说明的是,目标传输码率指的是最终确定的t时刻的视频片段的
Figure BDA00034465776100000510
记为/>
Figure BDA00034465776100000511
最终得到的目标传输码率矩阵为/>
Figure BDA0003446577610000061
可选地,步骤B203中根据增加处理结果、新效用值和旧效用值,更新视频片段的质量级以及码率,包括步骤B211或者B212:
B211、当增加处理结果小于或等于质量等级阈值,根据增加处理结果对新效用值进行更新,计算更新后的新效用值与旧效用值的第一差值,确定视频片段的第一影响因子,将第一影响因子的最大值对应的视频片段作为第一更新视频片段,将第一更新视频片段的质量级更新为第一更新视频片段对应的增加处理结果,并根据第一更新视频片段对应的增加处理结果更新第一更新视频片段的码率。
可选地,质量等级阈值为质量级别K,当增加处理结果小于或等于质量等级阈值即
Figure BDA0003446577610000062
假设此时遍历过程中m=M,n=N,对当前的视频片段的质量级/>
Figure BDA0003446577610000063
进行增加处理后得到的质量级矩阵为/>
Figure BDA0003446577610000064
利用公式(1)或公式(2)可以计算得到更新后的新效用值,即更新后的newUt。然后,根据更新后的newUt与旧效用值oldUt的第一差值,确定当前的视频片段(m=M,n=N)的第一影响因子difft(m,n)。需要说明的是,在遍历开始前,可以生成一个初始的第一影响因子矩阵,然后在遍历过程中更新初始的第一影响因子矩阵中的每一个初始的第一影响因子。可以理解的是,在m=M以及n=N至m=1以及n=1的遍历过程中每一视频片段通过相同的处理过程可以得到每一视频片段对应的更新后的第一影响因子,构成第一影响因子矩阵记为/>
Figure BDA0003446577610000065
第一影响因子矩阵/>
Figure BDA0003446577610000066
中每一视频片段对应一个第一影响因子,表示视频片段进行增加处理后总效用的变化程度。
可选地,在视频片段的遍历完成确定第一影响因子矩阵
Figure BDA0003446577610000067
后,寻找最大值的位置索引/>
Figure BDA0003446577610000068
例如:若第一影响因子最大的视频片段的位置为(M-3,N-3),则此时m=M-3,n=N-3,将视频片段矩阵中位于(M-3,N-3)位置的视频片段作为第一更新视频片段,将第一更新视频片段的质量级更新为第一更新视频片段对应的增加处理结果/>
Figure BDA0003446577610000069
并根据第一更新视频片段对应的增加处理结果更新第一更新视频片段的码率,/>
Figure BDA00034465776100000610
或者可以表示为:根据第一更新视频片段对应的增加处理结果得到新的质量级矩阵/>
Figure BDA00034465776100000611
从而确定更新后的码率矩阵/>
Figure BDA00034465776100000612
然后返回步骤B202。其中,F()代表映射。
B212、当增加处理结果大于质量等级阈值,将视频片段的质量级作为更新后的质量级以及将视频片段的码率作为更新后的码率。
本申请实施例中,例如当前视频片段为第M行,第N列的视频片段,若
Figure BDA00034465776100000613
此时保持视频片段的质量级以及码率不变,即将视频片段的质量级作为更新后的质量级,将视频片段的码率作为更新后的码率,然后遍历第M行,第N列的视频片段的下一个视频片段,判断增加处理结果与质量等级阈值的大小关系。
可选地,步骤B211中对根据增加处理结果对新效用值进行更新,包括步骤B221-B226:
B221、计算当前时刻的传输损耗以及计算当前时刻的非新鲜度。
具体地,当前时刻的传输损耗的计算步骤包括B2211-B2212,B2212包括步骤A1或者A2:
B2211、根据前一时刻的视频片段在边缘节点的存储状态,确定第一存储决策值。
本申请实施例中,当前时刻记为t时刻,前一时刻记为t-1时刻,其他实施例中前一时刻可以为t-2时刻或者其他时刻,不作具体限定。
可选地,前一时刻的视频片段与边缘节点的存储状态包括存储于边缘节点或者不存储于边缘节点,当存储于边缘节点此时对应的第一存储决策值数值为1,即第一存储决策值数值ct-1(m,n)=1时表征视频片段存储于边缘节点;相反当第一存储决策值数值ct-1(m,n)=0时表征视频片段不存储于边缘节点,此时边缘节点需要从云端获取该视频片段。需要说明的是,第一存储决策值指的是前一时刻的视频片段的存储状态对应的存储决策值。
A1、当第一存储决策值表征视频片段存储于边缘节点,获取视频片段的存储码率,计算存储码率与视频片段的码率的码率差,根据第一存储决策值、码率差以及第一损耗系数,确定第一损耗,并根据第二损耗系数与视频片段的码率确定第二损耗,根据第一损耗和第二损耗的和,确定当前时刻的传输损耗。
A2、当第一存储决策值表征视频片段不存储于边缘节点,根据第三损耗系数以及视频片段的码率确定第三损耗,并根据第二损耗系数与视频片段的码率确定第二损耗,根据第三损耗和第二损耗的和,确定当前时刻的传输损耗。
可选地,为了便于描述假设δ=1,此时公式(2)中t时刻的视频片段(m,n)的传输损耗表示为TCt(m,n),公式为:
Figure BDA0003446577610000071
其中,c1为第一损耗系数,c2为第二损耗系数,c3为第三损耗系数。需要说明的是,在计算视频片段的传输损耗时,ct-1(m,n)为t-1时刻视频片段的第一存储决策值,
Figure BDA0003446577610000072
为t时刻视频片段的码率,/>
Figure BDA0003446577610000073
为t-1时刻视频片段的码率;第一损耗系数、第二损耗系数以及第三损耗系数的大小可根据需要调整。可以理解的是,通过计算每一视频片段的传输损耗之和即可以得到目标传输视频的传输损耗。具体地,从公式(6)中可知道传输损耗分为三个部分,以其中一个视频片段(m,n)为例:
1、
Figure BDA0003446577610000074
即第一损耗,代表边缘节点的转码损耗;
2、
Figure BDA0003446577610000075
即第二损耗,代表边缘节点传输视频片段至用户端的通信损耗;
3、
Figure BDA0003446577610000076
即第三损耗,代表边缘节点从云端获取视频片段的通信损耗。
因此,步骤A1中,当ct-1(m,n)=1时,视频片段存储于边缘节点因此只可能存在第一损耗或者第二损耗,并且当
Figure BDA0003446577610000077
大于等于/>
Figure BDA0003446577610000078
时,可使得边缘节点可以直接将视频片段传输至用户端中以提高存储效率,否则当/>
Figure BDA0003446577610000079
小于/>
Figure BDA00034465776100000710
时,仍然需要从云端重新获取。而当/>
Figure BDA00034465776100000711
等于/>
Figure BDA00034465776100000712
时,第一损耗最小为0;当/>
Figure BDA00034465776100000713
大于
Figure BDA00034465776100000714
时,边缘节点需要将视频片段转码成系统分配的码率后再传输给用户端。具体地,此时存储码率为/>
Figure BDA00034465776100000715
即视频片段已经以/>
Figure BDA00034465776100000716
被存储在边缘节点中,计算码率差/>
Figure BDA00034465776100000717
Figure BDA00034465776100000718
从而确定上述的第一损耗,根据第二损耗系数c2与视频片段的码率/>
Figure BDA00034465776100000719
确定第二损耗,根据第一损耗和第二损耗的和,确定当前时刻的传输损耗为
Figure BDA0003446577610000081
Figure BDA0003446577610000082
同理,当步骤A2中,当ct-1(m,n)=0时,视频片段不存储于边缘节点,边缘节点从云端获取视频片段并以
Figure BDA0003446577610000083
存储,此时不存在第一损耗,而存在第二损耗和第三损耗。具体地,根据第三损耗系数c3以及视频片段的码率/>
Figure BDA0003446577610000084
确定第三损耗,并根据第二损耗系数c2与视频片段的码率/>
Figure BDA0003446577610000085
确定第二损耗,根据第三损耗和第二损耗的和,确定当前时刻的传输损耗/>
Figure BDA0003446577610000086
可选地,步骤B221中计算当前时刻的非新鲜度包括步骤B2213-B2215,B2215包括步骤B1或者B2:
B2213、确定前一时刻的非新鲜度。
同样地,设前一时刻为t-1时刻,若前一时刻视频片段存储于边缘节点则通过非新鲜度公式计算前一时刻的非新鲜度uft-1(m,n);若前一时刻视频片段不存储于边缘节点,则非新鲜度uft-1(m,n)为0,在其他实施例中非新鲜度可以为其他数值,例如接近于0的较小数值。
B2214、根据当前时刻视频片段在边缘节点的存储状态,确定第二存储决策值。
具体地,如步骤B2211的方法,确定第二存储决策值,第二存储决策值为1时表征前一时刻视频片段存储于边缘节点,当第二存储决策值为0时表征前一时刻视频片段不存储于边缘节点。需要说明的是,第二存储决策值指的是当前时刻的视频片段的存储状态对应的存储决策值。
B1、当第二存储决策值表征视频片段存储于边缘节点,计算预设新鲜度增长因子与观看概率的乘积,并根据乘积与前一时刻的非新鲜度的和,确定当前时刻的非新鲜度。
B2、或者,当第二存储决策值表征视频片段不存储于边缘节点,确定当前时刻的非新鲜度为0。
本申请实施例中,非新鲜度的计算公式为:
Figure BDA0003446577610000087
其中,uft(m,n)为当前时刻即t时刻的视频片段(m,n)的非新鲜度,当第二存储决策值为0时,非新鲜度为0;当ct(m,n)为1时通过上述公式(7)计算,pt(m,n)为视频片段(m,n)的观看概率;α为预设新鲜度增长因子,uft-1(m,n)为前一时刻的视频片段的非新鲜度。可以理解的是,每一视频片段的非新鲜度可以通过公式(7)计算得到;可选地,uf0(m,n)为0,前一时刻的非新鲜度可以通过公式(7)计算得到。需要说明的是,非新鲜度可以用于反映视频片段过时的程度,存储在边缘节点的视频片段内容新鲜度较低,过时的视频片段内容会削弱用户观看的体验质量。另外,从公式(7)可以知道uft(m,n)与视频片段的观看概率pt(m,n)以及视频片段在边缘节点的存储状态有关,当用户对观看视野内的片段的画面质量敏感,在用户RoI内的画面内容需要不断更新以呈现用户最新鲜的内容,因此pt(m,n)越大,视频片段的新鲜度损耗越快。
B222、根据当前时刻的非新鲜度、观看概率以及当前时刻的质量级,确定有效质量。
本申请实施例中,有效质量的计算公式为:
Figure BDA0003446577610000088
其中,EQt(m,n)为t时刻视频片段(m,n)的有效质量,μ为有效质量的因数。需要说明的是,步骤B221中各个子步骤在计算有效质量时,当前时刻的质量级
Figure BDA0003446577610000091
为步骤B201中的质量级或者也可以为步骤B203中的增加处理结果。可以理解的是,每一视频片段的有效质量可以通过上述公式(8)计算。本申请实施例中,有效质量的设置目的在于给用户关注区域内的视频片段分配更高的质量级并保证视频片段新鲜度损耗较小,因为如果视频片段的质量级较高,但是内容已经过时,那么视频片段的有效质量会变差,需要给用户感兴趣区域内的视频片段分配高质量级以保证用户能清晰地看到感兴趣区域内的视频片段内容。
需要说明的是,本申请实施例中,将非新鲜度作为非新鲜度因子用于计算有效质量,而有效质量用于确定用户观看质量,即用户观看质量根据非新鲜度因子所确定。相关技术中,考虑到移动边缘计算(Mobile Edge Computing,MEC)就近服务的优点,通常通过将多媒体内容如热门视频提前缓存至基站处的MEC服务器中,以达到增强用户观看体验的目的。但是这些策略适用于视频已经存在的视频,即在用户发送内容请求前,边缘节点已经获取视频片被观看概率的信息,因此不能适用于直播视频等实时视频,因为实时视频的信息(比如内容、被观看概率)实时更新,播放的同时被记录下来,不可提前获取。然而,一些视频内容通常在新鲜时价值最高,例如在自动驾驶中,实时了解机动车的位置、方向和速度是必不可少的,当视频片段存储在边缘节点时间较长时,视频片的新鲜度下降,这将影响用户的观看质量,因此本申请实施例中引入非新鲜度因子,可以描述已存储在边缘节点的视频片段以及未存在边缘节点的视频片段的内容过时程度,将非新鲜度因子应用于码率分配以及存储决策的存储方法中,能够提高用户观看视频的质量以及降低传输损耗。
B223、获取视频片段前一时刻的质量级,根据当前时刻的质量级、观看概率以及前一时刻的质量级,计算得到当前时刻的第一主观质量和前一时刻的第二主观质量,并根据第一主观质量和第二主观质量的差值确定时间质量损耗。
本申请实施例中,主观质量的计算公式为:
Figure BDA0003446577610000092
时间质量损耗的计算公式为:
TQt(m,n)=|Qt(m,n)-Qt-1(m,n)| (10)
其中,Qt(m,n)为t时刻(当前时刻)视频片段(m,n)的主观质量(即第一主观质量),TQt(m,n)为t时刻视频片段(m,n)的时间质量损耗,Qt-1(m,n)为t-1时刻(前一时刻)的视频片段(m,n)的主观质量(即第二主观质量)。因此,通过公式(9)可以计算得到第一主观质量,并通过视频片段前一时刻的质量以及前一时刻的观看概率(近似地可以利用当前时刻的观看概率)通过公式(9)计算得到第二主观质量,然后结合公式(10)可以计算视频片段的时间质量损耗。需要说明的是,视频片段的主观质量表示取决于用户对视频片段的敏感程度,本申请实施例中通过以e为底的数学方式将视频片段的观看概率因素归一化至0-1区间,Qt(m,n)与pt(m,n)成反比例关系,如果视频片段的重要性程度低,即使给该视频片段分配较低的
Figure BDA0003446577610000093
主观质量Qt(m,n)依然可被用户接受。另外,由于用户对相邻时间画面的质量差异敏感,如果用户的主观质量在相邻时间差异很大,那么即使给视频片段分配较高的质量,质量差异仍然会对用户观看体验产生负面影响,因此时间质量损耗定义为公式(10)。
B224、根据第一主观质量和视频片段的总数量计算主观质量均值,并根据第一主观质量与主观质量均值的差值,确定空间质量损耗。
本申请实施例中,空间质量损耗的计算公式为:
Figure BDA0003446577610000101
其中,SQt(m,n)为t时刻视频片段(m,n)的空间质量损耗,
Figure BDA0003446577610000102
为主观质量均值,M·N为视频片段的总数量,t时刻的Qt(m,n)为上述的第一主观质量。需要说明的是,除了视频片段相邻时间质量差会削弱用户观看体验,视频片段空间上的主观质量差异也会对用户观看体验产生影响,因此需要考虑空间质量损耗。
B225、根据有效质量、时间质量损耗、空间质量损耗以及对应的预设权重,得到用户观看质量。
可选地,公式(1)和公式(2)中的用户观看质量QoPt(m,n)计算公式为:
QoPt(m,n)=β1·EQt(m,n)-β2·TQt(m,n)-β3·SQt(m,n) (12)
需要说明的是,有效质量、时间质量损耗、空间质量损耗以及对应的预设权重可以相同也可以不相同,本申请实施例中有效质量的对应的预设权重为预设第一权重β1,时间质量损耗的对应的预设权重为预设第二权重β2,空间质量损耗的对应的预设权重为预设第三权重β3。本申请实施例中,通过公式(12)可以分别计算每一视频片段对应的用户观看质量。
B226、根据用户观看质量与当前时刻的传输损耗的差值,得到更新后的新效用值。
具体地,通过公式(1)可以计算得到更新后的新效用值,即更新后的newUt。需要说明的是,本申请实施例中以δ为1作为例子,当δ不为1时,此时计算用户观看质量与当前时刻的传输损耗的差值时,该差值指的是用户观看质量减去δ与当前时刻的传输损耗的乘积的差值,根据差值之和可以得到更新后的新效用值。
可选地,步骤B204中根据减少处理结果、新效用值和旧效用值,更新视频片段的质量级以及码率,包括步骤B231或者B232:
B231、当减少处理结果大于或等于预设阈值,根据减少处理结果对新效用值进行更新,计算更新后的新效用值与旧效用值的第二差值,确定视频片段的第二影响因子,将第二影响因子的最大值对应的视频片段作为第二更新视频片段,将第二更新视频片段的质量级更新为第二更新视频片段对应的减少处理结果,并根据第二更新视频片段对应的减少处理结果更新第二更新视频片段的码率。
可选地,以预设阈值可以根据需要设定,本申请实施例中以预设阈值为1即最低的质量级别为例。具体地,当减小处理结果
Figure BDA0003446577610000103
大于或等于1,根据减小处理结果
Figure BDA0003446577610000104
对步骤B201中的新效用值newUt进行更新,根据更新后的新效用值与旧效用值的第二差值,确定视频片段的第二影响因子difft′(m,n),将第二影响因子的最大值对应的质量级更新为减小处理结果,将第二影响因子的最大值对应的视频片段作为第二更新视频片段,将第二更新视频片段的质量级更新为第二更新视频片段对应的减少处理结果,然后根据第二更新视频片段对应的减少处理结果更新第二更新视频片段的码率。需要说明的是,第二影响因子difft′(m,n)确定方法与第一影响因子difft(m,n)类似,通过遍历视频片段根据更新后的新效用值与旧效用值oldUt的差值,确定各个视频片段的第二影响因子difft′(m,n),从而得到新的第二影响因子矩阵difftM×n,第二影响因子矩阵difftM×N中每一视频片段对应一个第二影响因子,表示视频片段进行减小处理后总效用的变化程度,寻找最大值的位置索引m,n=SearchMax(difftM×N)。例如:则此时m=M-3,n=N-3,将视频片段矩阵中位于(M-3,N-3)位置的视频片段作为第二更新视频片段,将第二更新视频片段的质量级更新为第二更新视频片段对应的减少处理结果
Figure BDA0003446577610000111
并根据第二更新视频片段对应的减少处理结果更新第二更新视频片段的码率,/>
Figure BDA0003446577610000112
或者可以表示为:根据第二更新视频片段对应的增加处理结果得到新的质量级矩阵/>
Figure BDA0003446577610000113
从而确定更新后的码率矩阵/>
Figure BDA0003446577610000114
然后返回步骤B202。其中,F()代表映射。
B232、当减小处理结果小于预设阈值,将视频片段的质量级作为更新后的质量级以及将视频片段的码率作为更新后的码率。
本申请实施例中,例如当前视频片段为第M行,第N列的视频片段,若
Figure BDA0003446577610000115
此时保持视频片段的质量级以及码率不变,即将视频片段的质量级作为更新后的质量级,将视频片段的码率作为更新后的码率,然后遍历第M行,第N列的视频片段的下一个视频片段,判断减少处理结果与质量等级阈值的大小关系。
本申请实施例中,进行码率分配的详细流程如下:
Figure BDA0003446577610000116
Figure BDA0003446577610000121
其中,最终输出/return的
Figure BDA0003446577610000122
为则为最终的质量级矩阵/>
Figure BDA0003446577610000123
Utility()表示利用公式(1)或(2)进行计算。需要说明的是,当/>
Figure BDA0003446577610000124
在遍历视频片段的过程中执行上述代码中的第6行至第11行,在一次遍历完成后执行第12行至第14行,然后返回第第5行判断直至在第5行判断时/>
Figure BDA0003446577610000125
输出最终的质量级矩阵
Figure BDA0003446577610000126
而当/>
Figure BDA0003446577610000127
在遍历视频片段的过程中执行上述代码中的第17行至第22行,在一次遍历完成后执行第23行至第25行,然后返回第16行判断直至在第16行判断时/>
Figure BDA0003446577610000128
输出最终的质量级矩阵/>
Figure BDA0003446577610000129
实施例二
如图2所示,本申请实施例还提供一种存储方法,至少包括但不限于步骤S300-S600:
S300、通过码率分配方法得到目标传输视频中所有视频片段的观看概率以及码率分配结果。
需要说明的是,码率分配方法指实施例中的码率分配方法,码率分配结果包括每一视频片段(m,n)的目标传输码率
Figure BDA00034465776100001210
以及目标质量级/>
Figure BDA00034465776100001211
S400、根据码率分配结果以及观看概率,预测预期有效质量以及预期传输损耗。
本申请实施例中,在对边缘节点进行存储决策时,假设t时刻为当前时刻,由于t+1时刻(下一时刻)的视频片段有效质量和传输损耗未知,用t时刻的码率分配结果、视频片段以及目标质量级进行预测。其中,
Figure BDA0003446577610000131
和/>
Figure BDA0003446577610000132
分别表示视频片段(m,n)预期有效质量和预期传输损耗,分别预测了时刻t存储的视频片段对t+1时刻视频片段有效质量的影响和从云端获取视频片段的传输损耗。
可选地,步骤S400包括步骤B401-B403:
B401、获取当前时刻的非新鲜度以及当前时刻视频片段的第四存储决策值,并根据当前时刻的非新鲜度、观看概率以及第四存储决策值,确定预测非新鲜度。
具体地,预测非新鲜度
Figure BDA0003446577610000133
的公式为:
Figure BDA0003446577610000134
其中,uft(m,n)为当前时刻的非新鲜度,ct(m,n)为第四存储决策值,α为非新鲜度的增长因子,pt(m,n)为观看概率。需要说明的是,第四存储决策值指的是当前时刻的视频片段的存储状态对应的存储决策值,与第二存储决策值相同。
B402、根据预测非新鲜度、观看概率以及目标质量级,确定预期有效质量。
具体地,预期有效质量
Figure BDA0003446577610000135
的公式为:
Figure BDA0003446577610000136
其中,μ为有效质量的因数,
Figure BDA0003446577610000137
为目标质量级。
B403、根据目标传输码率、第四存储决策值、第二损耗系数以及第三损耗系数,确定预期传输损耗。
具体地,预期传输损耗
Figure BDA0003446577610000138
的公式为:
Figure BDA0003446577610000139
其中,c2为第二损耗系数,c3为第三损耗系数,
Figure BDA00034465776100001310
为目标传输码率,ct(m,n)为第四存储决策值。/>
S500、根据预期有效质量、预期传输损耗以及边缘节点的最大容量,进行存储优化处理,得到存储决策信息。
本申请实施例中,存储决策信息包括每一视频片段(m,n)的第三存储决策值ct′(m,n),并构成第三存储决策值矩阵ctM×N,第三存储决策值表征视频片段是否需要存储于边缘节点,例如第三存储决策值为1,表征需要存储于边缘节点,第三存储决策值为0,表征不需要存储于边缘节点。需要说明的是,第三存储决策值指的通过存储优化处理后得到的视频片段对应的存储决策值。
可选地,存储方法的目标是提高预期有效质量并降低预期传输损耗,因此存储优化处理问题可表示为:
Figure BDA00034465776100001311
Figure BDA00034465776100001312
Figure BDA00034465776100001313
其中,β1为预设第一权重,st(m,n)为视频片段(m,n)的大小,Cmax为边缘节点的最大存储容量即最大容量,δ为传输损耗的权重。可以理解的是,通过求解每一视频片段的
Figure BDA00034465776100001314
以及/>
Figure BDA00034465776100001315
然后可以利用公式(16)存储优化处理。而约束条件规定存储的视频片段的大小之和不能超过边缘节点的存储能力,并且存储问题要解决的缓存策略是一个二进制变量矩阵,本申请实施例中通过分支定界算法求解第三存储决策值。
可选地,步骤B500包括步骤B511-B513:
B511、根据预期有效质量与预期传输损耗确定预期效用,根据当前时刻视频片段存储于边缘节点以及不存储于边缘节点分别对应的预期效用确定存储增益,并根据存储增益确定每一视频片段的视频价值。
可选地,预期效用为
Figure BDA0003446577610000141
分为两种情况,第一种情况的预期效用记为第一预期效用DCt(m,n),即当前时刻视频片段存储于边缘节点的预期效用,第二种情况的预期效用记为第二预期效用DCt′(m,n),即当前时刻视频片段不存储于边缘节点的预期效用,具体地:
1)、当视频片段在t时刻(即当前时刻)存储于边缘节点,即第四存储决策值ct(m,n)=1:
Figure BDA0003446577610000142
其中,μ为有效质量的因数,β1为预设第一权重,δ为传输损耗的权重,α为非新鲜度的增长因子,c2为第二损耗系数。
2)、当视频片段在t时刻(即当前时刻)不存储于边缘节点,即第四存储决策值ct(m,n)=0:
Figure BDA0003446577610000143
其中,c3为第三损耗系数。
本申请实施例中,视频价值的计算公式为:
Figure BDA0003446577610000144
/>
其中,vt(m,n)为视频片段(m,n)的视频价值,DCt(m,n)-DC′t(m,n)为存储增益。需要说明的是,本申请实施例中利用0-1背包问题通过0-1分支定界算法求解最优解以得到存储决策信息,因此假定Cmax为背包的大小,视频片段相当于需要放到背包中的物品,对应的大小和价值分别定义为wt(m,n)和vt(m,n),其中wt(m,n)=st(m,n),求解最优解以得到存储决策信息的目标是使得视频片段的大小满足小于等于Cmax且价值之和尽可能达到最大价值。
B512、获取所有视频片段的大小并根据视频片段的大小与存储增益确定价值密度。
本申请实施例中,价值密度dst(m,n)公式为:
Figure BDA0003446577610000145
B513、根据视频价值以及价值密度通过分支定界算法得到每一视频片段的第三存储决策值。
本申请实施例中,通过分支定界算法计算得到的第三存储决策值可以为第一数值或者第二数值,例如第一数值为1,第二数值为0。具体地:当视频片段的第三存储决策值为ct(m,n)为1时,表示该视频片段需要存储在边缘节点中,而当视频片段的第三存储决策值为ct(m,n)为0时,表示该视频片段不需要存储在边缘节点中
具体地,分支定界算法实则是生成一个二叉树,二叉树中具有多个节点,处理流程为:
1)、将视频片段按照价值密度的大小进行排列(例如由高至低:nodesList=upToLow(dst(m,n))),通过nodesList以及Cmax初始化上界值upprofit,使得upprofit为(nodesList,Cmax)中的最大值得到初始上界值。
2)、初始化队列pq:
需要说明的是,初始化队列pq中具有一个初始化为0的节点(简称初始节点),二叉树中的节点的数据类型是一个包含存储质量(例如重量、价值等)、分配的码率等变量的结构体,且初始节点的存储质量均为0,初始化时赋给父节点,之后的遍历中通过pq.get()返回队列pq的头部节点作为新的父节点并删除头部节点且队列pq中其余的节点向前移动,左、右节点在每一轮迭代时都先被初始化为0,每次判断左右节点是否可能存在解时会在队列中加入新的节点,依次更新父节点。
3)迭代过程:
具体地,初始化后将初始节点作为父节点,然后根据nodesList中价值密度最大的视频片段判断左节点:生成虚构的左节点,将价值密度最大的视频片段作为待确认片段,当待确认片段加入背包后总容量小于Cmax,其中,加入背包后总容量指的是二叉树中虚构的左节点所在分支上所有节点的大小之和,例如:此时的总容量为待确认片段的大小与初始节点的大小之和。而当加入背包后总容量小于Cmax,此时虚构的左节点确定为实际生成的左节点并且标记待确认片段的第四存储决策值为第一数值,将该左节点加入至队列pq中,此时左节点中保存的为待确认片段的大小以及待确认片段的视频价值;然后利用左节点更新价值阈值即上界值upprofit,更新以生成新的价值阈值upprofit。其中,upprofit价值阈值表征当前边缘节点可容纳的最大的视频价值,为0-1背包问题求解过程中,用贪心算法计算出的背包剩余可装入节点的最大价值。需要说明的是,当待确认片段加入背包后总容量大于等于Cmax,即待确认片段的大小与初始节点的大小之和大于等于Cmax,此时不生成实际的左节点并且不更新上界值upprofit。
可选地,在判断左节点后,同样将价值密度最大的视频片段作为待确认片段,利用待确认片段判断右节点:生成虚构的右节点,判断待确认片段不加入背包的最大效用值是否大于更新后的上界值upprofit,若待确认片段不加入背包的最大效用值大于更新后的上界值upprofit,则虚构的右节点确定为实际生成的右节点,此时右节点中保存的为待确认片段的大小以及待确认片段的视频价值,然后将待确认片段的第四存储决策值标记为第二数值并将右节点加入队列pq中;而若待确认片段不加入背包的最大效用值小于等于更新后的上界值upprofit,则不生成实际的右节点。需要说明的是,最大效用值指的是二叉树中虚构的右节点的所在分支上所有节点的视频价值之和,例如:在上述过程中,最大效用值为待确认片段与初始节点的视频价值之和。
需要说明的是,在本申请实施例中,队列采用python的队列数据结构Queue(pq),在python的队列数据结构Queue(pq)中服从先进先出的顺序,pq.get()表示返回队列pq的头节点,并删除头节点,然后从队列pq中确定新的父节点。而在迭代过程3)中,父节点会被删除,然后将队列中按顺序排列的第一个节点作为新的父节点,执行上述判断左节点以及判断左节点的步骤,而在每一次确定待确认片段时,将未曾作为待确认片段且价值密度最大的视频片段作为新的待确认片段进行判断左节点以及判断左节点的步骤,进行不断迭代。其中,在迭代过程中,当生成实际的左节点时均将对应的待确认片段标记为第一数值,而当生成实际的右节点时均将对应的待确认片段标记为第二数值,而在不断迭代的过程中直至队列pq为空时结束迭代,得到每一视频片段的第三存储决策值。
本申请实施例中,为了使得存储增益为非负数,对存储决策值矩阵进行更新,还包括步骤B514:
B514、将第三存储决策值为第一数值且存储增益小于0的视频片段对应的第三存储决策值更新为第二数值,得到存储决策信息。
具体地,对步骤B513中得到的M·N个视频片段的第三存储决策值进行搜索,将ct(m,n)=1且存储增益DCt(m,n)-DC′t(m,n)<0的视频片段的第三存储决策值ct(m,n)更新为0,其他第三存储决策值保持不变,得到存储决策信息,即目标存储矩阵ctM×N
S600、根据存储决策信息进行视频片段的存储。
具体地,边缘节点可以根据存储决策信息,即根据目标存储矩阵ctM×N中的第三存储决策值确定存储策略。例如:将第三存储决策值为1的视频片段在边缘节点中进行存储,更新边缘节点的存储内容,用于为下一时刻即未来用户端请求获取目标传输视频时的服务。本申请实施例中,当用户端获取的目标传输视频为实时视频时,本申请实施例的码率分配方法以及存储方法作为在线算法能够实时响应用户端的请求信息,当前时刻更新的边缘节点的存储内容能够为用户未来获取视频片段进行服务。
本申请实施例中,存储方法中得到存储决策信息的流程如下:
Figure BDA0003446577610000161
其中,当执行第7行判断时,当队列不为空,执行第8行-第15行,然后返回第7行判断直至队列为空,然后执行第16行至第20行,输出
Figure BDA0003446577610000162
需要说明的是,/>
Figure BDA0003446577610000163
为t时刻的存储决策矩阵,return的/>
Figure BDA0003446577610000164
即为/>
Figure BDA0003446577610000165
以下,以两个具体应用场景对本申请实施例的码率分配方法以及存储方法进行说明:
如图3所示,当目标传输视频为沉浸式视频,服务器进行视频切片,即分块处理,得到视频片段,然后记录用户关注点运动轨迹;当用户通过用户端发送请求,服务器根据用户关注点运动轨迹计算视频片段位于用户F0V的概率,得到观看概率,然后进行码率分配(具体参照步骤S200),判断所有视频片(即视频片段)是否已经全部发给用户:若是的话进行存储决策,即执行上述存储方法,从而更新边缘节点存储的视频片(即视频片段);若不是则判断视频片是否存储在边缘节点中,若视频片(即视频片段)不存储在边缘节点中,则需要将请求转发至云端,使得云端的云服务器将视频片发送至边缘节点,边缘节点再将视频片(即视频片段)发送至用户端,而若视频片(即视频片段)存储在边缘节点中,用户可以从边缘节点中读取该视频片(即视频片段)的内容。
如图4所示,当目标传输视频为面向云桌应用场景中的视频,服务器进行视频切片,即分块处理,得到视频片段,然后记录用户与云桌面交互轨迹(例如鼠标或触屏的操作区域频率);当用户通过用户端发送请求,服务器根据云桌面交互轨迹计算视频片位于用户ROI的概率,得到观看概率,然后进行码率分配(具体参照步骤S200),判断所有视频片(即视频片段)是否已经全部发给用户:若是的话进行存储决策,即执行上述存储方法,从而更新边缘节点存储的视频片;若不是则判断视频片(即视频片段)是否存储在边缘节点中,若视频片(即视频片段)不存储在边缘节点中,则需要将请求转发至云端,使得云端的云服务器将视频片(即视频片段)发送至边缘节点,边缘节点再将视频片(即视频片段)发送至用户端,而若视频片(即视频片段)存储在边缘节点中,用户可以从边缘节点中读取该视频片(即视频片段)的内容。
需要说明的是,本申请实施例中的码率分配方法由用户端的终端执行,其他实施例中也可以由云端的云服务器执行,存储方法可以由边缘节点执行或者由云端的云服务器执行后,边缘节点根据存储决策信息进行视频片段的存储。其中,边缘节点指物联网中靠近用户侧的具有缓存能力的网络节点。
如图5所示,本申请实施例还提供一种码率分配装置,包括:
获取模块,用于获取目标视频数据;目标视频数据包括目标传输视频中所有视频片段的观看概率;
处理模块,用于根据观看概率对视频片段进行码率分配,以使目标传输视频的总效用满足目标值;目标传输视频的总效用根据视频片段的用户观看质量以及传输损耗确定,用户观看质量根据非新鲜度因子确定,非新鲜度因子根据视频片段在边缘节点的存储状态以及观看概率确定。
如图6所示,本申请实施例还提供一种存储装置,包括:
确定模块,用于确定目标传输视频中所有视频片段的观看概率以及码率分配结果;
预测模块,用于根据码率分配结果以及观看概率,预测预期有效质量以及预期传输损耗;
优化模块,用于根据预期有效质量、预期传输损耗以及边缘节点的最大容量,进行存储优化处理,得到存储决策信息;存储决策信息包括每一视频片段的第三存储决策值,第三存储决策值表征视频片段是否需要存储于边缘节点;
存储模块,用于根据存储决策信息进行视频片段的存储;
获取目标视频数据;目标视频数据包括目标传输视频中所有视频片段的观看概率;
根据观看概率对视频片段进行码率分配,以使目标传输视频的总效用满足目标值;目标传输视频的总效用根据视频片段的用户观看质量以及传输损耗确定,用户观看质量根据非新鲜度因子确定,非新鲜度因子根据视频片段在边缘节点的存储状态以及观看概率确定。
上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
如图7所示,本申请实施例还提供了一种电子设备,电子设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现前述实施例的码率分配或存储方法。本申请实施例的电子设备包括但不限于手机、平板电脑、电脑、车载电脑、服务器等等。
上述方法实施例中的内容均适用于本设备实施例中,本设备实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本申请实施例还提供一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现前述实施例的码率分配或存储方法。
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前述实施例的码率分配或存储方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上参照附图说明了本申请的优选实施例,并非因此局限本申请的权利范围。本领域技术人员不脱离本申请的范围和实质内所作的任何修改、等同替换和改进,均应在本申请的权利范围之内。

Claims (15)

1.一种码率分配方法,其特征在于,包括:
获取目标视频数据;所述目标视频数据包括目标传输视频中所有视频片段的观看概率;
根据所述观看概率对所述视频片段进行码率分配,以使所述目标传输视频的总效用满足目标值;所述目标传输视频的总效用根据所述视频片段的用户观看质量以及传输损耗确定,所述用户观看质量根据非新鲜度因子确定,所述非新鲜度因子根据所述视频片段在边缘节点的存储状态以及所述观看概率确定。
2.根据权利要求1所述码率分配方法,其特征在于:所述根据所述观看概率对所述视频片段进行码率分配,包括:
获取所述目标传输视频的总效用的新效用值和旧效用值,以及获取所述视频片段的质量级以及码率;
判断所述码率的总和是否小于或等于带宽容量;
当所述码率的总和小于或等于带宽容量,遍历所述视频片段对所述质量级进行增加处理,根据增加处理结果、所述新效用值和所述旧效用值,更新所述视频片段的质量级以及码率,返回所述判断所述码率的总和是否小于或等于带宽容量的步骤,直至所述码率的总和大于带宽容量,得到每一所述视频片段的目标传输码率;所述增加处理结果为增大后的质量级;
当所述码率的总和非小于或非等于带宽容量,遍历所述视频片段对所述质量级进行减少处理,根据减少处理结果、所述新效用值和所述旧效用值,更新所述视频片段的质量级以及码率,返回所述判断所述码率的总和是否小于或等于带宽容量的步骤,直至所述码率的总和小于或等于带宽容量,得到每一所述视频片段的目标传输码率;所述减少处理结果为减少后的质量级。
3.根据权利要求2所述码率分配方法,其特征在于:所述根据增加处理结果、所述新效用值和所述旧效用值,更新所述视频片段的质量级以及码率,包括:
当所述增加处理结果小于或等于质量等级阈值,根据所述增加处理结果对所述新效用值进行更新,计算更新后的新效用值与所述旧效用值的第一差值,确定所述视频片段的第一影响因子,将第一影响因子的最大值对应的视频片段作为第一更新视频片段,将所述第一更新视频片段的质量级更新为所述第一更新视频片段对应的增加处理结果,并根据所述第一更新视频片段对应的增加处理结果更新所述第一更新视频片段的码率。
4.根据权利要求3所述码率分配方法,其特征在于:所述根据所述增加处理结果对所述新效用值进行更新,包括:
计算当前时刻的传输损耗以及计算当前时刻的非新鲜度;
根据所述当前时刻的非新鲜度、所述观看概率以及当前时刻的质量级,确定有效质量;
获取所述视频片段前一时刻的质量级,根据所述当前时刻的质量级、所述观看概率以及所述前一时刻的质量级,计算得到所述当前时刻的第一主观质量和所述前一时刻的第二主观质量,并根据所述第一主观质量和所述第二主观质量的差值确定时间质量损耗;
根据所述第一主观质量和所述视频片段的总数量计算主观质量均值,并根据所述第一主观质量与所述主观质量均值的差值,确定空间质量损耗;
根据所述有效质量、所述时间质量损耗、所述空间质量损耗以及对应的预设权重,得到用户观看质量;
根据所述用户观看质量与所述当前时刻的传输损耗的差值,得到更新后的新效用值。
5.根据权利要求4所述码率分配方法,其特征在于:所述计算当前时刻的传输损耗,包括:
根据所述前一时刻的所述视频片段在边缘节点的存储状态,确定第一存储决策值;
当所述第一存储决策值表征所述视频片段存储于边缘节点,获取所述视频片段的存储码率,计算所述存储码率与所述视频片段的码率的码率差,根据所述第一存储决策值、所述码率差以及第一损耗系数确定第一损耗,根据第二损耗系数与所述视频片段的码率确定第二损耗,根据所述第一损耗和所述第二损耗的和,确定所述当前时刻的传输损耗;
或者,当所述第一存储决策值表征所述第一片段不存储于边缘节点,根据第三损耗系数以及所述视频片段的码率确定第三损耗,并根据所述第二损耗系数与所述视频片段的码率确定第二损耗,根据所述第三损耗和所述第二损耗的和,确定所述当前时刻的传输损耗;
其中,所述第一损耗为边缘节点的转码损耗,所述第二损耗为边缘节点传输所述视频片段至用户端的通信损耗,所述第三损耗为边缘节点从云端获取所述视频片段的通信损耗。
6.根据权利要求4所述码率分配方法,其特征在于:所述计算当前时刻的非新鲜度,包括:
确定前一时刻的非新鲜度;
根据所述当前时刻所述视频片段在边缘节点的存储状态,确定第二存储决策值;
当所述第二存储决策值表征所述视频片段存储于边缘节点,计算预设新鲜度增长因子与所述观看概率的乘积,并根据所述乘积与所述前一时刻的非新鲜度的和,确定当前时刻的非新鲜度;
或者,当所述第二存储决策值表征所述视频片段不存储于边缘节点,确定当前时刻的非新鲜度为0。
7.根据权利要求2所述码率分配方法,其特征在于:所述根据减少处理结果、所述新效用值和所述旧效用值,更新所述视频片段的质量级以及码率,包括:
当所述减少处理结果大于或等于预设阈值,根据所述减少处理结果对所述新效用值进行更新,计算更新后的新效用值与所述旧效用值的第二差值,确定所述视频片段的第二影响因子,将第二影响因子的最大值对应的视频片段作为第二更新视频片段,将所述第二更新视频片段的质量级更新为所述第二更新视频片段对应的减少处理结果,并根据所述第二更新视频片段对应的减少处理结果更新所述第二更新视频片段的码率。
8.一种存储方法,其特征在于:包括:
通过如权利要求1-7任一项所述的码率分配方法得到目标传输视频中所有视频片段的观看概率以及码率分配结果;
根据所述码率分配结果以及所述观看概率,预测预期有效质量以及预期传输损耗;
根据所述预期有效质量、所述预期传输损耗以及边缘节点的最大容量,进行存储优化处理,得到存储决策信息;所述存储决策信息包括每一所述视频片段的第三存储决策值,所述第三存储决策值表征所述视频片段是否需要存储于边缘节点;
根据所述存储决策信息进行所述视频片段的存储。
9.根据权利要求8所述存储方法,其特征在于:所述码率分配结果包括每一所述视频片段的目标传输码率,每一所述目标传输码率具有对应的目标质量级,所述根据所述码率分配结果以及所述观看概率,预测预期有效质量以及预期传输损耗,包括:
获取当前时刻的非新鲜度以及当前时刻所述视频片段的第四存储决策值,并根据所述当前时刻的非新鲜度、所述观看概率以及所述第四存储决策值,确定预测非新鲜度;
根据所述预测非新鲜度、所述观看概率以及所述目标质量级,确定所述预期有效质量;
根据所述目标传输码率、所述第四存储决策值、第二损耗系数以及第三损耗系数,确定所述预期传输损耗。
10.根据权利要求8所述存储方法,其特征在于:所述码率分配结果包括每一所述视频片段的目标传输码率,每一所述目标传输码率具有对应的目标质量级,所述根据所述预期有效质量、所述预期传输损耗以及边缘节点的最大容量,进行存储优化处理,得到存储决策信息,包括:
根据所述预期有效质量与所述预期传输损耗确定预期效用,根据当前时刻所述视频片段存储于边缘节点以及不存储于边缘节点分别对应的预期效用确定存储增益,并根据所述存储增益确定每一所述视频片段的视频价值;
获取所述视频片段的大小,并根据视频片段的大小与所述存储增益确定所述视频片段的价值密度;
根据所述视频价值以及所述价值密度通过分支定界算法得到每一所述视频片段的第三存储决策值;所述第三存储决策值为第一数值或第二数值,所述第一数值表征视频片段需要存储于边缘节点,所述第二数值表征视频片段不需要存储于边缘节点。
11.根据权利要求10所述存储方法,其特征在于:所述方法还包括:
将第三存储决策值为第一数值且所述存储增益小于0的视频片段对应的第三存储决策值更新为第二数值,得到存储决策信息。
12.一种码率分配装置,其特征在于,包括:
获取模块,用于获取目标视频数据;所述目标视频数据包括目标传输视频中所有视频片段的观看概率;
处理模块,用于根据所述观看概率对所述视频片段进行码率分配,以使所述目标传输视频的总效用满足目标值;所述目标传输视频的总效用根据所述视频片段的用户观看质量以及传输损耗确定,所述用户观看质量根据非新鲜度因子确定,所述非新鲜度因子根据所述视频片段在边缘节点的存储状态以及所述观看概率确定。
13.一种存储装置,其特征在于,包括:
确定模块,用于确定目标传输视频中所有视频片段的观看概率以及码率分配结果;
预测模块,用于根据所述码率分配结果以及所述观看概率,预测预期有效质量以及预期传输损耗;
优化模块,用于根据所述预期有效质量、所述预期传输损耗以及边缘节点的最大容量,进行存储优化处理,得到存储决策信息;所述存储决策信息包括每一所述视频片段的第三存储决策值,所述第三存储决策值表征所述视频片段是否需要存储于边缘节点;
存储模块,用于根据所述存储决策信息进行所述视频片段的存储;
所述确定目标传输视频中所有视频片段的观看概率以及码率分配结果,具体包括:
获取目标视频数据;所述目标视频数据包括目标传输视频中所有视频片段的观看概率;
根据所述观看概率对所述视频片段进行码率分配,以使所述目标传输视频的总效用满足目标值;所述目标传输视频的总效用根据所述视频片段的用户观看质量以及传输损耗确定,所述用户观看质量根据非新鲜度因子确定,所述非新鲜度因子根据所述视频片段在边缘节点的存储状态以及所述观看概率确定。
14.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-7任一项所述码率分配方法或者如权利要求8-11任一项所述存储方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1-7任一项所述码率分配方法或者如权利要求8-11任一项所述存储方法。
CN202111658162.0A 2021-12-30 2021-12-30 一种码率分配方法、存储方法、装置、设备及存储介质 Pending CN116419016A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111658162.0A CN116419016A (zh) 2021-12-30 2021-12-30 一种码率分配方法、存储方法、装置、设备及存储介质
PCT/CN2022/144132 WO2023125970A1 (zh) 2021-12-30 2022-12-30 一种码率分配方法、存储方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111658162.0A CN116419016A (zh) 2021-12-30 2021-12-30 一种码率分配方法、存储方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116419016A true CN116419016A (zh) 2023-07-11

Family

ID=86998190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111658162.0A Pending CN116419016A (zh) 2021-12-30 2021-12-30 一种码率分配方法、存储方法、装置、设备及存储介质

Country Status (2)

Country Link
CN (1) CN116419016A (zh)
WO (1) WO2023125970A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2106092A1 (en) * 2008-03-27 2009-09-30 British Telecommunications Public Limited Company Device content management
CA2975904C (en) * 2015-02-07 2023-02-14 Zhou Wang Method and system for smart adaptive video streaming driven by perceptual quality-of-experience estimations
CN108551586B (zh) * 2018-03-14 2020-06-05 上海交通大学 多用户360度视频流服务器端码率自适应分配方法及系统
US11310516B2 (en) * 2018-12-21 2022-04-19 Hulu, LLC Adaptive bitrate algorithm with cross-user based viewport prediction for 360-degree video streaming
CN110248212B (zh) * 2019-05-27 2020-06-02 上海交通大学 多用户360度视频流服务器端码率自适应传输方法及系统

Also Published As

Publication number Publication date
WO2023125970A1 (zh) 2023-07-06

Similar Documents

Publication Publication Date Title
US20200162795A1 (en) Systems and methods for internet video delivery
US20150033255A1 (en) Method for caching of data items in a chache area of a data processing system and corresponding device
Sun et al. Flocking-based live streaming of 360-degree video
US20190089643A1 (en) Combined method for data rate and field of view size adaptation for virtual reality and 360 degree video streaming
US20160286252A1 (en) Encoding Optimization Using Bitrate Range Comparisons for Encoded Segments
CN106851343B (zh) 用于视频直播的方法和装置
WO2011010688A1 (ja) コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信プログラム
US20110202633A1 (en) Cache server control device, content distribution system, method of distributing content, and program
US11758203B2 (en) Adaptive bitrate video cache
US20110202596A1 (en) Cache server control device, content distribution system, method of distributing content, and program
US20220224990A1 (en) Control apparatus, control method, and program
CN111093094A (zh) 视频转码方法、装置、系统及电子设备及可读存储介质
CN113282786B (zh) 一种基于深度强化学习的全景视频边缘协作缓存替换方法
CN110809167A (zh) 一种视频播放方法、装置、电子设备及存储介质
CN108777802B (zh) 一种缓存vr视频的方法和装置
US11070607B2 (en) Dynamic behavior modification for content download and playback
US8548042B2 (en) Video bitrate control method, video bitrate control apparatus, video bitrate control program, and computer-readable recording medium having the program recorded thereon
CN116419016A (zh) 一种码率分配方法、存储方法、装置、设备及存储介质
CN115988267B (zh) 一种基于dash的视频码率自适应调整方法及系统
CN111510771B (zh) 清晰度切换算法的选择方法、系统、设备及介质
US10841490B2 (en) Processing method and processing system for video data
CN116366876A (zh) 边云协同场景下影视资源部署和调度方法及系统
EP3886451A1 (en) Method for playing on a player of a client device a content streamed in a network
US20230138238A1 (en) Methods, systems, and media for streaming video content using adaptive buffers
US20230199267A1 (en) Method and apparatus for processing adaptive multi-view streaming

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication