CN1529513A - 视频信号的分层编码和解码方法 - Google Patents
视频信号的分层编码和解码方法 Download PDFInfo
- Publication number
- CN1529513A CN1529513A CNA03151247XA CN03151247A CN1529513A CN 1529513 A CN1529513 A CN 1529513A CN A03151247X A CNA03151247X A CN A03151247XA CN 03151247 A CN03151247 A CN 03151247A CN 1529513 A CN1529513 A CN 1529513A
- Authority
- CN
- China
- Prior art keywords
- additional video
- additional
- video object
- video
- video signal
- 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
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种视频信号的分层编码和解码方法,其属于信号处理中的视频编解码技术领域。本发明把视频信号分成若干层,其中有一个层包含主要的视频信息,称为主视频层;其他的层包含附加视频信息,称为附加视频层。本发明提供了视频信号的分层、附加视频层的编解码以及把附加视频层编码数据和主视频层编码数据组织成视频信号编码数据流的方法。利用本发明方法在编码视频信号中插入、删除和修改附加视频信息变得非常简单,编辑设备根本不需要解码主视频信号就可以完成附加视频信号的编辑,这样编辑编码视频信号的设备可不需要具有编码和解码主视频信号的能力。
Description
技术领域
本发明涉及信号处理中的一种视频编、解码方法,尤其涉及将字幕、电视台标志、广告文字和其他附加视频信息插入编码的数字视频信号的处理方法。
背景技术
传统的视频编码标准如ITU制定的H.261,H.263,H.263+,H.264标准以及ISO的MPEG组织制定的MPEG-1,MPEG-2等都是把视频信号作为摄像机拍摄得到的逐行或者隔行信号进行编码,没有考虑到视频信息在呈现给观众之前还需要进行很多的编辑和修饰,因此采用这些标准编码的视频信息编辑起来不是很方便,往往需要以下步骤:a)对编码视频信号进行解压缩;b)在还原的视频信号上进行编辑;c)重新压缩编辑后的视频信号。这样做有以下缺点:1)要求编辑设备具有编码和解码已压缩的视频信号的能力,使编辑设备成本较高;2)编辑后,原始视频信号受到破坏,无法恢复到编辑前的状态。3)当发现编辑错误需要修改时,必须在原始视频信号上重新编辑,造成编辑的效率不高。
MPEG-4标准考虑了场景的结构,把视频信号分解为背景和若干物体进行编码,以此提高压缩效率和编码视频信息的可编辑性。但是MPEG-4的初衷是将视频信号中的背景和物体分析出来,然后分别编码,这就需要非常复杂的场景分析算法。虽然场景分析算法不作为MPEG-4标准的一部分,但是由于目前场景分析算法在实时性和准确性上根本达不到实用的要求,使得MPEG-4倡导的所谓面向对象的视频压缩方法无法在实际中使用。同时,MPEG-4对视频节目后期制作和演播的各种需求没有给予特别的关注和在算法上进行特别的支持,使得对MPEG-4压缩的视频信号进行编辑的软件和设备都很复杂。
发明内容
本发明所要解决的技术问题是提供一种视频信号编、解码方法,通过把视频信号分成主视频层和若干附加视频层进行编码,使附加视频信号的插入和删除不会影响主视频信号的内容,且不需要解码主视频信号。
为了解决上述技术问题,本发明采用如下技术方案:
提供一种视频信号的分层编码方法,包括以下步骤:
a.把视频信号分成主视频信号和附加视频信号;
本发明所说的视频信号是指最终显示在显示屏幕上的信息,也就是观众实际看到的全部视频信息。
本发明所说的编码视频信号是指经过编码以后的视频信号。
本发明所说的主视频信号是指视频信号的主要内容,例如用摄像机拍摄的电影电视的画面,或者用其他方法合成的画面等等。
本发明所说的附加视频信号包括显示在屏幕上的电视台标志、电影电视节目中的字幕(对白、歌词、说明等等)、各种节目中的说明文字、各种节目的演职员表、电视台定时播放的时间信息、文字广告、图标广告、电视台节目栏目标志以及插播的其他视频信号等等。
主视频信号和附加视频信号的划分不是绝对的,可以根据实际需要指定。
本发明所说的附加视频对象是指某一个具体的附加视频信号,如一个电视台台标、一行对白字幕、一个图标广告等等。
本发明所说的主视频画面是指主视频信息的一帧或者一场。
本发明认为显示在屏幕上的画面是由主视频画面和若干附加视频对象按照一定的次序叠加而成的。
b.编码主视频信号;
主视频信号的编码可以采用现有的或者未来的视频信号编码方法,例如MPEG-1、MPEG-2、MPEG-4、H.261、H.263、H.263+、H.264等。但是需要在每一个编码画面(帧或场)的数据头当中设一个标志位,以表明本画面是否有附加视频信号需要显示。在没有附加视频信号时,这些标志全部置为0。
c.编码附加视频信号,包括以下步骤:
c1.附加视频信号的分类;
本发明根据各种附加视频信号的特点定义了9种附加视频对象,见表1,以后还可以根据需要定义新的附加视频对象类型。最多可以定义255种附加视频对象类型。
表1各种附加视频对象的名称和编号
Type | 名称 | 描述 |
0 | 禁止 | 禁止 |
1 | 标志 | 台标、栏标、静止不动的广告以及其他静止不动的标志,特点是静止不动、大小与显示窗口一致、形状不规则,使用多种颜色,透明度恒定。 |
2 | 普通字幕 | 对白、普通歌词、静止的说明文字、静止的演职员表,静止的广告文字等等。特点是静止不动、大小与显示窗口一致、形状不规则,使用一种颜色,透明度恒定。 |
3 | 滚动字幕 | 滚动新闻文字、滚动的演职员表、滚动的广告文字等,特点是在屏幕上可以平移、大小与显示窗口不一致、形状不规则,使用一种颜色,透明度恒定。 |
4 | 淡入淡出字幕 | 大小与显示窗口一致、形状不规则,使用一种颜色,透明度可变,以某种方式逐渐显示或者逐渐消失。 |
5 | 移入移出字幕 | 大小与显示窗口一致、形状不规则,使用一种颜色,透明度恒定,显示窗口可以在屏幕上移动。 |
6 | 淡入淡出图片 | 大小与显示窗口一致、形状不规则,使用多种颜色,透明度可变,以某种方式逐渐显示或者逐渐消失 |
7 | 移入移出图片 | 大小与显示窗口一致、形状不规则,使用多种颜色,透明度恒定,显示窗口可以在屏幕上移动。 |
8 | 卡拉OK字幕 | 大小与显示窗口一致、形状不规则,使用两种颜色,透明度恒定。 |
9 | 视频序列 | 大小与显示窗口一致、形状规则,使用多种颜色,透明度恒定,显示窗口不动,采用与主视频同样的编码方式。 |
10 ~255 | 保留 |
c2.附加视频对象的描述;
根据各种附加视频对象的特点用不同的参数来描述它们,例如编号、所在层、透明度、形状、大小、位置、颜色、所属语言等等。表2~表5详细说明了每一种附加视频对象的描述方法。当附加视频对象第一次在编码数据流中出现或者数据需要刷新时,应使用表2~表5所述的结构进行描述。表6定义了一个附加视频对象在当前画面和前一画面的差别的描述方法。当附加视频对象不是第一次在编码数据流中出现而且数据不需要刷新时,应使用表6所述的结构进行描述。
表2附加视频对象数据结构
VideoObjectData(){ | 描述符 |
Level | u(8) |
target_object_id | u(8) |
superpose_order | u(8) |
Type | u(8) |
display_window_x0 | u(16) |
display_window_y0 | u(16) |
display_window_x1 | u(16) |
display_window_y1 | u(16) |
if(type==1){ | |
transparency_quotiety | u(8) |
ShapeMatrix() | |
color_number | u(8) |
ColorTable(color_number) | |
if(color_umber>1) | |
ColorIdxMatrix() | |
} | |
if(type==2){ | |
transparency_quotiety | u(8) |
language_code | u(8) |
ShapeMatrix() |
ColorTable(1) | |
} | |
if(type==3){ | |
transparency_quotiety | u(8) |
language_code | u(8) |
ShapeMatrix() | |
ColorTable(1) | |
Width | u(16) |
Height | u(16) |
offset_x | s(16) |
offset_y | s(16) |
move_direct | u(2) |
move_pixels_per_pic | u(16) |
} | |
if(type==4){ | |
language_code | u(8) |
ShapeMatrix() | |
ColorTable(1) | |
fade_in_mode | u(8) |
still_pic_num | u(8) |
fade_out_mode | u(8) |
start_at | u(8) |
} | |
if(type==5){ | |
transparency_quotiety | u(8) |
language_code | u(8) |
ShapeMatrix() | |
ColorTable(1) | |
start_x_offset | s(16) |
start_y_offset | s(16) |
} | |
if(type==6){ | |
ShapeMatrix() | |
color_number | u(8) |
ColorTable(color_number) | |
ColorIdxMatrix() | |
fade_in_mode | u(8) |
still_pic_num | u(8) |
fade_out_mode | u(8) |
start_at | u(8) |
} | |
if(type==7){ |
transparency_quotiety | u(8) |
ShapeMatrix() | |
color_number | u(8) |
ColorTable(color_number) | |
ColorIdxMatrix() | |
start_x_offset | s(16) |
start_y_offset | s(16) |
} | |
if(type==8){ | |
transparency_quotiety | u(8) |
language_code | u(8) |
ShapeMatrix() | |
ColorTable(2) | |
color_change_position | u(16) |
} | |
if(type==9){ | |
transparency_quotiety | u(8) |
CodedFrameData() | |
} | |
} |
表3形状矩阵结构
ShapeMatrix(){ | 描述符 |
for(i=0;i<Height;i++){ | |
for(j=0;j<Width;j++){ | |
marker_bit | u(1) |
} | |
} | |
} |
表4颜色表结构
ColorTable(Num){ | 描述符 |
for(i=0;i<Num;i++){ | |
value_y | u(8) |
value_u | u(8) |
value_v | u(8) |
} | |
} |
表5颜色索引矩阵结构
ColorIdxMatrix(){ | 描述符 |
for(i=0;i<Height;i++){ | |
for(j=0;j<Width;j++){ |
if(ShapeMatrix[i][j]==1) | |
color_idx | u(v) |
} | |
} | |
} |
表6视频对象差别结构
VideoObjectDifference(){ | 描述符 |
if(type==1‖type==2‖type==3‖type==4‖type==6){ | |
} | |
if(type==5‖type==7){ | |
current_x_offset | s(16) |
current_y_offset | s(16) |
} | |
if(type==8){ | u(1) |
current_color_change_position | u(16) |
} | |
if(type==9){ | u(1) |
CodedFrameData() | u(16) |
} | |
} |
其中u(1)、u(2)、u(8)、u(16)等表示对应的参数是一个无符号整数,用1、2、8、或16个二进制位来表示。s(16)表示对应的参数是一个有符号整数,用16个二进制位来表示,第一位是符号位。u(v)表示对应的参数是一个无符号整数,用来表示它的二进制位数由其他参数确定。例如,当一个附加视频对象使用了4种颜色时,表示颜色索引就只需2个二进制位。
表2~表6中各个参数的意义如下:
level指出附加视频对象所在的层。本发明规定主视频信号为0层,视频信号最多包含256层,因此附加视频对象的这个参数取值1~255。
target_object_id指出附加视频对象将叠加到哪一个附加视频对象上,取值0~255。一个附加视频对象不能叠加到层号大于等于其所在层层号的附加视频对象上。取值为0表示该附加视频对象直接叠加到主视频画面上。
superpose_order指出附加视频对象之间相互叠加的顺序,取值0~255。此参数值大的附加视频对象应该先叠加到其目标对象上,然后作为一个对象叠加到其他视频对象上。
type指出附加视频对象的类型,取值1~255,每一个值的含义参见表1。
display_window_x0 display_window_y0 display_window_x1display_window_y1指出显示该附加视频对象的窗口的位置,(display_window_x0,display_window_y0)指出窗口的左上角相对于主视频左上角的坐标,(display_window_x1,display_window_y1)指出窗口的右下角相对于主视频左上角的坐标。
transparency_quotiety指出附加视频对象的透明度,取值0~255。
color_number指出附加视频对象使用的颜色数量,取值1~255。
language_code指出附加视频对象属于的语言,可以采用国际标准的语言代码,也可以采用自定义的语言代码,本发明不做规定。当存在多种语言的字幕时,用户可以根据需要选择自己想看的字幕。节目制作者也可以利用这个参数在一个节目中提供多种语言的字幕。
width height指出附加视频对象的宽度和高度,以主视频信号的象素为单位,取值范围由主视频信号的水平分辨率和垂直分辨率决定。当附加视频对象的大小与显示窗口相同时,其宽度和高度由显示窗口的左上角坐标和右下角坐标相减得到。
offset_x offset_y指出附加视频对象左上角象素的坐标在初始时相对于显示窗口左上角坐标的偏移。
move_direct指出滚动字幕类型的附加视频对象的滚动方向,取值0~3。0表示自下向上,1表示自上向下,2表示自左向右,3表示自右向左。
move_pixels_per_pic指出滚动字幕类型的附加视频对象的滚动速度,单位是象素/画面。其中象素是主视频信号的象素。
fade_in_mode fade_out_mode指出淡入淡出类型的附加视频对象的淡入和淡出方式,取值0~255。本发明没有规定每一个值的含义,只规定了最多可以有256种淡入和淡出方式,淡入方式和淡出方式可以不同。
still_pic_num指出淡入淡出类型的附加视频对象完全显示在屏幕上的时间,以主视频信号的画面为单位,取值0~255。
start_at指出淡入淡出类型的附加视频对象的开始状态。在淡入淡出类型的附加视频对象的显示过程中,为了提供随机访问的功能,可能需要刷新数据。这就造成对象的完整数据到来后,并不一定从最初的淡入开始显示,而是从中间某一个状态开始显示。因此需要指出对象所处的淡入淡出过程的状态。
start_x_offset start_y_offset指出移入移出类型的附加视频对象在开始时显示窗口相对于坐标(display_window_x0,display_window_y0)的偏移。
color_change_position指出卡拉OK字幕类型的附加视频对象的变色线的位置,距离显示窗口左侧边的象素数。
marker_bit值为0时表示点(j,i)不属于该附加视频对象,值为1时表示点(j,i)属于该附加视频对象。(j,i)为相对于该附加视频对象左上角象素的坐标。
value_y value_u value_v指出一个颜色的Y,U,V分量的值。
color_idx指出该附加视频对象在(j,i)处的颜色的索引。
current_x_offset current_y_offset指出移入移出类型的附加视频对象在当前画面显示窗口左上角坐标相对于坐标(display_window_x0,display_window_y0)的偏移。
current_color_change_position指出卡拉OK字幕类型的附加视频对象在当前画面的变色线的位置,距离显示窗口左侧边的象素数。
CodedFrameData()结构封装了视频的一个画面的编码数据,编码方法与主视频的编码方法一样。定义这种类型的附加视频对象是为了支持复杂的附加视频对象,例如不断变化的广告图标,新闻节目插播的小尺寸的短暂的视频序列等等。
c3.为每一个附加视频对象选择所在的层、相互的叠加关系和叠加顺序:假设对象A叠加到对象B上,应当保证A的每一个象素在B中都可以找到与之对应的象素。
c4.为每一个附加视频对象选择开始和结束时间,可以用主视频信号的画面的序号来表示:
d.把编码的附加视频对象插入已编码的主视频信号中,包括以下步骤:
d1.确定随机访问点。
本发明所说的随机访问点是指解码器可以开始正确解码的码流位置。随机访问点首先受到主视频信号的每一画面的编码方式的影响。只有采用帧内模式编码的画面才有可能作为随机访问点。但是不要求每一个采用帧内模式编码的画面都作为随机访问点。本发明不规定随机访问点的具体设置方法。
在每一个随机访问点画面,必须提供每一个附加视频对象的完整描述信息,即VideoObjectData()(附加视频对象数据)结构。
d2.根据每一个附加视频对象的开始和结束时间确定它们在每一个主视频画面的数据结构。在每一个附加视频对象开始显示的第一个画面,也必须提供完整描述信息,即VideoObjectData()结构。除了开始显示的第一个画面和随机访问点外,在一个附加视频对象需要显示的其他画面提供VideoObjectDifference()(附加视频对象差别)结构来描述视频对象的参数变化。
d3.为主视频信号的每一个需要显示附加视频信号的画面生成附加视频信息,即FuJiaVideoInfo()(附加视频信息)结构,见表7。附加视频信息的生成包括以下步骤:
表7附加视频信号结构
FuJiaVideoInfo(){ | 描述符 |
fujia_video_info_length_in_bit | u(24) |
video_object_number | u(8) |
for(i=0;i<video_object_number;i++) | |
VideoObject() | |
} |
表8视频对象结构
VideoObject(){ | 描述符 |
video_object_id | u(8) |
if(RandomAccessPoint‖NewVideoObject) | |
VideoObjectData() | |
Else | |
VideoObjectDifference() | |
} |
d31.统计每个画面附加视频对象的个数,得到video_object_number(附加视频对象数量)。
d32.为每一个用VideoObjectData()结构描述的附加视频对象分配一个号码video_object_id(附加视频对象号码)。video_object_id在两次数据刷新之间是唯一的,在两次数据刷新期间用video_object_id来唯一标识一个附加视频对象。在数据刷新时,可以为附加视频对象重新分配video_object_id。用VideoObjectDifference()结构来描述的附加视频对象需要用video_object_id来指出它所描述的是哪一个视频对象。video_object_id的值为0~255,但是0固定用来表示主视频画面。
d33.把video_object_id和VideoObjectData()或VideoObjectDifference()结构组织成VideoObject()(附加视频对象)结构。
d34.把每个画面的所有VideoObject()结构顺序排列,统计它们占据的二进制位数,再加32,作为fujia_video_info_length_in_bit(附加视频信息长度)的值。最后形成表7和表8所示的FuJiaVideoInfo()(附加视频信息)结构。
d4.把FuJiaVideoInfo()结构插入对应的主视频画面,具体方法是将对应的主视频画面的编码数据的头部信息中的附加视频信号标志置为1,然后把FuJiaVideoInfo()结构插入在此标志的后面,主视频信号的其他编码数据整体向后移动。
一种视频信号的分层解码方法,包括以下步骤:
a.解码主视频信号的每一个画面。主视频信号的编解码方法不在本发明的范围之内。
b.如果主视频信号的一个画面的附加视频信号标志置为1,则解码附加视频信号。包括以下步骤:
b1.读取fujia_video_info_length_in_bit的值。根据fujia_video_info_length_in_bit的值继续读fujia_video_info_length_in_bit个二进制位。
b2.读取video_object_number的值。
b3.解码video_object_number个附加视频对象。包括以下步骤:
b31.根据每一个附加视频对象的描述信息,获得它们的参数。
b32.根据每一个附加视频对象的参数,获得属于他们的每一个象素的颜色。
c.按照superpose_order指出的顺序依次把每一个附加视频对象叠加到其目标对象上。superpose_order的值相等的附加视频对象应当先把层号低的叠加到其目标对象上。
叠加算法如下:对于本视频对象的每一个象素,设其颜色的某一个分量的值为v1,目标对象对应位置的象素的对应的颜色分量的值为v2,本视频对象的透明度系数(transparency_quotiety)为t,则叠加后该象素的该颜色分量的值为
v=(v2*t+v1*(256-t))/256
插入一个附加视频对象的方法,包括以下步骤:
a.确定其类别、参数、所在层和与其他已存在的附加视频对象的叠加关系和叠加顺序。
b.确定其显示的开始时间和结束时间。
c.根据随机访问点和开始时间准备VideoObjectData()和VideoObjectDifference()结构。
d.把VideoObjectData()和VideoObjectDifference()结构插入到对应画面的FuJiaVideoInfo()结构中。并修改相应的fujia_video_info_length_in_bit和video_object_number的值。如果该画面原来没有FuJiaVideoInfo()结构,则按照上述的“一种视频信号的分层编码方法”的步骤d来产生FuJiaVideoInfo()结构并将其插入对应画面的编码数据当中。
删除一个附加视频对象的方法,包括以下步骤:
a.在编码视频信号的数据流中找到相应的画面的FuJiaVideoInfo()结构。
b.将FuJiaVideoInfo()结构中属于该附加视频对象的VideoObjectData()和VideoObjectDifference()结构删除,同时删除以此对象为直接或间接叠加对象的所有对象。
c.修改FuJiaVideoInfo()结构中fujia_video_info_length_in_bit和video_object_number的值。如果video_object_number的值为0,则在该画面的数据中删除整个FuJiaVideoInfo()结构,并将附加视频信号存在标志置为0。
修改一个附加视频对象的方法,包括以下步骤:
a.在编码视频信号的数据流中找到相应的画面的FuJiaVideoInfo()结构。
b.找到FuJiaVideoInfo()结构中对应该附加视频对象的VideoObjectData()和VideoObjectDifference()结构删除。
c.修改VideoObjectData()和VideoObjectDifference()结构中的参数。如果影响到附加视频对象之间的叠加关系则需要修改相关附加视频对象的VideoObjectData()和VideoObjectDifference()结构中的相关参数。如果改变了该视频对象的VideoObjectData()和VideoObjectDifference()结构的长度,还需要修改FuJiaVideoInfo()结构中的fujia_video_info_length_in_bit的值。
由于采用了上述分层编、解码方法,在编码视频信号中插入、删除和修改附加视频信息变得非常简单,编辑设备根本不需要解码主视频信号就可以完成附加视频信号的编辑,这样编辑编码视频信号的设备可不需要具有编码和解码主视频信号的能力。本发明的另外一个优点是附加视频信号的插入不会破坏主视频信号的内容。
附图说明
图1是本发明的视频信号分层编码方法的一个实施例的流程图;
图2是本发明的视频信号分层解码方法的一个实施例的流程图;
图3是本发明的视频信号分层编解码方法的一个实施例的流程图;
图4是本发明的视频信号分层编码方法的编码视频信号数据结构的示意图。
具体实施方式
下面结合附图和实施例来进一步说明本发明的技术方案。
图1是本发明的视频信号分层编码方法的一个实施例的流程图。如图1所示,该实施例包括以下步骤:
a.把视频信号分成主视频信号和附加视频信号;主视频信号是指视频信号的主要内容,例如用摄像机拍摄的电影电视的画面,或者用其他方法合成的画面等等。附加视频信号包括显示在屏幕上的电视台标志、电影电视节目中的字幕(对白、歌词、说明等等)、各种节目中的说明文字、各种节目的演职员表、电视台定时播放的时间信息、文字广告、图标广告、电视台节目栏目标志以及插播的其他视频信号等等。主视频信号和附加视频信号的划分不是绝对的,可以根据实际需要指定。
b.编码主视频信号;
主视频信号的编码可以采用现有的或者未来的视频信号编码方法,例如MPEG-1、MPEG-2、MPEG-4、H.261、H.263、H.263+、H.264等。但是需要在每一个编码画面(帧或场)的数据头当中设一个标志位,以表明本画面是否有附加视频信号需要显示。在没有附加视频信号时,这些标志全部置为0。
c.将附加视频信号分解为一些附加视频对象,例如电视台标志、电影电视节目中的字幕、各种节目中的说明文字、各种节目的演职员表、电视台定时播放的时间信息、文字广告、图标广告、电视台节目栏目标志以及插播的其他视频信号等等。根据各种附加视频对象的特点将其归入表1所述的某一类。
d.确定每一个附加视频对象的开始和结束时间,可以用主视频信号的画面的序号来表示:
e.确定随机访问点。根据主视频信号的每一个画面的编码方式和随机访问的要求确定随机访问点。只有采用帧内模式编码的画面才能作为随机访问点,但是不要求每一个采用帧内模式编码的画面都作为随机访问点。
f.根据每一个附加视频对象的开始和结束时间以及随机访问点确定它们在每一个主视频画面的数据结构。当附加视频对象第一次在编码数据流中出现或者在随机访问点出现时,应使用表2~表5所述的结构进行描述。当附加视频对象不是第一次在编码数据流中出现而且不在随机访问点出现时,应使用表6所述的结构进行描述。
g.为每一个附加视频对象要显示的每一个画面准备相应的描述结构,VideoObjectData()结构或者VideoObjectDifference()结构。
h.统计每个画面需要显示的附加视频对象的个数,得到video_object_number。
i.为每一个用VideoObjectData()结构描述的附加视频对象分配一个号码video_object_id。并用这个号码指明每一个VideoObjectDifference()结构描述的附加视频对象。形成VideoObject()结构。
j.确定每一个附加视频对象所处的层和相互间的叠加关系。
k.把每个画面的所有VideoObject()结构顺序排列,统计它们占据的二进制位数,再加32,作为fujia_video_info_length_in_bit的值。最后形成表7和表8所示的FuJiaVideoInfo()结构。
1.把FuJiaVideoInfo()结构插入对应的主视频画面,具体方法是将对应的主视频画面的编码数据的头部信息中的附加视频信号标志置为1,然后把FuJiaVideoInfo()结构插入在此标志的后面,主视频信号的其他编码数据整体向后移动。
图2是本发明的视频信号分层解码方法的一个实施例的流程图,如图2所示,该实施例中包括:
a′.解码主视频信号的每一个画面。
b′.如果主视频信号的一个画面的附加视频信号标志置为1,则读取一个FuJiaVideoInfo()结构。
c′.解析fujia_video_info_length_in_bit和video_object_number的值和每一个附加视频对象的描述信息,获得它们的参数。
d′.根据每一个附加视频对象的参数,获得属于他们的每一个象素的颜色。
e′.按照superpose_order指出的顺序依次把每一个附加视频对象叠加到其目标对象上。superpose_order的值相等的附加视频对象应当先把层号低的叠加到其目标对象上。叠加算法如下:对于本视频对象的每一个象素,设其颜色的某一个分量的值为v1,目标对象对应位置的象素的对应的颜色分量的值为v2,本视频对象的透明度系数(transparency_quotiety)为t,则叠加后该象素的该颜色分量的值为
v=(v2*t+v1*(256-t))/256
f′.输出叠加后的画面到显示设备。
图3是本发明的视频信号分层编解码方法的一个实施例的流程图,如图3所示,该实施例包括以下步骤:
a″.编码主视频信号。
b″.在已编码的主视频信号的基础上编辑附加视频信号,包括插入、删除和修改附加视频对象。
c″.利用传输通道传送编码视频信号,或者利用存储设备存储编码视频信号。
d″.解码器获得编码的视频信号。
e″.解码主视频信号。
f″.解码附加视频信号。
g″.把附加视频信号叠加到主视频信号上。
h″.显示输出。
图4所示的是本发明的视频信号分层编码方法的编码视频信号数据结构,如图所示一个视频序列包括若干个画面,其中每一个画面均包括画面开始码、画面数据头、画面编码数据,其中画面数据头包括若干个语法元素、附加视频标志、附加视频信息,其中附加视频信息包括附加视频信息长度、附加视频对象数量、若干个附加视频对象。
Claims (18)
1、一种视频信号的分层编码方法,其特征在于,包括以下步骤:
a、把视频信号分成主视频信号和附加视频信号;
b、编码主视频信号;
c、编码附加视频信号;其具体包括步骤:
c1、根据附加视频信号的特点分解为不同的附加视频对象,并用相应的数据结构描述该附加视频对象;
c2、确定每个附加视频对象的开始和结束位置;
d、把编码的附加视频信号插入已编码的主视频信号中;其
具体包括步骤:
d1、确定随机访问点;
d2、根据每一个附加视频对象的开始和结束时间确定它们在每一个主视频画面的数据结构;
d3、为主视频信号的每一个需要显示附加视频信号的画面生成附加视频信息;
d4、把附加视频信息插入对应的主视频画面;
2、根据权利要求1所述的视频信号的分层编码方法,其特征在于,在编码主视频信号的同时在每一个编码画面的数据头当中设一个附加视频信号标志位,该标志位置1时表明该画面有附加视频信号需要显示,该标志位置0时表明该画面没有附加视频信号需要显示。
3、根据权利要求2所述的视频信号的分层编码方法,其特征在于,所述的把附加视频信息插入对应主视频画面的方法是:
将对应的主视频画面的编码数据中的附加视频信号标志位置为1,然后把所述附加视频信息插入此标志后面,主视频信号的其他编码数据整体向后移动。
4、根据权利要求1所述的视频信号的分层编码方法,其特征在于,所述的确定每一个附加视频对象的开始和结束时间的方法是:用主视频信号的画面的序号来表示。
5、根据权利要求1所述的视频信号的分层编码方法,其特征在于,所述的确定随机访问点的方法是:根据主视频信号的每一个画面的编码方法和随机访问的要求确定随机访问点,只有帧内模式编码的画面才能作为随机访问点,但是不要求每一个采用帧内模式编码的画面都作为随机访问点。
6、根据权利要求1所述的视频信号的分层编码方法,其特征在于,用一个8位二进制整数表示附加视频对象的类别,附加视频对象最多可以有256类。
7、根据权利要求1或6所述的视频信号的分层编码方法,其特征在于,同类附加视频对象采用同样的数据结构进行描述,不同类的附加视频对象采用不同的数据结构进行描述。
8、根据权利要求7所述的视频信号的分层编码方法,其特征在于,所述的数据结构分为两种,一种为附加视频对象数据结构,其包含一个附加视频对象的完整信息,另一种为附加视频对象差别结构,其包含一个附加视频对象在不同画面的差别信息。
9、根据权利要求8所述的视频信号的分层编码方法,其特征在于,所述的附加视频对象数据结构用于描述第一次在编码数据流中出现或者在随机访问点出现时的附加视频对象,所述的附加视频对象差别结构用于描述不是第一次在编码数据流中出现而且不在随机访问点出现的附加视频对象。
10、根据权利要求1或9所述的视频信号的分层编码方法,其特征在于,所述的附加视频信息的生成包括如下步骤:
d31、统计每个画面附加视频对象的个数,得到附加视频对象数量;
d32、为每一个用附加视频对象数据结构描述的附加视频对象分配一个附加视频对象号码,用附加视频对象差别结构来描述的附加视频对象需要用该附加视频对象号码来指出它所描述的是哪一个视频对象;
d33、把所述的附加视频对象号码、附加视频对象结构、附加视频对象差别结构组织成附加视频对象结构;
d34、把每个画面的所有附加对象结构顺序排列,统计它们占据的二进制位数,再加32,作为附加视频信息长度的值,最后形成附加视频信息。
11、根据权利要求10所述的视频信号的分层编码方法,其特征在于,所述的附加视频对象号码在两次数据刷新之间是唯一的,在两次数据刷新期间用该号码来唯一标识一个附加视频对象,该附加视频对象号码的值为0-255,但是0固定用来表示主视频画面。
12、根据权利要求10所述的视频信号的分层编码方法,其特征在于,所述的附加信频对象信息结构中包含一个参数来表示本结构占据的二进制位数,一个参数用来表示本画面需要显示的附加视频对象的个数。
13、根据权利要求1所述的视频信号的分层编码方法,其特征在于,在编码附加视频信号时,通过定义附加视频对象所在的层来实现附加视频对象的层次关系。
14、根据权利要求1所述的视频信号的分层编码方法,其特征在于,在编码附加视频信号时,通过定义附加视频对象的叠加目标对象和叠加序号来实现附加视频对象之间复杂的叠加关系。
15、一种视频信号的分层解码方法,包括以下步骤:
a’、解码主视频信号的每一个画面。
b’、如果主视频信号的一个画面的附加视频信号标志置为1,则读取一个附加视频信息。
c’、解析附加视频信息长度和附加视频对象数量的值和每一个附加视频对象的描述信息,获得它们的参数。
d’、根据每一个附加视频对象的参数,获得属于它们的每一个象素的颜色。
e’、按照附加视频对象描述信息中的叠加序号参数指出的附加视频对象间相互叠加的顺序依次把每一个附加视频对象叠加到其目标对象上。
f’、输出叠加后的画面到显示设备。
16、根据权利要求15所述的视频信号的分层解码方法,其特征在于,所述的叠加算法如下:对于本视频对象的每一个象素,设其颜色的某一个分量的值为v1,目标对象对应位置的象素的对应的颜色分量的值为v2,本视频对象的透明度系数为t,则叠加后该象素的该颜色分量的值为
v=(v2*t+v1*(256-t))/256
17、根据权利要求15所述的视频信号的分层解码方法,其特征在于,所述的叠加序号的值相等的附加视频对象应当先把层号低的叠加到其目标对象上。
18、如权利要求15所述的视频信号分层解码方法,其特征在于,根据每一个编码画面数据中的附加视频信号存在标志来判断附加视频信号是否存在。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA03151247XA CN1529513A (zh) | 2003-09-26 | 2003-09-26 | 视频信号的分层编码和解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA03151247XA CN1529513A (zh) | 2003-09-26 | 2003-09-26 | 视频信号的分层编码和解码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1529513A true CN1529513A (zh) | 2004-09-15 |
Family
ID=34286983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA03151247XA Pending CN1529513A (zh) | 2003-09-26 | 2003-09-26 | 视频信号的分层编码和解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1529513A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101742286A (zh) * | 2008-11-11 | 2010-06-16 | 北京中星微电子有限公司 | 视频编、解码方法和视频编、解码装置 |
WO2016154929A1 (en) * | 2015-03-31 | 2016-10-06 | Realnetworks, Inc. | Accompanying message data inclusion in compressed video bitsreams systems and methods |
-
2003
- 2003-09-26 CN CNA03151247XA patent/CN1529513A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101742286A (zh) * | 2008-11-11 | 2010-06-16 | 北京中星微电子有限公司 | 视频编、解码方法和视频编、解码装置 |
WO2016154929A1 (en) * | 2015-03-31 | 2016-10-06 | Realnetworks, Inc. | Accompanying message data inclusion in compressed video bitsreams systems and methods |
CN107852518A (zh) * | 2015-03-31 | 2018-03-27 | 瑞尔数码有限公司 | 使伴随消息数据包括在压缩视频比特流中的系统和方法 |
US20180109816A1 (en) * | 2015-03-31 | 2018-04-19 | Realnetworks, Inc. | Accompanying message data inclusion in compressed video bitsreams systems and methods |
JP2018516474A (ja) * | 2015-03-31 | 2018-06-21 | リアルネットワークス,インコーポレーテッド | 圧縮ビデオビットストリームに付属メッセージデータを含めるシステムおよび方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2024201690B2 (en) | Source color volume information messaging | |
CN1164120C (zh) | 图像编码装置和图像解码装置 | |
CN1208971C (zh) | 运动图像的预测编码方法和译码方法 | |
CN1166191C (zh) | 编码数据的发送和接收方法以及发射机和接收机 | |
CN100352285C (zh) | 先进电视中时域和分辨率的分层方法 | |
CN1278550C (zh) | 用于再现图像的方法和装置以及图像记录装置 | |
CN1301493C (zh) | 对三维对象数据进行编码和解码的方法及装置 | |
CN1647546A (zh) | 立体视频序列编码系统和方法 | |
CN1540986A (zh) | 发送移动通信终端中收到的电视信号的方法和装置 | |
CN101049009A (zh) | 对增强的色彩空间内容进行母版制作和分发的方法和系统 | |
CN101031085A (zh) | 一种移动终端帧动画的处理方法 | |
CN1778113A (zh) | 延迟偏差可调的健壮模式交错播送 | |
CN1394434A (zh) | 数字图像内容的发布系统,再现数字图像内容的方法,以及记录有用于再现数字图像内容的程序的介质 | |
CN101043600A (zh) | 重放设备和使用该重放设备的重放方法 | |
CN101032172A (zh) | 用于可分级视频比特流的熵编码和解码的方法和系统 | |
CN103313057A (zh) | 用于比特深度可分级的视频编解码器的色调映射 | |
CN1946163A (zh) | 用于制作和播放具有热点区域的交互式视频的方法 | |
CN1777919A (zh) | 用于适配图形内容的装置和方法及其系统 | |
CN1618234A (zh) | 用于使用模式而在句法上分析位流的方法以及根据其来生成位流的方法 | |
CN1529514A (zh) | 视频信号的分层编解码方法 | |
CN1257649C (zh) | 用于缩放显示mpeg2编码图像的编码方法和设备 | |
CN1148976C (zh) | 图象传送方法和图象译码装置 | |
CN1529513A (zh) | 视频信号的分层编码和解码方法 | |
CN1909641A (zh) | 多媒体同步播放的编辑系统及方法 | |
CN101079248A (zh) | 视频处理方法、电路和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |