CN102098519A - 视频编码方法、解码方法、编码及解码装置 - Google Patents

视频编码方法、解码方法、编码及解码装置 Download PDF

Info

Publication number
CN102098519A
CN102098519A CN2009102512821A CN200910251282A CN102098519A CN 102098519 A CN102098519 A CN 102098519A CN 2009102512821 A CN2009102512821 A CN 2009102512821A CN 200910251282 A CN200910251282 A CN 200910251282A CN 102098519 A CN102098519 A CN 102098519A
Authority
CN
China
Prior art keywords
sub
piece
double forecast
flag
block
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
Application number
CN2009102512821A
Other languages
English (en)
Other versions
CN102098519B (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.)
XFusion Digital Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Zhejiang University ZJU
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 Huawei Technologies Co Ltd, Zhejiang University ZJU filed Critical Huawei Technologies Co Ltd
Priority to CN2009102512821A priority Critical patent/CN102098519B/zh
Priority to EP10835447.3A priority patent/EP2503783B1/en
Priority to PCT/CN2010/079117 priority patent/WO2011069412A1/zh
Publication of CN102098519A publication Critical patent/CN102098519A/zh
Priority to US13/492,498 priority patent/US20120243608A1/en
Application granted granted Critical
Publication of CN102098519B publication Critical patent/CN102098519B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • 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/46Embedding additional information in the video signal during the compression process

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及一种视频编码方法、解码方法、编码及解码装置,编码方法包括:对编码块生成二重预测标记符号;当所述编码块需要进行二重预测时,对所述编码块的至少一个子块生成二重预测标记符号,所述子块的二重预测标记符号用于表示该子块是否进行二重预测;根据所述编码块的二重预测标记符号和所述编码块的至少一个子块的二重预测标记符号进行预测,得到预测图像;根据所述预测图像,得到预测残差,对所述预测残差进行编码。将二重预测标记符号标识的二重预测的单位细化到了子块级,提高了编码效率。

Description

视频编码方法、解码方法、编码及解码装置
技术领域
本发明涉及视频编解码技术领域,尤其涉及一种视频编码方法、解码方法、编码及解码装置。
背景技术
视频信号中存在着大量的冗余信息,这些冗余信息可以分成空间冗余信息、时间冗余信息、数据冗余信息和视觉冗余信息。
视频压缩技术一般基于块的、集预测编码、变换编码和熵编码于一体的传统混合编码(Hybrid Coding)框架。
传统的视频混合编码框架中的预测编码将编码帧分成编码单元,对编码单元进行预测编码,得到预测值,并求得预测值和待编码值的差即残差数据,对残差数据进行二维变换编码;然后在变换域中对变换系数进行量化、扫描转换成一维信号;最后进行熵编码。
现有技术中,提出了一种使用二重预测的编解码方法。该方法将传统混合视频编解码框架中的预测定义为第一重预测,解码重建图像的重建过程包含二重预测补偿过程和第二重预测存储;相应地,把传统混合视频编解码框架中的预测残差定义为第一重残差,把针对第一重残差的预测定义为第二重预测。二重预测补偿过程包括第一重预测补偿过程和第二重预测补偿过程。第二重预测补偿过程的输入包括重建后的第一重残差和重建后的第二重残差,由此得到重建后的残差。
编码方法包括二重预测过程和第二重预测存储。其中,二重预测过程包括第一重预测过程和第二重预测过程。第二重预测过程的输入包括第一重残差和第一重残差预测值,并由此生成第二重残差。第一重残差预测值由重建后的第一重残差根据第二重模式使用预测方法生成。编码方法产生的相应码流,包括第一重模式和第二重残差,不包括第一重残差;或者包括第一重模式、第二重模式和第二重残差,不包括第一重残差。
在实现本发明的过程中,发明人发现现有技术至少存在以下缺陷:二重预测的作用单位为一个宏块,即对于一个宏块,其所有子块要么均采用二重预测要么均不采用二重预测,二重预测的灵活性差,编解码效率不高。
发明内容
本发明实施例提出一种视频编码方法、解码方法、编码及解码装置,通过细化二重预测标记符号标识二重预测的编解码块的单位,以增强二重预测的灵活性,提高编解码的效率。
本发明实施例提供了一种视频编码方法,包括:
对编码块生成二重预测标记符号;
当所述编码块需要进行二重预测时,对所述编码块的至少一个子块生成二重预测标记符号,所述子块的二重预测标记符号用于表示该子块是否进行二重预测;
根据所述编码块的二重预测标记符号和所述编码块的至少一个子块的二重预测标记符号进行预测,得到预测图像;
根据所述预测图像,得到预测残差,对所述预测残差进行编码。
本发明实施例还提供了一种视频编码装置,包括:
第一生成模块,用于对编码块生成二重预测标记符号;
第二生成模块,用于当所述编码块需要进行二重预测时,对所述编码块的至少一个子块生成二重预测标记符号,所述子块的二重预测标记符号用于表示该子块是否进行二重预测;
预测模块,用于根据所述编码块的二重预测标记符号和所述编码块的至少一个子块的二重预测标记符号进行预测,得到预测图像。
本发明实施例提供的视频编码方法和编码装置通过用子块级二重预测标记符号对编码块中的子块进行标识,将二重预测标记符号标识的二重预测的单位细化到了子块级,即细化了二重预测标记符号标识二重预测的编码块的单位,可以增强二重预测的灵活性,提高编解码的效率。
本发明实施例还提供了一种视频解码方法,包括:
获取解码块的二重预测标记符号;
当所述解码块的二重预测标记符号指示该解码块需要进行二重预测时,获取所述解码块的至少一个子块的二重预测标记符号;
根据所述解码块的二重预测标记符号和所述解码块的至少一个子块的二重预测标记符号进行预测,得到预测图像。
本发明实施例还提供了一种视频解码装置,包括:
第一获取模块,用于获取解码块的二重预测标记符号;
第二获取模块,用于当所述解码块的二重预测标记符号指示该解码块需要进行二重预测时,获取所述解码块的至少一个子块的二重预测标记符号;
解码预测模块,用于根据所述解码块的二重预测标记符号和所述解码块的至少一个子块的二重预测标记符号进行预测,得到预测图像。
本发明实施例提供的视频解码方法和解码装置通过获取对解码块中的一级子块进行标识的子块级二重预测标记符号,将二重预测的单位细化到了子块级,即细化了二重预测标记符号标识二重预测的解码块的单位,可以增强二重预测的灵活性,提高解码的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种视频编码方法的流程图;
图2为本发明实施例二提供的一种视频解码方法的流程图;
图3为本发明实施例三提供的一种视频编码方法的流程图;
图4为本发明实施例三、实施例四、实施例五与实施例六中的宏块结构示意图;
图5为本发明实施例四提供的一种视频解码方法的流程图;
图6为本发明实施例五提供的一种视频编码方法的流程图;
图7为本发明实施例六提供的一种视频解码方法的流程图;
图8为本发明实施例七提供的一种视频编码方法的流程图;
图9为本发明实施例七与实施例八中的宏块结构示意图;
图10为本发明实施例八提供的一种视频解码方法的流程图;
图11为本发明实施例提供的视频编码方法中CABAC的编码过程示意图;
图12为本发明实施例提供的视频编码方法中CABAC做算术编码时的流程图;
图13为本发明实施例提供的视频编码方法中m×n子块的sub_sop_flag语法元素的编码方法的流程图;
图14为本发明实施例提供的视频编码方法中m×n子块的sub_sop_flag语法元素的编码方法作用的子块示意图;
图15为本发明实施例提供的视频解码方法中m×n子块的sub_sop_flag语法元素的解码方法的流程图;
图16为本发明实施例提供的视频编码装置的结构示意图;
图17为本发明实施例提供的视频解码装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当编解码方法采用二重预测技术时,可以增加语法元素:二重预测标记符号(Second Order Prediction Flag,sop_flag)、模式预测准确标志(PredictionSecond Prediction Mode Flag,pred_sp_mode_flag)和第二重模式解码信息(Remaining Second Prediction Mode,rem_sp_mode)。
其中,sop_flag为二重预测标记符号标识,用于标识当前编解码块是否采用二重预测技术,其值为0或1。即对于一个编解码块,通过码流中的sop_flag来指示该编解码块中所有子块是均采用二重预测还是均不采用二重预测。当该宏块sop_flag为0时,表示该编解码块中的所有子块均不采用二重预测技术进行重建,在编码端不需要生成语法元素pred_sp_mode_flag和rem_sp_mode,在解码端也不需要从码流中解析出语法元素pred_sp_mode_flag和rem_sp_mode。当该编解码块sop_flag为1时,表示该编解码块中的所有子块均采用二重预测技术进行重建,在编码端生成语法元素pred_sp_mode_flag和rem_sp_mode,经熵编码后写入码流;在解码端从码流中解析出语法元素pred_sp_mode_flag和rem_sp_mode。
pred_sp_mode_flag和rem_sp_mode为与第二重帧内预测模式相关的句法元素。第二重帧内预测模式的值为0~8,分别代表9种帧内预测模式。第二重帧内预测模式的解码方法与H.264/AVC中的4×4帧内预测模式的解码方法一样,即为先看预测是否准确。若准确,则模式等于模式预测值对应的模式;若预测不准确,则需继续从码流中解析信息来得到模式。
pred_sp_mode_flag表明第二重帧内预测模式是否预测准确,其值为0或1。rem_sp_mode为第二重帧内预测模式预测不准确时用于表示第二重帧内预测模式的信息。若当前第二重帧内预测模式预测准确,则码流中不存在当前第二重帧内预测模式的句法元素rem_sp_mode。rem_sp_mode的值为0~7。
图1为本发明实施例一提供的一种视频编码方法的流程图。该方法包括:
步骤11、对编码块生成sop_flag;
如依照准则生成编码块的sop_flag,或者自适应生成编码块的sop_flag。如果自适应生成sop_flag,则无需将sop_flag经熵编码后写入码流,传输到解码端。
步骤12、当所述编码块需要进行二重预测时,对所述编码块的至少一个子块生成sop_flag,所述子块的sop_flag用于表示该子块是否进行二重预测;
当所述编码块需要进行二重预测时,表明在所述sop_flag对应的编码块中,至少有一个一级子块进行二重预测。这种情况下,生成所述编码块中的每个子块的sop_flag,为便于描述,后续将子块的sop_flag称为子块级二重预测标记符号(Sub Second Order Prediction Flag,sub_sop_flag);所述sub_sop_flag用于表示对应的子块是否进行二重预测;
如sop_flag的值为0时,表示对应的编码块中所有子块均不进行二重预测;如sop_flag的值为1时,表示对应的编码块中至少有一个子块进行二重预测。
当编码块中至少有一个子块进行二重预测时,与步骤11类似,可依照准则,或者可自适应生成编码块中的每个子块的sub_sop_flag。如sub_sop_flag的值为0时,表示对应的子块不采用二重预测技术进行重建;如sub_sop_flag的值为1时,表示对应的子块采用二重预测技术进行重建。
自适应生成sub_sop_flag,考虑到图像之间的变化,始终自适应会导致信息不准确。具体地,可对于第一个帧间编码的帧,采用依照准则的方式生成,并传输给解码端;自适应生成方法可以是:对于之后的帧,根据运动矢量对应的参考帧的已解码块的sub_sop_flag的值,直接得到当前子块的sub_sop_flag,以实现灵活的编码方式。并且,在帧级的头信息中加入新的语法元素指出当前帧编码时是否使用自适应。如果使用自适应,则根据运动矢量对应的参考帧的已解码块的sub_sop_flag的值,直接得到当前子块的sub_sop_flag;如果不使用自适应,则按照准则生成sub_sop_flag。自适应地获得sub_sop_flag的方法不局限于此。
步骤13、根据所述编码块的sop_flag和所述编码块的至少一个sub_sop_flag进行预测,得到预测图像;
步骤14、根据所述预测图像得到预测残差,对所述预测残差进行编码。
本实施例中,对于所述编码块中进行二重预测的子块,生成相应的pred_sp_mode_flag;
如依照准则生成进行二重预测的子块的pred_sp_mode_flag。当pred_sp_mode_flag的值为0时,还需要生成rem_sp_mode,以便解码端根据该生成的rem_sp_mode进行二重预测解码重建。
对所述pred_sp_mode_flag进行熵编码后,写入码流。
如当pred_sp_mode_flag的值为1时,只需将pred_sp_mode_flag进行熵编码写入码流,发送到解码端。解码端根据pred_sp_mode_flag的值自适应生成rem_sp_mode。当pred_sp_mode_flag的值为0时,还需要将rem_sp_mode进行熵编码写入码流,并发送到解码端。解码端根据接收到的rem_sp_mode进行二重预测解码重建。
本实施例提供的技术方案通过用sub_sop_flag对编码块中的子块进行标识,将sop_flag标识的二重预测的单位细化到了子块级,即将进行二重预测编码的块大小进行来缩小和合理的组合,从而更加充分地发挥了二重预测技术的优势,使得当当前编码块的所有子块不都采用二重预测的编码效率有可能高于其所有子块均采用二重预测的编码效率,或者高于其所有子块均不采用二重预测的编码效率。本实施例提供的技术方案将二重预测标记符号标识的二重预测的单位细化到了子块级,即细化了二重预测标记符号标识二重预测的编码块的单位,可以增强二重预测的灵活性,提高编解码的效率。
当sop_flag依照准则生成,需要传输到解码端时,本发明实施例提供的视频编码方法还可包括:对所述sop_flag、sub_sop_flag进行熵编码后写入码流。
当sop_flag、sub_sop_flag自适应生成,无需传输到解码端时,本发明实施例提供的视频编码方法还可包括:
在所述码流的帧级的头信息中加入用于指出当前帧编码时是否使用自适应的语法元素。
当编码块的子块中还包括多个子块时,为便于描述,将编码块的子块称为一级子块,一级子块中的子块称为二级子块,二级子块中的子块称为三级子块,依此类推。sub_sop_flag的值为0还表示对应的一级子块中的所有二级子块均不进行二重预测;sub_sop_flag的值为1还表示对应的一级子块的所有二级子块均进行二重预测建。此时,对于所述编码块中进行二重预测的一级子块,生成相应的pred_sp_mode_flag以及rem_sp_mode,可包括:
在所述进行二重预测的一级子块中,对每个二级子块生成二级子块级二重预测标记符号(Second Sub Second Order Prediction Flag,second_sub_sop_flag);所述second_sub_sop_flag用于表示对应的二级子块是否进行二重预测;
对于进行二重预测的二级子块,生成相应的pred_sp_mode_flag,或者进一步生成rem_sp_mode。
second_sub_sop_flag可自适应生成,也可依照准则生成。
当second_sub_sop_flag自适应生成时,无需传输到解码端。解码端同样通过自适应生成second_sub_sop_flag。
当second_sub_sop_flag需要传输到解码端时,本发明实施例提供的视频编码方法还可包括:对所述second_sub_sop_flag进行熵编码后写入所述码流。
当编码块的大小为64×64,128×128等等时,该编码块可划分到三级子块、四级子块甚至更多级子块,与上述sub_sop_flag、second_sub_sop_flag的编码过程类似,可将sop_flag细化到三级子块级二重预测标记符号(SecondSub Second Order Prediction Flag,Third_sub_sop_flag)、四级子块级二重预测标记符号(Forth Sub Second Order Prediction Flag,Forth_sub_sop_flag)等等,以标识更小的单位是否进行二重预测,进一步满足更加二重预测的灵活要求,提高编码效率。
与上述实施例一相对应地,图2为本发明实施例二提供的一种视频解码方法的流程图。该方法包括:
步骤21、获取解码块的sop_flag;
如接收编码端发送的码流,当码流中包含有sop_flag时,可从所述码流中解析出sop_flag;当码流中不包含sop_flag,可从所述码流中解析出帧级的头信息中用于指出当前帧编码时是否使用自适应的语法元素,在所述当前帧编码时使用自适应的情况下,自适应得到sop_flag。
步骤22、当所述解码块的sop_flag指示该解码块需要进行二重预测时,获取所述解码块的至少一个子块的sop_flag(即至少一个sub_sop_flag);
如当码流中包含有sub_sop_flag时,可从所述码流中解析出sub_sop_flag;当码流中不包含sub_sop_flag,可从所述码流中解析出帧级的头信息中用于指出当前帧编码时是否使用自适应的语法元素,在所述当前帧编码时使用自适应的情况下,通过自适应方法得到sub_sop_flag。如根据运动矢量对应的参考帧的已解码块的sub_sop_flag的值,直接得到当前子块的sub_sop_flag。其中,sub_sop_flag详见上述步骤12中的说明。
步骤23、根据所述解码块的sop_flag和所述解码块的至少一个sub_sop_flag进行预测,得到预测图像。
本实施例中,对于所述解码块中进行二重预测的一级子块,从所述码流中解析出相应的pred_sp_mode_flag,进行二重预测解码重建。当pred_sp_mode_flag的值为0时,还需要进一步解析出rem_sp_mode。
本实施例提供的技术方案通过获取对解码块中的一级子块进行标识的sub_sop_flag,将二重预测的单位细化到了子块级,即将进行二重预测编码的块大小进行来缩小和合理的组合,从而更加充分地发挥了二重预测技术的优势,使得二重预测的对象更加多样化,满足了不同编码效率的需求。
当一级子块被划分为多个二级子块时,上述步骤24中,对于所述解码块中进行二重预测的一级子块,从所述码流中解析出相应的pred_sp_mode_flag,包括:
在所述进行二重预测的一级子块中,获取每个二级子块的second_sub_sop_flag;所述second_sub_sop_flag用于表示对应的二级子块是否进行二重预测;
对于进行二重预测的二级子块,从所述码流中解析出相应的pred_sp_mode_flag。
当解码块的大小为64×64,128×128等等时,该解码块可划分到三级子块、四级子块甚至更多级子块,与上述sub_sop_flag、second_sub_sop_flag的解码过程类似,可将sop_flag细化到三级子块级二重预测标记符号(SecondSub Second Order Prediction Flag,Third_sub_sop_flag)、四级子块级二重预测标记符号(Forth Sub Second Order Prediction Flag,Forth_sub_sop_flag)等等,以标识更小的单位是否进行二重预测,进一步满足更加二重预测的灵活要求。
图3为本发明实施例三提供的一种视频编码方法的流程图。该方法包括:
步骤31、按照一定的准则,如率失真优化(Rate Distortion Optimization,RDO)准则但不限于此准则,生成M×N级sop_flag,即大小为M×N的编码块(以下简称M×N编码块)的sop_flag,并将M×N编码块的sop_flag经熵编码写入码流中。M×N编码块的sop_flag用来表示该M×N编码块以及其各个m×n子块是否进行二重预测,其中m<=M,n<=N,且m×n子块属于当前M×N编码块。
步骤32、与步骤31类似,按照一定的准则,如RDO准则但不限于此准则,生成m×n子块的sub_sop_flag,并将m×n子块sub_sop_flag经熵编码写入码流中。
如果M×N宏块的sop_flag为0,则表示该M×N编码块中所有m×n子块均不进行二重预测,此时,不需要生成sub_sop_flag以及pred_sp_mode_flag和rem_sp_mode等二重预测相关语法元素,也不需要经熵编码写入码流。
如果M×N编码块的sop_flag为1,则表示该M×N编码块中至少有一个m×n子块进行二重预测。此时,可以按照该M×N编码块一重帧间预测模式所对应的块划分,按照一定准则,如RDO准则但不限于此准则,为每一个m×n子块生成一个sub_sop_flag,并通过熵编码写入码流中。
例如,如图4所示的根据第一重预测模式得到的块划分结构,第二重预测块大小为8×8。本实例不仅仅局限于这一种块划分模式,可以有多种其他的块划分结构,第二重预测块大小不仅仅局限于这一种大小。sop_flag对应着一个16×16大小的块,即一个宏块,而第一重预测模式将此16×16大小宏块划分成左边一个8×16块和右边两个8×8块的形式,即将宏块划分为块1、块2和块3三个子块。如果sop_flag为1,则依照一定的准则,如RDO准则但不限于此准则,分别为这三个子块生成一个sub_sop_flag,用以指示其对应的子块的所有第二重预测块是否进行二重预测,并将块1、块2和块3的sub_sop_flag通过熵编码写入码流中。
步骤33、当某个子块的sub_sop_flag为1时,根据一定的准则,如RDO准则但不限于此准则,生成二重预测相关语法元素pred_sp_mode_flag和rem_sp_mode等,并对二重预测相关语法元素进行熵编码后,写入码流中。例如图4中大小为8×16的块1子块,如果块1的sub_sop_flag为1,则根据一定的准则,如RDO准则但不限于此准则,生成该块1的一组pred_sp_mode_flag和rem_sp_mode,经过熵编码后写入码流中。并且,该块1子块采用二重预测技术进行编码。对于块1子块中所有的第二重预测块采用同一种二重预测模式rem_sp_mode进行二重预测重建。同样解码端也采用相同的rem_sp_mode进行二重预测解码重建。
当某个子块的sub_sop_flag为0时,对此子块的所有第二重预测块不进行二重预测解码重建。
与上述实施例三相对应地,图5为本发明实施例四提供的一种视频解码方法的流程图。解码端解码的方法包括:
步骤51、从码流中解析出M×N解码块的sop_flag,用来获取该M×N解码块及其各个m×n子块是否进行二重预测。其中,m<=M,n<=N,且m×n子块属于当前M×N解码块。
步骤52、解析得到sub_sop_flag。
具体地,如果M×N解码块的sop_flag为0,则表示该M×N解码块中所有m×n子块均不进行二重预测。此时,不需要进一步从码流中解析出sub_sop_flag以及其他二重预测相关语法元素如pred_sp_mode_flag和rem_sp_mode等。
如果M×N解码块的sop_flag为1,则表示该M×N解码块中至少有一个m×n子块采用二重预测技术进行重建。此时,可以按照该M×N解码块一重帧间预测模式所对应的块划分,为每一个m×n子块从码流中解析出一个sub_sop_flag。例如,如图4所示的根据第一重预测模式得到的块划分结构,第二重预测块大小为8×8。本实例不仅仅局限于这一种块划分模式,可以有多种其他的块划分结构,第二重预测块大小不仅仅局限于这一种大小。sop_flag对应16×16大小的块,即一个宏块,而第一重预测模式将此16×16大小宏块划分成左边一个8×16子块和右边两个8×8子块的形式,即块1,块2和块3三个子块。sop_flag为1,则分别为这三个子块从码流中各解析出一个sub_sop_flag,用以指示其对应的子块的所有第二重预测块是否进行二重预测。
步骤53、当某个子块的sub_sop_flag为1时,则从码流中解析出二重预测相关语法元素如pred_sp_mode_flag和rem_sp_mode等,对此子块中所有第二重预测块进行二重预测重建,并且这个子块中所有第二重预测块所采用的二重预测模式相同。例如图4中大小为8×16的块1子块,如果块1的sub_sop_flag为1,则从码流中解析出该8×16块的一组pred_sp_mode_flag和rem_sp_mode,对其中所有的第二重预测块进行二重预测解码重建,并采用同一种二重预测模式。
当某个子块的sub_sop_flag为0时,对此子块的所有第二重预测块不进行二重预测解码重建。
图6为本发明实施例五提供的一种视频编码方法的流程图。该方法包括:
步骤61、按照一定的准则,如RDO准则但不限于此准则,根据参考帧或当前帧已解码块的信息自适应地获得M×N编码块的sop_flag,用来表示该M×N编码块及其各个m×n子块是否进行二重预测。其中,m<=M,n<=N,且m×n子块属于当前M×N编码块。
步骤62、与步骤61类似,按照一定的准则,如RDO准则但不限于此准则,根据参考帧或当前帧已解码块的信息自适应地获得m×n子块的sub_sop_flag。
如果M×N编码块的sop_flag为0,则表示该M×N编码块中所有m×n子块均不进行二重预测。此时,不需要进一步获得sub_sop_flag及其他二重预测相关语法元素如pred_sp_mode_flag和rem_sp_mode等。
如果M×N编码块的sop_flag为1,则表示该M×N编码块中至少有一个m×n子块进行二重预测。此时,可以按照该M×N编码块一重帧间预测模式所对应的块划分,按照一定准则,如RDO准则但不限于此准则,根据参考帧或当前帧已解码块的信息,为每一个m×n子块自适应地获得一个sub_sop_flag。例如,如图4所示的根据第一重预测模式得到的块划分结构,第二重预测块大小为8×8。本实例不仅仅局限于这一种块划分模式,可以有多种其他的块划分结构,第二重预测块大小不仅仅局限于这一种大小。sop_flag对应大小为16×16的块,即一个宏块。第一重预测模式将此16×16大小宏块划分成左边一个8×16块和右边两个8×8块的形式,即块1、块2和块3三个子块。如果sop_flag为1,则通过一定的准则,如RDO准则但不限于此准则,分别为这三个子块,根据参考帧或当前帧已解码块的信息自适应地获得一个sub_sop_flag,用以指示其对应的子块的所有第二重预测块是否进行二重预测。自适应地获得sub_sop_flag具体地可包括:根据运动矢量对应的参考帧的已解码块的sub_sop_flag的值,直接得到当前子块的sub_sop_flag。自适应地获得sub_sop_flag的方法不局限于上面描述的方法。
步骤63、当某个子块的sub_sop_flag为1时,根据一定的准则,如RDO准则但不限于此准则,生成二重预测相关语法元素如pred_sp_mode_flag和rem_sp_mode等,并对二重预测相关语法元素进行熵编码,写入码流中。
当某个子块的sub_sop_flag为0时,对此子块的所有第二重预测块不进行二重预测解码重建。例如图4中大小为8×16的块1子块,其,如果块1的sub_sop_flag为1,则根据一定的准则,如RDO准则但不限于此准则,生成该块1子块的一组pred_sp_mode_flag和rem_sp_mode,并对pred_sp_mode_flag和rem_sp_mode进行熵编码后,写入码流中。该子块进行二重预测。对于块1子块中所有的第二重预测块采用同一种二重预测模式rem_sp_mode进行二重预测。同样,解码端也采用相同的rem_sp_mode进行二重预测解码重建。
与实施例五相对应地,图7为本发明实施例六提供的一种视频解码方法的流程图。解码端解码的方法包括:
步骤71、根据参考帧或当前帧已解码块的信息自适应地得出M×N解码块的sop_flag,用来表示该M×N解码块及其各个m×n子块是否进行二重预测。其中m<=M,n<=N,且m×n子块属于当前M×N解码块。
步骤72、自适应获得sub_sop_flag。
具体地,如果M×N解码块的sop_flag为0,则表示该M×N解码块中所有m×n子块均不进行二重预测。此时,不需要进一步获得sub_sop_flag及其他二重预测相关语法元素如pred_sp_mode_flag和rem_sp_mode等。
如果M×N解码块的sop_flag为1,则表示该M×N解码块中至少有一个m×n子块进行二重预测。此时,可以按照该M×N解码块一重帧间预测模式所对应的块划分,根据参考帧或当前帧已解码块的信息,为每一个m×n子块自适应地得出一个sub_sop_flag。例如,如图4所示的根据第一重预测模式得到的块划分结构,第二重预测块大小为8×8。本实例不仅仅局限于这一种块划分模式,可以有多种其他的块划分结构,第二重预测块大小不仅仅局限于这一种大小。sop_flag对应大小为16×16的块,即一个宏块,第一重预测模式将此16×16大小宏块划分成左边一个8×16块和右边两个8×8块的形式,即块1、块2和块3三个子块。如果sop_flag为1,则分别为这三个子块根据参考帧或当前帧已解码块的信息自适应地得出一个sub_sop_flag,用以指示其对应的子块的所有第二重预测块是否进行二重预测。自适应地获得sub_sop_flag具体可包括:根据运动矢量对应的参考帧的已解码块的sub_sop_flag的值直接得到当前子块的sub_sop_flag。自适应地获得sub_sop_flag的方法不局限于上面描述的方法。
步骤73、当某个子块的sub_sop_flag为1时,则从码流中解析出二重预测相关语法元素如pred_sp_mode_flag和rem_sp_mode等,对此子块中所有第二重预测块进行二重预测,并且这个子块中所有第二重预测块所采用的二重预测模式相同。例如图4中的块1子块,其大小为8×16,如果块1的sub_sop_flag为1,则从码流中解析出该8×16块的一组pred_sp_mode_flag和rem_sp_mode,对其中所有的第二重预测块进行二重预测解码重建,并采用同一种二重预测模式。
当某个子块的sub_sop_flag为0时,对此子块的所有第二重预测块不进行二重预测解码重建。
图8为本发明实施例七提供的一种视频编码方法的流程图。该方法包括:
步骤81、按照一定的准则,如RDO准则但不限于此准则,生成M×N编码块的sop_flag,并将M×N编码块的sop_flag经熵编码后写入码流中。M×N编码块的sop_flag用来表示该M×N编码块及其各个m×n子块是否进行二重预测。其中m<=M,n<=N,且m×n子块属于当前M×N编码块。
步骤82、与上述步骤81类似,按照一定的准则,如RDO则但不限于此准则,生成m×n子块的sub_sop_flag,并将m×n子块的sub_sop_flag经熵编码后写入码流中。
具体地,如果M×N编码块的sop_flag为0,则表示该M×N编码块中所有m×n子块均不进行二重预测。此时,不需要进一步通过熵编码在码流中写入sub_sop_flag以及其他二重预测相关语法元素如pred_sp_mode_flag和rem_sp_mode等。
如果M×N编码块的sop_flag为1,则表示该M×N编码块中至少有一个m×n子块进行二重预测。此时,可以按照该M×N编码块一重帧间预测模式所对应的块划分,按照一定准则,如RDO(Rate Distortion Optimization)准则但不限于此准则,为每一个m×n一级子块生成一个sub_sop_flag,并进行熵编码后写入码流中。例如,如图9所示的根据第一重预测模式得到的块划分结构,第二重预测块大小为8×8。本实例不仅仅局限于这一种块划分模式,可以有多种其他的块划分结构,第二重预测块大小不仅仅局限于这一种大小。sop_flag对应大小为32×32的宏块,第一重预测模式将此大小为32×32的宏块划分成四个16×16一级子块的结构,即一级子块A、一级子块B、一级子块C和一级子块D。每个大小为16×16的一级子块又划分成4个大小为8×8的二级子块。如果sop_flag为1,则分别根据一定的准则,如RDI准则但不限于此准则,为这四个一级子块生成一个sub_sop_flag,用以指示其对应的一级子块的所有第二重预测块是否进行二重预测,并对sub_sop_flag进行熵编码后写入码流中。
步骤83、当某个一级子块的sub_sop_flag为1时,则为该一级子块中的每一个二级子块根据一定的准则,如RDO准则但不限于此准则,生成一个second_sub_sop_flag,用以表示该二级子块中第二重预测块是否均进行二重预测解码重建,并经过熵编码后写入码流中。
如果某个二级子块的second_sub_sop_flag为0,则表示该二级子块中所有第二重预测块均不进行二重预测。此时,不需要进一步通过熵编码在码流中写入sub_sop_flag以及其他二重预测相关语法元素如pred_sp_mode_flag和rem_sp_mode等。
如果某个二级子块的second_sub_sop_flag为1,则表示该二级子块中所有第二重预测块均进行二重预测,并且这个二级子块中所有第二重预测块所采用的二重预测模式相同。此时,根据一定的准则,如RDO准则但不限于此准则,生成二重预测相关语法元素如pred_sp_mode_flag和rem_sp_mode等,并通过熵编码写入码流中。
例如图9中大小为16×16的一级子块B,如果其sub_sop_flag为1,则根据一定的准则,如RDO准则但不限于此准则,为其每个8×8二级子块分别生成一个second_sub_sop_flag,并通过熵编码写入码流中。如果某个8×8二级子块的second_sub_sop_flag为1,根据一定的准则,如RDO准则但不限于此准则,生成二重预测相关语法元素如pred_sp_mode_flag和rem_sp_mode等,并通过熵编码写入码流中,并对该二级子块进行二重预测。对于该二级子块中所有的第二重预测块采用同一种二重预测模式rem_sp_mode进行二重预测。同样解码端也采用相同的rem_sp_mode进行二重预测解码重建。
当某个一级子块的sub_sop_flag为0时,该一级子块中所有子块均不进行二重预测解码重建。
与上述实施例七相对应地,图10为本发明实施例八提供的一种视频解码方法的流程图。解码端解码的方法包括:
步骤101、从码流中解析出M×N解码块的sop_flag,用来表示该M×N解码块及其各个m×n子块是否采用二重预测技术。其中m<=M,n<=N,且m×n子块属于当前M×N解码块。
步骤102、解析子块的sub_sop_flag。
具体地,如果M×N解码块的sop_flag为0,则表示该M×N解码块中所有m×n子块均不进行二重预测。此时,不需要进一步从码流中解析出sub_sop_flag以及其他二重预测相关语法元素如pred_sp_mode_flag和rem_sp_mode等。
如果M×N解码块的sop_flag为1,则表示该M×N解码块中至少有一个m×n子块进行二重预测。此时,可以按照该M×N解码块一重帧间预测模式所对应的块划分,为每一个大小为m×n的一级子块从码流中解析出一个sub_sop_flag。例如,如图9所示的根据第一重预测模式得到的块划分结构,第二重预测块大小为8×8。本实例不仅仅局限于这一种块划分模式,可以有多种其他的块划分结构,第二重预测块大小不仅仅局限于这一种大小。sop_flag对应大小为32×32的宏块,第一重预测模式将此32×32大小宏块划分成四个大小为16×16一级子块的结构,即一级子块A,一级子块B、一级子块C和一级子块D。每个16×16一级子块又划分成4个8×8的二级子块。如果sop_flag为1,则分别为这四个一级子块从码流中各解析出一个sub_sop_flag,用以指示其对应的一级子块的所有第二重预测块是否进行二重预测。
步骤103、当某个一级子块的sub_sop_flag为1时,则为该一级子块中的每一个二级子块分别从码流中解析出一个second_sub_sop_flag,用以表示该二级子块中第二重预测块是否均进行二重预测解码重建。
如果某个二级子块的second_sub_sop_flag为0,则表示该二级子块中所有第二重预测块均不进行二重预测。此时,不需要进一步从码流中解析出sub_sop_flag以及其他二重预测相关语法元素如pred_sp_mode_flag和rem_sp_mode等。
如果某个二级子块的second_sub_sop_flag为1,则表示该二级子块中所有第二重预测块均进行二重预测,并且这个二级子块中所有第二重预测块所采用的二重预测模式相同。
例如图9中大小为16×16的一级子块A,如果其sub_sop_flag为1,则从码流中分别为其每个8×8二级子块分别解析出一个second_sub_sop_flag。如果某个8×8二级子块的second_sub_sop_flag为1,则从码流中解析出该8×8二级子块的一组pred_sp_mode_flag和rem_sp_mode,对其中所有的第二重预测块进行二重预测解码重建,并采用同一种二重预测模式。
当某个一级子块的sub_sop_flag为0时,该一级子块中所有子块均不进行二重预测解码重建。
上述实施例一、实施例三、实施例五、实施例七及实施例九中所涉及的sub_sop_flag,可采用基于上下文的自适应二进制算术编码(Context AdaptiveBinary Arithmetic Coding,CABAC)的方式进行编码,以保证在增加语法元素的情况下仍然能够使二重预测模式信息的编码性能得到提升。
CABAC的基本编码步骤可分为二进制化、上下文建模、二进制算术编码三步。二进制化主要是将非二进制的各语法元素值转换成二进制的比特序列,如果语法元素本身是二进制的,则该步骤可省略。上下文建模主要是为已二进制化的语法元素的比特序列的每一位提供概率模型,进行概率预测,有时会需要以前已编码的语法元素或者比特序列。二进制算术编码有两种编码模式,一种是常规编码模式(regular coding mode),另一种是旁路编码模式(by pass coding mode)。其中,常规编码模式采用上下文建模,而旁路编码模式为了加快编码速度不采用上下文建模,整个编码过程如图11所示。
步骤111、二进制化。为了降低算术编码的复杂度,提高编码速度,CABAC采用了二进制的算术编码而非其它多进制的算术编码。为此,需要事先将每一语法元素转换成独一无二的二进制序列,该二进制序列在H.264中称为二进制字符串(bin string)。同时,为了便于后面的算术编码尽可能降低编码复杂度,应该尽可能减小二进制序列的大小。CABAC采用了4种基本二进制转换方式。
步骤112、上下文建模。在算术编码前,必须进行上下文建模。所谓上下文建模,就是建立概率模型,对每一位待编码的比特值和概率进行预测。在H.264中,一共有399种上下文模型,这些模型可分为4种类型。第1种类型的模型必须根据它相邻的已编码的语法元素构成,一般是用其左边和上边的对应语法元素来建立相应的概率模型,对当前语法元素进行概率预测。第2种模型仅局限于对宏块类型和子块类型的应用。其中第N比特的概率模型的选定要参考前面已编码第N-1比特所采用的模型。第3种和第4种模型仅用于残余数据的编码,这两种模型都依赖编码块的类型。其中第3种模型依赖的不是已编码的数据,而是数据在扫描路径中的位置。第4种模型则要计算该比特所在电平之前已编码的电平数。在H.264中,除了这些条件概率模型之外,还有一些固定概率模型,它们对待编码的比特提供固定的概率预测,不因以前已编码的比特而改变。
步骤113、二进制算术编码。在CABAC中,对每一待编码的比特位的值0或1,用最大概率符号(most probable symbol,MPS)和最小概率符号(leastprobable symbol,LPS)表示。其中,MPS表示最可能出现的状态,对应0和1中概率大的那一个。LPS表示最不可能出现的状态,对应0和1中概率小的那一个。这样只需要一个变量值来保存LPS出现的概率大小。同时,它把概率量化成64个等级,每一概率由其对应的索引σ唯一给出。这样在CABAC中,每一个上下文模型可由两个变量唯一决定。
CABAC做算术编码时的流程图见图12。CABAC的概率模型很有效地降低了概率估计和刷新中的计算量。CABAC首先建立一个4×64的二维表格,存储预先计算好的乘法结果。表格的入口参数毫无疑问一格来自Px,另一个来自R。Px可以直接以σ作为参数,R的量化公式为:
ρ=(R>>6)&3。
其中,R表示当前区间的大小,ρ表示R的结果,>>表示比特级右移,&表示比特级“与”操作。
每次在需要做乘法运算时,携带ρ和σ进行查表操作就可以得到结果。简历了概率模型和乘法模型后,在递进计算过程中CABAC必须保存一下变量的记录状态,包括:当前区间的下限L、当前区间的大小R、当前MPS字符、LPS的概率编号σ。
如图13所示,图13为本发明实施例提供的视频编码方法中m×n子块的sub_sop_flag语法元素的编码方法的流程图。以图14所示的子块A、子块B及子块C为例,m×n子块的sub_sop_flag语法元素的编码过程包括:
步骤131、对sub_sop_flag建立三个不同的概率模型,并且进行相应的概率模型初始化。假设这三个概率模型的标号分别为0、1、2。
步骤132、根据当前m×n子块C的相邻的左边的m×n子块A和上边的m×n子块B的sub_sop_flag的值,来进行当前m×n子块C的sub_sop_flag的概率模型的选择。选择公式如下:
Context_sub_sop_flag(C)=sub_sop_flag(A)+sub_sop_flag(B)。
其中,Context_sub_sop_flag(C)表示当前m×n子块C要采用的算术编码解码的概率模型。sub_sop_flag(x)表示m×n子块x的sub_sop_flag的值。若m×n子块x不可用,则sub_sop_flag(x)=0。假设子块A、子块B的sub_sop_flag均为0,则选择概率模型0。若子块A的sub_sop_flag为0,子块B的sub_sop_flag为1,则选择概率模型1。若子块A、子块B的sub_sop_flag为1,则选择概率模型2。
步骤133、利用选择的概率模型进行CABAC编码。由于CABAC采用了高效的算术编码思想,同时充分考虑视频流相关统计特性,因而大大提高了编码效率。
相对应地,图15为本发明实施例提供的视频解码方法中m×n子块的sub_sop_flag语法元素的解码方法的流程图,解码过程包括:
步骤151、对sub_sop_flag建立三个不同的概率模型,并且进行相应的概率模型初始化。令这三个概率模型的标号分别为0、1、2、3。
步骤152、根据当前m×n子块C的相邻的左边的m×n子块A和上边的m×n子块B的sub_sop_flag的值,来进行当前m×n子块C的sub_sop_flag的概率模型的选择。概率模型的选择公式为:
Context_sub_sop_flag(C)=2×sub_sop_flag(A)+sub_sop_flag(B)。
其中,Context_sub_sop_flag(C)表示当前m×n子块C要采用的算术编码解码的概率模型。sub_sop_flag(x)表示m×n子块x的sub_sop_flag的值。若m×n子块x不可用,则sub_sop_flag(x)=0。假设子块A、子块B的sub_sop_flag为0,则选择概率模型0。若子块A的sub_sop_flag为0且子块B的sub_sop_flag为1,或子块A的sub_sop_flag为1且B块的sub_sop_flag为0,则选择概率模型1。若子块A、子块B的sub_sop_flag为1,则选择概率模型2。
步骤153、利用选择的概率模型进行CABAC码流解析,也即进行二进制算术解码,得到一个二进制(bin),将这个bin的值直接赋给sub_sop_flag。
图16为本发明实施例提供的视频编码装置的结构示意图。该编码装置包括:第一生成模块161、第二生成模块162、预测模块163及编码模块164。第一生成模块161用于对编码块生成sop_flag,如所述第一生成模块161通过自适应方法得到所述编码块的sop_flag,详见上述方法实施例中步骤11的说明。第二生成模块162用于当所述编码块需要进行二重预测时,对所述编码块的至少一个子块生成子块的sop_flag即sub_sop_flag,所述sub_sop_flag用于表示该子块是否进行二重预测;如所述第二生成模块162针对所述编码块中的每个子块通过自适应方法得到sub_sop_flag。详见上述方法实施例中步骤12的说明。预测模块163用于根据所述编码块的sop_flag和所述编码块的至少一个sub_sop_flag进行预测,得到预测图像;编码模块164用于根据所述预测图像,得到预测残差,对所述预测残差进行编码。
本发明实施例提供的视频编码装置还可包括:第三生成模块165用于对于所述编码块中进行二重预测的子块,生成相应的pred_sp_mode_flag,详见上述方法实施例中的说明。此时,编码模块164还可用于对所述pred_sp_mode_flag进行熵编码后,写入码流。当sop_flag、sub_sop_flag需要传输到解码端时,所述编码模块164还用于对所述sop_flag、sub_sop_flag进行熵编码后,写入码流。对所述sub_sop_flag进行熵编码时,所述编码模块164可具体用于进行CABAC。
本实施例中,视频编码装置通过用sub_sop_flag对编码块中的子块进行标识,将sop_flag标识的二重预测的单位细化到了子块级,即将进行二重预测编码的块大小进行来缩小和合理的组合,从而更加充分地发挥了二重预测技术的优势,使得当当前编码块的所有子块不都进行二重预测的编码效率有可能高于其所有子块均进行二重预测的编码效率,或者高于其所有子块均不进行二重预测的编码效率。
当sop_flag、sub_sop_flag无需传输到解码端时,本发明实施例提供的视频编码装置还可包括:头信息设置模块166。该头信息设置模块166用于在所述码流的帧级的头信息中加入用于指出当前帧编码时是否使用自适应的语法元素,以便解码端根据该语法元素决定是从码流中解析获得sop_flag、sub_sop_flag,还是通过自适应获得sop_flag、sub_sop_flag。
当进行二重预测的子块被划分为多个二级子块时,所述第三生成模块165可包括:第一生成子模块167及第二生成子模块168。其中二级子块详见上述方法实施例中的说明。
第一生成子模块167用于在所述进行二重预测的一级子块中,对每个二级子块生成second_sub_sop_flag;所述second_sub_sop_flag用于表示对应的二级子块是否进行二重预测。第二生成子模块168用于对于进行二重预测的二级子块,生成相应的pred_sp_mode_flag。
此时,所述编码模块164还用于对所述second_sub_sop_flag进行熵编码后,写入所述码流。
图17为本发明实施例提供的视频解码装置的结构示意图。该视频解码装置包括:第一获取模块171、第二获取模块172及解码预测模块173。第一获取模块171用于获取解码块的sop_flag。如所述第一获取模块171具体用于从所述码流中解析出解码块的sop_flag,详见上述方法实施例中步骤21的说明。第二获取模块172用于当所述解码块的sop_flag指示该解码块需要进行二重预测时,获取所述解码块的至少一个子块的sop_flag即sub_sop_flag;如所述第二获取模块172具体用于从所述码流中解析出所述解码块中的每个子块的sub_sop_flag。具体地,所述第二获取模块172可用于采用基于上下文的二进制算术解码从所述码流中解析出所述解码块中的每个子块的sub_sop_flag。所述sub_sop_flag用于表示对应的子块是否进行二重预测,详见上述方法实施例中步骤22的说明。解码预测模块173用于根据所述解码块的二sop_flag和所述解码块的至少一个sub_sop_flag进行预测,得到预测图像。
本发明实施例提供的视频解码装置还可包括第三获取模块174,用于对于所述解码块中进行二重预测的子块,从所述码流中解析出相应的pred_sp_mode_flag,以用于进行二重预测,详见上述方法实施例的说明。
本发明实施例提供的视频解码装置还可包括解析模块175,用于从所述码流中解析出帧级的头信息中用于指出当前帧编码时是否使用自适应的语法元素。当当前帧编码时使用自适应时,所述第一获取模块171具体用于通过自适应方法得到解码块的sop_flag;所述第二获取模块172具体用于通过自适应方法得到所述解码块中的每个sub_sop_flag。
当一级子块(详见上述方法实施例的说明)被划分为多个二级子块时,所述第三获取模块174可包括:获取子模块176及解析子模块177。获取子模块176用于在所述进行二重预测的一级子块中,获取每个二级子块的second_sub_sop_flag;所述second_sub_sop_flag用于表示对应的二级子块是否进行二重预测。解析子模块177用于对于进行二重预测的二级子块,从所述码流中解析出相应的pred_sp_mode_flag。
本实施例中,采用二重预测的视频解码装置通过获取对解码块中的一级子块进行标识的sub_sop_flag,将二重预测的单位细化到了子块级,即将进行二重预测编码的块大小进行来缩小和合理的组合,从而更加充分地发挥了二重预测技术的优势,使得二重预测的对象更加多样化,满足了不同编码效率的需求。
本实施例提供的技术方案将二重预测标记符号标识的二重预测的单位细化到了子块级,即细化了二重预测标记符号标识二重预测的编码块的单位,可以增强二重预测的灵活性,提高编解码的效率。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (23)

1.一种视频编码方法,其特征在于,包括:
对编码块生成二重预测标记符号;
当所述编码块需要进行二重预测时,对所述编码块的至少一个子块生成二重预测标记符号,所述子块的二重预测标记符号用于表示该子块是否进行二重预测;
根据所述编码块的二重预测标记符号和所述编码块的至少一个子块的二重预测标记符号进行预测,得到预测图像;
根据所述预测图像,得到预测残差,对所述预测残差进行编码。
2.根据权利要求1所述的视频编码方法,其特征在于,还包括:
对于所述编码块中进行二重预测的子块,生成相应的模式预测准确标志,以用于进行二重预测。
3.根据权利要求1所述的视频编码方法,其特征在于,还包括:对所述编码块的二重预测标记符号、所述子块的二重预测标记符号进行熵编码后,写入码流,发送给解码端。
4.根据权利要求1所述的视频编码方法,其特征在于,对编码块生成二重预测标记符号包括:通过自适应方法得到所述编码块的二重预测标记符号。
5.根据权利要求1所述的视频编码方法,其特征在于,对所述编码块的至少一个子块生成二重预测标记符号包括:针对所述编码块的至少一个子块通过自适应方法得到子块的二重预测标记符号。
6.根据权利要求4或5所述的视频编码方法,其特征在于,还包括:
在编码得到的码流的帧级的头信息中加入用于指示当前帧编码时是否使用自适应的语法元素。
7.一种视频解码方法,其特征在于,包括:
获取解码块的二重预测标记符号;
当所述解码块的二重预测标记符号指示该解码块需要进行二重预测时,获取所述解码块的至少一个子块的二重预测标记符号;
根据所述解码块的二重预测标记符号和所述解码块的至少一个子块的二重预测标记符号进行预测,得到预测图像。
8.根据权利要求7所述的视频解码方法,其特征在于,还包括:对于所述解码块中进行二重预测的子块,从所述码流中解析出相应的模式预测准确标志,以用于进行二重预测。
9.根据权利要求7所述的视频解码方法,其特征在于,还包括:从所述码流中解析出帧级的头信息中用于指出当前帧编码时是否使用自适应的语法元素。
10.根据权利要求9所述的视频解码方法,其特征在于,
获取解码块的二重预测标记符号包括:在所述当前帧编码时使用自适应的情况下,通过自适应方法得到所述解码块的二重预测标记符号。
11.根据权利要求9所述的视频解码方法,其特征在于,
获取所述解码块的至少一个子块的二重预测标记符号包括:在所述当前帧编码时使用自适应的情况下,通过自适应方法得到所述解码块中的每个子块的二重预测标记符号。
12.一种视频编码装置,其特征在于,包括:
第一生成模块,用于对编码块生成二重预测标记符号;
第二生成模块,用于当所述编码块需要进行二重预测时,对所述编码块的至少一个子块生成二重预测标记符号,所述子块的二重预测标记符号用于表示该子块是否进行二重预测;
预测模块,用于根据所述编码块的二重预测标记符号和所述编码块的至少一个子块的二重预测标记符号进行预测,得到预测图像。
13.根据权利要求12所述的视频编码装置,其特征在于,还包括:
编码模块,用于根据所述预测图像,得到预测残差,对所述预测残差进行编码。
14.根据权利要求12所述的视频编码装置,其特征在于,还包括:
第三生成模块,用于对于所述编码块中进行二重预测的子块,生成相应的模式预测准确标志,以用于进行二重预测。
15.根据权利要求13所述的视频编码装置,其特征在于,所述编码模块还用于对所述编码块的二重预测标记符号、所述子块的二重预测标记符号进行熵编码后,写入码流。
16.根据权利要求12所述的视频编码装置,其特征在于,
所述第一生成模块具体用于通过自适应方法得到所述编码块的二重预测标记符号。
17.根据权利要求12所述的视频编码装置,其特征在于,
所述第二生成模块具体用于针对所述编码块中的至少一个子块通过自适应方法得到子块的二重预测标记符号。
18.根据权利要求16或17所述的视频编码装置,其特征在于,还包括:
头信息设置模块,用于在所述编码模块编码得到的码流的帧级的头信息中,加入用于指出当前帧编码时是否使用自适应的语法元素。
19.一种视频解码装置,其特征在于,包括:
第一获取模块,用于获取解码块的二重预测标记符号;
第二获取模块,用于当所述解码块的二重预测标记符号指示该解码块需要进行二重预测时,获取所述解码块的至少一个子块的二重预测标记符号;
解码预测模块,用于根据所述解码块的二重预测标记符号和所述解码块的至少一个子块的二重预测标记符号进行预测,得到预测图像。
20.根据权利要求19所述的视频解码装置,其特征在于,还包括:
第三获取模块,用于对于所述解码块中进行二重预测的子块,从所述码流中解析出相应的模式预测准确标志,以用于进行二重预测。
21.根据权利要求19所述的视频解码装置,其特征在于,还包括:解析模块,用于从所述码流中解析出帧级的头信息中用于指示当前帧编码时是否使用自适应的语法元素。
22.根据权利要求21所述的视频解码装置,其特征在于,
所述第一获取模块具体用于通过自适应方法得到所述解码块的二重预测标记符号。
23.根据权利要求21所述的视频解码装置,其特征在于,
所述第二获取模块具体用于通过自适应方法得到所述解码块中的每个子块的二重预测标记符号。
CN2009102512821A 2009-12-09 2009-12-09 视频编码方法、解码方法、编码及解码装置 Active CN102098519B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN2009102512821A CN102098519B (zh) 2009-12-09 2009-12-09 视频编码方法、解码方法、编码及解码装置
EP10835447.3A EP2503783B1 (en) 2009-12-09 2010-11-25 Video encoding method, decoding method, encoding and decoding device
PCT/CN2010/079117 WO2011069412A1 (zh) 2009-12-09 2010-11-25 视频编码方法、解码方法、编码及解码装置
US13/492,498 US20120243608A1 (en) 2009-12-09 2012-06-08 Video coding and decoding method, and coding and decoding apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102512821A CN102098519B (zh) 2009-12-09 2009-12-09 视频编码方法、解码方法、编码及解码装置

Publications (2)

Publication Number Publication Date
CN102098519A true CN102098519A (zh) 2011-06-15
CN102098519B CN102098519B (zh) 2013-04-17

Family

ID=44131355

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102512821A Active CN102098519B (zh) 2009-12-09 2009-12-09 视频编码方法、解码方法、编码及解码装置

Country Status (4)

Country Link
US (1) US20120243608A1 (zh)
EP (1) EP2503783B1 (zh)
CN (1) CN102098519B (zh)
WO (1) WO2011069412A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104604223A (zh) * 2012-07-02 2015-05-06 诺基亚公司 用于视频编码和解码的装置、方法和计算机程序
WO2015078304A1 (en) * 2013-11-27 2015-06-04 Mediatek Singapore Pte. Ltd. Method of video coding using prediction based on intra picture block copy
CN104717511A (zh) * 2013-12-13 2015-06-17 联发科技(新加坡)私人有限公司 视频编码或解码的方法及装置
CN108810540A (zh) * 2012-01-20 2018-11-13 佳能株式会社 从视频数据的位流解码多个编码单位的方法
US10271048B2 (en) 2013-12-13 2019-04-23 Mediatek Singapore Pte. Ltd. Method of background residual prediction for video coding
CN109996068A (zh) * 2019-04-12 2019-07-09 中国科学技术大学 一种视频运动信息编码方法及装置
CN111416975A (zh) * 2019-01-08 2020-07-14 华为技术有限公司 预测模式确定方法和装置
CN113632475A (zh) * 2019-03-08 2021-11-09 夏普株式会社 图像解码装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9549190B2 (en) * 2009-10-01 2017-01-17 Sk Telecom Co., Ltd. Method and apparatus for encoding/decoding image using variable-size macroblocks
EP2736255A4 (en) * 2011-07-18 2014-12-17 Panasonic Ip Corp America IMAGE ENCODING METHOD, IMAGE DECODING METHOD, IMAGE ENCODING APPARATUS, IMAGE DECODING APPARATUS, AND IMAGE ENCODING / DECODING APPARATUS
US9253508B2 (en) * 2011-11-04 2016-02-02 Futurewei Technologies, Inc. Differential pulse code modulation intra prediction for high efficiency video coding
CN104301728B (zh) * 2014-10-15 2017-10-31 上海交通大学 基于结构化稀疏字典学习的压缩视频采集与重构系统
CN109121465B (zh) * 2016-05-06 2023-06-06 交互数字麦迪逊专利控股公司 用于运动补偿残差预测的系统和方法
KR102531386B1 (ko) 2016-10-04 2023-05-12 주식회사 비원영상기술연구소 영상 데이터 부호화/복호화 방법 및 장치
US20190253624A1 (en) * 2017-07-17 2019-08-15 Ki Baek Kim Image data encoding/decoding method and apparatus
KR20230170004A (ko) * 2021-04-09 2023-12-18 인터디지털 씨이 페이튼트 홀딩스, 에스에이에스 넓은 구역에 대한 공간 조명 보상

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7170937B2 (en) * 2002-05-01 2007-01-30 Texas Instruments Incorporated Complexity-scalable intra-frame prediction technique
US20060153295A1 (en) * 2005-01-12 2006-07-13 Nokia Corporation Method and system for inter-layer prediction mode coding in scalable video coding
KR100667808B1 (ko) * 2005-08-20 2007-01-11 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
US8130822B2 (en) * 2006-07-10 2012-03-06 Sharp Laboratories Of America, Inc. Methods and systems for conditional transform-domain residual accumulation
BRPI0621935A2 (pt) * 2006-07-28 2016-09-13 Toshiba Kk Toshiba Corp método e aparelho para codificar e decodificar imagem
CN101137065A (zh) * 2006-09-01 2008-03-05 华为技术有限公司 图像编码方法、解码方法、编码器、解码器、编解码方法及编解码器
US8059902B2 (en) * 2006-10-31 2011-11-15 Ntt Docomo, Inc. Spatial sparsity induced temporal prediction for video compression
KR100823287B1 (ko) * 2007-01-03 2008-04-21 삼성전자주식회사 전역 차이 벡터를 이용한 다시점 영상의 부호화, 복호화방법 및 장치
CN101159875B (zh) * 2007-10-15 2011-10-05 浙江大学 二重预测视频编解码方法和装置
EP2081155B1 (en) * 2008-01-21 2011-11-16 Telefonaktiebolaget LM Ericsson (publ) Prediction-based image processing
CN101262607B (zh) * 2008-04-11 2011-06-15 浙江大学 二重预测视频编解码方法和装置
WO2010041858A2 (en) * 2008-10-06 2010-04-15 Lg Electronics Inc. A method and an apparatus for decoding a video signal
US8665964B2 (en) * 2009-06-30 2014-03-04 Qualcomm Incorporated Video coding based on first order prediction and pre-defined second order prediction mode

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108810540B (zh) * 2012-01-20 2020-07-21 佳能株式会社 从视频数据的位流解码多个编码单位的方法
CN108810540A (zh) * 2012-01-20 2018-11-13 佳能株式会社 从视频数据的位流解码多个编码单位的方法
CN108989809A (zh) * 2012-01-20 2018-12-11 佳能株式会社 从视频数据的位流解码多个编码单位的方法
US11025953B2 (en) 2012-01-20 2021-06-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
CN108989809B (zh) * 2012-01-20 2020-07-24 佳能株式会社 从视频数据的位流解码多个编码单位的方法
CN104604223A (zh) * 2012-07-02 2015-05-06 诺基亚公司 用于视频编码和解码的装置、方法和计算机程序
WO2015078304A1 (en) * 2013-11-27 2015-06-04 Mediatek Singapore Pte. Ltd. Method of video coding using prediction based on intra picture block copy
US11032568B2 (en) 2013-11-27 2021-06-08 Hfi Innovation Inc. Method of video coding using prediction based on intra picture block copy
CN104717511B (zh) * 2013-12-13 2018-10-16 联发科技(新加坡)私人有限公司 视频编码或解码的方法及装置
US10271048B2 (en) 2013-12-13 2019-04-23 Mediatek Singapore Pte. Ltd. Method of background residual prediction for video coding
CN104717511A (zh) * 2013-12-13 2015-06-17 联发科技(新加坡)私人有限公司 视频编码或解码的方法及装置
CN111416975A (zh) * 2019-01-08 2020-07-14 华为技术有限公司 预测模式确定方法和装置
CN113632475A (zh) * 2019-03-08 2021-11-09 夏普株式会社 图像解码装置
CN109996068A (zh) * 2019-04-12 2019-07-09 中国科学技术大学 一种视频运动信息编码方法及装置

Also Published As

Publication number Publication date
EP2503783A1 (en) 2012-09-26
CN102098519B (zh) 2013-04-17
WO2011069412A1 (zh) 2011-06-16
EP2503783B1 (en) 2016-11-09
US20120243608A1 (en) 2012-09-27
EP2503783A4 (en) 2013-01-09

Similar Documents

Publication Publication Date Title
CN102098519B (zh) 视频编码方法、解码方法、编码及解码装置
CN102656890B (zh) 用于视频编码的方法和设备
CN102065290B (zh) 视讯译码装置、存储运动矢量信息的方法及存储器分配方法
CN102150428B (zh) 用于使用自适应分段的视频编码的系统和方法
CN100492916C (zh) 采用多映射表的可变长度编码和解码方法及设备
CN102783035B (zh) 并行熵编码方法和设备
CN108432248A (zh) 用于对视频信号进行熵编码和解码的方法和设备
CN102939719B (zh) 用于在二进制熵编码和解码中减少源的方法和设备
KR102536704B1 (ko) 메모리 액세스가 감소된 fruc 모드에서 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치
CN103636203A (zh) 内部预测模式编码的方法及装置
CN103380622A (zh) 帧内预测模式编码/解码方法和用于其的设备
CN103067704B (zh) 一种基于编码单元层次提前跳过的视频编码方法和系统
CN103098469A (zh) 用于对变换系数进行熵编码/熵解码的方法和设备
CN103931196A (zh) 帧间预测方法及其装置
CN103797800A (zh) 推导参考模式值以及编码和解码表示预测模式的信息
US20090034619A1 (en) Adapting an encoded video signal to encoding complexity
CN103220508A (zh) 编解码方法和装置
CN102845065A (zh) 用于重排并行熵编码和解码的方法和设备
CN103188494A (zh) 跳过离散余弦变换对深度图像编码/解码的设备和方法
CN102088603A (zh) 用于视频编码器的熵编码器及其实现方法
CN102473315A (zh) 再次使用树结构编码和解码二元集的方法和装置
CN102118615A (zh) 采用可变块大小略过模式的视频编/解码方法和装置
KR20220002991A (ko) 글로벌 모션을 갖는 프레임들에서의 적응적 모션 벡터 예측 후보들
CN101790096A (zh) 基于二重预测的编解码方法及装置
CN103051896B (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
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: HUAWEI TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: ZHEJIANG UNIVERSITY

Effective date: 20140519

Free format text: FORMER OWNER: HUAWEI TECHNOLOGY CO., LTD.

Effective date: 20140519

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 310058 HANGZHOU, ZHEJIANG PROVINCE TO: 518129 SHENZHEN, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20140519

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd.

Address before: 310058 Xihu District, Zhejiang, Yuhang Tong Road, No. 388, No.

Patentee before: Zhejiang University

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20211227

Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province

Patentee after: xFusion Digital Technologies Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right