CN112073729B - 模型更新方法、装置、电子设备及计算机可读存储介质 - Google Patents

模型更新方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN112073729B
CN112073729B CN202010152701.2A CN202010152701A CN112073729B CN 112073729 B CN112073729 B CN 112073729B CN 202010152701 A CN202010152701 A CN 202010152701A CN 112073729 B CN112073729 B CN 112073729B
Authority
CN
China
Prior art keywords
binary symbol
probability
model
updating
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010152701.2A
Other languages
English (en)
Other versions
CN112073729A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to CN202410309590.XA priority Critical patent/CN118200585A/zh
Priority to CN202410309592.9A priority patent/CN118200586A/zh
Priority to BR112021023379A priority patent/BR112021023379A2/pt
Priority to EP20822571.4A priority patent/EP3984221A4/en
Priority to PCT/KR2020/007534 priority patent/WO2020251261A1/en
Publication of CN112073729A publication Critical patent/CN112073729A/zh
Application granted granted Critical
Publication of CN112073729B publication Critical patent/CN112073729B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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/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/172Methods 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 picture, frame or field
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Feedback Control In General (AREA)

Abstract

本申请实施例提供了一种模型更新方法、装置、电子设备及计算机可读存储介质,涉及计算机技术领域。该方法包括:获取当前待解码帧对应的各个二元符号模型分别对应的第一参数,二元符号模型对应的第一参数包括:至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,然后基于各个二元符号模型分别对应的第一参数,更新对应的二元符号模型。本申请实施例可以节省用于模型更新的参数所占用存储空间。

Description

模型更新方法、装置、电子设备及计算机可读存储介质
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种模型更新方法、装置、电子设备及计算机可读存储介质。
背景技术
在现有的视频编码中,例如第二代数字音视频编解码标准(Audio Video CodingStandard 2,AVS2),H.264/AVC和高效视频编解码(High Efficiency Video Coding,HEVC),都使用基于上下文的自适应二进制算术编码(Context-based adaptive binaryarithmetic coding,CABAC)方法对语法元素进行二值化之后的二元符号串进行熵编码来进一步提高压缩率。
由于二元符号串中各二元符号的概率分布根据不同的编码参数和输入的视频源的内容而动态分布,因此需要存储和维护一个二元符号模型。对于下一代视频编码(Versatile Video Coding,VVC)来说,一个编码图像可能被划分为一帧或者多帧,每个帧包含702个二元符号模型,在对任一帧进行编解码之前,需要将预先定义的702个二元符号模型载入内存,然后通过二元符号模型中的信息估计当前二元符号的概率,根据当前二元符号信息,更新其二元符号模型中的信息,并且通过概率更新速度参数(例如,右位移数)控制二元符号模型的更新速度,其中,二元符号对应的二元符号模型可以称为二元符号模型。
但是,在二元符号模型中存储概率更新速度参数需要占用较大的存储空间,每一帧图像包含多个二元符号模型,可能导致需要额外占用较多的存储空间,例如每个二元符号模型使用8个比特存储概率更新速度参数,例如右位移数,每一帧图像中包含702个二元符号模型,则每一帧图像需要额外占用8*702个比特的存储空间,从而导致占用的存储空间较大。
发明内容
本申请提供了一种模型更新方法、装置、电子设备及计算机可读存储介质,用于解决用于更新模型的参数所占用的存储空间较大的问题。
第一方面,提供了一种模型更新方法,该方法包括:
获取当前待编码帧对应的各个二元符号模型分别对应的第一参数,二元符号模型对应的第一参数包括:至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息;
基于各个二元符号模型分别对应的第一参数,更新对应的二元符号模型。
一种可能的实现方式,二元符号模型对应的第一参数还包括:概率更新次数的相关信息;
概率更新次数的相关信息包括二元符号模型概率更新次数和概率更新次数的阈值。
另一种可能的实现方式,获取概率更新次数的阈值的方式,包括:
确定当前待解码帧的编码信息;
基于当前待解码帧的编码信息,获取概率更新次数的阈值。
另一种可能的实现方式,所述获取当前待编码帧对应的各个二元符号模型分别对应的第一参数,包括:
获得预先定义的当前待编码帧对应的各个二元符号模型分别对应的第一参数。
另一种可能的实现方式,获取当前待编码帧对应的各个二元符号模型分别对应的第一参数,之后还包括:
将各个二元符号模型分别对应的第一参数进行存储。
另一种可能的实现方式,将各个二元符号模型分别对应的第一参数进行存储,包括:
在对各个二元符号模型进行初始化时,将当前待编码帧对应的各个二元符号模型分别对应的第一参数存储至各自所占用的存储空间中。
另一种可能的实现方式,将各个二元符号模型分别对应的第一参数进行存储,包括:
在对各个二元符号模型进行初始化时,将所述各个二元符号模型分别对应的第一参数存储至二元符号模型对应的内存中。
另一种可能的实现方式,将各个二元符号模型分别对应的第一参数进行存储,包括:
若各个二元符号模型分别对应的至少一个相关信息均相同,则将相同的至少一个相关信息作为帧级别参数存储至帧级别层,至少一个相关信息为至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,和概率更新次数的相关信息。
另一种可能的实现方式,基于各个二元符号模型分别对应的第一参数,更新对应的二元符号模型,包括:
获取基本概率更新速度参数;
基于各个二元符号模型分别对应的第一参数以及获取的基本概率更新速度参数,确定各个二元符号模型分别对应的第二参数,二元符号模型对应的第二参数包括:至少一个概率更新速度参数;
基于各个二元符号模型分别对应的第二参数,更新对应的二元符号模型。
另一种可能的实现方式,获取基本概率更新速度参数,包括:
确定当前待编码帧的编码信息;
基于当前待编码帧的编码信息,获取基本概率更新速度参数。
另一种可能的实现方式,当前待编码帧的编码信息包括以下至少一项:
帧类型;量化参数;图像分辨率;时间层标识;图像顺序计数(picture ordercount,POC);编码配置;图像组(group of picture,GOP)结构。
另一种可能的实现方式,该方法还包括:将基本概率更新速度参数写入码流。
另一种可能的实现方式,获取当前待编码帧对应的各个二元符号模型分别对应的第一参数,包括以下至少一项:
从编码器预先定义的各个二元符号模型分别对应的第一参数中获取当前待编码帧对应的各个二元符号模型分别的第一参数;
从当前待编码帧对应的各个预定义的二元符号模型中获取各自预先定义的第一参数。
另一种可能的实现方式,该方法还包括:
各个二元符号模型分别对应的任一相关信息包括以下至少一种关系:
各个二元符号模型分别对应的任一相关信息均不相同;
至少两个二元符号模型分别对应的任一相关信息相同;
其中,各个待编码帧分别对应的基本概率模型参数包括以下至少一种关系:
各个待编码帧分别对应的基本概率模型参数均不相同;
至少两个待编码帧分别对应的基本概率模型参数相同。
另一种可能的实现方式,任一二元符号模型对应的任一概率更新速度参数与基本概率更新速度参数之间的差值的相关信息所占存储空间为2比特或3比特或1比特。
另一种可能的实现方式,至少概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,包括:至少一个概率更新速度参数与基本概率更新速度参数之间差值的绝对值。
另一种可能的实现方式,将各个二元符号模型分别对应的第一参数进行存储,包括以下至少一项:
将各个二元符号模型分别对应的第一参数存储至二元符号模型对应的内存中;
将各个二元符号模型分别对应的第一参数存储至各个模型各自占用的内存中。
另一种可能的实现方式,任一二元符号模型对应的第二参数包含两个概率更新速度参数:第一概率更新速度参数和第二概率更新速度参数,第一概率更新速度参数用于更新二元符号模型的第一概率,第二概率更新速度参数用于更新二元符号模型的第二概率;任一二元符号模型的第一参数中的概率更新次数的阈值包含:第一概率更新次数阈值和第二概率更新次数阈值,第二概率更新次数阈值不小于第一概率更新次数阈值;
其中,基于所述各个二元符号模型分别对应的第二参数,更新对应的二元符号模型,包括:
基于所述各个二元符号模型分别对应的第二参数以及各自对应的概率更新次数的阈值更新对应的二元符号模型的第一概率以及二元符号模型的第二概率中的至少一项;
基于各个二元符号模型分别对应的更新后的第一概率和/或更新后的第二概率更新各自对应的二元符号模型。
另一种可能的实现方式,基于任一二元符号模型对应的第二参数以及对应的概率更新次数的阈值更新对应的二元符号模型的第一概率以及二元符号模型的第二概率中的至少一项,包括:
基于所述任一二元符号模型对应的概率更新次数与第二概率更新次数阈值之间的大小关系,确定是否更新所述任一二元符号模型的第一概率和/或所述任一二元符号模型的第二概率;
基于确定结果以及所述任一二元符号模型对应的第二参数更新对应的二元符号模型的第一概率以及二元符号模型的第二概率中的至少一项。
第二方面,提供例一种模型更新装置,包括:
第一获取模块,用于获取当前待编码帧对应的各个二元符号模型分别对应的第一参数,二元符号模型对应的第一参数包括:至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息;
第一更新模块,用于基于各个二元符号模型分别对应的第一参数,更新对应的二元符号模型。
一种可能的实现方式,二元符号模型对应的第一参数还包括:概率更新次数的相关信息;
概率更新次数的相关信息包括:概率更新次数和概率更新次数的阈值。
另一种可能的实现方式,第一获取模块在获取概率更新次数的阈值时,具体用于:
确定当前待解码帧的编码信息;
基于当前待解码帧的编码信息,获取概率更新次数的阈值。
另一种可能的实现方式,所述第一获取模块在获取当前待编码帧对应的各个二元符号模型分别对应的第一参数时,具体用于:
获得预先定义的当前待编码帧对应的各个二元符号模型分别对应的第一参数。
另一种可能的实现方式,该装置还包括:第一存储模块,其中,
第一存储模块,用于将各个二元符号模型分别对应的第一参数进行存储。
另一种可能的实现方式,第一存储模块,具体用于在对各个二元符号模型进行初始化时,将当前待编码帧对应的各个二元符号模型分别对应的第一参数存储至各自所占用的存储空间中。
另一种可能的实现方式,第一存储模块,具体用于当各个二元符号模型分别对应的至少一个相关信息均相同,将相同的至少一个相关信息作为帧级别参数存储至帧级别层,至少一个相关信息为至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,和概率更新次数的相关信息。
所述第一存储模块在将所述各个二元符号模型分别对应的第一参数进行存储时,具体用于:
在对各个二元符号模型进行初始化时,将所述各个二元符号模型分别对应的第一参数存储至二元符号模型对应的内存中。
另一种可能的实现方式,第一更新模块包括:第一获取单元、第一确定单元以及第一更新单元,其中,
第一获取单元,用于获取基本概率更新速度参数;
第一确定单元,用于基于各个二元符号模型分别对应的第一参数以及获取的基本概率更新速度参数,确定各个二元符号模型分别对应的第二参数,任一二元符号模型对应的第二参数包括:至少一个概率更新速度参数;
第一更新单元,用于基于各个二元符号模型分别对应的第二参数,更新对应的二元符号模型。
另一种可能的实现方式,第一获取单元,具体用于确定当前待编码帧的编码信息,以及基于当前待编码帧的编码信息,获取基本概率更新速度参数。
另一种可能的实现方式,当前待编码帧的编码信息包括以下至少一项:
帧类型;量化参数;图像分辨率;时间层标识;图像顺序计数POC;编码配置;图像组GOP结构。
另一种可能的实现方式,该装置还包括:写入模块,其中,
写入模块,用于将基本概率更新速度参数写入码流。
另一种可能的实现方式,第一获取模块,具体用于从编码器预先定义的各个二元符号模型分别对应的第一参数中获取当前待编码帧对应的各个二元符号模型分别的第一参数,和/或,从当前待编码帧对应的各个预定义的二元符号模型中获取各自预先定义的第一参数。
另一种可能的实现方式,该装置还包括:
各个二元符号模型分别对应的任一相关信息包括以下至少一种关系:
各个二元符号模型分别对应的任一相关信息均不相同;
至少两个二元符号模型分别对应的任一相关信息相同;
其中,各个待编码帧分别对应的基本概率模型参数包括以下至少一种关系:
各个待编码帧分别对应的基本概率模型参数均不相同;
至少两个待编码帧分别对应的基本概率模型参数相同。
另一种可能的实现方式,任一二元符号模型对应的任一概率更新速度参数与基本概率更新速度参数之间的差值的相关信息所占存储空间为2比特或3比特或1比特。
另一种可能的实现方式,至少概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,包括:至少一个概率更新速度参数与基本概率更新速度参数之间差值的绝对值。
另一种可能的实现方式,任一二元符号模型对应的第二参数包含两个概率更新速度参数:第一概率更新速度参数和第二概率更新速度参数,第一概率更新速度参数用于更新二元符号模型的第一概率,第二概率更新速度参数用于更新二元符号模型的第二概率;任一二元符号模型的第一参数中的概率更新次数的阈值包含:第一概率更新次数阈值和第二概率更新次数阈值,第二概率更新次数阈值不小于第一概率更新次数阈值;
其中,第一更新单元在基于所述各个二元符号模型分别对应的第二参数,更新对应的二元符号模型时,具体用于:
基于所述各个二元符号模型分别对应的第二参数以及各自对应的概率更新次数的阈值更新对应的二元符号模型的第一概率以及二元符号模型的第二概率中的至少一项;
基于各个二元符号模型分别对应的更新后的第一概率和/或更新后的第二概率更新各自对应的二元符号模型。
另一种可能的实现方式,第一更新单元在基于任一二元符号模型对应的第二参数以及对应的概率更新次数的阈值更新对应的二元符号模型的第一概率以及二元符号模型的第二概率中的至少一项时,具体用于:
基于所述任一二元符号模型对应的概率更新次数与第二概率更新次数阈值之间的大小关系,确定是否更新所述任一二元符号模型的第一概率和/或所述任一二元符号模型的第二概率;
基于确定结果以及所述任一二元符号模型对应的第二参数更新对应的二元符号模型的第一概率以及二元符号模型的第二概率中的至少一项。
第三方面,提供了一种电子设备,其包括:
一个或多个处理器;
存储器;
一个或多个计算机程序,其中一个或多个计算机程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于:执行第一方面所示的模型更新方法对应的操作。
第四方面,提供了一种计算机可读存储介质,存储介质存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如第一方面所示的模型更新方法。
第五方面,提供了一种模型更新方法,包括:
获取当前待解码帧对应的各个二元符号模型分别对应的第一参数,二元符号模型对应的第一参数包括:至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息;
基于各个二元符号模型分别对应的第一参数,更新对应的二元符号模型。
一种可能的实现方式,二元符号模型对应的第一参数还包括:概率更新次数的相关信息;
概率更新次数的相关信息包括:概率更新次数和概率更新次数的阈值。
另一种可能的实现方式,获取概率更新次数的阈值的方式,包括:
确定当前待解码帧的编码信息;
基于当前待解码帧的编码信息,获取概率更新次数的阈值。
一种可能的实现方式,获取当前待解码帧对应的各个二元符号模型分别对应的第一参数,之后还包括:
将各个二元符号模型分别对应的第一参数进行存储。
另一种可能的实现方式,将各个二元符号模型分别对应的第一参数进行存储,包括:
在对各个二元符号模型进行初始化时,将当前待解码帧对应的各个二元符号模型分别对应的第一参数存储至各自所占用的存储空间中。
另一种可能的实现方式,将各个二元符号模型分别对应的第一参数进行存储,包括:
若各个二元符号模型分别对应的至少一个相关信息均相同,则将相同的至少一个相关信息作为帧级别参数存储至帧级别层,至少一个相关信息为至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,和概率更新次数的相关信息。
另一种可能的实现方式,基于各个二元符号模型分别对应的第一参数,更新对应的二元符号模型,包括:
获取基本概率更新速度参数;
基于内存中存储的各个二元符号模型分别对应的第一参数以及获取的基本概率更新速度参数,确定各个二元符号模型分别对应的第二参数,二元符号模型对应的第二参数包括:至少一个概率更新速度参数;
基于各个二元符号模型分别对应的第二参数,更新对应的二元符号模型。
另一种可能的实现方式,获取基本概率更新速度参数,包括至少一项:
从码流中获取基本概率更新速度参数;
基于当前待解码帧的编码信息,获取基本概率更新速度参数。
另一种可能的实现方式,当前待解码帧的编码信息包括以下至少一项:
帧类型;量化参数;图像分辨率;时间层标识;图像顺序计数POC;编码配置;图像组GOP结构。
另一种可能的实现方式,获取当前待解码帧对应的各个二元符号模型分别对应的第一参数,包括以下至少一项:
从解码器预先定义的各个二元符号模型分别对应的第一参数中获取当前待解码帧对应的各个二元符号模型分别的第一参数;
分别从当前待解码帧对应的各个预定义的二元符号模型中获取各自预先定义的第一参数。
另一种可能的实现方式,该方法还包括:
各个二元符号模型分别对应的任一相关信息包括以下至少一种关系:
各个二元符号模型分别对应的任一相关信息均不相同;
至少两个二元符号模型分别对应的任一相关信息相同;
其中,各个待解码帧分别对应的基本概率模型参数包括以下至少一种关系:
各个待解码帧分别对应的基本概率模型参数均不相同;
至少两个待解码帧分别对应的基本概率模型参数相同。
另一种可能的实现方式,任一二元符号模型对应的任一概率更新速度参数与基本概率更新速度参数之间的差值的相关信息所占存储空间为2比特或3比特或1比特。
另一种可能的实现方式,至少概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,包括:至少一个概率更新速度参数与基本概率更新速度参数之间差值的绝对值。
第六方面,提供了一种模型更新装置,包括:
第二获取模块,用于获取当前待解码帧对应的各个二元符号模型分别对应的第一参数,二元符号模型对应的第一参数包括:至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息;
第二更新模块,用于基于各个二元符号模型分别对应的第一参数,更新各自对应的二元符号模型。
一种可能的实现方式,二元符号模型对应的第一参数还包括:概率更新次数的相关信息;
概率更新次数的相关信息包括:概率更新次数和概率更新次数的阈值。
另一种可能的实现方式,所述第二获取模块在获取概率更新次数的阈值时,具体用于:
确定当前待解码帧的编码信息;
基于当前待解码帧的编码信息,获取概率更新次数的阈值。
另一种可能的实现方式,该装置还包括:第二存储模块,其中,
第二存储模块,用于将各个二元符号模型分别对应的第一参数进行存储。
另一种可能的实现方式,第二存储模块,具体用于在对各个二元符号模型进行初始化时,将当前待解码帧对应的各个二元符号模型分别对应的第一参数存储至各自所占用的存储空间中。
另一种可能的实现方式,第二存储模块,具体用于当各个二元符号模型分别对应的至少一个相关信息均相同,将相同的至少一个相关信息作为帧级别参数存储至帧级别层,至少一个相关信息为至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息。
另一种可能的实现方式,第二更新模块包括:第二获取单元、第二确定单元以及第二更新单元,其中,
第二获取单元,用于获取基本概率更新速度参数;
第二确定单元,用于基于内存中存储的各个二元符号模型分别对应的第一参数以及获取的基本概率更新速度参数,确定各个二元符号模型分别对应的第二参数,二元符号模型对应的第二参数包括:至少一个概率更新速度参数;
第二更新单元,用于基于各个二元符号模型分别对应的第二参数,更新对应的二元符号模型。
另一种可能的实现方式,第二获取单元,具体用于从码流中获取基本概率更新速度参数,和/或基于当前待解码帧的编码信息,获取基本概率更新速度参数。
另一种可能的实现方式,当前待解码帧的编码信息包括以下至少一项:
帧类型;量化参数;图像分辨率;时间层标识;图像顺序计数POC;编码配置;图像组GOP结构。
另一种可能的实现方式,第二获取模块,具体用于从解码器预先定义的各个二元符号模型分别对应的第一参数中获取当前待解码帧对应的各个二元符号模型分别的第一参数,和/或,分别从当前待解码帧对应的各个预定义的二元符号模型中获取各自预先定义的第一参数。
另一种可能的实现方式,该装置还包括:
各个二元符号模型分别对应的任一相关信息包括以下至少一种关系:
各个二元符号模型分别对应的任一相关信息均不相同;
至少两个二元符号模型分别对应的任一相关信息相同;
其中,各个待解码帧分别对应的基本概率模型参数包括以下至少一种关系:
各个待解码帧分别对应的基本概率模型参数均不相同;
至少两个待解码帧分别对应的基本概率模型参数相同。
另一种可能的实现方式,任一二元符号模型对应的任一概率更新速度参数与基本概率更新速度参数之间的差值的相关信息所占存储空间为2比特或1比特或3比特。
另一种可能的实现方式,至少概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,包括:至少一个概率更新速度参数与基本概率更新速度参数之间差值的绝对值。
第七方面,提供了一种电子设备,其包括:
一个或多个处理器;
存储器;
一个或多个计算机程序,其中一个或多个计算机程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于:执行第五方面所示的模型更新方法对应的操作。
第八方面,提供了一种计算机可读存储介质,其特征在于,存储介质存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如第五方面所示的模型更新方法。
本申请提供的技术方案带来的有益效果是:
本申请提供了一种模型更新方法、装置、电子设备及计算机可读存储介质,与现有技术中在对模型进行更新时将二元字符对应的概率更新速度参数存储至内存相比,本申请获取当前待编码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,并通过获取的各个二元符号模型分别对应的至少一个相关信息对各自二元符号模型进行更新,即在对模型进行初始化的过程中,仅需要存储当前待编码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间差值的相关信息,而不是直接存储各个二元符号模型分别对应的至少一个概率更新速度参数,并且概率更新速度参数与基本概率更新速度参数之间差值的相关信息所占用的存储空间小于直接存储概率更新速度参数所占用的存储空间,从而可以降低用于更新模型的参数所占用的存储空间。
本申请提供了另一种模型更新方法、装置、电子设备及计算机可读存储介质,与现有技术中在对模型进行更新时将二元字符对应的概率更新速度参数存储至内存相比,本申请获取当前待解码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,并通过获取的各个二元符号模型分别对应的至少一个相关信息对各自二元符号模型进行更新,即在对模型进行初始化的过程中,仅需要存储当前待解码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间差值的相关信息,而不是直接存储各个二元符号模型分别对应的至少一个概率更新速度参数,并且概率更新速度参数与基本概率更新速度参数之间差值的相关信息所占用的存储空间小于直接存储概率更新速度参数所占用的存储空间,从而可以降低用于模型更新的参数所占用的存储空间。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种模型更新方法的流程示意图;
图2为本申请实施例提供的另一种模型更新方法的流程示意图;
图3为本申请实施例提供的一种模型更新装置的结构示意图;
图4为本申请实施例提供的另一种模型更新装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在现有的视频编码中,例如AVS2,H.264/AVC和HEVC,都使用基于上下文的自适应二进制算术编码(Context-based adaptive binary arithmetic coding,CABAC)方法对语法元素进行二值化之后的二元符号串进行熵编码来进一步提高压缩率。CABAC从概率的角度再一次压缩,包括二值化、建立二元符号模型、算术编码和更新二元符号模型的信息。CABAC相比于现有视频编码(H.264/AVC)中的熵编码方法-基于上下文的自适应边长编码(Context adaptive variable length coding),可将压缩率提高9%~14%,因此CABAC模块是视频编码实现高压缩率的重要模块。
CABAC的基本思想是用区间递进的方法寻找一个码字,用这个码字代表在(0,1)区间上一个数来表示整个输入的字符流,而不是给输入的字符流中的每个字符分别制定一个码字,因此大大节省了写入码流的码字,提高了压缩率。从第一个二元符号确定的初始区间(0,1)开始,在每一个新的二元符号出现后递归地划分当前区间,划分的根据就是每个二元符号的概率。当处理完最后一个二元符号后,得到最终区间,在最终区间中挑选一个数作为输出。进一步地,解码器按照和编码器相同的方法,采用逆过程获得各个二元符号。
由于二元符号串中各二元符号的概率分布根据不同的编码参数和输入的视频源的内容而动态变化,因此需要存储和维护一个二元符号模型,模型中的信息包括:当前的最小可能的字符(Least Probable Symbol,LPS)概率信息或者当前的最大可能的字符(MostProbable Symbol,MPS)概率信息、当前区间的下限、当前区间的大小和当前的最大可能的字符(Most Probable Symbol,MPS)。对于VVC来说,一个编码图像可能被划分为一帧或者多帧,每个帧包含702个二元符号模型。在编码当前帧之前,首先将预先定义的702个二元符号模型载入内存,每个预先定义的二元符号的二元符号模型中包含:LPS概率的初始值和MPS的初始值。在区间递进时,通过二元符号模型中的信息估计当前二元符号的概率,然后根据当前二元符号信息(包括:当前二元符号的概率信息以及MPS等),更新其二元符号模型中的信息。
在AVS3第一阶段标准采用单模型的CABAC方法中,二元符号模型包含概率更新次数相关信息cycle和最大可能的字符(MPS)的概率信息,等。其中,MPS概率信息(LG_PMPS)为MPS的概率(PMPS)转换到对数域的值,计算公式为LG_PMPS=1024x(-log2(PMPS))。bin为第i次出现的二元符号,bin可能是MPS,也可能是LPS。概率更新次数相关信息cycle的更新过程为,当bin为MPS时,若cycle等于0,则cycle设置为1,若cycle不等于0,则cycle不变;当bin为LPS时,若cycle小于等于2,则cycle加1,否则cycle等于3。
概率更新速度参数cwr根据cycle的大小推导获得:若cycle≤1,则cwr为3;若cycle=2,则cwr为4;否则,即cycle=3,则cwr为5。
在第i次二元符号出现后根据前一次i-1二元符号的概率信息来更新二元符号模型中的概率信息:
若二元符号bin为MPS,则LG_Pi=LG_Pi-1–Pi-1>>cwr–Pi-1>>(cwr+2);
若二元符号bin为LPS,则Pi=Pi-1+LG_s,LG_s=log2(2cwr/2cwr-1)x1024.
在联合视频专家组(Joint Video Experts Team,JVET)VVC中,使用了一种多模型的CABAC方法,它的思想是:对于同一个二元符号同时存储两个二元符号模型,两个二元符号模型中的概率更新的速度不同。首先在二元符号模型中的概率利用“指数平滑法”进行更新,如下述公式(1)所示,由γ控制概率更新的速度,其值越小则模型更新速度越慢,受随机噪声的干扰越小,估计出的概率也越准确;反之,其值越大则模型更新速度越快,受随机噪声的干扰越大。
Pi=γbi+(1-γ)Pi-1 (1)
用整数P表示概率p,其最大值为Y=2k-1,其中,用k比特表示整数P,则公式(1)可写为公式(2),N为公式(2)中的右移位数,与概率更新速度对应,γ=1/2N,其中,γ为用于计算更新后p的参数,N为用于计算更新后P的参数,N越大、γ值越小,则模型更新速度越慢,受随机噪声的干扰越小,估计出的概率也越准确;反之,N越小,γ值越大,则模型更新速度越快,受随机噪声的干扰越大。因此在当前第i次二元符号出现后根据前一次i-1二元符号来更新二元符号模型中的概率:
Pi=Pi-1+((2k-Pi-1)>>N) (2)
其中,公式(2)中Pi-1是前一次(第i-1次)二元符号出现后的概率值,第i次出现后的概率值Pi等于公式(2)的等号右式。>>为按位右移操作符,>>N表示按位右移N位。
多模型的CABAC方法同时使用两个概率P0和P1,其中P0使用小的右移位数a=4,P1使用大的右移位数b=7分别控制两个概率更新的速度,当前第i个二元符号出现后概率等于P0和P1的平均值,具体如下述公式所示:
P0i=(Y>>a)+P0i-1–(P0i-1>>a)
P1i=(Y>>b)+P1i-1–(P0i-1>>b)
Pi=(P0i+P1i+1)>>1
这样做的好处是:假设LPS的最佳概率为0.1,而初始概率设为了0.5。使用大的右移位数收敛到最佳概率需经过几百次的更新,因此引入使用小的右移位数更新概率的概念,即利用小的右移位数概率更新快的特点,使得LPS概率可以快速收敛到最佳概率附近。同时,利用大右移位数减少随机噪声的干扰。结合两个右移位数的优点,可以提高熵编码的编码效率
但是VVC中的多模型的CABAC方法对所有待编码的语法元素二值化后的二元符号串中各二元符号使用相同的大右移位数b和小右移位数a。由于输入视频源的内容特征不同,编码参数不同,不同的语法元素的二元符号串中二元符号的概率分布和变化情况有可能存在很大差别。例如,对于帧间预测中的合并模式,在量化参数(QuantizationParameter,QP)值较大时被选中的概率比QP值较小时被选中的概率大,因此可以在QP值较大时给帧间预测合并模式的语法元素对应二元符号的二元符号模型中概率更新的小右移位数值设置为一个较小值,例如3,使LPS概率值可以快速更新到最终概率附近;而在QP较小时设置为一个较大值,例如5,以使得LPS概率值受随机噪声的干扰小一些,估计出较准确的概率。但是现有VVC中的方法无法实现为各语法元素设置对应的最佳右移位数,因此无法达到更大的压缩率。
还有一种方式,即为各语法元素二元符号串的各二元符号的二元符号模型设置不同的右移位数。每个二元符号模型分别使用4个比特存储a和b,其中1<a≤b<9,4个比特无符号数的取值范围是0~(24-1)。也就是说,每个二元符号模型需要额外占用8个比特的存储空间。VVC中每一帧都有702个二元符号模型,因此每一帧都需要额外占用8×702个比特的存储空间。而且一个编码图像划分的帧越多,额外占用的存储空间就越大。
从对上述技术问题的分析中可以发现,根据不同的编码参数对不同的语法元素二元符号串中各二元符号的二元符号模型设置不同的大右移位数和小右移位数可以进一步降低输出的码率。本申请提出一种使用存储偏移值的方法,即在已知基本右移位数的前提下,仅存储大右移位数与基本右移位数之差,和小右移位数与基本右移位数之差。例如,在现有技术中对每个二元符号模型都分别使用4个比特存储a和4个比特存储b,其中1<a≤b<9,4个比特无符号数的取值范围是0~(24-1),共需要8比特。如果使用本申请,已知基本右移位数5,对每个二元符号模型使用2比特存储大右移位数与基本右移位数之差(b-5),0≤(b-5)≤3,2个比特无符号数的取值范围是0~(22-1),使用2比特存储小右移位数与基本右移位数之差(5-a),0≤(5-a)≤3,共需要4比特。对于VVC来说,每一帧都有702个二元符号模型,使用本申请可以使每一帧节省4×702比特的存储空间;对于AVS3来说,每一帧有389个二元符号模型,使用本申请可以使每一帧节省4×389个比特。也有技术将a和b的取值范围设置为:0≤a≤b≤11,分别使用4个比特存储a和b。而使用本申请,若已知基本右移位数为5,则分别需要3个比特来存储(5-a)和(b-5),其中0≤(5-a)≤4,0≤(b-5)≤6,相比现有技术,每个二元符号模型可以节省2个比特的存储空间。而且,一个编码图像划分的帧越多,节省的存储空间就越大。也就是说相比直接存储大右移位数和小右移位数的方法,可以极大地节省存储空间,同时可以进一步提高使用多模型的CABAC方法的编码效率。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请实施例提供了一种模型更新方法,如图1所示,该方法包括:
步骤S101、获取当前待编码帧对应的各个二元符号模型分别对应的第一参数。
其中,二元符号模型对应的第一参数包括:至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息。
本申请实施例的一种可能的实现方式,至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息包括:至少一个概率更新速度参数与基本概率更新速度参数之间差值的绝对值。
例如,二元符号模型对应的第一参数包括以下至少一项:第一概率更新速度参数与基本概率更新速度参数之间的差值的绝对值,以及第二概率更新速度参数与基本概率更新速度参数之间的差值的绝对值。
步骤S102、基于各个二元符号模型分别对应的第一参数,更新对应的二元符号模型。
本申请实施例的另一种可能的实现方式,步骤S102之后还可以包括:基于更新后的二元符号模型的概率信息对待编码帧中的所有语法元素进行编码。
本申请实施例提供了一种模型更新方法,与现有技术中在对模型进行更新时将二元字符对应的概率更新速度参数存储至内存相比,本申请实施例获取当前待编码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,并通过获取的各个二元符号模型分别对应的至少一个相关信息对各自二元符号模型进行更新,即在对模型进行初始化时,仅需要存储当前待编码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间差值的相关信息,而不是直接存储各个二元符号模型分别对应的至少一个概率更新速度参数,并且概率更新速度参数与基本概率更新速度参数之间差值的相关信息所占用的存储空间小于直接存储概率更新速度参数所占用的存储空间,从而可以降低用于模型更新的参数所占用的存储空间。
本申请实施例的一种可能的实现方式,二元符号模型对应的的第一参数还可以包括:概率更新次数的相关信息。在本申请实施例中,概率更新次数的相关信息包括二元符号模型概率更新次数和概率更新次数的阈值。
本申请实施例的另一种可能的实现方式,获取所述概率更新次数的阈值的方式,包括:确定当前待编码帧的编码信息;基于所述当前待编码帧的编码信息,获取所述概率更新次数的阈值。
本申请实施例的另一种可能的实现方式,步骤S101具体可以包括:获得预先定义的当前待编码帧对应的各个二元符号模型分别对应的第一参数。
本申请实施例的另一种可能的实现方式,步骤101之后还可以包括:步骤Sa(图中未示出),其中,
步骤Sa、将各个二元符号模型分别对应的第一参数进行存储。
本申请实施例的另一种可能的实现方式,步骤Sa可以包括:在对各个二元符号模型进行初始化时,将各个二元符号模型分别对应的第一参数存储至二元符号模型对应的内存中。
对于本申请实施例,所有二元符号模型对应的第一参数在内存中对应特定的存储空间。在本申请实施例中,在对各个二元符号模型进行初始化时,将各个二元符号模型分别对应的第一参数存储至该内存对应的特定的存储空间。
本申请实施例的另一种可能的实现方式,步骤Sa可以包括:在对各个二元符号模型进行初始化时,将当前待编码帧对应的各个二元符号模型分别对应的第一参数存储至各自所占用的存储空间中。
对于本申请实施例,若各个二元符号模型分别对应的至少一个相关信息均相同,和/或各个二元符号模型分别对应的至少一个相关信息不均相同,均可以在对各个二元符号模型进行初始化时,将当前待编码帧对应的各个二元符号模型分别对应的第一参数存储至各自所占用的存储空间中。
本申请实施例的另一种可能的实现方式,将各个二元符号模型分别对应的第一参数进行存储,包括:若各个二元符号模型分别对应的至少一个相关信息均相同,则将相同的至少一个相关信息作为帧级别参数存储至帧级别层,至少一个相关信息为至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息。
对于本申请实施例,若任一二元符号模型对应的第一参数包括:第一概率更新速度参数与基本概率更新速度参数之间的差值以及第二概率更新速度参数与基本概率更新速度参数之间的差值,则执行以下至少一项:
若各个二元符号模型分别对应的第一概率更新速度参数与基本概率更新速度参数之间的差值的相关信息均相同,则将第一概率更新速度参数与基本概率更新速度参数之间的差值的相关信息作为帧级别参数存储至帧级别层;
若各个二元符号模型分别对应的第二概率更新速度参数与基本概率更新速度参数之间的差值的绝对值均相同,则将第二概率更新速度参数与基本概率更新速度参数之间的差值的绝对值作为帧级别参数存储至帧级别层。
例如,各个二元符号模型分别对应的第二概率更新速度参数与基本概率更新速度参数之间的差值的绝对值均为2,则将2作为帧级别参数存储至帧级别层,且仅需存储一个值。
本申请实施例的另一种可能的实现方式,步骤S102具体可以包括:步骤S1021(图中未示出)、步骤S1022(图中未示出)以及步骤S1023(图中未示出),其中,
步骤S1021、获取基本概率更新速度参数。
步骤S1022、基于各个二元符号模型分别对应的第一参数以及获取的基本概率更新速度参数,确定各个二元符号模型分别对应的第二参数。
其中,二元符号模型对应的第二参数包括:至少一个概率更新速度参数。
步骤S1023、基于各个二元符号模型分别对应的第二参数,更新对应的二元符号模型。
本申请实施例的另一种可能的实现方式,步骤S1021具体包括:确定当前待编码帧的编码信息;基于当前待编码帧的编码信息,获取基本概率更新速度参数。
本申请实施例的另一种可能的实现方式,当前待编码帧的编码信息包括以下至少一项:
帧类型;量化参数;图像分辨率;时间层标识;POC;编码配置;GOP结构。
本申请实施例的另一种可能的实现方式,该方法还包括:将基本概率更新速度参数写入码流。
具体地,在对待编码帧进行编码之前,可以将基本概率更新速度参数写入码流。
本申请实施例的另一种可能的实现方式,步骤S101具体可以包括:步骤S1011(图中未示出)以及步骤S1012(图中未示出)中的至少一项,其中,
步骤S1011、从编码器预先定义的各个二元符号模型分别对应的第一参数中获取当前待编码帧对应的各个二元符号模型分别的第一参数。
步骤S1012、从当前待编码帧对应的各个预定义的二元符号模型中获取各自预先定义的第一参数。
本申请实施例的另一种可能的实现方式,该方法还包括:
各个二元符号模型分别对应的任一相关信息包括以下至少一种关系:
各个二元符号模型分别对应的任一相关信息均不相同;
至少两个二元符号模型分别对应的任一相关信息相同;
其中,各个待编码帧分别对应的基本概率模型参数包括以下至少一种关系:
各个待编码帧分别对应的基本概率模型参数均不相同;
至少两个待编码帧分别对应的基本概率模型参数相同。
本申请实施例的另一种可能的实现方式,任一二元符号模型对应的第二参数包含两个概率更新速度参数:第一概率更新速度参数和第二概率更新速度参数,第一概率更新速度参数用于更新二元符号模型的第一概率,第二概率更新速度参数用于更新二元符号模型的第二概率;任一二元符号模型的第一参数中的概率更新次数的阈值包含:第一概率更新次数阈值和第二概率更新次数阈值,第二概率更新次数阈值不小于第一概率更新次数阈值;
其中,基于各个二元符号模型分别对应的第二参数,更新对应的二元符号模型,包括:
基于各个二元符号模型分别对应的第二参数以及各自对应的概率更新次数的阈值更新对应的二元符号模型的第一概率以及二元符号模型的第二概率中的至少一项;
基于各个二元符号模型分别对应的更新后的第一概率和/或更新后的第二概率更新各自对应的二元符号模型。
本申请实施例的另一种可能的实现方式,基于任一二元符号模型对应的第二参数以及对应的概率更新次数的阈值更新对应的二元符号模型的第一概率以及二元符号模型的第二概率中的至少一项,包括:
基于任一二元符号模型对应的概率更新次数与第二概率更新次数阈值之间的大小关系,确定是否更新任一二元符号模型的第一概率和/或任一二元符号模型的第二概率;
基于确定结果以及任一二元符号模型对应的第二参数更新对应的二元符号模型的第一概率以及二元符号模型的第二概率中的至少一项。
本申请实施例还提供了另一种解码的方法,如图2所示,其中,
步骤S201、获取当前待解码帧对应的各个二元符号模型分别对应的第一参数。
其中,二元符号模型对应的第一参数包括:至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息。
本申请实施例的一种可能的实现方式,至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息包括:至少一个概率更新速度参数与基本概率更新速度参数之间差值的绝对值。
例如,二元符号模型对应的第一参数包括以下至少一项:第一概率更新速度参数与基本概率更新速度参数之间的差值的绝对值,以及第二概率更新速度参数与基本概率更新速度参数之间的差值的绝对值。
本申请实施例的一种可能的实现方式,至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息包括:至少一个概率更新速度参数与基本概率更新速度参数之间差值的绝对值。
步骤S202、基于各个二元符号模型分别对应的第一参数,更新对应的二元符号模型。
本申请实施例的另一种可能的实现方式,步骤S202之后还可以包括:基于更新后的二元符号模型的概率信息对对待解码帧中的所有语法元素进行解码。
本申请实施例提供了另一种模型更新方法,与现有技术中在对模型进行更新时将二元字符对应的概率更新速度参数存储至内存相比,本申请实施例获取当前待解码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,并通过获取的各个二元符号模型分别对应的至少一个相关信息对各自二元符号模型进行更新,即在对模型进行初始化时,仅需要存储当前待解码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间差值的相关信息,而不是直接存储各个二元符号模型分别对应的至少一个概率更新速度参数,并且概率更新速度参数与基本概率更新速度参数之间差值的相关信息所占用的存储空间小于直接存储概率更新速度参数所占用的存储空间,从而可以降低用于模型更新的参数所占用的存储空间。
本申请实施例的一种可能的实现方式,二元符号模型对应的第一参数还可以包括:概率更新次数的相关信息。其中,概率更新次数的相关信息包括:概率更新次数和概率更新次数的阈值。
本申请实施例的另一种可能的实现方式,获取概率更新次数的阈值的方式,包括:确定当前待解码帧的编码信息;基于当前待解码帧的编码信息,获取概率更新次数的阈值。
本申请实施例的另一种可能的实现方式,步骤S201之后还可以包括:步骤Sb(图中未示出),其中,
步骤Sb、将各个二元符号模型分别对应的第一参数进行存储。
对于本申请实施例,将各个二元符号模型分别对应的第一参数存储至内存。
本申请实施例的另一种可能的实现方式,步骤Sb具体可以包括:在对各个二元符号模型进行初始化时,将当前待解码帧对应的各个二元符号模型分别对应的第一参数存储至各自所占用的存储空间中。
对于本申请实施例,若各个二元符号模型分别对应的至少一个相关信息均相同,和/或各个二元符号模型分别对应的至少一个相关信息不均相同,均可以在对各个二元符号模型进行初始化时,将当前待解码帧对应的各个二元符号模型分别对应的第一参数存储至各自所占用的存储空间中。
本申请实施例的另一种可能的实现方式,将各个二元符号模型分别对应的第一参数进行存储,包括:若各个二元符号模型分别对应的至少一个相关信息均相同,则将相同的至少一个相关信息作为帧级别参数存储至帧级别层,至少一个相关信息为至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息。
对于本申请实施例,若任一二元符号模型对应的第一参数包括:第一概率更新速度参数与基本概率更新速度参数之间的差值以及第二概率更新速度参数与基本概率更新速度参数之间的差值,则执行以下至少一项:
若各个二元符号模型分别对应的第一概率更新速度参数与基本概率更新速度参数之间的差值的相关信息均相同,则将第一概率更新速度参数与基本概率更新速度参数之间的差值的相关信息作为帧级别参数存储至帧级别层;
若各个二元符号模型分别对应的第二概率更新速度参数与基本概率更新速度参数之间的差值的绝对值均相同,则将第二概率更新速度参数与基本概率更新速度参数之间的差值的绝对值作为帧级别参数存储至帧级别层。
本申请实施例的另一种可能的实现方式,步骤S202具体可以包括:步骤S2021(图中未示出)、步骤S2022(图中未示出)以及步骤S2023(图中未示出),其中,
步骤S2021、获取基本概率更新速度参数。
步骤S2022、基于内存中存储的各个二元符号模型分别对应的第一参数以及获取的基本概率更新速度参数,确定各个二元符号模型分别对应的第二参数。
其中,二元符号模型对应的第二参数包括:至少一个概率更新速度参数。
步骤S2023、基于各个二元符号模型分别对应的第二参数,更新对应的二元符号模型。
本申请实施例的另一种可能的实现方式,步骤S2021具体可以包括:步骤S2021a(图中未示出)以及步骤S2021b(图中未示出)中的至少一项,其中,
步骤S2021a、从码流中获取基本概率更新速度参数。
步骤S2021b、基于当前待解码帧的编码信息,获取基本概率更新速度参数。
本申请实施例的另一种可能的实现方式,当前待解码帧的编码信息包括以下至少一项:
帧类型;量化参数;图像分辨率;时间层标识;POC;编码配置;GOP结构。
本申请实施例的另一种可能的实现方式,步骤S201具体可以包括:步骤S2011(图中未示出)以及步骤S2012(图中未示出)中的至少一项,其中,
步骤S2011、从解码器预先定义的各个二元符号模型分别对应的第一参数中获取当前待解码帧对应的各个二元符号模型分别的第一参数。
步骤S2012、分别从当前待解码帧对应的各个预定义的二元符号模型中获取各自预先定义的第一参数。
本申请实施例的另一种可能的实现方式,各个二元符号模型分别对应的任一相关信息包括以下至少一种关系:
各个二元符号模型分别对应的任一相关信息均不相同;
至少两个二元符号模型分别对应的任一相关信息相同;
其中,各个待解码帧分别对应的基本概率模型参数包括以下至少一种关系:
各个待解码帧分别对应的基本概率模型参数均不相同;
至少两个待解码帧分别对应的基本概率模型参数相同。
上述介绍了方法流程的角度介绍模型更新方法,下述通过几个具体的实施例将模型更新与编码器进行编码(例如熵编码)结合,以及将模型更新与解码器进行解码(例如熵解码)相结合进行介绍,具体如下所示:
本申请实施例提供一种编码器中熵编码的方法,每个编码图像可以划分为一帧,也可以划分为至少两帧,在此不做限制。当一个编码图像中划分为一帧时,具体针对该图像进行编码的方法详见下述实施例;若一个编码图像中划分为至少两帧,则对该编码图像进行编码时对每帧图像均进行编码,其中针对任一帧图像进行编码的方式详见下述实施例,其中,
步骤S301(图中未示出):获取待编码帧中各语法元素对应二元符号串的二元符号的二元符号模型参数。
对于本申请实施例,任一二元符号模型参数可以包括:第一概率更新速度参数与基本概率更新速度参数之间差值的绝对值以及第二概率更新速度参数与基本概率更新速度参数之间差值的绝对值。在本申请实施例中,第一概率更新速度参数可以包括:大右位移数b,第二概率更新速度参数可以包括:小右位移数a,基本概率更新速度参数可以包括:基本右位移数Base。
对于本申请实施例,大右位移数的数值大于小右位移数的数值。
对于本申请实施例,任一概率模型速度参数与基本概率更新速度参数之间差值的绝对值可以占用存储空间为1比特、2比特或者3比特。在本申请实施例中,第一概率更新速度参数与基本概率更新速度参数之间差值的绝对值可以占用存储空间为1比特、2比特或者3比特;第二概率更新速度参数与基本概率更新速度参数之间差值的绝对值可以占用存储空间为1比特、2比特或者3比特。
步骤S302(图中未示出):在编码当前帧之前且对各二元符号的二元符号模型初始化时,将各自二元符号模型的参数存储到模型占用的内存中。
对于本申请实施例,对于各二元符号,(Base-a)的值可以都相同,也可以各不相同,也可以部分相同。(b-Base)的值可以都相同,也可以各不相同,也可以部分相同。其中Base根据当前待编码帧的类型不同可能包括:Base1、或Base2、或Base3。
对于本申请实施例,当对于各二元符号,(Base-a)的值都相同,和/或,(b-Base)的值都相同,(Base-a)的绝对值和(b-Base)的绝对值作为帧级别的参数存储在帧级别层,且仅需各自存储一个值,当然也可以在初始化时将其值存储在各自的模型占用的内存中。
对于本申请实施例,当对于各二元符号,(Base-a)的值不都相同,且(b-Base)的值不都相同,则在初始化时将其值存储在各自的模型占用的内存中。
步骤S303(图中未示出):确定当前待编码帧的编码信息,并根据当前待编码帧的编码信息获取对应的基本概率更新速度参数(基本右位移数)。
对于本申请实施例,待编码帧可能为帧内编码帧(I帧)、单向帧间编码帧(P帧)、双向帧间编码帧(B帧)。
可选地,编码信息还可以包括但不限于:帧类型;量化参数;图像分辨率;时间层标识;POC;编码配置;GOP结构。
对于本申请实施例,基于待编码帧的帧类型确定基本概率更新速度参数(基本右位移数),其中待编码帧的帧类型不同,基本概率更新速度参数(基本右位移数)可以相同,也可以不同。
例如,I帧的基本右移位数为Base1,B帧的基本右移位数为Base2,P帧的基本右移位数为Base3。Base1、Base2和Base3三个值可以完全相同,也可以各不相同,也可以任意两个相同。在本申请实施例中不做限定。
对于本申请实施例,基于待编码帧的量化参数确定基本概率更新速度参数(基本右位移数),其中待编码帧的量化参数不同,基本概率更新速度参数(基本右位移数)可以相同,也可以不同。
例如,QP<38,基本右位移数可以为Base4,QP>38或者QP=38,基本右位移数可以为Base5,其中,Base4和Base5可以相同,也可以不同。
对于本申请实施例,基于待编码帧的图像分辨率确定基本概率更新速度参数(基本右位移数),其中待编码帧的图像分辨率不同,基本概率更新速度参数(基本右位移数)可以相同,也可以不同。
例如,对于分辨率为1280×720,基本右移位数为Base6;对于分辨率为1920×1080,基本右移位数为Base7;对于分辨率为4k,基本右移位数为Base8。其中,Base6、Base7以及Base8可以均相同,也可以均不相同,还可以任意两个相同。
对于本申请实施例,基于待编码帧的编码信息中的任意组合确定基本概率更新速度参数(基本右位移数),其中,待编码帧的编码信息中任意组合不同,基本概率更新速度参数(基本右位移数)可以相同,也可以不同。
例如,I帧QP<38时的基本右移位数为Base9,I帧QP>38或者QP=38时的基本右移位数为Base10,B帧QP<38时的基本右移位数为Base11,B帧QP>38或者QP=38时的基本右移位数为Base12,P帧QP<38时的基本右移位数为Base13,B帧QP>38或者QP=38时的基本右移位数为Base14。
例如,POC为0的I帧图像的基本右移位数为Base15,POC大于0的I帧的基本右移位数为Base16,B帧的基本右移位数为Base17,P帧的基本右移位数为Base18。
例如,对于I帧图像来说,当编码配置为全I帧(All Intra,AI)时的基本右移位数为Base19,当编码配置为低延(Low Delay,LD)时和随机接入(Random Access,RA)时的基本右移位数为Base20;B帧在所有编码配置下的基本右移位数为Base21,P帧在所有编码配置下的基本右移位数为Base22。
对于本申请实施例,步骤S303可以在步骤S301之前执行,还可以在步骤S302之前执行,还可以在步骤S301之后执行,还可以在步骤S302之后执行,或者还可以与步骤S301和/或步骤S302同时执行,在本申请实施例中,步骤S303与步骤S301以及步骤S302之间不存在严格的先后执行顺序。
对于本申请实施例,基本右移位数的值可以为编码器和解码器预先规定的一致的值,编码器在编码帧前将其值写入码流;或者基本右移位数为编码器和解码器预先规定的一致的值,无需写入码流。在本申请实施例中,可以在对待编码帧进行编码之前,将基本右位移数写入码流。
步骤S304(图中未示出):根据步骤S302中存储的各二元符号的二元符号模型中的参数,以及步骤S303中获得的基本右移位数,计算获得大右移位数b和小右移位数a,并更新模型中的信息,即在第i次二元符号出现后更新该二元符号的二元符号模型中的LPS概率Pi,最大值为Y=2k
P0i=(Y>>a)+P0i-1–(P0i-1>>a)
P1i=(Y>>b)+P1i-1–(P0i-1>>b)
Pi=(P0i+P1i+1)>>1
对于本申请实施例,针对当前图像中的所有帧均按照上述方式进行编码之后,即编码完当前图像中所有帧的所有语法元素,生成并输出当前图像的码流。
本申请实施例还提供另一种编码器中熵编码的方法,每个编码图像可以划分为一帧,也可以划分为至少两帧,在此不做限制。当一个编码图像中划分为一帧时,具体针对该图像进行编码的方法详见下述实施例;若一个编码图像中划分为至少两帧,则对该编码图像进行编码时需要对每帧图像进行编码,其中针对任一帧图像进行编码的方式详见下述实施例,其中,
步骤S401(图中未示出):获得预先定义的各语法元素对应二元符号串的二元符号的二元符号模型的参数。
其中,预先定义的模型参数包含但不限于:第一概率更新速度参数与基本概率更新速度参数之间差值的绝对值和/或第二概率更新速度参数与基本概率更新速度参数之间差值的绝对值。在本申请实施例中,第一概率更新速度参数可以包括:大右位移数b,第二概率更新速度参数可以包括:小右位移数a,基本概率更新速度参数可以包括:基本右位移数base。
对于本申请实施例,预先定义的预先定义的模型参数根据编码参数的不同而不同,也可以相同。在本申请实施例中不做限定。
步骤S402(图中未示出):在编码当前帧之前对各二元符号的二元符号模型初始化时,读入步骤S401中获得的预先定义的模型参数,并分别对应存储到各模型占用的内存中。
步骤S403(图中未示出):确定当前待编码帧的编码信息,并根据当前待编码帧的编码信息确定基本概率模型参数(基本右位移数)。
具体地,当前待编码帧的类型帧可能包括:帧内编码帧(I帧)、单向帧间编码帧(P帧)、双向帧间编码帧(B帧)。
对于本申请实施例,编码信息还可以包括但不限于:帧类型;量化参数;图像分辨率;时间层标识;POC;编码配置;GOP结构。
对于本申请实施例,步骤S403可以在步骤S401之前执行,还可以在步骤S402之前执行,还可以在步骤S401之后执行,还可以在步骤S402之后执行,或者还可以与步骤S401和/或步骤S402同时执行,在本申请实施例中,步骤S403与步骤S401以及步骤S402之间不存在严格的先后执行顺序。
步骤S404(图中未示出):根据步骤S402中存储的各二元符号的二元符号模型中的参数,以及步骤S403获得的基本概率模型参数(基本右位移数),分别计算各个二元符号模型分别对应的第一概率更新速度参数和/或第二概率更新速度参数(大右移位数b和/或小右移位数a),并更新模型中的信息,即在第i次二元符号出现后更新该二元符号的二元符号模型中的LPS(最小可能的字符)概率Pi,最大值为Y=2k
P0i=(Y>>a)+P0i-1–(P0i-1>>a)
P1i=(Y>>b)+P1i-1–(P0i-1>>b)
Pi=(P0i+P1i+1)>>1
对于本申请实施例,针对当前图像中的所有帧均按照上述方式进行编码之后,即编码完当前图像中所有帧的所有语法元素,生成并输出当前图像的码流。
上述通过具体实施例介绍了通过编码器进行编码的方式,下述通过具体实施例介绍了通过解码器进行解码的方式,每个解码图像可以划分为一帧,也可以划分为至少两帧,在此不做限制。当一个解码图像中划分为一帧时,具体针对该图像进行解码的方法详见下述实施例;若一个解码图像中划分为至少两帧,则对该解码图像进行解码时需要对每帧图像进行解码,其中针对任一帧图像进行解码的方式详见下述实施例,其中,
步骤S601(图中未示出):获取当前待解码帧对应的各语法元素对应二元符号串的二元符号的二元符号模型参数。
对于本申请实施例,任一二元符号模型参数可以包括:第一概率更新速度参数与基本概率更新速度参数之间差值的绝对值以及第二概率更新速度参数与基本概率更新速度参数之间差值的绝对值。在本申请实施例中,第一概率更新速度参数可以包括:大右位移数b,第二概率更新速度参数可以包括:小右位移数a,基本概率更新速度参数可以包括:基本右位移数Base。
步骤S602(图中未示出):在解码当前帧之前对各二元符号的二元符号模型初始化时,将各自二元符号模型的参数分别存储到模型占用的内存中。
对于本申请实施例,对于各二元符号,(Base-a)的值可以都相同,也可以各不相同,也可以部分相同。(b-Base)的值可以都相同,也可以各不相同,也可以部分相同。其中Base根据当前待解码帧的类型可能包括:Base1、或Base2、或Base3。
对于本申请实施例,当对于各二元符号,(Base-a)的值都相同时,和/或,(b-Base)的值都相同,(Base-a)的值和(b-Base)的值作为帧级别的参数存储在帧级别层,且仅需各自存储一个值;当然还可以在初始化时将其值分别存储在各自的模型占用的内存中。
步骤S603(图中未示出):确定当前待解码帧的编码信息,并根据当前待解码帧的编码信息确定基本概率模型参数(基本右位移数)。
具体地,从输入码流中获得当前待解码帧的类型。该帧可能为帧内编码帧(I帧)、单向帧间编码帧(P帧)、双向帧间编码帧(B帧)。
可选地,编码信息还可以包括但不限于:帧类型;量化参数;图像分辨率;时间层标识;POC;编码配置;GOP结构。
对于本申请实施例,I帧的基本右移位数为Base1,B帧的基本右移位数为Base2,P帧的基本右移位数为Base3。Base1、Base2和Base3三个值可以完全相同,也可以各不相同,也可以两两相同。在本申请实施例中不做限定。
对于本申请实施例,基本右移位数的值可以为编码器和解码器预先规定的一致的值,还可以解码器从码流中读取。在本申请实施例中的基本右移位数为编码器和解码器预先规定的一致的值,无需从码流中读取。
步骤S604(图中未示出):根据步骤S602中存储的各二元符号的二元符号模型中的参数,以及步骤S603获得的基本右移位数,计算获得各个二元符号模型分别对应的第一概率更新速度参数和/或第二概率更新速度参数(大右移位数b和/或小右移位数a),并更新模型中的信息即在第i次二元符号出现后更新该二元符号的概率模型中的LPS(最小可能的字符)概率Pi,最大值为Y=2k
P0i=(Y>>a)+P0i-1–(P0i-1>>a)
P1i=(Y>>b)+P1i-1–(P0i-1>>b)
Pi=(P0i+P1i+1)>>1
对于本申请实施例,针对所有帧均按照上述方式进行解码之后,即解码完当前图像中所有帧的所有语法元素,输出重建后的图像。
本申请实施例还提供一种解码器中熵编码的方法,每个解码图像可以划分为一帧,也可以划分为至少两帧,在此不做限制。当一个解码图像中划分为一帧时,具体针对该图像进行解码的方法详见下述实施例;若一个解码图像中划分为至少两帧,则对该解码图像进行解码时需要对每帧图像进行解码,其中针对任一帧图像进行解码的方式详见下述实施例,其中,
步骤S701(图中未示出):获得预先定义的各语法元素对应二元符号串的二元符号的二元符号模型的参数。
其中,预先定义的模型参数包含但不限于:第一概率更新速度参数与基本概率更新速度参数之间差值的绝对值和/或第二概率更新速度参数与基本概率更新速度参数之间差值的绝对值。在本申请实施例中,第一概率更新速度参数可以包括:大右位移数b,第二概率更新速度参数可以包括:小右位移数a,基本概率更新速度参数可以包括:基本右位移数Base。
对于本申请实施例,预先定义的各语法元素对应的二元符号串的二元符号的二元符号模型的参数根据待解码帧的编码信息的不同而不同,也可以相同。在本申请实施例中不做限定。
步骤S702(图中未示出):在解码当前帧之前且对各二元符号的二元符号模型初始化时,读入步骤S701中获得的预先定义的模型参数,并存储到各模型占用的内存中。
步骤S703(图中未示出):确定当前待解码帧的编码信息,并根据当前待解码帧的编码信息,确定各个二元符号模型分别对应的第一概率更新速度参数和/或第二概率更新速度参数(大右移位数b和/或小右移位数a)。
具体地,当前待解码帧的类型可能包括:帧内编码帧(I帧)、单向帧间编码帧(P帧)、双向帧间编码帧(B帧)。
可选地,编码信息还可以包括但不限于:帧类型;量化参数;图像分辨率;时间层标识;POC;编码配置;GOP结构。
对于本申请实施例,步骤S703可以在步骤S701之前执行,还可以在步骤S702之前执行,还可以在步骤S701之后执行,还可以在步骤S702之后执行,或者还可以与步骤S701和/或步骤S702同时执行,在本申请实施例中,步骤S703与步骤S701以及步骤S702之间不存在严格的先后执行顺序。
步骤S704(图中未示出):根据步骤S702中存储的各二元符号的二元符号模型中的参数,以及步骤S703获得的基本右移位数,计算获得大右移位数b和小右移位数a,并更新模型中的信息,即在第i次二元符号出现后更新该二元符号的概率模型中的LPS(最小可能的字符)概率Pi,最大值为Y=2k
P0i=(Y>>a)+P0i-1–(P0i-1>>a)
P1i=(Y>>b)+P1i-1–(P0i-1>>b)
Pi=(P0i+P1i+1)>>1
对于本申请实施例,针对所有帧均按照上述方式进行解码之后,即解码完当前图像中所有帧的所有语法元素,输出重建后的图像。
本申请实施例提供一种编码器中熵编码的方法,每个编码图像可以划分为一帧,也可以划分为至少两帧,在此不做限制。当一个编码图像中划分为一帧时,具体针对该图像进行编码的方法详见下述实施例;若一个编码图像中划分为至少两帧,则对该编码图像进行编码时对每帧图像均进行编码,其中针对任一帧图像进行编码的方式详见下述实施例,其中,
步骤S801(图中未示出):获取待编码帧中各语法元素对应二元符号串的二元符号的二元符号模型参数。
对于本申请实施例,任一二元符号模型参数可以包括:概率更新次数的相关信息,第一概率更新速度参数与基本概率更新速度参数之间差值的绝对值以及第二概率更新速度参数与基本概率更新速度参数之间差值的绝对值。在本申请实施例中,第一概率更新速度参数可以包括:大右位移数b,第二概率更新速度参数可以包括:小右位移数a,基本概率更新速度参数可以包括:基本右位移数Base。
对于本申请实施例,大右位移数的数值大于小右位移数的数值。
对于本申请实施例,任一概率模型速度参数与基本概率更新速度参数之间差值的绝对值可以占用存储空间为1比特、2比特或者3比特。在本申请实施例中,第一概率更新速度参数与基本概率更新速度参数之间差值的绝对值可以占用存储空间为1比特、2比特或者3比特;第二概率更新速度参数与基本概率更新速度参数之间差值的绝对值可以占用存储空间为1比特、2比特或者3比特。
步骤S802(图中未示出):在编码当前帧之前且对各二元符号的二元符号模型初始化时,将各自二元符号模型的参数存储到模型占用的内存中。
对于本申请实施例,对于各二元符号,(Base-a)的值可以都相同,也可以各不相同,也可以部分相同。(b-Base)的值可以都相同,也可以各不相同,也可以部分相同。其中Base根据当前待编码帧的类型不同可能包括:Base1、或Base2、或Base3。
对于本申请实施例,当对于各二元符号,(Base-a)的值都相同,和/或,(b-Base)的值都相同,(Base-a)的绝对值和(b-Base)的绝对值作为帧级别的参数存储在帧级别层,且仅需各自存储一个值,当然也可以在初始化时将其值存储在各自的模型占用的内存中。
对于本申请实施例,当对于各二元符号,(Base-a)的值不都相同,且(b-Base)的值不都相同,则在初始化时将其值存储在各自的模型占用的内存中。
步骤S803(图中未示出):确定当前待编码帧的编码信息,并根据当前待编码帧的编码信息获取对应的基本概率更新速度参数(基本右位移数)。
对于本申请实施例,待编码帧可能为帧内编码帧(I帧)、单向帧间编码帧(P帧)、双向帧间编码帧(B帧)。
可选地,编码信息还可以包括但不限于:帧类型;量化参数;图像分辨率;时间层标识;POC;编码配置;GOP结构。
对于本申请实施例,基于待编码帧的帧类型确定基本概率更新速度参数(基本右位移数),其中待编码帧的帧类型不同,基本概率更新速度参数(基本右位移数)可以相同,也可以不同。
例如,I帧的基本右移位数为Base1,B帧的基本右移位数为Base2,P帧的基本右移位数为Base3。Base1、Base2和Base3三个值可以完全相同,也可以各不相同,也可以任意两个相同。在本申请实施例中不做限定。对于本申请实施例,基于待编码帧的量化参数确定基本概率更新速度参数(基本右位移数),其中待编码帧的量化参数不同,基本概率更新速度参数(基本右位移数)可以相同,也可以不同。
例如,QP<38,基本右位移数可以为Base4,QP>38或者QP=38,基本右位移数可以为Base5,其中,Base4和Base5可以相同,也可以不同。
对于本申请实施例,基于待编码帧的图像分辨率确定基本概率更新速度参数(基本右位移数),其中待编码帧的图像分辨率不同,基本概率更新速度参数(基本右位移数)可以相同,也可以不同。
例如,对于分辨率为1280×720,基本右移位数为Base6;对于分辨率为1920×1080,基本右移位数为Base7;对于分辨率为4k,基本右移位数为Base8。其中,Base6、Base7以及Base8可以均相同,也可以均不相同,还可以任意两个相同。
对于本申请实施例,基于待编码帧的编码信息中的任意组合确定基本概率更新速度参数(基本右位移数),其中,待编码帧的编码信息中任意组合不同,基本概率更新速度参数(基本右位移数)可以相同,也可以不同。
例如,I帧QP<38时的基本右移位数为Base9,I帧QP>38或者QP=38时的基本右移位数为Base10,B帧QP<38时的基本右移位数为Base11,B帧QP>38或者QP=38时的基本右移位数为Base12,P帧QP<38时的基本右移位数为Base13,B帧QP>38或者QP=38时的基本右移位数为Base14。
例如,POC为0的I帧图像的基本右移位数为Base15,POC大于0的I帧的基本右移位数为Base16;B帧的基本右移位数为Base17,P帧的基本右移位数为Base18。
例如,对于I帧图像来说,当编码配置为全I帧(All Intra,AI)时的基本右移位数为Base19,当编码配置为低延(Low Delay,LD)时和随机接入(Random Access,RA)时的基本右移位数为Base20。B帧在所有编码配置下的基本右移位数为Base21,P帧在所有编码配置下的基本右移位数为Base22。
对于本申请实施例,步骤S803可以在步骤S801之前执行,还可以在步骤S802之前执行,还可以在步骤S801之后执行,还可以在步骤S802之后执行,或者还可以与步骤S801和/或步骤S802同时执行,在本申请实施例中,步骤S803与步骤S801以及步骤S802之间不存在严格的先后执行顺序。
对于本申请实施例,基本右移位数的值可以为编码器和解码器预先规定的一致的值,编码器在编码帧前将其值写入码流;或者基本右移位数为编码器和解码器预先规定的一致的值,无需写入码流。在本申请实施例中,可以在对待编码帧进行编码之前,将基本右位移数写入码流。
步骤S804(图中未示出):根据步骤S802中存储的各二元符号的二元符号模型中的参数,以及步骤S803中获得的基本右移位数,计算获得大右移位数b和小右移位数a,并更新模型中的信息,即在第i次二元符号bin出现后更新该二元符号的二元符号模型中的概率Pi以及模型更新次数的相关信息cycle。小右移位数a用于计算更新后的概率P0,大右移位数b用于计算更新后的概率P1。
具体地,一种可能的实现方式是:
当概率更新次数相关信息cycle小于32时(本实施例设置为32,也可以是其他值),仅更新P0,P1的值等于更新后的P0的值。P0的更新速度cwr由cycle导出:当cycle小于等于1时,cwr为3;当cycle等于2时,cwr为4;当cycle大于2且小于32时,cwr为5。则,
若二元符号bin为MPS,P0i=P0i-1–P0i-1>>cwr–P0i-1>>(cwr+2),P1i=P0i
若二元符号bin为LPS,P0i=P0i-1+LG_s,LG_s=log2(2cwr/2cwr-1)x1024,P1i=P0i
Pi=(P0i+P1i+1)>>1。
当更新次数相关信息cycle等于32时,同时更新P0和P1,且P0的更新速度为a,P1的更新速度为b。
若二元符号bin为MPS,P0i=P0i-1–P0i-1>>a–P0i-1>>(a+2),P1i=P1i-1–P1i-1>>b–P1i-1>>(b+2);
若二元符号bin为LPS,P0i=P0i-1+LG_s0,LG_s0=log2(2a/2a-1)x1024,P1i=P1i-1+LG_s1,LG_s1=log2(2b/2b-1)x1024;
Pi=(P0i+P1i+1)>>1。
模型更新次数相关信息cycle的更新方法为:若二元符号bin为MPS,若cycle等于0,则cycle更新为1;否则cycle不变;若二元符号bin为LPS,若cycle小于32,则cycle加1;否则cycle不变。
另一种可能的实现方式是:当更新次数相关信息cycle小于32时,仅更新P0,P1的值等于更新后的P0的值。P0的更新速度cwr由cycle导出:当cycle小于等于1时,cwr为3;当cycle等于2时,cwr为4;当cycle大于2且小于32时,cwr为a。则,
若二元符号bin为MPS,P0i=P0i-1–P0i-1>>cwr–P0i-1>>(cwr+2),P1i=P0i
若二元符号bin为LPS,P0i=P0i-1+LG_s,LG_s=log2(2cwr/2cwr-1)x1024,P1i=P0i
Pi=(P0i+P1i+1)>>1。
当更新次数相关信息cycle等于32时,同时更新P0和P1,且P0的更新速度为a,P1的更新速度为b。
若二元符号bin为MPS,P0i=P0i-1–P0i-1>>a–P0i-1>>(a+2),P1i=P1i-1–P1i-1>>b–P1i-1>>(b+2);
若二元符号bin为LPS,P0i=P0i-1+LG_s0,LG_s0=log2(2a/2a-1)x1024,P1i=P1i-1+LG_s1,LG_s1=log2(2b/2b-1)x1024;
Pi=(P0i+P1i+1)>>1。
模型更新次数相关信息cycle的更新方法为:若二元符号bin为MPS,若cycle等于0,则cycle更新为1;否则cycle不变;若二元符号bin为LPS,若cycle小于32,则cycle加1;否则cycle不变。
对于本申请实施例,针对当前图像中的所有帧均按照上述方式进行编码之后,即编码完当前图像中所有帧的所有语法元素,生成并输出当前图像的码流。
本实施例中的步骤801和步骤802,还可以替换为:
步骤S801(图中未示出):获得预先定义的各语法元素对应二元符号串的二元符号的二元符号模型的参数。
其中,预先定义的模型参数包含但不限于:概率更新次数的相关信息,第一概率更新速度参数与基本概率更新速度参数之间差值的绝对值和/或第二概率更新速度参数与基本概率更新速度参数之间差值的绝对值。在本申请实施例中,第一概率更新速度参数可以包括:大右位移数b,第二概率更新速度参数可以包括:小右位移数a,基本概率更新速度参数可以包括:基本右位移数base。
对于本申请实施例,预先定义的预先定义的模型参数根据编码参数的不同而不同,也可以相同。在本申请实施例中不做限定。
步骤S802(图中未示出):在编码当前帧之前对各二元符号的二元符号模型初始化时,读入步骤S801中获得的预先定义的模型参数,并分别对应存储到各模型占用的内存中。
上述通过具体实施例介绍了通过编码器进行编码的方式,下述通过具体实施例介绍了通过解码器进行解码的方式,每个解码图像可以划分为一帧,也可以划分为至少两帧,在此不做限制。当一个解码图像中划分为一帧时,具体针对该图像进行解码的方法详见下述实施例;若一个解码图像中划分为至少两帧,则对该解码图像进行解码时需要对每帧图像进行解码,其中针对任一帧图像进行解码的方式详见下述实施例,其中,
步骤S901(图中未示出):获取当前待解码帧对应的各语法元素对应二元符号串的二元符号的二元符号模型参数。
对于本申请实施例,任一二元符号模型参数可以包括:概率更新次数的相关信息,第一概率更新速度参数与基本概率更新速度参数之间差值的绝对值以及第二概率更新速度参数与基本概率更新速度参数之间差值的绝对值。在本申请实施例中,第一概率更新速度参数可以包括:大右位移数b,第二概率更新速度参数可以包括:小右位移数a,基本概率更新速度参数可以包括:基本右位移数Base。
步骤S902(图中未示出):在解码当前帧之前对各二元符号的二元符号模型初始化时,将各自二元符号模型的参数分别存储到模型占用的内存中。
对于本申请实施例,对于各二元符号,(Base-a)的值可以都相同,也可以各不相同,也可以部分相同。(b-Base)的值可以都相同,也可以各不相同,也可以部分相同。其中Base根据当前待解码帧的类型可能包括:Base1、或Base2、或Base3。
对于本申请实施例,当对于各二元符号,(Base-a)的值都相同时,和/或,(b-Base)的值都相同,(Base-a)的值和(b-Base)的值作为帧级别的参数存储在帧级别层,且仅需各自存储一个值;当然还可以在初始化时将其值分别存储在各自的模型占用的内存中。
步骤S903(图中未示出):确定当前待解码帧的编码信息,并根据当前待解码帧的编码信息确定基本概率模型参数(基本右位移数)。
具体地,从输入码流中获得当前待解码帧的类型。该帧可能为帧内编码帧(I帧)、单向帧间编码帧(P帧)、双向帧间编码帧(B帧)。
可选地,编码信息还可以包括但不限于:帧类型;量化参数;图像分辨率;时间层标识;POC;编码配置;GOP结构。
对于本申请实施例,I帧的基本右移位数为Base1,B帧的基本右移位数为Base2,P帧的基本右移位数为Base3。Base1、Base2和Base3三个值可以完全相同,也可以各不相同,也可以两两相同。在本申请实施例中不做限定。
对于本申请实施例,基本右移位数的值可以为编码器和解码器预先规定的一致的值,还可以解码器从码流中读取。在本申请实施例中的基本右移位数为编码器和解码器预先规定的一致的值,无需从码流中读取。
步骤S904(图中未示出):根据步骤S902中存储的各二元符号的二元符号模型中的参数,以及步骤S903中获得的基本右移位数,计算获得大右移位数b和小右移位数a,并更新模型中的信息,即在第i次二元符号bin出现后更新该二元符号的二元符号模型中的概率Pi以及模型更新次数的相关信息cycle。小右移位数a用于计算更新后的概率P0,大右移位数b用于计算更新后的概率P1。具体地,一种可能的实现方式是:
当更新次数相关信息cycle小于32时,仅更新P0,P1的值等于更新后的P0的值。P0的更新速度cwr由cycle导出:当cycle小于等于1时,cwr为3;当cycle等于2时,cwr为4;当cycle大于2且小于32时,cwr为5。则,
若二元符号bin为MPS,P0i=P0i-1–P0i-1>>cwr–P0i-1>>(cwr+2),P1i=P0i
若二元符号bin为LPS,P0i=P0i-1+LG_s,LG_s=log2(2cwr/2cwr-1)x1024,P1i=P0i
Pi=(P0i+P1i+1)>>1。
当更新次数相关信息cycle等于32时,同时更新P0和P1,且P0的更新速度为a,P1的更新速度为b。
若二元符号bin为MPS,P0i=P0i-1–P0i-1>>a–P0i-1>>(a+2),P1i=P1i-1–P1i-1>>b–P1i-1>>(b+2);
若二元符号bin为LPS,P0i=P0i-1+LG_s0,LG_s0=log2(2a/2a-1)x1024,P1i=P1i-1+LG_s1,LG_s1=log2(2b/2b-1)x1024;
Pi=(P0i+P1i+1)>>1。
模型更新次数相关信息cycle的更新方法为:
若二元符号bin为MPS,若cycle等于0,则cycle更新为1;否则cycle不变;
若二元符号bin为LPS,若cycle小于32,则cycle加1;否则cycle不变。
另一种可能的实现方式是:当更新次数相关信息cycle小于32时,仅更新P0,P1的值等于更新后的P0的值。P0的更新速度cwr由cycle导出:当cycle小于等于1时,cwr为3;当cycle等于2时,cwr为4;当cycle大于2且小于32时,cwr为a。则,
若二元符号bin为MPS,P0i=P0i-1–P0i-1>>cwr–P0i-1>>(cwr+2),P1i=P0i
若二元符号bin为LPS,P0i=P0i-1+LG_s,LG_s=log2(2cwr/2cwr-1)x1024,P1i=P0i
Pi=(P0i+P1i+1)>>1。
当更新次数相关信息cycle等于32时,同时更新P0和P1,且P0的更新速度为a,P1的更新速度为b。
若二元符号bin为MPS,P0i=P0i-1–P0i-1>>a–P0i-1>>(a+2),P1i=P1i-1–P1i-1>>b–P1i-1>>(b+2);
若二元符号bin为LPS,P0i=P0i-1+LG_s0,LG_s0=log2(2a/2a-1)x1024,P1i=P1i-1+LG_s1,LG_s1=log2(2b/2b-1)x1024;
Pi=(P0i+P1i+1)>>1。
模型更新次数相关信息cycle的更新方法为:若二元符号bin为MPS,若cycle等于0,则cycle更新为1;否则cycle不变;若二元符号bin为LPS,若cycle小于32,则cycle加1;否则cycle不变。
本实施例中的步骤901和步骤902,还可以替换为:
步骤S901(图中未示出):获得预先定义的各语法元素对应二元符号串的二元符号的二元符号模型的参数。
其中,预先定义的模型参数包含但不限于:第一概率更新速度参数与基本概率更新速度参数之间差值的绝对值和/或第二概率更新速度参数与基本概率更新速度参数之间差值的绝对值。在本申请实施例中,第一概率更新速度参数可以包括:大右位移数b,第二概率更新速度参数可以包括:小右位移数a,基本概率更新速度参数可以包括:基本右位移数Base。
对于本申请实施例,预先定义的各语法元素对应的二元符号串的二元符号的二元符号模型的参数根据待解码帧的编码信息的不同而不同,也可以相同。在本申请实施例中不做限定。
步骤S902(图中未示出):在解码当前帧之前且对各二元符号的二元符号模型初始化时,读入步骤S901中获得的预先定义的模型参数,并存储到各模型占用的内存中。
对于本申请实施例,针对所有帧均按照上述方式进行解码之后,即解码完当前图像中所有帧的所有语法元素,输出重建后的图像。
本申请实施例提供一种编码器中熵编码的方法,每个编码图像可以划分为一帧,也可以划分为至少两帧,在此不做限制。当一个编码图像中划分为一帧时,具体针对该图像进行编码的方法详见下述实施例;若一个编码图像中划分为至少两帧,则对该编码图像进行编码时对每帧图像均进行编码,其中针对任一帧图像进行编码的方式详见下述实施例,其中,
步骤S1001(图中未示出):获取待编码帧中各语法元素对应二元符号串的二元符号的二元符号模型参数。
对于本申请实施例,任一二元符号模型参数可以包括:概率更新次数的相关信息,第一概率更新速度参数与基本概率更新速度参数之间差值的绝对值以及第二概率更新速度参数与基本概率更新速度参数之间差值的绝对值。在本申请实施例中,第一概率更新速度参数可以包括:大右位移数b,第二概率更新速度参数可以包括:小右位移数a,基本概率更新速度参数可以包括:基本右位移数Base。概率更新次数的相关信息可以包括:概率更新次数和更新次数阈值。
对于本申请实施例,大右位移数的数值大于小右位移数的数值。
对于本申请实施例,任一概率模型速度参数与基本概率更新速度参数之间差值的绝对值可以占用存储空间为1比特、2比特或者3比特。在本申请实施例中,第一概率更新速度参数与基本概率更新速度参数之间差值的绝对值可以占用存储空间为1比特、2比特或者3比特;第二概率更新速度参数与基本概率更新速度参数之间差值的绝对值可以占用存储空间为1比特、2比特或者3比特。
对于本申请实施例,任一二元符号模型的概率更新次数阈值可以包括:第一概率更新次数阈值和第二概率更新次数阈值,第二概率更新次数阈值大于第一概率更新次数阈值,也可以等于第一概率更新次数阈值,但不可以小于第一概率更新次数阈值。
本申请实施例的一种可能的实现方式是,任一二元符号模型的概率更新次数阈值可以根据当前待编码信息确定,对于本申请实施例,概率更新次数阈值根据待编码帧类型确定,同一帧中的各二元符号模型的第一概率更新次数阈值都相同,第二概率更新次数阈值都相同,将第一概率更新次数阈值和第二概率更新次数阈值存储在帧级别。待编码帧可能为帧内编码帧(I帧)、单向帧间编码帧(P帧)、双向帧间编码帧(B帧)。可选地,编码信息还可以包括但不限于:帧类型;量化参数;图像分辨率;时间层标识;POC;编码配置;GOP结构。
对于本申请实施例,待编码帧的帧类型不同,第一概率更新次数阈值可以相同,也可以不同,第二概率更新次数阈值可以相同,也可以不同。
例如,I帧的第一概率更新次数阈值为threshold1,第二概率更新次数阈值为threshold2,B帧的第一概率更新次数阈值为threshold3,第二概率更新次数阈值为threshold4,P帧的第一概率更新次数阈值为threshold5,第二概率更新次数阈值为threshold6。threshold1、threshold3和threshold5三个值可以完全相同,也可以各不相同,也可以任意两个相同。Threshold2、threshold4和threshold6三个值可以完全相同,也可以各不相同,也可以任意两个相同。在本申请实施例中不做限定。
另一种可能的实现方式是,同一帧中各二元符号模型的概率更新次数阈值互不相同,或者,同一帧中各二元符号模型的概率更新次数阈值均相同,或者,同一帧各二元符号模型的概率更新次数阈值部分相同。在本申请实施例中不做限定。
对于本申请实施例,概率更新次数可以占用的存储空间由第二概率更新次数阈值决定,第二概率更新次数阈值可以为4,则概率更新次数占用存储空间为2比特;第二概率更新次数阈值可以为8,则概率更新次数占用存储空间为3比特;第二概率更新次数阈值可以为16,则概率更新次数占用存储空间为4比特;第二概率更新次数阈值可以为32,则概率更新次数占用存储空间为5比特。
步骤S1002(图中未示出):在编码当前帧之前且对各二元符号的二元符号模型初始化时,将各自二元符号模型的参数存储到模型占用的内存中。
对于本申请实施例,对于各二元符号,(Base-a)的值可以都相同,也可以各不相同,也可以部分相同。(b-Base)的值可以都相同,也可以各不相同,也可以部分相同。其中Base根据当前待编码帧的类型不同可能包括:Base1、或Base2、或Base3。
对于本申请实施例,当对于各二元符号,(Base-a)的值都相同,和/或,(b-Base)的值都相同,则(Base-a)的绝对值和(b-Base)的绝对值作为帧级别的参数存储在帧级别层,且仅需各自存储一个值,当然也可以在初始化时将其值存储在各自的模型占用的内存中。
对于本申请实施例,当对于各二元符号,(Base-a)的值不都相同,且(b-Base)的值不都相同,则在初始化时将其值存储在各自的模型占用的内存中。
对于本申请实施例,对于同一帧中的各二元符号,第一概率更新次数阈值各不相同,或部分相同时,将第一概率更新次数阈值存储在各自的模型占用内存中。第二概率更新次数阈值各不相同,或部分相同时,将第二概率更新次数阈值存储在各自的模型占用内存中。
对于本申请实施例,对于同一帧中的各二元符号,第一概率更新次数阈值,和/或第二概率更新次数阈值都相同时,将第一概率更新次数阈值和/或第二概率更新次数阈值作为帧级别参数存储在帧级别层,且仅需各自存储一个值,当然也可以在初始化时将其值存储在各自的模型占用内存中。
步骤S1003(图中未示出):确定当前待编码帧的编码信息,并根据当前待编码帧的编码信息获取对应的基本概率更新速度参数(基本右位移数)。
对于本申请实施例,待编码帧可能为帧内编码帧(I帧)、单向帧间编码帧(P帧)、双向帧间编码帧(B帧)。
可选地,编码信息还可以包括但不限于:帧类型;量化参数;图像分辨率;时间层标识;POC;编码配置;GOP结构。
对于本申请实施例,基于待编码帧的帧类型确定基本概率更新速度参数(基本右位移数),其中待编码帧的帧类型不同,基本概率更新速度参数(基本右位移数)可以相同,也可以不同。
例如,I帧的基本右移位数为Base1,B帧的基本右移位数为Base2,P帧的基本右移位数为Base3。Base1、Base2和Base3三个值可以完全相同,也可以各不相同,也可以任意两个相同。在本申请实施例中不做限定。对于本申请实施例,基于待编码帧的量化参数确定基本概率更新速度参数(基本右位移数),其中待编码帧的量化参数不同,基本概率更新速度参数(基本右位移数)可以相同,也可以不同。
例如,QP<38,基本右位移数可以为Base4,QP>38或者QP=38,基本右位移数可以为Base5,其中,Base4和Base5可以相同,也可以不同。
对于本申请实施例,基于待编码帧的图像分辨率确定基本概率更新速度参数(基本右位移数),其中待编码帧的图像分辨率不同,基本概率更新速度参数(基本右位移数)可以相同,也可以不同。
例如,对于分辨率为1280×720,基本右移位数为Base6;对于分辨率为1920×1080,基本右移位数为Base7;对于分辨率为4k,基本右移位数为Base8。其中,Base6、Base7以及Base8可以均相同,也可以均不相同,还可以任意两个相同。
对于本申请实施例,基于待编码帧的编码信息中的任意组合确定基本概率更新速度参数(基本右位移数),其中,待编码帧的编码信息中任意组合不同,基本概率更新速度参数(基本右位移数)可以相同,也可以不同。
例如,I帧QP<38时的基本右移位数为Base9,I帧QP>38或者QP=38时的基本右移位数为Base10,B帧QP<38时的基本右移位数为Base11,B帧QP>38或者QP=38时的基本右移位数为Base12,P帧QP<38时的基本右移位数为Base13,B帧QP>38或者QP=38时的基本右移位数为Base14。
例如,POC为0的I帧图像的基本右移位数为Base15,POC大于0的I帧的基本右移位数为Base16;B帧的基本右移位数为Base17,P帧的基本右移位数为Base18。
例如,对于I帧图像来说,当编码配置为全I帧(All Intra,AI)时的基本右移位数为Base19,当编码配置为低延(Low Delay,LD)时和随机接入(Random Access,RA)时的基本右移位数为Base20。B帧在所有编码配置下的基本右移位数为Base21,P帧在所有编码配置下的基本右移位数为Base22。
对于本申请实施例,步骤S1003可以在步骤S1001之前执行,还可以在步骤S1002之前执行,还可以在步骤S1001之后执行,还可以在步骤S1002之后执行,或者还可以与步骤S1001和/或步骤S1002同时执行,在本申请实施例中,步骤S1003与步骤S1001以及步骤S1002之间不存在严格的先后执行顺序。
对于本申请实施例,基本右移位数的值可以为编码器和解码器预先规定的一致的值,编码器在编码帧前将其值写入码流;或者基本右移位数为编码器和解码器预先规定的一致的值,无需写入码流。在本申请实施例中,可以在对待编码帧进行编码之前,将基本右位移数写入码流。
步骤S1004(图中未示出):根据步骤S1002中存储的各二元符号的二元符号模型中的参数,以及步骤S1003中获得的基本右移位数,计算获得大右移位数b和小右移位数a,并更新模型中的信息,即在第i次二元符号bin出现后更新该二元符号的二元符号模型中的概率Pi以及模型更新次数cycle。小右移位数a用于计算更新后的概率P0,大右移位数b用于计算更新后的概率P1。
具体地,在本申请实施例中一种可能的实现方式是:
当概率更新次数cycle小于第二概率更新次数阈值时,仅更新P0,P1的值等于更新后的P0的值。P0的更新速度cwr由cycle导出:当cycle小于第一概率更新次数阈值时,cwr为a-1;当cycle大于等于第一概率更新次数阈值且小于第二概率更新次数阈值时,cwr为a。则,
若二元符号bin为MPS,P0i=P0i-1–P0i-1>>cwr–P0i-1>>(cwr+2),P1i=P0i
若二元符号bin为LPS,P0i=P0i-1+LG_s,LG_s=log2(2cwr/2cwr-1)x1024,P1i=P0i
Pi=(P0i+P1i+1)>>1。
当更新次数cycle等于第二概率更新次数阈值时,同时更新P0和P1,且P0的更新速度为a,P1的更新速度为b。
若二元符号bin为MPS,P0i=P0i-1–P0i-1>>a–P0i-1>>(a+2),P1i=P1i-1–P1i-1>>b–P1i-1>>(b+2);
若二元符号bin为LPS,P0i=P0i-1+LG_s0,LG_s0=log2(2a/2a-1)x1024,P1i=P1i-1+LG_s1,LG_s1=log2(2b/2b-1)x1024;
Pi=(P0i+P1i+1)>>1。
模型更新次数cycle的更新方法为:若二元符号bin为MPS,若cycle等于0,则cycle更新为1;否则cycle不变;若二元符号bin为LPS,若cycle小于第二概率更新次数阈值,则cycle加1;否则cycle不变。
对于本申请实施例,针对当前图像中的所有帧均按照上述方式进行编码之后,即编码完当前图像中所有帧的所有语法元素,生成并输出当前图像的码流。
本申请实施例中的步骤1001和步骤1002,还可以替换为:步骤S1001a以及步骤S1002a,其中,
步骤S1001a(图中未示出):获得预先定义的各语法元素对应二元符号串的二元符号的二元符号模型的参数。
其中,预先定义的模型参数包含但不限于:概率更新次数的相关信息,第一概率更新速度参数与基本概率更新速度参数之间差值的绝对值和/或第二概率更新速度参数与基本概率更新速度参数之间差值的绝对值。在本申请实施例中,第一概率更新速度参数可以包括:大右位移数b,第二概率更新速度参数可以包括:小右位移数a,基本概率更新速度参数可以包括:基本右位移数base。概率更新次数的相关信息可以包括:概率更新次数和更新次数阈值。
对于本申请实施例,预先定义的预先定义的模型参数根据编码参数的不同而不同,也可以相同。在本申请实施例中不做限定。
步骤S1002a(图中未示出):在编码当前帧之前对各二元符号的二元符号模型初始化时,读入步骤S1001a中获得的预先定义的模型参数,并分别对应存储到各模型占用的内存中。
上述通过具体实施例介绍了通过编码器进行编码的方式,下述通过具体实施例介绍了通过解码器进行解码的方式,每个解码图像可以划分为一帧,也可以划分为至少两帧,在此不做限制。当一个解码图像中划分为一帧时,具体针对该图像进行解码的方法详见下述实施例;若一个解码图像中划分为至少两帧,则对该解码图像进行解码时需要对每帧图像进行解码,其中针对任一帧图像进行解码的方式详见下述实施例,其中,
步骤S1101(图中未示出):获取当前待解码帧对应的各语法元素对应二元符号串的二元符号的二元符号模型参数。
对于本申请实施例,任一二元符号模型参数可以包括:概率更新次数的相关信息,第一概率更新速度参数与基本概率更新速度参数之间差值的绝对值以及第二概率更新速度参数与基本概率更新速度参数之间差值的绝对值。在本申请实施例中,第一概率更新速度参数可以包括:大右位移数b,第二概率更新速度参数可以包括:小右位移数a,基本概率更新速度参数可以包括:基本右位移数Base。概率更新次数的相关信息可以包括:概率更新次数和更新次数阈值。
对于本申请实施例,任一二元符号模型的概率更新次数阈值可以包括:第一概率更新次数阈值和第二概率更新次数阈值,第二概率更新次数阈值大于第一概率更新次数阈值,也可以等于第一概率更新次数阈值,但不可以小于第一概率更新次数阈值。
一种可能的实现方式是,任一二元符号模型的概率更新次数阈值可以根据当前待解码帧的编码信息确定,对于本申请实施例,概率更新次数阈值根据待解码帧类型确定,同一帧中的各二元符号模型的第一概率更新次数阈值都相同,第二概率更新次数阈值都相同,将第一概率更新次数阈值和第二概率更新次数阈值存储在帧级别层。待解码帧可能为帧内编码帧(I帧)、单向帧间编码帧(P帧)、双向帧间编码帧(B帧)。可选地,编码信息还可以包括但不限于:帧类型;量化参数;图像分辨率;时间层标识;POC;编码配置;GOP结构。
对于本申请实施例,待解码帧的帧类型不同,第一概率更新次数阈值可以相同,也可以不同,第二概率更新次数阈值可以相同,也可以不同。
例如,I帧的第一概率更新次数阈值为threshold1,第二概率更新次数阈值为threshold2,B帧的第一概率更新次数阈值为threshold3,第二概率更新次数阈值为threshold4,P帧的第一概率更新次数阈值为threshold5,第二概率更新次数阈值为threshold6。threshold1、threshold3和threshold5三个值可以完全相同,也可以各不相同,也可以任意两个相同。Threshold2、threshold4和threshold6三个值可以完全相同,也可以各不相同,也可以任意两个相同。在本申请实施例中不做限定。
另一种可能的实现方式是,同一帧中各二元符号模型的概率更新次数阈值互不相同,或者,同一帧中各二元符号模型的概率更新次数阈值均相同,或者,同一帧各二元符号模型的概率更新次数阈值部分相同。在本申请实施例中不做限定。
步骤S1102(图中未示出):在解码当前帧之前对各二元符号的二元符号模型初始化时,将各自二元符号模型的参数分别存储到模型占用的内存中。
对于本申请实施例,对于各二元符号,(Base-a)的值可以都相同,也可以各不相同,也可以部分相同。(b-Base)的值可以都相同,也可以各不相同,也可以部分相同。其中Base根据当前待解码帧的类型可能包括:Base1、或Base2、或Base3。
对于本申请实施例,当对于各二元符号,(Base-a)的值都相同时,和/或,(b-Base)的值都相同,(Base-a)的值和(b-Base)的值作为帧级别的参数存储在帧级别层,且仅需各自存储一个值;当然还可以在初始化时将其值分别存储在各自的模型占用的内存中。
对于本申请实施例,对于同一帧中的各二元符号,第一概率更新次数阈值各不相同,或部分相同时,将第一概率更新次数阈值存储在各自的模型占用内存中。第二概率更新次数阈值各不相同,或部分相同时,将第二概率更新次数阈值存储在各自的模型占用内存中。
对于本申请实施例,对于同一帧中的各二元符号,第一概率更新次数阈值,和/或第二概率更新次数阈值都相同时,将第一概率更新次数阈值和/或第二概率更新次数阈值作为帧级别参数存储在帧级别层,且仅需各自存储一个值,当然也可以在初始化时将其值存储在各自的模型占用内存中。
步骤S1103(图中未示出):确定当前待解码帧的编码信息,并根据当前待解码帧的编码信息确定基本概率模型参数(基本右位移数)。
具体地,从输入码流中获得当前待解码帧的类型。该帧可能为帧内编码帧(I帧)、单向帧间编码帧(P帧)、双向帧间编码帧(B帧)。
可选地,编码信息还可以包括但不限于:帧类型;量化参数;图像分辨率;时间层标识;POC;编码配置;GOP结构。
对于本申请实施例,I帧的基本右移位数为Base1,B帧的基本右移位数为Base2,P帧的基本右移位数为Base3。Base1、Base2和Base3三个值可以完全相同,也可以各不相同,也可以两两相同。在本申请实施例中不做限定。
对于本申请实施例,基本右移位数的值可以为编码器和解码器预先规定的一致的值,还可以解码器从码流中读取。在本申请实施例中的基本右移位数为编码器和解码器预先规定的一致的值,无需从码流中读取。
步骤S1104(图中未示出):根据步骤S1102中存储的各二元符号的二元符号模型中的参数,以及步骤S1103中获得的基本右移位数,计算获得大右移位数b和小右移位数a,并更新模型中的信息,即在第i次二元符号bin出现后更新该二元符号的二元符号模型中的概率Pi以及模型更新次数cycle。小右移位数a用于计算更新后的概率P0,大右移位数b用于计算更新后的概率P1。
具体地,在本申请实施例中的另一种可能的实现方式是:
当概率更新次数cycle小于第二概率更新次数阈值时,仅更新P0,P1的值等于更新后的P0的值。P0的更新速度cwr由cycle导出:当cycle小于第一概率更新次数阈值时,cwr为a-1;当cycle大于等于第一概率更新次数阈值且小于第二概率更新次数阈值时,cwr为a。则,
若二元符号bin为MPS,P0i=P0i-1–P0i-1>>cwr–P0i-1>>(cwr+2),P1i=P0i
若二元符号bin为LPS,P0i=P0i-1+LG_s,LG_s=log2(2cwr/2cwr-1)x1024,P1i=P0i
Pi=(P0i+P1i+1)>>1。
当更新次数cycle等于第二概率更新次数阈值时,同时更新P0和P1,且P0的更新速度为a,P1的更新速度为b。
若二元符号bin为MPS,P0i=P0i-1–P0i-1>>a–P0i-1>>(a+2),P1i=P1i-1–P1i-1>>b–P1i-1>>(b+2);
若二元符号bin为LPS,P0i=P0i-1+LG_s0,LG_s0=log2(2a/2a-1)x1024,P1i=P1i-1+LG_s1,LG_s1=log2(2b/2b-1)x1024;
Pi=(P0i+P1i+1)>>1。
模型更新次数cycle的更新方法为:若二元符号bin为MPS,若cycle等于0,则cycle更新为1;否则cycle不变;若二元符号bin为LPS,若cycle小于第二概率更新次数阈值,则cycle加1;否则cycle不变。
本申请实施例中的步骤1101和步骤1102,还可以替换为:步骤S1101a以及步骤S1102a,其中,
步骤S1101a(图中未示出):获得预先定义的各语法元素对应二元符号串的二元符号的二元符号模型的参数。
其中,预先定义的模型参数包含但不限于:第一概率更新速度参数与基本概率更新速度参数之间差值的绝对值和/或第二概率更新速度参数与基本概率更新速度参数之间差值的绝对值。在本申请实施例中,第一概率更新速度参数可以包括:大右位移数b,第二概率更新速度参数可以包括:小右位移数a,基本概率更新速度参数可以包括:基本右位移数Base。概率更新次数的相关信息可以包括:概率更新次数和更新次数阈值。
对于本申请实施例,预先定义的各语法元素对应的二元符号串的二元符号的二元符号模型的参数根据待解码帧的编码信息的不同而不同,也可以相同。在本申请实施例中不做限定。
步骤S1102a(图中未示出):在解码当前帧之前且对各二元符号的二元符号模型初始化时,读入步骤S1101a中获得的预先定义的模型参数,并存储到各模型占用的内存中。
对于本申请实施例,针对所有帧均按照上述方式进行解码之后,即解码完当前图像中所有帧的所有语法元素,输出重建后的图像。
对于本申请实施例,应用本申请实施例,可以在不同类型的帧、不同的量化参数、不同的图像分辨率、等不同的编码参数下,通过为各语法元素的二元符号串中的二元符号的二元符号模型设置不同的模型参数,进而在更新模型中更新概率时采用不同的更新速度,此方法进一步提高采用基于上下文的二进制算术编码熵编码方法的压缩效率。同时,采用差异存储的方法存储模型参数与基本模型参数(基本概率更新速度参数)之差,替代直接存储模型参数的方法,可以节省存储空间。
例如,在现有技术中对每个二元符号模型都分别使用4个比特存储a和b,其中1<a≤b<9,4个比特无符号数的取值范围是0~(24-1),共需要8比特。如果利用本申请实施例,已知基本右移位数5,对每个二元符号模型使用2比特存储大右移位数与基本右移位数之差(b-5),0≤(b-5)≤3,2个比特无符号数的取值范围是0~(22-1),使用2比特存储小右移位数与基本右移位数之差(5-a),0≤(5-a)≤3,共需要4比特。对于VVC来说,每帧都有702个二元符号模型,利用本申请实施例的方式可以使每帧节省4×702比特的存储空间;对于AVS3来说,每帧都有389个二元符号模型,利用本申请实施例的方式可以使每帧节4×389个比特。也有现有技术将a和b的取值范围设置为:0≤a≤b≤11,分别使用4个比特存储a和b。而利用本申请实施例,若已知基本右移位数为5,则分别需要3个比特来存储(5-a)和(b-5),其中0≤(5-a)≤4,0≤(b-5)≤6,相比现有技术,每个二元符号模型可以节省2个比特的存储空间。也就是说相比直接存储大右移位数和小右移位数的方法,使用本申请实施例的方法可以极大地节省存储空间,而且图像划分的帧数越多节省的存储空间越大,同时可以进一步提高使用多模型的CABAC方法的编码效率。
上述实施例从方法流程的角度介绍了模型更新方法,下述从虚拟模块和/或虚拟单元的角度介绍模型更新装置,具体如下所示:
本申请实施例提供了一种模型更新装置,如图3所示,该模型更新装置30可以包括:第一获取模块31以及第一更新模块32,其中,图3所示的模型更新装置仅是模型更新装置的一种可能的示例,并不能作为对本申请实施例的限定,其中,
第一获取模块31,用于获取当前待编码帧对应的各个二元符号模型分别对应的第一参数。
其中,二元符号模型对应的第一参数包括:至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息;
第一更新模块32,用于基于各个二元符号模型分别对应的第一参数,更新对应的二元符号模型。
本申请实施例的一种可能的实现方式,二元符号模型对应的第一参数还包括:概率更新次数的相关信息;概率更新次数的相关信息包括二元符号模型概率更新次数和概率更新次数的阈值;
本申请实施例的一种可能的实现方式,第一获取模块31,在获取所述概率更新次数的阈值时,具体用于:确定当前待编码帧的编码信息;基于所述当前待编码帧的编码信息,获取所述概率更新次数的阈值。
本申请实施例的另一种可能的实现方式,第一获取模块31在获取当前待编码帧对应的各个二元符号模型分别对应的第一参数时,具体用于:获得预先定义的当前待编码帧对应的各个二元符号模型分别对应的第一参数。
本申请实施例的一种可能的实现方式,该装置30还包括:第一存储模块,其中,
第一存储模块,用于将各个二元符号模型分别对应的第一参数进行存储。
本申请实施例的一种可能的实现方式,第一存储模块,具体用于在对各个二元符号模型进行初始化时,将当前待编码帧对应的各个二元符号模型分别对应的第一参数存储至各自所占用的存储空间中。
本申请实施例的一种可能的实现方式,第一存储模块,具体用于当各个二元符号模型分别对应的至少一个相关信息均相同,将相同的至少一个相关信息作为帧级别参数存储至帧级别层,至少一个相关信息包括:至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,和概率更新次数的相关信息。
本申请实施例的一种可能的实现方式,第一更新模块32包括:第一获取单元、第一确定单元以及第一更新单元,其中,
第一获取单元,用于获取基本概率更新速度参数。
第一确定单元,用于基于各个二元符号模型分别对应的第一参数以及获取的基本概率更新速度参数,确定各个二元符号模型分别对应的第二参数。
其中,二元符号模型对应的第二参数包括:至少一个概率更新速度参数。
第一更新单元,用于基于各个二元符号模型分别对应的第二参数,更新对应的二元符号模型。
本申请实施例的一种可能的实现方式,第一获取单元,具体用于确定当前待编码帧的编码信息,以及基于当前待编码帧的编码信息,获取基本概率更新速度参数。
本申请实施例的一种可能的实现方式,当前待编码帧的编码信息包括以下至少一项:
帧类型;量化参数;图像分辨率;时间层标识;POC;编码配置;GOP结构。
本申请实施例的一种可能的实现方式,装置30还包括:写入模块,其中,
写入模块,用于将基本概率更新速度参数写入码流。
本申请实施例的一种可能的实现方式,第一获取模块31,具体用于从编码器预先定义的各个二元符号模型分别对应的第一参数中获取当前待编码帧对应的各个二元符号模型分别的第一参数,和/或,从当前待编码帧对应的各个预定义的二元符号模型中获取各自预先定义的第一参数。
本申请实施例的一种可能的实现方式,各个二元符号模型分别对应的任一相关信息包括以下至少一种关系:
各个二元符号模型分别对应的任一相关信息均不相同;
至少两个二元符号模型分别对应的任一相关信息相同;
其中,各个待编码帧分别对应的基本概率模型参数包括以下至少一种关系:
各个待编码帧分别对应的基本概率模型参数均不相同;
至少两个待编码帧分别对应的基本概率模型参数相同。
本申请实施例的另一种可能的实现方式,第一存储模块在将各个二元符号模型分别对应的第一参数进行存储时,具体用于以下至少一项:
在对各个二元符号模型进行初始化时,将各个二元符号模型分别对应的第一参数存储至二元符号模型对应的内存中;
在对各个二元符号模型进行初始化时,将各个二元符号模型分别对应的第一参数存储至各个模型各自占用的内存中。
本申请实施例的另一种可能的实现方式,任一二元符号模型对应的第二参数包含两个概率更新速度参数:第一概率更新速度参数和第二概率更新速度参数,第一概率更新速度参数用于更新二元符号模型的第一概率,第二概率更新速度参数用于更新二元符号模型的第二概率;任一二元符号模型的第一参数中的概率更新次数的阈值包含:第一概率更新次数阈值和第二概率更新次数阈值,第二概率更新次数阈值不小于第一概率更新次数阈值;
其中,第一更新单元在基于各个二元符号模型分别对应的第二参数,更新对应的二元符号模型时,具体用于:
基于各个二元符号模型分别对应的第二参数以及各自对应的概率更新次数的阈值更新对应的二元符号模型的第一概率以及二元符号模型的第二概率中的至少一项;
基于各个二元符号模型分别对应的更新后的第一概率和/或更新后的第二概率更新各自对应的二元符号模型。
本申请实施例的另一种可能的实现方式,第一更新单元在基于任一二元符号模型对应的第二参数以及对应的概率更新次数的阈值更新对应的二元符号模型的第一概率以及二元符号模型的第二概率中的至少一项时,具体用于:
基于任一二元符号模型对应的概率更新次数与第二概率更新次数阈值之间的大小关系,确定是否更新任一二元符号模型的第一概率和/或任一二元符号模型的第二概率;
基于确定结果以及任一二元符号模型对应的第二参数更新对应的二元符号模型的第一概率以及二元符号模型的第二概率中的至少一项。
本申请实施例提供了一种模型更新装置,与现有技术中在对模型进行更新时将二元字符对应的概率更新速度参数存储至内存相比,本申请实施例获取当前待编码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,并通过获取的各个二元符号模型分别对应的至少一个相关信息对各自二元符号模型进行更新,即在对模型进行初始化时,仅需要存储当前待编码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间差值的相关信息,而不是直接存储各个二元符号模型分别对应的至少一个概率更新速度参数,并且概率更新速度参数与基本概率更新速度参数之间差值的相关信息所占用的存储空间小于直接存储概率更新速度参数所占用的存储空间,从而可以降低用于模型更新的参数所占用的存储空间。
本申请实施例提供了另一种模型更新装置,如图4所示,其中图4所示出中模型更新装置,仅是一种可能的示例,并不能作为对本申请实施例的限制,其中,模型更新装置40可以包括:第二获取模块41以及第二更新模块42,其中,
第二获取模块41,用于获取当前待解码帧对应的各个二元符号模型分别对应的第一参数。
其中,二元符号模型对应的第一参数包括:至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息;
第二更新模块42,用于基于各个二元符号模型分别对应的第一参数,更新各自对应的二元符号模型。
本申请实施例的一种可能的实现方式,二元符号模型对应的第一参数还包括:概率更新次数相关信息概率更新次数的相关信息包括:概率更新次数和概率更新次数的阈值。
本申请实施例的另一种可能的实现方式,第二获取模块在获取概率更新次数的阈值时,具体用于:
确定当前待解码帧的编码信息;
基于当前待解码帧的编码信息,获取概率更新次数的阈值。
本申请实施例的一种可能的实现方式,装置40还包括:第二存储模块,其中,
第二存储模块,用于将各个二元符号模型分别对应的第一参数进行存储。
本申请实施例的另一种可能的实现方式,第二存储模块,具体用于在对各个二元符号模型进行初始化时,将当前待解码帧对应的各个二元符号模型分别对应的第一参数存储至各自所占用的存储空间中。
本申请实施例的一种可能的实现方式,第二存储模块,具体用于当各个二元符号模型分别对应的至少一个相关信息均相同,将相同的至少一个相关信息作为帧级别参数存储至帧级别层,至少一个相关信息为至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息。
本申请实施例的一种可能的实现方式,第二更新模块42包括:第二获取单元、第二确定单元以及第二更新单元,其中,
第二获取单元,用于获取基本概率更新速度参数。
第二确定单元,用于基于内存中存储的各个二元符号模型分别对应的第一参数以及获取的基本概率更新速度参数,确定各个二元符号模型分别对应的第二参数。
其中,二元符号模型对应的第二参数包括:至少一个概率更新速度参数。
第二更新单元,用于基于各个二元符号模型分别对应的第二参数,更新对应的二元符号模型。
本申请实施例的一种可能的实现方式,第二获取单元,具体用于从码流中获取基本概率更新速度参数,和/或基于当前待解码帧的编码信息,获取基本概率更新速度参数。
本申请实施例的一种可能的实现方式,当前待解码帧的编码信息包括以下至少一项:
帧类型;量化参数;图像分辨率;时间层标识;POC;编码配置;GOP结构。
本申请实施例的一种可能的实现方式,第二获取模块41,具体用于从解码器预先定义的各个二元符号模型分别对应的第一参数中获取当前待解码帧对应的各个二元符号模型分别的第一参数,和/或,分别从当前待解码帧对应的各个预定义的二元符号模型中获取各自预先定义的第一参数。
本申请实施例的一种可能的实现方式,各个二元符号模型分别对应的任一相关信息包括以下至少一种关系:
各个二元符号模型分别对应的任一相关信息均不相同;
至少两个二元符号模型分别对应的任一相关信息相同;
其中,各个待解码帧分别对应的基本概率模型参数包括以下至少一种关系:
各个待解码帧分别对应的基本概率模型参数均不相同;
至少两个待解码帧分别对应的基本概率模型参数相同。
本申请实施例提供了另一种模型更新装置,与现有技术中在对模型进行更新时将二元字符对应的概率更新速度参数存储至内存相比,本申请实施例获取当前待解码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,并通过获取的各个二元符号模型分别对应的至少一个相关信息对各自二元符号模型进行更新,即在对模型进行初始化时,仅需要存储当前待解码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间差值的相关信息,而不是直接存储各个二元符号模型分别对应的至少一个概率更新速度参数,并且概率更新速度参数与基本概率更新速度参数之间差值的相关信息所占用的存储空间小于直接存储概率更新速度参数所占用的存储空间,从而可以降低用于模型更新的参数所占用的存储空间。
值得注意的是:上述两种模型更新装置可以为一个模型更新装置,也可以为两个模型更新装置,在本申请实施例中不做限定。在本申请实施例中,若上述两种模型更新装置为同一个模型更新装置,则“第一”与“第二”不作为对模块或者单元的限定。例如,“第一更新模块”与“第二更新模块”可以为同一个更新模块,也可以为不同的更新模块。
上述装置实施例适用于上述方法实施例,在此不做赘述。
本申请实施例提供了一种电子设备,如图5所示,图5所示的电子设备500包括:处理器501、存储器503。其中,处理器501和存储器503相连,如通过总线502相连。可选地,电子设备500还可以包括通信接口504,通信接口包括天线。需要说明的是,实际应用中通信接口504不限于一个,该电子设备500的结构并不构成对本申请实施例的限定。
处理器501可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器501也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线502可包括一通路,在上述组件之间传送信息。总线502可以是PCI总线或EISA总线等。总线502可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器503可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器503用于存储执行本申请方案的计算机程序代码,并由处理器501来控制执行。处理器501用于执行存储器503中存储的计算机程序代码,以实现前述任一方法实施例所示的内容。
本申请实施例提供了一种电子设备,本申请实施例提供了一种电子设备,本申请实施例中的电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:本申请实施例获取当前待编码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,并通过获取的各个二元符号模型分别对应的至少一个相关信息对各自二元符号模型进行更新,即在对模型进行初始化的过程中,仅需要存储当前待编码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间差值的相关信息,而不是直接存储各个二元符号模型分别对应的至少一个概率更新速度参数,并且概率更新速度参数与基本概率更新速度参数之间差值的相关信息所占用的存储空间小于直接存储概率更新速度参数所占用的存储空间,从而可以降低用于模型更新的参数所占用的存储空间。
上述电子设备可以为编码器,也可以为同时具备编码功能以及解码功能的电子设备。在本申请实施例中不做限定。
本申请实施例提供了另一种电子设备,电子设备包括:处理器、存储器。其中,处理器和存储器相连,如通过总线相连。可选地,电子设备还可以包括通信接口,通信接口包括天线。需要说明的是,实际应用中通信接口不限于一个,该电子设备的结构并不构成对本申请实施例的限定。
处理器可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线可包括一通路,在上述组件之间传送信息。总线可以是PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。
存储器可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器用于存储执行本申请方案的计算机程序代码,并由处理器来控制执行。处理器用于执行存储器中存储的计算机程序代码,以实现前述任一方法实施例所示的内容。
本申请实施例提供了一种电子设备,本申请实施例提供了一种电子设备,本申请实施例中的电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:本申请实施例获取当前待解码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,并通过获取的各个二元符号模型分别对应的至少一个相关信息对各自二元符号模型进行更新,即在对模型进行初始化时,仅需要存储当前待解码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间差值的相关信息,而不是直接存储各个二元符号模型分别对应的至少一个概率更新速度参数,并且概率更新速度参数与基本概率更新速度参数之间差值的相关信息所占用的存储空间小于直接存储概率更新速度参数所占用的存储空间,从而可以降低用于模型更新的参数所占用的存储空间。
上述电子设备可以为解码器,也可以为同时具备解码功能以及编码功能的电子设备。在本申请实施例中不做限定。
对于本申请实施例,上述两种电子设备分别为编码器以及解码器,或者一种具备解码功能以及编码功能的电子设备。在本申请实施例中不做限定。
上述分别从方法流程、虚拟装置、实体设备的角度介绍了本申请的技术方案,下述从计算机可读存储介质的角度,介绍本申请的技术方案,具体如下所示:
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,本申请实施例获取当前待编码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,并通过获取的各个二元符号模型分别对应的至少一个相关信息对各自二元符号模型进行更新,即在对模型进行初始化时,仅需要存储当前待编码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间差值的相关信息,而不是直接存储各个二元符号模型分别对应的至少一个概率更新速度参数,并且概率更新速度参数与基本概率更新速度参数之间差值的相关信息所占用的存储空间小于直接存储概率更新速度参数所占用的存储空间,从而可以降低用于模型更新的参数所占用的存储空间。
本申请实施例提供了另一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,本申请实施例获取当前待解码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间的差值的相关信息,并通过获取的各个二元符号模型分别对应的至少一个相关信息对各自二元符号模型进行更新,即在对模型进行初始化时,仅需要存储当前待解码帧对应的各个二元符号模型分别对应的至少一个概率更新速度参数与基本概率更新速度参数之间差值的相关信息,而不是直接存储各个二元符号模型分别对应的至少一个概率更新速度参数,并且概率更新速度参数与基本概率更新速度参数之间差值的相关信息所占用的存储空间小于直接存储概率更新速度参数所占用的存储空间,从而可以降低用于模型更新的参数所占用的存储空间。
上述计算机可读存储介质适用于上述方法实施例,在此不再赘述。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (2)

1.一种模型更新方法,其特征在于,包括:
基于基本概率更新速度参数,确定第一概率更新速度参数和第二概率更新速度参数;
基于当前帧的帧类型获取概率更新次数的第一阈值和概率更新次数的第二阈值的集合,其中所述帧类型属于以下帧类型之一:帧内编码帧I帧、单向帧间编码帧P帧和双向帧间编码帧B帧,所述概率更新次数的第一阈值小于所述概率更新次数的第二阈值;
当概率更新次数相关信息Cycle等于所述概率更新次数的第二阈值时,利用所述第一概率更新速度参数更新所述当前帧的第一二元符号模型,并利用所述第二概率更新速度参数更新所述当前帧的第二二元符号模型;
当概率更新次数相关信息Cycle大于所述概率更新次数的第一阈值且小于所述概率更新次数的第二阈值时,利用所述第一概率更新速度参数更新当前帧的第一二元符号模型,并且将所述第二二元符号模型更新为与更新后的第一二元符号模型相同;
利用所述第一二元符号模型和所述第二二元符号模型,获取二元符号模型;以及
使用所述二元符号模型对二元符号进行熵解码。
2.一种模型更新方法,其特征在于,包括:
基于基本概率更新速度参数,确定第一概率更新速度参数和第二概率更新速度参数;
根据当前帧的帧类型获取概率更新次数的第一阈值和概率更新次数的第二阈值的集合,其中所述帧类型属于以下帧类型之一:帧内编码帧I帧、单向帧间编码帧P帧和双向帧间编码帧B帧,所述概率更新次数的第一阈值小于所述概率更新次数的第二阈值;
当概率更新次数相关信息Cycle等于所述概率更新次数的第二阈值时,利用所述第一概率更新速度参数更新所述当前帧的第一二元符号模型,并且利用所述第二概率更新速度参数更新所述当前帧的第二二元符号模型;
当概率更新次数相关信息Cycle大于所述概率更新次数的第一阈值时;以及小于所述概率更新次数的第二阈值,使用所述第一概率更新速度参数更新当前帧的第一二元符号模型,并将所述第二二元符号模型更新为与更新后的第一二元符号模型相同;
利用所述第一二元符号模型和所述第二二元符号模型获取二元符号模型;以及
使用更新后的二元符号模型对二元符号进行熵编码。
CN202010152701.2A 2019-06-11 2020-03-06 模型更新方法、装置、电子设备及计算机可读存储介质 Active CN112073729B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202410309590.XA CN118200585A (zh) 2019-06-11 2020-03-06 模型更新方法、装置、电子设备及计算机可读存储介质
CN202410309592.9A CN118200586A (zh) 2019-06-11 2020-03-06 模型更新方法、装置、电子设备及计算机可读存储介质
BR112021023379A BR112021023379A2 (pt) 2019-06-11 2020-06-10 Método para atualizar um modelo
EP20822571.4A EP3984221A4 (en) 2019-06-11 2020-06-10 METHODS OF UPDATING MODEL, APPARATUS, ELECTRONIC DEVICE, AND COMPUTER READABLE STORAGE MEDIA
PCT/KR2020/007534 WO2020251261A1 (en) 2019-06-11 2020-06-10 Method for updating model, apparatus, electronic device and computer readable storage medium

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
CN201910502457 2019-06-11
CN2019105024575 2019-06-11
CN201910730604 2019-08-08
CN2019107306044 2019-08-08
CN2019110773920 2019-11-06
CN201911077392 2019-11-06

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN202410309590.XA Division CN118200585A (zh) 2019-06-11 2020-03-06 模型更新方法、装置、电子设备及计算机可读存储介质
CN202410309592.9A Division CN118200586A (zh) 2019-06-11 2020-03-06 模型更新方法、装置、电子设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112073729A CN112073729A (zh) 2020-12-11
CN112073729B true CN112073729B (zh) 2024-04-05

Family

ID=73657960

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202410309592.9A Pending CN118200586A (zh) 2019-06-11 2020-03-06 模型更新方法、装置、电子设备及计算机可读存储介质
CN202010152701.2A Active CN112073729B (zh) 2019-06-11 2020-03-06 模型更新方法、装置、电子设备及计算机可读存储介质
CN202410309590.XA Pending CN118200585A (zh) 2019-06-11 2020-03-06 模型更新方法、装置、电子设备及计算机可读存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202410309592.9A Pending CN118200586A (zh) 2019-06-11 2020-03-06 模型更新方法、装置、电子设备及计算机可读存储介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202410309590.XA Pending CN118200585A (zh) 2019-06-11 2020-03-06 模型更新方法、装置、电子设备及计算机可读存储介质

Country Status (4)

Country Link
EP (1) EP3984221A4 (zh)
CN (3) CN118200586A (zh)
BR (1) BR112021023379A2 (zh)
WO (1) WO2020251261A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107005697A (zh) * 2014-12-26 2017-08-01 英特尔公司 用于视频译码的使用基于查找表的概率更新的熵译码的方法与***
CN107534772A (zh) * 2015-05-19 2018-01-02 联发科技股份有限公司 基于多表格的上下文自适应二进制算术编码的方法及装置
CN107667533A (zh) * 2015-05-29 2018-02-06 高通股份有限公司 高级算术译码器
CN107787582A (zh) * 2015-06-10 2018-03-09 三星电子株式会社 使用用于自适应加权预测的语法信令对图像进行编码或解码的方法和设备
CN108141594A (zh) * 2015-10-13 2018-06-08 三星电子株式会社 用于对图像进行编码或解码的方法和设备
CN109196869A (zh) * 2016-05-13 2019-01-11 高通股份有限公司 帧内预测模式的基于邻近的发信号

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2780711A1 (en) * 2011-06-10 2012-12-10 Research In Motion Limited Method and system to reduce modelling overhead for data compression
JP5900024B2 (ja) * 2012-03-02 2016-04-06 沖電気工業株式会社 動画像符号化装置及びプログラム、動画像復号装置及びプログラム、並びに、動画像配信システム
US10554988B2 (en) * 2017-03-22 2020-02-04 Qualcomm Incorporated Binary arithmetic coding with parameterized probability estimation finite state machines
US10609414B2 (en) * 2017-05-08 2020-03-31 Qualcomm Incorporated Context modeling for transform coefficient coding
US11039143B2 (en) * 2017-11-20 2021-06-15 Qualcomm Incorporated Memory reduction for context initialization with temporal prediction

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107005697A (zh) * 2014-12-26 2017-08-01 英特尔公司 用于视频译码的使用基于查找表的概率更新的熵译码的方法与***
CN107534772A (zh) * 2015-05-19 2018-01-02 联发科技股份有限公司 基于多表格的上下文自适应二进制算术编码的方法及装置
CN107667533A (zh) * 2015-05-29 2018-02-06 高通股份有限公司 高级算术译码器
CN107787582A (zh) * 2015-06-10 2018-03-09 三星电子株式会社 使用用于自适应加权预测的语法信令对图像进行编码或解码的方法和设备
CN108141594A (zh) * 2015-10-13 2018-06-08 三星电子株式会社 用于对图像进行编码或解码的方法和设备
CN109196869A (zh) * 2016-05-13 2019-01-11 高通股份有限公司 帧内预测模式的基于邻近的发信号

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JVET-A1001:Algorithm Description of Joint Exploration Test Model 1;JIANLE CHEN;《Joint Video Exploration Team (JVET)》;全文 *
JVET-J0011:Description of SDR video coding technology proposal;WANG Z;《THE JOINT VIDEO EXPLORATION TEAM(JVET)》;全文 *
高效视频编码理论与算法研究;王建鹏;《中国博士学位论文全文数据库》;全文 *

Also Published As

Publication number Publication date
CN118200586A (zh) 2024-06-14
WO2020251261A1 (en) 2020-12-17
BR112021023379A2 (pt) 2022-04-26
EP3984221A1 (en) 2022-04-20
CN112073729A (zh) 2020-12-11
CN118200585A (zh) 2024-06-14
EP3984221A4 (en) 2023-05-03

Similar Documents

Publication Publication Date Title
CN109997361B (zh) 用于视频译码的低复杂度符号预测
US11523124B2 (en) Coded-block-flag coding and derivation
CN103748886B (zh) 支持模式切换的熵编码
US10791341B2 (en) Binary arithmetic coding with progressive modification of adaptation parameters
US10554988B2 (en) Binary arithmetic coding with parameterized probability estimation finite state machines
CN109936742B (zh) 对视频序列进行编码的方法、编码装置和存储介质
CN115037946A (zh) 编码或解码视频数据的方法和装置
JP4547503B2 (ja) 算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体
JP2009021775A (ja) 符号化装置及び符号化方法
TW201724852A (zh) 平行算術寫碼技術
CN110035288B (zh) 对视频序列进行编码的方法、编码装置和存储介质
CN112073729B (zh) 模型更新方法、装置、电子设备及计算机可读存储介质
KR101151352B1 (ko) H.264/avc를 위한 문맥 적응적 가변 길이 복호화기
CN106063269B (zh) 动态图像编码装置、动态图像解码装置以及动态图像编码/解码方法
JP2010004284A (ja) 画像復号装置及び画像復号方法
CN110545437B (zh) 系数编码、解码方法、电子设备及介质
CN112449186B (zh) 编码方法、解码方法、相应的装置、电子设备及存储介质
WO2020263438A1 (en) Features of range asymmetric number system encoding and decoding
US8675730B2 (en) Macroblock grouping in a destination video frame to improve video reconstruction performance
CN114079774B (zh) 帧间预测信息的编解码方法及装置
CN117119189A (zh) 应用于视频编解码的量化、反量化方法、装置以及设备
CN117097905A (zh) 一种无损图像分块压缩方法、设备、存储介质
CN114556430A (zh) 数据处理方法和装置、图像信号处理器、可移动平台
CN113852811A (zh) 基于cu相关性的帧间预测快速方法、***及存储介质
JP2018170673A (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
GR01 Patent grant
GR01 Patent grant