CN112312136B - 码流控制方法及装置 - Google Patents

码流控制方法及装置 Download PDF

Info

Publication number
CN112312136B
CN112312136B CN202011023000.5A CN202011023000A CN112312136B CN 112312136 B CN112312136 B CN 112312136B CN 202011023000 A CN202011023000 A CN 202011023000A CN 112312136 B CN112312136 B CN 112312136B
Authority
CN
China
Prior art keywords
code stream
image
macro block
determining
frame image
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
Application number
CN202011023000.5A
Other languages
English (en)
Other versions
CN112312136A (zh
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.)
Xian Wanxiang Electronics Technology Co Ltd
Original Assignee
Xian Wanxiang Electronics Technology Co Ltd
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 Xian Wanxiang Electronics Technology Co Ltd filed Critical Xian Wanxiang Electronics Technology Co Ltd
Priority to CN202011023000.5A priority Critical patent/CN112312136B/zh
Publication of CN112312136A publication Critical patent/CN112312136A/zh
Application granted granted Critical
Publication of CN112312136B publication Critical patent/CN112312136B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/169Methods 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/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开提供一种码流控制方法及装置,涉及图像传输技术领域,所述方法包括确定当前帧图像中图像宏块的目标码流;根据所述图像宏块的目标码流对所述图像宏块进行分层编码处理,以使所述图像宏块的编码码流小于等于每一帧图像编码的目标码流。本公开编码产生的码流大小与网络带宽大小匹配,降低了网络拥塞和丢包的概率,从而提高了解码端的视频画面质量。

Description

码流控制方法及装置
技术领域
本公开涉及图像传输技术领域,尤其涉及码流控制方法及装置。
背景技术
在视频编码传输过程中,由于网络带宽变化不定,码流大小将对传输流畅度产生明显影响。
相关技术中,通常采用VGTP(VANXVM Graphic Transport Protocols,图像传输协议)对帧图像进行编码,但VGTP编码协议对编码端生成的码流的大小没有限制,当遇到网络带宽波动较大的传输环境时,会导致网络拥塞和丢包,从而降低了解码端的视频画面质量。
发明内容
本公开实施例提供一种码流控制方法及装置,能够解决现有技术中降低解码端的视频画面质量的问题。所述技术方案如下:
根据本公开实施例的第一方面,提供一种码流控制方法,所述方法包括:
确定当前帧图像中图像宏块的目标码流;
根据所述图像宏块的目标码流对所述图像宏块进行分层编码处理,以使所述图像宏块的编码码流小于等于每一帧图像编码的的目标码流。
本公开实施例提供一种码流控制方法,确定当前帧图像中图像宏块的目标码流,根据图像宏块的目标码流对图像宏块进行分层编码处理,使得图像宏块的编码码流控制在每一帧图像编码的目标码流范围内。这样,编码产生的码流大小与网络带宽大小匹配,降低了网络拥塞和丢包的概率,从而提高了解码端的视频画面质量。
在一个实施例中,所述确定当前帧图像中图像宏块的目标码流包括:
根据公式确定所述图像宏块的目标码流;
其中,表示所述图像宏块的目标码流;/>表示每一帧图像编码的目标码流;/>表示所述当前帧图像中的宏块类型的编码码流;/>表示所述当前帧图像中视频宏块的编码码流;/>表示所述当前帧图像中文字宏块的编码码流。
在一个实施例中,在所述确定当前帧图像中图像宏块的目标码流之前,还包括:
确定所述每一帧图像编码的目标码流;
确定所述当前帧图像中的宏块类型的编码码流;
确定所述当前帧图像中视频宏块的编码码流;
确定所述当前帧图像中文字宏块的编码码流。
在一个实施例中,所述确定所述每一帧图像编码的目标码流包括:
根据公式确定所述每一帧图像编码的目标码流;
其中,表示当前网络的带宽大小,/>表示编码帧率。
在一个实施例中,所述确定所述当前帧图像中的宏块类型的编码码流包括:
根据公式确定所述当前帧图像中的宏块类型的编码码流;
其中,表示所述当前帧图像中宏块的总数量,/>表示预先设置的每个宏块的宏块类型的编码码流值。
在一个实施例中,所述确定所述当前帧图像中视频宏块的编码码流包括:
在确定当前视频宏块为首次出现的视频宏块时,根据公式确定所述视频宏块的编码码流;
在确定所述当前视频宏块未为首次出现的视频宏块时,将上一帧视频宏块编码产生的码率确定为所述视频宏块的编码码流;
其中,表示当前视频窗口的宽度,/>表示当前视频窗口的高度,/>表示所述当前帧图像的宽度,/>表示所述当前帧图像的高度。
在一个实施例中,所述确定所述当前帧图像中文字宏块的编码码流包括:
根据公式确定所述当前帧图像中文字宏块的编码码流;
其中,表示预先设置的每个文字宏块的码流大小,/>表示所述当前帧图像中文字宏块的数量。
在一个实施例中,所述根据所述图像宏块的目标码流对所述图像宏块进行分层编码处理包括:
确定是否需要对所述当前帧图像进行丢帧处理;
在确定未需要对所述当前帧图像进行丢帧处理时,根据所述目标码流对所述图像宏块进行分层编码处理。
在一个实施例中,所述确定是否需要对所述当前帧图像进行丢帧处理包括:
确定前一帧图像传输的截止时间;
获取所述当前帧图像进入编码时的第一时间;
根据所述截止时间和所述第一时间确定是否需要对所述当前帧图像进行丢帧处理。
在一个实施例中,所述确定前一帧图像传输的截止时间包括:
确定所述前一帧图像开始传输时的第二时间;
确定所述前一帧图像的编码码流的传输时间;
将所述第二时间和所述传输时间之和确定为所述截止时间。
在一个实施例中,所述确定所述前一帧图像的编码码流的传输时间包括:
根据公式确定所述前一帧图像的编码码流的传输时间;
其中,表示所述前一帧图像的编码码流的传输时间,/>表示前一帧图像编码的码流长度。
在一个实施例中,所述根据所述截止时间和所述第一时间确定是否需要对所述当前帧图像进行丢帧处理包括:
在确定所述第一时间小于或等于所述截止时间时,对所述当前帧图像进行丢帧处理;
在确定所述第一时间大于所述截止时间时,未对所述当前帧图像进行丢帧处理。
在一个实施例中,所述根据所述截止时间和所述第一时间确定是否需要对所述当前帧图像进行丢帧处理包括:
确定在所述当前帧图像之前的预设N帧图像的编码时间的平均值,将所述平均值确定所述当前帧图像的编码时间;其中,N为大于或等于1的整数;
在确定所述编码时间与所述第一时间之和小于或等于所述截止时间时,对所述当前帧图像进行丢帧处理;
在确定所述编码时间与所述第一时间之和大于所述截止时间时,未对所述当前帧图像进行丢帧处理。
根据本公开实施例的第二方面,提供一种码流控制装置,所述装置包括:
第一确定模块,用于确定当前帧图像中图像宏块的目标码流;
处理模块,用于根据所述图像宏块的目标码流对所述图像宏块进行分层编码处理,以使所述图像宏块的编码码流小于等于每一帧图像编码的目标码流。
本公开实施例提供一种码流控制装置,确定当前帧图像中图像宏块的目标码流,根据图像宏块的目标码流对图像宏块进行分层编码处理,使得图像宏块的编码码流控制在每一帧图像编码的目标码流范围内。这样,编码产生的码流大小与网络带宽大小匹配,降低了网络拥塞和丢包的概率,从而提高了解码端的视频画面质量。
在一个实施例中,所述第一确定模块包括第一确定子模块;
所述第一确定子模块,用于根据公式确定所述图像宏块的目标码流;
其中,表示所述图像宏块的目标码流;/>表示每一帧图像编码的目标码流;/>表示所述当前帧图像中的宏块类型的编码码流;/>表示所述当前帧图像中视频宏块的编码码流;/>表示所述当前帧图像中文字宏块的编码码流。
在一个实施例中,所述装置还包括第二确定模块、第三确定模块、第四确定模块和第五确定模块;
所述第二确定模块,用于确定所述每一帧图像编码的目标码流;
所述第三确定模块,用于确定所述当前帧图像中的宏块类型的编码码流;
所述第四确定模块,用于确定所述当前帧图像中视频宏块的编码码流;
所述第五确定模块,用于确定所述当前帧图像中文字宏块的编码码流。
在一个实施例中,所述第二确定模块包括第二确定子模块;
所述第二确定子模块,用于根据公式确定所述每一帧图像编码的目标码流;
其中,表示当前网络的带宽大小,/>表示编码帧率。
在一个实施例中,所述第三确定模块包括第三确定子模块;
所述第三确定子模块,用于根据公式确定所述当前帧图像中的宏块类型的编码码流;
其中,表示所述当前帧图像中宏块的总数量,/>表示预先设置的每个宏块的宏块类型的编码码流值。
在一个实施例中,所述第四确定模块包括第四确定子模块和第五确定子模块;
所述第四确定子模块,用于在确定当前视频宏块为首次出现的视频宏块时,根据公式确定所述视频宏块的编码码流;
所述第五确定子模块,用于在确定所述当前视频宏块未为首次出现的视频宏块时,将上一帧视频宏块编码产生的码率确定为所述视频宏块的编码码流;
其中,表示当前视频窗口的宽度,/>表示当前视频窗口的高度,/>表示所述当前帧图像的宽度,/>表示所述当前帧图像的高度。
在一个实施例中,所述第五确定模块包括第六确定子模块;
所述第六确定子模块,用于根据公式确定所述当前帧图像中文字宏块的编码码流;
其中,表示预先设置的每个文字宏块的码流大小,/>表示所述当前帧图像中文字宏块的数量。
在一个实施例中,所述处理模块包括第七确定子模块和处理子模块;
所述第七确定子模块,用于确定是否需要对所述当前帧图像进行丢帧处理;
所述处理子模块,用于在确定未需要对所述当前帧图像进行丢帧处理时,根据所述目标码流对所述图像宏块进行分层编码处理。
在一个实施例中,所述第七确定子模块包括第一确定单元、获取单元和第二确定单元;
所述第一确定单元,用于确定前一帧图像传输的截止时间;
所述获取单元,用于获取所述当前帧图像进入编码时的第一时间;
所述第二确定单元,用于根据所述截止时间和所述第一时间确定是否需要对所述当前帧图像进行丢帧处理。
在一个实施例中,所述第一确定单元包括第一确定子单元、第二确定子单元和第三确定子单元;
所述第一确定子单元,用于确定所述前一帧图像开始传输时的第二时间;
所述第二确定子单元,用于确定所述前一帧图像的编码码流的传输时间;
所述第三确定子单元,用于将所述第二时间和所述传输时间之和确定为所述截止时间。
在一个实施例中,所述第二确定子单元,具体用于根据公式确定所述前一帧图像的编码码流的传输时间;
其中,表示所述前一帧图像的编码码流的传输时间,/>表示前一帧图像编码的码流长度。
在一个实施例中,所述处理子模块包括第一处理单元和第二处理单元;
所述第一处理单元,用于在确定所述第一时间小于或等于所述截止时间时,对所述当前帧图像进行丢帧处理;
所述第二处理单元,用于在确定所述第一时间大于所述截止时间时,未对所述当前帧图像进行丢帧处理。
在一个实施例中,所述处理子模块包括第三确定单元、第三处理单元和第四处理单元;
所述第三确定单元,用于确定在所述当前帧图像之前的预设N帧图像的编码时间的平均值,将所述平均值确定所述当前帧图像的编码时间;其中,N为大于或等于1的整数;
所述第三处理单元,用于在确定所述编码时间与所述第一时间之和小于或等于所述截止时间时,对所述当前帧图像进行丢帧处理;
所述第四处理单元,用于在确定所述编码时间与所述第一时间之和大于所述截止时间时,未对所述当前帧图像进行丢帧处理。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开实施例提供的一种码流控制方法的流程图;
图2是本公开实施例提供的一种视频传输的流程图;
图3是本公开实施例提供的一种码流控制方法的流程图;
图4a是本公开实施例提供的一种码流控制装置的结构图;
图4b是本公开实施例提供的一种码流控制装置的结构图;
图4c是本公开实施例提供的一种码流控制装置的结构图;
图4d是本公开实施例提供的一种码流控制装置的结构图;
图4e是本公开实施例提供的一种码流控制装置的结构图;
图4f是本公开实施例提供的一种码流控制装置的结构图;
图4g是本公开实施例提供的一种码流控制装置的结构图;
图4h是本公开实施例提供的一种码流控制装置的结构图;
图4i是本公开实施例提供的一种码流控制装置的结构图;
图4j是本公开实施例提供的一种码流控制装置的结构图;
图4k是本公开实施例提供的一种码流控制装置的结构图;
图4l是本公开实施例提供的一种码流控制装置的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开实施例提供一种码流控制方法,如图1所示,该方法包括以下步骤:
步骤101、确定当前帧图像中图像宏块的目标码流。
VGTP编码的主要原理是:首先将一帧图像分割成预设像素大小的宏块(例如,16x16),然后通过帧内预测和帧间预测确定每个宏块的类型,其中,宏块的类型包括但不限于:不变宏块、运动匹配宏块、视频宏块、复制宏块、文字宏块和图像宏块,针对不同类型的宏块,采用对应的方式进行编码。对于一帧图像来说,一帧图像的总编码码流等于构成该图像的各类型宏块的码流和对宏块类型的编码码流之和。其中,不变宏块、运动匹配宏块和复制宏块编码所产生的码流大小是固定不变的。具体是因为不变宏块和复制宏块都只需要编码宏块类型本身,没有其他需要编码的内容,因此,不变宏块和复制宏块的预测码率为零;运动匹配宏块在编码时,除了编码宏块类型,只需要编码一组运动向量,码率很小,可忽略不计,所以运动匹配宏块的预测码率也为零。
由上可知,不变宏块、运动匹配宏块和复制宏块的预测码率为零,所以,接下来只需要确定出每一帧图像编码的目标码流、视频宏块的编码码流、文字宏块的编码码流和宏块类型的编码码流,就可以确定图像宏块的目标码流。
可选的,根据公式确定所述图像宏块的目标码流。
其中,表示所述图像宏块的目标码流;/>表示每一帧图像编码的目标码流;/>表示所述当前帧图像中的宏块类型的编码码流;/>表示所述当前帧图像中视频宏块的编码码流;/>表示所述当前帧图像中文字宏块的编码码流。
进一步的,在执行步骤101之前,还包括确定所述每一帧图像编码的目标码流;确定所述当前帧图像中的宏块类型的编码码流;确定所述当前帧图像中视频宏块的编码码流;确定所述当前帧图像中文字宏块的编码码流。
具体的,确定每一帧图像编码的目标码流可通过以下方式实现:
根据公式确定所述每一帧图像编码的目标码流。
其中,表示当前网络的带宽大小,/>表示编码帧率。
示例的,编码帧率是编码设备预先设置好的,另外,网络层通过带宽预测得到当前网络的带宽大小,该带宽指的是网络每秒传输比特流的大小;在获取到编码码率和当前网络的带宽大小时,将当前网络的带宽带大小与编码帧率的比值确定为每一帧图像编码的目标码流。
具体的,确定所述当前帧图像中的宏块类型的编码码流可通过以下方式实现:
根据公式确定所述当前帧图像中的宏块类型的编码码流。
其中,表示所述当前帧图像中宏块的总数量,/>表示预先设置的每个宏块的宏块类型的编码码流值。
示例的,由于在编码宏块类型时,码率只与宏块数量有关,因此,可以对每一个宏块的宏块类型的编码码流设置一个固定值,即对每个宏块的宏块类型设置一个编码码流值,该编码码流值可以根据统计得到;例如,统计一定数量的各种宏块类型的宏块的编码码流的平均值,将该平均值确定为编码码流值;假设编码码流值为0.15Byte(字节),再确定当前帧图像中所有宏块的总数量,从而可以得到宏块类型的编码码流=
需要说明的是,宏块类型的编码码流的单位是比特,所以在宏块类型的编码码流的计算公式中乘以8是为了实现字节与比特的转换。
具体的,确定所述当前帧图像中视频宏块的编码码流可通过以下方式实现:
在确定当前视频宏块为首次出现的视频宏块时,根据公式确定所述视频宏块的编码码流。
在确定所述当前视频宏块未为首次出现的视频宏块时,将上一帧视频宏块编码产生的码率确定为所述视频宏块的编码码流。
其中,表示当前视频窗口的宽度,/>表示当前视频窗口的高度,/>表示所述当前帧图像的宽度,/>表示所述当前帧图像的高度。
示例的,针对视频宏块,首先确定当前视频宏块是不是在当前帧图像中第一次出现,如果当前视频宏块是在当前帧图像中第一次出现,则获取当前视频窗口的宽度和高度,并将当前视频窗口的宽度和当前视频窗口的高度相乘,得到第一乘积;获取当前帧图像的宽度和高度,并将当前帧图像的宽度和当前帧图像的高度相乘,得到第二乘积,然后将第一乘积除以第二乘积之后再乘以每一帧图像编码的目标码流的结果确定为视频宏块的编码码流。
具体的,确定所述当前帧图像中文字宏块的编码码流可通过以下方式实现:
根据公式确定所述当前帧图像中文字宏块的编码码流。
其中,表示预先设置的每个文字宏块的码流大小,/>表示所述当前帧图像中文字宏块的数量。
示例的,针对文字宏块,由于文字宏块编码的原理限制,不能对文字宏块进行分层处理,导致每个文字宏块编码的码流大小是不可控制的,但是为了方便处理,可以根据大量实现数据为每个文字宏块设置一个固定的码流大小,即预设设置每个文字宏块的码流大小,每个文字宏块的码流大小可以为多个文字宏块的码流的平均值,或者通过其他规则预设的值,例如,每个文字宏块的码流大小的取值为100比特。在获取到每个文字宏块的码流大小时,还需要确定当前帧图像中文字宏块的数量,最后将每个文字宏块的码流大小乘以当前帧图像中文字宏块的总数量的结果确定为文字宏块的编码码流。
在确定出每一帧图像编码的目标码流、当前帧图像中的宏块类型的编码码流、当前帧图像中视频宏块的编码码流、以及当前帧图像中文字宏块的编码码流时,将每一帧图像编码的目标码流减去当前帧图像中的宏块类型的编码码流,再减去当前帧图像中视频宏块的编码码流,再减去当前帧图像中文字宏块的编码码流的结果确定为图像宏块的目标码流。
步骤102、根据所述图像宏块的目标码流对所述图像宏块进行分层编码处理,以使所述图像宏块的编码码流小于等于每一帧图像编码的目标码流。
示例的,在确定了当前帧图像中图像宏块的目标码流之后,可以通过对图像宏块的码流的控制来使得当前帧图像的总编码码流与当前网络带宽相适应。码流控制分为图像宏块降清晰度处理和丢帧处理,其中,图像宏块降清晰度即为分层编码处理。
示例的,图像宏块的分层编码处理过程为:对图像宏块进行离散余弦变换处理,确定图像宏块中的直流分量和交流分量;根据直流分量和交流分量对图像宏块进行量化及分层处理,生成N层图层,最终对每层图层进行编码,其码流大小是通过将离散余弦变换后系数的绝对值累加之后得到的。将图像宏块系数分层后,不同层系数绝对值的和代表该层码流的大小,将所有宏块该层的预测码流值相加就是当前帧图像不同层的码流值。
经过上述的划分处理,可以将图像宏块中的直流分量和交流分量区分开,例如第一层图像仅包含直流分量,后续图层逐步加入交流分量,从而能够将图像从亮度或者灰度值变化缓慢区分为若干层,通过多个图层逐层编码从而使得图像编码的效果逐渐清晰。基于上述分层处理后的图像,在进行编码处理的时候,可以先将直流分量传输过去,然后再传输交流分量,也即层数由低往高进行传输,从而实现编码质量从低变高,图像显示效果从模糊逐渐高清。
进一步的,由于在网络带宽波动性大,或者当前使用场景下网络带宽较低时,仅仅通过降低清晰度无法满足需求,这时就需要通过丢帧来降低码流。其中,丢帧策略的具体思路是以时间换带宽,即延长当前码流的传输时间来保证码流传输的完整性和连续性;具体如下:
可选的,确定是否需要对所述当前帧图像进行丢帧处理;在确定未需要对所述当前帧图像进行丢帧处理时,根据所述目标码流对所述图像宏块进行分层编码处理。
具体的,确定是否需要对所述当前帧图像进行丢帧处理可通过以下方式实现:
确定前一帧图像传输的截止时间;获取所述当前帧图像进入编码时的第一时间;根据所述截止时间和所述第一时间确定是否需要对所述当前帧图像进行丢帧处理。
示例的,如图2所示,实时视频传输的基本流程包括采集、编码、传输、解码和显示,其中,t1表示采集过程的时间,t2表示编码过程的时间,t3表示传输过程的时间,t4表示解码过程的时间,t5表示显示过程的时间。针对当前帧图像的丢帧处理发生在前一帧图像编码完成之后的情况,可以先确定前一帧图像编码完成后,进行传输的截止时间,然后再确定当前帧图像采集完成之后,进入编码时的第一时间,根据截止时间和第一时间确定是否需要对当前帧图像进行丢帧处理。
进一步的,确定前一帧图像传输的截止时间可通过以下方式实现:
确定所述前一帧图像开始传输时的第二时间;确定所述前一帧图像的编码码流的传输时间;将所述第二时间和所述传输时间之和确定为所述截止时间。
其中,根据公式确定所述前一帧图像的编码码流的传输时间。
其中,表示所述前一帧图像的编码码流的传输时间,/>表示前一帧图像编码的码流长度。
示例的,在确定前一帧图像编码完成时,获取前一帧图像编码完成开始传输的第二时间,再根据公式确定前一帧图像的编码码流的传输时间,进而将第二时间与传输时间相加,将相加结果确定为前一帧图像传输的截止时间。
进一步的,根据所述截止时间和所述第一时间确定是否需要对所述当前帧图像进行丢帧处理可通过以下两种方法实现:
第一种方法,在确定所述第一时间小于或等于所述截止时间时,对所述当前帧图像进行丢帧处理;在确定所述第一时间大于所述截止时间时,未对所述当前帧图像进行丢帧处理。
示例的,在确定前一帧图像传输的截止时间和当前帧图像进入编码的第一时间时,将第一时间与截止时间进行比较,在确定第一时间小于或等于截止时间时,丢弃当前帧图像,不对当前帧图像进行编码;在确定第一时间大于截止时间时,不丢弃当前帧图像,继续对当前帧图像进行编码。
第二种方法,确定在所述当前帧图像之前的预设N帧图像的编码时间的平均值,将所述平均值确定所述当前帧图像的编码时间;在确定所述编码时间与所述第一时间之和小于或等于所述截止时间时,对所述当前帧图像进行丢帧处理;在确定所述编码时间与所述第一时间之和大于所述截止时间时,未对所述当前帧图像进行丢帧处理。
其中,N为大于或等于1的整数。
示例的,在第一种方法中,由于是前一帧图像传输完成之后再进行当前帧的编码,所以,在每一帧图像进行编码时,网络带宽是空闲的,为了将网络带宽充分利用,可以确定一个当前帧图像的编码时间,具体方法为:将当前帧图像之前的N帧图像的编码时间加起来取平均值,将该平均值确定为当前帧图像的编码时间;例如,可以为前10帧图像的编码时间的平均值。在确定当前帧图像的编码时间时,将该编码时间和第一时间相加,并将相加结果与截止时间进行比较,在确定相加结果大于截止时间时,不丢弃当前帧图像,继续对当前帧图像进行编码;在确定相加结果小于或等于截止时间时,丢弃当前帧图像,不对当前帧图像进行编码,以降低传输码流。
本公开实施例提供一种码流控制方法,确定当前帧图像中图像宏块的目标码流,根据图像宏块的目标码流对图像宏块进行分层编码处理,使得图像宏块的编码码流控制在每一帧图像编码的目标码流范围内。这样,编码产生的码流大小与网络带宽大小匹配,保证了视频画面传输过程中的连续性和流畅度,降低了网络拥塞和丢包的概率,从而提高了解码端的视频画面质量;另外,还对当前帧图像进行丢帧处理的判断,进一步降低传输码流的大小。
本公开实施例提供一种码流控制方法,如图3所示,该方法包括以下步骤:
步骤301、确定所述每一帧图像编码的目标码流。
步骤302、确定所述当前帧图像中的宏块类型的编码码流。
步骤303、确定所述当前帧图像中视频宏块的编码码流。
步骤304、确定所述当前帧图像中文字宏块的编码码流。
步骤305、确定当前帧图像中图像宏块的目标码流。
步骤306、确定是否需要对所述当前帧图像进行丢帧处理。
步骤307、在确定未需要对所述当前帧图像进行丢帧处理时,根据所述目标码流对所述图像宏块进行分层编码处理。
本公开实施例提供一种码流控制方法,确定当前帧图像中图像宏块的目标码流,根据图像宏块的目标码流对图像宏块进行分层编码处理,使得图像宏块的编码码流控制在每一帧图像编码的目标码流范围内。这样,编码产生的码流大小与网络带宽大小匹配,降低了网络拥塞和丢包的概率,从而提高了解码端的视频画面质量。
基于上述实施例中所描述的码流控制方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。
本公开实施例提供一种码流控制装置,如图4a所示,该码流控制装置40包括:第一确定模块401和处理模块402。
其中,第一确定模块401,用于确定当前帧图像中图像宏块的目标码流。
处理模块402,用于根据所述图像宏块的目标码流对所述图像宏块进行分层编码处理,以使所述图像宏块的编码码流小于等于每一帧图像编码的目标码流。
在一个实施例中,如图4b所示,所述第一确定模块401包括第一确定子模块4011。
其中,所述第一确定子模块4011,用于根据公式确定所述图像宏块的目标码流。
其中,表示所述图像宏块的目标码流;/>表示每一帧图像编码的目标码流;/>表示所述当前帧图像中的宏块类型的编码码流;/>表示所述当前帧图像中视频宏块的编码码流;/>表示所述当前帧图像中文字宏块的编码码流。
在一个实施例中,如图4c所示,所述装置还包括第二确定模块403、第三确定模块404、第四确定模块405和第五确定模块406。
其中,所述第二确定模块403,用于确定所述每一帧图像编码的目标码流。
所述第三确定模块404,用于确定所述当前帧图像中的宏块类型的编码码流。
所述第四确定模块405,用于确定所述当前帧图像中视频宏块的编码码流。
所述第五确定模块406,用于确定所述当前帧图像中文字宏块的编码码流。
在一个实施例中,如图4d所示,所述第二确定模块403包括第二确定子模块4031。
其中,所述第二确定子模块4031,用于根据公式确定所述每一帧图像编码的目标码流。
其中,表示当前网络的带宽大小,/>表示编码帧率。/>
在一个实施例中,如图4e所示,所述第三确定模块404包括第三确定子模块4041。
其中,所述第三确定子模块4041,用于根据公式确定所述当前帧图像中的宏块类型的编码码流。
其中,表示所述当前帧图像中宏块的总数量,/>表示预先设置的每个宏块的宏块类型的编码码流值。
在一个实施例中,如图4f所示,所述第四确定模块405包括第四确定子模块4051和第五确定子模块4052。
其中,所述第四确定子模块4051,用于在确定当前视频宏块为首次出现的视频宏块时,根据公式确定所述视频宏块的编码码流。
所述第五确定子模块4052,用于在确定所述当前视频宏块未为首次出现的视频宏块时,将上一帧视频宏块编码产生的码率确定为所述视频宏块的编码码流。
其中,表示当前视频窗口的宽度,/>表示当前视频窗口的高度,/>表示所述当前帧图像的宽度,/>表示所述当前帧图像的高度。
在一个实施例中,如图4g所示,所述第五确定模块406包括第六确定子模块4061。
其中,所述第六确定子模块4061,用于根据公式确定所述当前帧图像中文字宏块的编码码流。
其中,表示预先设置的每个文字宏块的码流大小,/>表示所述当前帧图像中文字宏块的数量。
在一个实施例中,如图4h所示,所述处理模块402包括第七确定子模块4021和处理子模块4022。
其中,所述第七确定子模块4021,用于确定是否需要对所述当前帧图像进行丢帧处理。
所述处理子模块4022,用于在确定未需要对所述当前帧图像进行丢帧处理时,根据所述目标码流对所述图像宏块进行分层编码处理。
在一个实施例中,如图4i所示,所述第七确定子模块4021包括第一确定单元40211、获取单元40212和第二确定单元40213。
其中,所述第一确定单元40211,用于确定前一帧图像传输的截止时间。
所述获取单元40212,用于获取所述当前帧图像进入编码时的第一时间。
所述第二确定单元40213,用于根据所述截止时间和所述第一时间确定是否需要对所述当前帧图像进行丢帧处理。
在一个实施例中,如图4j所示,所述第一确定单元40211包括第一确定子单元402111、第二确定子单元402112和第三确定子单元402113。
其中,所述第一确定子单元402111,用于确定所述前一帧图像开始传输时的第二时间。
所述第二确定子单元402112,用于确定所述前一帧图像的编码码流的传输时间。
所述第三确定子单元402113,用于将所述第二时间和所述传输时间之和确定为所述截止时间。
在一个实施例中,所述第二确定子单元402112,具体用于根据公式确定所述前一帧图像的编码码流的传输时间。
其中,表示所述前一帧图像的编码码流的传输时间,/>表示前一帧图像编码的码流长度。
在一个实施例中,如图4k所示,所述处理子模块4022包括第一处理单元40221和第二处理单元40222。
其中,所述第一处理单元40221,用于在确定所述第一时间小于或等于所述截止时间时,对所述当前帧图像进行丢帧处理。
所述第二处理单元40222,用于在确定所述第一时间大于所述截止时间时,未对所述当前帧图像进行丢帧处理。
在一个实施例中,如图4l所示,所述处理子模块4022包括第三确定单元40223、第三处理单元40224和第四处理单元40225。
其中,所述第三确定单元40223,用于确定在所述当前帧图像之前的预设N帧图像的编码时间的平均值,将所述平均值确定所述当前帧图像的编码时间;其中,N为大于或等于1的整数。
所述第三处理单元40224,用于在确定所述编码时间与所述第一时间之和小于或等于所述截止时间时,对所述当前帧图像进行丢帧处理。
所述第四处理单元40225,用于在确定所述编码时间与所述第一时间之和大于所述截止时间时,未对所述当前帧图像进行丢帧处理。
本公开实施例提供一种码流控制装置,确定当前帧图像中图像宏块的目标码流,根据图像宏块的目标码流对图像宏块进行分层编码处理,使得图像宏块的编码码流控制在每一帧图像编码的目标码流范围内。这样,编码产生的码流大小与网络带宽大小匹配,降低了网络拥塞和丢包的概率,从而提高了解码端的视频画面质量。
基于上述图1对应的实施例中所描述的码流控制方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:ReadOnly Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1对应的实施例中所描述的码流控制方法,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

Claims (13)

1.一种码流控制方法,其特征在于,所述方法包括:
确定当前帧图像中图像宏块的目标码流;
根据所述图像宏块的目标码流对所述图像宏块进行分层编码处理,以使所述图像宏块的编码码流小于等于每一帧图像编码的目标码流;
所述确定当前帧图像中图像宏块的目标码流包括:
根据公式Rc′picture=target_bit-Rcmbtype-Rcvideo-Rctext确定所述图像宏块的目标码流;
其中,Rc′picture表示所述图像宏块的目标码流;target_bit表示每一帧图像编码的目标码流;Rcmbtype表示所述当前帧图像中的宏块类型的编码码流;Rcvideo表示所述当前帧图像中视频宏块的编码码流;Rctext表示所述当前帧图像中文字宏块的编码码流。
2.根据权利要求1所述的方法,其特征在于,在所述确定当前帧图像中图像宏块的目标码流之前,还包括:
确定所述每一帧图像编码的目标码流;
确定所述当前帧图像中的宏块类型的编码码流;
确定所述当前帧图像中视频宏块的编码码流;
确定所述当前帧图像中文字宏块的编码码流。
3.根据权利要求2所述的方法,其特征在于,所述确定所述每一帧图像编码的目标码流包括:
根据公式确定所述每一帧图像编码的目标码流;
其中,bit_net表示当前网络的带宽大小,frame_rate表示编码帧率。
4.根据权利要求2所述的方法,其特征在于,所述确定所述当前帧图像中的宏块类型的编码码流包括:
根据公式Rcmbtype=bit_i×MB_Count×8确定所述当前帧图像中的宏块类型的编码码流;
其中,MB_Count表示所述当前帧图像中宏块的总数量,bit_i表示预先设置的每个宏块的宏块类型的编码码流值。
5.根据权利要求2所述的方法,其特征在于,所述确定所述当前帧图像中视频宏块的编码码流包括:
在确定当前视频宏块为首次出现的视频宏块时,根据公式 确定所述视频宏块的编码码流;
在确定所述当前视频宏块未为首次出现的视频宏块时,将上一帧视频宏块编码产生的码率确定为所述视频宏块的编码码流;
其中,Video_width表示当前视频窗口的宽度,Video_height表示当前视频窗口的高度,Frame_width表示所述当前帧图像的宽度,Frame_height表示所述当前帧图像的高度。
6.根据权利要求2所述的方法,其特征在于,所述确定所述当前帧图像中文字宏块的编码码流包括:
根据公式Rctext=bit_t×text_num确定所述当前帧图像中文字宏块的编码码流;
其中,bit_t表示预先设置的每个文字宏块的码流大小,text_num表示所述当前帧图像中文字宏块的数量。
7.根据权利要求1所述的方法,其特征在于,所述根据所述图像宏块的目标码流对所述图像宏块进行分层编码处理包括:
确定是否需要对所述当前帧图像进行丢帧处理;
在确定未需要对所述当前帧图像进行丢帧处理时,根据所述目标码流对所述图像宏块进行分层编码处理。
8.根据权利要求7所述的方法,其特征在于,所述确定是否需要对所述当前帧图像进行丢帧处理包括:
确定前一帧图像传输的截止时间;
获取所述当前帧图像进入编码时的第一时间;
根据所述截止时间和所述第一时间确定是否需要对所述当前帧图像进行丢帧处理。
9.根据权利要求8所述的方法,其特征在于,所述确定前一帧图像传输的截止时间包括:
确定所述前一帧图像开始传输时的第二时间;
确定所述前一帧图像的编码码流的传输时间;
将所述第二时间和所述传输时间之和确定为所述截止时间。
10.根据权利要求9所述的方法,其特征在于,所述确定所述前一帧图像的编码码流的传输时间包括:
根据公式确定所述前一帧图像的编码码流的传输时间;
其中,ts表示所述前一帧图像的编码码流的传输时间,frame_bit_len表示前一帧图像编码的码流长度。
11.根据权利要求8所述的方法,其特征在于,所述根据所述截止时间和所述第一时间确定是否需要对所述当前帧图像进行丢帧处理包括:
在确定所述第一时间小于或等于所述截止时间时,对所述当前帧图像进行丢帧处理;
在确定所述第一时间大于所述截止时间时,未对所述当前帧图像进行丢帧处理。
12.根据权利要求8所述的方法,其特征在于,所述根据所述截止时间和所述第一时间确定是否需要对所述当前帧图像进行丢帧处理包括:
确定在所述当前帧图像之前的预设N帧图像的编码时间的平均值,将所述平均值确定所述当前帧图像的编码时间;其中,N为大于或等于1的整数;
在确定所述编码时间与所述第一时间之和小于或等于所述截止时间时,对所述当前帧图像进行丢帧处理;
在确定所述编码时间与所述第一时间之和大于所述截止时间时,未对所述当前帧图像进行丢帧处理。
13.一种码流控制装置,其特征在于,包括:
第一确定模块,用于确定当前帧图像中图像宏块的目标码流;
处理模块,用于根据所述图像宏块的目标码流对所述图像宏块进行分层编码处理,以使所述图像宏块的编码码流小于等于每一帧图像编码的目标码流;
所述第一确定模块包括第一确定子模块;
所述第一确定子模块,用于根据公式Rc′picture=target_bit-Rcmbtype-Rcvideo-Rctext确定所述图像宏块的目标码流;
其中,Rc′picture表示所述图像宏块的目标码流;target_bit表示每一帧图像编码的目标码流;Rcmbtype表示所述当前帧图像中的宏块类型的编码码流;Rcvideo表示所述当前帧图像中视频宏块的编码码流;Rctext表示所述当前帧图像中文字宏块的编码码流。
CN202011023000.5A 2020-09-25 2020-09-25 码流控制方法及装置 Active CN112312136B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011023000.5A CN112312136B (zh) 2020-09-25 2020-09-25 码流控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011023000.5A CN112312136B (zh) 2020-09-25 2020-09-25 码流控制方法及装置

Publications (2)

Publication Number Publication Date
CN112312136A CN112312136A (zh) 2021-02-02
CN112312136B true CN112312136B (zh) 2024-05-17

Family

ID=74488048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011023000.5A Active CN112312136B (zh) 2020-09-25 2020-09-25 码流控制方法及装置

Country Status (1)

Country Link
CN (1) CN112312136B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2249571A1 (en) * 2009-05-04 2010-11-10 Thomson Licensing SA Method and device for encoding an image frame comprising macroblocks
CN103458241A (zh) * 2012-06-01 2013-12-18 三星电子株式会社 用于多层视频编码的速率控制方法和设备
CN107222748A (zh) * 2017-06-12 2017-09-29 西安万像电子科技有限公司 图像数据码率的处理方法和装置
CN108965881A (zh) * 2017-05-25 2018-12-07 福州瑞芯微电子股份有限公司 码率控制方法、系统、服务器及可读存储介质
CN111164972A (zh) * 2017-11-30 2020-05-15 深圳市大疆创新科技有限公司 用于在帧级别控制视频编码的系统和方法
CN111164980A (zh) * 2017-11-30 2020-05-15 深圳市大疆创新科技有限公司 用于控制图像帧内的视频编码的系统和方法
CN111277829A (zh) * 2020-02-25 2020-06-12 西安万像电子科技有限公司 编解码方法及装置
CN111556315A (zh) * 2020-04-07 2020-08-18 西安万像电子科技有限公司 数据传输方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101172430B1 (ko) * 2007-08-17 2012-08-08 삼성전자주식회사 비트율 제어 방법 및 그 장치
US20110255594A1 (en) * 2010-04-15 2011-10-20 Soyeb Nagori Rate Control in Video Coding

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2249571A1 (en) * 2009-05-04 2010-11-10 Thomson Licensing SA Method and device for encoding an image frame comprising macroblocks
CN103458241A (zh) * 2012-06-01 2013-12-18 三星电子株式会社 用于多层视频编码的速率控制方法和设备
CN108965881A (zh) * 2017-05-25 2018-12-07 福州瑞芯微电子股份有限公司 码率控制方法、系统、服务器及可读存储介质
CN107222748A (zh) * 2017-06-12 2017-09-29 西安万像电子科技有限公司 图像数据码率的处理方法和装置
CN111164972A (zh) * 2017-11-30 2020-05-15 深圳市大疆创新科技有限公司 用于在帧级别控制视频编码的系统和方法
CN111164980A (zh) * 2017-11-30 2020-05-15 深圳市大疆创新科技有限公司 用于控制图像帧内的视频编码的系统和方法
CN111277829A (zh) * 2020-02-25 2020-06-12 西安万像电子科技有限公司 编解码方法及装置
CN111556315A (zh) * 2020-04-07 2020-08-18 西安万像电子科技有限公司 数据传输方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于H.264码率控制算法的研究与改进;李锡辉;季桂树;;微计算机信息;20070525(15);全文 *

Also Published As

Publication number Publication date
CN112312136A (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
US9762917B2 (en) Quantization method and apparatus in encoding/decoding
CN109862359B (zh) 基于分层b帧的码率控制方法、装置和电子设备
CN101406056A (zh) 减少数字视频编码器中的内预测和模式判决处理中的计算的方法
MXPA05002511A (es) Un metodo y un aparato para controlar la velocidad de una secuencia de video; un dispositivo que codifica un video.
CN111556315A (zh) 数据传输方法及装置
KR20020077093A (ko) 영상 부호화 장치 및 영상 부호화 프로그램
KR20030081403A (ko) 영상의 부호화 및 복호화 방법, 장치 및 그 애플리케이션
US9565404B2 (en) Encoding techniques for banding reduction
US20190014332A1 (en) Content-aware video coding
EP1978743B1 (en) A method and apparatus for transcoding a video signal
KR20050020710A (ko) 부호화 장치 및 부호화 방법
CN112312136B (zh) 码流控制方法及装置
CN111182310A (zh) 视频处理方法、装置、计算机可读介质及电子设备
WO2022022299A1 (zh) 视频编解码中的运动信息列表构建方法、装置及设备
US8326060B2 (en) Video decoding method and video decoder based on motion-vector data and transform coefficients data
JP2001078193A (ja) 動画像圧縮符号化信号変換方法および装置
CN111447445B (zh) 数据传输方法及装置
JPH0595538A (ja) 画像符号化装置
JP3779066B2 (ja) 動画像符号化装置
CN112422964B (zh) 一种渐进式编码方法及装置
US20070031048A1 (en) Image processing apparatus and method
JPH11234671A (ja) 信号処理装置
JP2012105128A (ja) 画像符号化装置
US9253491B2 (en) Method and apparatus for transcoding a video signal
KR0166723B1 (ko) 영상특성이 고려된 양자화레벨 조절방법

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