CN105657430B - 修改运动补偿信息的数据处理***和解码视频数据的方法 - Google Patents

修改运动补偿信息的数据处理***和解码视频数据的方法 Download PDF

Info

Publication number
CN105657430B
CN105657430B CN201510854636.7A CN201510854636A CN105657430B CN 105657430 B CN105657430 B CN 105657430B CN 201510854636 A CN201510854636 A CN 201510854636A CN 105657430 B CN105657430 B CN 105657430B
Authority
CN
China
Prior art keywords
picture
motion compensation
compensation information
slice
tile
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
CN201510854636.7A
Other languages
English (en)
Other versions
CN105657430A (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
Publication of CN105657430A publication Critical patent/CN105657430A/zh
Application granted granted Critical
Publication of CN105657430B publication Critical patent/CN105657430B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding 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/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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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/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/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种数据处理***,包含:第一核,配置该第一核,以解码第一画面,并且产生解码的第一画面的解码历史信息;以及第二核,配置该第二核,以根据解码的第一画面的解码历史信息,修改包含在第二画面中的第一运动补偿信息,并且根据解码的第一画面和修改的第一运动补偿信息,解码第二画面。

Description

修改运动补偿信息的数据处理***和解码视频数据的方法
相关申请的交叉引用
本申请要求2014年11月28日在韩国知识产权局提交的韩国专利申请No.10-2014-0168004的优先权,在此通过引用合并该韩国专利申请的公开的全部内容。
技术领域
示例性实施例涉及半导体器件,并且更具体地说,涉及包含用于执行实时环路(in-loop)滤波的多个核的应用处理器和包含其的***。
背景技术
画面中的时间片(slice)和平铺窗口(tile)能够减小熵编码或者熵解码中的相关性。然而,当画面中的多个时间片或者平铺窗口由多个处理器并行处理时,多个时间片或者平铺窗口的解块操作可能失速,直到与多个时间片或者平铺窗口的边界相邻的宏块的处理操作结束。此外,多个处理器需要交换关于与多个时间片或者平铺窗口相邻的宏块的解块操作的信息。
即,当画面中的多个分割区由多个处理器并行处理时,解块操作可能因为多个处理器处理的画面中的多个分割区的相关性和属性而失速或者延迟。
发明内容
根据示例性实施例的方案,提供了一种数据处理***,包含:第一核,配置第一核,以解码第一画面,并且产生解码的第一画面的解码历史信息;以及第二核,配置第二核,以根据解码的第一画面的解码历史信息,修改包含在第二画面中的第一运动补偿信息,并且根据解码的第一画面和修改第一运动补偿信息,解码第二画面。
可以配置该第二核,以产生解码的第二画面的解码历史信息;并且可以配置该第一核,以根据解码的第二画面的解码历史信息修改包含于第三画面中的第二运动补偿信息,并且根据修改的第二运动补偿信息和解码的第一画面和解码的第二画面中的一个,解码第三画面。
第一核可以包含第一运动补偿信息修改器,配置该第一运动补偿信息修改器,以修改第二运动补偿信息,并且第二核可以包含第二运动补偿信息修改器,配置该第二运动补偿信息修改器,以修改第一运动补偿信息。
第一核可以包含第一环路滤波器,该第一环路滤波器连接到第一运动补偿修改器,并且第二核可以包含第二环路滤波器,该第二环路滤波器连接到第二运动补偿修改器。
根据从第一运动补偿信息修改器收到的第一控制信号,第一环路滤波器仅在与修改第一运动补偿信息有关的块中执行作为解块操作的局部环路滤波,并且根据从第二运动补偿信息修改器收到的第二控制信号,第二环路滤波器仅在与修改的第二运动补偿信息有关的块中执行作为解块操作的局部环路滤波。
第一画面、第二画面和第三画面中的每个都可以包含至少一个分割区。
第一画面可以包含第一分割区,解码的第一画面的解码历史信息可以包含第一分割区的解码历史信息,并且第二核根据第一分割区的解码历史信息修改第一运动补偿信息。
修改第一运动补偿信息可以包含对应于被包含在第一运动补偿信息中的基准坐标的修改基准坐标。
第二画面可以包含第二分割区,解码的第二画面的解码历史信息可以包含第二分割区的解码历史信息,并且第一核根据第二分割区的解码历史信息修改第二运动补偿信息。
修改的第二运动补偿信息可以包含针对包含于第二运动补偿信息中的基准画面索引修改的修改基准画面索引。
根据另一个示例性实施例的方案,提供了一种用于解码视频数据中的多个画面的方法,该方法包含:接收具有第一分割区的第一画面;接收具有第二分割区的第二画面;提取被包含于第二画面中的第一运动补偿信息;修改提取第一运动补偿信息;以及根据第一分割区和修改第一运动补偿信息,解码第二画面。
修改提取第一运动补偿信息可以包含:根据与提取第一运动补偿信息有关的基准画面的解码历史信息,修改被包含于第一运动补偿信息中的基准画面的基准坐标。
第一画面可以包含与第一分割区不同的第三分割区,并且可以修改基准画面的基准坐标,使得从指示第一分割区的第一坐标到指示第三分割区的第二坐标改变基准坐标。
该方法还可以包含:根据第一画面和修改第一运动补偿信息,解码包含于第二分割区中的块;以及对解码块执行局部环路滤波。
该方法还可以包含:接收具有第三分割区的第三画面;提取包含于第三画面中的第二运动补偿信息;修改提取的第二运动补偿信息;以及根据修改的第二运动补偿信息,解码第三画面。
修改提取的第二运动补偿信息可以包含根据基准画面索引所指的基准画面的解码历史信息修改被包含于第二运动补偿信息中的基准画面索引。
可以修改基准画面索引,使得从指示第二画面的第二索引到指示第一画面的第一索引改变基准画面索引。
该方法还可以包含:根据第二画面和修改的第二运动补偿信息,解码第三分割区中的块;并且对解码块执行局部环路滤波。
提取的第二运动补偿信息可以包含基准画面索引,并且修改提取的第二运动补偿信息可以包含:根据与基准画面的基准画面索引和基准坐标有关的第一分割区或者第二分割区的解码历史信息,修改包含于提取的第二运动补偿信息中的基准画面索引所指的基准画面的基准画面索引和基准坐标。
第一画面可以包含与第一分割区不同的第四分割区,并且修改提取第一运动补偿信息可以包含:修改基准画面索引,使得基准画面索引从指示第二画面的第二索引变更为指示第一画面的第一索引;并且修改基准画面的基准坐标,使得基准坐标从指示第四分割区的第一坐标变更为指示第一分割区的第二坐标。
该方法还可以包含:根据第一画面和修改的第二运动补偿信息,解码第三分割区中的块;以及对解码块执行局部环路滤波。
根据包含于提取第一运动补偿信息中的许多基准画面,修改提取第一运动补偿信息。
根据包含于提取第一运动补偿信息中的运动向量的值,修改提取第一运动补偿信息。
根据解块操作之前相邻解码块之间的边界上的像素值的差,修改提取第一运动补偿信息。
根据另一个示例性实施例的一个方案,提供了一种数据处理***,包含:第一解码器,配置该第一解码器,以解码第一画面并且产生包含于第一画面中的第一运动补偿信息、以及根据解码的第一画面的解码结果产生第一解码历史信息;以及第二解码器,配置该第二解码器,以解码第二画面并且产生包含于第二画面中的第二运动补偿信息、以及根据解码的第二画面的解码结果产生第二解码历史信息;解码历史储存器,该解码历史储存器连接到第一解码器和第二解码器,并且配置该解码历史储存器,以存储第一解码历史信息和第二解码历史信息;以及运动补偿信息修改器,该运动补偿信息修改器连接到解码历史储存器,并且配置该运动补偿信息修改器,以根据第一和第二解码历史以及第一和第二运动补偿信息,修改第一和第二运动补偿信息;其中配置该第二解码器,以根据修改的第二运动补偿信息,解码第二画面。
第一解码器可以解码第三画面,并且产生包含于第三画面中的第三运动补偿信息,并且根据第三画面的解码结果,更新第一解码历史信息,并且运动补偿信息修改器可以根据第三运动补偿信息和第一解码历史信息修改第三运动补偿信息。
第一画面、第二画面和第三画面中的每个都可以具有至少一个分割区。
通过修改包含第二运动补偿信息的基准画面的基准坐标,运动补偿信息修改器可以产生修改的第二运动补偿信息。
通过修改包含于第三运动补偿信息中的基准画面,运动补偿信息修改器可以产生修改的第三运动补偿信息。
通过修改包含于第三运动补偿信息中的基准画面索引所指的基准画面的基准画面索引和基准坐标,运动补偿信息修改器可以产生修改的第三运动补偿信息。
附图说明
通过参考附图详细描述示例性实施例,上述以及其他方案更加显而易见,其中:
图1是根据示例性实施例的数据处理***的方框图;
图2是示出包含多个时间片的画面的原理图;
图3是示出分别包含两个时间片的一系列画面的原理图;
图4是示出利用两个核处理图3所示一系列画面的过程的原理图;
图5是示出分别包含两个时间片组的一系列画面的原理图;
图6是示出利用两个核处理图5所示一系列画面的过程的原理图;
图7是示出分别包含三个时间片的一系列画面的原理图;
图8是示出利用三个核处理图7所示一系列画面的过程的原理图;
图9是示出根据示例性实施例的运动向量搜索的原理图;
图10是示出根据示例性实施例的,其每个分别包含两个平铺窗口的一系列画面的原理图;
图11是示出由两个核处理图10所示一系列画面的过程的原理图;
图12是示出其每个分别包含两个平铺窗口的一系列画面的原理图;
图13是示出其每个分别包含四个平铺窗口的一系列画面的原理图;
图14是示出由两个核处理图13所示一系列画面的过程的原理图;
图15是示出图1所示数据处理***的硬件编解码器的方框图;
图16是图15所示硬件编解码器的编码器的方框图;
图17是图15所示硬件编解码器的解码器的方框图;
图18至22是根据示例性实施例,通过修改运动补偿信息处理视频数据的方法的原理图;
图23A和23B是示出根据示例性实施例局部环路滤波的原理图;
图24是示出根据示例性实施例的解码器的方框图;
图25是示出根据示例性实施例的数据处理***的方框图;
图26是示出根据示例性实施例包含补充信息的编码的位流的数据格式;
图27是示出根据示例性实施例的数据处理***的方框图;
图28是示出根据示例性实施例的数据处理***的方框图;
图29是示出根据示例性实施例,利用图1、18和19所示数据处理***处理视频数据的方法的流程图;以及
图30是示出根据另一个示例性实施例处理视频数据的方法的流程图。
具体实施方式
现在,下面将参考在其中示出示例性实施例的附图来更全面描述各种示例性实施例。然而,本发明的原理可以以不同方式实现,并且不应当理解为局限于所阐述的示例性实施例。相反,提供这些示例性实施例,使得本公开透彻和全面,并且对本技术领域内的技术人员全面传达本发明的范围。在整个说明书中,相同的参考编号可以指相同的部件。在附图中,为了清楚起见,可以放大层和区的厚度。
还应当明白,当称一层位于另一层或者另一个衬底“上”时,其能够直接位于另一层或者另一个衬底上,也可以存在中间层。相反,当称一个元件“直接”位于另一个元件“上”时,不存在中间元件。
为了便于描述,在此可以利用诸如“之下”、“下面”、“低于”、“之上”、“上面”等的空间关系术语描述一个元件或者特征与另一个(另一些)元件或者特征的关系,如图所示。应当明白,空间关系术语意图包含除了图中所示的方位的器件在使用中的或者操作中的不同方位。例如,如果图中的器件翻转,则描述为在另一些元件或者特征“下面”的或者“之下”的元件的方位被确定为在该另一些元件或者特征的“上面”。因此,示例性术语“下面”能够既包括上面又包括下面的方位。可以以其他方式确定设备的方位(旋转90度或者处于其他方位),并且因此理解在此使用的空间关系描述语。
可以认为在描述示例性实施例的语境中,特别是在下面的权利要求书的语境中所使用的术语“一”、“一个”和“该”既涵盖单数又涵盖复数,除非在此另外清楚地指出或者由上下文清楚是矛盾的。将术语“包括”、“具有”、“包含”和“含有”理解为开放式术语(即,指“包括但并不局限于包括”),除非另有说明。
除非另有说明,在此使用的所有科技术语均与本发明的原理所属技术领域内普通技术人员通常理解的意义相同。请注意,使用在此提供的任何一个和全部例子或者示例性术语仅旨在更好地说明本发明的原理,并且不限制本发明的原理的范围,除非另有说明。此外,除非另有说明,可以不过度解释通常使用的字典中定义的所有术语。
将参考透视图、截面图和/或者平面图描述示例性实施例。因此,根据制造技术和/或者公差,示例性示图的轮廓(profile)可能会被修改。即,示例性实施例不旨在限制本发明原理的范围,而是涵盖因为制造过程的变化能够导致的所有变化和修改。因此,图中所示的区域以原理形式示出,并且示出区域的形状,仅作为说明而没有限制性。
下面将参考附图更全面描述本发明原理的各种示例性实施例。
各种示例性实施例中的画面或者处理单元(即,要被处理的单元)可以包含一个或者多个分割区,例如,时间片或者平铺窗口。根据示例性实施例,画面可以由核处理。换句话说,画面中的所有分割区,例如,所有时间片或者所有平铺窗口都可以由单核处理。在此,处理可以指编码、解码、包含环路滤波的编码或者包含环路滤波的解码。
在各种示例性实施例中,可以将画面分割为时间片。时间片分别定义AVC的或者HEVC的一系列整数个宏块(MB)或者编码树单元(CTU)。在HEVC的示例性实施例中,还能够将画面分割为平铺窗口。平铺窗口定义整数个CTU的矩形区域,并且可以包括被包含在一个以上时间片中的CTU。
在某些示例性实施例中,在全高清(FHD)电视或者超高清(UHD)电视中,可以实现数据处理***100A、100B或者100C。此外,数据处理***100A、100B或者100C可以与诸如H.264、高效率视频编码(HEVC)等的视频编码标准兼容。
在某些示例性实施例中,在个人计算机(PC)、智能电话、平板PC、移动互联网设备(MID)、膝上型计算机、移动数字媒体播放器(M-DMP)或者便携式媒体播放器(PMP)上,实现数据处理***100A、100B或者100C。
图1是根据示例性实施例的数据处理***的方框图。参考图1,数据处理***100A可以包含:控制器200A、多个存储器301、303和305以及显示器400。在某些示例性实施例中,数据处理***100A还可以包含摄像机500。
可以将控制器200A实现为集成电路(IC)、片上***(SoC)、母板、应用处理器(AP)或者移动AP。
控制器200A可以接收并且编码未压缩YUV/RGB数据输入或者对编码的位流进行解码;控制诸如多个存储器301、303和305的读取/写入操作的操作;以及将显示数据或者视频数据发送到显示器400。此外,控制器200A可以处理摄像机500输出的图像数据或者视频数据,并且可以将处理的图像数据或者处理的视频数据存储于多个存储器301、303和305中至少一个中,并且/或者将处理的图像数据或者处理的视频数据发送到显示器400。
控制器200A可以包含:中央处理单元(CPU)210A;图形处理单元(GPU)220;多个硬件编解码器230-1至230-N,N是等于或者大于2的自然数;存储器接口(I/F)240;显示接口(I/F)260;以及接收机接口(I/F)270。当数据处理***100A还包含摄像机500时,控制器200A还可以包含摄像机接口(I/F)250。
CPU 210A、GPU 220、多个硬件编解码器230-1至230-N、存储器接口240、显示接口260以及接收机接口270可以通过总线201互相发送或者接收数据。摄像机接口250可以连接到例如210A和/或者220的其他部件并且从例如210A和/或者220的其他部件接收数据/将数据发送到例如210A和/或者220的其他部件。
CPU 210A可以包含一个或者多个核。CPU 210A可以控制控制器200A的全部操作。例如,CPU 210A可以执行程序代码或者应用,用于控制GPU 220、多个硬件编解码器230-1至230-N、存储器接口240、摄像机接口250、显示接口260和/或者接收机接口270的操作。
GPU 220可以处理2D或者3D图形数据。可以将由GPU 220处理的图形数据存储于多个存储器301、303和305中至少一个中,或者可以由显示器400显示。
多个硬件编解码器230-1至230-N在结构和操作方面基本上相同。在某些示例性实施例中,可以将多个硬件编解码器230-1至230-N中的每个称为核。多个硬件编解码器230-1至230-N中的每个可以分别包含存储器MEM1至MEMN中的一个。存储器MEM1至MEMN中的每个都可以存储一个或者多个编码的和/或者解码的图形的信息,并且/或者对一个或者多个编码的和/或者解码的图形执行环路滤波。
存储器接口240可以包含:第一存储器接口241、第二存储器接口243和第三存储器接口245。例如,当多个存储器301、303和305中的第一存储器301是动态随机存取存储器(DRAM)时,第一存储器接口241可以是DRAM接口。当第二存储器303是NAND闪速存储器时,第二存储器接口243可以是NAND闪速接口。当第三存储器305是嵌入多媒体卡(eMMC)时,第三存储器接口可以是eMMC接口。在图1中为了便于描述,示出了四个存储器接口241、243和245和三个存储器301、303和305;然而,这仅是例子,并且不特殊限制存储器的数量。因此,技术原理不受存储器接口的和连接到存储器接口的存储器的数量的限制。
显示接口260可以在CPU 210A、GPU 220或者多个硬件编解码器230-1至230-N中的每个的控制下将显示数据例如视频数据发送到显示器400。在某些示例性实施例中,可以将显示接口260实现为移动行业处理器接口
Figure BDA0000862618440000081
嵌入式显示器端口(eDP)接口或者高清晰多媒体接口(HDMI)等等的显示器串行接口(DSI)。然而,这些接口仅是例子,并且显示接口260并不局限于此。
接收机接口270可以通过有线通信网或者无线通信网接收未压缩的图形数据(RGB/YUV)或者/和编码的位流。在某些示例性实施例中,接收机接口270可以实现为通用串行总线接口(USB)、以太网接口、蓝牙接口、Wi-Fi接口或者长期演进(LTETM)接口等等。然而,这些接口仅是例子,并且接收机接口270并不局限于此。
摄像机接口250可以接收摄像机500输出的图像数据。在某些示例性实施例中,摄像机接口250可以是
Figure BDA0000862618440000091
的摄像机串行接口(CSI)。然而,该接口仅是例子,并且摄像机接口250并不局限于此。摄像机500可以是包含CMOS图像传感器的摄像机模块。
图2是示出包含多个时间片的画面的原理图。
参考图2,画面10可以包含多个时间片SLICE1至SLICE3,并且多个时间片SLICE1至SLICE3中的每个都可以包含多个块。例如,如图2的例子所示,SLICE1可以包含块0-21,SLICE2可以包含块22-39,并且SLICE3可以包含块40-63。被包含在多个时间片SLICE1至SLICE3中的每个中的块的数量可以互相不同。或者,对于每个时间片,包含在多个时间片SLICE1至SLICE3中的每个中的块的数量可以相同。画面10可以是要编码的帧、初始画面、画面的原始位流、要解码的帧、编码的画面或者编码的位流EB等等。图2示出具有64个块,即,块0-63的画面。然而,这仅是例子,并且块的数量可以大于也可以小于64。
在H.264视频编码标准中,块可以是宏块。在高效率视频编码(HEVC)标准中,块可以是编码树单元(CTU)。在某些示例性实施例中,画面10可以是要编码的帧、初始画面、要编码的画面的原始位流,或者要解码的帧、编码的画面或者编码的位流EB等等。
编码器可以对画面中的块编码,并且解码器可以从块0到块63对画面中的块顺序解码。
处理了第一时间片SLICE1中的第一块0后,编码器或者解码器不对处理的第一块0的边缘执行环路滤波,因为在处理的第一块0之前没有块。相反,处理了第一时间片SLICE1中的第二块1后,编码器或者解码器根据处理的第一块0的第一视频数据和处理的第二块1的第二视频数据,对第一块0的边缘和第二块1执行环路滤波。即,编码器或者解码器可以对块边界执行环路滤波。在此,块边界指两个块之间的边界。
在处理了第二时间片SLICE2中的第23个编码块22后,编码器或者解码器可以根据块14、21和23的视频数据对第二时间片SLICE2中的第23个处理的块22的边缘以及第一时间片SLICE1中的在前块14和21执行环路滤波。即,编码器或者解码器可以对时间片边界执行环路滤波。
在处理了第三时间片SLICE3中的第41块40后,编码器或者解码器可以根据第33块32的视频数据来对第三时间片SLICE3中的第41个处理块40的边缘以及第二时间片SLICE2中的在前块32执行环路滤波。即,编码器或者解码器可以对时间片边界执行环路滤波。换句话说,利用与当前块相邻的上部处理块和左侧处理块中的至少一个,可以对当前处理块执行环路滤波。
根据示例性实施例,包含符合H.264视频编码标准的环路滤波器的解码器可以对每块执行环路滤波。根据本发明原理的示例性实施例,包含符合HEVC视频编码标准的环路滤波器的解码器可以对每块执行环路滤波。例如,根据采样点自适应偏移(SAO)的视频编码标准,解码器可以对与块边界上的当前解码块相邻的多个块执行环路滤波,或者可以对当前解码块中的所有像素执行环路滤波。
可以根据运动向量、预测模式信息和/或者量化参数等等执行根据H.264视频编码标准的环路滤波。可以根据运动向量、预测模式信息、量化参数和/或者SAO滤波器的多个参数等等执行根据HEVC视频编码标准的环路滤波。预测模式可以包含预测模式内信息或者预测模式间信息。
图3是示出分别包含两个时间片的一系列画面的原理图。图4是示出利用两个核处理图3所示一系列画面的过程的原理图。
参考图1、3和4,控制器200A可以包含两个硬件编解码器230-1和230-2。第一核CORE0可以是第一硬件编解码器230-1,并且第二核CORE1可以是第二硬件编解码器230-2。参考图2描述的编码器或者解码器可以被包含在第一核CORE0和第二核CORE1中。
参考图3,多个画面610、612、614、……和616中的每个分别可以包含两个时间片610-1~610-2、612-1~612-2、614-1~614-2、以及616-1~616-2。多个画面610、612、614和616中的每个分别可以包含第一处理单元610-1、612-1、614-1、……、和616-1并且分别包含第二处理器610-2、612-2、614-2、……、和616-2。如本公开使用的术语“处理单元”指要处理的数据单元。例如,多个画面610、612、614和616中的每个可以指从接收机接口270收到的要编码的帧、初始画面、要编码的画面的原始位流、或者要解码的帧、编码的帧、或者编码的位流EB等等。
在某些示例性实施例中,CPU 210A可以控制接收机接口270,使得可以将奇数画面分配给第一核CORE0,并且可以将偶数画面分配给第二核CORE1。
在某些示例性实施例中,CPU 210A可以控制第一核CORE0和第二核CORE1,使得可以将奇数画面分配给第一核CORE0,并且可以将偶数画面分配给第二核CORE1。
参考图4,在第一时段T1,第一核CORE0可以处理第一画面610的第一时间片610-1。在第一核CORE0完成处理第一时段T1中的第一画面610的第一时间片610-1后,由第二核CORE1在第二时段T2处理第二画面612的第一时间片612-1。
在第二时间T2中,第一核CORE0可以处理第一画面610的第二时间片610-2,并且第二核CORE1可以处理第二画面612的第一时间片612-1。可以在第二时段T2中并行执行对第一时间片612-1和第二时间片610-2的处理。如在本说明书中使用的“并行执行对……处理”指示在处理中存在某些重叠。因此,在此,“并行”指在处理第一时间片612-1和第二时间片610-2中存在某些重叠。即,尽管在图4、6、8、11、14中使用了虚线,但是提供这些线仅为了容易描述,并且不旨在暗示处理的开始时间和结束时间完全重合。例如,图4中的虚线不旨在暗示处理第一时间片612-1和第二时间片610-2的开始时间或者结束时间完全重合。然而,在某些示例性实施例中,开始时间可以完全重合并且/或者结束时间可以完全重合。
此外,在第二时段T2,第一核CORE0可以根据第一画面610中的第一时间片610-1的处理结果,对每块的第一画面610的第一时间片610-1和第二时间片610-2的边界执行环路滤波。如参考图2所述,第一核CORE0可以利用与当前块相邻的上部处理块和左侧处理块中的至少一个对当前处理块执行环路滤波。即,第一核CORE0可以在第二时段T2对第二时间片610-2执行处理并且可以对第一时间片610-1和第二时间片610-2执行环路滤波,使得没有附加时间用于环路滤波。
在第三时段T3,第一核CORE0可以处理第三画面614的第一时间片614-1,并且第二核CORE1可以处理第二画面612的第二时间片612-2。在第二时段T3,可以并行执行第三画面614的第一时间片614-1和第二画面612的第二时间片612-2的处理。
此外,在第三时段T3,第二核CORE1可以根据第二画面612的第一时间片612-1的处理结果对每块的第一时间片612-1和第二时间片612-2的边界执行环路滤波。即,第二核CORE1可以在第三时段T3对第二时间片612-2执行处理并且对第二画面612的第一时间片612-1和第二时间片612-2的边缘执行环路滤波,使得没有附加时间用于环路滤波。因此,第二核CORE1可以具有1个时间片的延迟,如图4所示。即,第二核CORE1可以在第一核CORE0完成处理第一画面610的第一时间片610-1后开始处理第二画面612的第一时间片612-1。
图5是示出分别包含两个时间片组的一系列画面的原理图。图6是示出利用两个核处理图5所示一系列画面的过程的原理图。
图1所示的控制器200A可以包含可以分别对应于第一核CORE0和第二核CORE1的两个硬件编解码器230-1和230-2。该系列画面可以包含例如画面620、622、624和626。
第一核CORE0可以根据画面620中的多个分割区的处理复杂性或者大小将画面620分割为第一处理单元和第二处理单元。在图5和6中,第一处理单元可以包含两个时间片SLICE1-1和SLICE1-2,并且第二处理单元可以包含三个时间片SLICE1-3至SLICE1-5。图5中的黑体线上面示出第一处理单元,而在图5中的黑体线下面示出第二处理单元。图5示出第一处理单元中的每个都包含两个时间片,例如,第一画面620包含具有SLICE1-1和SLICE1-2的第一处理单元。然而,这仅是例子,并且根据多个分割区的复杂性或者大小,第一处理单元可以具有比两个时间片少或者多的许多时间片。
第二核CORE1可以根据画面622的处理复杂性将画面622分割为第一处理单元和第二处理单元。在图5和6中,第一处理单元可以包含两个时间片SLICE2-1和SLICE2-2,并且第二处理单元可以包含三个时间片SLICE2-3至SLICE2-5。
例如,当不将画面620、622、624和626划分为多个时间片或者平铺窗口时,或者当多个分割区(例如,时间片或者平铺窗口)具有不同的处理复杂性时,有利的是,根据处理复杂性,定义多个分割区,以用于多个核CORE0和CORE1的并行处理。在此,第一核CORE0和第二核CORE1可以并行分割并且处理画面620、622、624和626的多个分割区。可以通过关于画面的块的解码时间和/或者编码时间和/或者时间片的大小来定义处理复杂性。
同样,当在图5中m是等于或者大于4的自然数时,第一核CORE0可以根据画面624的处理复杂性将画面624分割为第一处理单元和第二处理单元。在图5和6中,第一处理单元可以包含两个时间片SLICE3-1和SLICE3-2,并且第二处理单元可以包含三个时间片SLICE3-3至SLICE3-5。
第二核CORE1可以根据画面626的处理复杂性将画面626分割为第一处理单元和第二处理单元。在图5和6中,第一处理单元可以包含两个时间片SLICEm-1和SLICEm-2,并且第二处理单元可以包含三个时间片SLICEm-3至SLICEm-5。
尽管为了便于描述图5和6,示出的是每个画面620、622、624或者626分别被分割为第一处理单元和第二处理单元以用于两个核CORE0和CORE1,但是画面中的处理单元的数量可以根据处理该单元的核的数量改变。
例如,第一核CORE0处理三个时间片SLICE1-3至SLICE1-5的处理时间和第二核CORE1处理两个时间片SLICE2-1和SLICE2-2的处理时间基本上相同。在此,“基本上相同”的意义可以包含“相等、接近相同、几乎相同、或者容许误差情况下的相同”。
如图5所示,每个画面620、622、624、……、626可以分别包含5个时间片SLICE1-1至SLICE1-5、SLICE2-1至SLICE2-5、SLICE3-1至SLICE3-5、……、SLICEm-1至SLICEm-5。例如,每个画面620、622、624和626可以是要编码的帧、初始画面、要编码的画面的原始位流、或者要解码的帧、编码的画面、或者通过接收机接口270收到的编码的位流EB等等。
回到图6,在第一时段T11,第一核CORE0可以处理第一画面620的第一时间片SLICE1-1和第二时间片SLICE1-2。在第一时段T11,第一核CORE0可以根据时间片SLICE1-1的处理结果来对时间片SLICE1-1和SLICE1-2的边界执行环路滤波。
在第二时段T12,第一核CORE0可以处理第一画面620的第三时间片SLICE1-3至第五时间片SLICE1-5,并且第二核CORE1可以处理第二画面622的第一时间片SLICE2-1和第二时间片SLICE2-2。在第二时段T12,可以并行执行第三时间片SLICE1-3至第五时间片SLICE1-5的处理以及第一时间片SLICE2-1和第二时间片SLICE2-2的处理。
在第二时段T12,第一核CORE0可以根据时间片SLICE1-2的处理结果,对每块的时间片SLICE1-2和SLICE1-3的边界执行环路滤波。在第二时段T12,第一核CORE0可以根据时间片SLICE1-3的处理结果,对每块的时间片SLICE1-3和SLICE1-4的边界极限环路滤波,并且可以根据时间片SLICE1-4的处理结果,对每块的时间片SLICE1-4和SLICE1-5的边界执行环路滤波。此外,在第二时段T12,第二核CORE1可以根据时间片SLICE2-1的处理结果,对每块的时间片SLICE2-1和SLICE2-2的边界执行环路滤波。
即,在第二时段T12,第一核CORE0可以对三个时间片SLICE1-3至SLICE1-5执行环路滤波,并且第二核CORE1可以对两个时间片SLICE2-1和SLICE2-2执行环路滤波,使得没有附加时间用于环路滤波,例如,在第一核CORE0和第二核CORE1上没有用于采集分布的时间片的附加时间。
在第三时段T13,第一核CORE0可以处理第三画面624的第一时间片SLICE3-1和第二时间片SLICE3-2。在第三时段T13,第一核CORE0可以根据时间片SLICE3-1的处理结果,对每块的时间片SLICE3-1和SLICE3-2的边界执行环路滤波。
在第三时段T13,第一核CORE0可以处理第三画面624的第一时间片SLICE3-1和第二时间片SLICE3-2,并且第二核CORE1可以处理第二画面622的第三时间片SLICE2-3至第五时间片SLICE2-5。在第三时段T13,可以并行执行第三时间片SLICE2-3至第五时间片SLICE2-5的处理以及第一时间片SLICE3-1和第二时间片SLICE3-2的处理。
在第三时段T13,第一核CORE0可以根据时间片SLICE3-1的处理结果,对每块的时间片SLICE3-1和SLICE3-2的边界执行环路滤波。此外,在第三时段T13,第二核CORE1可以根据时间片SLICE2-2的处理结果对每块的时间片SLICE2-2和SLICE2-3的边界执行环路滤波。在第三时段T13,第二核CORE1可以根据时间片SLICE2-3的处理结果,对每块的时间片SLICE2-3和SLICE2-4的边界执行环路滤波并且可以根据时间片SLICE2-4的处理结果,对每块的时间片SLICE2-4和SLICE2-5的边界执行环路滤波。
即,在第三时段T13,第一核CORE0可以对两个时间片SLICE3-1和SLICE3-2执行环路滤波,并且第二核CORE1可以对三个时间片SLICE2-3至SLICE2-5执行环路滤波,使得没有附加时间用于环路滤波,例如,在第一核CORE0和第二核CORE1上没有用于采集分布时间片的附加时间。
图7是示出分别包含三个时间片的一系列画面的原理图。图8是示出利用三个核处理图7所示一系列画面的过程的原理图。
图1所示的控制器200A可以包含可以分别对应于第一核CORE0、第二核CORE1和第三核CORE2的三个硬件编解码器230-1、230-2和230-3。图2所示的编码器或者/和解码器可以嵌入核CORE0、CORE1和CORE2的每个中。
如图7所示,每个画面630、632、634、636和638可以分别包含三个时间片。每个画面630、632、634、636和638可以包含:第一处理单元、第二处理单元和第三处理单元。即,第一处理单元、第二处理单元和第三处理单元中的每个可以分别对应于三个时间片中的一个。每个画面630、632、634、636和638可以是要编码的帧、初始画面、要编码的画面的原始位流、要解码的帧、编码的画面或者通过接收机接口270收到的编码的位流EB等等。
回到图8,在第一时段T21,第一核CORE0可以处理第一画面630的第一时间片SLICE1-1.
在第二时段T22,第一核CORE0可以处理第一画面630的第二时间片SLICE1-2,并且第二核CORE1可以处理第二画面632的第一时间片SLICE2-1。在第二时段T22,可以并行执行第二时间片SLICE1-2的处理和第一时间片SLICE2-1的处理。
在第二时段T22,第一核CORE0可以根据时间片SLICE1-1的处理结果,对每块的时间片SLICE1-1和SLICE1-2的边界执行环路滤波。
关于并行处理,可以对第二核CORE1分配一个(1)时间片延迟,可以对第三核CORE2分配两个(2)时间片延迟。
在第三时段T23,第一核CORE0可以处理第一画面630的第三时间片SLICE1-3,第二核CORE1可以处理第二画面632的第二时间片SLICE2-2,并且第三核CORE2可以处理第三画面634的第一时间片SLICE3-1。
在第三时段T23,可以在第三时段T23并行执行第三时间片SLICE1-3的处理、第二时间片SLICE2-2和第一时间片SLICE1-3的处理。
在第三时段T23,第一核CORE0可以根据时间片SLICE1-2的处理结果,对每块的时间片SLICE1-2和SLICE1-3的边界执行环路滤波,并且可以根据时间片SLICE2-1的处理结果,对每块的时间片SLICE2-1和SLICE2-2的边界执行环路滤波。
在第四时段T24,第一核CORE0可以处理第四画面636的第一时间片SLICE4-1,第二核CORE1可以处理第二画面632的第三时间片SLICE2-3,并且第三核CORE2可以处理第三画面634的第二时间片SLICE3-2。即,一旦第一核CORE0完成处理第一画面630的时间片后,对于第四画面636的情况下,第一核CORE0进入一系列画面中的下一个画面。
在第四时段T24,可以并行执行第一时间片SLICE4-1的处理、第三时间片SLICE2-3的处理、和第二时间片SLICE3-2的处理。
在第四时段T24,第二核CORE1可以根据时间片SLICE2-2的处理结果对每块的时间片SLICE2-2和SLICE2-3的边界执行环路滤波,并且第三核CORE2可以根据时间片SLICE3-1的处理结果对每块的时间片SLICE3-1和SLICE3-2的边界执行环路滤波。
在第五时段T25,核CORE0、CORE1和CORE2中的每个核的操作可以以与第一至第四时段T21-T24中的操作相同的方式继续处理相应时间片。
图9是示出运动向量搜索的原理图。参考图3、4和9,当当前处理时间片是第三画面614的第一时间片614-1时,第一核CORE0可以搜索处理的时间片610-1、610-2和612-1,以发现最佳运动向量。例如,在不同核CORE0和CORE1并行处理时间片612-2和614-1中的每个时,第一核不能参考(refer to)现在正处理的第二画面612的第二时间片612-2。此外,时间片614-1不能参考时间片612-1的几个底部像素,因为在处理时间片614-1时(在H.264标准中,几个底部像素可以是6个像素),时间片612-1与612-2之间的边缘正处于环路滤波操作中。
数据处理***100A可以编码第三画面614,以通过根据相关性确定基准画面和匹配块(或者基准块)的坐标,来避免或者减小并行处理的时间片SLICE2-2和SLICE3-1中的相关性。例如,当编码第一时间片614-1时,可以确定第一时间片614-1中的宏块的运动向量,以在环路滤波操作正处理的底部像素存在某种限制的情况下,通过使宏块参考时间片610-1、610-2和612-1中的一个而非参考第二时间片612-2,来避免相关性。
数据处理***100A可以产生并且参考运动约束时间片组,以当编码时间片时减小并行处理的时间片之间的相关性。运动约束时间片组可以包含用于限制当前处理时间片所参考的基准画面或者在前画面的基准区的信息。可以将运动约束时间片组存储于数据处理***100A的存储器301、303或者305中或者核230-1至230-N的每个中的存储器中。
图10是示出根据示例性实施例的,其每个分别包含两个平铺窗口的一系列画面的原理图。图11是示出由两个核处理图10所示一系列画面的过程的原理图。
多个画面640、642、644和646中的每个中所示的箭头示出多个画面640、642、644和646中的多个平铺窗口的处理方向或者处理顺序。
图1中的控制器200A可以包含两个硬件编解码器230-1和230-2。第一核CORE0可以是第一硬件编解码器230-1,并且第二核CORE1可以是第二硬件编解码器230-2。在某些示例性实施例中,画面中的所有平铺窗口都可以由单个核处理。
参考图10,多个画面640、642、644、646中的每个分别可以包含两个平铺窗口TILE1-1和TILE1-2、TILE2-1和TILE2-2、TILE3-1和TILE3-2以及TILE4-1和TILE4-2。平铺窗口TILE1-1和TILE1-2、TILE2-1和TILE2-2、TILE3-1和TILE3-2以及TILE4-1和TILE4-2中的每个都可以包含一个或者多个块。多个画面640、642、644、646中的每个都可以包含第一处理单元TILE1-1、TILE2-1、TILE3-1和TILE4-1以及第二处理单元TILE1-2、TILE2-2、TILE3-2和TILE4-2。即,例如,画面640的第一处理单元包含TILE1-1,并且画面640的第二处理单元包含TILE1-2。在此,多个画面640、642、644、646中的每个都可以是要编码的帧、初始画面、要编码的画面的原始位流、要解码的帧、编码的画面或者通过接收机接口270收到的编码的位流EB等等。
将参考图1、2、10和11描述第一核CORE0和第二核CORE1的操作。
在第一时段T31,第一核CORE0可以处理第一画面640的第一平铺窗口TILE1-1。对于并行处理,可以对第二核CORE1分配平铺窗口延迟。
在第二时段T32,第一核CORE0可以处理第一画面640的第二平铺窗口TILE1-2,并且第二核CORE1可以处理第二画面642的第一平铺窗口TILE2-1。在第二时段T32,可以并行执行第一平铺窗口TILE2-1和第二平铺窗口TILE1-2的处理。与上面描述的情况中相同,在此“并行”指第一平铺窗口TILE2-1和第二平铺窗口TILE1-2的处理中存在某些重叠。即,尽管在图4、6、8、11、14中使用了虚线,但是提供这些线仅为了容易描述,并且不旨在暗示处理的开始时间或者结束时间完全重合。例如,图11的虚线不旨在暗示处理第一平铺窗口TILE2-1和第二平铺窗口TILE1-2的开始时间或者结束时间完全重合。然而,在某些示例性实施例中,开始时间可以完全重合并且/或者结束时间可以完全重合。
此外,在第二时段T32,第一核CORE0可以根据第一画面640中的第一平铺窗口TILE1-1的处理结果,对每块的平铺窗口TILE1-1和TILE1-2的边界执行环路滤波。即,在第二时段T32,第一核CORE0可以执行第二平铺窗口TILE1-2的处理并且可以执行平铺窗口TILE1-1和TILE1-2的环路滤波,使得没有附加时间用于环路滤波。
在第三时段T33,第一核CORE0可以处理第三画面644的第一平铺窗口TILE3-1,并且第二核CORE1可以处理第二画面642的第二平铺窗口TILE2-2。在第三时段T33,可以并行执行第一平铺窗口TILE3-1和第二平铺窗口TILE2-2的处理。
此外,在第三时段T33,第二核CORE1可以根据第二画面642中的第一平铺窗口TILE2-1的处理结果,对每块的平铺窗口TILE2-1和TILE2-2的边界执行环路滤波。即,在第三时段T33,第二核CORE1可以对第二平铺窗口TILE2-2执行处理并且可以对平铺窗口TILE2-1和TILE2-2执行环路滤波,使得没有附加时间用于环路滤波。
在第四时段T34,核CORE0和核CORE1中的每个核都可以以与第三时段T33内的操作相同的方式连续处理相应平铺窗口。
图12是示出其每个分别包含利用水平分隔方法分隔的两个平铺窗口的一系列画面的原理图。
多个画面650、652、654和656中的每个中所示的箭头示出多个画面650、652、654和656中的多个平铺窗口的处理方向或者处理顺序。
图1中的控制器200A可以包含两个硬件编解码器230-1和230-2。第一核CORE0可以是第一硬件编解码器230-1,并且第二核CORE1可以是第二硬件编解码器230-2。将参考图1、2、11和12描述第一核CORE0和第二核CORE1的操作。
参考图12,多个画面650、652、654、656中的每个分别可以包含两个平铺窗口TILE1-1和TILE1-2、TILE2-1和TILE2-2、TILE3-1和TILE3-2以及TILE4-1和TILE4-2。平铺窗口TILE1-1和TILE1-2、TILE2-1和TILE2-2、TILE3-1和TILE3-2以及TILE4-1和TILE4-2中的每个都可以包含一个或者多个块。多个画面650、652、654、656中的每个都可以包含第一处理单元TILE1-1、TILE2-1、TILE3-1和TILE4-1以及第二处理单元TILE1-2、TILE2-2、TILE3-2和TILE4-2。在此,多个画面650、652、654、656中的每个都可以是要编码的帧、初始画面、要编码的画面的原始位流、要解码的帧、编码的画面或者通过接收机接口270收到的编码的位流EB等等。
在第一时段T31,第一核CORE0可以处理第一画面650的第一平铺窗口TILE1-1。对于并行处理,可以对第二核CORE1分配平铺窗口延迟。
在第二时段T32,第一核CORE0可以处理第一画面650的第二平铺窗口TILE1-2,并且第二核CORE1可以处理第二画面652的第一平铺窗口TILE2-1。在第二时段T32,可以并行执行第一平铺窗口TILE2-1和第二平铺窗口TILE1-2的处理。
此外,在第二时段T32,第一核CORE0可以根据第一画面650中的第一平铺窗口TILE1-1的处理结果,对每块的平铺窗口TILE1-1和TILE1-2的边界执行环路滤波。即,在第二时段T32,第一核CORE0可以执行第二平铺窗口TILE1-2的处理并且可以执行平铺窗口TILE1-1和TILE1-2的环路滤波,使得没有附加时间用于环路滤波。
在第三时段T33,第一核CORE0可以处理第三画面654的第一平铺窗口TILE3-1,并且第二核CORE1可以处理第二画面652的第二平铺窗口TILE2-2。在第三时段T33,可以并行执行第一平铺窗口TILE3-1和第二平铺窗口TILE2-2的处理。
此外,在第三时段T33,第二核CORE1可以根据第二画面652中的第一平铺窗口TILE2-1的处理结果,对每块的平铺窗口TILE2-1和TILE2-2的边界执行环路滤波。即,在第三时段T33,第二核CORE1可以对第二平铺窗口TILE2-2执行处理并且可以对平铺窗口TILE2-1和TILE2-2执行环路滤波,使得没有附加时间用于环路滤波。
在第四时段T34,核CORE0和核CORE1中的每个核都可以以与第三时段T33内的操作相同的方式连续处理相应平铺窗口。
图13是示出其每个分别包含具有水平分隔和垂直分隔两者的四个平铺窗口的一系列画面的原理图。图14是示出由两个核处理图13所示一系列画面的过程的原理图。
多个画面660、662和664中的每个中所示的箭头示出多个画面660、662和664中的多个平铺窗口的处理方向或者处理顺序。
图1中的控制器200A可以包含两个硬件编解码器230-1和230-2。第一核CORE0可以是第一硬件编解码器230-1,并且第二核CORE1可以是第二硬件编解码器230-2。在某些示例性实施例中,画面中的所有平铺窗口可以由单个核处理。将参考图1、2、13和14描述第一核CORE0和第二核CORE1的操作。
参考图13,多个画面660、662和664中的每个分别可以包含四个平铺窗口TILE1-1至TILE1-4、TILE2-1至TILE2-4以及TILE3-1至TILE3-4。平铺窗口TILE1-1至TILE1-4、TILE2-1至TILE2-4以及TILE3-1至TILE3-4中的每个都可以包含一个或者多个块。多个画面660、662和664中的每个都可以包含:第一处理单元,该第一处理单元分别具有两个平铺窗口TILE1-1和TILE1-2、TILE2-1和TILE2-2以及TILE3-1和TILE3-2;以及第二处理单元,该第二处理单元分别具有两个平铺窗口TILE1-3和TILE1-4、TILE2-3和TILE2-4以及TILE3-3和TILE3-4。在此,多个画面660、662和664中的每个都可以是要编码的帧、初始画面、要编码的画面的原始位流、要解码的帧、编码的画面或者通过接收机接口270收到的编码的位流EB等等。
在第一时段T51,第一核CORE0可以处理第一画面660的第一平铺窗口TILE1-1和第二平铺窗口TILE1-2,并且根据第一平铺窗口TILE1-1的处理结果,对每块的第一画面650的平铺窗口TILE1-1和TILE1-2的边界执行环路滤波。对于并行处理,可以对第二核CORE1分配两个平铺窗口延迟。
在第二时段T52,第一核CORE0可以处理第一画面660的第三平铺窗口TILE1-3和第四平铺窗口TILE1-4,并且第二核CORE1可以处理第二画面662的第一平铺窗口TILE2-1和第二平铺窗口TILE2-2。在第二时段T52,可以并行执行第三平铺窗口TILE1-3和第四平铺窗口TILE1-4的处理和第一平铺窗口TILE2-1和第二平铺窗口TILE2-2的处理。与上面讨论的情况中相同,在此“并行”指平铺窗口的处理中存在某些重叠。即,尽管在图4、6、8、11、14中使用了虚线,但是提供这些线仅为了容易描述,并且不旨在暗示处理的开始时间或者结束时间完全重合。然而,在某些示例性实施例中,开始时间可以完全重合并且/或者结束时间可以完全重合。
此外,在第二时段T52,第一核CORE0可以根据第一画面660中的第一平铺窗口TILE1-1的处理结果对每块的平铺窗口TILE1-1和TILE1-3的边界执行环路滤波。
在第二时段T52,第一核CORE0可以根据第一画面660中的第一平铺窗口TILE1-2的处理结果,对每块的平铺窗口TILE1-2和TILE1-4的边界执行环路滤波。
在第二时段T52,第一核CORE0可以根据第一画面660中的第一平铺窗口TILE1-3的处理结果,对每块的平铺窗口TILE1-3和TILE1-4的边界执行环路滤波。
在第二时段T52,第一核CORE0可以根据第一平铺窗口TILE2-1的处理结果,对每块的第二画面662的平铺窗口TILE2-1和TILE2-2的边界执行环路滤波。
即,在第二时段T52,对处理的平铺窗口的边界执行环路滤波,使得没有附加时间一样环路滤波。
在第三时段T53,第一核CORE0和第二核CORE1可以继续以与第二时段T52中的操作相同的方式处理相应平铺窗口。
图15是示出图1所示硬件编解码器的方框图;
参考图1和15,硬件编解码器230-1可以包含:选择电路701、编码器700、解码器800和存储器MEM2。
当选择信号SEL具有第一电平,即,低电平时,响应选择信号SEL,选择电路701可以将图像数据或者视频数据INV输出到编码器700。当选择信号SEL具有第二电平,例如,高电平时,响应选择信号SEL,选择电路701将编码的位流EB输出到解码器800。
选择信号SEL可以由CPU 210A提供。可以通过摄像机接口250提供图像数据或者视频数据INV,并且可以通过接收机接口270或者存储器接口240提供编码的位流EB。
编码器700可以对来自选择电路701的输出图像数据或者输出视频数据INV进行编码,并且通过编码的位流,将编码图像数据或者编码视频数据输出到解码器800。
解码器800可以对选择电路701输出的编码的位流EB或者编码器700输出的编码的位流进行解码,并且产生重构图像数据或者重构视频数据RV。重构图像数据或者重构视频数据RV可以通过显示接口260显示于显示器40上。
在某些示例性实施例中,编码器700或者解码器800可以将重构图像数据或者重构视频数据RV存储于存储器MEM1中。编码器700或者解码器800可以对存储器MEM1中存储的重构图像数据或者存储的重构视频数据执行环路滤波。
在某些示例性实施例中,编码器700或者解码器800中的每个都可以包含根据H.264视频编码标准或者HWVC视频编码标准或者支持环路解块滤波器的任何其他标准来定义的环路滤波。
图16是图15所示编码器的方框图。
参考图15和16,编码器170可以包含:预测器710、减法器720、变换器730、量化器740、熵编码器750、逆量化器760、逆变换器770、加法器780、和环路滤波器790。
预测器710可以包含运动估计器712和运动补偿器714。预测器710可以预测当前块,产生预测块并且输出预测块。特别地,预测块710可以预测当前块中的每个像素的像素值,并且产生包含每个像素的预测像素值的预测块。当执行帧间预测时,预测器710可以包含运动估计器712和运动补偿器714。可以将运动估计器712称为运动向量估计器。
运动估计器712或者运动向量估计器712可以利用对应于当前块的块模式或者预定块模式的块,根据至少一个基准画面估计当前块的运动向量,并且确定当前块的运动向量。块的大小可以是16×16、16×8、8×16、8×8、8×4、4×8或者4×4。
运动补偿器714可以根据运动估计器712输出的当前块的运动估计向量产生预测块,并且输出该预测块。即,运动补偿器714可以输出由当前块寻址的基准画面中的块来作为预测块。
减法器720可以将具有视频数据INV的当前块减去预测块,并且产生剩余块。减法器720可以计算当前块的每个像素与预测块的每个像素之间的差,并且产生包含剩余信号的剩余块。
变换器730可以将剩余信号从时域变换到频域,并且量化器740可以量化变换器730的输出,并且输出量化的剩余块。变换器730可以利用离散余弦变换DCT将剩余信号变换到频域。变换到频域的剩余信号可以是变换系数。
熵编码器750可以对量化器740输出的量化的剩余块进行编码,并且输出编码的位流。
逆变换器770可以对逆量化的剩余块执行逆变换,并且产生重构剩余块。
加法器780可以将来自预测器710的预测块和逆变换器770输出的重构剩余块相加,并且重构当前块。
环路滤波器790可以对重构的当前块执行环路滤波,并且将滤波的当前块输出到预测器710。
图17是图15所示解码器的方框图。
参考图15至17,解码器800A可以包含:熵解码器810A、逆量化器820、逆变换器830、加法器850以及环路滤波器860A。
熵解码器810A可以对收到编码的位流EBS或者编码器700输出的编码的位流进行解码,并且产生量化的剩余块。
逆量化器820可以对熵解码器810A输出的量化的剩余块执行逆量化,并且产生逆量化的剩余块。
逆变换器830可以对逆量化的剩余块执行逆变换,并且产生重构的剩余块。
运动补偿器840A可以根据包含于环路滤波器860A输出的重构块中的运动向量来预测当前块,并且输出预测块。
通过将环路滤波器输出的重构的剩余块与运动补偿器840A输出的预测块相加,加法器850可以重构当前块,并且输出重构当前块。
环路滤波器860A可以对重构当前块执行环路滤波,并且输出重构当前块RV。即,环路滤波器860A可以利用块输出重构视频数据RV。
在某些示例性实施例中,环路滤波器790和860A可以分别包含解块滤波器和采样点自适应偏移(SAO)滤波器。
图18和22是根据示例性实施例的,通过修改运动补偿信息处理视频数据的方法的原理图。
参考图3、4、7、8和18至22,每个画面610、612、614、630、632或者634都可以包含能够被独立编码或者解码的分割区。分割区可以包含至少一个时间片。请注意,在下面对图18-22的描述中,为了简洁起见,未描述所有画面和时间片。例如,在此未明确描述画面616(图3)、626和638(图7)和时间片SLICE1-3(图7)。此外,针对时间片描述图18-22所示的视频数据的处理方法。然而,该方法也适用于与平铺窗口有关的示例性实施例。
第一画面610或者630可以包含第一时间片SLICE1-1和第二时间片SLICE1-2,第二画面612和632可以包含第三时间片SLICE2-1和第四时间片SLICE2-2,并且第三画面614和634可以包含第五时间片SLICE3-1和第六时间片SLICE3-2。
如图18所示,第五时间片SLICE3-1、第三时间片SLICE2-1和第四时间片SLICE2-2中的每个可以分别包含第五宏块M5、第三宏块M3和第四宏块M4。
当第三画面614或者634由第一核CORE0(图4中的)或者第三核CORE2(图8中的)解码,解码器800或者800A可以从对应于第五宏块M5的编码的位流中提取第一运动补偿信息。第一运动补偿可以包含基准画面索引和/或者基准坐标。第一运动补偿信息可以包含诸如符合诸如H.264或者HEVC的运动处理标准规范的基准索引或者运动向量的基准信息。
参考图18,当第五时间片SLICE3-1中的第五宏块M5的第一运动补偿信息参考与第五时间片SLICE3-1并行解码的第二画面612的第四时间片SLICE2-2中的坐标时,可以不完成第四时间片SLICE2-2的解码操作。因此,数据处理***100A可以修改第一补偿信息,例如,基准坐标,以避免第四时间片SLICE2-2的第四宏块M4与第五时间片SLICE3-1中的第五宏块M5中间的解码相关性。
例如,数据处理***100A可以修改第一运动补偿信息的基准坐标中的X轴值,而保持Y轴值。即,数据处理***100A可以修改基准坐标,以参考第三时间片SLICE2-1底部的第三宏块M3对第五宏块M5解码。因此,通过参考第三时间片SLICE2-1中的第三宏块M3,而非参考第四时间片SLICE2-2中的第四宏块M4,数据处理***100A可以解码第五时间片SLICE3-1。
通过修改用于解码宏块的运动补偿信息,宏块的解码结果中可能存在误差。后面将参考图23A和23B描述减小因为修改运动补偿信息导致的解码误差的方法。
参考图19,如图18所示,当第五时间片SLICE3-1中的第五宏块M5的第一运动补偿信息参考与第五时间片SLICE3-1并行解码的第二画面612的第四时间片SLICE2-2中的坐标时,可以不完成第四时间片SLICE2-2的解码操作。因此,数据处理***100A可以修改第一补偿信息,例如,基准画面索引,以避免第四时间片SLICE2-2中的第四宏块M4与第五时间片SLICE3-1中的第五宏块M5之间的解码相关性。
例如,数据处理***100A可以修改第一运动补偿信息的基准画面索引,而保持第一运动补偿信息的基准坐标。即,数据处理***100A可以修改基准画面索引,以参考第二时间片SLICE1-2中的第二宏块M2来解码第五宏块M5,如图19所示。因此,通过参考第二时间片SLICE1-2中的第二宏块M2,而非参考第四时间片SLICE2-2中的第四宏块M4,数据处理***100A可以解码第五时间片SLICE3-1。
参考图20,第三画面614可以是第二画面612之前显示的并且在第二画面612之后解码的画面。在这种情况下,第五时间片SLICE3-1中的第五宏块M5的第一运动补偿信息可以在双向上将第一画面610和第二画面612看作基准画面。当第五时间片SLICE3-1中的第五宏块M5参考第一时间片SLICE1-1中的第一宏块M1和第四时间片SLICE2-2中的第四宏块M4时,可以不完成第四时间片SLICE2-2的解码操作。因此,数据处理***100A可以修改第一补偿信息,例如,基准画面索引,以避免第四时间片SLICE2-2中的第四宏块M4与第五时间片SLICE3-1中的第五宏块M5之间的解码相关性。
例如,数据处理***100A可以修改第一运动补偿信息的基准画面索引。即,数据处理***100A可以将第一补偿信息从双向基准修改为单向基准。因此,通过仅参考第一时间片SLICE1-1中的第一宏块M1,而不参考第四时间片SLICE2-2中的第四宏块M4,数据处理***100A可以解码第五时间片SLICE3-1中的第五宏块M5。
参考图21,第三画面614可以是在第二画面612之前显示的并且在第二画面612之后解码的画面。第五时间片SLICE3-1中的第五宏块M5的第一运动补偿信息可以在双向上将第一画面610和第二画面612看作基准画面。当第五时间片SLICE3-1中的第五宏块M5参考第一时间片SLICE1-1中的第一宏块M1和第四时间片SLICE2-2中的第四宏块M4时,可以不完成第四时间片SLICE2-2的解码操作。因此,数据处理***100A可以修改第一补偿信息,例如,基准画面索引和基准坐标,以避免第四时间片SLICE2-2中的第四宏块M4与第五时间片SLICE3-1中的第五宏块M5之间的解码相关性。
例如,数据处理***100A可以修改第一运动补偿信息的基准画面索引和基准坐标,以参考第三时间片SLICE2-1(1)中的第三宏块M3或者第二时间片SLICE1-2(2)中的第二宏块M2。即,数据处理***100A可以通过保持双向基准来修改第一补偿信息。因此,通过参考第一时间片SLICE1-1中的第一宏块M1以及第三时间片SLICE2-1中的第三宏块M3或者第二时间片SLICE1-2中的第二宏块M2中的一个,数据处理***100A可以解码第五时间片SLICE3-1中的第五宏块M5。
回到图22,当第五时间片SLICE3-1中的第五宏块M5的第一运动补偿信息参考第四时间片SLICE2-2中的第四宏块中的第四块M4时,不完成第四时间片SLICE2-2的解码操作。因此,数据处理***100A可以修改第一补偿信息,例如,基准画面索引和基准坐标,以避免第四时间片SLICE2-2中的第四宏块M4与第五时间片SLICE3-1中的第五宏块M5之间的解码相关性。
例如,数据处理***100A可以修改具有相同基准坐标的第一运动补偿信息的基准画面索引,以参考第二SLICE1-2中的第二宏块M2和第三SLICE2-1中的第三宏块M3。即,数据处理***100A可以将第一补偿信息从单向基准修改为双向基准。因此,通过参考第二SLICE1-2中的第二宏块M2和第三SLICE2-1中的第三宏块M3,数据处理***100A可以解码第五SLICE3-1中的第五宏块M5。
为了容易理解,图18至22描述了第五宏块M5参考其他宏块,例如,M1、M2或者M3等。然而,第五宏块M5参考的基准块(例如,M1、M2或者M3等等)可以是与根据视频编码标准的宏块不同的任何块,并且第五宏块M5参考的基准块(例如,M1、M2或者M3)的块大小可以与第五块M5的块大小相等或者不等。
例如,当第五宏块M5的块大小是16×16时,第五宏块M5参考的基准块(例如,M1、M2或者M3等)的块大小可以是4×4。因此,第五宏块M5参考的基准块不始终是具有相同块大小的宏块,并且可以是比宏块小的子块或者子块的任意组合。例如,假定在图18中,第五宏块M5的块大小是16×16,则可以修改第五宏块M5的运动补偿信息,以参考大小为4×4的第三宏块M3。
此外,宏块的运动补偿信息可以对应于宏块单位或者比宏块单位小的子块单位。因此,对应于宏块的运动补偿信息可以包含对应于被包含在宏块中的多个子块的多个运动补偿信息。
正如通过修改图18至22中的运动补偿信息处理视频数据的方法,每个画面610、612、164、630、632或者634中的分割区可以包含至少一个时间片。然而,如上所述,该方法还适用于平铺窗口。在分割区包含多个平铺窗口的情况下,当基准画面中的基准坐标根据多个平铺窗口的分隔格式改变时,通过改变基准坐标的X轴值和Y轴值中的至少一个,数据处理***100A可以修改运动补偿信息。
参考图18至22,数据处理***100A处理视频数据的方法可以根据基准画面的数量、运动向量的值和/或者边界匹配误差估计值来修改运动补偿信息。边界匹配误差估计值指解块操作之前的相邻解码块之间的边界上的像素值的差。
例如,当存在多个基准画面候选时,数据处理***100A可以修改为了解码而选择的当前解码块的运动补偿信息,以参考针对基准画面的最近在前画面。相反,数据处理***100A可以修改当前解码块的运动补偿信息,以参考能够使运动向量最小的基准画面或者基准坐标(或者运动向量)。或者,当可以参考多个宏块候选或者子块候选来解码当前解码块时,数据处理***100A可以修改当前解码块的运动补偿信息,以参考在在解块操作之前的相邻解码宏块或者相邻解码子块之间的边界上像素值上具有最小差的宏块候选或者子块候选中的一个。在此,像素值可以指像素数据,并且可以具有根据诸如例如RGB、YUV或者YcbCr等数据格式中的一种的格式。
图18至22中描述的视频数据的处理方法可能导致构建的宏块的像素值误差,因为当前解码块的运动补偿向量的修改改变通过编码视频数据而定义的基准画面或者基准坐标(或者运动向量),并且因此,使得当前解码块参考不同宏块,而非在产生修改的运动补偿信息之前由初始运动补偿信息定义的初始宏块。因此,甚至在数据处理***分配与初始基准宏块具有相似像素值的宏块的情况下,构造的宏块中的像素仍可能存在像素误差。
像素值的误差可能导致重构块之间的边界上不自然的边界显示。在此,通过对块边界执行环路滤波,重构块中的像素值的误差可能扩展到与该重构块相邻的其他块。
根据示例性实施例,可以禁止通过修改重构块的运动补偿信息而产生的重构块的像素值的误差扩展到重构块的边界上的其他相邻块。后面将参考图23A和23B详细描述解决边界处的误差的扩展缺陷的局部环路滤波。
尽管图18至22中描述的通过修改运动补偿信息来处理视频数据的方法示出的是每个画面610、612和614包含分别作为处理单元的多个时间片,但是处理视频数据的该方法可以适用于仅具有一个分割区并且特别是仅具有一个时间片的画面610、612和614。此外,当多个核解码画面中的多个分割区,例如,时间片或者平铺窗口时,可以采用通过修改运动补偿信息处理视频数据的方法。
例如,数据处理***100A可以修改仅具有一个时间片的画面中的当前解码块的第一运动补偿信息,以使得即使在尚未解码基准画面的整个区的情况下当前解码块参考完成了解码操作的基准画面中的区,或者使当前解码块参考完成解码的画面。
图23A和23B是示出根据示例性实施例局部环路滤波的原理图。
图23A是示出在相邻块之间执行环路滤波的原理图。通过参考块边界上的相邻块的像素值,宏块M1可以执行环路滤波,如图23A中的双头箭头所示。
图23B是示出通过修改重构块的第一运动补偿信息对重构块执行局部环路滤波的原理图。参考图23B,根据示例性实施例的误差补偿方法可以对当前宏块M1执行环路滤波,而对当前宏块M1的相邻宏块跳过环路滤波。可以仅对当前宏块M1的边界上的像素执行当前宏块M1的环路滤波。上面描述的限制环路滤波可以称为“局部环路滤波”。局部环路滤波可以仅对当前宏块M1的一部分边界执行环路滤波。
例如,通过仅对到当前解码块M1的边界上的内部像素执行环路滤波,数据处理***100A可以禁止当前解码块M1的像素值的误差扩展到当前解码块M1的边界上的相邻块。通过根据本发明原理执行局部环路滤波,数据处理***100A可以在当前解码块M1的边界上执行解块效果。
当激活收到的第一控制信号时,能够执行局部环路滤波的环路滤波器可以执行图23B中描述的局部环路滤波,并且当禁用收到的第一控制信号时,可以执行图23A中描述的常规环路滤波。
图24是示出根据示例性实施例的解码器的方框图。参考图24,解码器800B可以包含:熵解码器810B、逆量化器820、逆变换器830、运动补偿器840B、加法器850、和执行局部环路滤波的环路滤波器860B。解码器800B可以嵌入图1所示的硬件编解码器230-1至230-N中的至少一个中。
如图18至23B所示,当解码器800B修改当前解码块的运动补偿信息时,解码器800B可以将第一控制信号IIL送到环路滤波器860B。如上所述,第一控制信号IIL的状态可以确定是局部环路滤波还是常规环路滤波。
第一控制信号可以由图24所示的熵解码器810B提供,也可以由运动补偿器840B提供。在这种情况下,熵解码器810B或者运动补偿器840B可以包含运动补偿信息修改器870。例如,当解码器800B收到编码的位流时,熵解码器810B可以从收到的编码的位流中提取解码宏块的第一运动补偿信息。第一运动补偿信息可以包含解码宏块的或者解码宏块的子块的基准画面和基准坐标。
熵解码器810B可以产生用于指出包含在编码的位流中的画面的、时间片的或者平铺窗口的解码操作是否完成的解码历史信息。可以将解码历史信息存储于熵解码器810B或者解码器800B的缓冲器中或者高速缓冲存储器中。解码历史信息可以包含通过熵解码器810B或者解码器800B使其每个对应于画面、时间片或者平铺窗口的解码结果的数字位。
根据第一运动补偿信息和解码历史信息,熵解码器810B可以确定是否应当修改第一运动补偿信息,以提高并行处理性能,并且当根据确定结果修改第一运动补偿信息时,可以将第一控制信号IIL送到环路滤波器860B。
修改的运动补偿信息和第一控制信号IIL可以由运动补偿器840B代替熵解码器810B来提供。下面为了便于解释,省略了对与根据上述示例性实施例的相同的结构和操作的重复解释,而解释示例性实施例之间的不同点。
解码历史信息可以存储于存储器图1中的MEM1至MEMn中,并且由硬件编解码器230-1至230-N共享,也可以存储于数据处理***100A的存储器中。
图25是示出根据示例性实施例的数据处理***的方框图。参考图25,数据处理***900可以包含:第一核230-1、第二核230-2、解码历史储存器910和运动补偿信息修改器920。
解码历史储存器910和运动补偿信息修改器920可以由第一核230-1和第二核230-2中的每个共享,而图24中的解码器800B包含独立设置的解码历史储存器和运动补偿信息修改器870。
解码历史储存器910可以存储指示对第一核230-1和第二核230-2中的每个解码的画面、时间片和/或者平铺窗口的解码是否完成的解码历史信息。
运动补偿信息修改器920可以从第一核230-1和第二核230-2中的每个接收当前解码宏块的运动补偿信息,并且可以根据收到的运动补偿信息和存储于解码历史储存器910中的解码历史信息,将用于局部环路滤波的第一控制信号I IL和修改的运动补偿信息提供到第一核230-1和第二核230-2中的每个。
尽管图25示出两个核230-1和230-2,但是解码历史储存器910和运动补偿信息修改器920可以由两个以上的核共享。
在某些示例性实施例中,数据处理***900还可以包含环路滤波器930,该环路滤波器930由第一核230-1和第二核230-2共享。当第一核230-1和第二核230-2将环路滤波的解码宏块的数据发送到环路滤波器930时,环路滤波器930可以将环路滤波器930滤波的宏块的数据发送到第一核230-1和第二核230-2。
在此,环路滤波器930可以响应从运动补偿信息修改器920收到的第一控制信号IIL对当前解码块执行局部环路滤波。当激活第一控制信号ILL时,环路滤波器930可以对当前解码块执行局部环路滤波,并且将对应于由局部环路滤波滤波的宏块的数据发送到第一核230-1和第二核230-2。当禁用第一控制信号I IL时,环路滤波器930可以执行常规环路滤波。
图26是示出根据示例性实施例的,包含补充信息的编码的位流的数据格式。参考图26,可以对包含块类型1010-1、基准画面索引1010-2和基准X坐标1010-3和基准Y坐标1010-4的运动补偿信息1010分配解码的位流1000的一部分。在某些示例性实施例中,可以省略块类型1010-1。
如图20至22所示,当解码块在双向上参考一个以上画面时,运动补偿信息1010可以包含:块类型1010-1,该块类型1010-1指示宏块的类型;基准画面索引1010-2,该基准画面索引1010-2基于块类型1010-1;以及基准坐标,该基准坐标包含X坐标1010-3和Y坐标1010-4,但是运动补偿信息1010并不局限于此。或者,当解码块不在双向上参考一个以上的画面时,运动补偿信息1010可以省略块类型1010-1。
可以根据有关视频标准规范,改变与基准画面和基准坐标有关的语法。例如,根据H.264标准与运动补偿信息有关的语法可以包含:基准画面ID ref_idx_lx,该基准画面IDref_idx_lx指出当前解码块的基准画面;以及差动运动向量mvd_lx,该差动运动向量mvd_lx指示当前解码块与当前解码块的基准块之间的坐标差。
此外,语法可以包含指示单向基准或者双向基准的宏块类型mb_type。可以修改参考图18至22的基准画面ID ref_idx_lx或者差动运动向量mvd_lx,并且可以参考图20和22修改宏块类型mb_type。宏块类型mb_type可以对应于图26中的块类型1010-1,并且基准画面ID ref_idx_lx可以对应于图26中的基准画面索引1010-2。差动运动向量mvd_lx可以对应于图26中的X坐标1010-3和Y坐标1010-4。
图27是示出根据示例性实施例的数据处理***的方框图。
参考图27,数据处理***100B可以包含控制器200B、多个存储器301、303、305以及显示器400。在某些示例性实施例中,数据处理***100B还可以包含摄像机500。
控制器200B可以嵌入集成电路(IC)、片上***(SoC)、应用处理器(AP)和/或者移动AP等中。
控制器200B可以包含:CPU 210A、GPU 220、多个硬件编解码器230、存储器接口(I/F)240、显示接口(I/F)260以及接收机接口(I/F)270。当数据处理***100B还包含摄像机500时,控制器200B还可以包含摄像机接口(I/F)250。
除了包含在硬件编解码器中的多个编解码器231-1至231-N,图27所示的控制器200B与图1所示的控制器200A在结构和操作方面相同或者相似。
多个编解码器231-1至231-N中的每个的操作可以与图1中的多个编解码器230-1至230-N中的每个的操作相同或者相似。此外,多个编解码器231-1至231-N中的每个都可以具有与存储器MEM1至MEMN中的每个对应的存储器。
多个编解码器231-1至231-N中的每个都可以包含参考图15至17描述的部件701、700和800。图4至图14中所述的第一核CORE0、第二核CORE1以及第三核CORE2可以分别对应于第一核CORE231-1、第二核CORE231-2以及第三核CORE231-3。
图28是示出根据示例性实施例的数据处理***的方框图。
参考图28,数据处理***100C可以包含:控制器200C、多个存储器301、303、305以及显示器400。在某些示例性实施例中,数据处理***100C还可以包含摄像机500。
控制器200C可以嵌入集成电路(IC)、片上***(SoC)、应用处理器(AP)和/或者移动AP等中。
控制器200C可以包含:CPU 210B、GPU 220、多个硬件编解码器230、存储器接口(I/F)240、显示接口(I/F)260以及接收机接口(I/F)270。当数据处理***100C还包含摄像机500时,控制器200C还可以包含摄像机接口(I/F)250。
除了CPU 210B包含多个核CORE1至COREN之外,图27所示的控制器200C与图1所示的控制器200A在结构和操作方面相同或者相似。
多个核CORE1至COREN中的每个的操作可以与图1中的多个编解码器230-1至230-N中的每个的操作相同或者相似。此外,多个编解码器231-1至231-N中的每个都可以具有与存储器MEM1至MEMN中的每个对应的存储器。
多个核CORE1至COREN中的每个都可以执行软件编解码器。当N是3时,图4至图14中所述的第一核CORE0、第二核CORE1以及第三核CORE2可以分别对应于第一核CORE1、第二核CORE2以及第三核CORE3。
参考图4至14,核CORE1至COREN中的每个执行的软件编解码器都可以执行:编码、解码、包含环路滤波的编码、或者包含环路滤波的解码。
图29是示出根据示例性实施例利用图1、18和19所示数据处理***处理视频数据的方法的流程图。该处理方法可以是例如编码或者解码。
参考图1至20,在操作S100,将每个画面分配到核。例如,可以将视频数据中的第一画面、第二画面和第三画面中的每个分配到第一核和第二核中的一个,用于处理视频数据。第一画面、第二画面和第三画面中的每个都可以分别包含第一时间片(或者第一平铺窗口)和第二时间片(或者第二平铺窗口)。
在操作S110,第一画面中的第一时间片(或者第一平铺窗口)可以由第一核处理。在操作S120,在第一画面的第二时间片(或者第二平铺窗口)由第一核处理的同时,第二画面中的第一时间片(或者第一平铺窗口)可以由第二核并行处理。在操作S120,根据第一画面的第一时间片的处理结果,第一核还可以对第一画面的第一时间片和第二时间片执行环路滤波。在操作S130,在第二画面的第二时间片(或者第二平铺窗口)由第二核处理的同时,第三画面的第一时间片(或者第一平铺窗口)可以由第三核并行处理。在操作S130,根据第二画面的第一时间片的处理结果,第二核还可以对第二画面的第一时间片和第二时间片执行环路滤波。
如上所述,通过对多个核中的每个分配多个画面中的每个并且由多个核并行处理多个画面,用于解码图1至14和18至20中描述的视频数据的方法同样可以应用于编码视频数据的方法。
图30是示出根据另一个示例性实施例处理视频数据的方法的流程图。在操作S210,可以存储每个核的解码历史信息。在操作S220,可以提取当前解码块的运动补偿信息。在操作S230,可以修改运动补偿信息。在操作S240,可以根据修改的运动补偿信息解码当前块。在操作S250,可以执行内部环路滤波。
尽管参考本发明的特定示例性实施例描述了本发明原理,但是本技术领域内的技术人员应当明白,可以在形式和细节方面对其进行各种变更,而不脱离下面的权利要求书定义的本发明原理的精神和范围。

Claims (24)

1.一种数据处理***,包括:
第一核,配置所述第一核,以解码第一画面,并且产生所述解码的第一画面的解码历史信息;以及
第二核,配置所述第二核,以根据所述解码的第一画面的所述解码历史信息,修改包含在第二画面中的第一运动补偿信息,并且根据所述解码的第一画面和所述修改第一运动补偿信息,解码所述第二画面。
2.根据权利要求1所述的数据处理***,其中配置所述第二核,以产生所述解码的第二画面的解码历史信息;并且
配置所述第一核,以根据所述解码的第二画面的所述解码历史信息修改包含于第三画面中的第二运动补偿信息,并且根据所述修改的第二运动补偿信息和所述解码的第一画面和所述解码的第二画面中的一个,解码所述第三画面。
3.根据权利要求2所述的数据处理***,其中所述第一核包括第一运动补偿信息修改器,配置所述第一运动补偿信息修改器,以修改所述第二运动补偿信息,并且所述第二核包括第二运动补偿信息修改器,配置所述第二运动补偿信息修改器,以修改所述第一运动补偿信息。
4.根据权利要求3所述的数据处理***,其中所述第一核包括第一环路滤波器,所述第一环路滤波器连接到所述第一运动补偿信息修改器,并且所述第二核包括第二环路滤波器,所述第二环路滤波器连接到所述第二运动补偿信息修改器。
5.根据权利要求4所述的数据处理***,其中配置所述第一环路滤波器,以根据从所述第一运动补偿信息修改器收到的第一控制信号,仅在与所述修改第一运动补偿信息有关的块中执行作为解块操作的局部环路滤波,并且配置所述第二环路滤波器,以根据从所述第二运动补偿信息修改器收到的第二控制信号,仅在与所述修改的第二运动补偿信息有关的块中执行作为解块操作的局部环路滤波。
6.根据权利要求2所述的数据处理***,其中所述第一画面、所述第二画面和所述第三画面中的每个都包含至少一个分割区。
7.根据权利要求1所述的数据处理***,其中所述第一画面包含第一分割区,所述解码的第一画面的所述解码历史信息包含所述第一分割区的解码历史信息,并且所述第二核根据所述第一分割区的所述解码历史信息修改所述第一运动补偿信息。
8.根据权利要求7所述的数据处理***,其中所述修改第一运动补偿信息包含对应于包含在所述第一运动补偿信息中的基准坐标的修改基准坐标。
9.根据权利要求7所述的数据处理***,其中所述第二画面包含第二分割区,所述解码的第二画面的解码历史信息包含所述第二分割区的解码历史信息,并且所述第一核根据所述第二分割区的所述解码历史信息修改第二运动补偿信息。
10.根据权利要求9所述的数据处理***,其中所述修改的第二运动补偿信息包含针对包含于所述第二运动补偿信息中的基准画面索引修改的修改基准画面索引。
11.一种用于解码视频数据中的多个画面的方法,所述方法包括:
接收具有第一分割区的第一画面;
接收具有第二分割区的第二画面;
提取包含于所述第二画面中的第一运动补偿信息;
根据与所述提取第一运动补偿信息有关的基准画面的解码历史信息,修改所述提取第一运动补偿信息;以及
根据所述第一分割区和所述修改第一运动补偿信息,解码所述第二画面。
12.根据权利要求11所述的方法,其中所述修改所述提取第一运动补偿信息包括根据与所述提取第一运动补偿信息有关的所述基准画面的解码历史信息,修改包含于所述第一运动补偿信息中的基准画面的基准坐标。
13.根据权利要求12所述的方法,其中所述第一画面包含与所述第一分割区不同的第三分割区,并且
所述修改所述基准画面的所述基准坐标包括从指所述第一分割区的第一坐标到指所述第三分割区的第二坐标改变所述基准坐标。
14.根据权利要求13所述的方法,还包括:
根据所述第一画面和所述修改第一运动补偿信息,解码包含于所述第二分割区中的块;以及
对所述解码块执行局部环路滤波。
15.根据权利要求11所述的方法,还包括:
接收具有第三分割区的第三画面;
提取包含于所述第三画面中的第二运动补偿信息;
修改所述提取的第二运动补偿信息;以及
根据所述修改的第二运动补偿信息,解码所述第三画面。
16.根据权利要求15所述的方法,其中所述修改所述提取的第二运动补偿信息包括根据基准画面索引所指的基准画面的解码历史信息修改包含于所述第二运动补偿信息中的所述基准画面索引。
17.根据权利要求16所述的方法,其中所述修改所述基准画面索引包括从指所述第二画面的第二索引到指所述第一画面的第一索引改变所述基准画面索引。
18.根据权利要求17所述的方法,还包括:
根据所述第二画面和所述修改的第二运动补偿信息,解码所述第三分割区中的块;并且
对所述解码块执行局部环路滤波。
19.根据权利要求15所述的方法,其中所述提取的第二运动补偿信息包含基准画面索引,并且
所述修改所述提取的第二运动补偿信息包括根据与基准画面的所述基准画面索引和基准坐标有关的所述第一分割区或者所述第二分割区的解码历史信息,修改包含于所述提取的第二运动补偿信息中的所述基准画面索引所指的基准画面的所述基准画面索引和所述基准坐标。
20.根据权利要求19所述的方法,其中所述第一画面包含与所述第一分割区不同的第四分割区,并且
所述修改所述提取第一运动补偿信息包括:
修改所述基准画面索引,使得所述基准画面索引从指所述第二画面的第二索引变更为指所述第一画面的第一索引;并且
修改所述基准画面的所述基准坐标,使得所述基准坐标从指所述第四分割区的第一坐标变更为指所述第一分割区的第二坐标。
21.根据权利要求20所述的方法,还包括:
根据所述第一画面和所述修改的第二运动补偿信息,解码所述第三分割区中的块;以及
对所述解码块执行局部环路滤波。
22.根据权利要求11所述的方法,其中根据包含于所述提取第一运动补偿信息中的许多基准画面,修改所述提取第一运动补偿信息。
23.根据权利要求11所述的方法,其中根据包含于所述提取第一运动补偿信息中的运动向量的值,修改所述提取第一运动补偿信息。
24.根据权利要求11所述的方法,其中根据解块操作之前相邻解码块之间的边界上的像素值的差,修改所述提取第一运动补偿信息。
CN201510854636.7A 2014-11-28 2015-11-30 修改运动补偿信息的数据处理***和解码视频数据的方法 Active CN105657430B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140168004A KR102273670B1 (ko) 2014-11-28 2014-11-28 움직임 보상 정보를 수정하는 데이터 처리 시스템과 데이터 처리 방법
KR10-2014-0168004 2014-11-28

Publications (2)

Publication Number Publication Date
CN105657430A CN105657430A (zh) 2016-06-08
CN105657430B true CN105657430B (zh) 2020-09-01

Family

ID=55967924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510854636.7A Active CN105657430B (zh) 2014-11-28 2015-11-30 修改运动补偿信息的数据处理***和解码视频数据的方法

Country Status (5)

Country Link
US (1) US10080025B2 (zh)
KR (1) KR102273670B1 (zh)
CN (1) CN105657430B (zh)
DE (1) DE102015117561A1 (zh)
TW (1) TWI736525B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180139464A1 (en) * 2016-11-17 2018-05-17 Mediatek Inc. Decoding system for tile-based videos
JP2022508245A (ja) 2018-11-27 2022-01-19 オーピー ソリューションズ, エルエルシー 文脈的区分化および処理のためのブロックベースのピクチャ融合
BR112021010167A2 (pt) * 2018-11-27 2021-08-17 Op Solutions, Llc medidas de atividade espacial baseadas em blocos para imagens
EP3664451B1 (en) 2018-12-06 2020-10-21 Axis AB Method and device for encoding a plurality of image frames
CN114697675B (zh) * 2020-12-25 2024-04-05 扬智科技股份有限公司 解码显示***与其存储器访问方法
KR20230022061A (ko) * 2021-08-06 2023-02-14 삼성전자주식회사 디코딩 장치 및 그의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101902647A (zh) * 2002-07-15 2010-12-01 汤姆森特许公司 编码用于具有多个图像块的画面的视频数据的视频编码器
CN102067600A (zh) * 2008-06-12 2011-05-18 汤姆森特许公司 将局部自适应滤波用于运动补偿内插和基准画面滤波的方法和装置
CN102763415A (zh) * 2010-02-18 2012-10-31 高通股份有限公司 起因于几何运动划分的平滑重叠区域

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1882093B (zh) * 1998-03-10 2011-01-12 索尼公司 利用编码历史信息的编码转换***
JP2000295616A (ja) 1999-04-08 2000-10-20 Matsushita Electric Ind Co Ltd 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法及びプログラム記録媒体
US8401084B2 (en) 2002-04-01 2013-03-19 Broadcom Corporation System and method for multi-row decoding of video with dependent rows
JP2005175997A (ja) * 2003-12-12 2005-06-30 Sony Corp 復号化装置、電子機器、コンピュータ、復号化方法、プログラム及び記録媒体
JP4374548B2 (ja) * 2005-04-15 2009-12-02 ソニー株式会社 復号装置および方法、記録媒体、並びに、プログラム
JP4789200B2 (ja) 2006-08-07 2011-10-12 ルネサスエレクトロニクス株式会社 動画符号化と動画復号とのいずれかを実行する機能モジュールおよびそれを含む半導体集積回路
CN101627634B (zh) 2006-10-16 2014-01-01 诺基亚公司 用于将可并行解码片用于多视点视频编码的***和方法
US8861603B2 (en) * 2007-08-28 2014-10-14 Samsung Electronics Co., Ltd. System and method for motion vector collection based on K-means clustering for motion compensated interpolation of digital video
JP2010034802A (ja) 2008-07-28 2010-02-12 Canon Inc 動画像符号化装置およびその制御方法
US9042455B2 (en) * 2008-08-19 2015-05-26 Thomson Licensing Propagation map
KR20100071865A (ko) 2008-12-19 2010-06-29 삼성전자주식회사 멀티 코어 프로세스 방식의 영상 신호 처리장치에서 영상 프레임 구성 및 복호화 방법과 그 영상 신호 처리장치
US20100329361A1 (en) * 2009-06-30 2010-12-30 Samsung Electronics Co., Ltd. Apparatus and method for in-loop filtering of image data and apparatus for encoding/decoding image data using the same
JP5253312B2 (ja) 2009-07-16 2013-07-31 ルネサスエレクトロニクス株式会社 動画像処理装置およびその動作方法
KR101504887B1 (ko) * 2009-10-23 2015-03-24 삼성전자 주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
CN101710986B (zh) * 2009-11-18 2012-05-23 中兴通讯股份有限公司 基于同构多核处理器的h.264并行解码方法和***
EP2405661B1 (en) * 2010-07-06 2017-03-22 Google, Inc. Loss-robust video transmission using two decoders
RU2010135495A (ru) * 2010-08-24 2012-02-27 ЭлЭсАй Корпорейшн (US) Видеотранскодер с гибким управлением качеством и сложностью
KR101219220B1 (ko) 2010-10-20 2013-01-08 성균관대학교산학협력단 병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체
US9066102B2 (en) * 2010-11-17 2015-06-23 Qualcomm Incorporated Reference picture list construction for generalized P/B frames in video coding
CA2722993A1 (fr) 2010-12-01 2012-06-01 Ecole De Technologie Superieure Systeme d'ecodage video parallele multitrames et multitranches avec encodage simultane de trames predites
US20120263225A1 (en) 2011-04-15 2012-10-18 Media Excel Korea Co. Ltd. Apparatus and method for encoding moving picture
US9621905B2 (en) 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing
US20140169481A1 (en) * 2012-12-19 2014-06-19 Ati Technologies Ulc Scalable high throughput video encoder
KR20140129624A (ko) * 2013-04-30 2014-11-07 주식회사 칩스앤미디어 동영상 처리 방법 및 장치
KR101676788B1 (ko) * 2014-10-17 2016-11-16 삼성전자주식회사 멀티코어 시스템 기반 비디오 병렬 복호화 방법 및 그 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101902647A (zh) * 2002-07-15 2010-12-01 汤姆森特许公司 编码用于具有多个图像块的画面的视频数据的视频编码器
CN102067600A (zh) * 2008-06-12 2011-05-18 汤姆森特许公司 将局部自适应滤波用于运动补偿内插和基准画面滤波的方法和装置
CN102763415A (zh) * 2010-02-18 2012-10-31 高通股份有限公司 起因于几何运动划分的平滑重叠区域

Also Published As

Publication number Publication date
CN105657430A (zh) 2016-06-08
US20160156937A1 (en) 2016-06-02
KR20160064419A (ko) 2016-06-08
DE102015117561A1 (de) 2016-06-02
TWI736525B (zh) 2021-08-21
TW201631976A (zh) 2016-09-01
US10080025B2 (en) 2018-09-18
KR102273670B1 (ko) 2021-07-05

Similar Documents

Publication Publication Date Title
CN105657430B (zh) 修改运动补偿信息的数据处理***和解码视频数据的方法
CN111183645B (zh) 在视频译码中与位置相关的预测组合
CN105554505B (zh) 应用处理器及其方法以及包括该应用处理器的***
US11044473B2 (en) Adaptive loop filtering classification in video coding
CN106797464B (zh) 用于视频编码和解码中的矢量编码的方法和装置
US9942572B2 (en) Content adaptive fusion filtering of prediction signals for next generation video coding
JP6286718B2 (ja) 高効率な次世代ビデオコーディングのためのフレーム階層応答型量子化を使用する、コンテンツ適応ビットレートおよび品質管理
TWI532369B (zh) 用於基於高效率視訊寫碼之可擴縮寫碼視訊資訊之裝置及方法
CN112042189A (zh) 用于照度补偿的信令
JP7510412B2 (ja) ブロックの面に基づくビデオの符号化又は復号のための量子化
US10291925B2 (en) Techniques for hardware video encoding
CN115486069A (zh) 具有带有运动矢量差的合并模式的几何分割合并模式
US10609388B2 (en) Method and apparatus for encoding and decoding image
CN106464882B (zh) 用于通过视频编码器处理视频帧的技术
US10869041B2 (en) Video cluster encoding for multiple resolutions and bitrates with performance and quality enhancements
CN117716688A (zh) 用于视频编码的外部增强预测
TWI691850B (zh) 用於進行即時迴路內濾波的應用處理器、用於該應用處理器之方法以及包括該應用處理器的系統
US10390010B1 (en) Video coding reorder buffer systems and methods
JP2022540659A (ja) ルマツークロマ量子化パラメータテーブルシグナリング

Legal Events

Date Code Title Description
C06 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