CN101394550A - 视频数据的打包方法及装置 - Google Patents
视频数据的打包方法及装置 Download PDFInfo
- Publication number
- CN101394550A CN101394550A CN 200810110177 CN200810110177A CN101394550A CN 101394550 A CN101394550 A CN 101394550A CN 200810110177 CN200810110177 CN 200810110177 CN 200810110177 A CN200810110177 A CN 200810110177A CN 101394550 A CN101394550 A CN 101394550A
- Authority
- CN
- China
- Prior art keywords
- strip
- stripe
- unit
- slice
- code stream
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 113
- 238000012856 packing Methods 0.000 title claims abstract description 55
- 238000012545 processing Methods 0.000 claims description 26
- 238000004806 packaging method and process Methods 0.000 claims description 9
- 230000033001 locomotion Effects 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 abstract description 13
- 238000009792 diffusion process Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种视频数据的打包方法及装置,其主要包括:首先,获取待发送的条带集,所述的条带集包括一个或多个条带;之后,根据条带集中的各条带之间的编码方式对条带集中包含的一个或多个条带进行打包操作。本发明实施例由于采用了根据条带之间的编码方式对视频流进行打包处理的实现方案,从而可以保证在通过对打包后的数据包进行视频流传输的过程中,可以有效处理网络丢包及误差扩散的现象,提高视频编解码系统的性能。
Description
技术领域
本发明涉及视频通信技术领域,尤其涉及一种视频数据传输技术。
背景技术
在视频编解码系统中,可以将图像划分成若干图像块或者宏块,并以块或宏块为单位进行运动估计,将运动估计后的残差进行变换、量化,最后对量化系数进行熵编码,将熵编码后得到的信息写入码流中。
在码流中包含了连续图像编码信息,并可称其为视频流。为将所述视频流发送给解码端,则在编码端还需要对所得到的视频流经过数据分组、归类等打包处理将其分成若干含有编码数据的数据包,以便通过数据包经特定网络将相应的视频流传输至解码端。其中,打包处理的目的在于将视频流进行分割以便其可以适合在相应网络中传输。
在视频编解码系统中,解码端在接收到编码端发来的视频流对应的数据包之后会以一定规则将数据包中的内容以一定方式组合起来,并经反量化、反变换、运动补偿处理后得到重建图像。
在视频编码过程中,在将图像分割成宏块后还可以将宏块以一定组织方式组合在一起称之为slice(条带),且相应的条带可以组合为相应的条带集。此时,若可以针对相应的条带或条带集采用合理的打包处理方式,则将有效处理网络丢包及误差扩散的现象。
目前,在H.264标准,针对条带及条带集采用的打包方式包括:将编码条带数据得到的码流将被封装在一个NAL(网络提取层)单元中,并将单个NAL单元打成一个数据包。在AVS标准中,采用的打包方式包括:首先将码流中每两个相邻的起始码前缀(0 x 000001)之间的数据转换为一个NAL单元,然后,再将单个NAL单元打成一个数据包。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
在上述针对视频流的打包方式中,未考虑条带的划分方式及图像中条带的组合关系等因素,使得相应的打包方式处理网络丢包及抗误差的能力大大降低,进而导致视频传输性能下降。
发明内容
本发明的实施例提供了一种视频流传输的方法及装置,以有效提高抗网络丢包及抗误差的能力,及解码性能,改善视频传输效果。
本发明实施例提供了一种视频数据的打包方法,包括:
获取待发送的条带集,所述的条带集包括一个或多个条带;
根据条带集中的各条带之间的编码方式对条带集中包含的一个或多个条带进行打包操作。
本发明实施例提供了一种视频数据的打包装置,包括:
条带集获取单元,用于获取待发送的条带集,所述的条带集包括一个或多个条带;
打包操作单元,用于根据所述条带集获取单元获取的条带集中的各条带之间的编码方式对条带集中包含的一个或多个条带进行打包操作。
一种视频编码的方法,包括:
在编码条带过程中,获取编码条带过程中条带结束时产生的比特数目,并将所述条带结束时产生的比特数目写入码流中;
或者,
在编码条带过程中,获取编码条带包含的宏块数目,并将所述宏块数目写入码流中。
一种视频编码装置,包括:
条带编码单元,用于对当前条带进行编码操作;
结束参数写入单元,用于在所述条带编码单元进行编码条带过程中,在编码码流中写入条带的结束参数信息,所述结束参数信息包括:条带结束时产生的比特数目,或者,条带包含的宏块数目。
一种视频解码的方法,包括:
在解码条带过程中,解析获得码流中的条带的结束参数信息,所述的结束参数信息包括:条带结束时产生的比特数目,或者,条带包含的宏块数目;
根据所述结束参数信息确定条带的解码是否完成。
一种视频解码装置,包括:
结束参数获取单元,用于在解码条带过程中,解析获得编码码流中的条带的结束参数信息,所述的结束参数信息包括:条带结束时产生的比特数目;或者,条带包含的宏块数目;
条带解码单元,用于根据所述结束参数获取单元获取的结束参数信息确定针对当前条带的解码是否完成,以实现针对条带的解码操作。
由上述本发明的实施例提供的技术方案可以看出,本发明实施例由于采用了根据条带之间的编码方式对视频流进行打包处理的实现方案,从而可以保证在通过对打包后的数据包进行视频流传输的过程中,可以有效处理网络丢包及误差扩散的现象,提高视频编解码系统的性能。本发明实施例中,由于在编码条带过程中,向码流中写入了相应的结束参数信息,从而使得在解码端可以快速、准确识别出条带结束点,从而提高解码的准确性,进一步提高了视频编解码系统的性能。
附图说明
图1为本发明实施例中的条带集划分示意图;
图2为本发明实施例提供的装置的结构示意图;
图3为本发明实施例提供的编码装置的结构示意图;
图4为本发明实施例提供的解码装置的结构示意图。
具体实施方式
本发明实施例中,在获取待发送的包含一个或多个条带的条带集后,可以根据条带集中的各条带之间的编码方式对条带集中包含的一个或多个条带进行打包操作。其中,所述的编码方式可以但不限于包括独立编码方式或非独立编号方式等。
本发明实施例中,具体可以根据条带集参数的设置情况以及网络传输条件等,以条带集或者条带集中的若干条带为单位进行打包,所述的条带集中包含一个或多个条带,所述的条带可以包括按照扫描顺序连续的宏块,例如,按照光栅扫描顺序连续的宏块。其中,相应的条带集参数可以包括但不仅限于:用于标识当前条带是否属于当前条带集的参数,或者,用于标识当前条带集中条带是否具有编解码独立性的参数(即对条带编码过程中是否采用了独立编码方式进行编码的参数),以及其它与当前条带集打包相关的参数,等等。
本发明实施例中,根据条带集参数对条带集进行打包操作的过程具体可以包括:若条带集中均为采用独立编码方式编码的条带,则将条带集中的各条带分别各自独立封装于一个数据包中;若条带集中包含至少一个采用非独立编码方式编码的条带,即条带集中包含未采用独立编码方式编码的条带,则将条带集中的各条带组合封装于一个数据包中。
在上述打包处理过程中,当需要在一个数据包中封装一个条带集中的多个条带时,则还可以根据当前网络带宽情况进行打包处理,具体可以为:首先,可以根据当前网络带宽确定一个数据包中可以封装的条带数目,之后,根据所述可以封装的条带数目,将条带集中的条带封装于一个或多个符合当前网络带宽传输要求的数据包中。
进一步地,本发明实施例中,可以采用的打包方式包括:
当网络带宽可保证将条带集中所有条带一起打包传输时,则根据当前条带集参数的设置,可以将条带集中的所有条带作为一个整体进行打包。当网络带宽不能保证将条带集中所有条带一起打包时,或者,根据当前条带集参数确定不适合将整个条带集一起打包时,则可以根据网络带宽的情况对条带集进行适当分组,将条带集中的若干条带分开进行打包,即以条带集中的若干个条带为单位进行打包。
其中,在当网络带宽可保证条带集中所有条带一起打包的情况下,若当前条带集中的至少一个条带与其他条带之间不具有编解码独立性(即未采用独立编码方式进行编码,而是采用条带之间依赖其他条带的数据的编码方式进行编码),则可以将当前条带集中的所有条带作为一个整体进行打包。否则,即当前条带集中所有条带之间具有编码独立性,可以将条带集中的各个条带单独进行打包,即在丢掉单个包时也不影响针对条带集中其它数据包的解码,以保证相应的抗误码性能。
本发明实施例中,若需要对条带集中多于一个数目的条带一起打包,则相对于现有技术中采用的打包处理方式,需要在原有基于单个条带打包模式的基础上进行相应的操作,以适应新的打包形式的需求;例如,对于基于起始码前缀的码流(如AVS视频流等),可以不再将条带之间的起始码分割去掉,只去掉第一个条带前的起始码,对于需要封装于同一数据包中的该条带集中的其他条带,则保留相应的条带起始码,之后,将多个条带映射成一个NAL单元;或者,对于基于NAL单元的码流,不再将单个条带映射成一个NAL单元,而是将需要的多个条带一起组合成一个NAL单元。
需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括本发明实施例中描述的全部或部分处理步骤,其中,所述的存储介质可以但不限于为:ROM/RAM、磁碟或光盘等。
为便于对本发明实施例的理解,下在将结合附图对本发明实施例的具体实施方式进行详细说明。
假设,采用以下两个相关参数标识条带集:
(1)slice_set_index参数:即条带集序号,用于标识图像内的不同条带集,具有相同slice_set_index值的条带属于同一条带集;
(2)slice_independency参数:即条带独立性标志,用于标识当前条带集内各条带是否具有编解码独立性,例如,可以采用slice_independency值为1时表示当前条带内宏块编解码时只能使用本条带内的数据,slice_independency值为0时表示当前条带内宏块编解码时可以使用本幅图像内具有相同slice_set_index的条带数据,即同一条带集中的其他条带对应的数据。
相应的条带集划分的方式可以参照图1所示,其中,A,B0,C,B1,D,B2,E为各个条带;Row 0~Row 7为图像中的8个宏块行,0~7为宏块行在图像中的垂直位置;Col 0~Clo 7为图像中8个宏块列,0~7为宏块列在图像中的水平位置。
假设A,C,D同属一个条带集,B0,B1,B2属于另一个条带集,条带E属于第三个条带集;则可以令A,C,D三个条带slice_set_index为0,B0,B1,B2三条带slice_set_index为1;E的slice_set_index为2;
各条带对应的slice_independency值可以设置为:A,C,D三个条带的slice_independency值分别设置为1,1,1,B0,B1,B2三个条带的slice_independency值分别设置为:0,0,0;条带E独自属于一个条带集,故其slice_independency值可以设置为1。
根据上述slice_independency值的设置可知:A,C,D三个条带中任一条带内宏块的解码处理不能使用其他两个条带的数据;B0,B1,B2三个条带中任一条带内宏块的解码处理可以使用其他两个条带的数据;E条带内宏块的解码处理不能使用其它条带的数据。
针对图1所示的图像,当网络带宽可保证条带集中所有条带一起打包时,具体可以采用以下打包处理方式对各条带进行打包:
(1)针对条带A,C,D的打包方式
由于条带集1中的三个条带A,C,D编解码具有独立性,因此可以将A,C,D三个条带任意组合进行打包;若为了保证一定的抗误码性能,则可以将A,C,D分开进行打包,这样,若其中任意一个包丢失将不会影响针对其它包的解码操作;
(2)针对条带B0,B1,B2的打包方式
由于条带集2中的三个条带B0,B1,B2编解码不具有独立性,因此可以将B0,B1,B2三个条带整体进行打包;例如,对于AVS的码流,只需将B0条带码流前的起始码前缀去掉,到B2条带的数据结束为止,映射成一个NAL单元;对于以NAL为单元的H.264标准中,则可以将条带B0,B1,B2的数据组合成一个NAL单元;
(3)针对条带E的打包方式
由于条带E独自成为一个条带集,且其编码具有独立性,故可以对其单独进行打包。
本发明实施例还提供了一种视频数据的打包装置,其具体实现结构如图2所示,可以包括以下处理单元:
(1)条带集获取单元,用于获取待发送的条带集,所述的条带集包括一个或多个条带,其中,所述的条带可以为按照扫描顺序连续的宏块,如按照光栅扫描顺序连续的宏块等;
(2)打包操作单元,用于根据所述条带集获取单元获取的条带集中的各条带之间的编码方式对条带集中包含的一个或多个条带进行打包操作;
该打包操作单元具体可以包括以下至少一个单元:
第一打包处理单元,用于在条带集中均为采用独立编码方式编码的条带时,将条带集中的各条带分别各自独立封装于一个数据包中;
第二打包处理单元,用于在条带集中包含至少一个采用非独立编码方式编码的条带(即条带集中包含未采用独立编码方式编码的条带)时,将条带集中的各条带组合封装于一个数据包中。
可选地,为灵活适应网络带宽对数据传输的要求,相应的第二打包处理单元具体可以包括以下单元:
条带数目确定单元,用于根据当前网络带宽确定一个数据包中可以封装的条带数目,以便于根据该条带数目确定数据包的大小;
打包执行单元,用于根据所述条带数据确定单元确定的数据包中可以封装的条带数目,将条带集中的条带封装于一个或多个数据包中,即以所述条带数目个条带为单位进行数据包的封装操作。
可选地,针对不同的码流,该第二打包处理单元可以包括:
基于起始码前缀的码流打包单元,用于将多个条带中的第一个条带的起始码前缀去掉,其他条带的起始码前缀保留,再将多个条带映射称为一个NAL单元;
或者,
基于NAL单元的码流打包单元,用于将需要组合打包的若干个条带数据组合成一个NAL单元。
另外,在一些视频编解码技术中,在编码过程中,写入码流中的条带数据的比特长度具有不可预测的特性,从而使得解码端无法准确获知码流中条带数据的长度,使得解码过程无法可靠地进行解码操作
为使得在视频数据处理过程中,可以依据所处理数据的结束判断条件对相应的数据进行打包或解包处理。本发明实施例还提供了相应的条带集及独立条带对应的编解码结束的判断条件及对应的数据处理过程,其中,在编码过程中产生的独立条带即为传统意义的条带,其不含有条带集参数,在编码过程中产生的每个条带集中的条带则拥有共同的条带集参数。
相应的在编码端,可以在编码条带过程中,向编码码流中写入条带的结束参数信息,以便于解码端可以根据该结束参数信息判断针对当前条带的解码是否结束。
其中,根据不同的结束参数信息,相应的写入条带的结束参数信息的过程具体可以为以下任一过程:
(1)获取编码条带过程中条带结束时产生的比特数目(即条带结束时,写入码流的比特数目),并将所述条带结束时产生的比特数目写入码流中作为所述结束参数信息;
可选地,将条带结束时产生的比特数目写入码流中的过程具体可以包括:在码流中的条带数据对应的比特码流后写入特殊标识符(如000000000000000000000011或000000000000000000000000等),该特殊标识符用于指示码流中包含条带结束时产生的比特数目的参数;之后,再在特殊标识符后将条带结束时产生的比特数目的参数写入码流中,且该条带结束时产生的比特数目可以但不限于采用变长码方式写入码流中。
(2)获取编码条带包含的宏块数目,并将所述宏块数目写入码流中作为所述结束参数信息;
对于条带编码过程,编码端可以在条带头写入当前条带包含的宏块数目;对应的,在解码端,便可以根据条带头中当前条带包含的宏块数目判断针对当前条带的解码过程是否结束,即若解码宏块数目等于当前条带包含的宏块数目则解码过程结束,否则继续针对当前条带的宏块的解码操作。
本发明实施例中,对于条带集,编码端在条带集编码结束后,可以在码流中写入条带集的结束标识符,用于指示当前条带集编码结束,例如,在比特流中写入一比特信息作为条带集的结束标识符等;对应的,在解码端,便可根据该结束符判断当前条带集是否已经解码结束,以实现准确解码。
本发明实施例中,相应的条带集中包含的条带存在共同的条带集参数;相应的条带则不含有条带集参数,相应的条带可以为条带集中的条带,也可以为独立条带。
本发明实施例还提供了相应的视频解码的实现方案,其在解码条带过程中,解析获得编码码流中的条带的结束参数信息;并根据结束参数信息确定针对当前条带的解码是否完成,以实现针对条带的解码操作。
与编码端对应,相应的结束参数信息可以包括:条带结束时产生的比特数目;或者,条带包含的宏块数目。
进一步地,若结束参数信息为条带结束时产生的比特数目,则解析获得编码码流中的条带的结束参数信息的过程中,首先解码获得码流中的条带数据对应的比特码流后的特殊标识符,该特殊标识符用于指示码流中包含条带结束时产生的比特数目的参数;在特殊标识符后,可解析获得条带结束时产生的比特数目。
在解码端,若结束参数信息为条带结束时产生的比特数目,则根据结束参数信息确定针对当前条带的解码是否完成的过程可以包括:
(1)在一宏块或一宏块行数据解码结束后,将当前比特流指针前移,前移位数为相应的解码获得的条带结束时产生的比特数目;
(2)判断比特流当前位置是否为字节对齐位置,若不是,则判断当前位置的下一个字节开始的位置是否为特殊标识符;否则,判断当前位置之后是否为特殊标识符;
(3)若在上述过程(2)中,判断确定相应位置为特殊标识符,则条带解码结束,否则,在比特流指针后移相应的条带结束时产生的比特数目后,继续解码下一宏块或宏块行数据,直至当前条带解码结束。
在解码端,若结束参数信息为条带包含的宏块数目,则根据结束参数信息确定针对当前条带的解码是否完成的过程可以包括:解析获码流的条带包含的宏块数目,在解码条带过程中,若解码宏块数目等于相应的条带包含的宏块数目,则条带解码结束,否则,继续解码下一宏块或宏块行数据,直至当前条带解码结束。
下面将结合条带集及独立条带的编解码结束条件,以基于上下文的自适应二元算术编码(Context-based Adaptive Binary Arithmatic Coding,CABAC)方式为例,对编码端针对视频数据的打包处理过程及解码端针对视频数据的解包处理过程进行说明。
在CABAC技术中,比特数据的读写具有不可预测性,通常编码一个语法元素所需写入的比特数目需要取决于上下文的语法元素,使得解码端无法获知从比特流中读取多少比特的数据作为一个条带的数据,从而给条带结束的判断带来了困难。也就是说,若假设CABAC编码操作过程为terminate_slice(),CABAC解码操作过程为decode_terminate(),则由于CABAC的编码特性terminate_slice()在编码端所写如的比特数不可事先获知,因而使得解码端亦无法提前获知条带解码结束decode_terminate()过程所需读取的比特数。
基于相应的CABAC技术的上述特征,本发明实施例中,可以在编码端和解码端分别采用以下处理方式,以解决相应的问题。
(一)编码端
在编码端,记录terminate_slice()过程所条带结束时产生的比特数目,并可以但不限于采用变长码方式将该参数(即条带结束时产生的比特数目)写入码流中。
进一步地,为使解码端能够快速定位获得该参数,可以在码流中首先写入一特殊标识符,该特殊标识符当前仅当写入terminate_slice()过程所产生比特数时存在,即通过该特殊标识符指示码流中包含条带结束时产生的比特数目的参数,例如,该特殊标识符可以但不限于为:000000000000000000000011,即22个’0’再加’11’。相应的将该参数(即条带结束时产生的比特数目)写入码流中的过程可以包括:当条带数据编码完成后,先写入一填充比特’1’,之后再写入填充比特’0’直至字节对齐;字节对齐后,再向码流中写入该特殊标识符,并写入terminate_slice()过程所条带结束时产生的比特数目;最后再写入一填充比特’1’,并依次再写入填充比特’0’直至字节对齐。
(二)解码端
在解码端,解析该条带数据前,首先在条带数据中找到预设好的所述特殊标识符,在该实施例中假设该特殊标识符为:000000000000000000000011,即22个’0’再加’11’;找到所述特殊标识符后,则在该标识符后以变长码方式读取解码端decode_terminate()过程所需读取的比特数目,即编码端terminate_slice()过程所条带结束时产生的比特数目;获得相应的条带结束时产生的比特数目的参数后,将码流指针重定位至条带数据开始处,并解码条带数据。
在解码条带数据过程中,当解码完毕一宏块或一宏块行或若干指定数目的宏块数据后,将码流指针前移,前移的比特位数为所述decode_terminate()过程所需读取的比特数目(即解码获得的条带结束时产生的比特数目);之后,相应的处理过程包括以下两种情况:
(1)若比特流当前位置(即码流指针所指向的位置)不是字节对齐的位置,则判断比特流当前位置的下一个字节(即字节对齐位置)开始的24个比特是否为所述的特殊标识符(在该实施例中假设该特殊标识符为:000000000000000000000011,即22个’0’再加’11’),若是,则解码过程结束,还将比特流指针移至码流中表示所述decode_terminate()过程所需读取的比特数目的参数之后,若不是,则将比特流指针后移所述decode_terminate()过程所需读取的比特数目,并继续解码下一宏块数据,直至条带解码结束;
(2)若比特流当前位置(即码流指针所指向的位置)为字节对齐的位置,则判断当前指针所指向的位置开始或当前指针所指向的位置的再下一字节对齐处的24个比特是否为所述的特殊标识符(在该实施例中假设该特殊标识符为:000000000000000000000011,即22个’0’再加’11’),若是,则条带解码结束,还将比特流指针移至码流中表示所述decode_terminate()过程所需读取的比特数目的参数之后,若不是,则将比特流指针后移所述decode_terminate()过程所需读取的比特数目,并继续解码下一宏块数据,直至条带解码结束。
下面再以一个具体的例子,对上述过程进行说明:假设,在编码端,当前条带编码结束后执行terminate_slice()过程写入码流中的比特数目(编码条带的比特数目,即所述条带结束时产生的比特数目)为5,则具体的写入码流的方式可以为在terminate_slice()后字节对齐处写入22个0加′11′,再以一节哥伦布码方式写入00110(即表示条带结束时产生的比特数目为5)。对应的,在解码端,首先在两条带起始码间获得22个0加′11′的位置,然后在其后读取条带结束时产生的比特数目5,假设当前宏块解码结束比特流指针指向19的位置,则将比特流指针向前移5个比特至24的位置,再从该比特流指针为24的位置继续寻找字节对齐的位置,并从该字节对齐的位置开始判断是否为所述特殊标识符,若是,则条带解码结束,否则继续解码下一个宏块,周而复始,直到条带解码结束。
本发明实施例还提供了一种视频编码装置,其具体实现结构如图3所示,可以包括:
条带编码单元301,用于对当前条带进行编码操作;
结束参数写入单元302,用于在条带编码单元301进行编码条带过程中,在编码码流中写入条带的结束参数信息;该结束参数信息可以包括:条带结束时产生的比特数目;或者,条带包含的宏块数目。
在该装置中,若相应结束参数信息为写入码流的比特数据,则结束参数写入单元302具体可以包括:
特殊标识符写入单元3021,用于在条带编码单元301获得的码流中的条带数据对应的比特码流后写入特殊标识符,该特殊标识符用于指示码流中包含所述条带结束时产生的比特数目的参数;
比特数目写入单元3022,用于在特殊标识符写入单元3021写入的特殊标识符后将所述条带结束时产生的比特数目的参数写入码流中。
上述视频编码装置具体采用的编码过程在前面方法实施例中已经描述,故在此不再一一详述。
本发明实施例还提供了一种视频解码装置,其具体实现结构如图4所示,可以包括:
结束参数获取单元401,用于在解码条带过程中,解析获得编码码流中的条带的结束参数信息;同样,该结束参数信息可以但不限于包括:条带结束时产生的比特数目;或者,条带包含的宏块数目。
条带解码单元402,用于根据结束参数获取单元401获取的结束参数信息确定针对当前条带的解码是否完成,以实现针对条带的解码操作。
在该装置中,若结束参数信息为条带结束时产生的比特数目,则上述结束参数获取单元401具体可以包括:
特殊标识符获取单元4011,用于解码获得码流中的条带数据对应的比特码流后的特殊标识符,该特殊标识符用于指示码流中包含所述条带结束时产生的比特数目的参数;
比特数目获取单元4012,用于在特殊标识符获取单元4011获取的特殊标识符后,解析获得所述条带结束时产生的比特数目。
在该装置中,若结束参数信息为条带结束时产生的比特数目,则上述条带解码单元402具体可以包括:
指针移位处理单元4021,用于在一宏块或一宏块行数据解码结束后,将当前比特流指针前移,前移位数为所述条带结束时产生的比特数目;
第一判断单元4022,用于判断比特流当前位置是否为字节对齐位置;
第二判断单元4023,用于在相应的第一判断单元4022确定当前位置不是字节对齐位置时,则判断当前位置的下一个字节开始的位置是否为所述特殊标识符;若确定当前位置为字节对齐位置,则判断当前位置之后是否为所述特殊标识符;
判断结果处理单元4024,用于在第二判断单元4023确定相应位置为所述特殊标识符,则判定条带解码结束,否则,在比特流指针后移条带结束时产生的比特数目后,继续解码下一宏块或宏块行数据,直至当前条带解码结束。
上述视频解码装置具体采用的解码过程在前面方法实施例中已经描述,故在此不再一一详述。
本发明实施例还提供了编解码系统,由上述各实施例提供的视频编码装置及相应的视频解码装置组成。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
综上所述,由于采用了根据条带集参数(即条带集编码方式)对包含一个或多个条带的条带集进行打包处理,从而可以提高抗网络丢包及抗误差的能力,改善视频传输效果;例如,当条带集中的各个条带之间采用独立编码方式进行编码时,则可以将条带集中的各条带分别打包到不同的数据包中,从而可以提高视频传输过程中的抗丢包的能力。进一步地,在将多个条带打包到一个数据包的过程中还可以根据网络带宽进行打包,从而使得打包后的数据包可以很好地适应网络传输环境。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (25)
1、一种视频数据的打包方法,其特征在于,包括:
获取待发送的条带集,所述的条带集包括一个或多个条带;
根据条带集中的各条带之间的编码方式对条带集中包含的一个或多个条带进行打包操作。
2、根据权利要求1所述的方法,其特征在于,所述的条带包括按照扫描顺序连续的宏块。
3、根据权利要求2所述的方法,其特征在于,所述的扫描顺序包括光栅扫描顺序。
4、根据权利要求1、2或3所述的方法,其特征在于,所述的打包操作具体包括以下至少一种处理方式:
若条带集中均为采用独立编码方式编码的条带,则将条带集中的各条带分别各自独立封装于一个数据包中;
若条带集中包含至少一个采用非独立编码方式编码的条带,则将条带集中的各条带组合封装于一个数据包中。
5、根据权利要求4所述的方法,其特征在于,当需要在一个数据包中封装一个条带集中的多个条带时,该方法还包括:
根据当前网络带宽确定一个数据包中可以封装的条带数目;
根据所述可以封装的条带数目,将条带集中的条带封装于一个或多个数据包中。
6、根据权利要求4所述的方法,其特征在于,当需要在一个数据包中封装一个条带集中的多个条带时,该方法还包括:
对于基于起始码前缀的码流,将多个条带中的第一个条带的起始码前缀去掉,其他条带的起始码前缀保留,再将多个条带映射称为一个网络提取层NAL单元;
或者,
对于基于NAL单元的码流,将需要组合打包的若干个条带数据组合成一个NAL单元。
7、一种视频数据的打包装置,其特征在于,包括:
条带集获取单元,用于获取待发送的条带集,所述的条带集包括一个或多个条带;
打包操作单元,用于根据所述条带集获取单元获取的条带集中的各条带之间的编码方式对条带集中包含的一个或多个条带进行打包操作。
8、根据权利要求7所述的装置,其特征在于,所述的打包操作单元具体包括:
第一打包处理单元,用于在条带集中均为采用独立编码方式编码的条带时,将条带集中的各条带分别各自独立封装于一个数据包中;
或者,
第二打包处理单元,用于在条带集中包含至少一个采用非独立编码方式编码的条带时,将条带集中的各条带组合封装于一个数据包中。
9、根据权利要求8所述的方法,其特征在于,所述的第二打包处理单元具体包括:
条带数目确定单元,用于根据当前网络带宽确定一个数据包中可以封装的条带数目;
打包执行单元,用于根据所述条带数据确定单元确定的数据包中可以封装的条带数目,将条带集中的条带封装于一个或多个数据包中。
10、根据权利要求8所述的方法,其特征在于,所述的第二打包处理单元包括:
基于起始码前缀的码流打包单元,用于将多个条带中的第一个条带的起始码前缀去掉,其他条带的起始码前缀保留,再将多个条带映射称为一个NAL单元;
或者,
基于NAL单元的码流打包单元,用于将需要组合打包的若干个条带数据组合成一个NAL单元。
11、一种视频编码的方法,其特征在于,包括:
在编码条带过程中,获取编码条带过程中条带结束时产生的比特数目,并将所述条带结束时产生的比特数目写入码流中;
或者,
在编码条带过程中,获取编码条带包含的宏块数目,并将所述宏块数目写入码流中。
12、根据权利要求11所述的方法,其特征在于,将所述条带结束时产生的比特数目写入码流中的过程包括:
在码流中的条带数据对应的比特码流后写入特殊标识符,该特殊标识符用于指示码流中包含所述条带结束时产生的比特数目的参数;
在所述特殊标识符后将所述条带结束时产生的比特数目的参数写入码流中。
13、根据权利要求12所述的方法,其特征在于,所述的特殊标识符包括:000000000000000000000011或000000000000000000000000。
14、根据权利要求12所述的方法,其特征在于,所述条带结束时产生的比特数目采用变长码方式写入码流中。
15、根据权利要求11至14任一项所述的方法,其特征在于,在针对条带集的编码过程中,该方法还包括:
在码流中写入条带集的结束标识符,用于指示当前条带集编码结束,所述的条带集包括一个或多个条带。
16、一种视频编码装置,其特征在于,包括:
条带编码单元,用于对当前条带进行编码操作;
结束参数写入单元,用于在所述条带编码单元进行编码条带过程中,在编码码流中写入条带的结束参数信息,所述结束参数信息包括:条带结束时产生的比特数目或者条带包含的宏块数目。
17、根据权利要求16所述的装置,其特征在于,当所述结束参数信息为写入码流的比特数据时,所述结束参数写入单元包括:
特殊标识符写入单元,用于在所述条带编码单元获得的码流中的条带数据对应的比特码流后写入特殊标识符,该特殊标识符用于指示码流中包含所述条带结束时产生的比特数目的参数;
比特数目写入单元,用于在所述特殊标识符写入单元写入的特殊标识符后将所述条带结束时产生的比特数目的参数写入码流中。
18、一种视频解码的方法,其特征在于,包括:
在解码条带过程中,解析获得码流中的条带的结束参数信息,所述的结束参数信息包括:条带结束时产生的比特数目,或者,条带包含的宏块数目;
根据所述结束参数信息确定条带的解码是否完成。
19、根据权利要求18所述的方法,其特征在于,所述解析获得编码码流中的条带的结束参数信息的过程包括:
解码获得码流中的条带数据对应的比特码流后的特殊标识符,该特殊标识符用于指示码流中包含所述条带结束时产生的比特数目的参数的位置;
在所述特殊标识符后,解析获得所述条带结束时产生的比特数目。
20、根据权利要求19所述的方法,其特征在于,所述的特殊标识符包括:000000000000000000000011或000000000000000000000000。
21、根据权利要求18、19或20所述的方法,其特征在于,所述根据所述结束参数信息确定针对当前条带的解码是否完成的过程包括:
在一宏块或一宏块行数据解码结束后,将当前比特流指针前移,前移位数为所述条带结束时产生的比特数目;
判断比特流当前位置是否为字节对齐位置,若不是,则判断比特流指针指向比特流位置的下一个字节开始处是否为所述特殊标识符;否则,判断比特流指针指向比特流位置之后是否为所述特殊标识符,或者判断比特流指针指向比特流位置之后的下一字节是否为所述特殊标识符。
若判断确定为所述特殊标识符,则条带解码结束,比特流指针移至所述读取码流的比特数目的参数之后;否则,在比特流指针后移所述读取码流的比特数目后,继续解码下一宏块或宏块行数据。
22、根据权利要求18所述的方法,其特征在于,所述根据所述结束参数信息确定针对当前条带的解码是否完成的过程包括:
获得码流的条带包含的宏块数目,若解码宏块数目等于所述条带包含的宏块数目,则条带解码结束。
23、一种视频解码装置,其特征在于,包括:
结束参数获取单元,用于在解码条带过程中,解析获得编码码流中的条带的结束参数信息,所述的结束参数信息包括:条带结束时产生的比特数目,或者,条带包含的宏块数目;
条带解码单元,用于根据所述结束参数获取单元获取的结束参数信息确定针对当前条带的解码是否完成,以实现针对条带的解码操作。
24、根据权利要求23所述的装置,其特征在于,若所述结束参数信息为条带结束时产生的比特数目,则所述结束参数获取单元包括:
特殊标识符获取单元,用于解码获得码流中的条带数据对应的比特码流后的特殊标识符,该特殊标识符用于指示码流中包含所述条带结束时产生的比特数目的参数;
比特数目获取单元,用于在所述特殊标识符获取单元获取的特殊标识符后,解析获得所述条带结束时产生的比特数目。
25、根据权利要求23或24所述的装置,其特征在于,所述条带解码单元包括:
指针移位处理单元,用于在一宏块或一宏块行数据解码结束后,将当前比特流指针前移,前移位数为所述条带结束时产生的比特数目;
第一判断单元,用于判断比特流当前位置是否为字节对齐位置;
第二判断单元,用于在所述第一判断单元确定当前位置不是字节对齐位置,则判断当前位置的下一个字节开始的位置是否为所述特殊标识符;若确定当前位置为字节对齐位置,则判断当前位置之后是否为所述特殊标识符;
判断结果处理单元,用于在所述第二判断单元确定相应位置为所述特殊标识符,则判定条带解码结束,否则,在比特流指针后移所述条带结束时产生的比特数目后,继续解码下一宏块或宏块行数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810110177 CN101394550B (zh) | 2007-09-17 | 2008-06-13 | 视频数据的打包方法及装置 |
PCT/CN2009/072250 WO2009149671A1 (zh) | 2008-06-13 | 2009-06-12 | 视频数据的打包、编解码方法及装置及系统 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710121894 | 2007-09-17 | ||
CN200710121894.X | 2007-09-17 | ||
CN 200810110177 CN101394550B (zh) | 2007-09-17 | 2008-06-13 | 视频数据的打包方法及装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010135799 Division CN102055963A (zh) | 2008-06-13 | 2008-06-13 | 一种视频编码、解码方法及编码、解码装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101394550A true CN101394550A (zh) | 2009-03-25 |
CN101394550B CN101394550B (zh) | 2010-08-11 |
Family
ID=40494584
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810110177 Active CN101394550B (zh) | 2007-09-17 | 2008-06-13 | 视频数据的打包方法及装置 |
CN 200810129023 Pending CN101394551A (zh) | 2007-09-17 | 2008-06-19 | 视频数据的打包、编解码方法及装置及系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810129023 Pending CN101394551A (zh) | 2007-09-17 | 2008-06-19 | 视频数据的打包、编解码方法及装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN101394550B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009149671A1 (zh) * | 2008-06-13 | 2009-12-17 | 华为技术有限公司 | 视频数据的打包、编解码方法及装置及系统 |
CN101800892A (zh) * | 2010-03-04 | 2010-08-11 | 青岛海信信芯科技有限公司 | 多媒体码流识别的方法和装置 |
CN102033941A (zh) * | 2010-12-21 | 2011-04-27 | 同辉佳视(北京)信息技术有限公司 | 数据打包方法及装置 |
CN101800671B (zh) * | 2010-02-08 | 2012-05-23 | 同济大学 | 一种h.264视频文件的丢包检测方法 |
CN102595119A (zh) * | 2011-01-14 | 2012-07-18 | 华为技术有限公司 | 条带编码方法及装置、条带解码方法及装置 |
CN103247344A (zh) * | 2012-02-08 | 2013-08-14 | 晨星软件研发(深圳)有限公司 | 数据包装装置及数据包装方法 |
CN103718557A (zh) * | 2011-07-29 | 2014-04-09 | 夏普株式会社 | 用于解码视频的方法 |
CN105472371A (zh) * | 2016-01-13 | 2016-04-06 | 腾讯科技(深圳)有限公司 | 视频码流处理方法和装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MX336707B (es) * | 2011-03-10 | 2016-01-28 | Sharp Kk | Metodo de decodificacion de video. |
CN109600616B (zh) * | 2018-11-27 | 2022-11-04 | 西安汇明科技发展有限责任公司 | 一种基于h.264视频压缩标准的码流封装方法 |
-
2008
- 2008-06-13 CN CN 200810110177 patent/CN101394550B/zh active Active
- 2008-06-19 CN CN 200810129023 patent/CN101394551A/zh active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009149671A1 (zh) * | 2008-06-13 | 2009-12-17 | 华为技术有限公司 | 视频数据的打包、编解码方法及装置及系统 |
CN101800671B (zh) * | 2010-02-08 | 2012-05-23 | 同济大学 | 一种h.264视频文件的丢包检测方法 |
CN101800892A (zh) * | 2010-03-04 | 2010-08-11 | 青岛海信信芯科技有限公司 | 多媒体码流识别的方法和装置 |
CN102033941A (zh) * | 2010-12-21 | 2011-04-27 | 同辉佳视(北京)信息技术有限公司 | 数据打包方法及装置 |
CN102595119A (zh) * | 2011-01-14 | 2012-07-18 | 华为技术有限公司 | 条带编码方法及装置、条带解码方法及装置 |
WO2012095032A1 (zh) * | 2011-01-14 | 2012-07-19 | 华为技术有限公司 | 指示和获取用户流数的方法及通信装置 |
CN102595119B (zh) * | 2011-01-14 | 2014-03-12 | 华为技术有限公司 | 条带编码方法及装置、条带解码方法及装置 |
CN103718557A (zh) * | 2011-07-29 | 2014-04-09 | 夏普株式会社 | 用于解码视频的方法 |
CN103718557B (zh) * | 2011-07-29 | 2017-07-28 | 夏普株式会社 | 用于解码视频的方法 |
CN103247344A (zh) * | 2012-02-08 | 2013-08-14 | 晨星软件研发(深圳)有限公司 | 数据包装装置及数据包装方法 |
CN103247344B (zh) * | 2012-02-08 | 2016-03-16 | 晨星软件研发(深圳)有限公司 | 数据包装装置及数据包装方法 |
CN105472371A (zh) * | 2016-01-13 | 2016-04-06 | 腾讯科技(深圳)有限公司 | 视频码流处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101394551A (zh) | 2009-03-25 |
CN101394550B (zh) | 2010-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101394550B (zh) | 视频数据的打包方法及装置 | |
US7770091B2 (en) | Data compression for use in communication systems | |
US7680269B2 (en) | Method for ciphering a compressed audio or video stream with error tolerance | |
TWI753214B (zh) | 允許平行處理之編碼器、解碼器、傳送解多工器、系統、儲存媒體、方法及電腦程式 | |
CN103096047B (zh) | 一种分片层参数集解码及编码方法和装置 | |
KR101353128B1 (ko) | 부가적인 네트워크 추상화 계층 (nal) 들을 사용하여 멀티미디어 데이터를 보호하는 방법 | |
KR100992002B1 (ko) | 계층화된 미디어 비트스트림의 패킷화 | |
JP6310152B2 (ja) | パレットテーブル予測とシグナリングの方法と装置 | |
CN109088689B (zh) | 用于物理层封装的数据结构、数据结构产生设备及其方法 | |
CN106664414A (zh) | 视频编码中用于单个样本模式的候选生成的方法及装置 | |
CN102055963A (zh) | 一种视频编码、解码方法及编码、解码装置 | |
US5818364A (en) | High bit-rate huffman decoding | |
US9326011B2 (en) | Method and apparatus for generating bitstream based on syntax element | |
RU2011105660A (ru) | Способ и устройство для синхронизации сильно сжатых данных улучшающего слоя | |
CN105191248A (zh) | 用于分组头部压缩的方法和装置 | |
CN114124909B (zh) | 基于激光雷达的点云实时采集压缩传输系统及方法 | |
CN104935944B (zh) | 一种视频数据编码、解码的方法和装置 | |
CN101455021A (zh) | 发送未压缩a/v数据的传输包结构及使用它的收发机 | |
KR100357266B1 (ko) | 데이터 분할 기법을 이용한 영상 부호화 전송방법 | |
US20170359591A1 (en) | Method and device for entropy encoding or entropy decoding video signal for high-capacity parallel processing | |
CN1119377A (zh) | 用于装满比特位的数据的可变长译码装置 | |
KR20020064776A (ko) | Mpeg-4 인코더 및 그 인코더의 출력 코딩된 신호 | |
CN104754341A (zh) | 一种视频数据编码、解码的方法和装置 | |
CN104079941B (zh) | 一种深度信息编解码方法、装置及视频处理播放设备 | |
JP4907039B2 (ja) | 信号符号化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |