CN111064962B - 一种视频传输***和方法 - Google Patents
一种视频传输***和方法 Download PDFInfo
- Publication number
- CN111064962B CN111064962B CN201911408868.4A CN201911408868A CN111064962B CN 111064962 B CN111064962 B CN 111064962B CN 201911408868 A CN201911408868 A CN 201911408868A CN 111064962 B CN111064962 B CN 111064962B
- Authority
- CN
- China
- Prior art keywords
- frame
- sub
- image
- video stream
- video
- 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.)
- Active
Links
Images
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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/187—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种视频传输***和方法,所述视频传输***包括:发送端、服务器和接收端;所述发送端将待传输的原始视频流的图像帧拆分为n个交织的子图像帧,按预设的顺序***n个由同一帧图像帧拆分的子图像帧,形成帧率为原始视频流的帧率的n倍的视频流,编码并将码流上传到服务器;服务器根据与接收端之间的带宽对码流拆包封包,保留n个子图像帧中的k个并传送到接收端;接收端解码,根据原始拆分的位置关系将子图像帧恢复到原始视频流的图像帧,或根据解码成功的子图像帧进行空间插值计算恢复原始视频流的图像帧,形成原始视频流。本发明使用标准的编解码器根据带宽选择合适的码流,有效地利用了带宽,且有很好的兼容性。
Description
技术领域
本发明属于视频通信技术领域,尤其涉及一种视频传输***和方法。
背景技术
目前,解决视频码流自适应传输的一种相对成熟的方案是可伸缩视频编码(SVC,Scalable Video Coding)。这种方案将原始视频编码为不同的帧率(时域可伸缩)、分辨率(空间可伸缩)或视频质量(质量可伸缩),将视频流分割为一个基础层和多个增强层,基础层为用户提供最基本的视频质量、帧率和分辨率,而增强层则对视频质量进行完善,使得不同的网絡和终端自适应地选择视频层解码。终端用户接收到的SVC层数越多,得到的视频质量越高。在传输过程中可以根据数据的重要程度通过时域可伸缩、空间可伸缩、质量可伸缩对视频码流进行调整,从而影响网络设备对该数据进行处理,即丢弃、延迟传输或继续传输,体现了良好的网络和终端适应性。
但该方案的主要问题在于,SVC不能够被传统的H.264、MPEG4编解码器兼容,并且还需要单独的SVC播放器来播放通过该方案保存的视频数据。因此,为了满足上述需要,必须升级视频通信***以及所使用的网络设备,从而导致SVC可伸缩视频编码的实际兼容性差,不能在大多数设备上使用。
发明内容
本发明为针对现有技术视频通信中因为数据包丢失而造成可察觉的视频流畅性降低,而使用SVC可伸缩视频编码的方式又兼容性差的缺陷,提供一种视频传输***和方法。
为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
本发明采用如下技术方案:
第一方面,本发明提供一种视频传输***,包括:发送端、服务器及接收端;
所述发送端包括:分割模块及编码模块,所述分割模块包括:拆分单元;
所述拆分单元,用于将原始视频流的图像帧拆分为n个交织的子图像帧,其中n≥2,以原始视频流的一帧为单位,在原始视频流一帧的时间间隔内,按预设的顺序***n个由同一帧图像帧拆分的子图像帧,形成一组子帧序列,按原始视频流的时间顺序排列各组子帧序列之间的顺序并组合形成第二视频流,所述第二视频流的帧率为原始视频流的帧率的n倍;
所述编码模块,用于对所述第二视频流进行编码,形成第二视频码流;
所述服务器用于根据自身与所述接收端之间的带宽对所述第二视频码流拆包封包,形成保留子帧序列中包含k个子图像帧的第三视频码流,其中k≤n,并传送所述第三视频码流至所述接收端;
所述接收端包括:合成模块及解码模块;
所述解码模块,用于对所述第三视频码流进行解码,形成第三视频流;
所述合成模块,用于根据原始拆分的位置关系将所述第三视频流中属于同一子帧序列的子图像帧恢复为一帧图像帧,并形成原始视频流,其中,若恢复后的图像帧是非完整的图像帧,则对该非完整的图像帧进行空间插值计算。
进一步的,所述编码模块还用于执行帧间预测,所述编码模块在执行帧间预测时,在所述第二视频码流中,若其中的一组子帧序列的第1帧为P帧,则该为P帧的第1帧参考前一组子帧序列的第1帧。
进一步的,所述编码模块还用于执行帧间预测,所述编码模块在执行帧间预测时,在所述第二视频码流中,在一个关键帧的周期内,除第1帧为I帧的子帧序列外,若一组子帧序列位于奇数位置,则该组位于奇数位置的子帧序列的第1帧参考前一组位于奇数位置的子帧序列的第1帧,若一组子帧序列位于偶数位置,则该组位于偶数位置的子帧序列的第1帧参考前一组子帧序列的第1帧。
进一步的,对于一组子帧序列中的任意第m帧,2≤m≤n,都有该第m帧参考本组子帧序列中第1至m-1帧中的其中一帧。
进一步的,对于一组子帧序列,非第1帧的数据帧均参考前一帧的数据帧。
进一步的,对于一组子帧序列,非第1帧的数据帧均参考本组子帧序列的第1帧的数据帧。
进一步的,所述发送端还包括:传送模块,用于将所述第二视频码流上传至所述服务器;所述接收端还包括:接收模块,用于接收所述服务器传送的第三视频码流。
进一步的,所述分割模块还包括:标注单元;所述合成模块还包括:判断单元;
所述标注单元用于对所述第二视频码流添加标注信息,所述标注信息用于说明所述第二视频码流的编码方式;
所述判断单元用于接收所述标注信息;
所述解码模块根据所述判断单元接收到的标注信息确定解码方式。
进一步的,所述拆分单元将原始视频流的图像帧拆分为2个交织的子图像帧,所述编码模块为SVC时域可分级编码器。
进一步的,所述拆分单元以隔行或隔列的方式将原始视频流的图像帧拆分为2个交织的子图像帧;或者,以隔行隔列方式将原始视频流的图像帧拆分为4个交织的子图像帧;或者,以纵横交错的方式将原始视频流的图像帧拆分为2个交织的子图像帧。
进一步的,所述拆分单元先将原始视频流的图像帧划分为若干个分辨率是3×2的图像块,将每个图像块的第二列的像素点标记为一号像素点,将每个图像块的第一行第一个像素点和第二行第三个像素点标记为二号像素点,将每个图像块的第一行第三个像素点和第二行第一个像素点标记为三号像素点,所有一号像素点的集合为第一子图像帧,所有二号像素点的集合为第二子图像帧,所有三号像素点的集合为第三子图像帧。
第二方面,本发明提供一种视频传输方法,包括以下步骤:
S1:将原始视频流的图像帧拆分为n个交织的子图像帧,其中n≥2;
S2:以原始视频流的一帧为单位,在原始视频流一帧的时间间隔内,按预设的顺序***n个由同一帧图像帧拆分的子图像帧,形成一组子帧序列;
S3:按原始视频流的时间顺序排列各组子帧序列之间的顺序并组合形成第二视频流,所述第二视频流的帧率为原始视频流的帧率的n倍;
S4:对所述第二视频流进行编码,形成第二视频码流;
S5:将所述第二视频码流上传到服务器;
S6:所述服务器根据带宽对所述第二视频码流拆包封包,形成保留子帧序列中包含k个子图像帧的第三视频码流,其中k≤n,传送第三视频码流;
S7:接收并解码所述第三视频码流,形成第三视频流;
S8:根据原始拆分的位置关系将所述第三视频流中属于同一子帧序列的子图像帧恢复为一帧图像帧,并形成原始视频流,其中,若恢复后的图像帧是非完整的图像帧,则对该非完整的图像帧进行空间插值计算。
进一步的,步骤S4的编码过程还包括以下步骤:
S41:执行帧间预测,在执行帧间预测时,在所述第二视频码流中,若其中的一组子帧序列的第1帧为P帧,则该为P帧的第1帧参考前一组子帧序列的第1帧。
进一步的,步骤S4的编码过程还包括以下步骤:
S42:执行帧间预测,在执行帧间预测时,在所述第二视频码流中,在一个关键帧的周期内,除第1帧为I帧的子帧序列外,若一组子帧序列位于奇数位置,则该组位于奇数位置的子帧序列的第1帧参考前一组位于奇数位置的子帧序列的第1帧,若一组子帧序列位于偶数位置,则该组位于偶数位置的子帧序列的第1帧参考前一组子帧序列的第1帧。
进一步的,步骤S4的编码过程还包括以下步骤:
S43:对于一组子帧序列中任意的第m帧,2≤m≤n,都有该第m帧参考第1至m-1帧中的其中一帧。
进一步的,步骤S43还包括以下步骤:
S431:对于一组子帧序列,非第1帧的数据帧均参考前一帧的数据帧。
进一步的,步骤S43还包括以下步骤:
S432:对于一组子帧序列,非第1帧的数据帧均参考本组子帧序列的第1帧的数据帧。
进一步的,所述编码模块能够执行帧内预测。
进一步的,步骤S4还包括标注步骤,步骤S7在解码之前还包括判断步骤;
所述标注步骤是指对所述第二视频码流添加标注信息,所述标注信息用于说明所述第二视频码流的编码方式;
所述判断步骤是指根据所述标注信息确定解码方式。
进一步的,步骤S1中以隔行或隔列的方式将原始视频流的图像帧拆分为2个交织的子图像帧;或者,以隔行隔列方式将原始视频流的图像帧拆分为4个交织的子图像帧;或者,以纵横交错的方式将原始视频流的图像帧拆分为2个交织的子图像帧。
进一步的,在步骤S1中,先将原始视频流的图像帧划分为若干个分辨率是3×2的图像块,将每个图像块的第二列的像素点标记为一号像素点,将每个图像块的第一行第一个像素点和第二行第三个像素点标记为二号像素点,将每个图像块的第一行第三个像素点和第二行第一个像素点标记为三号像素点,所有一号像素点的集合为第一子图像帧,所有二号像素点的集合为第二子图像帧,所有三号像素点的集合为第三子图像帧。
本发明所带来的有益效果:
1、根据可用带宽选择一路码流,在接收端进行空间插值恢复原图像,避免了网络丢包,保持了视频通信的流畅性;
2、本发明使用了多种不同的P帧参考方式,避免恢复后的视频流颜色偏差过大;
3、使用标准的编解码器,不需要对网络进行改造;
4、选择适合当前带宽的码流进行传输,最大程度地利用带宽。
附图说明
图1是本发明实施例一的整体示意图;
图2是本发明的隔行拆分方式的示意图;
图3是本发明的2×2拆分方式的示意图;
图4是本发明的3×2拆分方式的示意图;
图5是本发明的纵横交错拆分方式的示意图;
图6是本发明的2×2拆分方式的插帧示意图;
图7是本发明的2×2拆分方式的发送示意图;
图8是本发明的2×2拆分方式的接收示意图;
图9是本发明的一种帧间预测参考示意图;
图10是本发明的另一种帧间预测参考示意图;
图11是本发明实施例二的流程示意图;
图12是本发明步骤S4的流程示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
如图1所示,本发明公开了一种视频传输***,该视频传输***包括:发送端10、服务器20和一个或多个接收端30。
其中,发送端10包括:分割模块11、编码模块12和传送模块13。
分割模块11包括:拆分单元111。
拆分单元111接收视频源40的原始视频流。拆分单元111用于将原始视频流的图像帧拆分为n个交织的子图像帧,其中n大于等于2,以原始视频流的一帧为单位,在原始视频流每帧的时间间隔内,按预设的顺序***n个由同一帧图像帧拆分的子图像帧,形成一组子帧序列,按原始视频流的时间顺序排列各组子帧序列之间的顺序并组合形成第二视频流,所述第二视频流的帧率为原始视频流的帧率的n倍。
编码模块12用于对第二视频流进行编码,形成第二视频码流。
传送模块13用于将第二视频码流上传到服务器20。
服务器20用于根据服务器20与接收端30之间的带宽对第二视频码流拆包封包,形成保留子帧序列中包含k个子图像帧的第三视频码流,其中k小于等于n,并传送第三视频码流至接收端。
接收端30包括:接收模块31、合成模块32和解码模块33。
接收模块31用于接收服务器20传送的第三视频码流。
解码模块33用于对第三视频码流进行解码,形成第三视频流。
合成模块32用于根据原始拆分的位置关系将第三视频流中属于同一子帧序列的子图像帧恢复为一帧图像帧,并形成原始视频流,若恢复后的图像帧是非完整的图像帧,则对该非完整的图像帧进行空间插值计算。
如图2所示,拆分单元111以隔行的方式将原始视频流的图像帧拆分为2个交织的子图像帧,分别是奇数行的子图像帧1和偶数行的子图像帧2,假设原始视频流的分辨率是1920×1080,那么奇数行的子图像帧1和偶数行的子图像帧2的分辨率就是1920×540。当然,拆分单元111也可以采用隔列的方式拆分,形成奇数列和偶数列的子图像帧,此时两个子图像帧的分辨率就是960×1080。
如图3所示,其展示了拆分单元111的另外一种拆分方式,拆分单元111以隔行隔列方式将原始视频流的图像帧拆分为4个交织的子图像帧,形成左上方集合的子图像帧1、右上方集合的子图像帧2、左下方集合的子图像帧3和右下方集合的子图像帧4,假设原始视频流的分辨率是1920×1080,那么此时子图像帧1-4的分辨率均为960×540。
如图4所示,其展示了拆分单元111的另外一种拆分方式。在这种拆分方式中,先将原始视频流的图像帧划分为若干个分辨率是3×2的图像块,将每个图像块的第二列的像素点标记为一号像素点,将每个图像块的第一行第一个像素点和第二行第三个像素点标记为二号像素点,将每个图像块的第一行第三个像素点和第二行第一个像素点标记为三号像素点,所有一号像素点的集合为第一子图像帧,所有二号像素点的集合为第二子图像帧,所有三号像素点的集合为第三子图像帧。当然,在上述拆分方法的思路的指导下,也可以将原始视频流的图像帧划分为若干个分辨率是2×3的图像块。
图2-4只是示例性地展示了隔行的拆分方式和2×2的拆分方式,本领域技术人员可以根据实际需要,采用4×2,即2行4列,8个子图像帧,或3×3,即3行3列,9个子图像帧等拆分方式。也可以如图5所示,采用如国际象棋棋盘般拆分,以纵横交错的方式将原始视频流的图像帧拆分为2个交织的子图像帧。
如图6所示,图6采用的是前述的2×2的拆分方式对原始视频流的图像帧进行拆分。以原始视频流的一帧为单位,在原始视频流每帧的时间间隔内,即A帧与B帧之间的时间间隔内,按预设的顺序***4个由同一帧图像帧A拆分的子图像帧A1-A4,形成了关于A帧的子帧序列A1A2A3A4。图6中对于子图像帧A1-A4***的预设的顺序是1-2-3-4,本领域技术人员也可以根据实际的需要采用其他的顺序***,如1-3-2-4。接着继续以相同的方法拆分***B、C帧,形成了关于B、C帧的子帧序列,直到把原始视频流的所有图像帧都拆分完为止。
对原始视频流的所有图像帧进行拆分***后,形成了多组子帧序列,然后按原始视频流的时间顺序排列各组子帧序列之间的顺序,形成第二视频流,即如图6所示,形成序列为A1A2A3A4B1B2B3B4C1C2C3C4……的第二视频流。假设原始视频流的分辨率是1920×1080,帧率是30fps,经过拆分单元1110的处理,把原来1帧的图像变成了4帧,帧率变成了原来的4倍,所以此时分辨率为960×540,帧率是120fps的第二视频流。如果采用隔行的方式拆分的话,分辨率是1920×540,帧率是60fps,如果采用隔列的方式拆分的话,分辨率是960×1080,帧率也是60fps;如果采用如图4所示的拆分方式,则分辨率是640×1080,帧率是90fps。
形成第二视频流后,编码模块对第二视频流进行编码,形成第二视频码流,传送模块将第二视频码流上传到服务器。服务器根据其与各个接收端之间的带宽对第二视频码流拆包封包,形成第三视频码流,然后传送第三视频码流到接收端处。根据与各个接收端之间的带宽,服务器选择不变或减小第二视频码流的大小,例如前述所形成的是分辨率为960×540,帧率是120fps的第二视频流,并编码成分辨率为960×540,帧率是120fps的视频码流,但如图7所示,接收端二与服务器的带宽不足以传输该120fps的视频码流,为了避免出现丢包的情况,可以选择传输接收第二视频码流一半大小的视频码流,此时服务器可以根据时间戳,只保留各组子帧序列中序号为1、3的子图像帧,即此时k=2,形成第三视频码流,此时第三视频流的序列是A1A3B1B3C1C3……其分辨率还是960×540,帧率降低至原来的一半,为60fps。同理,接收端三只适合接收第二视频码流四分之一大小的视频码流,服务器则对第二视频码流拆包封包,形成分辨率是960×540,帧率是30fps第三视频码流。另外,如果如图7所示,服务器与接收端之间的带宽足够传输第二视频码流,那么就直接把第二视频码流作为第三视频码流传输。
这里必须指出的是,除了以上所说的通过时间戳的方法来保留子帧序列中序号为1、3的子图像帧外,本领域技术人员还可以采用其它的拆包封包方法来保留其中的子图像帧。另外,保留子帧序列中序号为1、3的子图像帧只是一种象征性的举例,本领域技术人员还可以采用其他序列的组合来保留,如2-4等。另外,为了往后的用于恢复图像的空间插值步骤的算法能够较为简洁,对2×2的拆分方式通常如图7所示设置3档,分别是100%、50%和25%,即只分别保留4、2或1个子图像帧,但如果为了有更好的输出画面,也可以增加75%档,此时相应的帧率是90fps。
如图1所示,接收端的接收模块31接收到服务器20传送的第三视频码流后,将第三视频码流交给解码模块33解码,形成第三视频流。合成模块32根据原始拆分的位置关系将第三视频流中属于同一子帧序列的子图像帧恢复为一帧图像帧,并形成原始视频流,若恢复后的图像帧是非完整的图像帧,则对该非完整的图像帧进行空间插值计算。继续上述图7中的例子,假设现在的接收端是接收端一,接收端一的解码模块对第三视频码流进行解码,如图8所示,得到分辨率是960×540,帧率是120fps的第三视频流(100%),此时的第三视频流相对于第二视频流是没有丢弃帧的,合成模块32直接根据原始拆分的位置关系将第三视频流的图像帧恢复为一帧原始视频流的图像帧,继而形成原始视频流。假设现在的接收端是接收端二,接收端二的解码模块对第三视频码流进行解码,如图8所示,得到分辨率是960×540,帧率是60fps的第三视频流(50%),该视频流的序列是A1A3B1B3C1C3……合成模块32根据原始拆分的位置关系对第三视频流的图像帧进行合成,仅得到了原始视频流的图像帧的奇数列的图像帧,即分别率是960×1080,此时的每一帧恢复后的图像帧都是非完整的图像帧,需要对该非完整的图像帧进行空间插值计算,所以对偶数列进行空间插值计算恢复到原始视频流的图像帧,即通过空间插值计算,将非完整的图像帧恢复到原始视频流的A、B、C等帧,继而形成原始视频流。这里必须指出的是,恢复得到的原始视频流与来自视频源的原始视频流具有相同的分辨率和帧率,即接收端二最后输出的视频流依然是分辨率为1920×1080,帧率是30fps。
在一个实施方式中,所述编码模块能够执行帧间预测,在执行帧间预测时,在第二视频码流中,若其中的一组子帧序列的第1帧为P帧,则该第1帧参考前一组子帧序列的第1帧。
执行帧间预测能够有效地压缩视频流,但如果使用一般的编码模块对如图4所示的第二视频流进行帧间预测编码,后面的帧只能够参考前一帧,例如,A2帧参考A1帧,A3帧参考A2帧,A4帧参考A3帧,B1帧参考A4帧……实际上,B1帧跟A1帧在原始图像帧中的位置是相同的,但B1帧的获得却参考了A2-A4帧这些与其位置不相同的帧,所以颜色偏差会很大。另外,由于服务器会根据带宽只保留部分子图像帧,所以如果采用上述一般方法的帧间预测,则有可能部分被保留下来的子图像帧所参考的图像帧没有被保留下来,导致该部分保留的子图像帧没有图像帧可以参考。因此,如图9所示,在第二视频码流中,若其中的一组子帧序列的第1帧为P帧,则该第1帧参考前一组子帧序列的第1帧。图9中A1帧是I帧,不需要参考任何的帧,B1和C1分别是B组子帧序列的第1帧和C组子帧序列的第1帧,且B1和C1帧都是P帧,令B1帧参考前一组子帧序列的第1帧,即A1帧,令C1帧参考前一组子帧序列的第1帧,即B1帧。这样做是为了对每组子帧序列的第1帧都进行校正,所以可以有效地避免颜色偏差。
如图10所示,其展示了另外一种各组子帧序列之间的图像帧的参考方法。在第二视频码流中,在一个关键帧的周期内,除第1帧为I帧的子帧序列外,位于奇数位置的一组子帧序列中的第1帧参考前一组位于奇数位置的子帧序列中的第1帧,位于偶数位置的一组子帧序列中的第1帧参考前一组位于奇数位置的子帧序列中的第1帧。图10中,各组子帧序列是按照AA’BB’CC’的顺序排列,它们都在一个关键帧的周期内(GOP,Group of Pictures),通常一个关键帧的周期内,包括至少一个I帧,I帧作为每个关键帧的周期内的第一个帧。其中A、B、C分别是位于奇数位置的一组子帧序列,A’、B’、C’分别是位于偶数位置的一组子帧序列。其中,A组子帧序列的第1帧A1帧是I帧,不需要参考任何的帧,位于奇数位置的子帧序列B、C中的第1帧B1、C1帧都是P帧,令B1帧参考前一组位于奇数位置的子帧序列的第1帧,即A1帧,令C1帧参考前一组位于奇数位置的子帧序列的第1帧,即B1帧。位于偶数位置的子帧序列A’、B’、C’中的第1帧A’1、B’1、C’1帧都是P帧,令它们都参考前一组位于奇数位置的子帧序列中的第1帧,即A’1参考A1,B’1参考B1,C’1参考C1。这里必须指出的是,这里所说的奇偶位置是指一组子帧序列在在一个关键帧的周期内的奇偶位置,而不是该组子帧序列在整个第二视频流当中的奇偶位置。
使用了图10所示的跳帧方式,在一个关键帧的周期内,每组位于奇数位置的子帧序列的第1帧作为后两组子帧序列的第1帧的参考标准,可以有效避免后两组子帧序列的颜色发生严重偏差。另外,如果使用如图9所示的方法,若其中的一组位于偶数位置的子帧序列的第1帧出现错误,则后面的所有的图像帧也会受其影响而产生错误。但使用图10所示的跳帧方式,由于位于奇数位置的子帧序列的第1帧参考前一组位于奇数位置的子帧序列的第1帧,所以即使位于偶数位置的子帧序列的第1帧出现错误,后面组的子帧序列也不会受到影响,提高了视频的稳定性。
对于每组子帧序列,由于其第1帧已经经过上述方法的校准,所以颜色是比较准确的,可以作为本组子帧序列的基准帧来参考,以进一步减少颜色偏差。
如图9或图10所示,子帧序列内的基准帧的参考方法有两种,第一种方法如图9或图10的实线箭头所示,非第1帧的数据帧均参考前一帧的数据帧,另一种方法如图9或图10的虚线箭头所示,非第1帧的数据帧均参考本组子帧序列的第1帧。图9或图10的实线箭头和虚线箭头只是一种示例性的展示,当然也可以二者混合,例如,第2帧参考第1帧,第3帧参考1帧,第4帧参考第2帧。但不论是何种情况,都要是以第1帧为基准,即对于子帧序列中任意的第m帧,2≤m≤n,都有该第m帧参考第1至m-1帧中的其中一帧。
在一个实施方式中,所述编码模块能够执行帧内预测。
在一种实施方式中,所述拆分单元将原始视频流的图像帧拆分为2个交织的子图像帧,所述编码模块为SVC时域可分级编码器。因为SVC时域可分级编码器的特点是奇数帧参考前一个奇数帧,偶数帧参考前一个奇数帧。而当只有两个子图像帧时,所有子帧序列中的第1帧都是第二视频流中的奇数帧,所有子帧序列中的第2帧都是第二视频流中的偶数帧。此时,子帧序列的第1帧参考前一组子帧序列的第1帧就变成了奇数帧参考前一个奇数帧;每组子帧序列内的第2帧也只有前一帧可以参考,即偶数帧参考前一个奇数帧。因此,拆分为2个交织的子图像帧时,使用SVC时域可分级编码器也能够实现上述功能。当然,拆分为2个交织的子图像帧的方式是多种多样的,如采用前述的隔行或隔列的方式或纵横交错的方式等。
在一种实施方式中,分割模块11还包括:标注单元112,合成模块32还包括:判断单元322;所述标注单元112用于对第二视频码流添加标注信息,所述标注信息用于说明所述第二视频码流的编码方式;所述判断单元322用于接收所述标注信息;所述解码模块33根据所述标注信息确定解码方式。这样做可以提高本发明的视频传输***的适应性,能用作普通的不对视频帧进行分割的传输***使用。为没有经过分割采用普通编码方式编码的视频和经过分割采用上述的帧间参考方法编码标注不同的信息,解码器根据不同的信息使用不同的解码方式,使本发明也能够作为一般的发送装置使用。
本发明能够根据服务器与接收端之间不同的带宽,选择不同大小的视频码流,在接收端进行空间插值恢复原图像,避免了网络丢包,保持了视频通信的流畅性,最大程度地利用带宽。另外,本发明使用了多种不同的P帧参考方式,避免了恢复后的视频流出现视频颜色偏差大的情况。而且,本发明使用的是标准的编解码器,不需要对网络进行改造。
实施例二
相应于实施例一的视频传输***的实施例,本发明还提供一种视频传输方法,如图11和12所示,所述视频传输方法包括以下步骤:
S1:将待传输的原始视频流的图像帧拆分为n个交织的子图像帧,其中n大于等于2;
S2:以原始视频流的一帧为单位,在原始视频流每帧的时间间隔内,按预设的顺序***n个由同一帧图像帧拆分的子图像帧,形成一组子帧序列;
S3:按原始视频流的时间顺序排列各组子帧序列之间的顺序并组合形成第二视频流,所述第二视频流的帧率为原始视频流的帧率的n倍;
S4:对第二视频流进行编码,形成第二视频码流;
S5:将第二视频码流上传到服务器;
S6:服务器根据带宽对第二视频码流拆包封包,形成保留子帧序列中包含k个子图像帧的第三视频码流,其中k小于等于n,发送第三视频码流;
S7:接收并解码第三视频码流,形成第三视频流;
S8:根据原始拆分的位置关系将第三视频流中属于同一子帧序列的子图像帧恢复到原始视频流的图像帧,并形成原始视频流,其中,若恢复后的图像帧是非完整的图像帧,则对该非完整的图像帧进行空间插值计算。
通过以上步骤,该视频传输方法能够实现实施例一中的***的功能。
在一个实施方式中,步骤S4的编码过程还包括以下步骤:
S41:执行帧间预测,在执行帧间预测时,在第二视频码流中,若其中的一组子帧序列的第1帧为P帧,则该为P帧的第1帧参考前一组子帧序列的第1帧。
在一个实施方式中,步骤S4的编码过程还包括以下步骤:
S42:执行帧间预测,在执行帧间预测时,在第二视频码流中,在一个关键帧的周期内,除第1帧为I帧的子帧序列外,位于奇数位置的子帧序列的第1帧参考前一组位于奇数位置的子帧序列的第1帧,位于偶数位置的子帧序列的第1帧参考前一组位于奇数位置的子帧序列的第1帧。
如实施例一中的介绍,上述步骤S4的两种跳帧步骤都能有效防止恢复后的原始视频流图像的颜色产生偏差。
在一个实施方式中,步骤S4的编码过程还包括以下步骤:
S43:对于一组子帧序列中的任意的第m帧,2≤m≤n,都有该第m帧参考第1至m-1帧中的其中一帧。
在一个实施方式中,步骤S43的编码过程还包括以下步骤:
S431:对于一组子帧序列,非第1帧的数据帧均参考前一帧的数据帧。
在一个实施方式中,步骤S43的编码过程还包括以下步骤:
S432:对于一组子帧序列,非第1帧的数据帧均参考本组子帧序列的第1帧的数据帧。
如实施例一中的介绍,上述步骤S4中的子帧序列组内的跳帧步骤都能进一步防止恢复后的原始视频流图像的颜色产生偏差。
在一个实施方式中,所述编码模块能够执行帧内预测。
在一个实施方式中,步骤S4还包括标注步骤,步骤S7在解码之前还包括判断步骤;
标注步骤,对第二视频码流添加标注信息,所述标注信息用于说明所述第二视频码流的编码方式;
判断步骤,根据所述标注信息确定解码方式。
增加标注步骤和判断步骤能提高本方法的适应性,能作为普通的不对视频帧进行分割的传输方法使用。
在一个实施方式中,步骤S1中以隔行或隔列的方式将原始视频流的图像帧拆分为2个交织的子图像帧;或者,以隔行隔列方式将原始视频流的图像帧拆分为4个交织的子图像帧;或者,以纵横交错的方式将原始视频流的图像帧拆分为2个交织的子图像帧。拆分子图像帧的数量越多,传输的分级就越多,越有利于后续根据不同的带宽选择合适的码流大小传输。
在一个实施方式中,在步骤S1中,先将原始视频流的图像帧划分为若干个分辨率是3×2的图像块,将每个图像块的第二列的像素点标记为一号像素点,将每个图像块的第一行第一个像素点和第二行第三个像素点标记为二号像素点,将每个图像块的第一行第三个像素点和第二行第一个像素点标记为三号像素点,所有一号像素点的集合为第一子图像帧,所有二号像素点的集合为第二子图像帧,所有三号像素点的集合为第三子图像帧。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (21)
1.一种视频传输***,其特征在于,包括:发送端、服务器及接收端;
所述发送端包括:分割模块及编码模块,所述分割模块包括:拆分单元;
所述拆分单元,用于将原始视频流的图像帧拆分为n个交织的子图像帧,其中n≥2,以原始视频流的一帧为单位,在原始视频流一帧的时间间隔内,按预设的顺序***n个由同一帧图像帧拆分的子图像帧,形成一组子帧序列,按原始视频流的时间顺序排列各组子帧序列之间的顺序并组合形成第二视频流,所述第二视频流的帧率为原始视频流的帧率的n倍;
所述编码模块,用于对所述第二视频流进行编码,形成第二视频码流;
所述服务器用于根据自身与所述接收端之间的带宽对所述第二视频码流拆包封包,形成保留子帧序列中包含k个子图像帧的第三视频码流,其中k≤n,并传送所述第三视频码流至所述接收端;
所述接收端包括:合成模块及解码模块;
所述解码模块,用于对所述第三视频码流进行解码,形成第三视频流;
所述合成模块,用于根据原始拆分的位置关系将所述第三视频流中属于同一子帧序列的子图像帧恢复为一帧图像帧,并形成原始视频流,其中,若恢复后的图像帧是非完整的图像帧,则对该非完整的图像帧进行空间插值计算。
2.根据权利要求1所述的一种视频传输***,其特征在于,所述编码模块还用于执行帧间预测,所述编码模块在执行帧间预测时,在所述第二视频码流中,若其中的一组子帧序列的第1帧为P帧,则该为P帧的第1帧参考前一组子帧序列的第1帧。
3.根据权利要求1所述的视频传输***,其特征在于,所述编码模块还用于执行帧间预测,所述编码模块在执行帧间预测时,在所述第二视频码流中,在一个关键帧的周期内,除第1帧为I帧的子帧序列外,若一组子帧序列位于奇数位置,则该组位于奇数位置的子帧序列的第1帧参考前一组位于奇数位置的子帧序列的第1帧,若一组子帧序列位于偶数位置,则该组位于偶数位置的子帧序列的第1帧参考前一组子帧序列的第1帧。
4.根据权利要求2或3所述的视频传输***,其特征在于,对于一组子帧序列中的任意第m帧,2≤m≤n,都有该第m帧参考本组子帧序列中第1至m-1帧中的其中一帧。
5.根据权利要求4所述的视频传输***,其特征在于,对于一组子帧序列,非第1帧的数据帧均参考前一帧的数据帧。
6.根据权利要求4所述的视频传输***,其特征在于,对于一组子帧序列,非第1帧的数据帧均参考本组子帧序列的第1帧的数据帧。
7.根据权利要求1、2、3、5或6所述的一种视频传输***,其特征在于,所述发送端还包括:传送模块,用于将所述第二视频码流上传至所述服务器;所述接收端还包括:接收模块,用于接收所述服务器传送的第三视频码流。
8.根据权利要求7所述的一种视频传输***,其特征在于,所述分割模块还包括:标注单元;所述合成模块还包括:判断单元;
所述标注单元用于对所述第二视频码流添加标注信息,所述标注信息用于说明所述第二视频码流的编码方式;
所述判断单元用于接收所述标注信息;
所述解码模块根据所述判断单元接收到的标注信息确定解码方式。
9.根据权利要求1所述的视频传输***,其特征在于,所述拆分单元将原始视频流的图像帧拆分为2个交织的子图像帧,所述编码模块为SVC时域可分级编码器。
10.根据权利要求1、2、3、5或6所述的视频传输***,其特征在于,所述拆分单元以隔行或隔列的方式将原始视频流的图像帧拆分为2个交织的子图像帧;或者,以隔行隔列方式将原始视频流的图像帧拆分为4个交织的子图像帧;或者,以纵横交错的方式将原始视频流的图像帧拆分为2个交织的子图像帧。
11.根据权利要求1、2、3、5或6所述的视频传输***,其特征在于,所述拆分单元先将原始视频流的图像帧划分为若干个分辨率是3×2的图像块,将每个图像块的第二列的像素点标记为一号像素点,将每个图像块的第一行第一个像素点和第二行第三个像素点标记为二号像素点,将每个图像块的第一行第三个像素点和第二行第一个像素点标记为三号像素点,所有一号像素点的集合为第一子图像帧,所有二号像素点的集合为第二子图像帧,所有三号像素点的集合为第三子图像帧。
12.一种视频传输方法,其特征在于,包括以下步骤:
S1:将原始视频流的图像帧拆分为n个交织的子图像帧,其中n≥2;
S2:以原始视频流的一帧为单位,在原始视频流一帧的时间间隔内,按预设的顺序***n个由同一帧图像帧拆分的子图像帧,形成一组子帧序列;
S3:按原始视频流的时间顺序排列各组子帧序列之间的顺序并组合形成第二视频流,所述第二视频流的帧率为原始视频流的帧率的n倍;
S4:对所述第二视频流进行编码,形成第二视频码流;
S5:将所述第二视频码流上传到服务器;
S6:所述服务器根据带宽对所述第二视频码流拆包封包,形成保留子帧序列中包含k个子图像帧的第三视频码流,其中k≤n,传送第三视频码流;
S7:接收并解码所述第三视频码流,形成第三视频流;
S8:根据原始拆分的位置关系将所述第三视频流中属于同一子帧序列的子图像帧恢复为一帧图像帧,并形成原始视频流,其中,若恢复后的图像帧是非完整的图像帧,则对该非完整的图像帧进行空间插值计算。
13.根据权利要求12所述的视频传输方法,其特征在于,步骤S4的编码过程还包括以下步骤:
S41:执行帧间预测,在执行帧间预测时,在所述第二视频码流中,若其中的一组子帧序列的第1帧为P帧,则该为P帧的第1帧参考前一组子帧序列的第1帧。
14.根据权利要求12所述的视频传输方法,其特征在于,步骤S4的编码过程还包括以下步骤:
S42:执行帧间预测,在执行帧间预测时,在所述第二视频码流中,在一个关键帧的周期内,除第1帧为I帧的子帧序列外,若一组子帧序列位于奇数位置,则该组位于奇数位置的子帧序列的第1帧参考前一组位于奇数位置的子帧序列的第1帧,若一组子帧序列位于偶数位置,则该组位于偶数位置的子帧序列的第1帧参考前一组子帧序列的第1帧。
15.根据权利要求13或14所述的视频传输方法,其特征在于,步骤S4的编码过程还包括以下步骤:
S43:对于一组子帧序列中任意的第m帧,2≤m≤n,都有该第m帧参考第1至m-1帧中的其中一帧。
16.根据权利要求15所述的视频传输方法,其特征在于,步骤S43还包括以下步骤:
S431:对于一组子帧序列,非第1帧的数据帧均参考前一帧的数据帧。
17.根据权利要求15所述的视频传输方法,其特征在于,步骤S43还包括以下步骤:
S432:对于一组子帧序列,非第1帧的数据帧均参考本组子帧序列的第1帧的数据帧。
18.根据权利要求12、13、14、16或17所述的视频传输方法,其特征在于,- 编码模块能够执行帧内预测。
19.根据权利要求12、13、14、16或17所述的视频传输方法,其特征在于,步骤S4还包括标注步骤,步骤S7在解码之前还包括判断步骤;
所述标注步骤是指对所述第二视频码流添加标注信息,所述标注信息用于说明所述第二视频码流的编码方式;
所述判断步骤是指根据所述标注信息确定解码方式。
20.根据权利要求12、13、14、16或17所述的视频传输方法,其特征在于,步骤S1中以隔行或隔列的方式将原始视频流的图像帧拆分为2个交织的子图像帧;或者,以隔行隔列方式将原始视频流的图像帧拆分为4个交织的子图像帧;或者,以纵横交错的方式将原始视频流的图像帧拆分为2个交织的子图像帧。
21.根据权利要求12、13、14、16或17所述的视频传输方法,其特征在于,在步骤S1中,先将原始视频流的图像帧划分为若干个分辨率是3×2的图像块,将每个图像块的第二列的像素点标记为一号像素点,将每个图像块的第一行第一个像素点和第二行第三个像素点标记为二号像素点,将每个图像块的第一行第三个像素点和第二行第一个像素点标记为三号像素点,所有一号像素点的集合为第一子图像帧,所有二号像素点的集合为第二子图像帧,所有三号像素点的集合为第三子图像帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911408868.4A CN111064962B (zh) | 2019-12-31 | 2019-12-31 | 一种视频传输***和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911408868.4A CN111064962B (zh) | 2019-12-31 | 2019-12-31 | 一种视频传输***和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111064962A CN111064962A (zh) | 2020-04-24 |
CN111064962B true CN111064962B (zh) | 2022-02-15 |
Family
ID=70305403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911408868.4A Active CN111064962B (zh) | 2019-12-31 | 2019-12-31 | 一种视频传输***和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111064962B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770333B (zh) * | 2020-07-17 | 2022-05-24 | 广州市奥威亚电子科技有限公司 | 一种图像合并方法和*** |
CN111770347A (zh) * | 2020-07-17 | 2020-10-13 | 广州市奥威亚电子科技有限公司 | 一种视频传输方法及*** |
CN115550688A (zh) * | 2021-06-30 | 2022-12-30 | 华为技术有限公司 | 视频码流的处理方法、介质、程序产品和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047860A (zh) * | 2006-03-27 | 2007-10-03 | 华为技术有限公司 | 交织模式下的视频分层编码方法 |
CN101127918A (zh) * | 2007-09-25 | 2008-02-20 | 腾讯科技(深圳)有限公司 | 一种视频容错控制***及方法 |
CN101252686A (zh) * | 2008-03-20 | 2008-08-27 | 上海交通大学 | 基于交织预测的视频帧内无损编解码方法及*** |
CN102724560A (zh) * | 2012-06-28 | 2012-10-10 | 广东威创视讯科技股份有限公司 | 视频数据显示方法及其装置 |
CN103636228A (zh) * | 2011-04-28 | 2014-03-12 | 三星电子株式会社 | 用于调整无线通信***中的数据发送速率的方法和设备 |
CN103916675A (zh) * | 2014-03-25 | 2014-07-09 | 北京工商大学 | 一种基于条带划分的低延迟帧内编码方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2497751B (en) * | 2011-12-19 | 2015-03-04 | Canon Kk | Method of transmitting video information over a wireless multi-path communication link and corresponding wireless station |
US11153578B2 (en) * | 2018-04-27 | 2021-10-19 | Ati Technologies Ulc | Gradient texturing compression codec |
-
2019
- 2019-12-31 CN CN201911408868.4A patent/CN111064962B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047860A (zh) * | 2006-03-27 | 2007-10-03 | 华为技术有限公司 | 交织模式下的视频分层编码方法 |
CN101127918A (zh) * | 2007-09-25 | 2008-02-20 | 腾讯科技(深圳)有限公司 | 一种视频容错控制***及方法 |
CN101252686A (zh) * | 2008-03-20 | 2008-08-27 | 上海交通大学 | 基于交织预测的视频帧内无损编解码方法及*** |
CN103636228A (zh) * | 2011-04-28 | 2014-03-12 | 三星电子株式会社 | 用于调整无线通信***中的数据发送速率的方法和设备 |
CN102724560A (zh) * | 2012-06-28 | 2012-10-10 | 广东威创视讯科技股份有限公司 | 视频数据显示方法及其装置 |
CN103916675A (zh) * | 2014-03-25 | 2014-07-09 | 北京工商大学 | 一种基于条带划分的低延迟帧内编码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111064962A (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111064962B (zh) | 一种视频传输***和方法 | |
US7693220B2 (en) | Transmission of video information | |
US6081551A (en) | Image coding and decoding apparatus and methods thereof | |
US8179420B2 (en) | Minimal decoding method for spatially multiplexing digital video pictures | |
CN105765980B (zh) | 传输装置、传输方法、接收装置和接收方法 | |
CN1801944B (zh) | 用于视频编码和解码的方法和设备 | |
TWI279742B (en) | Method for coding sequences of pictures | |
EP1811787A2 (en) | Picture encoding method and apparatus and picture decoding method and apparatus | |
CN107995493B (zh) | 一种全景视频的多描述视频编码方法 | |
CN103814572B (zh) | 帧兼容的全分辨率立体3d压缩和解压缩 | |
US20100034293A1 (en) | Method and apparatus of multi-view coding and decoding | |
KR101632076B1 (ko) | 우선순위에 따른 스테레오스코픽 영상 데이터의 전송 장치 및 방법 | |
KR20080095833A (ko) | 무선 매체를 통한 전송을 위해 비압축 비디오를 분할하여인코딩하는 방법 및 시스템 | |
JP5768332B2 (ja) | 送信機、受信機及び通信システム | |
CN1250193A (zh) | 运动图像专家组数据流切换方法 | |
EP2932711B1 (en) | Apparatus and method for generating and rebuilding a video stream | |
CN113630597B (zh) | 一种与编解码无关的视频抗丢包的方法和*** | |
CN102804791A (zh) | 接收装置、发送装置、通信***、接收装置控制方法和程序 | |
CN111770347A (zh) | 一种视频传输方法及*** | |
US10477246B2 (en) | Method for encoding streams of video data based on groups of pictures (GOP) | |
KR20080022071A (ko) | 패킷 손실에 대한 강인성을 향상시킬 수 있는 데이터 전송시스템 및 방법 | |
US9001892B2 (en) | Moving image encoder and moving image decoder | |
EP1719343A1 (en) | Transmission of video information | |
Zare et al. | Self-contained slices in H. 264 for partial video decoding targeting 3D light-field displays | |
CN111770333B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |