CN113366835A - 图像处理装置及方法 - Google Patents

图像处理装置及方法 Download PDF

Info

Publication number
CN113366835A
CN113366835A CN202080011938.7A CN202080011938A CN113366835A CN 113366835 A CN113366835 A CN 113366835A CN 202080011938 A CN202080011938 A CN 202080011938A CN 113366835 A CN113366835 A CN 113366835A
Authority
CN
China
Prior art keywords
block
sub
bits
processing
syntax element
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
Application number
CN202080011938.7A
Other languages
English (en)
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.)
Sony Group Corp
Original Assignee
Sony Group Corp
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 Sony Group Corp filed Critical Sony Group Corp
Publication of CN113366835A publication Critical patent/CN113366835A/zh
Pending legal-status Critical Current

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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/115Selection of the code volume for a coding unit prior to coding
    • 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/136Incoming video signal characteristics or properties
    • 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
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开内容涉及能够实现编码效率劣化的降低的图像处理设备和方法。本发明涉及:通过将位元数量分配给非零子块来设置分派给处理目标子块的位元数量的上限值;通过使用从图像数据导出的系数数据来导出关于处理目标子块的语法元素值,使得位元数量不超过上限值;以及对所导出的语法元素值进行编码以生成编码数据。例如,本公开内容适用于图像处理设备、图像编码设备、图像解码设备、发送设备、接收设备、发送和接收设备、信息处理设备、成像设备、再现设备、电子设备、图像处理方法或信息处理方法。

Description

图像处理装置及方法
技术领域
本公开内容涉及一种图像处理装置和方法,并且具体涉及一种能够抑制编码效率降低的图像处理装置和方法。
背景技术
通常,在用于图像编码的CABAC中,当表示语法元素值时上下文编码的位元数量越多,编码效率就越好并且可以更多地抑制图像质量降低。然而,随着上下文编码的位元数量增加,处理量增加。因此,提出了一种以子块为单位来限制上下文编码的位元数量的方法(例如,非专利文件1)。
引用列表
非专利文件
非专利文件1:T.-D.Chuang,S.-T.Hsiang,Z.-Y.Lin,C.-Y.Chen,Y.-W.Huang,S.-M.Lei(联发科),“CE7(测试7.1、7.2、7.3和7.4):Constraints on context-coded binsfor coefficient coding”,JVET-M0173,ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频探索小组(JVET)第13次会议:马萨诸塞州马拉喀什,2019年1月9日至18日。
发明内容
本发明要解决的问题
然而,在该方法的情况下,由于上下文编码的位元数量被统一地限制,因此不能根据图像的特性局部地增大或减小系数数据,并且存在编码效率不必要地降低的可能性。
鉴于这样的情况做出了本公开内容,并且本公开内容可以抑制编码效率降低。
问题的解决方案
本技术的一方面的图像处理装置是包括以下的图像处理装置:语法元素值导出单元,其通过将位元数量在非零子块之间分配来设置分派给处理目标子块的位元数量的上限值,并且通过使用从图像数据导出的系数数据来导出关于处理目标子块的语法元素值,使得位元数量不超过上限值;以及编码单元,其对所导出的语法元素值进行编码并且生成编码数据。
本技术的一方面的图像处理方法是包括以下的图像处理方法:通过将位元数量在非零子块之间分配来设置分派给处理目标子块的位元数量的上限值,并且通过使用从图像数据导出的系数数据来导出关于处理目标子块的语法元素值,使得位元数量不超过上限值;以及对所导出的语法元素值进行编码并且生成编码数据。
本技术的另一方面的图像处理装置是包括以下的图像处理装置:解码单元,其对编码数据进行解码并且生成语法元素值;以及系数数据导出单元,其通过将位元数量在非零子块之间分配来设置分派给处理目标子块的位元数量的上限值,并且通过使用所生成的语法元素值来导出关于处理目标子块的与图像数据相对应的系数数据,使得位元数量不超过上限值。
本技术的另一方面的图像处理方法是包括以下的图像处理方法:对编码数据进行解码并且生成语法元素值;以及通过将位元数量在非零子块之间分配来设置分派给处理目标子块的位元数量的上限值,并且通过使用所生成的语法元素值来导出关于处理目标子块的与图像数据相对应的系数数据,使得位元数量不超过上限值。
本技术的又一方面的图像处理装置是包括以下的图像处理装置:语法元素值导出单元,其通过将分派给零子块的位元数量分配给非零子块来设置分派给处理目标子块的位元数量的上限值,并且通过使用从图像数据导出的系数数据来导出关于处理目标子块的语法元素值,使得位元数量不超过上限值;以及编码单元,其对所导出的语法元素值进行编码并且生成编码数据。
本技术的又一方面的图像处理方法是包括以下的图像处理方法:通过将分派给零子块的位元数量分配给非零子块来设置分派给处理目标子块的位元数量的上限值,并且通过使用从图像数据导出的系数数据来导出关于处理目标子块的语法元素值,使得位元数量不超过上限值;以及对所导出的语法元素值进行编码并且生成编码数据。
本技术的又一方面的图像处理装置是包括以下的图像处理装置:解码单元,其对编码数据进行解码并且生成语法元素值;以及系数数据导出单元,其通过将分派给零子块的位元数量分配给非零子块来设置分派给处理目标子块的位元数量的上限值,并且通过使用所生成的语法元素值来导出关于处理目标子块的与图像数据相对应的系数数据,使得位元数量不超过上限值。
本技术的又一方面的图像处理方法是包括以下的图像处理方法:对编码数据进行解码并且生成语法元素值;以及通过将分派给零子块的位元数量分配给非零子块来设置分派给处理目标子块的位元数量的上限值,并且通过使用所生成的语法元素值来导出关于处理目标子块的与图像数据相对应的系数数据,使得位元数量不超过上限值。
在本技术的一方面的图像处理装置和方法中,通过将位元数量在非零子块之间分配来设置分派给处理目标子块的位元数量的上限值,通过使用从图像数据导出的系数数据来关于处理目标子块导出语法元素值,使得位元数量不超过上限值,并且对所导出的语法元素值进行编码并生成编码数据。
在本技术的另一方面的图像处理装置和方法中,对编码数据进行解码并且生成语法元素值,并且通过将位元数量在非零子块之间分配来设置分派给处理目标子块的位元数量的上限值,并且通过使用所生成的语法元素值来关于处理目标子块导出与图像数据相对应的系数数据,使得位元数量不超过上限值。
在本技术的又一方面的图像处理装置和方法中,通过将分派给零子块的位元数量分配给非零子块来设置分派给处理目标子块的位元数量的上限值,通过使用从图像数据导出的系数数据来关于处理目标子块导出语法元素值,使得位元数量不超过上限值,并且对所导出的语法元素值进行编码并生成编码数据。
在本技术的又一方面的图像处理装置和方法中,对编码数据进行解码并且生成语法元素值,并且通过将分派给零子块的位元数量分配给非零子块来设置分派给处理目标子块的位元数量的上限值,并且通过使用所生成的语法元素值来关于处理目标子块导出与图像数据相对应的系数数据,使得位元数量不超过上限值。
附图说明
图1是说明子块的图。
图2是说明方法#1的图。
图3是说明方法#1的应用示例的图。
图4是示出编码装置的主要配置示例的框图。
图5是示出CABAC的主要配置示例的框图。
图6是说明编码处理的流程的示例的流程图。
图7是说明语法元素值导出处理的流程的示例的流程图。
图8是示出语法的示例的图。
图9是在图8之后示出语法的示例的图。
图10是在图9之后示出语法的示例的图。
图11是在图10之后示出语法的示例的图。
图12是说明CABAC处理的流程的示例的流程图。
图13是示出解码装置的主要配置示例的框图。
图14是示出CABAC的主要配置示例的框图。
图15是说明解码处理的流程的示例的流程图。
图16是说明CABAC处理的流程的示例的流程图。
图17是说明系数数据导出处理的流程的示例的流程图。
图18是说明方法#2的图。
图19是说明方法#2的应用示例的图。
图20是说明语法元素值导出处理的流程的示例的流程图。
图21是示出语法的示例的图。
图22是在图21之后示出语法的示例的图。
图23是在图22之后示出语法的示例的图。
图24是在图23之后示出语法的示例的图。
图25是说明系数数据导出处理的流程的示例的流程图。
图26是说明方法#3的图。
图27是说明方法#3的应用示例的图。
图28是说明语法元素值导出处理的流程的示例的流程图。
图29是示出语法的示例的图。
图30是在图29之后示出语法的示例的图。
图31是在图30之后示出语法的示例的图。
图32是在图31之后示出语法的示例的图。
图33是说明系数数据导出处理的流程的示例的流程图。
图34是说明方法#4的图。
图35是说明方法#4的应用示例的图。
图36是说明语法元素值导出处理的流程的示例的流程图。
图37是在图36之后说明语法元素值导出处理的流程的示例的流程图。
图38是示出语法的示例的图。
图39是在图38之后示出语法的示例的图。
图40是在图39之后示出语法的示例的图。
图41是在图40之后示出语法的示例的图。
图42是说明系数数据导出处理的流程的示例的流程图。
图43是在图42之后的说明系数数据导出处理的流程的示例的流程图。
图44是说明方法#5的图。
图45是说明方法#5的应用示例的图。
图46是说明方法#6的图。
图47是说明方法#6的应用示例的图。
图48是说明方法#7的图。
图49是说明方法#7的应用示例的图。
图50是说明语法元素值导出处理的流程的示例的流程图。
图51是示出语法的示例的图。
图52是在图51之后的示出语法的示例的图。
图53是在图52之后的示出语法的示例的图。
图54是说明系数数据导出处理的流程的示例的流程图。
图55是说明方法#8的图。
图56是说明方法#8的应用示例的图。
图57是说明语法元素值导出处理的流程的示例的流程图。
图58是说明系数数据导出处理的流程的示例的流程图。
图59是示出图像编码装置的主要配置示例的框图。
图60是示出图像编码处理的流程的示例的流程图。
图61是示出图像解码装置的主要配置示例的框图。
图62是示出图像解码处理的流程的示例的流程图。
图63是示出计算机的主要配置示例的框图。
具体实施方式
下面描述用于执行本公开内容的方式(在下文中,实施方式)。注意,将按照以下顺序呈现描述。
1.CABAC
2.第一实施方式(将零子块的位元数量转到非零子块)
3.第二实施方式(在非零子块内共享最大位元)
4.第三实施方式(在另一非零子块中使用非零子块的额外位元)
5.第四实施方式(#1、#2和#3的合成)
6.第五实施方式(#1的应用)
7.第六实施方式(将用于管理上下文编码的位元数量的单元扩展到大于TU(CU、VPDU、CTU等)的大小)
8.第七实施方式(消除语法结构中上下文编码的位元数量的最大值的上限)
9.第八实施方式(使非零子块紧邻零子块的位元数量最大化)
10.第九实施方式(应用于图像编码装置和图像解码装置)
11.附录
<1.CABAC>
<支持技术内容和技术术语的文件等>
本技术中公开的范围不限于实施方式中描述的内容,而是覆盖在提交时已知的以下非专利文件等中描述的内容以及在以下非专利文件中引用的其他文件的内容。
非专利文件1:(如上所述)
非专利文件2:ITU-T H.264建议书(04/2017)“Advanced video coding forgeneric audiovisual services”,2017年4月
非专利文件3:ITU-T H.265建议书(12/2016)“Highefficiency video coding”,2016年12月
非专利文件4:J.Chen,E.Alshina,G.J.Sullivan,J.-R.Ohm,J.Boyce,“AlgorithmDescriptionof Joint Exploration TestModel(JEM7)”,JVET-G1001,ITU-TSG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频探索小组(JVET)第七次会议:意大利,都灵,2017年7月13日至21日
非专利文件5:B.Bross,J.Chen,S.Liu,“Versatile Video Coding(草案3)”,JVET-L1001,ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)第十二次会议:中国澳门,2018年10月3日至12日
非专利文件6:J.J.Chen,Y.Ye,S.Kim,“Algorithm descriptionfor VersatileVideo Coding and Test Model 3(VTM 3)”,JVET-L1002,ITU-T SG 16WP 3和ISO/IEC JTC1/SC 29/WG 11的联合视频专家组(JVET)第十二次会议:中国澳门,2018年10月3日至12日
非专利文件7:J.Boyce(Intel),Y.Ye(InterDigital),Y.-W.Huang(Mediatek),M.Karczewicz(Qualcomm),E.Francois(Technicolor),W.Husak(Dolby),J.Ridge(Nokia),A.Abbas(GoPro),“Two tier test model”,JVET-J0093,ITU-T SG 16WP 3和ISO/IEC JTC1/SC 29/WG 11的联合视频专家组(JVET)第十次会议:美国圣地亚哥,2018年4月10日至20日
非专利文件8:S.Yoo,J.Choi,J.Heo,J.Choi,L.Li,J.Lim,S.Kim(LGE),“Non-CE7:Residual rearrangement for transform skipped blocks”,JVET-M0278,ITU-T SG 16WP3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)第十三次会议:马萨诸塞州马拉喀什,2019年1月9日至18日
非专利文件9:B.Bross,T.Nguyen,P.Keydel,H.Schwarz,D.Marpe,T.Wiegand(HHI),“Non-CE8:Unified Transform Type Signallingand Residual Coding forTransform Skip”,JVET-M0464,ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)第十三次会议:马萨诸塞州马拉喀什,2019年1月9日至18日
非专利文件10:Y.Zhao,H.Gao,H.Yang,J.Chen(Huawei),“CE6:Sub-blocktransform for inter blocks(测试6.4.1)”,JVET-M0140,ITU-T SG 16WP 3和ISO/IECJTC 1/SC 29/WG 11的联合视频专家组(JVET)第十三次会议:马萨诸塞州马拉喀什,2019年1月9日至18日
非专利文件11:S.De-Luxan-Hernandez,V.George,J.Ma,T.Nguyen,H.Schwarz,D.Marpe,T.Wiegand(HHI),“CE3:Intra Sub-Partitions Coding Mode(测试1.1.1和1.1.2)”,JVET-M0102,ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)第十三次会议:马萨诸塞州马拉喀什,2019年1月9日至18日
非专利文件12:B.Bross,J.Chen,S.Liu,“Versatile Video Coding(草案4)”,JVET-M1001,ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)第十二次会议:中国澳门,2018年10月3日至12日
也就是说,以上提到的非专利文件中描述的内容也是用于确定支持要求的基础。例如,即使在以上提到的非专利文件中描述的四叉树块结构和四叉树加二叉树(QTBT)块结构没有在示例中直接描述的情况下,它们也在本技术的公开内容的范围内,并且满足权利要求书的支持要求。此外,例如,即使在示例中没有直接描述诸如解析、语法和语义的技术术语的情况下,它们也类似地在本技术的公开内容的范围内,并且满足权利要求书的支持要求。
此外,在本说明书中,除非另外说明,否则在说明书中用作图像(图片)的部分区域或处理单元的“块”(不是指示处理单元的块)指示图片中的任何部分区域,并且其大小、形状、特性等不受限制。例如,“块”包括任何部分区域(处理单元),例如以上提到的非专利文件中描述的变换块(TB)、变换单元(TU)、预测块(PB)、预测单元(PU)、最小编码单元(SCU)、编码单元(CU)、最大编码单元(LCU)、编码树块(CTB)、编码树单元(CTU)、变换块、子块、宏块、图块、切片等。
此外,当指定这种块的大小时,不仅可以直接指定块大小,而且可以间接指定块大小。例如,可以使用标识大小的标识信息来指定块大小。此外,例如,可以通过相对于参考块(例如,LCU或SCU)的大小的比率或差来指定块大小。例如,在将用于指定块大小的信息作为语法元素等进行发送的情况下,可以将如上所述的用于间接指定大小的信息用作该信息。如此,可以减少信息的信息量,并且可以提高编码效率。此外,指定块大小还包括指定块大小的范围(例如,指定可允许块大小的范围)。
此外,在本说明书中,编码不仅包括将图像转换为比特流的全部处理,而且包括处理的一部分。例如,编码不仅包含包括预测处理、正交变换、量化、算术编码等的处理,而且包括统称为量化和算术编码的处理以及包括预测处理、量化和算术编码的处理。类似地,解码不仅包括将比特流转换为图像的全部处理,而且包括处理的一部分。例如,解码不仅包含包括逆算术解码、逆量化、逆正交变换、预测处理等的处理,而且包含包括逆算术解码和逆量化的处理、包括逆算术解码、逆量化和预测处理的处理。
<上下文编码的位元数量>
用于诸如高效视频编码(HEVC)的图像编码的基于上下文的自适应二进制算术编码(CABAC)是如下编码方法,其通过预定方法对表示从图像数据中导出的系数数据的语法元素值进行二值化,并且通过切换二值化的位串中的每个位的出现频率模型(上下文)来执行算术编码。系数数据例如通过如下语法元素来表示,例如指示系数的码的sig_flag、指示系数的绝对值是否为1的gt1_flag、指示系数是奇数还是偶数的par_flag、以及指示系数的绝对值是否为2的gt2_flag。
通常,当表示语法元素值时上下文编码的位元数量越多,编码效率就越好并且可以更多地抑制图像质量降低。然而,随着上下文编码的位元数量增加,处理量增加。因此,例如,在非专利文件1中,提出了以子块为单位来限制上下文编码的位元数量的方法。
然而,在该方法的情况下,由于上下文编码的位元数量被统一地限制,因此不能根据图像的特性局部地增大或减小系数数据,并且存在编码效率不必要地降低的可能性。换言之,存在降低解码图像的图像质量的风险。
<上下文编码的位元数量的可变限制>
因此,使每个子块中的上下文编码的位元数量的限制可变。如此,可以根据图像的特性进一步局部地增大或减小系数数据,使得可以抑制编码效率的降低。换言之,可以抑制解码图像的图像质量降低。
此时,例如,以块(图片、切片、CTU、虚拟流水数据单元(VPDU)、CU、访问单元(AU)、TU等)为单位的位元数量可以类似于在每个子块中存在固定数量的上下文编码的位元的情况。如此,可以在抑制处理量增加的同时抑制编码效率降低。
例如,可以在块中的非零子块之间分配上下文编码的位元数量,并且可以设置分派给每个子块的上下文编码的位元数量的上限值。然后,对于处理目标子块,可以在防止上下文编码的位元数量超过上限值的同时从与图像数据相对应的系数数据中导出语法元素值。
此外,例如,对于处理目标子块,可以在防止上下文编码的位元数量超过上限值的同时对语法元素值进行解析并且可以导出与图像数据相对应的系数数据。
此外,例如,可以将分派给块中的零子块的位元数量在非零子块之间分配,并且可以设置分派给每个子块的上下文编码的位元数量的上限值。然后,对于处理目标子块,可以在防止上下文编码的位元数量超过上限值的同时从与图像数据相对应的系数数据中导出语法元素值。
此外,例如,对于处理目标子块,可以在防止上下文编码的位元数量超过上限值的同时对语法元素值进行解析并且可以导出与图像数据相对应的系数数据。
<块>
例如,如图1的A中所示的块10是处理目标块。块10例如是8x8像素TU,包括四个子块(子块11-1、子块11-2、子块11-3和子块11-4)。在下文中,在没有必要彼此分开描述每个子块的情况下,将其称为子块11。也就是说,在图1的A的示例中,块10包括2x2子块11。因此,每个子块11包括4x4像素。
在图1的A中,每个子块11中的数值指示在子块11中生成的上下文编码的位元数量。例如,当每个子块11的上下文编码的位元数量被限制为30个位元时,在每个子块11中生成的上下文编码的位元数量被限制为30个位元或更少。
注意,如图1的B中所示,每个子块11的处理顺序是莫顿码顺序(Z序曲线)。
<2.第一实施方式>
<方法#1>
例如,如图2中的表的顶行中所示的,零子块中的上下文编码的位元数量可以转到非零子块。
零子块是系数全为零(0)的子块。此外,非零子块是存在至少一个非零系数的子块。也就是说,在如非专利文件1中描述的方法中的为每个子块统一地设置上下文编码的位元数量的上限值的情况下分派给零子块的上下文编码的位元数量被分派给非零子块。
例如,如从图2中示出的表的从顶部起第二行中所示的,子块系数标志(coded_sub_block_flag)被置于现有循环之外并使其独立。
子块系数标志是指示子块是否包含非零系数的标志。例如,在coded_sub_block_flag=1的情况下,其指示与该标志相对应的子块是非零子块,以及在coded_sub_block_flag=0的情况下,其指示与该标志相对应的子块是零子块。针对每个子块,使与语法元素值的导出有关的处理经受循环处理,但是在该方法中,在循环处理之外执行与子块系数标志有关的处理。也就是说,首先对TU中所有子块的子块系数标志进行解析。
然后,对coded_sub_block_flag=0的子块即零子块进行计数。然后,将零子块的数量×一个子块的上下文编码的位元数量转(添加)到非零子块中。由于在零子块中没有消耗上下文编码的位元数量,因此该数量转到非零子块。
此外,在TU(预定单元)内关闭了上下文编码的位元数量的管理。也就是说,为每个块分配如上所述的上下文编码的位元数量。
如此,如从图2中示出的表的从顶部起第三行中所示的,零子块中的额外上下文编码的位元数量可以用作非零子块中上下文编码的位元数量,并且可以抑制编码效率降低。换言之,可以抑制解码图像的图像质量降低。
例如,如图3的A中所示的,在对每个子块设置30个位元的限制的情况下,即使当子块11-2和子块11-3是零子块时,它们的额外上下文编码的位元数量也不能用于作为非零子块的子块11-1或子块11-4。也就是说,子块11-1和子块11-4中的上下文编码的位元数量不能大于30个位元。
另一方面,在方法#1的情况下,如图3的B中所示的,即使当子块11-2和子块11-3是零子块时,它们的额外上下文编码的位元数量可以分派给作为非零子块的子块11-1或子块11-4。也就是说,在那些子块中,可以生成30个位元或更多的语法元素值。因此,可以抑制编码效率降低。
<编码装置>
图4是示出作为应用了本技术的图像处理装置的一方面的编码装置的配置的示例的框图。图4中示出的编码装置100是通过CABAC对从图像数据导出的系数数据进行编码并生成编码数据的装置。
注意,图4示出了诸如处理单元和数据流的主要内容,但在图4中未示出它们的全部。也就是说,在编码装置100中,可能存在未在图4中作为框示出的处理单元,或者可能存在未在图4中作为箭头等示出的处理或数据流。
如图4中所示,编码装置100包括定序器101和CABAC 102。定序器101获取从图像数据导出的系数数据等。此外,定序器101适当地获取诸如标志信息等的控制信息。定序器101使用控制信息来导出语法元素值。此外,定序器101将所导出的语法元素值等提供给CABAC102。CABAC 102获取从定序器101提供的语法元素值等。CABAC 102通过预定方法对语法元素值进行二值化,通过切换二值化的位串中的每个位的上下文来执行算术编码,以及生成编码数据。CABAC 102将所生成的编码数据输出至编码装置100的外部。
注意,这些处理单元(定序器101和CABAC 102)具有任意配置。例如,每个处理单元可以包括实现以上提到的处理的逻辑电路。此外,每个处理单元可以包括例如中央处理单元(CPU)、只读存储器(ROM)、随机存取存储器(RAM)等,并且使用它们来执行程序以实现以上提到的处理。当然,每个处理单元可以具有两种配置,并且以上提到的处理的一部分可以通过逻辑电路来实现,而其余部分可以通过执行程序来实现。各个处理单元的配置可以彼此独立。例如,一些处理单元可以通过逻辑电路实现以上提到的处理的一部分,并且一些其他处理单元可以执行程序以实现以上提到的处理,而又一其他处理单元可以通过逻辑电路和程序的执行二者实现以上提到的处理。
<CABAC>
图5是示出CABAC 102的主要配置示例的框图。注意,图5示出了诸如处理单元和数据流的主要内容,但在图5中未示出它们的全部。也就是说,在CABAC 102中,可能存在未在图5中作为框示出的处理单元,或者可能存在未在图5中作为箭头等示出的处理或数据流。
如图5中所示,CABAC 102包括二值化单元121、选择单元122、上下文模型123、算术编码单元124、算术编码单元125和选择单元126。
二值化单元121获取从定序器101提供的语法元素值,使用针对每个语法元素定义的方法来执行二值化,以及生成二值化的位串。二值化单元121将二值化的位串提供给选择单元122。
选择单元122获取从二值化单元121提供的二值化的位串以及标志信息isBypass。选择单元122基于isBypass的值来选择二值化的位串的提供目的地。例如,在isBypass=0的情况下,选择单元122确定它是常规模式并且将二值化的位串提供给上下文模型123。此外,在isBypass=1的情况下,选择单元122确定它是旁路模式并且将二值化的位串提供给算术编码单元125。
上下文模型123根据编码目标和周围情况动态地切换要应用的上下文模型。例如,上下文模型123保持上下文变量ctx,并且当从选择单元122获取二值化的位串时,读取与为每个语法元素定义的位元字符串的每个位元位置(binIdx)相对应的上下文变量ctx。上下文模型123将二值化的位串和所读取的上下文变量ctx提供给算术编码单元124。
当算术编码单元124获取从上下文模型123提供的二值化的位串和上下文变量ctx时,算术编码单元124参考上下文变量ctx的概率状态并且在CABAC常规模式下对二值化的位串的binIdx中的位元的值进行算术编码(上下文编码)。算术编码单元124将通过上下文编码生成的编码数据提供给选择单元126。此外,算术编码单元124将上下文编码处理后的上下文变量ctx提供给上下文模型123,并且使上下文模型123保持上下文变量ctx。
算术编码单元125在CABAC旁路模式下对从选择单元122提供的二值化的位串进行算术编码(旁路编码)。算术编码单元125将通过旁路编码生成的编码数据提供给选择单元126。
选择单元126获取标志信息isBypass并且基于isBypass的值选择要输出的编码数据。例如,在isBypass=0的情况下,选择单元126确定其为常规模式,获取从算术编码单元124提供的编码数据,并且将其输出至CABAC 102(编码装置100)的外部。此外,在isBypass=1的情况下,选择单元126确定其为旁路模式,获取从算术编码单元125提供的编码数据,并且将其输出至CABAC 102(编码装置100)的外部。
注意,这些处理单元(二值化单元121至选择单元126)具有任意配置。例如,每个处理单元可以包括实现以上提到的处理的逻辑电路。此外,每个处理单元可以包括例如CPU、ROM、RAM等,并且使用它们来执行程序以实现以上提到的处理。当然,每个处理单元可以具有两种配置,并且以上提到的处理的一部分可以通过逻辑电路实现,而其余部分可以通过执行程序来实现。各个处理单元的配置可以彼此独立。例如,一些处理单元可以通过逻辑电路实现以上提到的处理的一部分,并且一些其他处理单元可以执行程序以实现以上提到的处理,而另外其他处理单元可以通过逻辑电路和程序的执行二者实现以上提到的处理。
<编码处理的流程>
接下来,将参照图6的流程图描述由编码装置100执行的编码处理的流程的示例。
当开始编码处理时,在步骤S101中,编码装置100的定序器101执行语法元素值导出处理,并且从输入至编码装置100的系数数据(从图像数据导出的系数数据)导出语法元素值。
在步骤S102中,CABAC 102执行CABAC处理,通过CABAC对在步骤S101中导出的语法元素值进行编码,以及生成编码数据。CABAC 102将所生成的编码数据输出至编码装置100的外部。
当步骤S102的处理结束时,编码处理结束。
<语法元素值导出处理的流程>
接下来,将参照图7的流程图描述在图6的步骤S101中执行的语法元素值导出处理的流程的示例。图8至图11是示出残差编码的语法的示例的图。必要时将结合这些附图给出描述。注意,在图8至图11的语法中,阈值(TH1至TH4)可以具有例如以下所述的值。
TH1=6,TH2=28,TH3=2,TH4=4。
当然,每个阈值的值是任意的并且不限于该示例。
当开始语法元素值导出处理时,定序器101在步骤S121中对处理目标块中的子块系数标志(coded_sub_block_flag)进行编码,例如图9从顶部起第二行至第十一行中所示。
在步骤S122中,定序器101基于子块系数标志的值对非零子块的数量(numNonZeroSbk)进行计数,例如图9从顶部起第十三行至第十六行中所示。也就是说,定序器101对要处理的块的coded_sub_block_flag=1的子块的数量进行计数。
在步骤S123中,定序器101为每个子块的上下文编码的位元数量设置临时上限值(remBinPass1Tmp),例如图9从顶部起第十八行和第十九行中所示。例如,在图3的情况下,由于子块包括4x4系数数据并且导出了sig_flag、gt1_flag、par_flag和gt2_flag,因此每个子块的上下文编码的位元的最大数量是64个位元。定序器101将该64个位元设置给以上提到的临时上限值(remBinPass1Tmp)。也就是说,可以基于子块的大小设置该临时上限值(remBinPass1Tmp)。
在步骤S124中,定序器101基于零子块的数量(numZeroSBk)设置全部零子块的额外上下文编码的位元数量(remBinPass1InZeroSbk),例如图9从顶部起第二十行和第二十一行中所示。由于根据子块系数标志的数量等知道处理目标块中的子块的数量,因此可以根据在步骤S122中计数的非零子块的数量(numNonZeroSbk)获得零子块的数量(numZeroSBk)。由于零子块所需的位元数量为零,因此在步骤S123中设置的临时上限值(remBinPass1Tmp)是额外上下文编码的位元数量。因此,全部零子块的额外上下文编码的位元数量(remBinPass1InZeroSbk)是通过零子块的数量(numZeroSBk)与临时上限值(remBinPass1Tmp)的乘积导出的。
在步骤S125中,定序器101设置每个非零子块的可以另外分派的额外上下文编码的位元的平均数量(remBinPass1Extra),例如图9从顶部起第二十二行和第二十三行中所示。可以通过将在步骤S124中导出的全部零子块的额外上下文编码的位元数量(remBinPass1InZeroSbk)除以零子块的数量(numZeroSBk)来导出额外上下文编码的位元的平均数量(remBinPass1Extra)。注意,为了避免划分,可以使用查找表来导出额外上下文编码的位元的平均数量(remBinPass1Extra)。
接下来,处理进行至针对每个子块的处理。也就是说,处理进行至语法中的针对每个子块的for语句的循环中的处理。在步骤S126中,定序器101从处理目标块中的子块中选择处理目标子块(subSetId=i)。
在步骤S127中,定序器101基于临时上限值(remBinPass1Tmp)以及可以从零子块中另外分派的额外上下文编码的位元的平均数量(remBinPass1Extra)设置关于处理目标子块的上下文编码的位元数量的上限值(remBinPass1),例如图9从顶部起第二十九行和第三十行中所示。在图9的示例的情况下,通过将临时上限值(remBinPass1Tmp)与可以从零子块中另外分派的额外上下文编码的位元的平均数量(remBinPass1Extra)相加来导出上下文编码的位元数量的上限值(remBinPass1)。
在步骤S128中,定序器101导出关于处理目标子块的语法元素的值,以不超过上下文编码的位元数量的上限值。该处理对应于图10和后续附图中示出的语法。
在步骤S129中,定序器101确定是否所有子块已被处理。在确定在处理目标块中存在未处理的子块的情况下,处理返回至步骤S126,并且重复随后的处理。也就是说,针对处理目标块中的每个子块执行步骤S126至步骤S129中的每个处理。然后,在步骤S129中,在确定处理目标块中的所有子块已被处理的情况下,语法元素值导出处理结束,并且处理返回至图6。
通过执行如上所述的每个步骤的处理,定序器101可以使每个子块的上下文编码的位元数量的限制可变。例如,可以将分派给处理目标块中的零子块的上下文编码的位元数量分配给非零子块。因此,也可以使用分派给零子块的上下文编码的位元数量。因此,可以抑制编码效率降低。
注意,通过在针对每个子块的处理之前对子块系数标志(coded_sub_block_flag)进行编码,并通过对零子块的数量和非零子块的数量进行计数,可以更自由地分配额外上下文编码的位元数量(可以减少对分配的限制)。
此外,通过关闭如上所述的对块(例如,TU)中的上下文编码的位元数量的管理,可以抑制处理量增加。
<CABAC处理的流程>
接下来,将参照图12的流程图描述在图6的步骤S102中执行的CABAC处理的流程的示例。
当开始CABAC处理时,在步骤S151中,CABAC 102的二值化单元121输入作为处理目标的语法元素值(syncVal)。
在步骤S152中,二值化单元121执行为每个语法元素定义的二值化处理,并且导出语法元素值(syncVal)的位元字符串(synBins)。
在步骤S153中,选择单元122读取与为每个语法元素定义的位元字符串的每个位元位置(binIdx)相对应的上下文变量ctx以及指示其是否为旁路模式的标志isBypass。
在步骤S154中,选择单元122确定其是否为旁路模式。在isBypass=0并且确定其为常规模式的情况下,处理前进至步骤S155。
在步骤S155中,算术编码单元124执行上下文编码。也就是说,算术编码单元124参考上下文变量ctx的概率状态在CABAC常规模式下对在位元字符串(synBins)的位元位置(binIdx)处的位元的值进行编码。当步骤S155的处理结束时,处理前进至步骤S157。
此外,在isBypass=1并且在步骤S154中确定其为旁路模式的情况下,处理前进至步骤S156。
在步骤S156中,算术编码单元125执行旁路编码。也就是说,算术编码单元125在CABAC旁路模式下对在位元字符串(synBins)的位元位置(binIdx)处的位元的值进行编码。当步骤S156的处理结束时,处理前进至步骤S157。
在步骤S157中,选择单元126确定是否满足预定中断条件A。中断条件A是基于从binIdx=0至binIdx=k(当前binIdx位置k)的位元字符串的值以及关于每个语法元素的二值化方法定义的。
在确定不满足中断条件A的情况下,处理返回至步骤S153,并且针对下一个位元位置(binIdx)执行步骤S153及后续步骤的处理。也就是说,针对每个位元位置(binIdx)执行步骤S153至S157的处理。
然后,在步骤S157中,在确定满足中断条件A的情况下,CABAC处理结束,并且处理返回至图6。
通过以这种方式执行CABAC处理,可以对语法元素值进行编码并且可以生成编码数据。
<解码装置>
图13是示出作为应用了本技术的图像处理装置的一方面的解码装置的配置的示例的框图。图13中示出的解码装置200是对编码数据进行解码并生成与图像数据相对应的系数数据的装置。
注意,图13示出了诸如处理单元和数据流的主要内容,但在图13中未示出它们的全部。也就是说,在解码装置200中,可能存在未在图13中作为框示出的处理单元,或者可能存在未在图13中作为箭头等示出的处理或数据流。
如图13中所示,解码装置200包括CABAC 201和解析器202。CABAC201获取编码数据,通过切换二值化的位串中的每个位的上下文来对编码数据进行算术解码以生成二值化的位串,并且使用预定方法来将二值化的位串转换为多个值以生成语法元素值。CABAC 201将所生成的语法元素值提供给解析器202。解析器202获取语法元素值并且对其进行解析以导出与图像数据相对应的系数数据。解析器202将导出的系数数据输出至解码装置200的外部。
注意,这些处理单元(CABAC 201和解析器202)具有任意配置。例如,每个处理单元可以包括实现以上提到的处理的逻辑电路。此外,每个处理单元可以包括例如CPU、ROM、RAM等,并且使用它们来执行程序以实现以上提到的处理。当然,每个处理单元可以具有两种配置,并且以上提到的处理的一部分可以通过逻辑电路实现,而其余部分可以通过执行程序来实现。各个处理单元的配置可以彼此独立。例如,一些处理单元可以通过逻辑电路实现以上提到的处理的一部分,并且一些其他处理单元可以执行程序以实现以上提到的处理,而另外其他处理单元可以通过逻辑电路和程序的执行二者实现以上提到的处理。
<CABAC>
图14是示出CABAC 201的主要配置示例的框图。注意,图14示出了诸如处理单元和数据流的主要内容,但在图14中未示出它们的全部。也就是说,在CABAC 201中,可能存在未在图14中作为框示出的处理单元,或者可能存在未在图14中作为箭头等示出的处理或数据流。
如图14中所示,CABAC 201包括选择单元221、上下文模型222、算术解码单元223、算术解码单元224、选择单元225和多值转换单元226。
选择单元221获取输入至解码装置200的编码数据和标志信息isBypass。选择单元221基于isBypass的值选择编码数据的提供目的地。例如,在isBypass=0的情况下,选择单元221确定其为常规模式并且将编码数据提供给上下文模型222。此外,在isBypass=1的情况下,选择单元221确定其为旁路模式并且将二值化的位串提供给算术解码单元224。
上下文模型222根据解码目标和周围情况动态地切换要应用的上下文模型。例如,上下文模型222保持上下文变量ctx,并且当从选择单元221获取编码数据时,读取与为每个语法元素定义的位元字符串的每个位元位置(binIdx)相对应的上下文变量ctx。上下文模型222将编码数据和所读取的上下文变量ctx提供给算术解码单元223。
当算术解码单元223获取从上下文模型222提供的编码数据和上下文变量ctx时,算术解码单元223参考上下文变量ctx的概率状态并且在CABAC常规模式下对二值化的位串的binIdx中的位元的值进行算术解码(上下文解码)。算术解码单元223将通过上下文解码生成的二值化的位串提供给选择单元225。此外,算术解码单元223将上下文解码处理后的上下文变量ctx提供给上下文模型222,并且使上下文模型222保持上下文变量ctx。
算术解码单元224在CABAC旁路模式下对从选择单元221提供的编码数据进行算术解码(旁路解码)。算术解码单元224将通过旁路解码生成的二值化的位串提供给选择单元225。
选择单元225获取标志信息isBypass并且基于isBypass的值选择要提供给多值转换单元226的二值化的位串。例如,在isBypass=0的情况下,选择单元225确定其为常规模式,获取从算术解码单元223提供的二值化的位串,并且将其提供给多值转换单元226。此外,在isBypass=1的情况下,选择单元225确定其为旁路模式,获取从算术解码单元224提供的二值化的位串,并且将其提供给多值转换单元226。
多值转换单元226获取从选择单元225提供的二值化的位串,使用针对每个语法元素定义的方法来将二值化的位串转换为多个值,并且生成语法元素值。多值转换单元226将语法元素值提供给解析器202。
注意,这些处理单元(选择单元221至多值转换单元226)具有任意配置。例如,每个处理单元可以包括实现以上提到的处理的逻辑电路。此外,每个处理单元可以包括例如CPU、ROM、RAM等,并且使用它们来执行程序以实现以上提到的处理。当然,每个处理单元可以具有两种配置,并且以上提到的处理的一部分可以通过逻辑电路实现,而其余部分可以通过执行程序来实现。各个处理单元的配置可以彼此独立。例如,一些处理单元可以通过逻辑电路实现以上提到的处理的一部分,并且一些其他处理单元可以执行程序以实现以上提到的处理,而另外其他处理单元可以通过逻辑电路和程序的执行二者实现以上提到的处理。
<解码处理的流程>
接下来,将参照图15的流程图描述由解码装置200执行的解码处理的流程的示例。
当开始解码处理时,在步骤S201中,解码装置200的CABAC 201执行CABAC处理,通过CABAC对输入至解码装置200的编码数据进行解码,并且生成语法元素值。在步骤S202中,解析器202执行系数数据导出处理,对语法元素值进行解析,并且导出与图像数据相对应的系数数据。解析器202将导出的系数数据输出至解码装置200的外部。
当步骤S202的处理结束时,解码处理结束。
<CABAC处理的流程>
接下来,将参照图16的流程图描述在图15的步骤S201中执行的CABAC处理的流程的示例。
当开始CABAC处理时,在步骤S221中,CABAC 201的选择单元221读取与为每个语法元素定义的bin字符串的每个位元位置(binIdx)相对应的上下文变量ctx以及指示其是否为旁路模式的标志isBypass。
在步骤S222中,选择单元221确定其是否为旁路模式。在isBypass=0并且确定其为常规模式的情况下,处理前进至步骤S223。
在步骤S223中,算术解码单元223执行上下文解码。也就是说,算术解码单元223参考上下文变量ctx的概率状态在CABAC常规模式下对编码数据进行解码,并且生成在位元字符串(synBins)的位元位置(binIdx)处的位元的值。当步骤S223的处理结束时,处理前进至步骤S225。
此外,在isBypass=1并且在步骤S222中确定其为旁路模式的情况下,处理前进至步骤S224。
在步骤S224中,算术解码单元224执行旁路解码。也就是说,算术解码单元224在CABAC旁路模式下对编码数据进行解码,并且生成在位元字符串(synBins)的位元位置(binIdx)处的位元的值。当步骤S224的处理结束时,处理前进至步骤S225。
在步骤S225中,选择单元225确定是否满足预定中断条件A。中断条件A是基于从binIdx=0至binIdx=k(当前binIdx位置k)的位元字符串的值以及关于每个语法元素的二值化方法定义的。
在确定不满足中断条件A的情况下,处理返回至步骤S221,并且执行步骤S221和随后步骤的处理,以生成下一个位元位置(binIdx)的值。也就是说,针对每个位元位置(binIdx)执行步骤S221至S225的处理。
然后,在步骤S225中,在确定满足中断条件A的情况下,处理前进至步骤S226。
在步骤S226中,多值转换单元226通过为每个语法元素定义的多值转换处理来从位元字符串(synBins)中导出语法元素值(syncVal)。
在步骤S227中,多值转换单元226将所导出的语法元素值(syncVal)提供给解析器202。
通过以这种方式执行CABAC处理,可以对编码数据进行解码并且可以生成语法元素值。
<系数数据导出处理的流程>
接下来,将参照图17的流程图描述在图15的步骤S202中执行的系数数据导出处理的流程的示例。该系数数据导出处理以与语法元素值导出处理(图7)的流程基本上类似的流程执行。也就是说,系数数据导出处理(图17中的步骤S251至S259)的每个步骤的处理以与语法元素值导出处理(图7的步骤S121至S129)的每个处理的方式基本上类似的方式执行。
然而,解析器202在步骤S251中对处理目标块中的子块系数标志(coded_sub_block_flag)进行解码,例如图9从顶部起第二行至第十一行中所示。当步骤S251的处理结束时,处理前进至步骤S252。
此外,在步骤S258中,解析器202对关于处理目标子块的语法元素的值进行解析以不超过上下文编码的位元数量的上限值,并且导出系数数据。该处理对应于图10和后续附图中示出的语法。当步骤S258的处理结束时,处理前进至步骤S259。
通过执行如上所述的每个步骤的处理,解析器202可以使每个子块的上下文编码的位元数量的限制可变。例如,可以将分派给处理目标块中的零子块的上下文编码的位元数量分配给非零子块。因此,也可以使用分派给零子块的上下文编码的位元数量。因此,可以抑制编码效率降低。
注意,通过在针对每个子块的处理之前对子块系数标志(coded_sub_block_flag)进行解码,并通过对零子块的数量和非零子块的数量进行计数,可以更自由地分配额外上下文编码的位元数量(可以减少对分配的限制)。
此外,通过关闭如上所述的对块(例如,TU)中的上下文编码的位元数量的管理,可以抑制处理量增加。
<3.第二实施方式>
<方法#2>
已经在第一实施方式中描述了方法#1,但是本技术不限于该方法。例如,可以在非零子块内共享上下文编码的位元的最大数量,如图18中的表的顶行中所示的。
也就是说,共享如非专利文件1中描述的方法中的在为每个子块统一地设置上下文编码的位元数量的上限值的情况下分派给每个非零子块的上下文编码的位元数量。
例如,如图18中示出的表的从顶部起第二行中所示的,子块系数标志(coded_sub_block_flag)被置于现有循环之外并使其独立。也就是说,首先对TU中的所有子块的子块系数标志进行解析。
然后,对coded_sub_block_flag=1的子块即非零子块进行计数。然后,非零子块的数量×一个子块的上下文编码的位元数量被共享。
此外,在TU(预定单元)内关闭上下文编码的位元数量的管理。也就是说,为每个块分配如上所述的上下文编码的位元数量。
如此,如图18中示出的表从顶部起第三行中所示的,可以将非零子块中的额外上下文编码的位元数量用作另一非零子块中的上下文编码的位元数量,并且可以抑制编码效率降低。换言之,可以抑制解码图像的图像质量降低。
例如,如图19的A中所示,在为每个子块设置30个位元的限制的情况下,即使当在作为非零子块的子块11-1中仅生成24个位元时,距达到上限值的6个位元也不能转到另一非零子块。因此,即使在作为非零子块的子块11-4中,上下文编码的位元数量也不能增加超过作为上限值的30个位元。
另一方面,在方法#2的情况下,如图19的B中所示,作为非零子块的子块11-1中的额外上下文编码的位元数量(在该示例中为“6”)可以分派给作为非零子块的子块11-4。也就是说,在那些非零子块中,可以共享上下文编码的位元数量,并且根据分派,可以生成30个位元或更多的语法元素值。因此,可以抑制编码效率的降低。
<语法元素值导出处理的流程>
同样在这种情况下,编码装置100的配置类似于第一实施方式的情况(图4)。此外,CABAC 102的配置类似于第一实施方式的情况(图5)。此外,由编码装置100执行的编码处理的流程类似于第一实施方式的情况(图6)。此外,CABAC处理的流程类似于第一实施方式的情况(图12)。
将参照图20的流程图描述在这种情况下的语法元素值导出处理的流程的示例。图21至图24是示出残差编码的语法的示例的图。必要时将结合这些附图给出描述。注意,在图21至图24的语法中,阈值(TH1至TH3)可以具有例如以下所述的值。
TH1=6,TH2=28,TH3=3。
当然,每个阈值的值是任意的并且不限于该示例。
当开始语法元素值导出处理时,定序器101在步骤S301中对处理目标块中的子块系数标志(coded_sub_block_flag)进行编码,例如图22从顶部起第一行至第十行中所示。
在步骤S302中,定序器101基于子块系数标志的值对非零子块的数量(numNonZeroSbk)进行计数,例如图22从顶部起第十二行至第十五行中所示。也就是说,定序器101对要处理的块的coded_sub_block_flag=1的子块的数量进行计数。
在步骤S303中,定序器101为每个子块的上下文编码的位元数量设置临时上限值(remBinPass1Tmp),例如图22从顶部起第十七行和第十八行中所示。例如,在图19的情况下,与图3的情况类似,每个子块的上下文编码的位元的最大数量为64个位元。定序器101将该64个位元设置给以上提到的临时上限值(remBinPass1Tmp)。也就是说,可以基于子块的大小设置该临时上限值(remBinPass1Tmp)。
在步骤S304中,定序器101基于非零子块的数量(numNonZeroSbk)设置可以在全部非零子块中分派的额外上下文编码的位元数量(remBinPass1),例如图22从顶部起第十九行和第二十行中所示。可以在全部非零子块中分派的额外上下文编码的位元数量(remBinPass1)是从在步骤S302中计数的非零子块的数量(numNonZeroSbk)和在步骤S303中设置的临时上限值(remBinPass1Tmp)的乘积、即分派给每个非零子块的临时上限值(remBinPass1Tmp)之和导出的。
接下来,处理进行至针对每个子块的处理。也就是说,处理进行至语法中的针对每个子块的for语句的循环中的处理。在步骤S305中,定序器101从处理目标块中的子块中选择处理目标子块(subSetId=i)。
在步骤S306中,定序器101导出关于处理目标子块的语法元素的值,使得在处理目标块的每个子块中生成的位元数量之和不超过在步骤S304中导出的可以在全部非零子块中分派的额外上下文编码的位元数量(remBinPass1)。该处理对应于图23和后续附图中示出的语法。
在步骤S307中,定序器101确定是否所有子块已被处理。在确定在处理目标块中存在未处理的子块的情况下,处理返回至步骤S305,并且重复步骤S305和后续步骤的处理。也就是说,针对处理目标块中的每个子块执行步骤S305至步骤S307的每个处理。然后,在步骤S307中,在确定处理目标块中的所有子块已被处理的情况下,语法元素值导出处理结束,并且处理返回至图6。
通过执行如上所述的每个步骤的处理,定序器101可以使每个子块的上下文编码的位元数量的限制可变。例如,可以在处理目标块中的非零子块之间分配上下文编码的位元数量。因此,可以抑制编码效率降低。
注意,通过在针对每个子块的处理之前对子块系数标志(coded_sub_block_flag)进行编码,并通过对零子块的数量和非零子块的数量进行计数,可以更自由地分配额外上下文编码的位元数量(可以减少对分配的限制)。
此外,通过关闭如上所述的对块(例如,TU)中的上下文编码的位元数量的管理,可以抑制处理量增加。
<系数数据导出处理的流程>
同样在这种情况下,解码装置200的配置类似于第一实施方式(的情况图13)。此外,CABAC 201的配置类似于第一实施方式的情况(图14)。此外,由解码装置200执行的解码处理的流程类似于第一实施方式的情况(图15)。此外,CABAC处理的流程类似于第一实施方式的情况(图16)。
将参照图25的流程图描述在这种情况下的系数数据导出处理的流程的示例。该系数数据导出处理以与语法元素值导出处理(图20)的流程基本上类似的流程执行。也就是说,系数数据导出处理(图25的步骤S321至S327)的每个步骤的处理以与语法元素值导出处理(图20的步骤S301至S307)的每个处理的处理基本上类似的方式执行。
然而,解析器202在步骤S321中对处理目标块中的子块系数标志(coded_sub_block_flag)进行解码,例如图22从顶部起第一行至第十行中所示。当步骤S321的处理结束时,处理前进至步骤S322。
此外,在步骤S326中,解析器202通过以下操作来导出系数数据:对关于处理目标子块的语法元素值进行解析,使得在处理目标块的每个子块中生成的位元数量之和不超过在步骤S324中导出的可以在全部非零子块中分派的额外上下文编码的位元数量(remBinPass1)。该处理对应于图23和后续附图中示出的语法。当步骤S326的处理结束时,处理前进至步骤S327。
通过执行如上所述的每个步骤的处理,解析器202可以使每个子块的上下文编码的位元数量的限制可变。例如,可以在处理目标块中的非零子块之间分配上下文编码的位元数量。因此,可以抑制编码效率降低。可以将分派给处理目标块中的零子块的上下文编码的位元数量分配给非零子块。因此,也可以使用分派给零子块的上下文编码的位元数量。因此,可以抑制编码效率降低。
注意,通过在针对每个子块的处理之前对子块系数标志(coded_sub_block_flag)进行解码,并通过对零子块的数量和非零子块的数量进行计数,可以更自由地分配额外上下文编码的位元数量(可以减少对分配的限制)。
此外,通过关闭如上所述的对块(例如,TU)中的上下文编码的位元数量的管理,可以抑制处理量增加。
<4.第三实施方式>
<方法#3>
此外,例如,非零子块中的额外上下文编码的位元数量可以在另一非零子块内使用,如图26中表的顶行中所示。
例如,如图26中示出的表从顶部起第二行中所示,在存在未达到每个子块的上下文编码的位元数量的最大值的子块的情况下,对额外上下文编码的位元数量进行池化并将其用于下一个及后续子块。
如此,可以在不离开现有循环的情况下应用子块系数标志,如在从图26中示出的表从顶部起第三行中所示。也就是说,可以抑制语法中的变化量的增加,并且可以更容易地应用本技术。
此外,可以将非零子块中的额外上下文编码的位元数量用作另一非零子块中的上下文编码的位元数量,并且可以抑制编码效率降低。换言之,可以抑制解码图像的图像质量降低。
例如,如图27的A中所示,在为每个子块设置30个位元的限制的情况下,即使当在子块11-3中仅生成16个位元时,子块11-4也经受30个位元的限制。也就是说,差上限值的14个位元不能转到下一个及后续子块。
另一方面,在方法#3的情况下,如图27的B中所示,可以将子块11-3中的额外上下文编码的位元数量(在该示例中为“14”)分派给接下来要处理的子块11-4。也就是说,在子块11-4中,可以生成30个位元或更多的语法元素值。因此,可以抑制编码效率降低。
<语法元素值导出处理的流程>
同样在这种情况下,编码装置100的配置类似于第一实施方式的情况(图4)。此外,CABAC 102的配置类似于第一实施方式的情况(图5)。此外,由编码装置100执行的编码处理的流程类似于第一实施方式的情况(图6)。此外,CABAC处理的流程类似于第一实施方式的情况(图12)。
将参照图28的流程图描述在这种情况下的语法元素值导出处理的流程的示例。图29至图32是示出残差编码的语法的示例的图。必要时将结合这些附图给出描述。注意,在图29至图32的语法中,阈值(TH1至TH3)可以具有例如以下所述的值。
TH1=6,TH2=28,TH3=3。
当然,每个阈值的值是任意的并且不限于该示例。
当开始语法元素值导出处理时,在步骤S341中,定序器101对可以分派给下一个子块的额外上下文编码的位元数量(remBinPass1Next)进行初始化(例如,remBinPass1Next=0),例如图30从顶部起第一行和第二行中所示。也就是说,默认情况下,额外上下文编码的位元数量为零,这指示不能将位元数量添加到下一个子块。
接下来,处理进行至针对每个子块的处理。也就是说,处理进行至语法中的针对每个子块的for语句的循环中的处理。在步骤S342中,定序器101从处理目标块中的子块中选择处理目标子块(subSetId=i)。
定序器101在步骤S343中对关于处理目标子块的子块系数标志(coded_sub_block_flag)进行编码,例如图30从顶部起第三行至第十一行中所示。
在步骤S344中,定序器101为处理目标子块的上下文编码的位元数量设置临时上限值(remBinPass1Tmp),例如图30从顶部起第十四行和第十五行中所示。例如,在图27的情况下,与图3的情况类似,每个子块的上下文编码的位元的最大数量为64个位元。定序器101将该64个位元设置给以上提到的临时上限值(remBinPass1Tmp)。也就是说,可以基于子块的大小设置该临时上限值(remBinPass1Tmp)。
在步骤S345中,定序器101基于在步骤S344中为处理目标子块设置的临时上限值(remBinPass1Tmp)和可以分派给下一个子块的紧在前处理过的子块的额外上下文编码的位元数量(remBinPass1Next)来设置上下文编码的位元数量的上限值(remBinPass1),例如图30从顶部起第十六行和第十七行中所示。例如,处理目标子块的上下文编码的位元数量的上限值(remBinPass1)是从临时上限值(remBinPass1Tmp)与可以分派给下一个子块的额外上下文编码的位元数量(remBinPass1Next)之和中导出的。
在步骤S346中,定序器101导出语法元素值,以不超过在步骤S345中为处理目标子块设置的上下文编码的位元数量的上限值(remBinPass1)。
在步骤S347中,定序器101将处理目标子块的额外上下文编码的位元数量(导出语法元素值后的remBinPass1)设置给可以分派给下一个子块的额外上下文编码的位元数量(remBinPass1Next),例如图31从顶部起第二十一行和第二十二行中所示。
在步骤S348中,定序器101确定是否所有子块已被处理。在确定在处理目标块中存在未处理的子块的情况下,处理返回至步骤S342,并且重复步骤S342和后续步骤的处理。也就是说,针对处理目标块中的每个子块执行步骤S342至步骤S348的每个处理。然后,在步骤S348中,在确定处理目标块中的所有子块已被处理的情况下,语法元素值导出处理结束,并且处理返回至图6。
通过执行如上所述的每个步骤的处理,定序器101可以使每个子块的上下文编码的位元数量的限制可变。例如,处理目标子块的额外上下文编码的位元数量可以用作要处理的下一个和后续子块的上下文编码的位元数量。因此,可以抑制编码效率降低。
注意,通过关闭如上所述的对块(例如,TU)中的上下文编码的位元数量的管理,可以抑制处理量增加。
<系数数据导出处理的流程>
同样在这种情况下,解码装置200的配置类似于第一实施方式的情况(图13)。此外,CABAC 201的配置类似于第一实施方式的情况(图14)。此外,由解码装置200执行的解码处理的流程类似于第一实施方式的情况(图15)。此外,CABAC处理的流程类似于第一实施方式的情况(图16)。
将参照图33的流程图描述在这种情况下的系数数据导出处理的流程的示例。该系数数据导出处理以与语法元素值导出处理(图28)的流程基本上类似的流程执行。也就是说,系数数据导出处理的每个步骤(图33的步骤S361至S368)的处理以与语法元素值导出处理的每个处理(图28的步骤S341至S348)的处理基本上类似的方式执行。
然而,解析器202在步骤S363中对处理目标子块中的子块系数标志(coded_sub_block_flag)进行解码,例如图30从顶部起第三行至第十一行中所示。当步骤363的处理结束时,处理前进至步骤S364。
此外,在步骤S366中,解析器202通过以下操作来导出系数数据:对语法元素值进行解析,以不超过在步骤S365中为处理目标子块设置的上下文编码的位元数量的上限值(remBinPass1)。当步骤S366的处理结束时,处理前进至步骤S367。
通过执行如上所述的每个步骤的处理,解析器202可以使每个子块的上下文编码的位元数量的限制可变。例如,处理目标子块的额外上下文编码的位元数量可以用作要处理的下一个和后续子块的上下文编码的位元数量。因此,可以抑制编码效率降低。
注意,通过关闭如上所述的对块(例如,TU)中的上下文编码的位元数量的管理,可以抑制处理量增加。
<5.第四实施方式>
<方法#4>
只要没有矛盾,上述方法可以任意组合。例如,如图34的表的顶行所示,可以以组合的方式使用上述方法#1至#3。
例如,如图34所示的表的从顶部起第二行所示,子块系数标志(coded_sub_block_flag)被置于现有循环之外并使其独立。也就是说,与方法#1和#2中一样,首先对TU中的所有子块的子块系数标志进行解析。
然后,与方法#1和#2中一样,对coded_sub_block_flag=0的子块即零子块计数。
然后,与方法#1中一样,将零子块的数量×一个子块的上下文编码的位元数量转(添加)到非零子块。此外,与方法2一样,分派给每个非零子块的上下文编码的位元数量被共享。此外,与方法#3中一样,在处理目标子块中生成的额外上下文编码的位元数量被池化并用于下一个和后续的子块。
此外,与方法#1至#3中一样,在TU(预定单元)内关闭上下文编码的位元数量的管理。也就是说,如上所述的上下文编码的位元数量被分配给每个块。
如此,如图34所示的表从顶部起的第三行中所示,可以获得上述方法#1至#3的每种方法的效果。因此,可以抑制编码效率降低。换言之,可以抑制解码图像的图像质量降低。
例如,如图35的A所示,在对每个子块设置30个位元的限制的情况下,即使当子块11-2和子块11-3是零子块时,它们的额外上下文编码的位元数量在作为非零子块的子块11-1或子块11-4中不能使用。此外,额外上下文编码的位元数量不能在非零子块之间共享。此外,即使当在作为非零子块的子块11-1中仅生成了20个位元时,到上限值的10个位元也不能转到子块11-4,子块11-4是要被处理的另一个下一个和随后的非零子块。因此,子块11-4受到30个位元的限制,并且上下文编码的位元数量不能增加到超过作为上限值的30个位元。
另一方面,在方法#4的情况下,如图35的B所示,作为零子块的子块11-2和子块11-3的额外上下文编码的位元数量可以被分派给作为非零子块的子块11-1或子块11-4。此外,上下文编码的位元数量可以在作为非零子块的子块11-1和子块11-4之间共享。此外,可以将子块11-1的额外上下文编码的位元数量(在图35的A的情况下为10个位元)分派给子块11-4。也就是说,在子块中,可以生成30个位元或更多个位元的语法元素值。因此,可以抑制编码效率降低。
<语法元素值导出处理的流程>
同样在这种情况下,编码装置100的配置类似于第一实施方式的情况(图4)。此外,CABAC 102的配置类似于第一实施方式的情况(图5)。另外,由编码装置100执行的编码处理的流程类似于第一实施方式的情况(图6)。此外,CABAC处理的流程类似于第一实施方式的情况(图12)。
将参考图36和图37的流程图描述在这种情况下的语法元素值导出处理的流程的示例。图38至图41是示出残差编码的语法的示例的图。必要时将结合这些附图给出描述。注意,在在图38至图41的语法中,阈值(TH1至TH4)可以具有例如以下所述的值。
TH1=6,TH2=28,TH3=2,TH4=4
当然,每个阈值的值是任意的,并且不限于该示例。
当开始语法元素值导出处理时,定序器101在图36的步骤S381中对处理目标块中的子块系数标志(coded_sub_block_flag)进行编码,例如图39从顶部起第一行至第十行中所示。
在步骤S382中,定序器101基于所示的子块系数标志的值对非零子块的数量(numNonZeroSbk)进行计数,例如图39从顶部起第十二行至第十五行中所示。也就是说,定序器101对要处理的块的coded_sub_block_flag=1的子块的数量进行计数。
在步骤S383中,定序器101对于所示的每个子块的上下文编码的位元数量设置临时上限值(remBinPass1Tmp),例如图39从顶部起第十七和第十八行中所示。类似于方法#1的情况,可以基于子块的大小来设置该临时上限值(remBinPass1Tmp)。
在步骤S384中,定序器101基于零子块的数量(numZeroSBk)设置全部零子块的额外上下文编码的位元数量(remBinPass1InZeroSbk),例如图39从顶部起第十九行和第二十行中所示。类似于方法#1的情况,可以根据在步骤S382中计数的非零子块的数量(numNonZeroSbk)来确定零子块的数量(numZeroSBk),并且通过零子块的数量(numZeroSBk)与临时上限值(remBinPass1Tmp)的乘积来导出全部零子块的额外上下文编码的位元数量(remBinPass1InZeroSbk)。
在步骤S385中,定序器101设置每个非零子块可以另外分派的额外上下文编码的位元的平均数量(remBinPass1Extra),例如图39从顶部起第二十一行和第二十二行中所示。可以通过将在步骤S384中导出的全部零子块的额外上下文编码的位元数量(remBinPass1InZeroSbk)除以零子块的数量(numZeroSBk)来导出该额外上下文编码的位元的平均数量(remBinPass1Extra)。注意,为了避免划分,可以使用查找表来导出额外上下文编码的位元的平均数量(remBinPass1Extra)。
在步骤S386中,定序器101初始化可以分派给所示的下一个子块(例如,remBinPass1Next=0)的额外上下文编码的位元数量(remBinPass1Next=0),例如图39从顶部起第二十四行和第二十五行中所示。也就是说,默认情况下,额外上下文编码的位元数量为零,这表示不能将位元数量添加到下一个子块。
当步骤S386的处理结束时,处理前进至图37。
接下来,处理进行至针对每个子块的处理。也就是说,处理进行至语法中的每个子块的for语句的循环中的处理。在步骤S391中,定序器101从处理目标块中的子块中选择处理目标子块(subSetId=i)。
在步骤S392中,定序器101基于临时上限值(remBinPass1Tmp)、可以从零子块中另外分派的额外上下文编码的位元的平均数量(remBinPass1Extra)、以及前一个子块的额外上下文编码的位元数量来设置用于所示的处理目标子块的上下文编码的位元数量的上限值(remBinPass1),例如图40从顶部起第五行和第六行中所示。在图40的示例的情况下,从临时上限值(remBinPass1Tmp)的总和、可以从零子块另外分派的额外上下文编码的位元的平均数量(remBinPass1Extra)、以及可以分配给下一个子块(remBinPass1Next)的额外上下文编码的位元数量之和来导出上下文编码的位元数量的上限值(remBinPass1)。
在步骤S393中,定序器101导出语法元素值,以不超过用于处理目标子块的上下文编码的位元数量的上限值(remBinPass1)。
在步骤S394中,定序器101将处理目标子块的额外上下文编码的位元数量(导出语法元素值后的remBinPass1)设置为可以分派给所示的下一个子块的额外上下文编码的位元数量(remBinPass1Next),例如图40从顶部起第40行和第41行中所示。
在步骤S395中,定序器101确定是否所有子块都已被处理。在确定在处理目标块中存在未处理的子块的情况下,处理返回到步骤S391,并且重复步骤S391和后续步骤的处理。也就是说,针对处理目标块中的每个子块执行步骤S391至步骤S395的每个处理。然后,在步骤S395中,在确定已经处理了处理目标块中的所有子块的情况下,语法元素值导出处理结束,并且处理返回图6。
通过执行如上所述的每个步骤的处理,定序器101可以限制每个子块变量的上下文编码的位元数量。也就是说,可以获得上述方法#1至#3的每种方法的效果。因此,可以抑制编码效率降低。换言之,可以抑制解码图像的图像质量降低。
<系数数据导出处理的流程>
同样在这种情况下,解码装置200的配置类似于第一实施方式的情况(图13)。此外,CABAC 201的配置类似于第一实施方式的情况(图14)。此外,由解码装置200执行的解码处理的流程类似于第一实施方式的情况(图15)。此外,CABAC处理的流程类似于第一实施方式的情况(图16)。
将参照图42和图43的流程图描述在这种情况下的系数数据导出处理的流程的示例。该系数数据导出处理以与语法元素值导出处理(图36和图37)大致相似的流程执行。也就是说,以与语法元素值导出处理(图36的步骤S381至S386和图37的步骤S391至S395)的每个处理的处理基本相似的方式执行系数数据导出处理(图42的步骤S411至S416和图43的步骤S421至S425)的每个步骤的处理。
然而,解析器202在图42的步骤S411中对处理目标子块中的子块系数标志(coded_sub_block_flag)进行解码,例如图39从顶部起第一行至第十行中所示。当步骤S411的处理结束时,处理进行至步骤S412。
此外,在图43的步骤S423中,解析器202通过解析语法元素值来导出系数数据以不超过步骤S422中对于处理目标子块设置的上下文编码的位元数量的上限值(remBinPass1)。当步骤S423的处理结束时,处理进行至步骤S424。
通过执行如上所述的每个步骤的处理,解析器202可以对每个子块变量的上下文编码的位元数量进行限制。也就是说,可以获得上述方法#1至#3的每种方法的效果。因此,可以抑制编码效率降低。换言之,可以抑制解码图像的图像质量降低。
<6.第五实施方式>
<方法#5>
此外,例如,作为如图44的表的顶行中所示的方法#1的应用,可以根据子块的位置来设置用于分派额外上下文编码的位元数量的优先级。
例如,如图44中所示的表的从顶部起第二行中所示,在低范围子块的情况下,可以分派额外上下文编码的位元的大的数量,而在如果是高范围子块,则可以分派额外上下文编码的位元的较少数量。此外,相反地,在高范围子块的情况下,可以分派额外上下文编码的位元的大的数量,而在低范围子块的情况下,可以分派额外上下文编码的位元的较少数量。
如此,如图44中所示的表的从顶部起第三行中所示,额外上下文编码的位元数量可以用作另一个子块中的上下文编码的位元数量,并且可以抑制编码效率降低。换言之,可以抑制解码图像的图像质量降低。
例如,在图45的A的情况下,比作为高范围子块的子块11-4的额外上下文编码的位元数量更大的额外上下文编码的位元数量被分派给作为低范围子块的子块11-1。通常,通过对图像数据进行正交变换而获得的系数数据在低范围而不是在高范围中被收集。因此,在这种情况下,可以通过如图45的A的示例中那样向低范围子块分派额外上下文编码的位元的大的数量来进一步抑制编码效率降低。
此外,例如,在图45的B的情况下,比作为低范围子块的子块11-1的额外上下文编码的位元数量大的额外上下文编码的位元数量被分派给作为高范围子块的子块11-4。当跳过正交变换时,例如,如在无损编码的情况下,与执行正交变换的情况相比,高范围系数数据通常趋于更大。此外,例如,在具有许多边缘分量的图像的情况下,高范围系数数据趋于变大。在这种情况下,可以通过如图45的B的示例中那样向高范围子块分派额外上下文编码的位元的大的数量来进一步抑制编码效率降低。
同样在这种情况下,编码装置100的配置类似于第一实施方式的情况(图4)。此外,CABAC 102的配置类似于第一实施方式的情况(图5)。另外,由编码装置100执行的编码处理的流程类似于第一实施方式的情况(图6)。此外,CABAC处理的流程类似于第一实施方式的情况(图12)。
此外,语法元素值导出处理基本上类似于第一实施方式的情况(图7)。在步骤S127中,如上所述,当对于处理目标子块设置上下文编码的位元数量的上限值时,仅需要通过考虑处理目标子块的位置来设置上限值。
此外,同样在这种情况下,解码装置200的配置类似于第一实施方式的情况(图13)。此外,CABAC 201的配置类似于第一实施方式的情况(图14)。此外,由解码装置200执行的解码处理的流程类似于第一实施方式的情况(图15)。此外,CABAC处理的流程类似于第一实施方式的情况(图16)。
此外,系数数据导出处理基本上类似于第一实施方式的情况(图17)。在步骤S257中,如上所述,当对于处理目标子块设置上下文编码的位元数量的上限值时,仅需要通过考虑处理目标子块的位置来设置上限值。
<7.第六实施方式>
<方法#6>
此外,例如,如图46的表的顶行所示,用于管理上下文编码的位元数量的单元可以被扩展到大于TU的大小。
例如,如从图46中所示的表的从顶部起第二行中所示,可以例如针对每个CU、VPDU或CTU来管理额外上下文编码的位元数量。也就是说,可以在CU、VPDU或CTU中的非零子块之间分配位元数量,以设置分派给处理目标子块的位元数量的上限值。
如此,可以在更大的范围内共享额外上下文编码的位元数量。也就是说,如图46所示的表的从顶部起第三行所示,可以以更高的自由度分派上下文编码的位元数量。因此,可以抑制编码效率降低。换言之,可以抑制解码图像的图像质量降低。
例如,如图47的A所示,假设CU 400包括4×4个子块401(子块401-1至401-16)。此外,假设每个子块按照如图中箭头所示的莫顿码(Mortoncode)顺序进行处理。
在如图47的B所示的每个子块30个位元的限制的情况下,即使当存在零子块时,也不能在下一子块和随后的子块中使用额外上下文编码的位元数量。因此,在所有子块中,上下文编码的位元数量被限制为30个位元或更少。
因此,方法#6被应用于在CU 400内共享额外上下文编码的位元数量。在这种情况下,如图47的C所示,可以将在处理目标子块中生成的额外上下文编码的位元数量分派给要处理的下一个和后续子块。因此,在子块401中,可以生成30或更多个位元的语法元素值。因此,可以抑制编码效率降低。特别地,在方法#6的情况下,由于用于共享额外上下文编码的位元数量的范围比TU的范围宽,因此可以以更高的自由度分派上下文编码的位元数量。
同样在这种情况下,编码装置100的配置类似于第一实施方式的情况(图4)。此外,CABAC 102的配置类似于第一实施方式的情况(图5)。另外,由编码装置100执行的编码处理的流程类似于第一实施方式的情况(图6)。此外,CABAC处理的流程类似于第一实施方式的情况(图12)。
此外,语法元素值导出处理基本上类似于第一实施方式的情况(图7)。只要处理目标块是大于TU的数据单元(例如CU、VPDU或CTU)就足够了。
此外,同样在这种情况下,解码装置200的配置类似于第一实施方式的情况(图13)。此外,CABAC 201的配置类似于第一实施方式的情况(图14)。此外,由解码装置200执行的解码处理的流程类似于第一实施方式的情况(图15)。此外,CABAC处理的流程类似于第一实施方式的情况(图16)。
此外,系数数据导出处理基本上类似于第一实施方式的情况(图17)。只要处理目标块是大于TU的数据单元(例如CU、VPDU或CTU)就足够了。
<8.第七实施方式>
<方法#7>
此外,例如,如图48的表的顶行中所示,可以省略(不设置)语法结构中的上下文编码的位元数量的最大值的上限。
例如,如图48所示的表的从顶部起第二行中所示,可以通过级别限制、条件表达式等来限制生成的位元数量。此外,代替子块单元,可以以大于子块的数据单元(例如,TU单元、CU单元、VPDU单元、CTU单元、片单元、图片单元等)限制生成量。
如此,如图48所示的表的从顶部起第三行中所示,当生成本地系数数据时,许多系数可以由标志表示。因此,可以抑制编码效率降低。换言之,可以抑制解码图像的图像质量降低。
例如,如图49的A所示,在对于每个子块设置28个位元的限制的情况下,即使当生成额外上下文编码的位元数量时,也不能在另一个子块中使用所生成的额外上下文编码的位元数量。因此,例如,即使在子块11-4中,上下文编码的位元数量也不能增加到超过作为上限值的28个位元。
另一方面,在方法#7的情况下,如图49的B所示,可以例如在CU单元中共享上下文编码的位元数量。因此,可以对于子块分派28个位元或更多上下文编码的位元。因此,可以抑制编码效率降低。
<语法元素值导出处理的流程>
同样在这种情况下,编码装置100的配置类似于第一实施方式的情况(图4)。此外,CABAC 102的配置类似于第一实施方式的情况(图5)。此外,由编码装置100执行的编码处理的流程类似于第一实施方式的情况(图6)。此外,CABAC处理的流程类似于第一实施方式的情况(图12)。
将参照图50的流程图描述在这种情况下的语法元素值导出处理的流程的示例。注意,这里,作为示例将描述在CU单元中共享上下文编码的位元数量的情况。此外,图51至图53是示出残差编码的语法的示例的图。必要时将结合这些附图给出描述。
当语法元素值导出处理开始时,在步骤S441中,定序器101基于每个系数可以分派的上下文编码的位元数量(“*7)>>2”)和CU大小(log2TbWidth,log2TbHeight)来设置可以在全部CU中分派的上下文编码的位元数量的上限值(remBinsPass1),例如图51从顶部起第21行中所示。
接下来,处理进行至针对每个子块的处理。在步骤S442中,定序器101从处理目标CU中的子块中选择处理目标子块。
在步骤S443中,定序器101导出处理目标子块的语法元素值,以不超过可以在步骤S441中设置的全部CU中分派的上下文编码的位元数量的上限值(remBinsPass1)。
在步骤S444中,定序器101确定是否所有子块都已被处理。在确定在处理目标CU中存在未处理的子块的情况下,处理返回到步骤S442,并且重复步骤S442和后续步骤的处理。也就是说,针对处理目标CU中的每个子块执行步骤S442至步骤S444的每个处理。然后,在步骤S444中,在确定已经处理了处理目标CU中的所有子块的情况下,语法元素值导出处理结束,并且处理返回图6。
通过执行如上所述的每个步骤的处理,定序器101可以限制每个子块变量的上下文编码的位元数量。例如,可以在CU单元中共享上下文编码的位元数量。因此,可以抑制编码效率降低。
注意,如上所述,通过关闭对上述块(例如,CU)中的上下文编码的位元数量的管理,可以抑制处理量增加。
<系数数据导出处理的流程>
同样在这种情况下,解码装置200的配置类似于第一实施方式的情况(图13)。此外,CABAC 201的配置类似于第一实施方式的情况(图14)。此外,由解码装置200执行的解码处理的流程类似于第一实施方式的情况(图15)。此外,CABAC处理的流程类似于第一实施方式的情况(图16)。
将参照图54的流程图描述在这种情况下的系数数据导出处理的流程的示例。该系数数据导出处理以与语法元素值导出处理(图50)基本相似的流程来执行。也就是说,系数数据导出处理(图54的步骤S461至S464)的每个步骤的处理以与语法元素值导出处理(图50的步骤S441至S444)的每个处理的处理基本相似的方式执行。
然而,在步骤S463中,解析器202通过解析用于处理目标子块的语法元素值来导出系数数据,以不超过可以在步骤S461中设置的全部CU中分派的上下文编码的位元数量的上限值(remBinsPass1)。当步骤S463的处理结束时,处理进行至步骤S464。
通过如上所述执行每个步骤的处理,解析器202可以对每个子块变量的上下文编码的位元数量进行限制。例如,可以在CU单元中共享上下文编码的位元数量。因此,可以抑制编码效率降低。
注意,如上所述,通过关闭对上述块(例如,CU)中的上下文编码的位元数量的管理,可以抑制处理量增加。
<9.第八实施方式>
<方法#8>
此外,例如,如图55的表的顶行中所示,可以省略(不设置)语法结构中的上下文编码的位元数量的最大值的上限。
此时,例如,如图55所示的表的从顶部起第二行中所示,可以将在零子块之后的非零子块中可以生成的位元数量的最大值设置为上限值。此外,在零子块是连续的情况下,可以将在相同数量的非零子块中可以生成的位元数量的最大值设置为上限值。也就是说,可以将与零子块相同数量的非零子块中可以生成的位元数量的最大值设置为上限值。
如此,如图55中所示的表的从顶部第三行中所示,当生成本地系数数据时,许多系数可以由标志表示。因此,可以抑制编码效率降低。换言之,可以抑制解码图像的图像质量降低。
例如,在图56的A的情况下,每个子块有28个位元的限制。子块11-1和11-3是零子块,生成了额外上下文编码的位元数量(28个位元)。然而,在这种情况下,额外上下文编码的位元数量不能在另一个子块中使用。也就是说,在作为非零子块的子块11-2和11-4中,不能分派大于上限值即28个位元数量的位元。
另一方面,在方法#8的情况下,可以将可以生成的位元数量的最大值设置为在零子块之后的非零子块中的上限值。例如,如图56的B所示,由于子块11-1是零子块,所以可以将在一个子块中生成的位元数量(48个位元)的最大值作为上限值分派给作为下一个要处理的非零子块的子块11-2。类似地,由于子块11-3是零子块,因此可以将在一个子块中产生的位元数量(48个位元)的最大值作为上限值分派给作为接下来要处理的非零子块的子块11-4。
此外,在每个子块有28个位元的限制的情况下,即使在如图56的C所示子块11-1和子块11-2是零子块的情况下,也不能在作为非零子块的子块111-3或子块11-4中使用额外上下文编码的位元数量。
另一方面,在方法#8的情况下,在子块的这种布置的情况下,如图56的D所示,子块11-1和11-2是连续的零子块。因此,在两个要处理的下一个和随后的非零子块中,可以将一个子块中生成的位元数量的最大值分派为上限值。也就是说,在子块11-3和11-4中,可以将在一个子块中生成的位元数量(48个位元)的最大值分派为上限值。
<语法元素值导出处理的流程>
同样在这种情况下,编码装置100的配置类似于第一实施方式的情况(图4)。此外,CABAC 102的配置类似于第一实施方式的情况(图5)。另外,由编码装置100执行的编码处理的流程类似于第一实施方式的情况(图6)。此外,CABAC处理的流程类似于第一实施方式的情况(图12)。
将参考图57的流程图描述在这种情况下的语法元素值导出处理的流程的示例。
当语法元素值导出处理开始时,定序器101在步骤S481中初始化零子块的计数值。例如,定序器101将零子块的计数值设置为“0”。
接下来,处理进行至针对每个子块的处理。在步骤S482中,定序器101选择处理目标子块。
在步骤S483中,定序器101对处理目标子块的子块系数标志(coded_sub_block_flag)进行编码。
在步骤S484中,定序器101基于子块系数标志的值确定处理目标子块是否为非零块。在coded_sub_block_flag=1并且确定处理目标子块是非零子块的情况下,处理进行至步骤S485。
在步骤S485中,定序器101确定零子块的计数值是否为“0”。在确定计数值为“0”的情况下,处理进行至步骤S486。在这种情况下,将位元数量的限制应用于处理目标子块。
因此,在步骤S486中,定序器101设置处理目标子块的上下文编码的位元数量的上限值(remBinPass1)。也就是说,基于处理对象子块的位元数量的限制来设置上下文编码的位元数量的上限值(remBinPass1)。
在步骤S487中,定序器101导出语法元素值,以不超过在步骤S486中处理目标子块设置的上下文编码的位元数量的上限值(remBinPass1)。当步骤S487的处理结束时,处理进行至步骤S491。
此外,在步骤S485中确定零子块的计数值为“1”或更大的情况下,处理进行至步骤S488。
在步骤S488中,定序器101导出用于处理目标子块的语法元素值。在这种情况下,可以添加来自零子块的额外上下文编码的位元数量,并且位元数量的限制不应用于处理目标子块。也就是说,在不设置上下文编码的位元数量的上限值(remBinPass1)的情况下导出语法元素值。
在步骤S489中,定序器101将零子块的计数值递减(例如,从计数值中减去“1”)。当步骤S489的处理结束时,处理进行至步骤S491。
此外,在步骤S484中确定处理目标块是零子块的情况下,处理进行至步骤S490。在这种情况下,省略了语法元素值的导出。在步骤S490中,定序器101将零子块的计数值递增(例如,将“1”加到计数值)。当步骤S490的处理结束时,处理进行至步骤S491。
在步骤S491中,定序器101确定是否所有子块都已被处理。在确定在处理目标块中存在未处理的子块的情况下,处理返回到步骤S482,并且重复步骤S482和后续步骤的处理。也就是说,针对处理目标块中的每个子块执行步骤S482至步骤S491的每个处理。然后,在步骤S491中,在确定已经处理了处理目标块中的所有子块的情况下,语法元素值导出处理结束,并且处理返回图6。
如上所述,通过使用零子块的计数值,可以省略与零子块相同数量的非零子块的上下文编码的位元数量的上限值(remBinPass1)的设置。也就是说,通过执行如上所述的每个步骤的处理,定序器101可以限制每个子块变量的上下文编码的位元数量。因此,可以抑制编码效率降低。换言之,可以抑制解码图像的图像质量降低。
<系数数据导出处理的流程>
同样在这种情况下,解码装置200的配置类似于第一实施方式的情况(图13)。此外,CABAC 201的配置类似于第一实施方式的情况(图14)。此外,由解码装置200执行的解码处理的流程类似于第一实施方式的情况(图15)。此外,CABAC处理的流程类似于第一实施方式的情况(图16)。
将参考图58的流程图描述在这种情况下的系数数据导出处理的流程的示例。以与语法元素值导出处理(图57)基本相似的流程执行该系数数据导出处理。也就是说,以与语法元素值导出处理(图57的步骤S481至S491)的每个处理的处理基本相似的方式执行系数数据导出处理(图58的步骤S521至S531)的每个步骤的处理。
然而,解析器202在图58的步骤S523中对处理目标子块中的子块系数标志(coded_sub_block_flag)进行解码。当步骤S523的处理结束时,处理进行至步骤S524。
此外,在图58的步骤S527中,解析器202通过解析语法元素值来导出系数数据以不超过步骤S526中对于处理目标子块设置的上下文编码的位元数量的上限值(remBinPass1)。当步骤S527的处理结束时,处理进行至步骤S531。
此外,在图58的步骤S528中,解析器202通过解析用于处理目标子块的语法元素值来导出系数数据。当步骤S528的处理结束时,处理进行至步骤S529。
如上所述,通过使用零子块的计数值,可以省略与零子块相同数量的非零子块的上下文编码的位元数量的上限值(remBinPass1)的设置。也就是说,通过执行如上所述的每个步骤的处理,解析器202可以对每个子块变量的上下文编码的位元数量进行限制。因此,可以抑制编码效率降低。换言之,可以抑制解码图像的图像质量降低。
<10.第九实施方式>
<图像编码装置>
在上面,已经描述了将本技术应用于编码装置100和解码装置200的示例,但是本技术不仅可以应用于以上技术,还可以应用于任何装置、设备、系统等。例如,本技术可以应用于对图像数据进行编码的图像编码装置。
图59是示出作为应用了本技术的图像处理装置的一个方面的图像编码装置的配置示例的框图。图59所示的图像编码装置600是对移动图像的图像数据进行编码的装置。例如,图像编码装置600通过非专利文献1至12中的任何一个中描述的编码方法对移动图像的图像数据进行编码。
注意,图59示出了诸如处理单元(块)和数据流的主要内容,并且没有在图59中将其全部示出。也就是说,在图像编码装置600中,可以存在未在图59中作为块示出的处理单元,或者可以存在未在图59中作为箭头等示出的处理或数据流。
如图59所示,图像编码装置600包括控制单元601、排序缓冲器611、运算单元612、正交变换单元613、量化单元614、编码单元615、存储缓冲器616、逆量化单元617、逆正交变换单元618、运算单元619、环路滤波器单元620、帧存储器621、预测单元622和速率控制单元623。
<控制单元>
控制单元601基于外部或预定处理单元中的块大小在处理单元中将由排序缓冲器611保持的移动图像数据划分为块(CU、PU、变换块等)。此外,控制单元601基于例如速率失真优化(RDO),确定提供至每个块的编码参数(头信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、滤波器信息Finfo等)。
这些编码参数的细节将在后面描述。当控制单元601确定上述编码参数时,控制单元601将它们提供至每个块。具体地,如下所述。
头信息Hinfo被提供至每个块。
预测模式信息Pinfo被提供至编码单元615和预测单元622。
变换信息Tinfo被提供至编码单元615、正交变换单元613、量化单元614、逆量化单元617和逆正交变换单元618。
滤波器信息Finfo被提供至环路滤波器单元620。
<排序缓冲器>
移动图像数据的每个场(输入图像)以再现顺序(显示顺序)被输入至图像编码装置600。排序缓冲器611以再现顺序(显示顺序)获取并保持(存储)每个输入图像。排序缓冲器611基于控制单元601的控制,以编码顺序(解码顺序)对输入图像进行排序,或者在处理单元中将输入图像划分为块。排序缓冲器611将每个经处理的输入图像提供至运算单元612。此外,排序缓冲器611还将每个输入图像(原始图像)提供至预测单元622和环路滤波器单元620。
<运算单元>
运算单元612采用与处理单元中的块对应的图像I以及从预测单元622提供的预测图像P作为输入,如下式所示从图像I中减去预测图像P,导出预测残差D并将其提供至正交变换单元613。
D=I-P
<正交变换单元>
正交变换单元613采用从运算单元612提供的预测残差D和从控制单元601提供的变换信息Tinfo作为输入,并基于变换信息Tinfo对预测残差D执行正交变换以导出变换系数Coeff。注意,正交变换单元613可以执行自适应正交变换(AMT),以自适应地选择正交变换的类型(变换系数)。正交变换单元613将获得的变换系数Coeff提供至量化单元614。
<量化单元>
量化单元614采用从正交变换单元613提供的变换系数Coeff和从控制单元601提供的变换信息Tinfo作为输入,并基于变换信息Tinfo对变换系数Coeff进行缩放(量化)。注意,量化的速率由速率控制单元623控制。量化单元614将通过这样的量化获得的量化后的变换系数即量化变换系数水平等级提供至编码单元615和逆量化单元617。
<编码单元>
编码单元615采用从量化单元614提供的量化变换系数水平等级、从控制单元601提供的各种编码参数(头信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、滤波器信息Finfo等)、与滤波器有关的信息例如从环路滤波器单元620提供的滤波器系数、以及与从预测单元622提供的最佳预测模式有关的信息作为输入。编码单元615执行量化变换系数水平等级的可变长度编码(例如,算术编码)以生成位串(编码数据)。
此外,编码单元615从量化变换系数水平等级导出残差信息Rinfo,对残差信息Rinfo进行编码,并生成位串。
此外,编码单元615在滤波器信息Finfo中包括关于从环路滤波器单元620提供的滤波器的信息,并且在预测模式信息Pinfo中包括关于从预测单元622提供的最佳预测模式的信息。然后,编码单元615对上述各种编码参数(头信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、滤波器信息Finfo等)进行编码以生成位串。
此外,编码单元615对如上所述生成的各种信息的位串进行多路复用以生成编码数据。编码单元615将编码数据提供至存储缓冲器616。
<存储缓冲器>
存储缓冲器616临时保持由编码单元615获得的编码数据。存储缓冲器616在预定定时将所保持的编码数据作为例如比特流等输出至图像编码装置600的外部。例如,该编码数据经由任意记录介质、任意发送介质、任意信息处理装置等被发送至解码侧。也就是说,存储缓冲器616也是发送编码数据(比特流)的发送单元。
<逆量化单元>
逆量化单元617执行与逆量化有关的处理。例如,逆量化单元617采用从量化单元614提供的量化变换系数水平等级和从控制单元601提供的变换信息Tinfo作为输入,并且基于变换信息Tinfo对量化变换系数水平等级的值进行缩放(逆量化)。注意,该逆量化是在量化单元614中执行的量化的逆处理。逆量化单元617将通过这种逆量化获得的变换系数Coeff_IQ提供至逆正交变换单元618。
<逆正交变换单元>
逆正交变换单元618执行与逆正交变换有关的处理。例如,逆正交变换单元618采用从逆量化单元617提供的变换系数Coeff_IQ和从控制单元601提供的变换信息Tinfo作为输入,并基于变换信息Tinfo执行变换系数Coeff_IQ的逆正交变换,以导出预测残差D'。注意,该逆正交变换是在正交变换单元613中执行的正交变换的逆处理。也就是说,逆正交变换单元618可以执行自适应逆正交变换(AMT),以自适应地选择逆正交变换的类型(变换系数)。
逆正交变换单元618将通过这种逆正交变换获得的预测残差D'提供至运算单元619。注意,由于逆正交变换单元618类似于解码侧的逆正交变换单元(稍后描述),因此,可以将在解码侧给出的描述(稍后描述)应用于逆正交变换单元618。
<运算单元>
运算单元619采用从逆正交变换单元618提供的预测残差D'和从预测单元622提供的预测图像P作为输入。运算单元619将预测残差D'和与预测残差D'对应的预测图像P相加,以导出本地解码图像Rlocal。运算单元619将所导出的本地解码图像Rlocal提供至环路滤波器单元620和帧存储器621。
<环路滤波器单元>
环路滤波器单元620执行与环路滤波处理有关的处理。例如,环路滤波器单元620采用从运算单元619提供的本地解码图像Rlocal、从控制单元601提供的滤波器信息Finfo、以及从排序缓冲器611提供的输入图像(原始图像)作为输入。注意,输入至环路滤波器单元620的信息是任意的,并且可以输入除这种信息之外的信息。例如,可以根据需要将预测模式、运动信息、码量目标值、量化参数QP、图片类型、块的信息(CU、CTU等)等输入至环路滤波器单元620中。
环路滤波器单元620基于滤波器信息Finfo对本地解码图像Rlocal适当地执行滤波处理。环路滤波器单元620还根据需要使用输入图像(原始图像)和其他输入信息用于滤波处理。
例如,环路滤波器单元620以如非专利文献11中所述的顺序应用四个环路滤波器:双向滤波器、解块滤波器(DBF)、自适应偏移滤波器(样本自适应偏移(SAO))和自适应环路滤波器(ALF)。注意,应用哪个滤波器以及以什么顺序应用是任意的,并且可以适当地选择。
当然,由环路滤波器单元620执行的滤波处理是任意的,并且不限于以上示例。例如,环路滤波器单元620可以应用维纳(Wiener)滤波等。
环路滤波器单元620将已经过滤波处理的本地解码图像Rlocal提供至帧存储器621。注意,在关于滤波器的信息例如滤波器系数被提供至解码侧的情况下,环路滤波器单元620将关于滤波器的信息提供至编码单元615。
<帧存储器>
帧存储器621执行与存储与图像有关的数据有关的处理。例如,帧存储器621采用从运算单元619提供的本地解码图像Rlocal或从环路滤波器单元620提供的经过滤波处理的本地解码图像Rlocal作为输入,并保持(存储)该解码图像Rlocal。此外,帧存储器621使用本地解码图像Rlocal对于每个图片单元重建解码图像R,并保持该解码图像R(将其存储在帧存储器621中的缓冲器中)。帧存储器621响应于预测单元622的请求将解码图像R(或其一部分)提供至预测单元622。
<预测单元>
预测单元622执行与预测图像的产生有关的处理。例如,预测单元622采用从控制单元601提供的预测模式信息Pinfo、从排序缓冲器611提供的输入图像(原始图像)、以及从帧存储器621读取的解码图像R(或其一部分)作为输入。预测单元622使用预测模式信息Pinfo或输入图像(原始图像)执行诸如帧间预测和帧内预测的预测处理,通过将解码图像R作为参考图像进行预测,基于预测结果执行运动补偿处理,并且生成预测图像P。预测单元622将所生成的预测图像P提供至运算单元612和运算单元619。此外,预测单元622根据需要将与通过上述处理选择的预测模式即最佳预测模式有关的信息提供至编码单元615。
<速率控制单元>
速率控制单元623执行与速率控制有关的处理。例如,速率控制单元623基于存储在存储缓冲器616中的编码数据的码量来控制量化单元614的量化操作的速率,从而不会发生上溢或下溢。
注意,这些处理单元(控制单元601、排序缓冲器611至速率控制单元623)具有任意配置。例如,每个处理单元可以包括实现上述处理的逻辑电路。此外,每个处理单元可以包括例如CPU、ROM、RAM等,并且使用它们执行程序以实现上述处理。当然,每个处理单元可以具有两种配置,并且上述处理的一部分可以通过逻辑电路来实现,其余的可以通过执行程序来实现。各个处理单元的配置可以彼此独立。例如,一些处理单元可以通过逻辑电路实现上述处理的一部分,并且一些其他处理单元可以执行程序以实现上述处理,而其他处理单元可以通过逻辑电路和程序执行二者来实现上述处理。
在具有以上配置的图像编码装置600中,本技术被应用于编码单元615。也就是说,编码单元615具有与图4所示的编码装置100的配置类似的配置,并且执行类似的处理。也就是说,编码单元615执行上述方法#1至#8之一。如此,图像编码装置600可以获得与以上在第一实施方式至第八实施方式中的任何一个中描述的效果相似的效果。因此,图像编码装置600可以抑制编码效率降低(提高编码效率)。换言之,图像编码装置600可以抑制解码图像的图像质量降低。
<图像编码处理的流程>
接下来,将参考图60的流程图描述由具有以上配置的图像编码装置600执行的图像编码处理的流程的示例。
当开始图像编码处理时,在步骤S601中,排序缓冲器611由控制单元601控制,以将输入移动图像数据的帧顺序从显示顺序到编码顺序进行排序。
在步骤S602中,控制单元601对由排序缓冲器611保持的输入图像设置处理单元(执行块划分)。
在步骤S603中,控制单元601确定(设置)由排序缓冲器611保持的输入图像的编码参数。
在步骤S604中,预测单元622执行预测处理并生成最佳预测模式的预测图像等。例如,在该预测处理中,预测单元622执行帧内预测以生成最佳帧内预测模式的预测图像等,执行帧间预测以生成最佳帧间预测模式的预测图像等,并基于成本函数值等从中选择最佳预测模式。
在步骤S605中,运算单元612以算术方式计算输入图像与通过步骤S604中的预测处理选择的最佳模式的预测图像之间的差。也就是说,运算单元612生成输入图像与预测图像之间的预测残差D。以这种方式获得的预测残差D的数据量小于原始图像数据的数据量。因此,与按原样对图像进行编码的情况相比,可以压缩数据量。
在步骤S606中,正交变换单元613对通过步骤S605的处理生成的预测残差D执行正交变换处理,并导出变换系数Coeff。
在步骤S607中,量化单元614例如通过使用由控制单元601计算出的量化参数来对通过步骤S606的处理获得的变换系数Coeff进行量化,并导出量化变换系数水平等级。
在步骤S608中,逆量化单元617以与步骤S607的量化的特征对应的特征对通过步骤S607的处理生成的量化变换系数水平等级进行逆量化,并导出变换系数Coeff_IQ。
在步骤S609中,逆正交变换单元618使用与步骤S606的正交变换处理对应的方法对通过步骤S608的处理获得的变换系数Coeff_IQ进行逆正交变换,并导出预测残差D'。注意,由于逆正交变换处理与在解码侧执行的逆正交变换处理(稍后描述)相似,因此可以将在解码侧给出的描述(稍后描述)应用于步骤S609的逆正交变换处理。
在步骤S610中,运算单元619将通过步骤S604的预测处理获得的预测图像与通过步骤S609的处理所导出的预测残差D'相加,以生成本地解码的解码图像。
在步骤S611中,环路滤波器单元620对通过步骤S610的处理获得的本地解码的解码图像执行环路滤波处理。
在步骤S612中,帧存储器621存储通过步骤S610的处理导出的本地解码的解码图像或在步骤S611中经过滤波处理的本地解码的解码图像。
在步骤S613中,编码单元615对通过步骤S607的处理获得的量化变换系数水平等级进行编码。例如,编码单元615通过算术编码等对作为关于图像的信息的量化变换系数水平等级进行编码以生成编码数据。此外,此时,编码单元615对各种编码参数(头信息Hinfo、预测模式信息Pinfo、变换信息Tinfo)进行编码。此外,编码单元615从量化变换系数水平等级获得残差信息RInfo,并且对残差信息RInfo进行编码。
在步骤S614中,存储缓冲器616存储所得到的编码数据,并且例如将其作为比特流输出至图像编码装置600的外部。该比特流经由例如发送路径或记录介质被发送至解码侧。此外,速率控制单元623根据需要执行速率控制。
当步骤S614的处理结束时,图像编码处理结束。
在以上流程的图像编码处理中,本技术被应用于步骤S613的编码处理。也就是说,在该步骤S613中,执行类似于图6的流程的编码处理。也就是说,编码单元615采用上述方法#1至#8之一执行编码处理。如此,图像编码装置600可以获得与以上在第一实施方式至第八实施方式中的任何一个中描述的效果相似的效果。因此,图像编码装置600可以抑制编码效率降低(提高编码效率)。换言之,图像编码装置600可以抑制解码图像的图像质量降低。
<图像解码装置>
此外,例如,本技术可以应用于对图像数据的编码数据进行解码的图像解码装置。图61是示出作为应用了本技术的图像处理装置的一个方面的图像解码装置的配置示例的框图。图61所示的图像解码装置700是对移动图像的编码数据进行解码的装置。例如,图像解码装置700使用非专利文献1至12中任一个中描述的解码方法对编码数据进行解码。例如,图像解码装置700对由以上所述的图像编码装置600生成的编码数据(比特流)进行解码。
注意,图61示出了诸如处理单元和数据流的主要内容,并且没有在图61中将其全部示出。也就是说,在图像解码装置700中,可以存在未在图61中作为块示出的处理单元,或者可以存在未在图61中作为箭头等示出的处理或数据流。
在图61中,图像解码装置700包括存储缓冲器711、解码单元712、逆量化单元713、逆正交变换单元714、运算单元715、环路滤波器单元716、排序缓冲器717、帧存储器718和预测单元719。注意,预测单元719包括未示出的帧内预测单元和帧间预测单元。图像解码装置700是用于通过对编码数据(比特流)进行解码来生成移动图像数据的装置。
<存储缓冲器>
存储缓冲器711获取并保持(存储)输入至图像解码装置700的比特流。存储缓冲器711在预定的定时或者例如在预定条件得到满足的情况下将存储的比特流提供至解码单元712。
<解码单元>
解码单元712执行与图像解码有关的处理。例如,解码单元712采用从存储缓冲器711提供的比特流作为输入,根据语法表的定义对来自比特串的每个语法元素的语法值执行可变长度解码,并导出参数。
语法元素和从语法元素的语法值导出的参数包括例如诸如头信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、残差信息Rinfo和滤波器信息Finfo的信息。也就是说,解码单元712从比特流中解析(分析并获取)这些信息。这些信息将在下面描述。
<头信息Hinfo>
头信息Hinfo包括例如诸如视频参数集(VPS)/序列参数集(SPS)/图片参数集(PPS)/片头(SH)的头信息。头信息Hinfo包括例如指定图像大小(宽度PicWidth、高度PicHeight)、位深(亮度bitDepthY、色差bitDepthC)、色差阵列类型ChromaArrayType、CU尺寸的最大值MaxCUSize/最小值MinCUSize、四叉树划分(quadtree division)(也称为Quad-tree division,四叉树划分)的最大深度MaxQTDepth/最小深度MinQTDepth、二叉树划分(binarytree division)(Binary-tree division,二叉树划分)的最大深度MaxBTDepth/最小深度MinBTDepth、变换跳过块的最大值MaxTSSize(也被称为最大变换跳过块大小)、每个编码工具的开/关标志(也称为启用标志)。
例如,包括在头信息Hinfo中的编码工具的开/关标志包括与以下所示的变换和量化处理有关的开/关标志。注意,编码工具的开/关标志也可以被解释为指示在编码数据中是否存在与编码工具有关的语法的标志。此外,在开/关标志的值为1(真)的情况下,表示可以使用编码工具,在开/关标志的值为0(假)的情况下,表示无法使用编码工具。注意,标志值的解释可以颠倒。
跨分量预测启用标记(ccp_enabled_flag):指示是否可以使用跨分量预测(CCP)(也称为CC预测)的标志信息。例如,在该标志信息为“1”(真)的情况下,表示可以使用,在该标志信息为“0”(假)的情况下,表示不能使用。
注意,该CCP也称为跨分量线性预测(CCLM或CCLMP)。
<预测模式信息Pinfo>
预测模式信息Pinfo包括例如诸如处理目标PB(预测块)的大小信息PBSize(预测块大小)、帧内预测模式信息Ipinfo、运动预测信息MVinfo等信息。
帧内预测模式信息IPinfo包括例如JCTVC-W1005,7.3.8.5编码单元语法中的prev_intra_luma_pred_flag、mpm_idx、rem_intra_pred_mode,以及从语法导出的亮度帧内预测模式IntraPredModeY。
此外,帧内预测模式信息IPinfo包括例如跨分量预测标志(ccp_flag(cclmp_flag))、多类线性预测模式标志(mclm_flag)、色差样本位置类型标识符(chroma_sample_loc_type_idx)、色差MPM标识符(chroma_mpm_idx)、以及从这些语法导出的亮度帧内预测模式(IntraPredModeC)。
跨分量预测标志(ccp_flag(cclmp_flag))是指示是否应用跨分量线性预测的标志信息。例如,当ccp_flag==1时,表示应用了跨分量预测;当ccp_flag==0时,表示未应用跨分量预测。
多类线性预测模式标志(mclm_flag)是关于线性预测的模式的信息(线性预测模式信息)。更具体地,多类线性预测模式标志(mclm_flag)是指示是否设置多类线性预测模式的标志信息。例如,在“0”的情况下,表示1类模式(单类模式)(例如,CCLMP),在“1”的情况下,表示2类模式(多类模式)(例如,MCLMP)。
色差样本位置类型标识符(chroma_sample_loc_type_idx)是用于标识色差分量的像素位置的类型(也称为色差样本位置类型)的标识符。例如,在作为与颜色格式有关的信息的色差阵列类型(ChromaArrayType)表示420格式的情况下,如下式所示分派色差样本位置类型标识符。
chroma_sample_loc_type_idx==0:Type2
chroma_sample_loc_type_idx==1:Type3
chroma_sample_loc_type_idx==2:Type0
chroma_sample_loc_type_idx==3:Type1
注意,色差样本位置类型标识符(chroma_sample_loc_type_idx)作为关于色差分量的像素位置的信息(chroma_sample_loc_info())被(存储)发送。
色差MPM标识符(chroma_mpm_idx)是指示将色差帧内预测模式候选列表(intraPredModeCandListC)中的哪个预测模式候选指定为色差帧内预测模式的标识符。
运动预测信息MVinfo包括例如诸如merge_idx、merge_flag、inter_pred_idc、ref_idx_LX、mvp_lX_flag、X={0,1}、mvd的信息(例如,参见JCTVC-W1005,7.3.8.6预测单元语法)。
当然,包括在预测模式信息Pinfo中的信息是任意的,并且可以包括除这些信息之外的信息。
<变换信息Tinfo>
变换信息Tinfo包括例如以下描述的信息。当然,包括在变换信息Tinfo中的信息是任意的,并且可以包括除这些信息之外的信息。
处理目标变换块的宽度大小TBWSize和高度TBHSize(或者可以是以2为底的相应TBWSize和TBHSize的对数值log2TBWSize和log2TBHSize)。
变换跳过标志(ts_flag):指示是否跳过(逆)一次变换和(逆)二次变换的标志。
扫描标识符(scanIdx)
量化参数(qp)
量化矩阵(scaling_matrix(例如,JCTVC-W1005,7.3.4缩放列表数据语法))
<残差信息Rinfo>
残差信息Rinfo(例如,参见JCTVC-W1005的7.3.8.11残差编码语法)包括例如以下描述的语法。
cbf(coded_block_flag):残差数据存在/不存在标志
last_sig_coeff_x_pos:上一个非零系数X坐标
last_sig_coeff_y_pos:最后一个非零系数Y坐标
coded_sub_block_flag:子块非零系数存在/不存在标志
sig_coeff_flag:非零系数存在/不存在标志
gr1_flag:指示非零系数水平是否大于1的标志(也称为GR1标志)
gr2_flag:指示非零系数水平是否大于2的标志(也称为GR2标志)
sign_flag:指示非零系数是正还是负的码(也称为符号码)
coeff_abs_level_remaining:非零系数的剩余水平(也称为非零系数剩余水平)
当然,包括在残差信息Rinfo中的信息是任意的,并且可以包括除这些信息之外的信息。
<滤波器信息Finfo>
滤波器信息Finfo包括例如与以下描述的每个滤波处理有关的控制信息。
与解块滤波器(DBF)有关的控制信息
与像素自适应偏移(SAO)相关的控制信息
与自适应环路滤波器(ALF)相关的控制信息
与其他线性和非线性滤波器有关的控制信息
更具体地,例如,用于指定应用了每个滤波器的图片和图片中的区域的信息、在CU单元中的滤波器开/关控制信息、与片和图块边界有关的滤波器开/关控制信息等被包含在内。当然,包括在滤波器信息Finfo中的信息是任意的,并且可以包括除这些信息之外的信息。
返回参考解码单元712的描述,解码单元712参考残差信息Rinfo来导出每个变换块中的每个系数位置的量化变换系数水平等级。解码单元712将量化变换系数水平等级提供至逆量化单元713。
此外,解码单元712将经解析的头信息Hinfo、预测模式信息Pinfo、量化变换系数等级水平、变换信息Tinfo和滤波器信息Finfo提供至每个块。具体地,如下所述。
头信息Hinfo被提供至逆量化单元713、逆正交变换单元714、预测单元719和环路滤波器单元716。
预测模式信息Pinfo被提供至逆量化单元713和预测单元719。
变换信息Tinfo被提供至逆量化单元713和逆正交变换单元714。
滤波器信息Finfo被提供至环路滤波器单元716。
当然,上述示例是示例,并且不限于该示例。例如,每个编码参数可以被提供至任意处理单元。此外,可以将其他信息提供至任意处理单元。
<逆量化单元>
逆量化单元713至少具有执行与逆量化有关的处理所必需的配置。例如,逆量化单元713采用变换信息Tinfo和从解码单元712提供的量化变换系数水平等级作为输入,基于变换信息Tinfo缩放(逆量化)量化变换系数水平等级的值,并在逆量化后导出变换系数Coeff_IQ。
注意,该逆量化被执行为由量化单元614进行的量化的逆处理。此外,该逆量化是与逆量化单元617的逆量化相似的处理。也就是说,逆量化单元617执行与逆量化单元713的处理相似的处理(逆量化)。
逆量化单元713将导出的变换系数Coeff_IQ提供至逆正交变换单元714。
<逆正交变换单元>
逆正交变换单元714执行与逆正交变换有关的处理。例如,逆正交变换单元714采用从逆量化单元713提供的变换系数Coeff_IQ和从解码单元712提供的变换信息Tinfo作为输入,并基于变换信息Tinfo对变换系数Coeff_IQ进行逆正交变换处理以导出预测残差D'。
注意,该逆正交变换被执行为由正交变换单元613进行的正交变换的逆处理。此外,该逆正交变换是与由逆正交变换单元618进行的逆正交变换相似的处理。也就是说,逆正交变换单元618执行与逆正交变换单元714的处理相似的处理(逆正交变换)。
逆正交变换单元714将导出的预测残差D'提供至运算单元715。
<运算单元>
运算单元715执行与关于图像的信息的添加有关的处理。例如,运算单元715采用从逆正交变换单元714提供的预测残差D'和从预测单元719提供的预测图像P作为输入。如下式所示,运算单元715将预测残差D'和与预测残差D'对应的预测图像P(预测信号)相加,以导出本地解码图像Rlocal
Rlocal=D'+P
运算单元715将所导出的本地解码图像Rlocal提供至环路滤波器单元716和帧存储器718。
<环路滤波器单元>
环路滤波器单元716执行与环路滤波处理有关的处理。例如,环路滤波器单元716采用从运算单元715提供的本地解码图像Rlocal和从解码单元712提供的滤波器信息Finfo作为输入。注意,输入至环路滤波器单元716的信息是任意的,并且可以输入除这种信息之外的信息。
环路滤波器单元716基于滤波器信息Finfo对本地解码图像Rlocal适当地执行滤波处理。
例如,环路滤波器单元716以如非专利文献11中所述的顺序应用四个环路滤波器:双向滤波器、解块滤波器(DBF)、自适应偏移滤波器(样本自适应偏移(SAO))和自适应环路滤波器(ALF)。注意,应用哪个滤波器以及以什么顺序应用是任意的,并且可以适当地选择。
环路滤波器单元716执行与由编码侧执行的滤波处理(例如,图像编码装置600的环路滤波器单元620)对应的滤波处理。当然,由环路滤波器单元716执行的滤波处理是任意的,并且不限于以上示例。例如,环路滤波器单元716可以应用维纳(Wiener)滤波器等。
环路滤波器单元716将已经经过滤波处理的本地解码图像Rlocal提供至排序缓冲器717和帧存储器718。
<排序缓冲器>
排序缓冲器717采用从环路滤波器单元716提供的本地解码图像Rlocal作为输入并保持(存储)所述本地解码图像Rlocal。排序缓冲器717使用本地解码图像Rlocal对于每个图片单元重建解码图像R,并保持重建的解码图像R(将重建的解码图像R存储在缓冲器中)。排序缓冲器717以解码顺序到再现顺序对所获得的解码图像R进行排序。排序缓冲器717将经排序的解码图像R组作为移动图像数据输出至图像解码装置700的外部。
<帧存储器>
帧存储器718执行与存储与图像有关的数据有关的处理。例如,帧存储器718采用由运算单元715提供的本地解码图像Rlocal作为输入,针对每个图片单元重建解码图像R,并将其存储在帧存储器718的缓冲器中。
此外,帧存储器718采用经过环路滤波处理并从环路滤波单元716提供的本地解码图像Rlocal作为输入,对于每个图片单元重建解码图像R,并将该图像存储在帧存储器718中的缓冲器中。帧存储器718将存储的解码图像R(或其一部分)作为参考图像适当地提供至预测单元719。
注意,帧存储器718可以存储与解码图像的生成有关的头信息Hinfo、预测模式信息Pinfo、变换信息Tinfo、滤波器信息Finfo等。
<预测单元>
预测单元719执行与预测图像的生成有关的处理。例如,预测单元719采用从解码单元712提供的预测模式信息Pinfo作为输入,使用由预测模式信息Pinfo指定的预测方法进行预测,并且导出预测图像P。在导出时,预测单元719使用滤波之前或之后的存储在帧存储器718中的由预测模式信息Pinfo指定的解码图像R(或其一部分)作为参考图像。预测单元719将导出的预测图像P提供至运算单元715。
注意,这些处理单元(存储缓冲器711至预测单元719)具有任意配置。例如,每个处理单元可以包括实现上述处理的逻辑电路。此外,每个处理单元可以包括例如CPU、ROM、RAM等,并且使用它们执行程序以实现上述处理。当然,每个处理单元可以具有两种配置,并且上述处理的一部分可以通过逻辑电路来实现,其余的可以通过执行程序来实现。各个处理单元的配置可以彼此独立。例如,一些处理单元可以通过逻辑电路实现上述处理的一部分,并且一些其他处理单元可以执行程序以实现上述处理,而其他处理单元可以通过逻辑电路和执行程序二者实现上述处理。
在具有以上配置的图像解码装置700中,本技术被应用于解码单元712。也就是说,解码单元712具有与图13所示的解码装置200的配置相似的配置,并且执行类似的处理。也就是说,解码单元712执行上述方法#1至#8之一。如此,图像解码装置700可以获得与以上在第一实施方式至第八实施方式中的任何一个中描述的效果相似的效果。因此,图像解码装置700可以抑制编码效率降低(提高编码效率)。换言之,图像解码装置700可以抑制解码图像的图像质量降低。
<图像解码处理的流程>
接下来,将描述由具有以上配置的图像解码装置700执行的每个处理的流程。首先,将参考图62的流程图描述图像编码处理的流程的示例。
当开始图像解码处理时,在步骤S701中,存储缓冲器711获取从图像解码装置700的外部提供的编码数据(比特流),并且将其保持(存储)。
在步骤S702中,解码单元712对编码数据(比特流)进行解码以获得量化变换系数水平等级。此外,解码单元712通过该解码从编码数据(比特流)解析(分析并获取)各种编码参数。
在步骤S703中,逆量化单元713相对于通过步骤S702的处理获得的量化变换系数水平等级执行作为在编码侧执行的量化的逆处理的逆量化,以获得变换系数Coeff_IQ。
在步骤S704中,逆正交变换单元714相对于在步骤S703中获得的变换系数Coeff_IQ执行作为在编码侧执行的正交变换处理的逆处理的逆正交变换处理,并且获得预测残差D'。
在步骤S705中,预测单元719基于在步骤S702中解析的信息,使用在编码侧指定的预测方法执行预测处理,参考存储在帧存储器718中的参考图像等,并生成预测图像P。
在步骤S706中,运算单元715将在步骤S704中获得的预测残差D'与在步骤S705中获得的预测图像P相加,以导出本地解码图像Rlocal
在步骤S707中,环路滤波器单元716对通过步骤S706的处理获得的本地解码图像Rlocal执行环路滤波处理。
在步骤S708中,排序缓冲器717使用已经经过滤波处理并且通过步骤S707的处理获得的本地解码图像Rlocal来导出解码图像R,并且以解码顺序到再现顺序来对解码图像R组进行排序。将按再现顺序排序的解码图像R组作为移动图像输出至图像解码装置700的外部。
此外,在步骤S709中,帧存储器718存储通过步骤S706的处理获得的本地解码图像Rlocal或通过步骤S707的处理获得的滤波处理后的本地解码图像Rlocal中的至少一个。
当步骤S709的处理结束时,图像解码处理结束。
在以上流程的图像解码处理中,本技术被应用于步骤S703的解码处理。也就是说,在该步骤S703中,执行与图15相似的流程的解码处理。也就是说,解码单元712采用上述方法#1至#8之一执行解码处理。如此,图像解码装置700可以获得与以上在第一实施方式至第八实施方式中的任何一个中描述的效果相似的效果。因此,图像解码装置700可以抑制编码效率降低(提高编码效率)。换言之,图像解码装置700可以抑制解码图像的图像质量降低。
<11.附录>
<计算机>
上述一系列处理可以由硬件执行,也可以由软件执行。在通过软件执行一系列处理的情况下,构成软件的程序被安装在计算机中。这里,计算机包括安装在专用硬件中的计算机,例如可以通过安装各种程序来执行各种功能等的通用个人计算机。
图63是示出通过程序执行上述一系列处理的计算机的硬件的配置示例的框图。
在图63所示的计算机800中,中央处理单元(CPU)801、只读存储器(ROM)802、随机存取存储器(RAM)803通过总线804互连。
输入/输出接口810也连接至总线804。输入单元811、输出单元812、存储单元813、通信单元814和驱动器815连接至输入/输出接口810。
输入单元811包括例如键盘、鼠标、麦克风、触摸面板、输入端子等。输出单元812包括例如显示器、扬声器、输出端子等。存储单元813包括例如硬盘、RAM盘、非易失性存储器等。通信单元814包括例如网络接口等。驱动器815驱动可移除介质821例如磁盘、光盘、磁光盘或半导体存储器。
例如,在以上述方式配置的计算机中,CPU 801经由输入/输出接口810和总线804将存储在存储单元813中的程序加载到RAM 803上,并执行该程序,从而执行上述一系列操作。CPU 801执行各种处理所需的数据等也视情况存储在RAM 803中。
可以通过被记录在例如作为封装介质等的可移除介质821上来应用要由计算机执行的程序。在这种情况下,可以在可移除介质821被安装在驱动器815上的情况下经由输入/输出接口810将程序安装在存储单元813上。
此外,还可以经由诸如局域网、因特网或数字卫星广播的有线或无线发送介质来提供该程序。在这种情况下,程序可以被通信单元814接收并安装在存储单元813中。
另外,可以将该程序预安装在ROM 802或存储单元813中。
<信息处理单元>
上述各种信息被设置的数据单元和以各种处理为目标的数据单元是任意的,并且不限于上述示例。例如,可以对于每个变换单元(TU)、变换块(TB)、预测单元(PU)、预测块(PB)、编码单元(CU)、最大编码单元(LCU)来设置这些信息和处理,并且子块、块、图块、片、图片、序列或组件或这些数据单元中的数据可以是目标。当然,可以对于每个信息或处理设置该数据单元,并且不必使所有信息或处理的数据单元一致。注意,这些信息的存储位置是任意的,并且该信息可以存储在上述数据单元的头、参数集等中。此外,该信息可以存储在多个位置中。
<控制信息>
可以将在以上每个实施方式中描述的与本技术有关的控制信息从编码侧发送至解码侧。例如,可以发送控制是否允许(或禁止)应用上述本技术的控制信息(例如,enabled_flag)。此外,例如,可以发送指示应用了上述本技术的目标(或者不应用上述本技术的目标)的控制信息(例如,present_flag)。例如,可以发送指定了要应用本技术(或允许或禁止应用)的块大小(上限和下限,或两者兼有)、帧、组件、层等的控制信息。
<本技术的适用目标>
本技术可以应用于任何图像编解码方法。也就是说,只要不与上述本技术相矛盾,与图像编解码有关的各种处理例如变换(逆变换)、量化(逆量化)、编码(解码)、预测等的规格是任意的,并且不限于上述示例。此外,只要不与上述本技术相矛盾,就可以省略一部分处理。
此外,本技术可以应用于对包括多个视点(视图)的图像的多视点图像进行编码和解码的多视点图像编码解码系统。在这种情况下,仅需要将本技术应用于每个视点(视图)的编码和解码。
此外,本技术可以应用于分级图像编码(可缩放编码)和解码系统,该系统对分层的分级图像进行编码和解码以具有对于预定参数的可缩放性功能。在这种情况下,仅需要将本技术应用于每个分级(层)的编码和解码。
此外,在上文中,已经描述了编码装置100、解码装置200、图像编码装置600和图像解码装置700作为本技术的应用示例,但是本技术可以应用于任何配置。
例如,本技术可以应用于各种电子设备,例如:用于卫星广播的发送器或接收器(例如,电视接收器或移动电话)、有线广播如有线电视、因特网上的分发以及由蜂窝通信向终端的分发或者如在诸如光盘、磁盘和闪速存储器的介质上记录图像并且从这些存储介质再现图像的装置(例如,硬盘记录器和摄像机)。
此外,例如,本技术可以实现为如下装置的一部分的配置,例如系统大规模集成(LSI)等的处理器(例如,视频处理器)、使用多个处理器等的模块(例如,视频模块)、使用多个模块等的单元(例如,视频单元)、或向单元添加其他功能的装置(例如,视频装置)。
此外,例如,本技术还可以应用于包括多个装置的网络系统。例如,本技术可以应用为经由网络由多个装置共享并且一起处理的云计算。例如,本技术可以应用于向诸如计算机、视听(AV)设备、便携式信息处理终端或物联网(IoT)设备的任意终端提供关于图像(移动图像)的服务的云服务。
注意,在本说明书中,系统是指一组多个组成元件(装置、模块(部件)等),并且所有组成元件是否都在同一壳体中并不重要。因此,容纳在不同的壳体中并经由网络连接的多个装置,以及其中多个模块容纳在一个壳体中的一个装置都是系统。
<可以应用本技术的领域和用途>
应用本技术的系统、装置、处理单元等可以在诸如交通、医疗护理、犯罪预防、农业、畜牧业、采矿、美容、工厂、家用电器、天气和自然监视的任意领域中使用。此外,用途也是任意的。
例如,本技术可以应用于被提供用于提供供欣赏的内容等的系统和设备。此外,例如,本技术还可以应用于用于诸如交通状况监视和自动驾驶控制的交通的系统和设备。此外,例如,本技术还可以应用于针对安全目的而提供的系统和设备。此外,例如,本技术可以应用于为机器等的自动控制而提供的系统和设备。此外,例如,本技术也可以应用于为农业或畜牧业提供的系统和设备。此外,本技术还可以应用于监视诸如火山、森林以及海洋、野生动物等的自然状态的系统和设备。此外,例如,本技术还可以应用于为运动目的提供的系统和设备。
<其他>
注意,在本说明书中,“标志”是用于标识多个状态的信息,并且不仅包括用于标识真(1)和假(0)两个状态的信息,而且还包括能够标识三个或更多个状态的信息。因此,“标志”可以采用的值可以是例如二进制值1/0或者可以是三进制值或更多。也就是说,构成“标志”的位数是任意的,并且可以是1位或多位。此外,标识信息(包括标志)被假设为不仅包括比特流中的标识信息,而且包括比特流中的标识信息与特定参考信息的差异信息。因此,在本说明书中,“标志”和“标识信息”不仅包括信息本身,而且还包括相对于参考信息的差异信息。
此外,可以以任何形式发送或记录关于编码数据(比特流)的各种类型的信息(元数据等),只要各种类型的信息与编码数据相关联即可。此处,术语“关联”意味着例如当处理一个数据时使另一数据可用(可链接)。也就是说,彼此关联的数据可以被组合为一个数据或者可以是单独数据。例如,可以在与编码数据(图像)的发送路径不同的发送路径上发送与编码数据(图像)相关联的信息。此外,例如,可以将与编码数据(图像)相关联的信息记录在与编码数据(图像)的记录介质不同的记录介质上(或者记录在同一记录介质的另一记录区域中)。注意,该“关联”可以是数据的一部分,而不是全部数据。例如,图像和与图像对应的信息可以以诸如多个帧、一个帧或帧中的一部分的任意单位彼此相关联。
注意,在本说明书中,诸如“合成”、“多路复用”、“相加”、“集成”、“包括”、“存储”、“提交”、“接通”和“插入”等的术语是指将多个事物放入一个中,例如将编码数据和元数据放入一个数据中,并且是指上述“关联”的一种方法。
此外,本技术的实施方式不限于前述实施方式,而是可以在不脱离本技术的要旨的范围内进行各种改变。
例如,被描述为一个装置(或处理单元)的配置可以被划分且被配置成多个装置(或处理单元)。相反,以上被描述为多个装置(或处理单元)的配置可以被共同配置为一个装置(或处理单元)。此外,可以将除了上述配置之外的配置添加到每个装置(或每个处理单元)的配置。此外,当全部系统的配置和操作基本上相同时,某一装置(或处理单元)的一部分配置可以包括在另一装置(或另一处理单元)的配置中。
此外,例如,上述程序可以在任意装置中执行。在那种情况下,只要装置具有必要的功能(功能块等)使得可以获得必要的信息就足够了。
此外,例如,一个流程图中的每个步骤可以由一个装置执行,或者可以由多个装置共享和执行。此外,在一个步骤包括多个处理的情况下,多个处理可以由一个装置来执行或者可以由多个装置共享和执行。换言之,包括在一个步骤中的多个处理可以作为多个步骤的处理而执行。相反,被描述为多个步骤的处理可以作为一个步骤来共同执行。
此外,例如,关于由计算机执行的程序,描述程序的步骤的处理可以根据本说明书中描述的顺序按时间顺序执行,或者可以并行地或在例如进行调用时的必要定时处单独执行。也就是说,只要不发生矛盾,就可以以与上述顺序不同的顺序执行每个步骤的处理。此外,描述该程序的步骤的处理可以与另一程序的处理并行执行,或者可以与另一程序的处理组合执行。
此外,例如,只要不矛盾,就可以独立地执行与本技术有关的多种技术。当然,可以结合使用任何数量的本技术。例如,在任何实施方式中描述的本技术的一部分或全部可以与在另一实施方式中描述的本技术的一部分或全部组合地执行。此外,还可以组合以上未描述的另一技术来执行任何上述本技术的一部分或全部。
注意,本技术可以如下配置。
(1)一种图像处理装置,包括:
语法元素值导出单元,其通过将位元数量在非零子块之间分配来设置分派给处理目标子块的位元数量的上限值,并且通过使用从图像数据导出的系数数据来导出关于所述处理目标子块的语法元素值,使得位元数量不超过所述上限值;以及
编码单元,其对所导出的语法元素值进行编码并且生成编码数据。
(2)根据(1)所述的图像处理装置,其中,
所述语法元素值导出单元基于紧在前的非零子块的额外位元数量和分派给所述处理目标子块的位元数量的临时上限值来设置分派给所述处理目标子块的位元数量的上限值。
(3)根据(1)或(2)所述的图像处理装置,其中
所述语法元素值导出单元通过将位元数量在CU中的非零子块之间分配来设置分派给所述处理目标子块的位元数量的上限值。
(4)根据(1)至(3)中任一项所述的图像处理装置,其中,
所述语法元素值导出单元导出关于所述处理目标子块的语法元素值,使得分派给块中的所有非零子块的位元数量之和不超过分派给所述块中的每个非零子块的位元数量的临时上限值之和。
(5)根据(4)所述的图像处理装置,其中,
所述语法元素值导出单元还分配所述块中的零子块的额外位元数量。
(6)根据(1)至(5)中任一项所述的图像处理装置,其中
所述语法元素值导出单元设置分派给块的位元数量的上限值,并且通过使用从所述图像数据导出的系数数据来导出关于所述块的语法元素值,使得位元数量不超过所述上限值。
(7)一种图像处理方法,包括:
通过将位元数量在非零子块之间分配来设置分派给处理目标子块的位元数量的上限值,并且通过使用从图像数据导出的系数数据来导出关于所述处理目标子块的语法元素值,使得位元数量不超过所述上限值;以及
对所导出的语法元素值进行编码并且生成编码数据。
(8)一种图像处理装置,包括:
解码单元,其对编码数据进行解码并且生成语法元素值;以及
系数数据导出单元,其通过将位元数量在非零子块之间分配来设置分派给处理目标子块的位元数量的上限值,并且通过使用所生成的语法元素值来导出关于所述处理目标子块的与图像数据相对应的系数数据,使得位元数量不超过所述上限值。
(9)一种图像处理方法,包括:
对编码数据进行解码并且生成语法元素值;以及
通过将位元数量在非零子块之间分配来设置分派给处理目标子块的位元数量的上限值,并且通过使用所生成的语法元素值来导出关于所述处理目标子块的与图像数据相对应的系数数据,使得位元数量不超过所述上限值。
(10)一种图像处理装置,包括:
语法元素值导出单元,其通过将分派给零子块的位元数量分配给非零子块来设置分派给处理目标子块的位元数量的上限值,并且通过使用从图像数据导出的系数数据来导出关于所述处理目标子块的语法元素值,使得位元数量不超过所述上限值;以及
编码单元,其对所导出的语法元素值进行编码并且生成编码数据。
(11)根据(10)所述的图像处理装置,其中,
所述语法元素值导出单元基于零子块的平均额外位元数量和分派给所述处理目标子块的位元数量的临时上限值来设置分派给所述处理目标子块的位元数量的上限值。
(12)根据(11)所述的图像处理装置,其中,
所述语法元素值导出单元还根据基于所述处理目标子块的位置的优先级来设置分派给所述处理目标子块的位元数量的所述上限值。
(13)一种图像处理方法,包括:
通过将分派给零子块的位元数量分配给非零子块来设置分派给处理目标子块的位元数量的上限值,并且通过使用从图像数据导出的系数数据来导出关于所述处理目标子块的语法元素值,使得位元数量不超过所述上限值;以及
对所导出的语法元素值进行编码并且生成编码数据。
(14)一种图像处理装置,包括:
解码单元,其对编码数据进行解码并且生成语法元素值;以及
系数数据导出单元,其通过将分派给零子块的位元数量分配给非零子块来设置分派给处理目标子块的位元数量的上限值,并且通过使用所生成的语法元素值来导出关于所述处理目标子块的与图像数据相对应的系数数据,使得位元数量不超过所述上限值。
(15)一种图像处理方法,包括:
对编码数据进行解码并且生成语法元素值;以及
通过将分派给零子块的位元数量分配给非零子块来设置分派给处理目标子块的位元数量的上限值,并且通过使用所生成的语法元素值来导出关于所述处理目标子块的与图像数据相对应的系数数据,使得位元数量不超过所述上限值。
附图标记列表
100 编码装置
101 定序器
102 CABAC
121 二值化单元
122 选择单元
123 上下文模型
124 算术编码单元
125 算术编码单元
126 选择单元
200 解码装置
201 CABAC
202 解析器
221 选择单元
222 上下文模型
223 算术解码单元
224 算术解码单元
225 选择单元
226 多值转换单元
600 图像编码装置
615 编码单元
700 图像解码装置
712 解码单元

Claims (15)

1.一种图像处理装置,包括:
语法元素值导出单元,其通过将位元数量在非零子块之间分配来设置分派给处理目标子块的位元数量的上限值并且通过使用从图像数据导出的系数数据来导出关于所述处理目标子块的语法元素值,使得位元数量不超过所述上限值;以及
编码单元,其对所导出的语法元素值进行编码并且生成编码数据。
2.根据权利要求1所述的图像处理装置,其中,
所述语法元素值导出单元基于紧临在前的非零子块的额外位元数量和分派给所述处理目标子块的位元数量的临时上限值来设置分派给所述处理目标子块的位元数量的上限值。
3.根据权利要求1所述的图像处理装置,其中,
所述语法元素值导出单元通过将位元数量在CU中的非零子块之间分配来设置分派给所述处理目标子块的位元数量的上限值。
4.根据权利要求1所述的图像处理装置,其中,
所述语法元素值导出单元导出关于所述处理目标子块的语法元素值,使得分派给块中的所有非零子块的位元数量之和不超过分派给所述块中的每个非零子块的位元数量的临时上限值之和。
5.根据权利要求4所述的图像处理装置,其中,
所述语法元素值导出单元还分配所述块中的零子块的额外位元数量。
6.根据权利要求1所述的图像处理装置,其中,
所述语法元素值导出单元设置分派给块的位元数量的上限值,并且通过使用从所述图像数据导出的系数数据来导出关于所述块的语法元素值,使得位元数量不超过所述上限值。
7.一种图像处理方法,包括:
通过将位元数量在非零子块之间分配来设置分派给处理目标子块的位元数量的上限值,并且通过使用从图像数据导出的系数数据来导出关于所述处理目标子块的语法元素值,使得位元数量不超过所述上限值;以及
对所导出的语法元素值进行编码并且生成编码数据。
8.一种图像处理装置,包括:
解码单元,其对编码数据进行解码并且生成语法元素值;以及
系数数据导出单元,其通过将位元数量在非零子块之间分配来设置分派给处理目标子块的位元数量的上限值,并且通过使用所生成的语法元素值来导出关于所述处理目标子块的与图像数据相对应的系数数据,使得位元数量不超过所述上限值。
9.一种图像处理方法,包括:
对编码数据进行解码并且生成语法元素值;以及
通过将位元数量在非零子块之间分配来设置分派给处理目标子块的位元数量的上限值,并且通过使用所生成的语法元素值来导出关于所述处理目标子块的与图像数据相对应的系数数据,使得位元数量不超过所述上限值。
10.一种图像处理装置,包括:
语法元素值导出单元,其通过将分派给零子块的位元数量分配给非零子块来设置分派给处理目标子块的位元数量的上限值,并且通过使用从图像数据导出的系数数据来导出关于所述处理目标子块的语法元素值,使得位元数量不超过所述上限值;以及
编码单元,其对所导出的语法元素值进行编码并且生成编码数据。
11.根据权利要求10所述的图像处理装置,其中,
所述语法元素值导出单元基于零子块的平均额外位元数量和分派给所述处理目标子块的位元数量的临时上限值来设置分派给所述处理目标子块的位元数量的所述上限值。
12.根据权利要求11所述的图像处理装置,其中
所述语法元素值导出单元还根据基于所述处理目标子块的位置的优先级来设置分派给所述处理目标子块的位元数量的所述上限值。
13.一种图像处理方法,包括:
通过将分派给零子块的位元数量分配给非零子块来设置分派给处理目标子块的位元数量的上限值,并且通过使用从图像数据导出的系数数据来导出关于所述处理目标子块的语法元素值,使得位元数量不超过所述上限值;以及
对所导出的语法元素值进行编码并且生成编码数据。
14.一种图像处理装置,包括:
解码单元,其对编码数据进行解码并且生成语法元素值;以及
系数数据导出单元,其通过将分派给零子块的位元数量分配给非零子块来设置分派给处理目标子块的位元数量的上限值,并且通过使用所生成的语法元素值来导出关于所述处理目标子块的与图像数据相对应的系数数据,使得位元数量不超过所述上限值。
15.一种图像处理方法,包括:
对编码数据进行解码并且生成语法元素值;以及
通过将分派给零子块的位元数量分配给非零子块来设置分派给处理目标子块的位元数量的上限值,并且通过使用所生成的语法元素值来导出关于所述处理目标子块的与图像数据相对应的系数数据,使得位元数量不超过所述上限值。
CN202080011938.7A 2019-02-07 2020-02-06 图像处理装置及方法 Pending CN113366835A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962802477P 2019-02-07 2019-02-07
US62/802,477 2019-02-07
PCT/JP2020/004559 WO2020162540A1 (ja) 2019-02-07 2020-02-06 画像処理装置および方法

Publications (1)

Publication Number Publication Date
CN113366835A true CN113366835A (zh) 2021-09-07

Family

ID=71947799

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080011938.7A Pending CN113366835A (zh) 2019-02-07 2020-02-06 图像处理装置及方法

Country Status (6)

Country Link
US (1) US20220124334A1 (zh)
EP (1) EP3923573A4 (zh)
JP (2) JP7415958B2 (zh)
KR (1) KR20210124218A (zh)
CN (1) CN113366835A (zh)
WO (1) WO2020162540A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220038166A (ko) * 2019-08-31 2022-03-25 엘지전자 주식회사 영상 코딩 시스템에서 단순화된 레지듀얼 데이터 코딩을 사용하는 영상 디코딩 방법 및 그 장치

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3090543A4 (en) * 2013-12-30 2017-08-02 QUALCOMM Incorporated Simplification of delta dc residual coding in 3d video coding
BR122021008882B1 (pt) * 2018-09-11 2021-12-21 Lg Electronics Inc Método de codificação residual e dispositivo para o mesmo
KR102473571B1 (ko) * 2018-10-05 2022-12-06 타이사 리서치 엘엘씨 변환 계수 코딩 방법 및 그 장치
KR20230165360A (ko) * 2018-10-05 2023-12-05 엘지전자 주식회사 변환 계수 코딩 방법 및 그 장치
CA3119744A1 (en) * 2018-11-12 2020-05-22 Lg Electronics Inc. Method for coding transform coefficient on basis of high frequency zeroing and apparatus therefor
US11523136B2 (en) * 2019-01-28 2022-12-06 Hfi Innovation Inc. Methods and apparatuses for coding transform blocks
WO2021006697A1 (ko) * 2019-07-10 2021-01-14 엘지전자 주식회사 레지듀얼 코딩에 대한 영상 디코딩 방법 및 그 장치

Also Published As

Publication number Publication date
JP2024023856A (ja) 2024-02-21
EP3923573A4 (en) 2022-06-22
WO2020162540A1 (ja) 2020-08-13
JPWO2020162540A1 (ja) 2021-12-16
EP3923573A1 (en) 2021-12-15
JP7415958B2 (ja) 2024-01-17
US20220124334A1 (en) 2022-04-21
KR20210124218A (ko) 2021-10-14

Similar Documents

Publication Publication Date Title
EP4277269A2 (en) An encoder, a decoder and corresponding methods for intra prediction
CN111713104B (zh) 图像处理装置和方法
JP2023112105A (ja) 画像処理装置および方法
WO2021039650A1 (ja) 画像処理装置および方法
JP2024023856A (ja) 画像処理装置および方法
WO2020100672A1 (ja) 画像処理装置および方法
US20240171746A1 (en) Image processing device and method
JPWO2020175145A1 (ja) 画像処理装置及び画像処理方法
US20210006836A1 (en) Image encoding apparatus, image encoding method, image decoding apparatus, and image decoding method
WO2021100588A1 (ja) 画像処理装置および方法
WO2020250599A1 (ja) 画像処理装置および方法
CN111699685B (zh) 图像处理设备和方法
EP4060995A1 (en) Image processing device, bit stream generation method, coefficient data generation method, and quantization coefficient generation method
JP7484923B2 (ja) 画像処理装置および方法
JP2022002352A (ja) 画像処理装置および方法
EP3932057B1 (en) An encoder, a decoder and corresponding methods for intra prediction
US20240236323A1 (en) Image processing device and method
JP2024092011A (ja) 画像処理装置および方法
WO2020129636A1 (ja) 画像符号化装置、画像符号化方法、画像復号装置、および画像復号方法

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