RU2785090C2 - Device and method for removal of blocking artifacts - Google Patents
Device and method for removal of blocking artifacts Download PDFInfo
- Publication number
- RU2785090C2 RU2785090C2 RU2021105840A RU2021105840A RU2785090C2 RU 2785090 C2 RU2785090 C2 RU 2785090C2 RU 2021105840 A RU2021105840 A RU 2021105840A RU 2021105840 A RU2021105840 A RU 2021105840A RU 2785090 C2 RU2785090 C2 RU 2785090C2
- Authority
- RU
- Russia
- Prior art keywords
- block
- edge
- image
- image block
- coding block
- Prior art date
Links
- 230000000903 blocking Effects 0.000 title abstract 2
- 238000001914 filtration Methods 0.000 claims description 104
- 230000004048 modification Effects 0.000 claims description 15
- 238000006011 modification reaction Methods 0.000 claims description 15
- 230000001131 transforming Effects 0.000 claims description 6
- 230000002085 persistent Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 4
- 239000000126 substance Substances 0.000 abstract 1
- 230000000875 corresponding Effects 0.000 description 127
- 238000004891 communication Methods 0.000 description 24
- 238000000034 method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 230000003287 optical Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 6
- 238000003384 imaging method Methods 0.000 description 5
- 230000004807 localization Effects 0.000 description 5
- 230000002829 reduced Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 230000001702 transmitter Effects 0.000 description 4
- 230000003044 adaptive Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000001419 dependent Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 239000000969 carrier Substances 0.000 description 2
- 238000003708 edge detection Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(E)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 1
- 241000985610 Forpus Species 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 210000002381 Plasma Anatomy 0.000 description 1
- 241001646071 Prioneris Species 0.000 description 1
- 230000003190 augmentative Effects 0.000 description 1
- 230000002457 bidirectional Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000003111 delayed Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting Effects 0.000 description 1
- 230000000873 masking Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000003068 static Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Abstract
Description
Область техники, к которой относится изобретениеThe field of technology to which the invention belongs
Варианты осуществления настоящего изобретения относятся к области обработки изображений, например, кодированию статических изображений и/или видеоизображений. В частности, варианты реализации изобретения раскрывают усовершенствованный фильтр удаления блочности.Embodiments of the present invention relate to the field of image processing, such as still image and/or video coding. In particular, embodiments of the invention disclose an improved deblocking filter.
Уровень техникиState of the art
В широком спектре приложений цифрового изображения применяется кодирование изображения (кодирование и декодирование), например, для приложений цифрового телевещания, передачи видео через интернет и мобильные сети, диалоговых приложений в реальном времени, таких как видеочат, видеоконференцсвязь, DVD и Blu-ray дисков, систем сбора и редактирования видеоконтента и для видеокамер безопасности.A wide range of digital imaging applications use image coding (encoding and decoding), such as digital television applications, video transmission over the Internet and mobile networks, real-time conversational applications such as video chat, video conferencing, DVD and Blu-ray discs, systems collecting and editing video content and for security cameras.
В 1990 году после разработки в H.261 стандарте блочного гибридного подхода к кодированию видео, были разработаны новые способы и инструменты кодирования видео, которые легли в основу новых стандартов кодирования видео. Одной из задач большинства стандартов кодирования видео было снижение битовой скорости по сравнению с его предшественником без снижения качества изображения. Дополнительные стандарты кодирования видео содержат MPEG-1 видео, MPEG-2 видео, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC), ITU-T H.265, высокоэффективное кодирование видео (HEVC), ITU-T H.266/универсальное кодирование видео (VVC) и расширения, например, масштабируемость и/или трехмерные (3D) расширения этих стандартов.In 1990, after the block hybrid approach to video coding was developed in the H.261 standard, new video coding methods and tools were developed, which formed the basis of new video coding standards. One of the goals of most video coding standards was to reduce the bit rate compared to its predecessor without compromising image quality. Additional video coding standards include MPEG-1 video, MPEG-2 video, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4 Part 10 Advanced Video Coding (AVC), ITU-T H.265, High Efficiency Video Coding (HEVC), ITU-T H.266/Versatile Video Coding (VVC), and extensions such as scalability and/or 3D extensions to these standards.
Общим для схем блочного кодирования изображений является то, что вдоль краев блоков могут появляться краевые артефакты. Эти артефакты возникают из-за независимого кодирования блоков кодирования. Эти краевые артефакты часто легко видны пользователю. Задачей блочного кодирования изображений является уменьшение краевых артефактов ниже порогового значения видимости. Данная техническая задача решается посредством фильтрации удаления блочности. Такая фильтрация удаления блочности выполняется, с одной стороны, на стороне декодирования для удаления видимых краевых артефактов, но также и на стороне кодирования для предотвращения появления краевых артефактов в изображение при кодировании. В частности, для блока изображения (такого как блок преобразования (TU), блок предсказания (PU), блок кодирования (CU)), который использует инструменты субблоков, фильтрация удаления блочности может представлять собой сложную задачу.Common to block image coding schemes is that edge artifacts can appear along the edges of the blocks. These artifacts arise from independent coding of coding blocks. These edge artifacts are often easily visible to the user. The goal of block image coding is to reduce edge artifacts below a visibility threshold. This technical problem is solved by deblocking filtering. Such deblocking filtering is performed on the one hand on the decoding side to remove visible edge artifacts, but also on the encoding side to prevent edge artifacts from appearing in the image during encoding. In particular, for an image block (such as a transform unit (TU), a prediction unit (PU), a coding unit (CU)) that uses sub-block tools, deblocking filtering may be a difficult task.
Раскрытие сущности изобретенияDisclosure of the essence of the invention
Ввиду вышеупомянутой технической задачи варианты реализации настоящего изобретения направлены на улучшение обычной фильтрации удаления блочности. Варианты реализации настоящего изобретения предлагают устройство фильтра удаления блочности, кодер, декодер и соответствующие способы, которые могут выполнять фильтрацию удаления блочности с уменьшенным временем обработки. Кроме того, удаление блочности должен быть эффективным и точным.In view of the above technical problem, embodiments of the present invention aim to improve conventional deblocking filtering. Embodiments of the present invention provide a deblocking filter apparatus, an encoder, a decoder, and related methods that can perform deblocking filtering with reduced processing time. In addition, deblocking must be efficient and accurate.
Варианты осуществления изобретения определены признаками независимых пунктов формулы изобретения и дополнительные полезные реализации вариантов осуществления определены признаками зависимых пунктов формулы изобретения.Embodiments of the invention are defined by the features of the independent claims and additional useful implementations of the embodiments are defined by the features of the dependent claims.
Конкретные варианты осуществления изложены в прилагаемых независимых пунктах формулы изобретения и другие варианты осуществления предложены в зависимых пунктах формулы изобретения.Specific embodiments are set forth in the appended independent claims and other embodiments are suggested in the dependent claims.
Согласно первому аспекту изобретения обеспечивается устройство фильтра удаления блочности. Устройство фильтра удаления блочности предназначено для использования в кодере изображения и/или декодере изображения. Устройство фильтра удаления блочности содержит:According to a first aspect of the invention, a deblocking filter device is provided. The deblocking filter device is intended for use in an image encoder and/or an image decoder. The deblocking filter device comprises:
блок локализации края, выполненный с возможностью определять края между блоками, причем края между блоками содержат край блока (например, CU край или CU границу или TU границу) между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования (т. е. первый Р блок кодирования или второй Q блок кодирования имеет субблоки, либо первый Р блок кодирования или второй Q блок кодирования используют инструменты субблока), в котором первый Р блок кодирования имеет размер M × N выборок или N × M выборок, второй Q блок кодирования имеет размер блока L × T выборок или T × L выборок (размер блока любого из двух блоков кодирования также может быть представлен как W * H, в котором W и H указывают ширину и высоту соответствующего блока кодирования), например, N или T являются четным целым числом 2n (т.е. целочисленной степени два, в котором n является целым числом) и больше порогового значения (например, значение 8 или 16 и т. д.);an edge localization unit configured to determine edges between blocks, wherein the edges between blocks comprise a block edge (e.g., a CU edge or a CU boundary or a TU boundary) between a first P coding block and a second Q coding block and a subblock edge between subblocks of the first P coding block or a second Q coding block (i.e., the first P coding block or the second Q coding block has subblocks, or the first P coding block or the second Q coding block use subblock tools), in which the first P coding block has a size of M × N samples, or N × M samples, the second Q coding block has a block size of L × T samples or T × L samples (the block size of either of the two coding blocks can also be represented as W * H, where W and H indicate the width and height of the corresponding coding block ), for example, N or T is an even integer 2 n (i.e. an integer power of two to which n is an integer) and greater than a threshold value (i.e., the
блок определения удаления блочности, выполненный с возможностью определять, должен ли край блока между первым Р блоком кодирования и вторым Q блоком кодирования быть отфильтрован путем применения первого фильтра (т.е. более длинного отводного фильтра или асимметричного фильтра, или асимметричного отводного фильтра, или асимметричного длинного фильтра); иa deblocking determination unit configured to determine whether a block edge between the first P coding block and the second Q coding block should be filtered by applying a first filter (i.e., a longer tap filter or an asymmetric filter or an asymmetric tap filter or an asymmetric long filter); and
блок фильтрации удаления блочности, выполненный с возможностью применять первый фильтр (т.е. более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр) к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования должен быть отфильтрован путем применения первого фильтра, в котором модифицируются не более число MA значений выборок первого блока кодирования, перпендикулярного и смежного с краем блока на строку, и модифицируется не более число МВ значений выборок второго блока кодирования, перпендикулярного и смежного с краем блока на строку; или модифицируется не более число МА значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок первого блока кодирования, смежного с краем блока на строку, MA ≠ MB , в частности, MA < MB, например, MA < MB = 7. Например, MA = 3 и MB = 7; или MA = 4 и MB = 7; или MA = 5 и MB = 7 и т. д. Можно понять, что значение MA или MB зависит от значения N или T.a deblocking filter unit configured to apply a first filter (i.e., a longer tap filter, or an asymmetric filter, or an asymmetric tap filter, or an asymmetric long filter) to sample values near a block edge between the first P coding block and the second Q coding block when it is determined that the block edge between the first P coding block and the second Q coding block is to be filtered by applying a first filter in which no more than the number MA of sample values of the first coding block perpendicular to and adjacent to the block edge per line are modified, and not modified more than the number of MB sample values of the second coding block, perpendicular and adjacent to the edge of the block per line; or at most the number MA of sample values of the second coding block adjacent to a block edge per line is modified, and at most the number MB of sample values of the first coding block adjacent to a block edge per line is modified, MA ≠ MB , in particular, MA < MB, e.g. , MA < MB = 7. For example, MA = 3 and MB = 7; or MA = 4 and MB = 7; or MA = 5 and MB = 7, etc. It can be understood that the value of MA or MB depends on the value of N or T.
Если второй блок Q изображения является текущим блоком, который имеет субблоки или использует инструменты субблока, и первый Р блок изображения является соседним блоком текущего блока, соответственно, во втором блоке кодирования, для каждой строки входных выборок, которые перпендикулярны и смежные с краем блока, модифицируется не более число МА выборок для генерирования выходных фильтрованных выборок; в первом блоке кодирования для каждой строки входных выборок, которые перпендикулярны и смежные с краем блока, модифицируется не более MB выборок для генерирования выходных фильтрованных выборок. В примере N или T является четным целым числом 2n, большее 8, M или L является четным целым числом 2n, большее 2 (например, M или L могут иметь следующие значения 4, 8, 16 или 32,…), M отличается от N или M совпадает с N; или L отличается от T, или L совпадает с T; M × N, в котором N > 8 применяется для горизонтальных краев, и N × M, в котором N > 8, применяется для вертикальных краев. В другом примере N или T является четным целым числом 2n, большее 16, M × N, в котором N> 16, применяется для горизонтальных краев, и N × M, в котором N> 16, применяется для вертикальных краев.If the second image block Q is the current block that has subblocks or uses subblock tools, and the first P image block is a neighboring block of the current block, respectively, in the second coding block, for each row of input samples that are perpendicular and adjacent to the edge of the block, the no more than the number of MA samples to generate output filtered samples; in the first coding block, for each row of input samples that are perpendicular and adjacent to the edge of the block, at most MB samples are modified to generate output filtered samples. In the example, N or T is an even integer 2 n greater than 8, M or L is an even integer 2 n greater than 2 (for example, M or L can have the
Далее будет приведено описание разницы между краем блока и краями субблока. Край субблока является краем, который является внутренним по отношению к блоку, который использует инструменты субблока, которые включают в себя инструменты субблока, такие как Affine или расширенное прогнозирование вектора временного движения (ATMVP), и край блока (то есть, край блока кодирования (CU) или край блока кодирования или CU граница) является краем, совместно используемым между двумя блоками кодирования или двумя блоками кодирования или двумя блоками преобразования. Инструменты субблока также могут включать в себя такие инструменты, как инструменты внутреннего суб-раздела (ISP) и преобразования субблока (SBT).Next, a description will be given of the difference between a block edge and sub-block edges. A sub-block edge is an edge that is internal to a block that uses sub-block tools that include sub-block tools such as Affine or advanced temporal motion vector prediction (ATMVP), and a block edge (that is, a coding block edge (CU ) or coding block edge or CU boundary) is an edge shared between two coding blocks or two coding blocks or two transform blocks. Subblock tools may also include tools such as internal subpartition (ISP) and subblock transform (SBT) tools.
Следует отметить, что в настоящем изобретении используется термин «блок», «блок кодирования» или «блок изображения», который может применяться для блоков преобразования (TUs), блоков предсказания (PUs), блоков кодирования (CUs) и т.д. В VVC, обычно, блоки преобразования и блоки кодирования в основном выровнены, за исключением нескольких сценариев, когда используются TU плитка или преобразование субблока (SBT). Можно понять, что в настоящем изобретении термины «блок/блок изображения/блок кодирования/блок преобразования» и «размер блока/размер блока преобразования» могут быть заменены друг на друга. В настоящем изобретении термины «выборка/пиксель» являются взаимозаменяемыми.It should be noted that the present invention uses the term "block", "coding block" or "picture block", which can be used for transform units (TUs), prediction units (PUs), coding units (CUs), and so on. In VVC, usually, transform blocks and encoding blocks are mostly aligned, with the exception of a few scenarios where TU tile or sub-block transform (SBT) is used. It can be understood that in the present invention, the terms "block/image block/coding block/transformation block" and "block size/transformation block size" can be interchanged with each other. In the present invention, the terms "sample/pixel" are used interchangeably.
Изобретение относится как для вертикальных, так и для горизонтальных краев. Для вертикальных краев проверяется ширина первого или второго блока кодирования, а именно, превышает ли ширина 8 выборок (например, 16 или 32). Для горизонтальных краев проверяется высота первого или второго блока кодирования, превышает ли высота 8 выборок (например, 16 или 32). Для вертикальных краев учитывается ширина блока, только для блоков с шириной> = 16 или шириной> 16, применяется более длинный отводной фильтр (а именно, длинный фильтр). Для горизонтальных краев учитывается высота блока, только для блоков с высотой> = 16 или высотой> 16, применяется более длинный отводной фильтр (а именно, длинный фильтр).The invention applies to both vertical and horizontal edges. For vertical edges, the width of the first or second coding block is checked, namely whether the width is greater than 8 samples (eg 16 or 32). For horizontal edges, the height of the first or second coding block is checked to see if the height is greater than 8 samples (eg, 16 or 32). For vertical edges, the block width is taken into account, only for blocks with a width >= 16 or a width > 16, a longer tap filter is applied (namely, a long filter). For horizontal edges, the block height is taken into account, only for blocks with a height >= 16 or a height > 16, a longer drain filter (namely, a long filter) is applied.
Следует отметить, что первый фильтр (то есть, более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр) является фильтром, который использует DA выборки для принятия решения о фильтрации на одной стороне края блока и использует DB выборки для решения о фильтрации на другой стороне края блока, и MB выборки модифицируются на одной стороне края блока (CU edge или TU edge), в то время, как MA выборки модифицируются на другой стороне края блока (CU edge или TU edge), в котором MA ≠ MB, в частности, MA <MB, например, MA <MB = 7, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7. В общем, DA = MA + 1 и DB = MB + 1. Первый фильтр может быть асимметричным фильтром, который модифицирует разное количество выборок на каждой стороне края блока (например, CU edge или TU edge).It should be noted that the first filter (i.e., longer tap filter or asymmetric filter or asymmetric tap filter or asymmetric long filter) is a filter that uses the fetch DA to make a filtering decision on one side of the block edge and uses the fetch DB to filter decisions on the other side of the block edge, and MB samples are updated on one side of the block edge (CU edge or TU edge), while MA samples are updated on the other side of the block edge (CU edge or TU edge), in which the MA ≠ MB, in particular MA < MB, e.g. MA < MB = 7, e.g. MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7. In general, DA = MA + 1 and DB = MB + 1. The first filter can be an asymmetric filter that modifies a different number of samples on each side of the block edge (eg CU edge or TU edge).
Это позволяет по-разному обрабатывать две стороны края блока и, следовательно, в способе можно не допустить фильтрацию перекрытий между краем блока и краем субблока и, таким образом, может гарантировать, что удаление блочности может выполняться параллельно. Таким образом, значительно сокращается время обработки для фильтрации удаления блочности. This allows the two sides of the box edge to be treated differently, and therefore, the method can prevent overlap filtering between the box edge and the sub-box edge, and thus can ensure that deblocking can be performed in parallel. Thus, the processing time for deblocking filtering is greatly reduced.
Следует отметить, что устройство фильтра может включать в себя процессор, выполненный с возможностью выполнять фильтрацию и модификацию. Кроме того, это также может гарантировать возможность параллельно выполнять удаление блочности, особенно края между блоками, в которых любой из блоков использует инструменты субблока.It should be noted that the filter device may include a processor configured to perform filtering and modification. In addition, it can also guarantee the ability to perform deblocking in parallel, especially the edges between blocks in which any of the blocks use subblock tools.
В возможной форме реализации устройства согласно первому аспекту как таковому, в котором внутри первого блока кодирования находиться край субблока между субблоками и внутри второго блока кодирования находиться край субблока между субблоками (т.е. блок кодирования и второй блок кодирования имеют субблоки), блок определения удаления блочности дополнительно выполнен с возможностью определять присутствует ли край блока между первым блоком кодирования и вторым блоком кодирования, который должен быть отфильтрован путем применения второго фильтра (например, HEVC сильного фильтра); иIn a possible form of implementation of the device according to the first aspect as such, in which, within the first coding block, there is a subblock edge between subblocks, and within the second coding block, there is a subblock edge between subblocks (i.e., the coding block and the second coding block have subblocks), the deletion determination block the blockiness is further configured to determine whether there is a block edge between the first coding block and the second coding block to be filtered by applying a second filter (eg, HEVC strong filter); and
блок фильтрации удаления блочности дополнительно выполнен с возможностью применять второй фильтр (например, HEVC сильный фильтр) к значениям выборок около края блока, когда определено, что край блока между первым блоком кодирования и вторым блоком кодирования должен быть отфильтрован с помощью применения второго фильтра (например, HEVC сильного фильтра), в котором модифицируется число МА' значений выборок первого блока кодирования, смежного с краем блока, и модифицируется число МВ' значений выборок второго блока кодирования, смежного с краем блока, MA' = MB', например, MA'= MB' <7, например, MA'= MB' = 3 или MA'= MB' = 5.the deblocking filter unit is further configured to apply a second filter (e.g., HEVC strong filter) to sample values near a block edge when it is determined that the block edge between the first coding block and the second coding block is to be filtered by applying the second filter (e.g., HEVC strong filter) in which the number MA' of sample values of the first coding block adjacent to the block edge is modified, and the number MB' of sample values of the second coding block adjacent to the block edge is modified, MA' = MB', for example, MA'= MB ' < 7, e.g. MA'= MB' = 3 or MA'= MB' = 5.
Следует отметить, что второй фильтр может быть HEVC сильным фильтром, в котором модифицируются MA' выборки (например, 3) на одной стороне края блока (CU edge) и модифицируются MB' выборки (например, 3) на другой стороне края блока (CU edge). В другом примере второй фильтр является сильным фильтром, который может модифицировать не более трех выборок по обе стороны от края. В HEVC два фильтра определены как фильтр удаления блочности: обычный фильтр и сильный фильтр. Обычный фильтр модифицирует не более двух выборок по обе стороны края. В сильном фильтре выполняется три дополнительных проверок между выборками по краю.It should be noted that the second filter may be a HEVC strong filter that modifies MA' samples (eg 3) on one side of the block edge (CU edge) and modifies MB' samples (eg 3) on the other side of the block edge (CU edge). ). In another example, the second filter is a strong filter that can modify at most three samples on either side of the edge. In HEVC, two filters are defined as a deblocking filter: a regular filter and a strong filter. The normal filter modifies no more than two samples on either side of the edge. The strong filter performs three additional checks between samples along the edge.
В возможной форме реализации устройства согласно первому аспекту как таковому, в котором, при отсутствии края субблока между субблоками внутри второго блока кодирования, но край субблока между субблоками находится внутри первого блока кодирования (т.е. когда первый блок кодирования имеет субблоки), модифицируется не более число МА значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок второго блока кодирования, смежного с краем блока на строку, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7;In a possible form of implementation of the device according to the first aspect as such, in which, if there is no subblock edge between subblocks inside the second coding block, but a subblock edge between subblocks is inside the first coding block (i.e., when the first coding block has subblocks), not more than the number MA of sample values of the first coding block adjacent to the block edge per line, and modified by at most the number MB of sample values of the second coding block adjacent to the edge of the block per line, for example, MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7;
илиor
при отсутствии внутри первого блока кодирования края субблока между субблоками, но при наличии края субблока между субблоками внутри второго блока кодирования (то есть, когда второй блок кодирования имеет субблоки), модифицируются не более число МА значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок первого блока кодирования, смежного с краем блока на строку, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7.if there is no subblock edge between subblocks inside the first coding block, but if there is a subblock edge between subblocks inside the second coding block (that is, when the second coding block has subblocks), no more than the number MA of sample values of the second coding block adjacent to the block edge are modified row, and at most the number of MBs of sample values of the first coding block adjacent to a block edge per row is modified, e.g., MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, блок определения удаления блочности дополнительно выполнен с возможностью определять, должен ли край блока между первым блоком кодирования и вторым блоком кодирования быть фильтрован путем применения первого фильтра (т.е. более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр) на основанииIn an exemplary embodiment of an apparatus according to any prior implementation of the first aspect, or the first aspect as such, the deblocking determination unit is further configured to determine whether a block edge between the first coding block and the second coding block should be filtered by applying the first filter (i.e. longer bypass filter or asymmetric filter or asymmetric bypass filter or asymmetric long filter) on the base
- не более числа DA значений выборок первого блока кодирования, смежного с краем блока, в качестве значений принятия решения первого фильтра, и- no more than the number DA of sample values of the first coding block adjacent to the edge of the block as the decision values of the first filter, and
- не более числа DB значений выборок второго блока кодирования, смежного с краем блока, в качестве значений принятия решения второго фильтра.- no more than the number DB of sample values of the second coding block adjacent to the edge of the block as decision values of the second filter.
В общем, DA = MA + 1 и DB = MB + 1. Если MA = 3 и MB = 3, DA = DB = 4; или, если MA = 7 и MB = 7, DA = DB = 8; или, если MA = 3 и MB = 7, DA = 4, DB = 8; или, если MA = 4 и MB = 7, DA = 5, DB = 8; или, если MA = 5 и MB = 7, DA = 6, DB = 8.In general, DA = MA + 1 and DB = MB + 1. If MA = 3 and MB = 3, DA = DB = 4; or, if MA = 7 and MB = 7, DA = DB = 8; or, if MA = 3 and MB = 7, DA = 4, DB = 8; or, if MA = 4 and MB = 7, DA = 5, DB = 8; or, if MA = 5 and MB = 7, DA = 6, DB = 8.
Это позволяет очень точно и параллельно определять, на каких краях действительно выполнен удаление блочности и на каких краях не выполнен удаление блочности.This allows you to very accurately and in parallel determine which edges are actually deblocked and which edges are not deblocked.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, при наличии края субблока между субблоками внутри второго Q блока кодирования (т.е. если второй Q блок кодирования имеет субблоки), блок определения удаления блочности выполнен с возможностью определять, удовлетворяется ли первое условие, определенное следующим первым уравнением:In an exemplary embodiment of an apparatus according to any prior implementation of the first aspect, or the first aspect as such, if there is a subblock edge between subblocks within the second Q coding block (i.e., if the second Q coding block has subblocks), the deblocking determination unit is configured to determine whether the first condition defined by the following first equation is satisfied:
в котором β обозначает параметр порогового значения и qi представляют значения выборок второго Q блока кодирования, i = 0,1,2,3 и pj представляют значения выборок первого Р блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.in which β denotes the threshold parameter and q i represent the sample values of the second Q coding block, i = 0,1,2,3 and p j represent the sample values of the first P coding block, j = 0, 3, 4, 7 or j = 0, 2, 3, 5.
Предлагается новое условие фильтрации. Это значительно сокращает объем памяти строк, необходимый для хранения значений пикселей предшествующих блоков кодирования, необходимых для выполнения удаления блочности на крае блока кодирования.A new filtering condition is proposed. This greatly reduces the amount of line memory required to store the pixel values of the preceding coding blocks needed to perform deblocking at the edge of the coding block.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, при наличии края субблока между субблоками внутри первого Р блока кодирования (т.е. если первый Р блок кодирования имеет субблоки), блок определения удаления блочности выполнен с возможностью определять, удовлетворяется ли второе условие, определенное следующим вторым уравнением:In an exemplary embodiment of an apparatus according to any prior implementation of the first aspect, or the first aspect as such, if there is a subblock edge between subblocks within the first P coding block (i.e., if the first P coding block has subblocks), the deblocking determination unit is configured to determine , whether the second condition defined by the following second equation is satisfied:
в котором β обозначает параметр порогового значения и pi представляет значения выборок первого P блока кодирования, i = 0,1,2,3 и qj представляют значения выборок второго Q блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.where β denotes the threshold parameter and p i represents the sample values of the first P coding block, i = 0,1,2,3 and q j represent the sample values of the second Q coding block, j = 0, 3, 4, 7, or j = 0, 2, 3, 5.
Предлагается новое условие фильтрации. Это значительно сокращает объем памяти строк, необходимый для хранения значений пикселей предшествующих блоков кодирования, необходимых для выполнения удаления блочности на крае блоков кодирования.A new filtering condition is proposed. This greatly reduces the amount of line memory required to store the pixel values of the preceding coding blocks needed to perform deblocking at the edge of the coding blocks.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, параметр β порогового значения определяется на основании параметра квантования, QP, ассоциированного с размером шага квантования множества выборок, илиIn an exemplary embodiment of the apparatus according to any prior implementation of the first aspect, or the first aspect per se, the threshold parameter β is determined based on the quantization parameter, QP, associated with the quantization step size of the plurality of samples, or
параметр β порогового значения определяется на основании параметра квантования, QP, с использованием справочной таблицы.the threshold parameter β is determined based on the quantization parameter, QP, using a look-up table.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования (т. е. первый Р блок кодирования не имеет субблоки и второй Q блок кодирования имеет субблоки) блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки первой выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края (505) между первым блоком изображения P и вторым блоком изображения Q (503a, 503b) выборок на основании следующего уравнения:In a possible form of implementation of the apparatus according to any prior implementation of the first aspect, or the first aspect as such, in the absence of a subblock edge between subblocks within the first P coding block, and in the presence of a subblock edge between subblocks within the second Q coding block (i.e., the first P coding block has no subblocks and the second Q coding block has subblocks), the deblocking filter block is configured to determine the filtered value samples the first sample of the current row or column of samples to the right or bottom of the vertical or horizontal edge (505) between the first image block P and the second image block Q (503a, 503b) samples based on the following equation:
; ;
илиor
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
Предлагаются новые коэффициенты фильтра. Это позволяет использовать два вида коэффициентов фильтра, содержащие HEVC коэффициенты сильного фильтра и коэффициенты асимметричного более длинного отводного фильтра.New filter coefficients are proposed. This allows two kinds of filter coefficients to be used, containing HEVC strong filter coefficients and asymmetric longer tap filter coefficients.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования (т. е. первый Р блок кодирования не имеет субблоков и второй Q блок кодирования имеет субблоки) блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки второй выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края (505) между первым блоком изображения P и вторым блоком изображения Q (503a, 503b) выборок на основании следующего уравнения:In a possible form of implementation of the apparatus according to any prior implementation of the first aspect, or the first aspect as such, in the absence of a subblock edge between subblocks within the first P coding block, and in the presence of a subblock edge between subblocks within the second Q coding block (i.e., the first P coding block has no subblocks and the second Q coding block has subblocks) the deblocking filter block is configured to determine the filtered value samples the second sample of the current row or column of samples to the right or bottom of the vertical or horizontal edge (505) between the first image block P and the second image block Q (503a, 503b) samples based on the following equation:
; ;
илиor
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
Предлагаются новые коэффициенты фильтра. Это позволяет использовать два вида коэффициентов фильтра, содержащие HEVC коэффициенты сильного фильтра и коэффициенты асимметричного более длинного отводного фильтра.New filter coefficients are proposed. This allows two kinds of filter coefficients to be used, containing HEVC strong filter coefficients and asymmetric longer tap filter coefficients.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, если внутри первого Р блока кодирования отсутствует край субблока между субблоками, и при наличии края субблока между субблоками внутри второго Q блока кодирования (т. е. первый Р блок кодирования не имеет субблоков и второй Q блок кодирования имеет субблоки) блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки третьей выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края (505) между первым блоком изображения P и вторым блоком изображения Q (503a, 503b) выборок на основании следующего уравнения:In an exemplary form of implementation of the arrangement according to any prior implementation of the first aspect, or the first aspect as such, if there is no subblock edge between subblocks within the first P coding block, and if there is a subblock edge between subblocks within the second Q coding block (i.e., the first P coding block has no subblocks and the second Q coding block has subblocks) the deblocking filter block is configured to determine the filtered value samples the third sample of the current row or column of samples to the right or bottom of the vertical or horizontal edge (505) between the first image block P and the second image block Q (503a, 503b) samples based on the following equation:
; ;
илиor
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
Предлагаются новые коэффициенты фильтра. Это позволяет использовать два вида коэффициентов фильтра, содержащие HEVC коэффициенты сильного фильтра и коэффициенты асимметричного более длинного отводного фильтра.New filter coefficients are proposed. This allows two kinds of filter coefficients to be used, containing HEVC strong filter coefficients and asymmetric longer tap filter coefficients.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования (т.е. первый Р блок кодирования не имеет субблоков и второй Q блок кодирования имеет субблоки) блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки соответствующей выборки текущей строки или столбца выборок слева или вверху вертикального или горизонтального края (505) между первым блоком изображения P и вторым блоком изображения Q (503a, 503b) выборок на основании следующего уравнения:In a possible form of implementation of the apparatus according to any prior implementation of the first aspect, or the first aspect as such, in the absence of a subblock edge between subblocks within the first P coding block, and in the presence of a subblock edge between subblocks within the second Q coding block (i.e., the first P coding block has no subblocks and the second Q coding block has subblocks) the deblocking filter block is configured to determine the filtered value samples the corresponding sample of the current row or column of samples to the left or top of the vertical or horizontal edge (505) between the first image block P and the second image block Q (503a, 503b) samples based on the following equation:
, ,
, ,
, ,
, ,
, ,
, ,
, ,
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
Это позволяет использовать новые коэффициенты асимметричного более длинного отводного фильтра.This allows the use of new asymmetric longer tap filter coefficients.
Согласно второму аспекту обеспечивается устройство фильтра удаления блочности. Устройство фильтра удаления блочности предназначено для использования в кодере изображения и/или декодере изображения. Устройство фильтра удаления блочности содержит:According to a second aspect, a deblocking filter device is provided. The deblocking filter device is intended for use in an image encoder and/or an image decoder. The deblocking filter device comprises:
блок локализации края, выполненный с возможностью определять края между блоками, в котором края между блоками содержат край блока между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования (т.е. первый Р блок кодирования или второй Q блок кодирования имеет субблоки, или первый Р блок кодирования или второй Q блок кодирования использует инструменты субблока), в котором первый Р блок кодирования имеет размер блока равный M × N или N × M, второй Q блок кодирования имеет размер блока L × T или T × L, например, N или T является четным целым числом 2n, превышающим пороговое значение (например, 8 или 16 и т.д.);an edge localization unit configured to determine edges between blocks, wherein the edges between blocks comprise a block edge between a first P coding block and a second Q coding block and a sub-block edge between sub-blocks of the first P coding block or the second Q coding block (i.e., the first The P coding block or the second Q coding block has sub-blocks, or the first P coding block or the second Q coding block uses sub-block tools), in which the first P coding block has a block size of M × N or N × M, the second Q coding block has a size block L × T or T × L, for example, N or T is an even integer 2 n that exceeds the threshold value (eg, 8 or 16, etc.);
блок определения удаления блочности, выполненный с возможностью определять, должен ли край блока между первым Р блоком кодирования и вторым Q блоком кодирования быть отфильтрован путем применения первого фильтра (т.е. более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр); иa deblocking determination unit, configured to determine whether a block edge between the first P coding block and the second Q coding block should be filtered by applying the first filter (i.e., a longer tap filter, or an asymmetric filter, or an asymmetric tap filter, or an asymmetric long filter) and
блок фильтрации удаления блочности, выполненный с возможностью применять третий фильтр к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования не должен фильтроваться путем применения первого фильтра, в котором модифицируется не более число МА значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируются не более число МВ значений выборок второго блока кодирования, смежного с краем блока на строку, MA = MB <7, например MA = MB = 4.a deblocking filtering unit configured to apply a third filter to sample values near a block edge between the first P coding block and the second Q coding block, when it is determined that the block edge between the first P coding block and the second Q coding block is not to be filtered by applying the first a filter that modifies at most the number MA of sample values of the first coding block adjacent to the block edge per line, and modifies at most the number MB of sample values of the second coding block adjacent to the edge of the block per line, MA = MB < 7, for example MA = MB = 4.
В одном примере N или T являются четными целыми числами 2n, большее 8, M или L являются четными целыми числами 2n, большее 2; M отличается от N или M совпадает с N; или L отличается от T, или L совпадает с T;In one example, N or T are even integers 2 n greater than 8, M or L are even integers 2 n greater than 2; M is different from N or M is the same as N; or L is different from T, or L is the same as T;
В одном из примеров третий фильтр может быть HEVC сильным фильтром, который может модифицировать максимум четыре выборки по обе стороны от края блока (CU edge). Другими словами, третий фильтр может быть HEVC сильным фильтром, в котором модифицируются максимум четыре выборки на одной стороне края блока (CU edge), в то время как на другой стороне края блока (CU edge) модифицируются максимум четыре выборки.In one example, the third filter may be a strong HEVC filter that can modify a maximum of four samples on either side of a block edge (CU edge). In other words, the third filter may be a HEVC strong filter in which a maximum of four samples are modified on one side of the block edge (CU edge), while a maximum of four samples are modified on the other side of the block edge (CU edge).
Это позволяет модифицировать небольшое количество значений выборок на двух сторонах края блока и, следовательно, этот способ может не допустить фильтрации перекрытий между краем блока и краем субблока до определенной степени и, таким образом, может гарантировать, что удаление блочности может выполняться параллельно. Таким образом, время обработки для фильтрации удаления блочности может быть сокращено.This allows a small number of sample values to be modified on two sides of a box edge, and therefore, this method can prevent overlap filtering between a box edge and a sub-box edge to a certain extent, and thus can ensure that deblocking can be performed in parallel. Thus, the processing time for deblocking filtering can be shortened.
Согласно третьему аспекту изобретения обеспечивается устройство фильтра удаления блочности. Устройство фильтра удаления блочности предназначено для использования в кодере изображения и/или декодере изображения. Устройство фильтра удаления блочности содержит:According to a third aspect of the invention, a deblocking filter device is provided. The deblocking filter device is intended for use in an image encoder and/or an image decoder. The deblocking filter device comprises:
блок локализации края, выполненный с возможностью определять края между блоками, в котором края между блоками содержат край блока между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования (т.е. первый P блок кодирования или второй Q блок кодирования имеет субблоки), в котором первый P блок кодирования имеет размер блока, равный M × N или N × M, второй Q блок кодирования имеет блок размер L × T или T × L, например, N или T является четным целым числом 2n, превышающим пороговое значение (например, 8 или 16 и т. д.);an edge localization unit configured to determine edges between blocks, wherein the edges between blocks comprise a block edge between a first P coding block and a second Q coding block and a sub-block edge between sub-blocks of the first P coding block or the second Q coding block (i.e., the first P coding block or the second Q coding block has sub-blocks), in which the first P coding block has a block size of M × N or N × M, the second Q coding block has a block size of L × T or T × L, for example, N or T is an even integer 2 n greater than a threshold value (eg, 8 or 16, etc.);
блок определения удаления блочности, выполненный с возможностью определять край субблока между субблоками (внутри) первого Р блока кодирования или второго Q блока кодирования, который не должен фильтроваться; другими словами, определять край субблока между субблоками (внутри) первого Р блока кодирования или второго Q блока кодирования, который не подвержен удаление блочностиу; иa deblocking determination unit, configured to determine a subblock edge between subblocks (inside) of the first P coding block or the second Q coding block that is not to be filtered; in other words, determine a sub-block edge between sub-blocks (within) the first P coding block or the second Q coding block that is not subject to deblocking y; and
блок фильтрации удаления блочности, выполненный с возможностью применять четвертый фильтр (нормальный более длинный отводной фильтр) к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, в котором модифицируется число МА значений выборок первого блока кодирования, смежного с краем блока, и модифицируется число МВ значений выборок второго блока кодирования, смежного с краем блока, MA = MB, например, MA = MB = 7.a deblocking filter unit configured to apply a fourth filter (a normal longer tap filter) to the sample values near the block edge between the first P coding block and the second Q coding block, in which the number MA of sample values of the first coding block adjacent to the block edge is modified , and the number MB of sample values of the second coding block adjacent to the edge of the block, MA = MB, is modified, for example, MA = MB = 7.
В примере N или T являются четным целым числом 2n, большее 8, M или являются четным целым числом 2n, большее 2; M отличается от N или M совпадает с N; или L отличается от T, или L совпадает с T.In the example, N or T is an even integer 2 n greater than 8, M or is an even integer 2 n greater than 2; M is different from N or M is the same as N; or L is different from T, or L is the same as T.
В одном примере четвертый фильтр может быть нормальным более длинным отводным фильтром, который может модифицировать до 7 выборок по обе стороны от края блока (например, CU край или CU граница).In one example, the fourth filter may be a normal longer tap filter that can modify up to 7 samples on either side of a block edge (eg, CU edge or CU border).
Это позволяет не выполнять обработку удаления блочности края субблока между субблоками (внутри) первого Р блока кодирования или второго Q блока кодирования и, следовательно, способ может не допустить фильтрацию перекрытия между краем блока и краем субблока, таким образом, можно гарантировать, что удаление блочности может выполняться параллельно. Таким образом, время обработки для фильтрации удаления блочности значительно сокращается.This makes it possible not to perform sub-block edge deblocking processing between sub-blocks (within) the first P coding block or the second Q coding block, and therefore the method can prevent overlap filtering between the block edge and the sub-block edge, thus it can be ensured that deblocking can run in parallel. Thus, the processing time for deblocking filtering is greatly reduced.
Согласно четвертому аспекту изобретения обеспечивается устройство кодирования видео. Устройство (100) кодирования видео для кодирования изображения видеопотока, в котором устройство (100) кодирования видео содержит:According to a fourth aspect of the invention, a video encoding device is provided. A video encoding device (100) for encoding an image of a video stream, in which the video encoding device (100) comprises:
блок (114) восстановления, выполненный с возможностью восстанавливать изображение; иblock (114) restoration, made with the ability to restore the image; and
устройство (120) фильтра, как описано ранее, для обработки восстановленного изображения в фильтрованное восстановленное изображение.a filter device (120), as previously described, for processing the reconstructed image into a filtered reconstructed image.
Это позволяет очень эффективно и точно кодировать изображение.This allows for very efficient and accurate encoding of the image.
Согласно пятому аспекту изобретения обеспечивается устройство декодирования видео. Устройство (200) декодирования видео для декодирования изображения кодированного видеопотока (303), в котором устройство (200) декодирования видео содержит:According to a fifth aspect of the invention, a video decoding apparatus is provided. A video decoding device (200) for decoding an image of an encoded video stream (303), in which the video decoding device (200) comprises:
блок (214) восстановления, выполненный с возможностью восстанавливать изображение; иblock (214) recovery, made with the ability to restore the image; and
устройство (220) контурного фильтра, как описано ранее, для обработки восстановленного изображения в фильтрованное восстановленное изображение.a loop filter device (220), as previously described, for processing the reconstructed image into a filtered reconstructed image.
Это позволяет особенно точно и эффективно декодировать изображение.This allows the image to be decoded particularly accurately and efficiently.
Согласно шестому аспекту изобретение относится к способу удаления блочности для использования при кодировании изображения и/или декодировании изображения, в котором способ содержит:According to a sixth aspect, the invention relates to a deblocking method for use in image encoding and/or image decoding, wherein the method comprises:
определение краев между блоками, в котором края между блоками содержат край блока между первым P блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования (например, первый Р блок кодирования или второй Q блок кодирования имеет субблоки, или первый Р блок кодирования или второй Q блок кодирования имеет инструменты субблока), в котором первый Р блок кодирования имеет размер блока, равный M × N выборок или N × M выборок, второй Q блок кодирования имеет размер блока, равный L × T выборок или T × L выборок, например, в котором N или T является четным целым числом 2n, превышающим пороговое значение (например, 8, 16 или т.д.);an inter-block edge definition, wherein the inter-block edges comprise a block edge between a first P coding block and a second Q coding block and a sub-block edge between sub-blocks of the first P coding block or the second Q coding block (e.g., the first P coding block or the second Q coding block has subblocks, or the first P coding block or the second Q coding block has subblock tools), in which the first P coding block has a block size of M × N samples or N × M samples, the second Q coding block has a block size of L × T samples or T × L samples, for example, in which N or T is an even integer 2 n greater than a threshold value (eg, 8, 16, or so on);
определение, должен ли быть отфильтрован край блока между первым Р блоком кодирования и вторым Q блоком кодирования путем применения первого фильтра (то есть, более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр), другими словами, определение, подлежит ли обработке удаления блочности край блока между первым Р блоком кодирования и вторым Q блоком кодирования путем применения первого фильтра (то есть, более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр); иdetermining whether the block edge between the first P coding block and the second Q coding block should be filtered by applying a first filter (i.e., a longer tap filter or asymmetric filter or an asymmetric tap filter or an asymmetric long filter), in other words, determining, whether a block edge between the first P coding block and the second Q coding block is subject to deblocking processing by applying the first filter (ie, a longer tap filter or an asymmetric filter or an asymmetric tap filter); and
применение первого фильтра (то есть, более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр) к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования должен быть отфильтрован путем применения первого фильтра, в котором модифицируется не более число МА значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок второго блока кодирования, смежного с краем блока на строку; или модифицируется не более число МА значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок первого блока кодирования, смежного с краем блока на строку, MA ≠ MB, в частности, MA <MB, например, MA <MB = 7. Например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7 и т.д.applying a first filter (i.e., a longer tap filter, or an asymmetric filter, or an asymmetric tap filter, or an asymmetric long filter) to the sample values near the block edge between the first P coding block and the second Q coding block, when it is determined that the block edge is between the first The P coding block and the second Q coding block shall be filtered by applying a first filter that modifies no more than the number MA of sample values of the first coding block adjacent to a block edge per line, and modifies no more than the number MB of sample values of the second coding block adjacent to block edge per line; or at most the number MA of sample values of the second coding block adjacent to a block edge per line is modified, and at most the number MB of sample values of the first coding block adjacent to a block edge per line is modified, MA ≠ MB, in particular, MA < MB, e.g. , MA <MB = 7. For example, MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7, etc.
В примере N или T является четным целым числом 2n, большее 8 (например, N или T равны 16 или 32,…), M или L является четным целым числом 2n, большее 2 (например, M или L равны 4, 8, 16 или 32,…); M отличается от N или M совпадает с N; или L отличается от T, или L совпадает с T.In the example, N or T is an even 2 n integer greater than 8 (for example, N or T is 16 or 32,…), M or L is an even 2 n integer greater than 2 (for example, M or L is 4, 8 , 16 or 32,…); M is different from N or M is the same as N; or L is different from T, or L is the same as T.
В другом примере N или T является четным целым числом 2n, большее 16 (например, N или T равно 32 или 64,…), M или L является четным целым числом 2n, большее 2 (например, M или L равно 4, 8, 16. или 32,…), M отличается от N или M совпадает с N; или L отличается от T, или L совпадает с T; M × N, в котором N> 16 применяется для горизонтальных краев, а N × M, в котором N> 16, применяется для вертикальных краев. In another example, N or T is an even 2n integer greater than 16 (e.g., N or T is 32 or 64,…), M or L is an even 2n integer greater than 2 (e.g., M or L is 4, 8, 16. or 32,…), M is different from N or M is the same as N; or L is different from T, or L is the same as T; M × N, in which N > 16 applies to horizontal edges, and N × M, in which N > 16, applies to vertical edges.
В примере, первый фильтр (то есть, более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр) является фильтром, который использует DB выборки для принятия решения о фильтрации на одной стороне края блока и использует DA выборки для принятия решения о фильтрации на другой стороне края блока, и MB выборки модифицируются на упомянутой одной стороне края блока (CU edge или TU edge), в то время как MA выборки модифицируются на упомянутой другой стороне края блока (CU edge или TU edge), MA ≠ MB, в частности, MA <MB, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7. Первый фильтр может быть асимметричным фильтром, который модифицирует разное количество выборок по обе стороны от края блока (например, CU edge или TU edge).In the example, the first filter (i.e., a longer tap filter, or an asymmetric filter, or an asymmetric tap filter) is a filter that uses a fetch DB to make a filter decision on one side of the block edge, and uses a fetch DA to make a filter decision on the other. side of the block edge, and MB samples are modified on said one side of the block edge (CU edge or TU edge), while MA samples are modified on said other side of the block edge (CU edge or TU edge), MA ≠ MB, in particular, MA < MB, e.g. MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7. The first filter can be an asymmetric filter that modifies a different number of samples on either side of the block edge (for example, CU edge or TU edge).
Это обеспечивает особенно точную и эффективную обработку удаления блочности. В частности, это позволяет по-разному обрабатывать две стороны края блока и, следовательно, способ позволяет избежать фильтрации наложения между краем блока и краем субблока, таким образом, может быть гарантировано, что удаление блочности может выполняться параллельно. Таким образом, время обработки для фильтрации удаления блочности значительно сокращается.This provides particularly accurate and efficient deblocking processing. In particular, this allows the two sides of a block edge to be treated differently, and hence the method avoids overlap filtering between a block edge and a sub-block edge, thus it can be guaranteed that deblocking can be performed in parallel. Thus, the processing time for deblocking filtering is greatly reduced.
В возможной форме реализации способа согласно шестому аспекту как таковому, при наличии края субблока между субблоками внутри первого блока кодирования, и при наличии края субблока между субблоками внутри второго блока кодирования (например, первый Р блок кодирования и второй Q блок кодирования имеют субблоки или первый Р блок кодирования и второй Q блок кодирования имеют инструменты субблока).In a possible form of implementing the method according to the sixth aspect as such, if there is a subblock edge between subblocks within the first coding block, and if there is a subblock edge between subblocks within the second coding block (for example, the first P coding block and the second Q coding block have subblocks or the first P the coding block and the second Q coding block have sub-block tools).
Способ дополнительно содержит:The method further comprises:
определение, должен ли быть отфильтрован край блока между первым блоком кодирования и вторым блоком кодирования путем применения второго фильтра; иdetermining whether a block edge between the first coding block and the second coding block should be filtered by applying the second filter; and
применение второго фильтра к значениям выборок рядом с краем блока, когда определено, что должен быть отфильтрован край блока между первым блоком кодирования и вторым блоком кодирования путем применения второго фильтра, в котором модифицируется число MA' значений выборок первого блока кодирования, смежного с краем блока, и модифицируется число MB' значений выборок второго блока кодирования, смежного с краем блока, MA' = MB ', например, MA' = MB '= 3, или MA' = MB' = 5.applying a second filter to sample values adjacent to a block edge when it is determined that a block edge between the first coding block and the second coding block is to be filtered by applying a second filter that modifies the number MA' of sample values of the first coding block adjacent to the block edge, and the number MB' of sample values of the second coding block adjacent to the edge of the block is modified, MA'=MB', for example, MA'=MB'=3, or MA'=MB'=5.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, при отсутствии края субблока между субблоками внутри второго блока кодирования (например, первый Р блок кодирования имеет субблоки в то время как второй Q блок кодирования не имеет субблоков), модифицируется не более число МА значений выборок первого блока кодирования, смежного с краем блока, на строку, и модифицируются не более число МВ значений выборок второго блока кодирования смежного с краем блока на строку, MA = 3 и MB = 7 или MA = 4 и MB = 7, MA = 5 и MB = 7;In an exemplary implementation form of the method according to any prior implementation of the sixth aspect, or the sixth aspect as such, in the absence of a subblock edge between subblocks within the second coding block (e.g., the first P coding block has subblocks while the second Q coding block has no subblocks), the not more than the number of MA sample values of the first coding block adjacent to the block edge per line, and modified by at most the number of MB sample values of the second coding block adjacent to the block edge per line, MA = 3 and MB = 7 or MA = 4 and MB = 7, MA=5 and MB=7;
илиor
при отсутствии внутри первого блока кодирования края субблока между субблоками (например, второй Q блок кодирования имеет субблоки, в то время как первый Р блок кодирования не имеет субблоков), модифицируется не более число МА значений выборок второго блок кодирования, смежного с краем блока на строку, и модифицируется не более число МВ выборочных значений первого блока кодирования, смежного с краем блока на строку, MA = 3 и MB = 7, или MA = 4 и MB = 7, МА = 5 и МБ = 7.if there is no subblock edge between subblocks within the first coding block (e.g., the second Q coding block has subblocks while the first P coding block has no subblocks), no more than the number MA of sample values of the second coding block adjacent to the block edge per line is modified , and at most the number of MBs of samples of the first coding block adjacent to the block edge per line, MA = 3 and MB = 7, or MA = 4 and MB = 7, MA = 5 and MB = 7, is modified.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового определяется, должен ли быть отфильтрован край блока между первым блоком кодирования и вторым блоком кодирования путем применения первого фильтра на основанииIn an exemplary form of implementation of the method according to any prior implementation of the sixth aspect, or the sixth aspect as such, it is determined whether a block edge between the first coding block and the second coding block is to be filtered by applying a first filter based on
- не более число DA значений выборок первого блока кодирования, смежного с краем блока, в качестве значений принятия решения первой фильтрации, и- no more than the number DA of sample values of the first coding block adjacent to the edge of the block as first filtering decision values, and
- не более число DB значений выборок второго блока кодирования, смежного с краем блока, в качестве значений принятия решения второй фильтрации.- no more than the number DB of sample values of the second coding block adjacent to the edge of the block as second filtering decision values.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, при наличии края субблока между субблоками внутри второго Q блока кодирования (например, второй Q блок кодирования имеет субблоки) определяется, удовлетворяется ли первое условие, определенное следующим первым уравнением:In an exemplary form of implementation of the method according to any prior implementation of the sixth aspect, or the sixth aspect as such, if there is a subblock edge between subblocks within the second Q coding block (e.g., the second Q coding block has subblocks), it is determined whether the first condition defined by the following first equation is satisfied:
в котором β обозначает параметр порогового значения и qi представляет значения выборок второго Q блока кодирования, i = 0,1,2,3 и pj представляет значения выборок первого Р блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.in which β denotes the threshold parameter and q i represents the sample values of the second Q coding block, i = 0,1,2,3 and p j represents the sample values of the first P coding block, j = 0, 3, 4, 7, or j = 0, 2, 3, 5.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, при наличии края субблока между субблоками внутри первого Р блока кодирования (например, первый Р блок кодирования имеет субблоки), определяется, удовлетворяется ли второе условие, определенное следующим вторым уравнением:In an exemplary form of implementation of the method according to any prior implementation of the sixth aspect, or the sixth aspect as such, if there is a subblock edge between subblocks within the first P coding block (e.g., the first P coding block has subblocks), it is determined whether the second condition defined by the following second equation is satisfied :
в котором β обозначает параметр порогового значения и pi представляет значения выборок первого P блока кодирования, i = 0,1,2,3 и qj представляет значения выборок второго Q блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.in which β denotes the threshold parameter and p i represents the sample values of the first P coding block, i = 0,1,2,3 and q j represents the sample values of the second Q coding block, j = 0, 3, 4, 7, or j = 0, 2, 3, 5.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, в котором определяется параметр β порогового значения на основании параметра квантования, QP, ассоциированного с размером шага квантования множества выборок, илиIn an exemplary form of implementing the method according to any prior implementation of the sixth aspect, or the sixth aspect per se, wherein the threshold value parameter β is determined based on the quantization parameter, QP, associated with the quantization step size of the plurality of samples, or
параметр β порогового значения определяется на основании параметра квантования, QP, с использованием справочной таблицы.the threshold parameter β is determined based on the quantization parameter, QP, using a look-up table.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, в котором, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоком внутри второго Q блока кодирования (например, первый P блок кодирования не имеет субблоков, а второй Q блок кодирования имеет субблоки), определяется отфильтрованное значение выборки первой выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края между между первым P блоком кодирования и вторым Q блоком кодирования выборки на основании следующего уравнения:In an exemplary form of implementing the method according to any prior implementation of the sixth aspect, or the sixth aspect as such, wherein, if there is no subblock edge between subblocks within the first P coding block, and if there is a subblock edge between subblocks within the second Q coding block (e.g., the first P block coding block has no subblocks, and the second Q coding block has subblocks), the filtered value is determined samples of the first sample of the current row or column of samples to the right or bottom of the vertical or horizontal edge between between the first P coding block and the second Q sample coding block based on the following equation:
; ;
или,or,
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования (например, P блок кодирования не имеет субблоков и Q блок кодирования имеет субблоки), определяется отфильтрованное значение выборки второй выборки текущей строки или столбца выборок для правого или нижнего вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборки на основании следующего уравнения:In an exemplary form of implementing the method according to any prior implementation of the sixth aspect, or the sixth aspect as such, if there is no subblock edge between subblocks within the first P coding block, and if there is a subblock edge between subblocks within the second Q coding block (e.g., the P coding block has no subblocks and Q coding block has subblocks), the filtered value is determined samples of the second sample of the current row or column of samples for the right or bottom vertical or horizontal edge between the first P coding block and the second Q sample coding block based on the following equation:
; ;
илиor
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования (например, P блок кодирования не имеет субблоков и Q блок кодирования имеет субблоки), определяется отфильтрованное значение выборки третьей выборки текущей строки или столбца выборок для правого или нижнего вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборки на основании следующего уравнения:In an exemplary form of implementing the method according to any prior implementation of the sixth aspect, or the sixth aspect as such, if there is no subblock edge between subblocks within the first P coding block, and if there is a subblock edge between subblocks within the second Q coding block (e.g., the P coding block has no subblocks and Q coding block has subblocks), the filtered value is determined samples of the third sample of the current row or column of samples for the right or bottom vertical or horizontal edge between the first P coding block and the second Q sample coding block based on the following equation:
; ;
илиor
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования (например, P блок кодирования не имеет субблоков и Q блок кодирования имеет субблоки), определяется отфильтрованное значение выборки соответствующей выборки текущей строки или столбца выборок для левого или верхнего вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборки на основании следующего уравнения:In an exemplary form of implementing the method according to any prior implementation of the sixth aspect, or the sixth aspect as such, if there is no subblock edge between subblocks within the first P coding block, and if there is a subblock edge between subblocks within the second Q coding block (e.g., the P coding block has no subblocks and Q coding block has subblocks), the filtered value is determined samples of the corresponding sample of the current row or column of samples for the left or top vertical or horizontal edge between the first P coding block and the second Q sample coding block based on the following equation:
, ,
, ,
, ,
, ,
, ,
, ,
, ,
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, если N и T являются четными целыми числами 2n больше 16, MA = 3 и MB = 7 или MA = 4 и MB = 7, или MA = 5 и MB = 7.In a possible implementation form of the method according to any previous implementation of the sixth aspect, or the sixth aspect as such, if N and T are even integers 2 n greater than 16, MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7.
Согласно седьмому аспекту изобретение относится к способу удаления блочности края блока между первым Р блоком кодирования и вторым Q блоком кодирования изображения для кодирования изображения и/или декодирования изображения,According to a seventh aspect, the invention relates to a method for deblocking a block edge between a first P coding block and a second Q image coding block for image encoding and/or image decoding,
в котором первый Р блок кодирования имеет размер M * N или N * M, второй Q блок кодирования имеет размер L * T или T * L, например, N или T является четным целым числом 2n, большим, чем 8, в частности, N или T являются четным целым числом 2n больше 16, и при наличии края субблока между субблоками первого блока кодирования или второго блока кодирования (т.е. первый блок кодирования или второй блок кодирования имеет субблоки), в котором способ содержит:in which the first P coding block has size M * N or N * M, the second Q coding block has size L * T or T * L, for example, N or T is an even integer 2 n greater than 8, in particular, N or T is an even integer 2n greater than 16, and if there is a subblock edge between subblocks of the first coding block or the second coding block (i.e., the first coding block or the second coding block has subblocks), wherein the method comprises:
в случае, если край субблока между субблоками первого блока кодирования (т.е. первый блок кодирования имеет субблоки или первый блок кодирования использует инструменты субблока, в котором первый блок кодирования является текущим блоком),in case there is a subblock edge between subblocks of the first codingblock (i.e. the first codingblock has subblocks or the first codingblock uses the tools of a subblock in which the first codingblock is the current block),
- модификацию не более число МА значений выборок первого блока кодирования, смежного с краем блока, в качестве выходных значений выборок первого фильтра; и- modifying no more than MA number of sample values of the first coding block adjacent to the edge of the block as output sample values of the first filter; and
- модификацию не более число МВ значений выборок второго блока кодирования, смежного с краем блока, в качестве выходных значений выборок второго фильтра; в котором MA ≠ MB, в частности, MA <MB, например, MA <MB = 7, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7 и т.д.;- modifying no more than the number of MB of sample values of the second coding block adjacent to the edge of the block, as the output values of the samples of the second filter; where MA ≠ MB, in particular MA < MB, e.g. MA < MB = 7, e.g. MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7, etc. .d.;
или,or,
в случае, если край субблока между субблоками второго блока кодирования (т.е. второй блок кодирования имеет субблоки или второй блок кодирования использует инструменты субблока, в котором второй блок кодирования является текущим блоком), in case a sub-block edge is between sub-blocks of the second coding block (i.e., the second coding block has sub-blocks, or the second coding block uses the tools of a sub-block in which the second coding block is the current block),
- модификацию не более число МА значений выборок второго блока кодирования, смежного с краем блока, в качестве выходных значений выборок первого фильтра; и- modifying no more than MA number of sample values of the second coding block adjacent to the edge of the block as output sample values of the first filter; and
- модификацию (1404) не более число MB значений выборок первого блока (902, 1302) кодирования, смежных с краем блока, в качестве выходных значений выборок второго фильтра, в котором MA ≠ MB, в частности? MA <MB, например MA <MB = 7, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7 и т.д.- modifying (1404) no more than the number MB of sample values of the first coding block (902, 1302) adjacent to the edge of the block as the output sample values of the second filter, in which MA ≠ MB, in particular? MA < MB, e.g. MA < MB = 7, e.g. MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7, etc.
Это обеспечивает особенно точный и эффективный удаление блочности. В частности, обеспечивается разные способы обработки двух сторон края блока и, следовательно, способ позволяет не выполнять фильтрацию наложения между краем блока и краем субблока и, таким образом, обеспечивается параллельная обработка удаления блочности. Таким образом, время обработки для фильтрации удаления блочности значительно сокращается.This provides particularly accurate and efficient deblocking. In particular, different processing methods are provided for two sides of a block edge, and therefore, the method enables overlap filtering between a block edge and a sub-block edge to be performed, and thus parallel deblocking processing is provided. Thus, the processing time for deblocking filtering is greatly reduced.
Согласно восьмому аспекту изобретение относится к способу удаления блочности для использования при кодировании изображения и/или декодировании изображения, в котором способ содержит:According to an eighth aspect, the invention relates to a deblocking method for use in image encoding and/or image decoding, wherein the method comprises:
определение краев между блоками, в котором края между блоками содержат край блока между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования, в котором первый Р блок кодирования имеет размер M × N или N × M, второй Q блок кодирования имеет размер L × T или T × L;an inter-block edge definition, wherein the inter-block edges comprise a block edge between a first P coding block and a second Q coding block, and a sub-block edge between sub-blocks of the first P coding block or the second Q coding block, wherein the first P coding block has a size of M×N or N × M, the second Q coding block has a size of L × T or T × L;
определение, должен ли быть отфильтрован край блока между первым Р блоком кодирования и вторым Q блоком кодирования применением первого фильтра (т.е. более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр); иdetermining whether a block edge between the first P coding block and the second Q coding block is to be filtered by applying the first filter (ie, longer tap filter or asymmetric filter or asymmetric tap filter or asymmetric long filter); and
применение третьего фильтра к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования не должен фильтроваться путем применения первого фильтра, в котором модифицируется не более число MA значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируется не более число MB значений выборок второго блока кодирования, смежного с краем блока, на строку, MA = MB, например, MA = MB <7, например, MA = MB = 4.applying a third filter to the sample values near the block edge between the first P coding block and the second Q coding block, when it is determined that the block edge between the first P coding block and the second Q coding block is not to be filtered by applying a first filter in which at most a number is modified MA sample values of the first coding block adjacent to the block edge per line, and modified by at most the number MB of sample values of the second coding block adjacent to the block edge per line, MA = MB, e.g., MA = MB < 7, e.g., MA = MB = 4.
В одном примере N или T является четным целым числом 2n, большее 8, в частности, N или T является четным целым числом 2n, большее 16, M или L является четным целым числом 2n, большее 2; M отличается от N или M совпадает с N; или L отличается от T, или L совпадает с T.In one example, N or T is an even integer 2 n greater than 8, in particular, N or T is an even integer 2 n greater than 16, M or L is an even integer 2 n greater than 2; M is different from N or M is the same as N; or L is different from T, or L is the same as T.
В примере первый фильтр (т.е. более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр) представляет собой фильтр, который использует DB выборки для принятия решения о фильтрации на одной стороне края блока и использует DA выборки для принятия решения о фильтрации на другой стороне края блока, и MB выборки модифицируются на упомянутой одной стороне края блока (CU edge или TU edge), в то время, как MA выборки модифицируются на упомянутой другой стороне края блока (CU edge или TU edge), MA ≠ MB, в частности, MA <MB, например, MA <MB = 7, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7.In the example, the first filter (i.e. longer tap filter or asymmetric filter or asymmetric tap filter or asymmetric long filter) is a filter that uses the fetch DB to make a filtering decision on one side of the block edge and uses the fetch DA to filter decision is made on the other side of the block edge, and MB samples are modified on said one side of the block edge (CU edge or TU edge), while MA samples are modified on said other side of the block edge (CU edge or TU edge), MA ≠ MB, in particular MA < MB, e.g. MA < MB = 7, e.g. MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7.
В одном из примеров третий фильтр может быть HEVC сильным фильтром, который может модифицировать максимум четыре выборки по обе стороны края блока (CU edge или TU edge). Другими словами, третий фильтр может быть HEVC сильным фильтром, в котором модифицируются максимум четыре выборки на одной стороне края блока (CU edge или TU edge), в то время как модифицируются максимум четыре выборки на другой стороне края блока (CU edge или TU edge).In one example, the third filter may be a HEVC strong filter that can modify a maximum of four samples on either side of a block edge (CU edge or TU edge). In other words, the third filter could be a HEVC strong filter in which a maximum of four samples on one side of the block edge (CU edge or TU edge) are modified, while a maximum of four samples on the other side of the block edge (CU edge or TU edge) are modified. .
Это обеспечивает особенно точный и эффективный удаление блочности.This provides particularly accurate and efficient deblocking.
Согласно девятому аспекту изобретение относится к способу удаления блочности для использования при кодировании изображения и/или декодировании изображения, в котором способ содержит:According to a ninth aspect, the invention relates to a deblocking method for use in image encoding and/or image decoding, wherein the method comprises:
определение краев между блоками, в котором края между блоками содержат край блока между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования, в котором первый Р блок кодирования имеет размер M × N или N × M, второй Q блок кодирования имеет размер L × T или T × L;an inter-block edge definition, wherein the inter-block edges comprise a block edge between a first P coding block and a second Q coding block, and a sub-block edge between sub-blocks of the first P coding block or the second Q coding block, wherein the first P coding block has a size of M×N or N × M, the second Q coding block has a size of L × T or T × L;
определение, что край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования не должен фильтроваться (например, определение, что удаление блочности края субблока между субблоками первого Р блока кодирования или второго Q блока кодирования отключен); иdetermining that a subblock edge between subblocks of the first P coding block or the second Q coding block is not to be filtered (eg, determining that deblocking of the subblock edge between subblocks of the first P coding block or the second Q coding block is disabled); and
применение четвертого фильтра (стандартный более удлинённый отводной фильтр) к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, в котором модифицируются число МА значений выборок первого блока кодирования, смежного с краем блока, и модифицируется число МВ выборочных значений второго блока кодирования, смежного с краем блока, MA = MB, например MA = MB = 7.applying a fourth filter (a standard longer tap filter) to the sample values near the block edge between the first P coding block and the second Q coding block, in which the number MA of sample values of the first coding block adjacent to the edge of the block is modified, and the number MB of sample values of the second is modified of the coding block adjacent to the edge of the block, MA = MB, for example MA = MB = 7.
В одном примере N или T является четным целым числом 2n, большее 8, в частности, N или T является четным целым числом 2n, большее 16, M или L является четным целым числом 2n, большее 2; M отличается от N или M совпадает с N; или L отличается от T, или L совпадает с T.In one example, N or T is an even integer 2 n greater than 8, in particular, N or T is an even integer 2 n greater than 16, M or L is an even integer 2 n greater than 2; M is different from N or M is the same as N; or L is different from T, or L is the same as T.
В одном примере четвертый фильтр может быть нормальным более удлинённым отводным фильтром, который может модифицировать до 7 выборок по обе стороны края блока (например, CU edge или CU boundary).In one example, the fourth filter may be a normal longer tap filter that can modify up to 7 samples on either side of a block edge (eg, CU edge or CU boundary).
Это обеспечивает особенно точный и эффективный удаление блочности.This provides particularly accurate and efficient deblocking.
Согласно десятому аспекту изобретение относится к способу кодирования для кодирования изображения, содержащему ранее или позже описанный способ удаления блочности согласно любой реализации любого аспекта или любого аспекта как такового.According to a tenth aspect, the invention relates to an encoding method for encoding an image, comprising the previously or later described deblocking method according to any implementation of any aspect or any aspect as such.
Это позволяет очень эффективно и точно кодировать изображение.This allows for very efficient and accurate encoding of the image.
Согласно одиннадцатому аспекту изобретение относится к способу декодирования для декодирования изображения, содержащему ранее или позже описанный способ удаления блочности согласно любой реализации любого аспекта или любого аспекта как такового. Это позволяет очень эффективно и точно декодировать изображение.According to an eleventh aspect, the invention relates to a decoding method for decoding an image, comprising the previously or later described deblocking method according to any implementation of any aspect or any aspect as such. This allows for very efficient and accurate image decoding.
Согласно двенадцатому аспекту изобретения обеспечивается устройство фильтра удаления блочности. Устройство фильтра удаления блочности предназначено для использования в кодере изображения и/или декодере изображения. Устройство фильтра удаления блочности содержит:According to a twelfth aspect of the invention, a deblocking filter apparatus is provided. The deblocking filter device is intended for use in an image encoder and/or an image decoder. The deblocking filter device comprises:
блок локализации края, выполненный с возможностью определять края между блоками, в котором края между блоками содержат край блока (например, CU edge) между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока (например, sud-pu edge) между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором первый Р блок кодирования имеет размер M × N или N × M, второй Q блок кодирования имеет размер L × T или T × L, например, N или T является четным целым числом 2n, превышающее пороговое значение (например, 8 или 16 и т.д.);an edge localization unit configured to determine inter-block edges, wherein the inter-block edges comprise a block edge (eg, CU edge) between a first P coding block and a second Q coding block, and a sub-block edge (eg, sud-pu edge) between sub-blocks within the first P coding block and/or the second Q coding block, in which the first P coding block has a size of M × N or N × M, the second Q coding block has a size of L × T or T × L, for example, N or T is an even integer number 2 n exceeding the threshold value (for example, 8 or 16, etc.);
блок определения удаления блочности, выполненный с возможностью определять край блока между первым Р блоком кодирования и вторым Q блоком кодирования и должен быть отфильтрован первый набор краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, и второй набор краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования не должен фильтроваться; иa deblocking determination unit configured to determine a block edge between the first P coding block and the second Q coding block, and the first set of subblock edges between subblocks within the first P coding block and/or the second Q coding block, and the second set of subblock edges between subblocks within the first P coding block and/or the second Q coding block shall not be filtered; and
блок фильтрации удаления блочности, выполненный с возможностью выполнять фильтрацию удаления блочности при значениях выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования и выполнять фильтрацию удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого P блока кодирования и/или второго Q блока кодирования.a deblocking filtering unit configured to perform deblocking filtering on sample values near a block edge between the first P coding block and a second Q coding block, and perform deblocking filtering on sample values near each of the first set of subblock edges between subblocks within the first P coding block and/or a second Q coding block.
Например, блок определения удаления блочности может быть выполнен с возможностью определять край «первого» субблока между субблоками (внутри) первого Р блока кодирования или второго Q блока кодирования, который не должен фильтроваться; другими словами, определяют край «первого» субблока между субблоками (внутри) первого Р блока кодирования или второго Q блока кодирования, для которого обработка удаления блочности отключена.For example, the deblocking determiner may be configured to determine a "first" subblock edge between subblocks (within) the first P coding block or the second Q coding block that is not to be filtered; in other words, a "first" subblock edge between subblocks (inside) of the first P coding block or the second Q coding block for which deblocking processing is disabled is determined.
Например, блок определения удаления блочности может быть выполнен с возможностью определять край «последнего» субблока между субблоками (внутри) первого Р блока кодирования или второго Q блока кодирования, который не должен фильтроваться; другими словами, определяют край «последнего» субблока между субблоками (внутри) первого Р блока кодирования или второго Q блока кодирования для которого обработка удаления блочности отключена.For example, the deblocking determination unit may be configured to determine the edge of the "last" subblock between subblocks (within) the first P coding block or the second Q coding block that is not to be filtered; in other words, determining the edge of the "last" sub-block between sub-blocks (within) the first P coding block or the second Q coding block for which deblocking processing is disabled.
Например, блок определения удаления блочности может быть выполнен с возможностью определять все края субблоков, которые перекрываются с сеткой 16 x 16 для первого Р блока кодирования и/или второго Q блока кодирования, и применять удаление блочности только к этим внутренним краям. Другие внутренние края субблоков не подвергаются обработке удаления блочности. Кроме того, для удаления блочности внутренних краев субблоков, которые перекрываются с сеткой 16 x 16, может быть применен более длинный отводной фильтр можно, в то время как для CU края может быть применен более длинный отводной фильтр.For example, the deblocking determiner may be configured to determine all subblock edges that overlap the 16 x 16 grid for the first P coding block and/or the second Q coding block, and apply deblocking only to those inner edges. The other inner edges of the subblocks are not subjected to deblocking processing. Also, to deblock the inner edges of sub-blocks that overlap with the 16 x 16 grid, a longer tap filter can be applied, while a longer tap filter can be applied to the CU edge.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором первый набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования содержит (состоит из) множество краев субблока, за исключением края первого субблока и края последнего субблока, между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором край первого субблока находится ближе всего к одному из первому P блоку кодирования и второму Q блоку кодирования, в котором край последнего субблока является ближайшим к другому из первого Р блока кодирования и второго Q блока кодирования;In a possible form of implementation of the device according to the twelfth aspect as such, wherein the first set of subblock edges between subblocks within the first coding block and/or second coding block comprises (consists of) a plurality of subblock edges, excluding the first subblock edge and the last subblock edge, between the subblocks within the first P coding block and/or the second Q coding block, in which the edge of the first sub-block is closest to one of the first P coding block and the second Q coding block, in which the edge of the last sub-block is closest to the other of the first P coding block and the second Q block coding;
второй набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования состоит из края первого субблока и края последнего субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором край первого субблока находится ближе всего к одному из первому Р блоку кодирования и второму блоку Q кодирования и край последнего субблока находится ближе всего к другому из первого Р блока кодирования и второго Q блока кодирования.the second set of subblock edges between subblocks within the first coding block and/or the second coding block consists of the first subblock edge and the last subblock edge between subblocks within the first P coding block and/or the second Q coding block in which the first subblock edge is closest to one from the first P coding block and the second coding block Q, and the edge of the last sub-block is closest to the other of the first P coding block and the second Q coding block.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором блок фильтрации удаления блочности выполнен с возможностью применять пятый фильтр к значениям выборок около каждого из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором модифицируется не более число NA значений выборок на одной стороне соответствующего одного из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, и модифицируется не более число NB значений выборок на другой стороне соответствующего одного из первого набора краев субблока, NA, NB = 4.In a possible form of implementation of the apparatus according to the twelfth aspect as such, wherein the deblocking filter unit is configured to apply the fifth filter to sample values near each of the first set of subblock edges within the first P coding block and/or the second Q coding block, in which not more than the number NA of sample values on one side of the corresponding one of the first subblock edge set within the first P coding block and/or the second Q coding block, and at most the number NB of sample values on the other side of the corresponding one of the first subblock edge set, NA, NB = 4.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии множества краев субблока между субблоками внутри второго Q блока кодирования, блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования на основании следующего уравнения, когда принято решение применить пятый фильтр, являющийся HEVC фильтрацией удаления блочности:In a possible form of implementing the apparatus according to the twelfth aspect as such, wherein, in the absence of a subblock edge between subblocks within the first P coding block, and in the presence of a plurality of subblock edges between subblocks within the second Q coding block, the deblocking filter block is configured to determine the filtered value samples of the corresponding sample of the current row or column of samples on the corresponding side of the vertical or horizontal edge of the sub-block within the second Q coding block based on the following equation, when it is decided to apply the fifth filter, which is the HEVC deblocking filtering:
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i = 0, 1, j = 0, 1..3.in which p i represents the corresponding sample value of the part of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the part of the current row or column of samples of the second Q coding block, i = 0, 1, j = 0, 1..3 .
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором первый набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования содержит (состоит из) один или более краев субблоков, которые перекрываются сеткой 16 × 16 между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования;In a possible form of implementation of the apparatus according to the twelfth aspect as such, wherein the first set of subblock edges between subblocks within the first coding block and/or the second coding block comprises (consists of) one or more subblock edges that overlap with a 16×16 grid between subblocks within the first P coding block and/or second Q coding block;
второй набор краев субблока между субблоками внутри первого или второго блока кодирования содержит (состоит из) один или более краев субблока, за исключением краев субблока, которые перекрываются сеткой 16 x 16 между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования.the second set of subblock edges between subblocks within the first or second coding block comprises (consists of) one or more subblock edges, excluding subblock edges that overlap with a 16 x 16 grid between subblocks within the first P coding block and/or the second Q coding block.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором блок фильтрации удаления блочности выполнен с возможностью применять шестой фильтр к значениям выборок около каждого из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором модифицируется не более число NA' значений выборок на одной стороне соответствующего одного из первого набора краев субблока внутри первого Р блока кодирования или второго Q блока кодирования, и модифицируется не более число NB' значений выборок на другой стороне соответствующего одного из первого набора краев субблока, NA' = NB'= 7. Можно понять, что NA' и NB' могут определяться на основании размера блока, другими словами, NA' и NB' зависят от размера блока соответствующего блока. В способе реализации для больших блоков, то есть, размера блока > = 32, максимальное количество измененных выборок может составлять 7 (соответствует длинному фильтру).In a possible form of implementing the apparatus according to the twelfth aspect as such, wherein the deblocking filter unit is configured to apply the sixth filter to sample values near each of the first set of subblock edges within the first P coding block and/or the second Q coding block, in which not more than the number NA' of sample values on one side of the corresponding one of the first subblock edge set within the first P coding block or the second Q coding block, and at most the number NB' of sample values on the other side of the corresponding one of the first subblock edge set, NA' = NB'=7. It can be understood that NA' and NB' may be determined based on the block size, in other words, NA' and NB' depend on the block size of the corresponding block. In the implementation for large blocks, ie, block size >= 32, the maximum number of modified samples can be 7 (corresponding to a long filter).
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии множества краев субблока между субблоками внутри второго Q блока кодирования, блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования на основании следующего уравнения:In a possible form of implementing the apparatus according to the twelfth aspect as such, wherein, in the absence of a subblock edge between subblocks within the first P coding block, and in the presence of a plurality of subblock edges between subblocks within the second Q coding block, the deblocking filter block is configured to determine the filtered value samples of the corresponding sample of the current row or column of samples on the corresponding side of the vertical or horizontal sub-block edge within the second Q coding block based on the following equation:
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому в случае наличия множества краев субблока между субблоками внутри первого Р блока кодирования и наличии множества краев субблока между субблоками внутри второго Q блока кодирования, блок фильтрации удаления блочности выполнен с возможностью определять значения и отфильтрованной выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования и первого Р блока кодирования, соответственно, на основании следующего уравнения:In a possible implementation form of the apparatus according to the twelfth aspect, as such, in the case of having a plurality of subblock edges between subblocks within a first P coding block and having a plurality of subblock edges between subblocks within a second Q coding block, the deblocking filtering block is configured to determine values and filtered sample of the corresponding sample of the current row or column of samples on the corresponding side of the vertical or horizontal sub-block edge within the second Q coding block and the first P coding block, respectively, based on the following equation:
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, блок определения удаления блочности дополнительно выполнен с возможностью определять, должен ли край блока между первым Р блоком кодирования и вторым Q блоком кодирования фильтроваться путем применения первого фильтра; иIn an exemplary form of implementation of the apparatus according to the twelfth aspect as such, the deblocking determining unit is further configured to determine whether a block edge between the first P coding block and the second Q coding block is to be filtered by applying the first filter; and
блок фильтрации удаления блочности дополнительно выполнен с возможностью применять первый фильтр к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блок кодирования должен быть отфильтрован применением первого фильтра, в котором модифицируется не более число МА значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируются не более число МВ значений выборок второго блока кодирования смежные к краю блока на строку; или модифицируется не более число МА значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок первого блока кодирования, смежного с краем блока на строку, MA = 3 и MB = 7.the deblocking filter unit is further configured to apply the first filter to the sample values near the block edge between the first P coding block and the second Q coding block, when it is determined that the block edge between the first P coding block and the second Q coding block is to be filtered by applying the first filter , in which no more than the number MA of sample values of the first coding block adjacent to the block edge per line is modified, and no more than the number MB of sample values of the second coding block adjacent to the edge of the block per line are modified; or at most the number MA of sample values of the second coding block adjacent to the block edge per line is modified, and at most the number MB of sample values of the first coding block adjacent to the edge of the block per line is modified, MA = 3 and MB = 7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором в случае наличия множества краев субблока между субблоками внутри первого блока кодирования, и наличия множества краев субблока между субблоками внутри второго блока кодирования,In a possible form of implementing the apparatus according to the twelfth aspect as such, wherein in the case of having a plurality of subblock edges between subblocks within a first coding block, and having a plurality of subblock edges between subblocks within a second coding block,
блок определения удаления блочности дополнительно выполнен с возможностью определять край блока между первым блоком кодирования и вторым блоком кодирования, который должен быть отфильтрован, применяя второй фильтр; иthe deblocking determination unit is further configured to determine a block edge between the first coding block and the second coding block to be filtered by applying the second filter; and
блок фильтрации удаления блочности дополнительно выполнен с возможностью применять второй фильтр к значениям выборок около края блока, когда определено, что край блока между первым блоком кодирования и вторым блоком кодирования должен быть отфильтрован путем применения второго фильтра, в котором модифицируется число МА' значений выборок первого блока кодирования, смежного с краем блока, и модифицируется число МВ' значений выборок второго блока кодирования, смежного с краем блока, MA'= 3 и MB' = 3.the deblocking filter unit is further configured to apply a second filter to sample values near a block edge when it is determined that a block edge between the first coding block and the second coding block is to be filtered by applying a second filter in which the number MA' of sample values of the first block is modified of the coding block adjacent to the block edge, and the number MB' of sample values of the second coding block adjacent to the block edge is modified, MA'=3 and MB'=3.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри второго блока кодирования, модифицируются не более число МА значений выборок первого блока кодирования, смежного с краем блока на каждую строку, и модифицируется не более число МВ значений выборок второго блока кодирования, смежного с краем блока на строку;In a possible form of implementation of the device according to the twelfth aspect as such, in the absence of a subblock edge between subblocks within the second coding block, no more than the number MA of sample values of the first coding block adjacent to the block edge per line are modified, and no more than the number MB of sample values of the second coding block are modified. block coding adjacent to the edge of the block per line;
илиor
когда внутри первого блока кодирования нет края субблока между субблоками, модифицируется не более число MA значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число MB значений выборок первого блок кодирования, смежного с краем блока на строку, MA = 3 и MB = 7.when there is no subblock edge between subblocks within the first coding block, at most the number MA of sample values of the second coding block adjacent to the block edge per line is modified, and at most the number MB of sample values of the first coding block adjacent to the block edge per line is modified, MA = 3 and MB=7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, блок определения удаления блочности дополнительно выполнен с возможностью определять, должен ли быть отфильтрован край блока между первым блоком кодирования и вторым блоком кодирования путем применения первого фильтра на основанииIn an exemplary form of implementation of the apparatus according to the twelfth aspect as such, the deblocking determination unit is further configured to determine whether a block edge between the first coding unit and the second coding unit is to be filtered by applying a first filter based on
- не более числа DA значений выборок первого блока кодирования, смежного с краем блока, в качестве значений принятия решения первого фильтра и- no more than the number DA of sample values of the first coding block adjacent to the edge of the block as the decision values of the first filter, and
- не более числа DB значений выборок второго блока кодирования, смежного с краем блока, в качестве значений принятия решения второго фильтра.- no more than the number DB of sample values of the second coding block adjacent to the edge of the block as decision values of the second filter.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, при наличии множества краев субблока между субблоками внутри второго Q блока кодирования, блок определения удаления блочности выполнен с возможностью определять, удовлетворяется ли первое условие, определенное следующим первым уравнением:In a possible implementation form of the apparatus according to the twelfth aspect as such, when there are a plurality of subblock edges between subblocks within the second Q coding block, the deblocking determining unit is configured to determine whether the first condition defined by the following first equation is satisfied:
в котором β обозначает параметр порогового значения и qi представляют значения выборок второго Q блока кодирования, i = 0,1,2,3 и pj представляет значения выборок первого Р блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.in which β denotes the threshold parameter and q i represent the sample values of the second Q coding block, i = 0,1,2,3 and p j represents the sample values of the first P coding block, j = 0, 3, 4, 7 or j = 0, 2, 3, 5.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором, при наличии множества краев субблока между субблоками внутри первого Р блока кодирования, блок определения удаления блочности выполнен с возможностью определять, удовлетворяется ли второе условие, определенное следующим вторым уравнением:In a possible implementation form of the apparatus according to the twelfth aspect as such, wherein, when there are a plurality of subblock edges between subblocks within the first P coding block, the deblocking determining unit is configured to determine whether the second condition defined by the following second equation is satisfied:
в котором β обозначает параметр порогового значения и pi представляет значения выборок первого P блока кодирования, i = 0,1,2,3 и qj представляют значения выборок второго Q блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.where β denotes the threshold parameter and p i represents the sample values of the first P coding block, i = 0,1,2,3 and q j represent the sample values of the second Q coding block, j = 0, 3, 4, 7, or j = 0, 2, 3, 5.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором параметр β порогового значения определяется на основании параметра квантования, QP, ассоциированного с размером шага квантования множества выборок, илиIn an exemplary form of implementation of the device according to the twelfth aspect as such, wherein the threshold parameter β is determined based on the quantization parameter, QP, associated with the quantization step size of the plurality of samples, or
параметр β порогового значения определяется на основании параметра квантования, QP, с использованием справочной таблицы.the threshold parameter β is determined based on the quantization parameter, QP, using a look-up table.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования, блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки первой выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборок на основании следующего уравнения:In a possible implementation form of the apparatus according to the twelfth aspect, as such, if there is no subblock edge between subblocks within the first P coding block, and if there is a subblock edge between subblocks within the second Q coding block, the deblocking filter block is configured to determine the filtered value samples of the first sample of the current row or column of samples to the right or bottom of the vertical or horizontal edge between the first P coding block and the second Q coding block of samples based on the following equation:
; ;
или,
or,
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1…7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of a portion of the current row or column of samples of the second Q coding block, i, j = 0, 1...7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования, блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки второй выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборок на основании следующего уравнения:In a possible implementation form of the apparatus according to the twelfth aspect, as such, if there is no subblock edge between subblocks within the first P coding block, and if there is a subblock edge between subblocks within the second Q coding block, the deblocking filter block is configured to determine the filtered value samples of the second sample of the current row or column of samples to the right or bottom of the vertical or horizontal edge between the first P coding block and the second Q coding block of samples based on the following equation:
; ;
или, or,
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки третьей выборки текущей строки или столбца выборок справа или внизу вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборок на основании следующего уравнения:In a possible implementation form of the apparatus according to the twelfth aspect, as such, if there is no subblock edge between subblocks within the first P coding block and if there is a subblock edge between subblocks within the second Q coding block, the deblocking filter block is configured to determine the filtered value samples of the third sample of the current row or column of samples to the right or bottom of the vertical or horizontal edge between the first P coding block and the second Q coding block of samples based on the following equation:
; ;
илиor
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки соответствующей выборки текущей строки или столбца выборок слева или вверху вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборок на основании следующего уравнения:In a possible implementation form of the apparatus according to the twelfth aspect, as such, if there is no subblock edge between subblocks within the first P coding block and if there is a subblock edge between subblocks within the second Q coding block, the deblocking filter block is configured to determine the filtered value samples of the corresponding sample of the current row or column of samples to the left or top of the vertical or horizontal edge between the first P coding block and the second Q sample coding block based on the following equation:
, ,
, ,
, ,
, ,
, ,
, ,
, ,
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, блок определения удаления блочности дополнительно выполнен с возможностью определять, должен ли край блока между первым Р блоком кодирования и вторым Q блоком кодирования фильтроваться путем применения первого фильтра; иIn an exemplary form of implementation of the apparatus according to the twelfth aspect as such, the deblocking determining unit is further configured to determine whether a block edge between the first P coding block and the second Q coding block is to be filtered by applying the first filter; and
блок фильтрации удаления блочности дополнительно выполнен с возможностью применять третий фильтр к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования не должен фильтроваться путем применения первого фильтра, в котором модифицируется не более число MA значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируются не более число MB значений выборок второго блока кодирования, смежного с краем блока на строку, MA = MB = 4.the deblocking filtering unit is further configured to apply a third filter to the sample values near the block edge between the first P coding block and the second Q coding block, when it is determined that the block edge between the first P coding block and the second Q coding block is not to be filtered by applying the first A filter that modifies at most MA number of sample values of the first coding block adjacent to the block edge per line, and modifies at most MB number of sample values of the second coding block adjacent to the block edge per line, MA = MB = 4.
Согласно тринадцатому аспекту изобретение относится к способу удаления блочности для использования при кодировании изображения и/или декодировании изображения, в котором способ содержит:According to a thirteenth aspect, the invention relates to a deblocking method for use in image encoding and/or image decoding, wherein the method comprises:
определение краев между блоками, в котором края между блоками содержат край блока между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором первый Р блок кодирования имеет размер M × N или N × M, второй Q блок кодирования имеет размер блока L × T или T × L, например, в котором N или T является четным целым числом 2n , больше чем пороговое значение (например, 8 или 16 и т. д.);definition of inter-block edges, wherein the inter-block edges comprise a block edge between a first P coding block and a second Q coding block, and a sub-block edge between sub-blocks within the first P coding block and/or the second Q coding block, wherein the first P coding block has a size M × N or N × M, the second Q coding block has a block size L × T or T × L, for example, in which N or T is an even integer 2 n , greater than a threshold value (for example, 8 or 16, etc. .);
определение края блока между первым Р блоком кодирования и вторым Q блоком кодирования и первый набор краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, который должен быть отфильтрован, и второй набор краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования не подлежит фильтрации; иdetermining a block edge between a first P coding block and a second Q coding block, and a first set of subblock edges between subblocks within the first P coding block and/or a second Q coding block to be filtered, and a second set of subblock edges between subblocks within the first P coding block and/or the second Q coding block is not subject to filtering; and
выполнение фильтрации удаления блочности при значениях выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования и выполнение фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования.performing deblocking filtering on sample values near a block edge between the first P coding block and second Q coding block and performing deblocking filtering on sample values near each of the first set of subblock edges between subblocks within the first P coding block and/or second Q coding block.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, первый набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования содержит (состоит из) множества краев субблоков, за исключением края первого субблока и края последнего субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором край первого субблока находится ближе всего к одному из первому Р блоку кодирования и второму Q блоку кодирования, в котором край последнего субблока является ближайшим к другому из первого Р блока кодирования и второго Q блока кодирования;In an exemplary form of implementing the method according to the thirteenth aspect as such, the first set of subblock edges between subblocks within the first coding block and/or the second coding block comprises (consists of) a plurality of subblock edges excluding the first subblock edge and the last subblock edge between subblocks within the first P of a coding block and/or a second Q coding block, in which the edge of the first subblock is closest to one of the first P coding block and the second Q coding block, in which the edge of the last subblock is closest to the other of the first P coding block and the second Q coding block ;
второй набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования состоит из края первого субблока и края последнего субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором край первого субблока находится ближе всего к одному из первому Р блоку кодирования и второму блоку Q кодирования, и край последнего субблока находится ближе всего к другому из первого Р блока кодирования и второго Q блока кодирования.the second set of subblock edges between subblocks within the first coding block and/or the second coding block consists of the first subblock edge and the last subblock edge between subblocks within the first P coding block and/or the second Q coding block in which the first subblock edge is closest to one from the first P coding block and the second coding block Q, and the edge of the last sub-block is closest to the other of the first P coding block and the second Q coding block.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками первого Р блока кодирования и/или второго Q блока кодирования содержит:In an exemplary form of implementing the method according to the thirteenth aspect, as such, the step of performing deblocking filtering at sample values near each of the first set of subblock edges between subblocks of the first P coding block and/or the second Q coding block comprises:
применение пятого фильтра к значениям выборок около каждого из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором модифицируются не более число NA значений выборок на одной стороне соответствующего блока из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, и модифицируются не более число NB значений выборок на другой стороне соответствующего одного из первого набора краев субблока, NA = NB = 4.applying a fifth filter to the sample values near each of the first set of subblock edges within the first P coding block and/or the second Q coding block, in which at most NA number of sample values on one side of the corresponding block from the first set of subblock edges within the first P coding block are modified and/or a second Q coding block, and no more than NB number of sample values on the other side of the corresponding one of the first set of subblock edges are modified, NA = NB = 4.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии множества краев субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, содержит:In a possible form of implementing the method according to the thirteenth aspect, as such, if there is no subblock edge between subblocks within the first P coding block, and if there are multiple subblock edges between subblocks within the second Q coding block, the step of performing deblocking filtering at sample values around each of the first set subblock edges between subblocks within the first P coding block and/or the second Q coding block contains:
определение отфильтрованного значения выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования на основании следующего уравнения, когда принято решение применить пятый фильтр, который является HEVC фильтром удаления блочности:filtered value definition samples of the corresponding sample of the current row or column of samples on the corresponding side of the vertical or horizontal edge of the sub-block within the second Q coding block based on the following equation, when it is decided to apply the fifth filter, which is a HEVC deblocking filter:
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i = 0, 1, j = 0, 1..3.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i = 0, 1, j = 0, 1..3 .
В возможной форме реализации способа согласно тринадцатому аспекту как таковому первый набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования содержит (состоит из) один или более краев субблоков, которые перекрываются сеткой 16 x 16 между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования;In an exemplary embodiment of the method according to the thirteenth aspect, as such, the first set of subblock edges between subblocks within the first coding block and/or the second coding block comprises (consists of) one or more subblock edges that overlap with a 16 x 16 grid between subblocks within the first P coding block and/or a second Q coding block;
второй набор краев субблока между субблоками внутри первого или второго блока кодирования содержит (состоит из) один или более краев субблока, за исключением краев субблока, которые перекрываются сеткой 16 x 16 между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования.the second set of subblock edges between subblocks within the first or second coding block comprises (consists of) one or more subblock edges, excluding subblock edges that overlap with a 16 x 16 grid between subblocks within the first P coding block and/or the second Q coding block.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками первого Р блока кодирования и/или второго Q блока кодирования содержит:In an exemplary form of implementing the method according to the thirteenth aspect, as such, the step of performing deblocking filtering at sample values near each of the first set of subblock edges between subblocks of the first P coding block and/or the second Q coding block comprises:
применение шестого фильтра к значениям выборок рядом с каждым из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором модифицируется не более число NA' значений выборок на одной стороне соответствующего одному из первого набора краев субблока внутри первого Р блока кодирования или второго Q блока кодирования, модифицируется не более число NB' значений выборок на другой стороне соответствующего одного из первого набора краев субблока, NA'= NB' = 7.applying a sixth filter to the sample values adjacent to each of the first set of subblock edges within the first P coding block and/or the second Q coding block in which at most NA' number of sample values on one side corresponding to one of the first set of subblock edges within the first P are modified coding block or the second Q coding block, no more than the number NB' of sample values on the other side of the corresponding one of the first set of sub-block edges is modified, NA'= NB' = 7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии множества краев субблока между субблоками внутри второго Q блока кодирования,In an exemplary form of implementing the method according to the thirteenth aspect as such, if there is no subblock edge between subblocks within the first P coding block, and if there are multiple subblock edges between subblocks within the second Q coding block,
этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, содержит:the step of performing deblocking filtering at sample values near each of the first set of subblock edges between subblocks within the first P coding block and/or the second Q coding block, comprising:
определение отфильтрованного значения выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования на основании следующего уравнения:filtered value definition samples of the corresponding sample of the current row or column of samples on the corresponding side of the vertical or horizontal sub-block edge within the second Q coding block based on the following equation:
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, в случае наличия множества краев субблока между субблоками внутри первого Р блока кодирования и при наличии множества краев субблока между субблоками внутри второго Q блока кодирования,In an exemplary form of implementing the method according to the thirteenth aspect as such, if there are multiple subblock edges between subblocks within the first P coding block and if there are multiple subblock edges between subblocks within the second Q coding block,
этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, содержит:the step of performing deblocking filtering at sample values near each of the first set of subblock edges between subblocks within the first P coding block and/or the second Q coding block, comprising:
определение отфильтрованного значения и выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования и первого Р блока кодирования соответственно на основании следующего уравнения:filtered value definition and samples of the corresponding sample of the current row or column of samples on the corresponding side of the vertical or horizontal edge of the sub-block within the second Q coding block and the first P coding block, respectively, based on the following equation:
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому способ дополнительно содержит:In a possible form of implementation of the method according to the thirteenth aspect, as such, the method further comprises:
определение, должен ли край блока между первым Р блоком кодирования и вторым Q блоком кодирования быть отфильтрован путем применения первого фильтра; иdetermining whether a block edge between the first P coding block and the second Q coding block should be filtered by applying the first filter; and
применение первого фильтра к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования должен быть отфильтрован применением первого фильтра, в котором модифицируется не более число МА значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок второго блока кодирования, смежного с краем блока на строку; или модифицируется не более число МА значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок первого блока кодирования, смежного с краем блока на строку, MA = 3 и MB = 7.applying a first filter to sample values near a block edge between the first P coding block and the second Q coding block, when it is determined that the block edge between the first P coding block and the second Q coding block is to be filtered by applying a first filter in which at most the number of MAs is modified sample values of the first coding block adjacent to the edge of the block per line, and modified by no more than the number MB of the values of the samples of the second coding block adjacent to the edge of the block per line; or at most the number MA of sample values of the second coding block adjacent to the block edge per line is modified, and at most the number MB of sample values of the first coding block adjacent to the edge of the block per line is modified, MA = 3 and MB = 7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, в случае наличия множества краев субблока между субблоками внутри первого блока кодирования, и наличия множества краев субблока между субблоками внутри второго блока кодирования, способ дополнительно содержит:In a possible form of implementing the method according to the thirteenth aspect as such, in the case of having a plurality of subblock edges between subblocks within a first coding block, and having a plurality of subblock edges between subblocks within a second coding block, the method further comprises:
определение края блока между первым блоком кодирования и вторым блоком кодирования, который должен быть отфильтрован путем применения второго фильтра; иdetermining a block edge between the first coding block and the second coding block to be filtered by applying the second filter; and
применение второго фильтра к значениям выборок около края блока, когда определено, что край блока между первым блоком кодирования и вторым блоком кодирования должен быть отфильтрован путем применения второго фильтра, в котором модифицируется число MA' значений выборок первого блока кодирования, смежного с краем блока, и модифицируется число МВ' значений выборок второго блока кодирования, смежного с краем блока, MA' = 3 и MB'= 3.applying a second filter to sample values near a block edge when it is determined that a block edge between the first coding block and the second coding block is to be filtered by applying a second filter that modifies the number MA' of sample values of the first coding block adjacent to the block edge, and the number MB' of sample values of the second coding block adjacent to the edge of the block is modified, MA'=3 and MB'=3.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри второго блока кодирования, модифицируются не более число МА значений выборок первого блока кодирования, смежного с краем блока на каждую строку, и модифицируется не более количество МВ значений выборок второго блока кодирования, смежного с краем блока на строку;In a possible form of implementing the method according to the thirteenth aspect, as such, in the absence of a subblock edge between subblocks within the second coding block, no more than the number MA of sample values of the first coding block adjacent to the block edge per line are modified, and no more than the number MB of sample values of the second coding block are modified. block coding adjacent to the edge of the block per line;
илиor
когда внутри первого блока кодирования нет края субблока между субблоками, модифицируется не более число MA значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число MB значений выборок первого блок кодирования, смежный с краем блока на строку, MA = 3 и MB = 7.when there is no subblock edge between subblocks within the first coding block, at most the number MA of sample values of the second coding block adjacent to the block edge per line is modified, and at most the number MB of sample values of the first coding block adjacent to the block edge per line is modified, MA = 3 and MB=7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, способ дополнительно содержит: определение, должен ли край блока между первым блоком кодирования и вторым блоком кодирования быть отфильтрован путем применения первого фильтра на основанииIn an exemplary form of implementing the method according to the thirteenth aspect as such, the method further comprises: determining whether a block edge between the first coding block and the second coding block is to be filtered by applying the first filter based on
- не более числа DA значений выборок первого блока кодирования, смежного с краем блока, в качестве значений принятия решения первого фильтра, DA = 4 и- no more than the number DA of sample values of the first coding block adjacent to the edge of the block as the decision values of the first filter, DA = 4 and
- не более числа DB значений выборок второго блока кодирования, смежного с краем блока, в качестве значений принятия решения второго фильтра, DB = 4.- no more than the number DB of sample values of the second coding block adjacent to the edge of the block as decision values of the second filter, DB = 4.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при наличии множества краев субблока между субблоками внутри второго Q блока кодирования, способ дополнительно содержит: определение, удовлетворено ли первое условие, определенное следующим первым уравнением:In an exemplary form of implementing the method according to the thirteenth aspect as such, if there are a plurality of subblock edges between subblocks within the second Q coding block, the method further comprises: determining whether the first condition defined by the following first equation is satisfied:
в котором β обозначает параметр порогового значения и qi представляют значения выборок второго Q блока кодирования, i = 0,1,2,3 и pj представляют значения выборок первого Р блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.in which β denotes the threshold parameter and q i represent the sample values of the second Q coding block, i = 0,1,2,3 and p j represent the sample values of the first P coding block, j = 0, 3, 4, 7 or j = 0, 2, 3, 5.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при наличии множества краев субблока между субблоками внутри первого Р блока кодирования, способ дополнительно содержит: определение, выполняется ли второе условие, определенное следующим вторым уравнением:In an exemplary form of implementing the method according to the thirteenth aspect as such, if there are a plurality of subblock edges between subblocks within the first P coding block, the method further comprises: determining whether the second condition defined by the following second equation is met:
в котором β обозначает параметр порогового значения и pi представляет значения выборок первого P блока кодирования, i = 0,1,2,3 и qj представляют значения выборок второго Q блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.where β denotes the threshold parameter and p i represents the sample values of the first P coding block, i = 0,1,2,3 and q j represent the sample values of the second Q coding block, j = 0, 3, 4, 7, or j = 0, 2, 3, 5.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому параметр β порогового значения определяется на основании параметра квантования, QP, ассоциированного с размером шага квантования множества выборок, или параметр β порогового значения определяется на основании параметра квантования, QP, с использованием справочной таблицы.In an exemplary embodiment of the method according to the thirteenth aspect, as such, the threshold parameter β is determined based on the quantization parameter, QP, associated with the quantization step size of the plurality of samples, or the threshold parameter β is determined based on the quantization parameter, QP, using a look-up table.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержит:In a possible form of implementing the method according to the thirteenth aspect, as such, if there is no subblock edge between subblocks within the first P coding block, and if there is a subblock edge between subblocks within the second Q coding block, the step of performing deblocking filtering at sample values near the block edge between the first P coding block and the second Q coding block contains:
определение отфильтрованного значения выборки первой выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборок на основании следующего уравнения:filtered value definition samples of the first sample of the current row or column of samples to the right or bottom of the vertical or horizontal edge between the first P coding block and the second Q coding block of samples based on the following equation:
; ;
илиor
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержит:In a possible form of implementing the method according to the thirteenth aspect, as such, if there is no subblock edge between subblocks within the first P coding block and if there is a subblock edge between subblocks within the second Q coding block, the step of performing deblocking filtering at sample values near the block edge between the first P block coding and the second Q coding block contains:
определение отфильтрованного значения выборки второй выборки текущей строки или столбца выборок справа или снизу от вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборки на основании следующего уравнения:filtered value definition samples of the second sample of the current row or column of samples to the right or below the vertical or horizontal edge between the first P coding block and the second Q sample coding block based on the following equation:
; ;
илиor
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержит:In a possible form of implementing the method according to the thirteenth aspect, as such, if there is no subblock edge between subblocks within the first P coding block and if there is a subblock edge between subblocks within the second Q coding block, the step of performing deblocking filtering at sample values near the block edge between the first P block coding and the second Q coding block contains:
определение отфильтрованного значения выборки третьей выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборки на основании следующего уравнения:filtered value definition samples of the third sample of the current row or column of samples to the right or bottom of the vertical or horizontal edge between the first P coding block and the second Q sample coding block based on the following equation:
; ;
илиor
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержит:In a possible form of implementing the method according to the thirteenth aspect, as such, if there is no subblock edge between subblocks within the first P coding block and if there is a subblock edge between subblocks within the second Q coding block, the step of performing deblocking filtering at sample values near the block edge between the first P block coding and the second Q coding block contains:
определение значения отфильтрованной выборки соответствующей выборки текущей строки или столбца выборок слева или вверху вертикального или горизонтального края между первым и вторым блоком кодирования на основании следующего уравнения:definition of value filtered sample of the corresponding sample of the current row or column of samples to the left or top of the vertical or horizontal edge between the first and second coding block based on the following equation:
, ,
, ,
, ,
, ,
, ,
, ,
, ,
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1…7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of a portion of the current row or column of samples of the second Q coding block, i, j = 0, 1...7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому способ дополнительно содержит:In a possible form of implementation of the method according to the thirteenth aspect, as such, the method further comprises:
определение, должен ли край блока между первым Р блоком кодирования и вторым Q блоком кодирования быть отфильтрован путем применения первого фильтра; иdetermining whether a block edge between the first P coding block and the second Q coding block should be filtered by applying the first filter; and
применение третьего фильтра к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования не должен фильтроваться путем применения первого фильтра, в котором модифицируется не более число MA значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируется не более число MB значений выборок второго блока кодирования, смежного с краем блока, на строку, MA = MB = 4.applying a third filter to the sample values near the block edge between the first P coding block and the second Q coding block, when it is determined that the block edge between the first P coding block and the second Q coding block is not to be filtered by applying a first filter in which at most a number is modified MA sample values of the first coding block adjacent to the block edge per line, and modified by no more than the number MB of sample values of the second coding block adjacent to the block edge per line, MA = MB = 4.
Способ согласно шестому или седьмому аспекту изобретения может быть выполнен устройством согласно первому аспекту изобретения. Дополнительные признаки и формы реализации способа согласно шестому или седьмому аспекту изобретения являются прямым результатом функциональности устройства согласно первому аспекту изобретения и его различных форм реализации.The method according to the sixth or seventh aspect of the invention may be carried out by the device according to the first aspect of the invention. Additional features and forms of implementation of the method according to the sixth or seventh aspect of the invention are a direct result of the functionality of the device according to the first aspect of the invention and its various forms of implementation.
Способ согласно восьмому аспекту изобретения может быть выполнен устройством согласно второму аспекту изобретения. Дополнительные признаки и формы реализации способа согласно восьмому аспекту изобретения являются прямым результатом функциональных возможностей устройства согласно второму аспекту изобретения и его различных форм реализации.The method according to the eighth aspect of the invention can be performed by the device according to the second aspect of the invention. Additional features and forms of implementation of the method according to the eighth aspect of the invention are a direct result of the functionality of the device according to the second aspect of the invention and its various forms of implementation.
Способ согласно тринадцатому аспекту изобретения может быть выполнен устройством согласно двенадцатому аспекту изобретения. Дополнительные признаки и формы реализации способа согласно восьмому аспекту изобретения являются прямым результатом функциональных возможностей устройства согласно второму аспекту изобретения и его различных форм реализации.The method according to the thirteenth aspect of the invention can be performed by the device according to the twelfth aspect of the invention. Additional features and forms of implementation of the method according to the eighth aspect of the invention are a direct result of the functionality of the device according to the second aspect of the invention and its various forms of implementation.
Согласно другому аспекту изобретение относится к устройству для декодирования видеопотока, включающему в себя процессор и память. В памяти хранятся инструкции, которые побуждают процессор выполнять способ удаления блочности согласно любой предшествующей реализации любого предшествующего аспекта или любого предыдущего аспекта как такового.According to another aspect, the invention relates to a device for decoding a video stream, including a processor and a memory. The memory stores instructions that cause the processor to execute the deblocking method according to any prior implementation of any prior aspect, or any prior aspect as such.
Согласно другому аспекту изобретение относится к устройству для кодирования видеопотока, включающему в себя процессор и память. В памяти хранятся инструкции, которые побуждает процессор выполнять способ удаления блочности согласно любой предшествующей реализации любого предшествующего аспекта или любого предыдущего аспекта как такового.According to another aspect, the invention relates to a device for encoding a video stream, including a processor and a memory. The memory stores instructions that cause the processor to execute the deblocking method according to any prior implementation of any prior aspect, or any prior aspect as such.
Согласно другому аспекту предлагается машиночитаемый носитель данных, на котором хранятся инструкции, которые при исполнении побуждают один или более процессоров выполнять кодирование видеоданных. Инструкции побуждают один или более процессоров выполнять способ удаления блочности согласно любой предшествующей реализации любого предыдущего аспекта или любого предшествующего аспекта как такового.According to another aspect, a computer-readable storage medium is provided that stores instructions that, when executed, cause one or more processors to encode video data. The instructions cause one or more processors to execute the deblocking method according to any prior implementation of any previous aspect, or any prior aspect as such.
Согласно другому аспекту обеспечивается компьютерный программный продукт с программным кодом для выполнения способа удаления блочности согласно любой предшествующей реализации любого предшествующего аспекта или любого предшествующего аспекта как такового, когда компьютерная программа выполняется на компьютере.According to another aspect, a computer program product is provided with program code for performing a deblocking method according to any prior implementation of any prior aspect, or any prior aspect as such, when a computer program is executed on a computer.
Подробности одного или нескольких вариантов осуществления изложены на прилагаемых чертежах и в описании ниже. Другие признаки, объекты и преимущества будут очевидны из описания, чертежей и формулы изобретения.Details of one or more embodiments are set forth in the accompanying drawings and in the description below. Other features, objects and advantages will be apparent from the description, drawings and claims.
Краткое описание чертежейBrief description of the drawings
Следующие варианты осуществления изобретения описаны более подробно со ссылкой на прилагаемые чертежи, на которых:The following embodiments of the invention are described in more detail with reference to the accompanying drawings, in which:
Фиг.1 является блок-схемой, показывающей пример видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;1 is a block diagram showing an example of a video encoder capable of implementing embodiments of the invention;
Фиг.2 является блок-схемой, показывающей примерную структуру видеодекодера, выполненного с возможностью реализации вариантов осуществления изобретения;2 is a block diagram showing an exemplary structure of a video decoder capable of implementing embodiments of the invention;
Фиг.3 является блок-схемой, показывающей пример системы кодирования видео, выполненной с возможностью реализации вариантов осуществления изобретения;3 is a block diagram showing an example of a video coding system capable of implementing embodiments of the invention;
Фиг.4 показывает два примерных блока кодирования, в которых Q блок кодирования использует инструменты субблока (в общем, sub-block tools);4 shows two exemplary coding blocks in which the Q coding block uses sub-block tools (in general, sub-block tools);
Фиг.5 показывает два примерных блока кодирования и соответствующие значения выборок, используемые и модифицируемые во время фильтрации с помощью примерного способа, показанного на фиг. 10;FIG. 5 shows two exemplary coding blocks and corresponding sample values used and modified during filtering using the exemplary method shown in FIG. ten;
Фиг.6 показывает первый вариант осуществления устройства фильтра удаления блочности согласно вариантам осуществления изобретения;6 shows a first embodiment of a deblocking filter apparatus according to embodiments of the invention;
Фиг.7 показывает блок-схему алгоритма, иллюстрирующую способ определения, следует ли использовать более длинный отводной фильтр;7 shows a flowchart illustrating a method for determining whether to use a longer tap filter;
Фиг.8 показывает блок-схему алгоритма, иллюстрирующую способ определения, удовлетворяется ли условие HEVC сильного фильтра;8 shows a flowchart illustrating a method for determining whether a strong filter condition HEVC is satisfied;
Фиг.9 показывает два примерных блока кодирования и значений выборок, используемых и модифицированных во время фильтрации согласно другому варианту осуществления изобретения, и9 shows two exemplary blocks of coding and sample values used and modified during filtering according to another embodiment of the invention, and
Фиг.10 показывает блок-схему алгоритма, изображающую примерный процесс повышения эффективности фильтрации удаления блочности;10 shows a flowchart depicting an exemplary process for improving deblocking filtering efficiency;
Фиг.11A показывает блок-схему алгоритма, изображающую примерный процесс повышения эффективности фильтрации удаления блочности;11A shows a flowchart depicting an exemplary process for improving deblocking filtering efficiency;
Фиг.11B показывает блок-схему алгоритма, изображающую примерный процесс повышения эффективности фильтрации удаления блочности;11B shows a flowchart depicting an exemplary process for improving deblocking filtering efficiency;
Фиг.12 показывает блок-схему алгоритма, изображающую примерный процесс повышения эффективности фильтрации удаления блочности;12 is a flowchart showing an exemplary process for improving deblocking filtering efficiency;
Фиг.13 показывает упрощенную блок-схему устройства 1300, которое может использоваться в качестве одного или обоих из устройства 310 источника и устройства 320 назначения с фиг.3 согласно примерному варианту осуществления;FIG. 13 shows a simplified block diagram of a
Фиг.14 представляет схему устройства для кодирования видео;Fig. 14 is a diagram of a device for video encoding;
Фиг.15 показывает, как может быть применен удаление блочности ко всем внутренним краям субблоков, которые находятся в сетке 16 x 16,Fig. 15 shows how deblocking can be applied to all inner edges of sub-blocks that are in a 16 x 16 grid,
Фиг.16 показывает способ применения HEVC удаления блочности ко всем внутренним краям субблоков, кроме краев первого и последнего субблоков;16 shows a method for applying HEVC deblocking to all inner edges of subblocks except the edges of the first and last subblocks;
Фиг.17 показывает два примерных субблока внутри блока кодирования, в котором блок кодирования использует инструменты субблоков;17 shows two exemplary sub-blocks within an encoding block in which the encoding block uses sub-block tools;
Фиг.18 показывает примерные субблоки внутри блока кодирования, в котором блок кодирования использует инструменты субблоков, в которых каждый из этих субблоков использует отдельные векторы движения; и18 shows exemplary sub-blocks within an encoding block, in which the encoding block uses sub-block tools, in which each of these sub-blocks uses separate motion vectors; and
Фиг.19 иллюстрирует выборки изображений горизонтальных и вертикальных границ блока на сетке 8 * 8.Fig. 19 illustrates image samples of horizontal and vertical block boundaries on an 8*8 grid.
Далее идентичные ссылочные позиции относятся к идентичным или, по меньшей мере, функционально эквивалентным элементам. Частично на разных чертежах использовались разные ссылочные позиции, относящиеся к одним и тем же объектам.In the following, identical reference numerals refer to identical or at least functionally equivalent elements. In part, different reference numbers have been used in different drawings referring to the same objects.
Осуществление изобретенияImplementation of the invention
Нижеследующее описание приведено со ссылкой на сопроводительные чертежи, которые составляют часть настоящего изобретения и показывают в качестве иллюстрации конкретные аспекты вариантов осуществления изобретения или конкретные аспекты, в которых могут использоваться варианты осуществления настоящего изобретения. Очевидно, что варианты осуществления изобретения могут использоваться в других аспектах и содержать структурные или логические изменения, не изображенные на чертежах. Поэтому нижеследующее подробное описание не следует рассматривать в ограничительном смысле, и объем настоящего изобретения определяется прилагаемой формулой изобретения.The following description is given with reference to the accompanying drawings, which form part of the present invention and show, by way of illustration, specific aspects of embodiments of the invention or specific aspects in which embodiments of the present invention may be used. Obviously, embodiments of the invention can be used in other aspects and contain structural or logical changes not shown in the drawings. Therefore, the following detailed description should not be considered in a limiting sense, and the scope of the present invention is determined by the appended claims.
Например, понятно, что настоящее изобретение раскрывает способ, который также может быть использован для соответствующего устройства или системы, выполненной с возможностью выполнять способ, и vice versa. Например, если описан один или более конкретных этапов способа, соответствующее устройство может включать в себя один или более блоков, например, функциональные блоки для выполнения описанного одного или множества этапов способа (например, один блок, выполняющий один или множество этапов, или множество блоков, каждый из которых выполняет один или более из множества этапов) даже, если на чертежах такой один или более блоков явно не описаны и не проиллюстрированы. С другой стороны, например, если конкретное устройство описано на основании одного или множества блоков, например, функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функциональные возможности одного или множества блоков, или множество этапов, каждый из которых выполняет функциональные возможности одного или нескольких из множество блоков) даже, если на чертежах такой один или множество этапов явно не описаны или не проиллюстрированы. Кроме того, следует понимать, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.For example, it is understood that the present invention discloses a method that can also be used for a corresponding device or system capable of performing the method, and vice versa. For example, if one or more specific method steps are described, the corresponding apparatus may include one or more blocks, such as functional blocks for performing one or more method steps described (for example, one block performing one or more steps, or a plurality of blocks each of which performs one or more of a plurality of steps) even if such one or more units are not explicitly described or illustrated in the drawings. On the other hand, for example, if a particular device is described in terms of one or more blocks, such as functional blocks, the corresponding method may include one step to perform the functionality of one or more blocks (for example, one step to perform the functionality of one or more blocks). blocks, or a plurality of steps, each of which performs the functionality of one or more of the plurality of blocks) even if such one or more steps are not explicitly described or illustrated in the drawings. In addition, it should be understood that features of the various exemplary embodiments and/or aspects described herein may be combined with each other unless specifically noted otherwise.
Кодирование видео обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. Вместо термина «изображение» термины «кадр» или «изображение» могут использоваться как синонимы в области кодирования видео. Кодирование видео содержит две части: кодирование видео и декодирование видео. Кодирование видео выполняется на стороне источника, как правило, содержащее обработку (например, путем сжатия) исходных видеоизображений для уменьшения объема данных, необходимых для представления видеоизображений (для более эффективного хранения и/или передачи). Декодирование видео выполняется на стороне назначения и обычно содержит обратную обработку по сравнению с кодером для восстановления видеоизображений. Варианты осуществления, относящиеся к «кодированию» видеоизображений (или изображений в целом, как будет объяснено позже), следует понимать, как относящиеся как к «кодированию», так и «декодированию» видеоизображений. Комбинация части кодирования и части декодирования также называется CODEC (Coding and Decoding).Video coding generally refers to the processing of a sequence of images that form a video or video sequence. Instead of the term "picture", the terms "frame" or "picture" may be used interchangeably in the field of video coding. Video encoding contains two parts: video encoding and video decoding. Video encoding is performed at the source side, typically involving processing (eg, by compressing) the original video images to reduce the amount of data needed to represent the video images (for more efficient storage and/or transmission). Video decoding is performed on the destination side and usually contains inverse processing compared to the encoder for recovering video images. Embodiments relating to "coding" of video images (or images in general, as will be explained later) should be understood to refer to both "coding" and "decoding" of video images. The combination of an encoding part and a decoding part is also called CODEC (Coding and Decoding).
В случае кодирования видео без потерь исходные видеоизображения могут быть восстановлены, т.е. восстановленные видеоизображения имеют то же качество, что и исходные видеоизображения (при условии отсутствия потерь при передаче или других потерь данных во время хранения или передачи). В случае кодирования видео с потерями выполняется дополнительное сжатие, например, посредством квантования для уменьшения количества данных, представляющих видеоизображения, которые не могут быть полностью восстановлены в декодере, т.е. качество восстановленных видеоизображений ниже или хуже по сравнению с качеством исходных видеоизображений.In the case of lossless video coding, the original video images can be reconstructed, i.e. the restored video images have the same quality as the original video images (assuming no transmission loss or other data loss during storage or transmission). In the case of lossy video coding, additional compression is performed, for example by quantization, to reduce the amount of data representing video images that cannot be fully reconstructed in the decoder, i.e. the quality of the restored video images is lower or worse than the quality of the original video images.
Несколько стандартов кодирования видео, начиная с H.261, принадлежат к группе «гибридных видеокодеков с потерями» (т.е. объединяют пространственное и временное предсказание в области выборки и кодирование с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, видео обычно обрабатывается в кодере, то есть, кодируется на уровне блока (видеоблока), например, используя пространственное (внутреннее изображение) предсказание и временное (внешнее изображение) предсказание для генерирования блока предсказания, вычитание блока предсказания из текущего блока (блок, который в настоящее время обрабатывается/будет обработан) для получения остаточного блока, преобразование остаточного блока и квантование остаточного блока в области преобразования для уменьшения объема данных, которые должны быть переданы (сжатие), тогда как для представления применяется обратная обработка в декодере по сравнению с кодером к закодированному или сжатому блоку для восстановления текущего блока. Кроме того, кодер дублирует цикл обработки декодера, так что оба будут генерировать идентичные предсказания (например, внутреннее и внешнее предсказание) и/или восстановление для обработки, то есть, кодирования, последующих блоков.Several video coding standards, starting with H.261, belong to the group of "hybrid lossy video codecs" (ie, combine spatial and temporal sample-domain prediction and 2D transform coding to apply transform-domain quantization). Each picture of a video sequence is usually divided into a set of non-overlapping blocks, and encoding is usually done at the block level. In other words, the video is usually processed in the encoder, that is, encoded at the block (video block) level, for example, using spatial (inner picture) prediction and temporal (outer picture) prediction to generate a prediction block, subtracting the prediction block from the current block (block, which is currently being processed/will be processed) to obtain a residual block, transforming the residual block, and quantizing the residual block in the transform domain to reduce the amount of data that must be transmitted (compression), while the representation is back-processed in the decoder compared to the encoder to the encoded or compressed block to reconstruct the current block. In addition, the encoder duplicates the processing cycle of the decoder so that both will generate identical predictions (eg, intra and inter prediction) and/or reconstruction for processing, i.e. encoding, subsequent blocks.
Поскольку обработка видеоизображения (также называемая обработкой движущегося изображения) и обработка неподвижного изображения (термин обработка, содержащая кодирование) имеют много общих концепций и технологий или инструментов, в дальнейшем термин «изображение» используется для обозначения видеоизображения видеопоследовательность (как объяснено выше) и/или неподвижное изображение, чтобы избежать ненужных повторов и различий между видеоизображениями и неподвижными изображениями, в котором это не обязательно. Если описание относится только к неподвижным изображениям (или неподвижным изображениям), следует использовать термин «неподвижное изображение».Since video image processing (also called moving image processing) and still image processing (the term processing containing encoding) have many common concepts and technologies or tools, in the following, the term “image” is used to refer to a video image, a video sequence (as explained above) and/or a still image. image to avoid unnecessary repetition and differences between video images and still images in which this is not necessary. If the description refers only to still images (or still images), the term "still image" should be used.
В следующих вариантах осуществления кодера 100, декодера 200 и системы 300 кодирования описываются на основании фиг.1-3 перед более подробным описанием вариантов осуществления изобретения на основании фиг. 4-14.In the following embodiments,
Фиг.3 представляет собой концептуальную или схематическую блок-схему, иллюстрирующую вариант осуществления системы 300 кодирования, например, системы 300 кодирования изображений, в котором система 300 кодирования содержит устройство 310 источника, выполненное с возможностью предоставлять кодированные данные 330, например, закодированное изображение 330, например, в устройство 320 назначения для декодирования закодированных данных 330.3 is a conceptual or schematic block diagram illustrating an embodiment of an
Устройство 310 источника содержит кодер 100 или блок 100 кодирования и может дополнительно, т.е. возможно, содержать источник 312 изображения, блок 314 предварительной обработки, например, блок 314 предварительной обработки изображения и интерфейс связи или блок 318 связи.
Источник 312 изображения может содержать или быть устройством захвата изображения любого типа, например, для захвата изображения реального мира и/или устройством генерирования изображения любого типа, например, процессором компьютерной графики для генерирования компьютерного анимированного изображения, или устройством любого типа для получения и/или предоставления реального изображения, компьютерного анимированного изображения (например, контента экрана, изображения виртуальной реальности (VR)) и/или любой их комбинации (например, изображения дополненной реальности (AR)). В дальнейшем все эти виды изображений и любые другие изображения будут называться «изображение» или «кадр», если специально не указано иное, в то время как предшествующие пояснения в отношении термина «изображение» охватывают «видеоизображения» и «неподвижные изображения» по-прежнему остаются в силе, если явно не указано иное.Image source 312 may comprise or be any type of image capture device, such as for capturing a real world image, and/or any type of image generating device, such as a computer graphics processor for generating a computer animated image, or any type of device for receiving and/or providing real image, computer animated image (eg, screen content, virtual reality (VR) image), and/or any combination thereof (eg, augmented reality (AR) image). In the following, all these types of images and any other images will be referred to as "image" or "frame", unless specifically indicated otherwise, while the foregoing explanations regarding the term "image" cover "video images" and "still images" as before. remain in effect unless expressly stated otherwise.
(Цифровое) изображение представляет собой или может рассматриваться как двумерный массив или матрицу выборок со значениями интенсивности. Выборка в массиве также может называться пикселем (сокращенная форма элемента изображения) или пикселем. Количество выборок в горизонтальном и вертикальном направлении (или по оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, то есть, изображение может быть представлено или включать в себя три массива выборок. В формате RGB или цветовом пространстве изображение содержит соответствующий массив выборок красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости/цветности или цветовом пространстве, например YCbCr, который содержит компонент яркости, обозначенный Y (иногда вместо него также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (сокращенно от яркости) представляет яркость или интенсивность уровня серого (например, как в полутоновом изображении), в то время как два компонента цветности (сокращенно от цветности) Cb и Cr представляют компоненты информации цветности или цвета. Соответственно, изображение в формате YCbCr содержит массив выборок яркости значений (Y) выборок яркости и два массива выборок цветности значений (Cb и Cr) цветности. Изображения в формате RGB могут быть преобразованы или преобразованы в формат YCbCr и наоборот, этот процесс также известен как преобразование цвета или конверсия. Если изображение является монохромным, оно может содержать только массив выборок яркости.A (digital) image is, or can be viewed as, a two-dimensional array or matrix of samples with intensity values. A sample in an array can also be called a pixel (short for picture element) or a pixel. The number of samples in the horizontal and vertical direction (or axis) of the array or image determines the size and/or resolution of the image. Three color components are typically used to represent a color, that is, an image can be represented by or include three arrays of samples. In RGB format or color space, an image contains a corresponding array of red, green, and blue color samples. However, in video encoding, each pixel is typically represented in a luma/chrominance format or color space, such as YCbCr, which contains a luminance component labeled Y (sometimes L is also used instead) and two chrominance components labeled Cb and Cr. The luminance Y component (short for luminance) represents the brightness or intensity of the gray level (eg, as in a grayscale image), while the two chrominance components (short for chrominance) Cb and Cr represent components of chrominance or color information. Accordingly, an image in YCbCr format contains an array of luminance samples of values (Y) of luminance samples and two arrays of chrominance samples of chrominance values (Cb and Cr). RGB images can be converted or converted to YCbCr format and vice versa, this process is also known as color conversion or conversion. If the image is monochrome, it can only contain an array of brightness samples.
Источник 312 изображения может быть, например, камерой для захвата изображения, памятью, например, памятью изображения, содержащую или хранящую ранее захваченное или сгенерированное изображение, и/или интерфейс любого типа (внутренний или внешний) для получения или приема изображения. Камера может быть, например, локальной или интегрированной камерой, интегрированной в устройство источника, память может быть локальной или интегрированной памятью, например, интегрированной в устройство источника. Интерфейс может быть, например, внешним интерфейсом для приема изображения от внешнего источника видео, например, внешнего устройства захвата изображения, такого как камера, внешней памяти или внешнего устройства генерирования изображения, например, внешнего компьютерного графического процессора, компьютера или сервера. Интерфейс может быть любым, например, проводным или беспроводным интерфейсом, оптическим интерфейсом в соответствии с любым проприетарным или стандартизованным протоколом интерфейса. Интерфейс для получения данных 312 изображения может быть тем же интерфейсом, что и интерфейс 318 связи, или его частью.Image source 312 may be, for example, a camera for capturing an image, a memory, such as an image memory, containing or storing a previously captured or generated image, and/or any type of interface (internal or external) for acquiring or receiving an image. The camera may be, for example, a local or integrated camera integrated into the source device, the memory may be local or integrated memory, for example, integrated into the source device. The interface may be, for example, an external interface for receiving an image from an external video source, such as an external image capturing device such as a camera, external memory, or an external image generating device, such as an external computer GPU, computer, or server. The interface may be any, such as a wired or wireless interface, an optical interface in accordance with any proprietary or standardized interface protocol. The interface for obtaining image data 312 may be the same interface as the
В отличие от блока 314 предварительной обработки и обработки, выполняемой блоком 314 предварительной обработки, изображение или данные 313 изображения также могут называться необработанным изображением или данными 313 необработанного изображения.Unlike the preprocessor 314 and the processing performed by the preprocessor 314, the image or
Блок 314 предварительной обработки выполнен с возможностью принимать (необработанные) данные 313 изображения и выполнять предварительную обработку данных 313 изображения для получения предварительно обработанного изображения 315 или предварительно обработанных данных 315 изображения. Предварительная обработка выполняется блоком 314 предварительной обработки и может, например, включать в себя обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или устранение шумов.The pre-processor 314 is configured to receive (raw)
Кодер 100 выполнен с возможностью принимать предварительно обработанные данные 315 изображения и предоставлять данные 171 кодированного изображения (дополнительные подробности будут описаны, например, со ссылкой на фиг.1).The
Интерфейс 318 связи устройства 310 источника может быть выполнен с возможностью принимать данные 171 закодированного изображения и напрямую передавать их на другое устройство, например, устройство 320 назначения или любое другое устройство для хранения или прямого восстановления или для обработки данных 171 кодированного изображения, соответственно, до сохранения кодированных данных 330 и/или передачи кодированных данных 330 на другое устройство, например, устройство 320 назначения или любое другое устройство для декодирования или сохранения.The
Устройство 320 назначения содержит декодер 200 или блок 200 декодирования и может дополнительно, т.е. возможно, содержать интерфейс связи или блок 322 связи, процессор 326 постобработки и устройство 328 отображения.
Интерфейс 322 связи устройства 320 назначения выполнен с возможностью принимать данные 171 кодированного изображения или кодированные данные 330, например, непосредственно из устройства 310 источника или из любого другого источника, например, память, например, память данных закодированного изображения.The
Интерфейс 318 связи и интерфейс 322 связи могут быть выполнены с возможностью передавать, соответственно, принимать данные 171 кодированного изображения или закодированные данные 330 через прямую линию связи между устройством 310 источника и устройством 320 назначения, например, по прямому проводному или беспроводному соединению или через любую сеть, например, проводную или беспроводную сеть или любую их комбинацию, или любую частную сеть и сеть общего пользования, или любую их комбинацию.
Интерфейс 318 связи может быть, например, выполнен с возможностью упаковывать данные 171 закодированного изображения в соответствующий формат, например, пакеты для передачи по каналу связи или сети связи и могут дополнительно содержать защиту от потери данных и восстановление после потери данных.The
Интерфейс 322 связи, образующий аналог интерфейса 318 связи, может быть, например, выполнен с возможностью распаковывать закодированные данные 330 для получения данных 171 закодированного изображения, а также может быть выполнен с возможностью выполнения защиты от потери данных и восстановления после потери данных, например, содержащую маскировку ошибок.
И интерфейс 318 связи, и интерфейс 322 связи могут быть сконфигурированы как однонаправленные интерфейсы связи, как показано стрелкой для данных 330 закодированного изображения на фиг.3, указывающей от устройства 310 источника к устройству 320 назначения, или как двунаправленные интерфейсы связи, и могут быть выполнены с возможностью, например, отправлять и принимать сообщения, например, для установки соединения, подтверждения и/или повторной отправки потерянных или задержанных данных, включающие в себя данные изображения, и обмена любой другой информацией, относящейся к каналу связи и/или передаче данных, например, передача данных закодированного изображения.Both the
Декодер 200 выполнен с возможностью принимать данные 171 кодированного изображения и предоставлять данные 231 декодированного изображения или декодированного изображения 231 (дополнительные подробности будут описаны, например, со ссылкой на фиг. 2).The
Блок 326 постобработки устройства 320 назначения выполнен с возможностью выполнять пост-обработку данных 231 декодированного изображения, например, декодированного изображения 231, для получения данных 327 изображения после обработки, например, пост-обработанное изображение 327. Постобработка, выполняемая блоком 326 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекция, обрезка или повторная выборка, или любая другая обработка, например, для подготовки данных 231 декодированного изображения для отображения, например, с помощью устройства 328 отображения.The post-processing unit 326 of the
Устройство 328 отображения устройства 320 назначения выполнено с возможностью принимать данные 327 изображения с постобработкой для отображения изображения, например, пользователю или зрителю. Устройство 328 отображения может быть или содержать любой вид дисплея для представления восстановленного изображения, например, встроенный или внешний дисплей или монитор. Дисплеи могут, например, состоят из электронно-лучевых трубок (CRT), жидкокристаллических дисплеев (LCD), плазменных дисплеев, дисплеев на органических светодиодах (OLED) или любых других дисплеев… луча, голограммы (3D),…The display device 328 of the
Хотя фиг.3 изображает устройство 310 источника и устройство 320 назначения как отдельные устройства, варианты осуществления устройств также могут содержать как функциональные возможности устройства 310 источника, так и соответствующие функциональные возможности устройства 320 назначения. В таких вариантах осуществления устройство 310 источника или соответствующие функциональные возможности и устройство 320 назначения или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или с помощью отдельного аппаратного и/или программного обеспечения или любой их комбинации.Although FIG. 3 depicts
Как будет очевидно для специалиста на основании описания, наличие и (точное) разделение функциональных возможностей различных блоков или функций в устройстве 310 источника и/или устройстве 320 назначения, как показано на фиг.3, может варьироваться в зависимости от фактического устройства и приложения.As will be apparent to those skilled in the art based on the description, the presence and (exact) separation of functionality of various blocks or functions in
Следовательно, устройство 310 источника и устройство 320 назначения, как показано на фиг.3, являются просто примерными вариантами осуществления изобретения, и варианты осуществления изобретения не ограничиваются показанными на фиг. 3.Therefore,
Устройство 310 источника и устройство 320 назначения могут содержать любое из широкого диапазона устройств, включающие в себя любые виды портативных или стационарных устройств, например, ноутбуки или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, телевизионные приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства потоковой передачи видео, устройства приемника вещания и т.д. (также серверы и рабочие станции для крупномасштабного профессионального кодирования/декодирования, например, сетевые объекты) и могут не использовать операционную систему любого типа или не использовать ее.
На фиг.1 показана схематическая/концептуальная блок-схема варианта осуществления кодера 100, например, кодера 100 изображений, который содержит вход 102, блок 104 вычисления остатка, блок 106 преобразования, блок 108 квантования, блок 110 обратного квантования и блок 112 обратного преобразования, блок 114 восстановления, буфер 118, контурный фильтр 120, буфер 130 декодированных изображений (DPB), блок 160 предсказания [блок 142 внешней оценки, блок 144 внешнего предсказания, блок 152 внутренней оценки, блок 154 внутреннего предсказания, блок 162 выбора режима], блок 170 энтропийного кодирования и выход 172. Видеокодер 100, показанный на фиг.1, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.Figure 1 shows a schematic/conceptual block diagram of an embodiment of an
Например, блок 104 вычисления остатка, блок 106 преобразования, блок 108 квантования и блок 170 энтропийного кодирования образуют прямой тракт сигнала кодера 100, тогда как, например, блок 110 обратного квантования, блок 112 обратного преобразования, блок 114 восстановления, буфер 118, контурный фильтр 120, буфер 130 декодированных изображений (DPB), блок 144 внешнего предсказания и блок 154 внутреннего предсказания образуют обратный тракт сигнала кодера, в котором обратный тракт сигнала кодера соответствует тракту сигнала декодера (см. декодер 200 на фиг. 2).For example, the
Кодер выполнен с возможностью принимать, например, через вход 102, изображение 101 или блок 103 изображения изображения 101, например, изображение последовательности изображений, образующих видео или видеопоследовательность. Блок 103 изображения также может называться текущим блоком изображения или блоком изображения, подлежащим кодированию, и изображение 101 является текущим изображением или изображением, которое подлежит кодированию (в частности, при кодировании видео для отличия текущего изображения от других изображений, например, ранее закодированных и/или декодированные изображения одной и той же видеопоследовательности, т.е. видеопоследовательности, которая также содержит текущее изображение).The encoder is configured to receive, for example, via
Варианты осуществления кодера 100 могут содержать блок разделения (не показан на фиг. 1), например, который также может называться блоком разделения изображения, выполненный с возможностью разделять изображение 103 на множество блоков, например, блоки, подобные блоку 103, обычно на множество неперекрывающихся блоков. Блок разделения может быть выполнен с возможностью использовать один и тот же размер блока для всех изображений видеопоследовательности и соответствующую сетку, определяющую размер блока, или изменять размер блока между изображениями или подмножествами или группами изображений, а также разделять каждое изображение на соответствующие блоки.Embodiments of
Подобно изображению 101, блок 103 снова является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение 101. Другими словами, блок 103 может содержать, например, один массив выборок (например, массив яркости в случае монохромного изображения 101) или три массива выборок (например, массив яркости и два массива цветности в случае цветного изображения 101) или любое другое количество и/или тип массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлении (или по оси) блока 103 определяет размер блока 103.Like
Кодер 100, как показано на фиг.1, выполнен с возможностью кодировать изображение 101 блок за блоком, например, кодирование и предсказание выполняется в блоке 103.The
Блок 104 вычисления остатка выполнен с возможностью вычислять остаточный блок 105 на основании блока 103 изображения и блока 165 предсказания (дополнительные подробности о блоке 165 предсказания предоставлены позже), например, путем вычитания значений выборок блока 165 предсказания из значений выборок блока 103 изображения, выборка за выборкой (пиксель за пикселем) для получения остаточного блока 105 в области выборки.
Блок 106 преобразования выполнен с возможностью применять преобразования, например, пространственно-частотное преобразование или линейное пространственное преобразование, например дискретное косинусное преобразование (DCT) или дискретное синусоидальное преобразование (DST) на значениях выборки остаточного блока 105 для получения преобразованных коэффициентов 107 в области преобразования. Преобразованные коэффициенты 107 могут также называться преобразованными остаточными коэффициентами и представлять остаточный блок 105 в области преобразования.
Блок 106 преобразования может быть выполнен с возможностью применять целочисленные аппроксимации DCT/DST, таких как базовые преобразования, определенные для HEVC/H.265. По сравнению с ортонормированным DCT преобразованием такие целочисленные аппроксимации обычно масштабируются определенным коэффициентом. Чтобы сохранить норму остаточного блока, который обрабатывается прямым и обратным преобразованиями, дополнительные коэффициенты масштабирования применяются как часть процесса преобразования. Коэффициенты масштабирования обычно выбираются на основании определенных ограничений, таких как коэффициенты масштабирования, равные степени два для операции сдвига, битовая глубина преобразованных коэффициентов, компромисс между точностью и затратами на реализацию и т.д. Могут быть определены, соответственно, конкретные коэффициенты масштабирования, например, которые указываются для обратного преобразования, например, блоком 212 обратного преобразования в декодере 200 (и соответствующим обратным преобразованием, например, блоком 112 обратного преобразования в кодере 100) и соответствующими масштабными коэффициентами для прямого преобразования, например, с помощью блока 106 преобразования в кодере 100.
Блок 108 квантования выполнен с возможностью квантовать преобразованные коэффициенты 107 для получения квантованных коэффициентов 109, например, путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 109 также могут называться квантованными остаточными коэффициентами 109. Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньшие размеры шагов квантования соответствуют более тонкому квантованию, тогда как большие размеры шагов квантования соответствуют более грубому квантованию. Применимый размер шага квантования может быть указан параметром квантования (QP). Параметр квантования может, например, быть индексом для заранее определенного набора применимых размеров шага квантования. Например, малые параметры квантования могут соответствовать точному квантованию (малые размеры шагов квантования) и большие параметры квантования могут соответствовать грубому квантованию (большие размеры шагов квантования) или наоборот. Квантование может включать в себя деление по размеру шага квантования и соответствующее обратное деквантование, например, посредством блока 110 обратного квантования, может включать в себя умножение на размер шага квантования.
Варианты осуществления согласно HEVC могут быть сконфигурированы для использования параметра квантования для определения размера шага квантования. Как правило, размер шага квантования может быть вычислен на основании параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающей в себя деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования для восстановления нормы остаточного блока, который может быть модифицирован масштабированием, используемого в аппроксимации с фиксированной точкой уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантования могут быть объединены. В качестве альтернативы могут использоваться настроенные таблицы квантования и сигнализироваться из кодера к декодеру, например, в битовом потоке. Квантование является операцией с потерями, в котором потери возрастают с увеличением размеров шагов квантования.Embodiments according to HEVC may be configured to use a quantization parameter to determine the quantization step size. Typically, the quantization step size can be calculated based on the quantization parameter using a fixed-point approximation of an equation involving division. Additional scaling factors may be introduced for quantization and dequantization to recover the residual block norm, which may be modified by the scaling used in the fixed-point approximation of the equation for quantization step size and quantization parameter. In one exemplary implementation, inverse transform scaling and dequantization may be combined. Alternatively, customized quantization tables can be used and signaled from the encoder to the decoder, for example, in a bitstream. Quantization is a lossy operation in which the loss increases with increasing quantization step sizes.
Варианты осуществления кодера 100 (или, соответственно, блок 108 квантования) могут быть выполнены с возможностью выводить схему квантования и размер шага квантования, например, с помощью соответствующего параметра квантования, так что декодер 200 может принимать и применять соответствующее обратное квантование. Варианты осуществления кодера 100 (или блока 108 квантования) могут быть выполнены с возможностью выводить схему квантования и размер шага квантования, например, кодируется непосредственно или энтропийно через блок 170 энтропийного кодирования или любой другой блок энтропийного кодирования.Embodiments of encoder 100 (or
Блок 110 обратного квантования выполнен с возможностью применять обратное квантование блока 108 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 111, например, путем применения схемы, обратной схемы квантования, применяемой блоком 108 квантования, на основании или с использованием того же размера шага квантования, что и блок 108 квантования. Деквантованные коэффициенты 111 также могут называться деквантованными остаточными коэффициентами 111 и соответствуют, хотя обычно они не идентичны преобразованным коэффициентам из-за потери при квантовании, преобразованным коэффициентам 108.The
Блок 112 обратного преобразования выполнен с возможностью применять обратное преобразование, применяемого блоком 106 преобразования, например, обратное дискретное косинусное преобразование (DCT) или обратное дискретное синусоидальное преобразование (DST) для получения блока 113 обратного преобразования в области выборки. Блок 113 обратного преобразования также может упоминаться как деквантованный блок 113 обратного преобразования или остаточный блок 113 обратного преобразования.The
Блок 114 восстановления выполнен с возможностью объединять блок 113 обратного преобразования и блок 165 предсказания для получения восстановленного блока 115 в области выборки, например, путем дискретного сложения значений выборок декодированного остаточного блока 113 и значений выборок блока 165 предсказания.
Буферный блок 116 (или кратко «буфер» 116), например, строчный буфер 116 выполнен с возможностью буферизировать или хранить восстановленный блок и соответствующие значения выборок, например, для внутренней оценки и/или внутреннего предсказания. В дополнительных вариантах осуществления кодер может быть выполнен с возможностью использовать нефильтрованные восстановленные блоки и/или соответствующие значения выборок, хранящиеся в блоке 116 буфера, для любого вида оценки и/или предсказания.Buffer block 116 (or "buffer" 116 for short), eg,
Варианты осуществления кодера 100 могут быть сконфигурированы так, что, например, блок 116 буфера используется не только для хранения восстановленных блоков 115 для внутренней оценки 152 и/или внутреннего предсказания 154, но также для блока 120 контурного фильтра (не показан на фиг.1) и/или такого, что, например, блок 116 буфера и буфер 130 декодированного изображения образуют один буфер. Дополнительные варианты осуществления могут быть выполнены с возможностью использовать фильтрованные блоки 121 и/или блоки или выборки из буфера 130 декодированных изображений (оба не показаны на фиг.1) в качестве входных данных или основы для внутренней оценки 152 и/или внутреннего предсказания 154.Embodiments of
Блок 120 контурного фильтра (или кратко «контурный фильтр» 120) выполнен с возможностью фильтрации восстановленного блока 115 для получения отфильтрованного блока 121, например, путем применения фильтра удаления блочности с адаптивным смещением (SAO) или других фильтров, например, фильтры повышения резкости или сглаживания или совместные фильтры. Отфильтрованный блок 121 также может называться отфильтрованным восстановленным блоком 121. Контурный фильтр 120 далее также называется фильтром удаления блочности. Дополнительные подробности блока 120 контурного фильтра будут описаны ниже, например, на основании фиг. 6 или фиг.7 или фиг.10-фиг.12.The loop filter block 120 (or "loop filter" 120 for short) is configured to filter the
Варианты осуществления блока 120 контурного фильтра могут содержать (не показаны на фиг.1) блок анализа фильтра и блок фактического фильтра, в котором блок анализа фильтра выполнен с возможностью определять параметры контурного фильтра для фактического фильтра. Блок анализа фильтра может быть выполнен с возможностью применять фиксированные заранее определенные параметры фильтра к фактическому контурному фильтру, адаптивный выбор параметров фильтра из набора заранее определенных параметров фильтра или адаптивного вычисления параметров фильтра для фактического контурного фильтра.Embodiments of the
Варианты осуществления блока 120 контурного фильтра могут содержать (не показаны на фиг.1) один или множество фильтров (компоненты/подфильтры контурного фильтра), например, один или более различных видов или типов фильтров, например, соединены последовательно или параллельно или в любой их комбинации, в котором каждый из фильтров может содержать отдельно или совместно с другими фильтрами из множества фильтров блок анализа фильтров для определения соответствующих параметров контурного фильтра, например, как описано в предшествующем абзаце.Embodiments of the
Варианты осуществления кодера 100 (соответственно блок 120 контурного фильтра) могут быть выполнена с возможностью выводить параметры контурного фильтра, например, кодируется непосредственно или энтропийно через блок 170 энтропийного кодирования или любой другой блок энтропийного кодирования, так что, например, декодер 200 может принимать и применять одни и те же параметры контурного фильтра для декодирования.Embodiments of the encoder 100 (respectively, the loop filter block 120) may be configured to output the loop filter parameters, for example, encoded directly or entropy through the
Буфер 130 декодированного изображения (DPB) выполнен с возможностью принимать и хранить фильтрованной блок 121. Буфер 130 декодированного изображения может быть дополнительно выполнен с возможностью хранить другие ранее отфильтрованные блоки, например, ранее восстановленные и отфильтрованные блоки 121 одного и того же текущего изображения или разных изображений, например, ранее восстановленные изображения и могут предоставлять полные ранее восстановленные, т.е. декодированные, изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для внешней оценки и/или внешнего предсказания.A decoded picture buffer (DPB) 130 is configured to receive and store a
Дополнительные варианты осуществления изобретения также могут быть выполнены с возможностью использовать ранее отфильтрованные блоки и соответствующие отфильтрованные значения выборок буфера 130 декодированного изображения для любого вида оценки или предсказания, например, внутренняя и внешняя оценка и предсказание.Additional embodiments of the invention may also be configured to use the previously filtered blocks and the corresponding filtered sample values of the decoded
Блок 160 предсказания, также называемый блоком 160 предсказания блока, выполнен с возможностью принимать или получать блок 103 изображения (текущий блок 103 изображения текущего изображения 101) и декодированные или, по меньшей мере, восстановленные данные изображения, например, опорные выборки того же (текущего) изображения из буфера 116 и/или данных 231 декодированного изображения из одного или множества ранее декодированных изображений из буфера 130 декодированных изображений, и обрабатывать такие данные для предсказания, то есть, обеспечивать блок 165 предсказания, который может быть блоком 145 внешнего предсказания или блоком 155 внутреннего предсказания.The
Блок 162 выбора режима может быть выполнен с возможностью выбирать режим предсказания (например, режим внутреннего или внешнего предсказания) и/или соответствующего блока 145 или 155 предсказания, который будет использоваться в качестве блока 165 предсказания для вычисления остаточного блока 105 и для восстановления восстановленного блока 115.
Варианты осуществления блока 162 выбора режима могут быть выполнены с возможностью выбирать режим предсказания (например, из тех, которые поддерживаются блоком 160 предсказания), который обеспечивает наилучшее соответствие или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или минимальные накладные расходы на сигнализацию (минимальные накладные расходы на сигнализацию означают лучшее сжатие для передачи или хранения), или который учитывает или уравновешивает и то, и другое. Блок 162 выбора режима может быть выполнен с возможностью определять режим предсказания на основании оптимизации искажения скорости (RDO), то есть, выбирать режим предсказания, который обеспечивает оптимизацию искажения с минимальной скоростью или какое ассоциированное искажение скорости, по меньшей мере, удовлетворяет критерию выбора режима предсказания.Embodiments of
Далее будет приведено подробное описание процесса обработки предсказания (например, блоком 160 предсказания и выбор режима (например, блоком 162 выбора режима), выполняемый примерным кодером 100.Next, a detailed description will be given of the prediction processing process (for example, by the
Как описано выше, кодер 100 выполнен с возможностью определять или выбирать наилучший или оптимальный режим предсказания из набора (заданных) режимов предсказания. Набор режимов предсказания может содержать, например, режимы внутреннего предсказания и/или режимы внешнего предсказания.As described above,
Набор режимов внутреннего предсказания может содержать 32 различных режима внутреннего предсказания, например, ненаправленные режимы, такие как DC режим (или средний) и планарный режим или направленные режимы, например, как определено в H.264, или может содержать 65 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как DC режим (или средний) и планарный режим, или направленные режимы, например, как определено в H.265.The intra prediction mode set may contain 32 different intra prediction modes, such as non-directional modes such as DC (or average) mode and planar mode or directional modes, such as defined in H.264, or may contain 65 different intra prediction modes, for example, non-directional modes such as DC (or medium) mode and planar mode, or directional modes such as defined in H.265.
Набор (или возможные) режимов внешнего предсказания зависит от доступных опорных изображений (то есть, предшествующих, по меньшей мере, частично декодированных изображений, например, сохраненных в DBP 230) и других параметров внешнего предсказания, например, будь то все опорное изображение или только его часть, например, для поиска наилучшего соответствия опорного блока используется окно поиска область вокруг области текущего блока, опорного кадра и/или, например, применяется ли интерполяция пикселей, например половинный/полупиксельная и/или четверть пиксельная интерполяция или нет.The set (or possible) inter prediction modes depends on the available reference pictures (i.e., preceding at least partially decoded pictures, such as those stored in DBP 230) and other inter prediction parameters, such as whether it is the entire reference picture or only it. part, for example, to find the best match of the reference block, a search box is used, the area around the area of the current block, the reference frame, and/or, for example, whether pixel interpolation is applied, such as half/half pixel and/or quarter pixel interpolation or not.
В дополнение к вышеуказанным режимам предсказания могут применяться режим пропуска и/или прямой режим.In addition to the above prediction modes, skip mode and/or direct mode may be applied.
Блок 160 предсказания может быть дополнительно выполнен с возможностью разделять блок 103 на более мелкие части или субблоки, например, итеративно с использованием четырехугольного разбиения (QT), двоичного разбиения (BT) или троичного разбиения (TT) или любой их комбинации и выполнять, например, предсказание для каждого из разделов или подблоков блока, в котором выбор режима содержит выбор древовидной структуры разделенного блока 103 и режимов предсказания, применяемых к каждому из разделов или подблоков блока.The
Блок 142 внешней оценки, также называемый блоком 142 внешней оценки изображения, выполнен с возможностью принимать или получать блок 103 изображения (блока 103 текущего изображения текущего изображения 101) и декодированного изображения 231 или, по меньшей мере, одного или множества ранее восстановленных блоков, например, восстановленные блоки одного или множества других/различных ранее декодированных изображений 231 для внешней оценки (или «внешней оценки изображения»). Например. видеопоследовательность может содержать текущее изображение и ранее декодированные изображения 231 или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.The external estimator 142, also referred to as the external image estimator 142, is configured to receive or obtain an image block 103 (the
Кодер 100 может, например, быть выполнен с возможностью выбирать опорный блок из множества опорных блоков одинаковых или различных изображений из множества других изображений и поставлять опорное изображение (или индекс опорного кадра, ...) и/или смещение (пространственное смещение) между позицией (X, Y координаты) опорного блока и позицией текущего блока в качестве параметров 143 внешней оценки в блок 144 внешнего предсказания. Это смещение также называется вектором движения (MV). Внешняя оценка также называется оценкой движения (ME) и внешнее предсказание также называется предсказанием движения (MP).
Блок 144 внешнего предсказания выполнен с возможностью получать, например, принимать параметр 143 внешнего предсказания и выполнять внешнее предсказание на основании или с использованием параметра 143 внешнего предсказания для получения блока 145 внешнего предсказания.
Хотя на фиг.1 показаны два отдельные блоки (или этапы) для внешнего кодирования, а именно, внешняя оценка 142 и внешнее предсказание 152, обе функции могут выполняться как одна (внешняя оценка) и требует/содержит вычисление блока внешнего предсказания, т.е. или «тип» внешнего предсказания 152), например, путем итеративного тестирования всех возможных или заданного подмножества возможных режимов внешнего предсказания с сохранением текущего лучшего режима внешнего предсказания и соответствующего блока внешнего предсказания и использования текущего лучшего режима внешнего предсказания и соответствующего блока внешнего предсказания в качестве (окончательного) параметра 143 внешнего предсказания и блока 145 внешнего предсказания, не выполняя в другой раз внешнее предсказание 144.Although Figure 1 shows two separate blocks (or steps) for inter-coding, namely, inter-estimation 142 and
Блок 152 внутренней оценки выполнен с возможностью получать, например, принимать, блок 103 изображения (текущий блок изображения) и один или множество ранее восстановленных блоков, например, восстановленные соседние блоки одного и того же изображения для внутренней оценки. Кодер 100 может, например, быть выполнен с возможностью выбирать режим внутреннего предсказания из множества (заранее определенных) режимов внутреннего предсказания и предоставлять его в качестве параметра 153 внутренней оценки в блок 154 внутреннего предсказания.The
Варианты осуществления кодера 100 могут быть выполнены с возможностью выбирать режим внутреннего предсказания на основании критерия оптимизации, например, минимальный остаток (например, режим внутреннего предсказания, обеспечивающий блок 155 предсказания, наиболее похожий на текущий блок 103 изображения) или искажение с минимальной скоростью.Embodiments of
Блок 154 внутреннего предсказания выполнен с возможностью определять на основании параметра 153 внутреннего предсказания, например, выбранный режим 153 внутреннего предсказания, блок 155 внутреннего предсказания.The
Хотя на фиг.1 показаны два отдельные блоки (или этапы) для внутреннего кодирования, а именно, внутренняя оценка 152 и внутреннее предсказание 154, обе функции могут выполняться как одна (внутренняя оценка) и требует/содержит вычисление блока внутреннего предсказания, т.е. или «тип» внутреннего предсказания 154), например, путем итеративного тестирования всех возможных или заранее заданного подмножества возможных режимов внутреннего предсказания с сохранением лучшего в настоящее время режима внутреннего предсказания и соответствующего блока внутреннего предсказания и использования лучшего в настоящее время режима внутреннего предсказания и соответствующего блока внутреннего предсказания в качестве (окончательного) параметра 153 внутреннего предсказания и блока 155 внутреннего предсказания без повторного выполнения внутреннего предсказания 154.Although figure 1 shows two separate blocks (or steps) for intra coding, namely,
Блок 170 энтропийного кодирования выполнен с возможностью применять алгоритм или схему энтропийного кодирования (например, схему кодирования с переменной длиной (VLC), контекстно-адаптивную схему VLC (CALVC), схему арифметического кодирования, схему контекстно-адаптивного двоичного арифметического кодирования (CABAC)) на квантованных остаточных коэффициентах 109, параметрах 143 внешнего предсказания, параметре 153 внутреннего предсказания и/или параметрах контурного фильтра, по отдельности или совместно (или не выполнять) для получения данных 171 кодированного изображения, которые могут выводиться выходом 172, например, в виде кодированного битового потока 171.The
Для кодирования видеопотока могут использоваться другие структурные вариации видеокодера 100. Например, кодер 100, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока обработки преобразования для конкретных блоков или кадров. В другой реализации кодер 100 может иметь блок квантования и блок обратного квантования, объединенные в единый блок.Other structural variations of
Фиг.2 показывает примерный видеодекодер 200, выполненный с возможностью принимать данные 171 кодированного изображения (например, кодированный битовый поток), например, кодируемые кодером 100, чтобы получить декодированное изображение 231.2 shows an
Декодер 200 содержит вход 202, блок 204 энтропийного декодирования, блок 210 обратного квантования, блок 212 обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений, блок 260 предсказания, блок 244 внешнего предсказания, блок 254 внутреннего предсказания, блок 262 выбора режима и выход 232.The
Блок 204 энтропийного декодирования выполнен с возможностью выполнять энтропийное декодирование данных 171 кодированного изображения для получения, например, квантованных коэффициентов 209 и/или параметров декодированного кодирования (не показаны на фиг.2), например, (декодированный) любой или все параметры 143 внешнего предсказания, параметр 153 внутреннего предсказания и/или параметры контурного фильтра.
В вариантах осуществления декодера 200 блок 210 обратного квантования, блок 212 обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений, блок 260 предсказания и блок 262 выбора режима выполнены с возможностью выполнять обратный процесс обработки кодера 100 (и соответствующих функциональных блоков) для декодирования данных 171 кодированного изображения.In embodiments of
В частности, блок 210 обратного квантования может быть идентичен по функциям блоку 110 обратного квантования, блок 212 обратного преобразования может быть идентичным по функциям блоку 112 обратного преобразования, блок 214 восстановления может быть идентичным по функции блоку 114 восстановления, буфер 216 может быть идентичен по функциям буферу 116, контурный фильтр 220 может быть идентичен по функции контурному фильтру 120 (что касается фактического контурного фильтра, поскольку контурный фильтр 220 обычно не содержит блок анализа фильтра для определения параметров фильтра на основании исходного изображения 101 или блока 103, но принимает (явно или неявно) или получает параметры фильтра, используемые для кодирования, например, из блока 204 энтропийного декодирования), и буфер 230 декодированного изображения может быть идентичен по функциям буферу 130 декодированного изображения.In particular,
Блок 260 предсказания может содержать блок 244 внешнего предсказания и блок 254 внутреннего предсказания, в котором блок 244 внешнего предсказания может быть идентичен по функциям блоку 244 внешнего предсказания и блок 254 внутреннего предсказания может быть идентичным по функциям блоку 154 внутреннего предсказания. Блок 260 предсказания и блок 262 выбора режима обычно выполнены с возможностью выполнять предсказание блока и/или получать блок 265 предсказания только из кодированных данных 171 (без какой-либо дополнительной информации об исходном изображении 101) и принимать или получать (явно или неявно) параметры 143 или 153 предсказания и/или информацию о выбранном режиме предсказания, например, из блока 204 энтропийного декодирования.
Декодер 200 выполнен с возможностью выводить декодированное изображение 231, например, через выход 232 для презентации или просмотра пользователю.The
Хотя варианты осуществления изобретения были в основном описаны на основании кодирования видео, следует отметить, что варианты осуществления кодера 100 и декодера 200 (и, соответственно, системы 300) также могут быть выполнены с возможностью обработки или кодирования неподвижных изображений, то есть, обработки или кодирования отдельного изображения независимо от любого предшествующего или последующего изображения, как при кодировании видео. В общем, в случае, если обработка кодирования изображения ограничено одним изображением 101 не выполняется только внешняя оценка 142, внешнее предсказание 144, 242. Большинство, если не все другие функции (также называемые инструментами или технологиями) видеокодера 100 и видеодекодер 200 для неподвижных изображений могут одинаково использоваться, например, разделение, преобразование (масштабирование) 106, квантование 108, обратное квантование 110, обратное преобразование 112, внутренняя оценка 142, внутреннее предсказание 154, 254 и/или контурная фильтрация 120, 220, энтропийное кодирование 170 и энтропийное декодирование 204.Although embodiments of the invention have been primarily described in terms of video encoding, it should be noted that embodiments of
Настоящее изобретение относится к внутренним механизмам фильтра удаления блочности, также называемого контурным фильтром на фиг.1 и фиг.2. Далее будет приведено подробное описание блока 120, 220 контурного фильтра, например, на основании фиг.6 или фиг.7 или фиг.10 - фиг.12 или фиг.15 - фиг.16.The present invention relates to the internal mechanisms of the deblocking filter, also referred to as the loop filter in FIG. 1 and FIG. Next will be a detailed description of the
На основании успешного принципа гибридного кодирования видео на основании блоков разработаны схемы кодирования видео, такие как H.264/AVC и HEVC. Используя этот принцип, изображение сначала разделяется на блоки и затем каждый блок предсказывается с использованием внутреннего или внешнего предсказания. Эти блоки кодируются относительно соседних блоков и аппроксимируют исходный сигнал с некоторой степенью сходства. Поскольку кодированные блоки только аппроксимируют исходный сигнал, разница между приближениями может вызвать разрывы на границах блоков предсказания и преобразования. Эти неоднородности подавляются фильтром удаления блочности. HEVC заменяет структуру макроблоков H.264/AVC концепцией блока дерева кодирования (CTU) с максимальным размером 64x64 пикселей. CTU может быть дополнительно разделен на схему разложения дерева квадрантов на меньшие блоки кодирования (CU), которые могут быть разделены до минимального размера 8 x 8 пикселей. HEVC также вводит концепции блоков предсказания (PB) и блоков преобразования (TB).Based on the successful concept of block-based hybrid video coding, video coding schemes such as H.264/AVC and HEVC have been developed. Using this principle, the image is first divided into blocks and then each block is predicted using intra or inter prediction. These blocks are encoded with respect to neighboring blocks and approximate the original signal with some degree of similarity. Since the encoded blocks only approximate the original signal, the difference between the approximations can cause discontinuities at the boundaries of the prediction and transform blocks. These inhomogeneities are suppressed by the deblocking filter. HEVC replaces the H.264/AVC macroblock structure with the concept of a coding tree unit (CTU) with a maximum size of 64x64 pixels. The CTU may be further partitioned by a quadtree decomposition scheme into smaller coding units (CUs), which may be partitioned down to a minimum size of 8 x 8 pixels. HEVC also introduces the concepts of Prediction Blocks (PBs) and Transform Blocks (TBs).
В HEVC в фильтре удаления блочности определены два фильтра: обычный фильтр и сильный фильтр. Обычный фильтр модифицирует не более две выборки по обе стороны края. В сильном фильтре оцениваются три дополнительных проверки между выборками по краю и некоторым заранее заданным пороговым значением. Если все эти проверки верны, применяется сильный фильтр. Сильный фильтр имеет более интенсивный эффект сглаживания для выборок по краю и может модифицировать не более три выборки по обеим сторонам края.In HEVC, two filters are defined in the deblocking filter: a regular filter and a strong filter. The normal filter modifies no more than two samples on either side of the edge. In a strong filter, three additional checks are evaluated between samples at the edge and some pre-specified threshold. If all of these checks are correct, a strong filter is applied. A strong filter has a stronger anti-aliasing effect on edge samples and can only modify a maximum of three samples on either side of the edge.
ITU-T VCEG (Q6/16) и ISO/IEC MPEG (JTC 1/SC 29/WG 11) изучают видеокодек следующего поколения: универсальное кодирование видео (VVC). Этот новый стандарт видеокодеков нацелен на возможность сжатия, которая значительно превосходит возможности текущего стандарта HEVC (включающий в себя его текущие расширения и краткосрочные расширения для кодирования контента экрана и кодирования с высоким динамическим диапазоном). Группы работают вместе над этой исследовательской деятельностью в рамках проекта совместной работы, известного как Joint Video Exploration Team (JVET), для оценки технологий сжатия, предложенных их экспертами в этой области.ITU-T VCEG (Q6/16) and ISO/IEC MPEG (
Тестовая модель VVC (VTM) описывает признаки, которые проходят скоординированное исследование тестовой модели Объединенной группой исследования видео (JVET) ITU-T VCEG и ISO/IEC MPEG как потенциально улучшенная технология кодирования видео, выходящая за рамки возможностей HEVC.The VVC Test Model (VTM) describes the features that are undergoing a coordinated test model study by the Joint Video Research Team (JVET) of ITU-T VCEG and ISO/IEC MPEG as a potentially advanced video coding technology beyond the capabilities of HEVC.
Программное обеспечение VTM использует новую схему блочной структуры разделения, называемую дерево квадрантов плюс двоичное дерево плюс тройное дерево (QTBTTT).The VTM software uses a new block partitioning scheme called Quadtree Plus Binary Tree Plus Triple Tree (QTBTTT).
Структура QTBTTT удаляет концепции нескольких типов разделения, то есть, удаляет разделение блоков кодирования (CU), блоков предсказания (PU) и блоков преобразования (TU). Следовательно, CU = PU = TU.The QTBTTT structure removes the concepts of several types of separation, that is, removes the separation of coding units (CUs), prediction units (PUs), and transform units (TUs). Therefore, CU = PU = TU.
QTBTTT поддерживает более гибкие формы разделов CU, в которых CU может иметь квадратную или прямоугольную форму. Минимальная ширина и высота CU могут составлять 4 выборки и размеры CU также могут быть 4 x N или N x 4, в котором N может принимать значения в диапазоне [4, 8, 16, 32]. Кроме того, самый большой размер CTU был увеличен до 128x128 пикселей, что в 4 раза больше, чем размер CTU в HEVC.QTBTTT supports more flexible CU partition shapes, in which the CU can be square or rectangular. The minimum width and height of a CU can be 4 samples, and the dimensions of a CU can also be 4 x N or N x 4, in which N can take values in the range [4, 8, 16, 32]. In addition, the largest CTU size has been increased to 128x128 pixels, which is 4 times larger than the CTU size in HEVC.
Для прямоугольных CUs искажение вблизи более короткого края может быть очевидным, что приводит к блочным артефактам даже при применении HEVC сильного фильтра. Блочный артефакт также можно наблюдать на краю больших CUs, в котором искажения значительны из-за более крупных операций предсказания и преобразования.For rectangular CUs, distortion near the shorter edge can be evident, resulting in blocky artifacts even when a strong HEVC filter is applied. Block artifact can also be observed at the edge of large CUs where distortion is significant due to larger prediction and transform operations.
Дополнительные инструменты Sub-pu (обычно именуемые инструменты субблока), такие как Affine и ATMVP, теперь адаптированы к стандарту универсального кодирования видео (VVC). В способе реализации для инструментов sub-pu, особенно Affine, деблокирование также может выполняться для краев/границ sub-pu, которые перекрываются с сеткой 8 x 8. В другом способе реализации для инструментов sub-pu, особенно Affine, только границы sub-pu, которые перекрываются с сеткой 16 x 16, подвержены удалению блочности, все другие границы sub-pu не обрабатываются удалением блочности, то есть, для границ sub-pu удаление блочности, которые перекрываются с сеткой 8 x 8, не выполняется, как показано на фиг.15. В другом способе реализации, для инструментов sub-pu, особенно Affine, внутренние границы первого и последнего sub-pu не подвержены обработке удаления блочности. Все другие внутренние края sub-pu подвержены обработке удаления блочности, как показано на фиг.16. Другими словами, решения, показанные на фиг.15 и фиг.16, по меньшей мере, позволяют выполнять обработку удаления блочности некоторых из внутренних краев sub-pu. Все эти реализации, в основном, предназначены для согласования применения более длинных отводных фильтров, когда один из блоков, имеющий общий край, использует инструменты sub-pu, такие как Affine или ATMVP.Additional Sub-pu tools (commonly referred to as sub-pu tools) such as Affine and ATMVP are now adapted to the Universal Video Coding (VVC) standard. In an implementation for sub-pu tools, especially Affine, deblocking can also be done for sub-pu edges/borders that overlap with an 8 x 8 grid. In another implementation for sub-pu tools, especially Affine, only sub-pu borders , which overlap with the 16 x 16 grid are subject to deblocking, all other sub-pu boundaries are not deblocked, i.e., for sub-pu boundaries that overlap with the 8 x 8 grid, are not deblocked, as shown in Fig. .fifteen. In another implementation, for sub-pu tools, especially Affine, the inner bounds of the first and last sub-pu are not subject to deblocking processing. All other sub-pu inner edges are subject to deblocking processing as shown in FIG. In other words, the solutions shown in Fig. 15 and Fig. 16 at least allow deblocking processing of some of the inner edges of the sub-pu to be performed. All of these implementations are mainly designed to accommodate the use of longer tap filters when one of the blocks that share a common edge uses sub-pu tools such as Affine or ATMVP.
На фиг.4 проиллюстрирована текущая операция фильтра удаления блочности (разделение деревом квадрантов плюс двоичное дерево плюс тройное дерево (QTBTTT)).4 illustrates the current operation of the deblocking filter (quadtree split plus binary tree plus ternary tree (QTBTTT)).
На фиг.4 проиллюстрирована техническая задача применения «более длинного отводного фильтра» к инструментам sub-pu. Блоки 401, 402 кодирования, также называемые P, Q, представляют собой два CUs, размер CU составляет 16x4 выборок.Figure 4 illustrates the technical challenge of applying a "longer tap-off filter" to sub-pu tools. The coding blocks 401, 402, also called P, Q, are two CUs, the CU size is 16x4 samples.
При фильтрации CU края (отмечен толстой черной линией), модифицируется максимум 7 выборок по обе стороны CU края. Поэтому модифицируются выборки от Q0,0 до Q6,0. Также в операции принятия решения по применению удаления блочности границы sub-pu используются выборки Q7,0 Q6,0 Q5,0 (отмечены тонкой черной линией). Следовательно, фильтрация образовывает перекрытие и, кроме того, приводит к тому, что операция удаления блочности края не может быть выполнена параллельно.When filtering the edge CU (marked with a thick black line), a maximum of 7 samples are modified on either side of the edge CU. Therefore, the samples are modified from Q 0.0 to Q 6.0 . Also in the decision operation to apply deblocking of the sub-pu boundary, samples Q 7.0 Q 6.0 Q 5.0 (marked with a thin black line) are used. Therefore, the filtering generates an overlap and furthermore causes the edge deblocking operation to not be performed in parallel.
Следовательно, необходимо выполнять фильтрацию удаления блочности последовательно. Это приводит к очень долгому времени обработки. Это приводит к неоправданно длительному времени обработки, особенно с появлением новых технологий обработки, использующих все больше и больше параллельных структур обработки. Адаптировав фильтрацию удаления блочности к параллельной обработке, можно сэкономить значительное время обработки.Therefore, it is necessary to perform deblocking filtering sequentially. This leads to very long processing times. This leads to unnecessarily long processing times, especially with the advent of new processing technologies using more and more parallel processing structures. By adapting deblocking filtering to parallel processing, significant processing time can be saved.
Более подробно, распараллеливание фильтрации удаления блочности может быть достигнуто подходом, как проиллюстрировано на фиг.5, фиг.15 или фиг.16.In more detail, parallelization of deblocking filtering can be achieved with an approach as illustrated in FIG. 5, FIG. 15, or FIG.
7.1. варианты осуществления изобретения7.1. embodiments of the invention
Решение 1:Solution 1:
1.1 Если текущий Q блок использует инструменты Sub-pu, такие как Affine или ATMVP, то в настоящем изобретении используется асимметричная версия более длинного отводного фильтра, то есть, для удаления блочности CU границы между блоками P и Q используется асимметричный фильтр, как показано в таблице 1; в основном, блок кодирования может использовать внешнее предсказание. При внешнем предсказании применяют несколько различных инструментов, которые может использовать блок кодирования. Affine и ATMVP представляют собой два инструмента sub-pu. Инструменты sub-pu означают, что заданный блок кодирования будет дополнительно использовать меньшие блоки предсказания (sub-pus), и выполняется компенсация движения отдельно для каждого из sub-pus. Например, при наличии блока кодирования размером 16 x 4 аффинный инструмент использует 2 sub-pus размером 8 x 4 (как показано на фиг.4) или 4 sub-pus размером 4 x 4. Например, при наличии блока кодирования размером 16 x 16, аффинный инструмент использует 16 sub-pus размером 4 x 4 или 4 субблока размером 8 x 8, как показано на фиг.17 (a) и (b). Каждый из этих sub-pus или субблоков использует отдельные векторы движения, как показано на фиг.18.1.1 If the current Q block uses Sub-pu tools such as Affine or ATMVP, then the present invention uses an asymmetric version of the longer tap filter, i.e., an asymmetric filter is used to deblock the CU boundary between the P and Q blocks, as shown in the table one; basically, the coding block may use inter-prediction. In inter-prediction, there are several different tools that a coding block can use. Affine and ATMVP are two sub-pu tools. The sub-pu tools mean that a given coding block will additionally use smaller prediction blocks (sub-pus), and motion compensation is performed separately for each of the sub-pus. For example, given a 16x4 coding block, the affine tool uses 2 8x4 sub-puses (as shown in Figure 4) or 4 4x4 sub-puses. For example, given a 16x16 coding block, the affine tool uses 16 4 x 4 sub-pus or 4 8 x 8 sub-pus as shown in Fig. 17(a) and (b). Each of these sub-pus or sub-blocks uses separate motion vectors, as shown in Fig.18.
Поэтому для Q блока кодирования, который использует инструменты Sub-pu, модифицируется максимум три выборки, тогда как для блока Р кодирования модифицируется максимум до 7 выборок. См. фиг.4 или фиг.5, если ширина блока Р кодирования больше 8 выборок, например, 16 или 32 выборки, для блока Р кодирования модифицируется максимум до 7 выборок. Можно отметить, что в некоторых сценариях для блока P, Q кодирования также могут быть модифицированы 3, 4, 5 или 6 выборок.Therefore, for a Q coding block that uses Sub-pu tools, a maximum of three samples are modified, while for a coding block P, a maximum of 7 samples are modified. See FIG. 4 or FIG. 5, if the width of the coding block P is greater than 8 samples, such as 16 or 32 samples, the coding block P is modified to a maximum of 7 samples. It may be noted that in some scenarios, 3, 4, 5, or 6 samples may also be modified for the P, Q coding block.
Входные пиксели соответствуют значениям пикселей или значениям выборок, используемым для фильтрации, и выходные пиксели соответствуют модифицированным значениям выборок. Следует отметить, что входные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Кроме того, выходные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Как проиллюстрировано в таблице 1, в примере первые выходные значения (относящиеся к Q блоку кодирования) соответствуют q2, q1, q0; и вторые выходные значения (относящиеся к P блоку кодирования) соответствуют p0, p1, p2, … p5, p6. Соответственно, Q блок кодирования соответствует второму блоку изображения, который использует инструмент субблока, и Р блок кодирования соответствует первому блоку изображения. Q блок кодирования является текущим блоком и Р блок кодирования является соседним блоком текущего блока.The input pixels correspond to the pixel values or sample values used for filtering, and the output pixels correspond to the modified sample values. It should be noted that the input pixels can be successive pixels perpendicular to the block edge, starting from the block edge. In addition, the output pixels may be successive pixels perpendicular to the edge of the block, starting at the edge of the block. As illustrated in Table 1, in the example, the first output values (related to the Q coding block) correspond to q2, q1, q0; and the second output values (related to the P coding block) correspond to p0, p1, p2, ... p5, p6. Accordingly, Q coding block corresponds to the second image block that the sub-block tool uses, and P coding block corresponds to the first image block. Q coding block is the current block and P coding block is a neighboring block of the current block.
Кроме того, условие фильтра (уравнение 1) гарантирует, что для принятия решения фильтрации используются максимум 4 выборки из Q блока.In addition, the filter condition (Equation 1) ensures that a maximum of 4 samples from the Q block are used to make the filter decision.
В примере для первой и четвертой строк сегмента удаления блочности:In the example for the first and fourth lines of the deblock segment:
(уравнение 1) (equation 1)
Как правило, процесс фильтра удаления блочности может включать в себя три этапа: обнаружение границы/края, решение о фильтрации (решение о включении/выключении фильтра) и процесс фильтрации для вертикальных и горизонтальных краев.Generally, the deblocking filter process may include three steps: border/edge detection, filtering decision (filter on/off decision), and filtering process for vertical and horizontal edges.
Для принятия решения фильтрации (для уравнения 1) используется только 4 выборки. Поэтому в уравнении 1 для Q блока используются выборки только от q0 до q3. В уравнении 1 для Р блока можно использовать четыре выборки, как показано в уравнении 1. В примере вторые значения решения соответствуют q3, q2, q1, q0; и значения первого решения соответствуют p0, p3, p4, p7, p0, p2, p3, p5.Only 4 samples are used to make a filtering decision (for Equation 1). Therefore, in
Если уравнение 1 удовлетворяется, то можно использовать более длинный отводной фильтр, указанный в таблице 1. Если уравнение 1 не удовлетворяется, то можно использовать HEVC сильный фильтр. Также модифицируются максимум 3 выборки из Q блока, то есть, от q0 до q2 .. В основном, чтобы применить более длинный отводной фильтр, рассматривается уравнение 1. Только если уравнение/условие1 истинно, может применяться более длинный отводной фильтр, показанный в таблице 1. Можно отметить, что уравнение 1 можно использовать на этапе 707 на фиг. 7.If
Уравнение 1 в основном проверяет градиент по обе стороны CU края. Поскольку для принятия решения фильтрации из Q блока доступно только максимум 4 выборки, то из Q блока используются только выборки с q0 по q3, в котором β обозначает параметр порогового значения, известный, например, из HEVC стандарта. Для условия фильтрации значение параметра β порогового значения зависит от параметра квантования QP. Как уже описано выше, QP представляет собой хорошо известный параметр в стандартах кодирования видео, который управляет компромиссом между скоростью передачи данных и качеством видеоконтента. В варианте осуществления QP может находиться в диапазоне от 0 до 51. В варианте осуществления схема обработки устройства 120, 220 фильтра выполнена с возможностью определять параметра β порогового значения на основании параметра квантования QP с использованием справочной таблицы. В варианте осуществления справочная таблица может быть определена следующим образом:
Для получения дополнительных сведений о параметре β порогового значения и его зависимости от QP сделана ссылка на главу 7 книги «High Efficiency Video Coding (HEVC)», Sze et al., Которая полностью включена в настоящее описание посредством ссылки.For more information on the threshold parameter β and its dependence on QP, reference is made to chapter 7 of the book "High Efficiency Video Coding (HEVC)" by Sze et al., which is incorporated herein by reference in its entirety.
1.2 Если соседний Р блок использует инструменты Sub-pu, такие как Affine или ATMVP, то в настоящем изобретении используется асимметричная версия более длинного отводного фильтра, то есть, используется асимметричный фильтр, как показано в таблице 2, для выполнения удаления блочности CU границы между P и Q блоками;1.2 If the adjacent P block uses Sub-pu tools such as Affine or ATMVP, then the present invention uses an asymmetric version of the longer tap filter, i.e., uses an asymmetric filter as shown in Table 2 to perform CU deblocking of the boundary between P and Q blocks;
Поэтому для Р блока кодирования, который использует инструменты Sub-pu, в примере модифицируется максимум три выборки, тогда как для текущего Q блока кодирования модифицируется максимум до 7 выборок.Therefore, for the P coding block that uses the Sub-pu tools, a maximum of three samples are modified in the example, while for the current Q coding block, a maximum of 7 samples are modified.
Входные пиксели соответствуют значениям пикселей или значениям выборок, используемым для фильтрации, и выходные пиксели соответствуют модифицированным значениям выборок. Следует отметить, что входные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Кроме того, выходные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Как проиллюстрировано в таблице 2, в примере первые выходные значения (относящиеся к Р блоку кодирования) соответствуют p2, p1, p0; и вторые выходные значения (относящиеся к блоку кодирования Q) соответствуют q0, q1, q2, … q5, q6. Соответственно, Р блок кодирования соответствует второму блоку изображения, который использует инструменты субблока, и Q блок кодирования соответствует первому блоку изображения. Р блок кодирования является текущим блоком и Q блок кодирования является соседним блоком текущего блока.The input pixels correspond to the pixel values or sample values used for filtering, and the output pixels correspond to the modified sample values. It should be noted that the input pixels can be successive pixels perpendicular to the block edge, starting from the block edge. In addition, the output pixels may be successive pixels perpendicular to the edge of the block, starting at the edge of the block. As illustrated in Table 2, in the example, the first output values (related to the P coding block) correspond to p2, p1, p0; and second output values (relating to coding block Q) correspond to q0, q1, q2, ... q5, q6. Accordingly, P coding block corresponds to the second image block that uses the sub-block tools, and Q coding block corresponds to the first image block. P coding block is the current block and Q coding block is a neighboring block of the current block.
Также условие фильтрации (уравнение 2) гарантирует, что для принятия решения фильтрации используется только максимум 4 выборки Р блока.Also, the filtering condition (Equation 2) ensures that only a maximum of 4 P block samples are used to make a filtering decision.
В примере для первой и четвертой строк сегмента удаления блочности:In the example for the first and fourth lines of the deblock segment:
(уравнение 2)(equation 2)
Как правило, процесс фильтра удаления блочности может включать в себя три этапа: обнаружение границы/края, решение фильтрации (решение о включении/выключении фильтра) и процесс фильтрации для вертикальных и горизонтальных краев.Generally, the deblocking filter process may include three steps: edge/edge detection, filtering decision (filter on/off decision), and filtering process for vertical and horizontal edges.
Для принятия решения фильтрации (для уравнения 2) могут быть использованы только 4 выборки. Поэтому в уравнении 2 для Р блока используются выборки только от p0 до p3. В уравнении 2 для Q блока можно использовать четыре выборки, как показано в уравнении 2. В примере значения второго решения соответствуют p3, p2, p1, p0; и значения первого решения соответствуют q0, q3, q4, q7, q0, q2, q3, q5.Only 4 samples can be used to make a filtering decision (for Equation 2). Therefore, in equation 2 for the P block, only samples from p 0 to p 3 are used. In Equation 2, four samples can be used for the Q block, as shown in Equation 2. In the example, the values of the second solution correspond to p 3 , p 2 , p 1 , p 0 ; and the values of the first solution correspond to q 0 , q 3 , q 4 , q 7 , q 0 , q 2 , q 3 , q 5 .
Если уравнение 2 удовлетворяется, то можно использовать более длинный отводной фильтр, упомянутый в таблице 2. Если уравнение 2 не удовлетворяется, можно использовать HEVC сильный фильтр. Также здесь модифицируются максимум 3 выборки из Р блока, то есть, от p0 до p2. В основном, чтобы применить более длинный отводной фильтр, рассматривается уравнение 2. Только если уравнение 2 верно, то можно применять более длинный отводной фильтр, показанный в таблице 2. Можно отметить, что уравнение 2 может использоваться на этапе 707 на фиг.7.If Equation 2 is satisfied, then the longer bypass filter mentioned in Table 2 can be used. If Equation 2 is not satisfied, a HEVC strong filter can be used. Also, a maximum of 3 samples from the P block are modified here, that is, from p 0 to p 2 . Basically, to apply a longer tap filter, Equation 2 is considered. Only if Equation 2 is true, then the longer tap filter shown in Table 2 can be applied. It can be noted that Equation 2 can be used at
Разрешено использовать максимум 4 выборки из Р блока для принятия решения фильтрации. Следовательно, выборки p4, p5… p7 нельзя использовать и, следовательно, коэффициенты фильтрации выборок p4, p5… p7 равны нулю. Таким образом, в операциях фильтрации p4, p5… p7 не используются.It is allowed to use a maximum of 4 samples from the P block to make a filtering decision. Therefore, the samples p4, p5… p7 cannot be used and, therefore, the filtering coefficients of the samples p4, p5… p7 are equal to zero. Thus, p4, p5… p7 are not used in filtering operations.
Уравнение 2 в основном проверяет градиент по обе стороны блока. Поскольку для принятия решения фильтрации из Р блока доступно не более 4 выборок, из Р блока используются только выборки с p0 по p3.Equation 2 basically tests the gradient on both sides of the box. Since no more than 4 samples are available to make a filtering decision from the P block, only samples p 0 to p 3 are used from the P block.
1.3 В альтернативной реализации коэффициенты для p0, p1, p2 или q0, q1, q2 также могут использовать коэффициенты HEVC сильного фильтра. Коэффициенты для случая, когда Р блок кодирования использует инструменты Sub-pu, показаны в таблице 3. Другими словами, настоящее изобретение может использовать асимметричную версию более длинного отводного фильтра, то есть, может использовать асимметричный фильтр, как показано на таблице 3, для удаления блочности CU границы между P и Q блоками. Соответственно, Р блок кодирования соответствует второму блоку изображения и Q блока кодирования соответствует первому блоку изображения. Р блок кодирования является текущим блоком и Q блок кодирования является соседним блоком текущего блока.1.3 In an alternative implementation, the coefficients for p 0 , p 1 , p 2 or q 0 , q 1 , q 2 may also use strong filter HEVC coefficients. The coefficients for the case where the P coding block uses Sub-pu tools are shown in Table 3. In other words, the present invention can use an asymmetric version of a longer tap filter, that is, can use an asymmetric filter as shown in Table 3 to deblock CU boundaries between P and Q blocks. Accordingly, P coding block corresponds to the second image block and Q coding block corresponds to the first image block. P coding block is the current block and Q coding block is a neighboring block of the current block.
В качестве альтернативы коэффициенты для p0, p1, p2 или q0, q1, q2 фильтра также могут использовать коэффициенты HEVC сильного фильтра. В таблице 4 показаны коэффициенты фильтра для случая, в котором Q блок кодирования использует инструменты Sub-pu. Другими словами, настоящее изобретение может использовать асимметричную версию более длинного отводного фильтра, то есть, может использовать асимметричный фильтр, как показано в таблице 4, для удаления блочности CU границы между P и Q блоками. Соответственно, Q блок кодирования соответствует второму блоку изображения и Р блок кодирования соответствует первому блоку изображения. Q блок кодирования является текущим блоком и Р блок кодирования является соседним блоком текущего блока.Alternatively, the coefficients for the p 0 , p 1 , p 2 or q 0 , q 1 , q 2 filter may also use the HEVC coefficients of the strong filter. Table 4 shows the filter coefficients for the case in which the Q coding block uses Sub-pu tools. In other words, the present invention may use an asymmetric version of the longer tap filter, that is, may use an asymmetric filter as shown in Table 4 to deblock the CU boundary between P and Q blocks. Accordingly, Q coding block corresponds to the second image block and P coding block corresponds to the first image block. Q coding block is the current block and P coding block is a neighboring block of the current block.
Используемое условие фильтрации может быть уравнением 1 или уравнением 2 в зависимости от того, использует ли Р блок или Q блок инструменты sub-pu. Например, если Р блок использует инструменты sub-pu, условием фильтрации является уравнение 2; если Q блок использует инструменты sub-pu, условием фильтрации является уравнение 1;The filter condition used can be
1.4 Если и Q блок кодирования, и Р блок кодирования используют инструменты sub-pu, то на CU границе больше не применяется более длинный отводной фильтр. HEVC сильный фильтр можно рассматривать для CU края (сокращение от CE). В реализации модифицируются максимум 3 выборки на стороне CU края в P блоке, и модифицируются максимум 3 выборки на другой стороне CU края в Q блоке. В таблице 5 показан используемый фильтр. Другими словами, настоящее изобретение может использовать фильтр, показанный в таблице 5, для удаления блочности CU границы между P и Q блоками.1.4 If both Q coding block and P coding block use sub-pu tools, then the longer tap filter is no longer applied at the CU boundary. HEVC strong filter can be considered for CU edge (short for CE). The implementation modifies a maximum of 3 samples on the edge CU side in a P block, and updates a maximum of 3 samples on the other side of the edge CU in a Q block. Table 5 shows the filter used. In other words, the present invention can use the filter shown in Table 5 to deblock the boundary CU between P and Q blocks.
На фиг.7 представлена блок-схема алгоритма, иллюстрирующая способ определения, следует ли использовать более длинный отводной фильтр (или асимметричный длинный фильтр). Как проиллюстрировано на фиг.7, должно выполняться условие HEVC сильного фильтра, чтобы выполнялись условия «более длинного отводного фильтра». На этапе 707 подробности были описаны выше. Более длинный отводной фильтр, используемый на этапе 709, отличается от нормального более длинного отводного фильтра, использованного на этапе 708, подробности были описаны выше. Состояние стандартного более длинного отводного фильтра может быть следующим:7 is a flowchart illustrating a method for determining whether to use a longer tap filter (or asymmetric long filter). As illustrated in FIG. 7, the strong filter HEVC condition must be met in order for the "longer tap filter" conditions to be met. At
В некоторых примерах, поверх HEVC фильтра, нормальный более длинный отводной фильтр на этапе 708 использует 8 выборок для принятия решения фильтрации на каждой стороне края, и на каждой стороне края модифицируются 7 выборок. Однако более длинный отводной фильтр на этапе 709 использует DB выборки для принятия решения фильтрации на одной стороне края и DA выборки для принятия решения фильтрации на другой стороне края, и на упомянутой одной стороне края модифицируются MB выборки, в то время как на другой стороне края модифицируются выборки MA. MA ≠ MB, в частности, MA <MB, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7. В общем, DA = MA + 1; DB = DB + 1.In some examples, on top of the HEVC filter, the normal longer tap filter at
На фиг.8 проиллюстрированы детали для определения, должно ли выполняться условие HEVC сильного фильтра. На фиг.8 показана блок-схема алгоритма, где показан общий процесс принятия решений фильтрации удаления блочности для границы блока, включающих в себя решения между сильной и нормальной фильтрацией.Fig. 8 illustrates the details for determining whether the strong filter condition HEVC is to be met. 8 is a flowchart showing the general deblocking filtering decision process for a block boundary, including decisions between strong and normal filtering.
На первом этапе 800 проверяется, совмещен ли край фильтруемого в данный момент блока с сеткой 8 × 8 выборки кодирования. Если это так, то на втором этапе 801 проверяется, является ли край блока, подлежащего фильтрации, границей между блоками предсказания или блоками преобразования. Если это так, то на третьем этапе 802 проверяется, является ли граничная прочность Bs> 0. Если это условие также удовлетворяется, то на четвертом этапе 803 проверяется, истинно ли условие 7.1.In the
Условие 7.1 используется для проверки, применяется ли фильтрация удаления блочности к границе блока или нет. Условие особенно проверяет, насколько сигнал на каждой стороне границы блока отклоняется от прямой линии (пилообразная форма).Condition 7.1 is used to check whether deblocking filtering is applied to the block boundary or not. The condition specifically checks how much the signal on each side of the block boundary deviates from a straight line (sawtooth).
Если это условие не удовлетворяется или любая из проверок на этапах 800, 801 и 802 не выполняется, то на пятом этапе 804 принимается решение, что фильтрация не выполняется.If this condition is not met, or if any of the checks in
На шестом этапе 805 (не показан на фиг. 8) теперь проверяется, равен ли размер блока любого из двух блоков, окружающих край, подлежащий фильтрации, четырем. Если это не так, на седьмом этапе 806 проверяется, удовлетворяется ли дополнительные условия 7.2, 7.3 и 7.4.In the sixth step 805 (not shown in FIG. 8), it is now checked whether the block size of either of the two blocks surrounding the edge to be filtered is equal to four. If this is not the case, at the
Условие 7.2 проверяет отсутствие значительных изменений сигнала на сторонах границы блока. Условие 7.3 проверяет ровность границы с обеих сторон. Условие 7.4 гарантирует, что шаг между значениями выборки на сторонах границы блока будет небольшим.Condition 7.2 checks for the absence of significant signal changes on the sides of the block boundary. Condition 7.3 checks whether the boundary is even on both sides. Condition 7.4 guarantees that the step between sample values on the sides of the block boundary will be small.
Если все эти условия верны, на восьмом этапе 807 выполняется сильная фильтрация, этап 807 напрямую заменяется этапом 702 на фиг.7. Если это не так, на девятом этапе 808 решается, что выполняется нормальная фильтрация.If all these conditions are true, strong filtering is performed in the
Это решение вводит в действие часть блок-схемы алгоритма удаления блочности, так что выполняется только одна модификация выборки.This solution enables part of the deblocking flowchart so that only one fetch modification is performed.
Это позволяет значительно сократить количество проверок, необходимых для определения, выполняется ли фильтрация и какой тип фильтрации выполняется, в случае, если хотя бы один из размеров блока является четным целым числом 2n, превышающим пороговое значение (например, 8 или 16 и т.д.), особенно в случае, если, по меньшей мере, один из размеров блока является четным целым числом 2n больше 16.This can significantly reduce the number of checks required to determine if filtering is being performed and what type of filtering is being performed, in case at least one of the block sizes is an even integer 2 n that is greater than a threshold value (for example, 8 or 16, etc. .), especially if at least one of the block sizes is an even integer 2 n greater than 16.
Для предотвращения перекрытия фильтров, когда к блокам применяется более длинный отводной фильтр, один или оба из которых используют инструменты sub-pu, такие как Affine и ATMVP, в настоящем изобретении предлагаются следующие решения.To prevent filter overlap when a longer tap filter is applied to blocks, one or both of which use sub-pu tools such as Affine and ATMVP, the present invention proposes the following solutions.
Решение 1. Использовать «асимметричный» фильтр, который позволяет модифицировать до МА выборок для блока, использующего инструменты sub-pu, если в Q блоке или Р блоке используются инструменты Sub-pu, такие как Affine или ATMVP, например MA = 3 , 4, 5 или 6.
Решение 2. Для CU края не может быть применен более длинный отводной фильтр, если и Q блок кодирования, и Р блок кодирования используют инструменты Sub-pu. Для края рассматривается HEVC сильный фильтр. Поэтому для P и Q блоков модифицируется одинаковое количество выборок по обе стороны CU края, MA'= MB'.Solution 2: For edge CU, a longer tap filter cannot be applied if both the Q coding block and the P coding block use Sub-pu tools. For the edge, a HEVC strong filter is considered. Therefore, for P and Q blocks, the same number of samples are modified on both sides of the CU edge, MA'=MB'.
Решение 3. Отключить удаление блочности для sub-pu краев, в то время как выполняется удаление блочности только на CU краях, если любой из Q блока или Р блока использует инструменты Sub-pu, такие как Affine или ATMVP.Solution 3: Disable deblocking for sub-pu edges while only deblocking on CU edges if any of the Q block or P block is using Sub-pu tools like Affine or ATMVP.
Решения 4 и 5: если один из Q или P блоков использует инструменты Sub-pu, такие как Affine или ATMVP, то не только выполняется удаление блочности на некоторых из краев Sub-pu, но также выполняется на CU краях.Decisions 4 and 5: If one of the Q or P blocks is using Sub-pu tools like Affine or ATMVP, then not only is deblocking done on some of the Sub-pu edges, but it is also done on the CU edges.
Решение 4. В этом решении более длинный отводной фильтр удаления блочности или ко всем CU краям можно применить нормальный HEVC фильтр удаления блочности. Для внутренних краев Sub-pu выполняется удаление блочности только на краях, которые перекрываются сеткой 16 x 16. Внутренние края Sub-pu, которые перекрываются сеткой 8 x 8, не подвергают обработке удаления блочности. Основное преимущество этого решения состоит в том, что может быть применен более длинный отводной фильтр к некоторым внутренним краям Sub-pu, кроме CU краев.Solution 4. In this solution, a longer tapped deblocking filter or all CU edges can be applied with a normal HEVC deblocking filter. For Sub-pu inner edges, only the edges that are overlapped by the 16 x 16 grid are deblocked. Sub-pu inner edges that are overlapped by the 8 x 8 grid are not deblocked. The main advantage of this solution is that a longer tap-off filter can be applied to some inner edges of the Sub-pu, except for the CU edges.
Как показано на фиг.15, пример включает в себя три блока (blocks) P, Q, R кодирования. Q блок использует инструменты sub-pu, такие как Affine или ATMVP, и поэтому состоит из внутреннего края sub-pu. Есть два края блоков кодирования, один край используется совместно между Р блоком (например, CU P) и Q блоком (например, CU Q), и другой край блока кодирования используется совместно между Q блоком (например, CU Q) и R блоком (например, CU R). Чтобы применить более длинный отводной фильтр для края блока кодирования без введения перекрытий фильтров и, следовательно, не жертвуя параллельным удаление блочностиом, предлагаемое решение выполняет удаление блочности только всех внутренних краев sub-pu, которые перекрываются с сеткой 16 x 16. Все остальные внутренние края sub-pu не подвергают удаление блочностиу. Эта ситуация также изображена на фиг.15, пунктирные линии иллюстрируют внутренние sub-pu края, которые перекрываются с сеткой 8 x 8 и не подвергают удаление блочностиу. Нормальные линии изображают внутренние края sub-pu, которые перекрываются сеткой 16 x 16, поэтому к ним применяют удаление блочности. Важным свойством этого решения является то, что: более длинный отводной фильтр может применяться к краям CU и к внутренним sub-pu краям, которые перекрываются сеткой 16 x 16.As shown in FIG. 15, the example includes three coding blocks (blocks) P, Q, R. The Q block uses sub-pu instruments such as Affine or ATMVP and therefore consists of a sub-pu inner edge. There are two coding block edges, one edge is shared between a P block (eg, CU P) and a Q block (eg, CU Q), and the other coding block edge is shared between a Q block (eg, CU Q) and an R block (eg, CU Q). , CU R). In order to apply a longer tap filter to the edge of the coding block without introducing filter overlaps and therefore without sacrificing parallel deblocking, the proposed solution only deblocks all inner sub-pu edges that overlap with the 16 x 16 grid. All other inner sub edges -pu does not subject deblocking to u. This situation is also depicted in FIG. 15, the dotted lines illustrate inner sub-pu edges that overlap with the 8 x 8 grid and do not deblock. The normal lines depict the inner edges of the sub-pu, which are overlaid with a 16 x 16 grid, so deblocking is applied to them. An important feature of this solution is that: a longer tap-off filter can be applied to CU edges and to inner sub-pu edges that are overlapped by a 16 x 16 grid.
Р, Q, R блок имеет размер блока, равный M × N, или N × M, или L × T, или T × L, и N или T, являющиеся четным целым числом 2n, превышающим пороговое значение (например, 8 или 16 и т.д.). Например, размер (т.е. ширина или высота) Р, Q, R блока может составлять 32 или 64 выборки.P, Q, R block has a block size equal to M × N, or N × M, or L × T, or T × L, and N or T being an even integer 2 n greater than a threshold value (for example, 8 or 16 etc.). For example, the size (ie, width or height) of the P, Q, R block may be 32 or 64 samples.
Для сетки 16 x 16, по меньшей мере, один внутренний край sub-pu, который перекрывается. В общем, для меньших блоков внутренний край первого и последнего sub-pu, перекрывающееся сеткой 8x8, будет только одним, и поэтому его нельзя подвергнуть удаление блочностиу. Это ситуация, изображенная на фиг.4.For a 16 x 16 grid, at least one inner sub-pu edge that overlaps. In general, for smaller blocks, the inner edge of the first and last sub-pu overlapped by the 8x8 grid will only be one, and therefore cannot be deblocked. This is the situation depicted in Fig.4.
На фиг.19 показана сетка 8 x 8. Сетка 8 x 8 будет иметь вертикальные и горизонтальные линии, разделенные с интервалом в 8 выборок. Сетка 16 x 16 будет иметь вертикальные и горизонтальные линии, разделенные интервалом в 16 выборок.19 shows an 8 x 8 grid. An 8 x 8 grid will have vertical and horizontal lines separated by 8 samples. A 16 x 16 grid will have vertical and horizontal lines separated by 16 samples.
Может использоваться шестой фильтр, такой как более длинный отводной фильтр, который модифицирует максимум 7 выборок по обе стороны от края субблока, то есть, NA'= NB' = 7. Между прочим, HEVC нормальный фильтр удаления блочности также может быть применен ко всем этим суб-pu краям, которые перекрываются сеткой 16 x 16. Как правило, HEVC нормальный фильтр удаления блочности может модифицировать максимум 3 выборки по обе стороны края. Когда применяется HEVC нормальный фильтр удаления блочности к этим краям sub-pu, которые перекрываются с сеткой 16 x 16, количество выборок, которые должны быть модифицированы с каждой стороны краев sub-pu, может быть адаптировано согласно различным сценариям.A sixth filter can be used, such as a longer tap filter that modifies a maximum of 7 samples on either side of the sub-block edge, i.e., NA'= NB' = 7. Incidentally, the HEVC normal deblocking filter can also be applied to all of these sub-pu edges that overlap with a 16 x 16 grid. Typically, a HEVC normal deblocking filter can modify a maximum of 3 samples on either side of an edge. When the HEVC normal deblocking filter is applied to these sub-pu edges that overlap with the 16 x 16 grid, the number of samples to be modified on each side of the sub-pu edges can be adapted according to different scenarios.
На фиг.15, то есть, для решения 4 (сетка 16 x 16), шестой фильтр может относиться к более длинному отводному фильтру. Более длинный отводной фильтр представляет собой фильтр, который модифицирует одинаковое количество выборок по обе стороны от края. В этом случае можно использовать любой более длинный отводной фильтр с NA'= NB' = 7, т.е. более длинный отводной фильтр может модифицировать не более 7 выборок с каждой стороны края. Если это более длинный отводной фильтр, то NA'= NB' = 7. Более длинный отводной фильтр модифицирует максимум 7 выборок по обе стороны от края sub-PU. Также можно применить HEVC нормальный фильтр. Для принятия решения о фильтрации и модификации фильтра используются выборки, внутренние для блока sub-pu.In Fig. 15, that is, for solution 4 (16 x 16 grid), the sixth filter may refer to the longer tap filter. The longer tap filter is a filter that modifies the same number of samples on either side of the edge. In this case any longer bypass filter with NA'= NB' = 7 can be used, i.e. a longer tap filter can modify no more than 7 samples on each side of the edge. If it is a longer tap filter, then NA'= NB' = 7. The longer tap filter modifies a maximum of 7 samples on either side of the sub-PU edge. You can also apply a HEVC normal filter. Samples internal to the sub-pu block are used to make the filtering decision and modify the filter.
Решение 5. В этом решении удаление блочности отключен для внутренних краев первого и последнего sub-pu, например, перекрытие сеткой 8 х 8. Для всех остальных краев sub-pu, например, с перекрытием с сеткой 8 x 8, может быть применен пятый фильтр (например, HEVC нормальный фильтр удаления блочности или любой другой фильтр), который модифицирует максимум до 4 выборок. Более длинный отводной фильтр удаления блочности можно безопасно применять ко всем краям CU.Solution 5: In this solution, deblocking is disabled for the inner edges of the first and last sub-pu, such as an 8 x 8 grid overlay. For all other sub-pu edges, such as an 8 x 8 grid overlap, a fifth filter can be applied (eg HEVC normal deblocking filter or any other filter) that modifies up to a maximum of 4 samples. The longer tap deblocking filter can be safely applied to all edges of the CU.
Как показано на фиг.16, пример состоит из трех блоков (blocks) кодирования P, Q, R. Q блок использует инструменты sub-pu, такие как Affine или ATMVP, и поэтому состоит из внутреннего края sub-pu. Имеется два края блоков кодирования, один край используется совместно между Р блоком и Q блоком и другой край блока кодирования используется совместно между Q блоком и R блоком. Чтобы применить более длинный отводной фильтр для края блока кодирования без введения перекрытий фильтров и, следовательно, без ущерба для параллельного удаления блочности, решение выполняет удаление блочности только всех внутренних краев sub-pu, за исключением краев первого и последнего sub-pu. Также пятый фильтр, такой как HEVC фильтр удаления блочности, который модифицирует максимум 3 выборки, или любой другой фильтр удаления блочности, который модифицирует максимум до 4 выборок, может использоваться для удаления блочности всех других внутренних краев sub-pu, кроме краев первого и последнего sub-pu. Следует отметить, что для внутренних краев sub-pu в этом решении 5, потому что каждый последующий край отстоит только на 8 выборок, поскольку мы обычно выполняем фильтрацию на сетке 8 × 8. Следовательно, в решении 5 можно использовать HEVC нормальный фильтр удаления блочности или любой другой фильтр, который может модифицировать максимум до 4 выборок.As shown in Fig. 16, the example consists of three coding blocks (blocks) P, Q, R. The Q block uses sub-pu tools such as Affine or ATMVP and therefore consists of a sub-pu inner edge. There are two coding block edges, one edge is shared between the P block and the Q block, and the other edge of the coding block is shared between the Q block and the R block. In order to apply a longer tap filter to the edge of the coding block without introducing filter overlaps and therefore without sacrificing parallel deblocking, the solution only deblocks all inner sub-pu edges except for the edges of the first and last sub-pu. Also a fifth filter, such as a HEVC deblocking filter that modifies a maximum of 3 samples, or any other deblocking filter that modifies a maximum of 4 samples, can be used to deblock all other inner sub-pu edges except the edges of the first and last sub -pu. It should be noted that for the sub-pu inner edges in this solution 5 because each subsequent edge is only 8 samples apart, since we usually filter on an 8×8 grid. Therefore, in solution 5, one can use the HEVC normal deblocking filter, or any other filter that can modify up to a maximum of 4 samples.
На фиг.16, то есть, для решения 5 (кроме первого и последнего), пятый фильтр может также относиться к более длинному отводному фильтру. Более длинный отводной фильтр может быть фильтром, который модифицирует одинаковое количество выборок по обе стороны от края. В этом случае можно использовать любой другой более длинный отводной фильтр с NA = NB = 4. Если это более длинный отводной фильтр, то NA = NB = 4. Более длинный отводной фильтр модифицирует максимум 4 выборки по обе стороны от края sub-PU. Также можно применить HEVC нормальный фильтр. Для принятия решения о фильтрации и модификации фильтра используются выборки, внутренние для блока sub-pu.In Fig. 16, that is, for solution 5 (except for the first and last), the fifth filter may also refer to the longer tap filter. The longer tap filter may be a filter that modifies the same number of samples on either side of the edge. In this case, any other longer tap filter can be used with NA = NB = 4. If it is a longer tap filter, then NA = NB = 4. The longer tap filter modifies a maximum of 4 samples on either side of the sub-PU edge. You can also apply a HEVC normal filter. Samples internal to the sub-pu block are used to make the filtering decision and modify the filter.
Р, Q, R блок имеет размер блока M × N или N × M, или L × T, или T × L, а N или T является четным целым числом 2n больше 8. Например, размер (такой как ширина или высота) Р, Q, R блока может составлять 32 или 64 выборки. В общем, для меньших блоков внутренние края первого и последнего sub-pu с перекрытием с сеткой 8x8, будет только одним, и поэтому нельзя выполнить удаление блочности. Это ситуация, изображенная на фиг.4.P, Q, R block has a block size of M × N or N × M or L × T or T × L, and N or T is an even integer 2 n greater than 8. For example, the size (such as width or height) The P, Q, R block may be 32 or 64 samples. In general, for smaller blocks, the inner edges of the first and last sub-pu overlap with the 8x8 grid will only be one, and therefore deblocking cannot be performed. This is the situation depicted in Fig.4.
Для края первого sub-pu и края последнего sub-pu между субблоками внутри первого Р блока кодирования или второго Q блока кодирования край первого sub-pu находится ближе всего к одному из первого Р блока кодирования и второго Q блока кодирования, и край последнего sub-pu является ближайшим к другому из первого Р блока кодирования и второго Q блока кодирования;For the edge of the first sub-pu and the edge of the last sub-pu between sub-blocks within the first P coding block or the second Q coding block, the edge of the first sub-pu is closest to one of the first P coding block and the second Q coding block, and the edge of the last sub- pu is closest to the other of the first P coding block and the second Q coding block;
Настоящее изобретение так же успешно применимо как к вертикальным краям, так и к горизонтальным краям. Настоящее изобретение может определять край первого sub-pu, используя верхнее левое положение (x, y) sub-pu блока, и для первого вертикального края мы можем сказать, что верхнее левое положение имеет (x + n, y + 8), в котором n является приращением по краю, но их положение является тем же самым. Для последнего вертикального края мы можем сказать, что положение находится рядом с положением соседних блоков (p, q), тогда положение последнего вертикального края будет начинаться с (p + n, q- 8). Для горизонтального края наоборот.The present invention applies equally well to both vertical edges and horizontal edges. The present invention can define the edge of the first sub-pu using the top left position (x, y) of the sub-pu block, and for the first vertical edge we can say that the top left position has (x + n, y + 8) in which n is edge increment, but their position is the same. For the last vertical edge, we can say that the position is near the position of neighboring blocks (p, q), then the position of the last vertical edge will start at (p + n, q- 8). For the horizontal edge, the opposite is true.
Подводя итог, можно сказать, что решения могут гарантировать возможность выполнения параллельных операций удаления блочности и, следовательно, улучшить субъективное и объективное качество кодирования видео. Решение 3 предусматривает отсутствие удаления блочности для всех внутренних краев sub-pu, тогда как решение 4 и решение 5, по меньшей мере, предусматривает применение удаления блочности для некоторых внутренних краев sub-pu.In summary, solutions can ensure that parallel deblocking operations can be performed and hence improve the subjective and objective quality of video encoding. Solution 3 calls for no deblocking for all sub-pu inner edges, while Solution 4 and Solution 5 at least apply deblocking for some of the sub-pu inner edges.
Этот подход также показан на фиг.15 или фиг.16. На фиг. 5 показано изображение 500, содержащее два блока 501, 502. Край 504 блока разделяет блоки 501 и 502. Край 505 блока разделяет блок 502 на блоки 5021 и 5022. Согласно первому варианту осуществления изобретения модифицируются семь значений выборки рядом с краем 504 блока внутри блока 501, и модифицируются три значения выборки рядом с краем 504 блока внутри блока 502, 5021, в то время как с обеих сторон края 504 блока два последовательных значения выборки используются в качестве входных значений фильтра. На фиг.9 изображены только соответствующие блоки 901 и 902 изображения 900, то же самое относится и к горизонтальным краям. Изобретение применимо ко всем типам блоков для применения более длинного отводного фильтра, изобретение применимо как для вертикальных, так и для горизонтальных краев, например, для вертикальных краев с шириной> 8.This approach is also shown in Fig.15 or Fig.16. In FIG. 5 shows an
В будущем стандарте кодирования видео может использоваться фильтр «длинного отвода», который модифицирует более 3 выборок. Далее фильтр с «длинным отводом», который использует 8 выборок в качестве входных значений фильтра и модифицирует до 7 выборок, может использоваться всякий раз, когда размер блока больше или равен 16 выборкам.A future video coding standard may use a "long tap" filter that modifies more than 3 samples. Further, a "long tap" filter that uses 8 samples as filter inputs and modifies to 7 samples can be used whenever the block size is greater than or equal to 16 samples.
Чтобы гарантировать возможность параллельного удаления блочности в таком сценарии, в котором текущий блок использует инструменты субблока, предлагаются следующие улучшенные механизмы:To ensure that parallel deblocking is possible in such a scenario where the current block uses subblock tools, the following improved mechanisms are proposed:
Механизм 1a: применить фильтр «длинного отвода», когда текущий размер блоков составляет ≥ 16 выборок, а также когда размер соседних блоков также составляет ≥ 16 выборок.Mechanism 1a: apply the "long tap" filter when the current block size is ≥ 16 samples, and also when the adjacent block size is also ≥ 16 samples.
Механизм 2a: применить «асимметричный фильтр», как объяснялось ранее.Mechanism 2a: apply an "asymmetric filter" as explained earlier.
Следовательно, «Асимметричный фильтр» модифицирует выборки, используемые в качестве входных значений, и модифицированные значения в соответствии с шириной блока:Therefore, "Asymmetric Filter" modifies the samples used as input values and the modified values according to the block width:
Например: еслиFor example: if
• ширина блока == 4, тогда в решении фильтрации можно использовать три выборки и может быть модифицирована одна выборка• block width == 4, then three samples can be used in the filter solution and one sample can be modified
• ширина блока == 8, тогда в решении фильтрации можно модифицировать и использовать 4 выборки• block width == 8, then 4 samples can be modified and used in the filtering solution
• для ширины блока> = 16 может быть применен более длинный отводной фильтр, • for block width >= 16 a longer bypass filter can be applied,
как описано ранее, например, в случае, если в текущем блоке используются инструменты субблока, модифицируется не более число МА значений выборки текущего блока (который использует инструменты субблока), смежные к краю блока на строку, и модифицируются не более число МВ выборки значения соседнего блока, смежные к краю блока на строку; MA ≠ MB, в частности, MA <MB, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7. Можно понять, что в сценарии, в котором текущий блок имеет инструменты субблока, MA и MB могут определяться на основании размера блока, другими словами, MA и MB зависят от размера блока соответствующего блока. В способе реализации для больших блоков, то есть, размера блока> = 32, максимальное модифицированное количество выборок может составлять 7 (соответствует длинному фильтру).as described earlier, for example, in the case where the current block uses subblock tools, no more than the number of MA sample values of the current block (which uses subblock tools) adjacent to the edge of the block per line are modified, and no more than the number of sample values of the adjacent block value MA are modified , adjacent to the edge of the block per line; MA ≠ MB, in particular MA < MB, for example, MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7. It can be understood that in a scenario in which the current block has sub-block tools, MA and MB may be determined based on the block size, in other words, MA and MB depend on the block size of the corresponding block. In the implementation for large blocks, ie, block size >= 32, the maximum modified number of samples can be 7 (corresponding to a long filter).
Фиг.6 является блок-схемой, иллюстрирующей примерное устройство 600 фильтра удаления блочности согласно описанным в настоящем изобретении технологиям (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг.7, 8 или фиг. 10, 11A, 11B, 12). Устройство 600 фильтра удаления блочности может быть выполнено с возможностью выполнять способы удаления блочности в соответствии с различными примерами, описанными в настоящем изобретении. В общем, один или оба из контурных фильтров 120 на фиг.1 и контурный фильтр 220 на фиг.2 может включать в себя компоненты, по существу, аналогичные компонентам устройства 600 фильтра удаления блочности. Другие устройства кодирования видео, такие как видеокодеры, видеодекодеры, видеокодеры/декодеры (CODEC) и т.п., также могут включать в себя компоненты, по существу, аналогичные фильтру 600 удаления блочности. Устройство 600 фильтра удаления блочности может быть реализовано в виде аппаратных средств, программного обеспечения, встроенного программного обеспечения или любой их комбинации. При реализации в программном обеспечении или встроенном программном обеспечении также может быть предоставлено соответствующее оборудование (например, один или более процессоров или процессоров и память для хранения инструкций для программного обеспечения или встроенного программного обеспечения).6 is a block diagram illustrating an exemplary
В примере на фиг. 6, устройство 600 фильтра удаления блочности включает в себя блок 604 определения удаления блочности, определения 602 поддержки, хранящиеся в памяти, блок 606 фильтрации удаления блочности, параметры 608 фильтра удаления блочности, хранящиеся в памяти, блок 603 локализации краев и структуру 605 данных местоположений краев. Любой или все компоненты фильтра 600 удаления блочности могут быть функционально интегрированы. Компоненты фильтра 600 удаления блочности показаны отдельно только в целях иллюстрации. В общем, фильтр 600 удаления блочности принимает данные для декодированных блоков, например, из компонента 114, 214 суммирования, который объединяет данные предсказания с остаточными данными для блоков. Данные могут дополнительно включать в себя указание того, как были предсказаны блоки. В примере, описанном ниже, устройство 600 фильтра удаления блочности выполнено с возможностью принимать данные, включающие в себя декодированный видеоблок, ассоциированный с CTB (или LCU), и дерево квадрантов CU для CTB, в котором дерево квадрантов CU описывает, как CTB разбивается на CU и режимы предсказания для PUs и TUs листового узла CUs.In the example in FIG. 6, the
Устройство 600 фильтра удаления блочности может поддерживать структуру 605 данных местоположений краев в памяти устройства 600 фильтра удаления блочности или во внешней памяти, предоставленной соответствующим устройством кодирования видео. В некоторых примерах блок 603 локализации краев может принимать дерево квадрантов, соответствующее CTB, которое указывает, как CTB разбивается на CUs. Блок 603 локализации краев может затем анализировать дерево квадрантов CU для определения краев между декодированными видеоблоками, ассоциированными с TUs и PUs CUs в CTB, которые являются кандидатами на удаление блочности.The
Структура 605 данных местоположений краев может содержать массив, имеющий горизонтальный размер, вертикальный размер и размер, представляющий горизонтальные края и вертикальные края. В общем, края между видеоблоками могут возникать между двумя видеоблоками, ассоциированные с CUs наименьшего размера CTB или TUs и PUs для CUs. Предполагая, что CTB имеет размер N × N, и предполагая, что CU наименьшего размера CTB имеет размер M × M, массив может содержать размер [N / M] × [N / M] × 2, в котором «2» представляет два возможных направления краев между CUs (горизонтальное и вертикальное). Например, предполагая, что CTB имеет 64 × 64 пикселя и CU наименьшего размера 8 × 8, массив может содержать [8] × [8] × [2] записи.The edge location data structure 605 may contain an array having a horizontal size, a vertical size, and a size representing the horizontal edges and the vertical edges. In general, edges between video blocks may occur between two video blocks associated with the smallest CTB size CUs or TUs and PUs for CUs. Assuming the CTB is of size N × N, and assuming the CU of the smallest CTB is of size M × M, the array may contain a size of [N/M] × [N/M] × 2, in which "2" represents two possible edge directions between CUs (horizontal and vertical). For example, assuming the CTB is 64×64 pixels and the smallest CU is 8×8, the array could contain [8]×[8]×[2] entries.
Каждая запись обычно может соответствовать возможному краю между двумя видеоблоками. На самом деле края могут отсутствовать на каждой из позиций в пределах LCU, соответствующей каждой из записей структуры 605 данных местоположений краев. Соответственно, значения структуры данных могут быть инициализированы как ложные. В общем, блок 603 локализации краев может анализировать дерево квадрантов CU, чтобы определять местоположения краев между двумя видеоблоками, ассоциированные с TUs и PUs блоков CUs CTB, и устанавливать соответствующие значения в структуре 605 данных местоположений краев как истинные.Each entry can typically correspond to a possible edge between two video blocks. In fact, edges may be missing at each of the positions within the LCU corresponding to each of the entries in the edge location data structure 605. Accordingly, the values of the data structure can be initialized as false. In general, the
В общем, записи массива могут описывать, существует ли соответствующий край в CTB в качестве кандидата на удаление блочности. То есть, когда блок 603 локализации краев определяет, что при наличии края между двумя соседними видеоблоками, ассоциированные с TUs и PUs из CUs CTB, блок 603 локализации краев может установить значение соответствующей записи в структуре 605 данных местоположений краев для указания наличия края (например, со значением «истина»).In general, the array entries may describe whether a corresponding edge exists in the CTB as a deblocking candidate. That is, when the
Блок 604 определения удаления блочности обычно определяет, следует ли выполнять удаление блочности края между двумя блоками для двух соседних блоков. Блок 604 определения удаления блочности может определять местоположения краев с использованием структуры 605 данных местоположений краев. Когда значение структуры 605 данных местоположений краев имеет логическое значение, блок 604 определения удаления блочности может определять, что «истинное» значение указывает на наличие края, и значение «ложное» указывает, что в некоторых примерах край отсутствует.Deblocking determination block 604 generally determines whether to perform edge deblocking between two blocks for two adjacent blocks. Deblocking determiner 604 may determine edge locations using edge location data structure 605 . When the value of the edge location data structure 605 is a Boolean value, the deblocking determiner 604 may determine that a "true" value indicates the presence of an edge, and a value of "false" indicates that an edge is missing in some examples.
В общем, блок 604 определения удаления блочности сконфигурирован с одной или несколькими функциями определения удаления блочности. Функции могут включать в себя множество коэффициентов, применяемых к линиям пикселей, которые пересекают край между блоками. Например, функции могут применяться к строке пикселей, которая перпендикулярна краю, в котором MA (например, 3, 4 или 5) пикселей находятся в одном из двух блоков, и пиксели MB (например, 7) находятся в другом из двух блоков. Определения 602 поддержки определяют поддержку функций. В общем, «поддержка» соответствует пикселям, к которым применяются функции.In general, the deblocking determination block 604 is configured with one or more deblocking determination functions. The features may include a plurality of coefficients applied to lines of pixels that cross an edge between blocks. For example, the functions may be applied to a row of pixels that is perpendicular to an edge in which MA (eg, 3, 4, or 5) pixels are in one of the two blocks and MB (eg, 7) pixels are in the other of the two blocks.
Блок 604 определения удаления блочности может быть выполнен с возможностью применять одну или более функций определения удаления блочности к одному или нескольким наборам поддержки, как определено определениями 602 поддержки, для определения, следует ли выполнять удаление блочности конкретного края между двумя блоками видеоданных. Пунктирная линия, исходящая из блока 604 определения удаления блочности, представляет данные для блоков, выводимых без фильтрации. В случаях, когда блок 604 определения удаления блочности определяет, что край между двумя блоками не должен фильтроваться, фильтр 600 удаления блочности может выводить данные для блоков без изменения данных. То есть, данные могут обойти блок 606 фильтрации удаления блочности. С другой стороны, когда блок 604 определения удаления блочности определяет, что край должен быть подвергнут удалению блочности, блок 604 определения удаления блочности может побудить блок 606 фильтрации удаления блочности отфильтровать значения соседних пикселей для выполнения удаления блочности края.Deblocking determiner 604 may be configured to apply one or more deblocking determination functions to one or more support sets, as determined by
Блок 606 фильтрации удаления блочности извлекает определения фильтров удаления блочности из параметров 608 фильтра удаления блочности для краев, которые должны быть подвергнуты удаление блочностиу, как указано блоком 604 определения удаления блочности. В общем, фильтрация края использует значения пикселей из окрестности текущего края, подлежащего удаление блочностиу. Следовательно, как функции принятия решения удаления блочности, так и фильтры удаления блочности могут иметь определенную область поддержки с обеих сторон края. Применяя фильтр удаления блочности к пикселям в окрестности края, блок 606 фильтрации удаления блочности может сглаживать значения пикселей посредством подавления высокочастотных переходов около края. Таким образом, применение фильтров удаления блочности к пикселям около края может уменьшить артефакты блочности около края.The deblock filter block 606 retrieves the deblock filter definitions from the deblock filter parameters 608 for the edges to be deblocked, as indicated by the deblock determine block 604 . In general, edge filtering uses pixel values from the vicinity of the current edge to be deblocked. Therefore, both deblocking decision functions and deblocking filters can have a defined support area on both sides of the edge. By applying a deblocking filter to pixels in the vicinity of an edge, the
Фиг.10 является блок-схемой алгоритма, иллюстрирующей примерный способ удаления блочности согласно описанным в настоящем изобретении технологиям (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг.7, 8).10 is a flowchart illustrating an exemplary deblocking method according to the techniques described in the present invention (further details will be described below, for example, with reference to FIGS. 7, 8).
На фиг.10 показан вариант осуществления способа удаления блочности.10 shows an embodiment of the deblocking method.
На первом этапе 1001 определяются края между блоками, в котором края между блоками содержат край блока между первым блоком кодирования и вторым блоком кодирования и край субблока между субблоками первого блока кодирования или второго блока кодирования (например, первый блок кодирования или второй блок кодирования имеет субблоки, или первый блок кодирования или второй блок кодирования имеет инструменты субблока), в котором первый блок кодирования имеет размер блока M × N или N × M второй блок кодирования имеет размер L × T или T × L, а N или T является четным целым числом 2n, превышающее пороговое значение (например, 8 или 16 и т. д.);In a
На втором этапе 1002 определяется, должен ли край блока между первым блоком кодирования и вторым блоком кодирования быть отфильтрован путем применения первого фильтра (более длинного отводного фильтра или асимметричного фильтра, или асимметричного длинного фильтра или асимметричного отводного фильтра); другими словами, определяется, выполняется ли удаление блочности края блока между первым блоком кодирования и вторым блоком кодирования путем применения первого фильтра (то есть, более длинного отводного фильтра или асимметричного фильтра, или асимметричного отводного фильтра, или асимметричного длинного фильтра);In the
На третьем этапе 1003 применяется первый фильтр (более длинный отводной фильтр, или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный более длинный отводной фильтр) к значениям выборок (то есть, входным пикселям) вблизи края блока между первым блоком кодирования и вторым блоком кодирования, когда определено, что край блока между первым блоком кодирования и вторым блоком кодирования должен быть отфильтрован путем применения первого фильтра, в котором в случае, когда первый блок кодирования имеет субблоки (или первый блок кодирования имеет инструменты субблока, первый блок кодирования является текущим блоком, и второй блок кодирования является соседним блоком текущего блока), модифицируется не более число МА значений выборок первого блока кодирования, смежного (т. е. перпендикулярного) краю блока на строку и модифицируется не более число МВ значений выборок второго блока кодирования, смежного (т. е. перпендикулярного) краю блока на строку; или, в случае, когда второй блок кодирования имеет субблоки (или второй блок кодирования имеет инструменты субблока, второй блок кодирования является текущим блоком и первый блок кодирования является соседним блоком текущего блока), модифицируется не более число МА значений выборок второго блока кодирования, смежных (т. е. перпендикулярных) краю блока на строку, и модифицируется не более число МВ значений выборок первого блока кодирования, смежных (т. е. перпендикулярных) краю блока на строки, MA ≠ MB, в частности, MA <MB, например MA <MB = 7.In a
Например, MA = 3 и MB = 7,For example, MA = 3 and MB = 7,
MA = 4 и MB = 7, илиMA = 4 and MB = 7, or
MA = 5 и MB = 7.MA = 5 and MB = 7.
Можно понять, что в сценарии, в котором текущий блок имеет инструменты субблока, MA и MB могут определяться на основании размера блока, другими словами, MA и MB зависят от размера блока соответствующего блока. В способе реализации для больших блоков, то есть, размера блока > = 32, максимальное количество модифицированных выборок может составлять 7 (соответствует длинному фильтру).It can be understood that in a scenario in which the current block has sub-block tools, MA and MB may be determined based on the block size, in other words, MA and MB depend on the block size of the corresponding block. In the implementation for large blocks, ie, block size >= 32, the maximum number of modified samples can be 7 (corresponding to a long filter).
Входные пиксели соответствуют значениям пикселей или значениям выборок, используемым для фильтрации, и выходные пиксели соответствуют модифицированным значениям выборок. Следует отметить, что входные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Кроме того, выходные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока.The input pixels correspond to the pixel values or sample values used for filtering, and the output pixels correspond to the modified sample values. It should be noted that the input pixels may be consecutive pixels perpendicular to the block edge, starting at the block edge. In addition, the output pixels may be successive pixels perpendicular to the edge of the block, starting at the edge of the block.
В последующем описании может быть сделана ссылка на ранее описанные подробности способа удаления блочности и повторно не приводятся.In the following description, reference may be made to previously described details of the deblocking method and will not be repeated.
Фиг. 11A является блок-схемой алгоритма, иллюстрирующей другой примерный способ удаления блочности согласно описанным в настоящем изобретении технологиям (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг. 7, 8).Fig. 11A is a flowchart illustrating another exemplary deblocking method according to the technologies described herein (further details will be described below, for example, with reference to FIGS. 7, 8).
На фиг. 11A показан другой вариант способа удаления блочности.In FIG. 11A shows another version of the deblocking method.
На первом этапе 1101 определяются края между блоками, в котором края между блоками содержат край блока между первым блоком кодирования и вторым блоком кодирования и край субблока между субблоками первого блока кодирования или второго блока кодирования, в котором первый блок кодирования имеет размер M × N или N × M, второй блок кодирования имеет размер L × T или T × L, а N или T является четным целым числом 2n, превышающим пороговое значение (например, 8 или 16 и т.д.);In a
На втором этапе 1102 определяется, должен ли край блока между первым блоком кодирования и вторым блоком кодирования быть отфильтрован путем применения первого фильтра (более длинного отводного фильтра или асимметричного фильтра, или асимметричного отводного фильтра или асимметричного длинного фильтра); другими словами, определяется, выполняется ли удаление блочности края блока между первым блоком кодирования и вторым блоком кодирования путем применения первого фильтра (более длинного отводного фильтра или асимметричного фильтра, или асимметричного отводного фильтра, или асимметричного длинного фильтра);In the
На втором этапе 1103 применяется третий фильтр к значениям выборок (то есть, входным пикселям) около края блока между первым блоком кодирования и вторым блоком кодирования, когда определено, что край блока между первым блоком кодирования и вторым блоком кодирования не должен фильтроваться путем применения первого фильтра, в котором модифицируется не более число MA значений выборок первого блока кодирования, смежного (т. е. перпендикулярно) краю блока на строку, и модифицируются не более число MB выборок значения второго блока кодирования, смежного (то есть, перпендикулярного) краю блока на строку, MA = MB, например, MA = MB = 4.In a
Можно понять, что первый блок кодирования является текущим блоком и второй блок кодирования является соседним блоком текущего блока, или второй блок кодирования является текущим блоком и первый блок кодирования является соседним блоком текущего блока.It can be understood that the first coding block is the current block and the second coding block is a neighboring block of the current block, or the second coding block is the current block and the first coding block is a neighboring block of the current block.
Входные пиксели соответствуют значениям пикселей или значениям выборок, используемым для фильтрации, и выходные пиксели соответствуют модифицированным значениям выборок. Следует отметить, что входные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Кроме того, выходные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока.The input pixels correspond to the pixel values or sample values used for filtering, and the output pixels correspond to the modified sample values. It should be noted that the input pixels can be successive pixels perpendicular to the block edge, starting from the block edge. In addition, the output pixels may be successive pixels perpendicular to the edge of the block, starting at the edge of the block.
Далее может быть сделана ссылка на ранее раскрытые подробности примерного способа удаления блочности и повторения опущены.Further reference may be made to previously disclosed details of an exemplary deblocking method and repetition are omitted.
Фиг. 11B является блок-схемой алгоритма, иллюстрирующая другой примерный способ удаления блочности согласно описанным в настоящем изобретении технологиям (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг. 7, 8).Fig. 11B is a flowchart illustrating another exemplary deblocking method according to the technologies described herein (further details will be described below, for example, with reference to FIGS. 7, 8).
На фиг. 11B показан другой вариант способа удаления блочности.In FIG. 11B shows another version of the deblocking method.
На первом этапе 1121 определяются края между блоками, в котором края между блоками содержат край блока между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования, в котором первый Р блок кодирования имеет размер M × N или N × M, второй Q блок кодирования имеет размер блока L × T или T × L, а N или T является четным целым числом 2n больше порогового значения (например, 8 или 16 и т. д.);In a
На втором этапе 1122 определяется, что край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования не должен фильтроваться; другими словами, определяется, что край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования не подвергается удалению блочности;In a
На третьем этапе 1123 применяется четвертый фильтр (например, нормальный более длинный отводной фильтр) к значениям выборок (то есть, входным пикселям) около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, в котором модифицируются число MA значений выборок первого блока кодирования, смежного (т. е. перпендикулярно) краю блока, и модифицируются число МВ значений выборок второго блока кодирования, смежного (т. е. перпендикулярно) краю блока, MA = MB = 7.In the
Очевидно, что первый блок кодирования является текущим блоком и второй блок кодирования является соседним блоком текущего блока, или второй блок кодирования является текущим блоком и первый блок кодирования является соседним блоком текущего блока.Obviously, the first coding block is the current block and the second coding block is a neighboring block of the current block, or the second coding block is the current block and the first coding block is a neighboring block of the current block.
Входные пиксели соответствуют значениям пикселей или значениям выборок, используемым для фильтрации, и выходные пиксели соответствуют модифицированным значениям выборок. Следует отметить, что входные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Кроме того, выходные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока.The input pixels correspond to the pixel values or sample values used for filtering, and the output pixels correspond to the modified sample values. It should be noted that the input pixels can be successive pixels perpendicular to the block edge, starting from the block edge. In addition, the output pixels may be successive pixels perpendicular to the edge of the block, starting at the edge of the block.
Фиг.12 является блок-схемой алгоритма, иллюстрирующей другой примерный способ удаления блочности согласно описанным в настоящем изобретении технологиям (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг.7, 8, 10, 11A, 11B, 12 и фиг.15, 16).Fig. 12 is a flowchart illustrating another exemplary deblocking method according to the technologies described in the present invention (further details will be described below, for example, with reference to Figs. 7, 8, 10, 11A, 11B, 12 and Fig. 15 , 16).
На фиг. 12 показан другой вариант способа удаления блочности.In FIG. 12 shows another version of the deblocking method.
На первом этапе 1201 края между блоками, в котором определяются края между блоками содержат край блока между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором первый Р блок кодирования имеет размер M × N или N × M, второй Q блок кодирования имеет размер L × T или T × L, например, N или T быть четным целым числом 2n, превышающим пороговое значение (например, 8 или 16 и т. д.);In the
На втором этапе 1202 определяется, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования и первый набор краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования должны быть отфильтрованы, и второй набор краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования не должен фильтроваться; иIn a
На третьем этапе 1203 выполняется фильтрация удаления блочности при значениях выборок рядом с краем блока между первым Р блоком кодирования и вторым Q блоком кодирования, и выполняется фильтрация удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого блока кодирования P и/или второго Q блока кодирования.In a
Очевидно, что первый блок кодирования является текущим блоком и второй блок кодирования является соседним блоком текущего блока, или второй блок кодирования является текущим блоком и первый блок кодирования является соседним блоком текущего блока.Obviously, the first coding block is the current block and the second coding block is a neighboring block of the current block, or the second coding block is the current block and the first coding block is a neighboring block of the current block.
Входные пиксели соответствуют значениям пикселей или значениям выборок, используемым для фильтрации и выходные пиксели соответствуют модифицированным значениям выборок. Следует отметить, что входные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Кроме того, выходные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока.The input pixels correspond to the pixel values or sample values used for filtering and the output pixels correspond to the modified sample values. It should be noted that the input pixels can be successive pixels perpendicular to the block edge, starting from the block edge. In addition, the output pixels may be successive pixels perpendicular to the edge of the block, starting at the edge of the block.
Как показано на фиг.16, первый набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования содержит (состоит из) множество краев субблока, за исключением края первого субблока и края последнего субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором край первого субблока находится ближе всего к одному из первого Р блока кодирования и второго Q блока кодирования, и последний край субблока является ближайшим к другому из первого Р блока кодирования и второго Q блока кодирования;As shown in FIG. 16, the first set of subblock edges between subblocks within the first coding block and/or the second coding block comprises (consists of) a plurality of subblock edges except for the first subblock edge and the last subblock edge between subblocks within the first P coding block and/ or a second Q coding block, in which the edge of the first subblock is closest to one of the first P coding block and the second Q coding block, and the last edge of the subblock is closest to the other of the first P coding block and the second Q coding block;
второй набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования состоит из края первого субблока и края последнего субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором край первого субблока находится ближе всего к одному из первого Р блока кодирования и второго Q блока кодирования, и край последнего субблока находится ближе всего к другому из первого Р блока кодирования и второго Q блока кодирования.the second set of subblock edges between subblocks within the first coding block and/or the second coding block consists of the first subblock edge and the last subblock edge between subblocks within the first P coding block and/or the second Q coding block in which the first subblock edge is closest to one of the first P coding block and the second Q coding block, and the edge of the last sub-block is closest to the other of the first P coding block and the second Q coding block.
На втором этапе 1203 этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками первого Р блока кодирования и/или второго Q блока кодирования содержит:In a
применение пятого фильтра к значениям выборок около каждого из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором модифицируются не более число NA значений выборок на одной стороне соответствующего блока из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, и модифицируются не более число NB значений выборок на другой стороне соответствующего одного из первого набора субблока края, NA = NB = 4.applying a fifth filter to the sample values near each of the first set of subblock edges within the first P coding block and/or the second Q coding block, in which at most NA number of sample values on one side of the corresponding block from the first set of subblock edges within the first P coding block are modified and/or a second Q coding block, and no more than the number NB of sample values on the other side of the corresponding one of the first edge subblock set, NA = NB = 4, are modified.
Если внутри первого Р блока кодирования отсутствуют края субблока между субблоками, и при наличии множества краев субблока между субблоками внутри второго Q блока кодирования, на втором этапе 1203 этап выполнения фильтрации удаления блочности по значениям выборок рядом с каждым из первого набора краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, содержит:If there are no subblock edges between subblocks within the first P coding block, and if there are multiple subblock edges between subblocks within the second Q coding block, in a second step 1203 a step of performing deblocking filtering on sample values near each of the first set of subblock edges between subblocks within the first The P of the coding block and/or the second Q of the coding block contains:
определение отфильтрованного значения выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования на основании следующего уравнения, когда принято решение применять пятый фильтр для HEVC фильтрации удаления блочности:filtered value definition samples of the corresponding sample of the current row or column of samples on the corresponding side of the vertical or horizontal edge of the sub-block within the second Q coding block based on the following equation, when it is decided to apply the fifth filter for HEVC deblocking filtering:
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i = 0, 1, j = 0, 1..3.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i = 0, 1, j = 0, 1..3 .
Как показано на фиг.15, первый набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования содержит (состоит из) один или более краев субблока, которые перекрываются с сеткой 16 x 16 между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования;As shown in FIG. 15, the first set of subblock edges between subblocks within the first coding block and/or second coding block comprises (consists of) one or more subblock edges that overlap with a 16 x 16 grid between subblocks within the first P coding block and/ or a second Q coding block;
второй набор краев субблока между субблоками внутри первого или второго блока кодирования содержит (состоит из) один или более краев субблока, за исключением краев субблока, которые перекрываются сеткой 16 x 16 между субблоками внутри первого Р блок кодирования и/или второго Q блока кодирования.the second set of subblock edges between subblocks within the first or second coding block comprises (consists of) one or more subblock edges, excluding subblock edges that overlap with a 16 x 16 grid between subblocks within the first P coding block and/or the second Q coding block.
Соответственно, на втором этапе 1203 этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками первого Р блока кодирования и/или второго Q блока кодирования содержит:Accordingly, in the
применение шестого фильтра к значениям выборок рядом с каждым из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором модифицируется не более число NA' значений выборок на одной стороне соответствующего одного из первого набора краев субблока внутри первого Р блока кодирования или второго Q блока кодирования, и модифицируется не более число NB' значений выборок на другой стороне соответствующего одного из первого набора субблока края, NA'= NB' = 7.applying a sixth filter to the sample values adjacent to each of the first set of subblock edges within the first P coding block and/or the second Q coding block that modifies at most NA' of sample values on one side of the corresponding one of the first set of subblock edges within the first P of a coding block or a second Q coding block, and no more than the number NB' of sample values on the other side of the corresponding one of the first edge subblock set, NA'=NB' = 7, is modified.
Если внутри первого Р блока кодирования отсутствует край субблока между субблоками, и при наличии множества краев субблока между субблоками внутри второго Q блока кодирования (например, если первый Р блок кодирования не имеет субблоков, но второй Q блок кодирования имеет субблоки),If there is no subblock edge between subblocks within the first P coding block, and if there are multiple subblock edges between subblocks within the second Q coding block (for example, if the first P coding block has no subblocks, but the second Q coding block has subblocks),
Соответственно, на втором этапе 1203 этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования содержит:Accordingly, in the
определение отфильтрованного значения выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования на основании следующего уравнения:filtered value definition samples of the corresponding sample of the current row or column of samples on the corresponding side of the vertical or horizontal sub-block edge within the second Q coding block based on the following equation:
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
В случае наличия множества краев субблока между субблоками внутри первого Р блока кодирования и наличия множества краев субблока между субблоками внутри второго Q блока кодирования, на втором этапе 1203 этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, содержит:In the case of having a plurality of subblock edges between subblocks within a first P coding block and having a plurality of subblock edges between subblocks within a second Q coding block, in a second step 1203 a step of performing deblocking filtering at sample values around each of the first set of subblock edges between subblocks within the first P coding block and/or second Q coding block, contains:
определение отфильтрованного значения и соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования и первого Р блока кодирования соответственно на основании следующего уравнения:filtered value definition and of the corresponding sample of the current row or column of samples on the respective side of the vertical or horizontal sub-block edge within the second Q coding block and the first P coding block, respectively, based on the following equation:
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; и/или ; and/or
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
Способ удаления блочности согласно вариантам осуществления дополнительно содержит:The deblocking method according to the embodiments further comprises:
определение, следует ли фильтровать край блока между первым Р блоком кодирования и вторым Q блоком кодирования, применяя первый фильтр; и первый фильтр применяется к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования должен быть фильтрован с применением первого фильтра, в котором модифицируется не более число MA значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируется не более число MB значений выборок второго блока кодирования, смежного с краем блока, на каждую строку; или модифицируется не более число МА значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок первого блока кодирования, смежного с краем блока на строку, MA ≠ MB , в частности MA <MB, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7.determining whether to filter a block edge between the first P coding block and the second Q coding block by applying the first filter; and the first filter is applied to the sample values near the block edge between the first P coding block and the second Q coding block when it is determined that the block edge between the first P coding block and the second Q coding block is to be filtered by applying the first filter in which at most the number MA of sample values of the first coding block adjacent to the block edge per line, and is modified by no more than the number MB of sample values of the second coding block adjacent to the block edge per line; or at most the number MA of sample values of the second coding block adjacent to the block edge per line is modified, and at most the number MB of sample values of the first coding block adjacent to the edge of the block per line is modified, MA ≠ MB , in particular MA < MB, for example, MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7.
В случае при наличии множества краев субблока между субблоками внутри первого блока кодирования и при наличии множества краев субблока между субблоками внутри второго блока кодирования, способ дополнительно содержит:In the case where there are multiple subblock edges between subblocks within the first coding block and if there are multiple subblock edges between subblocks within the second coding block, the method further comprises:
определение, что край блока между первым блоком кодирования и вторым блоком кодирования должен быть отфильтрован путем применения второго фильтра; и второй фильтр применяется к значениям выборок около края блока, когда определено, что край блока между первым блоком кодирования и вторым блоком кодирования должен быть отфильтрован путем применения второго фильтра, в котором модифицируются число MA' выборки значения первого блока кодирования, смежного с краем блока, и модифицируются число МВ' значений выборок второго блока кодирования, смежного с краем блока, MA' = 3 и MB '= 3.determining that a block edge between the first coding block and the second coding block is to be filtered by applying a second filter; and a second filter is applied to sample values near a block edge when it is determined that a block edge between the first coding block and the second coding block is to be filtered by applying a second filter in which the sample number MA' of the value of the first coding block adjacent to the block edge is modified, and the number of sample values MB' of the second coding block adjacent to the edge of the block, MA'=3 and MB'=3, is modified.
Когда во втором блоке кодирования отсутствует край субблока между субблоками, модифицируется не более числа MA значений выборок первого блока кодирования, примыкающего к краю блока на строку, и модифицируется не более число MB значений выборок второго блока кодирования, смежный с краем блока на строку, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7;When there is no subblock edge between subblocks in the second coding block, at most the number MA of sample values of the first coding block adjacent to the block edge per line is modified, and at most the number MB of sample values of the second coding block adjacent to the block edge per line is modified, MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7;
илиor
когда внутри первого блока кодирования отсутствует край субблока между субблоками, модифицируется не более число MA значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число MB значений выборок первого блок кодирования, смежный с краем блока на строку, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7.when there is no subblock edge between subblocks within the first coding block, at most the number MA of sample values of the second coding block adjacent to the block edge per line is modified, and at most the number MB of sample values of the first coding block adjacent to the block edge per line is modified, MA = 3 and MB = 7, or MA = 4 and MB = 7, or MA = 5 and MB = 7.
Способ, дополнительно содержащий: определение, должен ли край блока между первым блоком кодирования и вторым блоком кодирования быть отфильтрован путем применения первого фильтра на основанииThe method, further comprising: determining whether a block edge between the first coding block and the second coding block should be filtered by applying the first filter based on
- не более числа DA значений выборок первого блока кодирования, смежного с краем блока, в качестве значений решения первого фильтра, DA = 4 и- no more than the number DA of sample values of the first coding block adjacent to the edge of the block as the decision values of the first filter, DA = 4 and
- не более числа DB значений выборок второго блока кодирования, смежного с краем блока, в качестве значений решения второго фильтра, DB = 4.- no more than the number DB of sample values of the second coding block adjacent to the edge of the block as decision values of the second filter, DB = 4.
При наличии множества краев субблока между субблоками внутри второго Q блока кодирования, способ дополнительно содержит: определение, удовлетворяется ли первое условие, определенное следующим первым уравнением:If there are multiple sub-block edges between sub-blocks within the second Q coding block, the method further comprises: determining if the first condition defined by the following first equation is satisfied:
в котором β обозначает параметр порогового значения и qi представляют значения выборок второго Q блока кодирования, i = 0,1,2,3 и pj представляют значения выборок первого Р блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.in which β denotes the threshold parameter and q i represent the sample values of the second Q coding block, i = 0,1,2,3 and p j represent the sample values of the first P coding block, j = 0, 3, 4, 7 or j = 0, 2, 3, 5.
При наличии внутри первого Р блока кодирования множества краев субблока между субблоками, способ дополнительно содержит: определение, удовлетворяется ли второе условие, определенное следующим вторым уравнением:If there is a plurality of sub-block edges between sub-blocks within the first P coding block, the method further comprises: determining whether the second condition is satisfied, as defined by the following second equation:
в котором β обозначает параметр порогового значения и pi представляет значения выборок первого Р блока кодирования, i = 0,1,2,3 и qj представляют значения выборок второго Q блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.where β denotes the threshold parameter and p i represents the sample values of the first P coding block, i = 0,1,2,3 and q j represent the sample values of the second Q coding block, j = 0, 3, 4, 7, or j = 0, 2, 3, 5.
Параметр β порогового значения определяется на основании параметра квантования, QP, ассоциированного с размером шага квантования множества выборок, илиThe threshold parameter β is determined based on the quantization parameter, QP, associated with the quantization step size of the plurality of samples, or
параметр β порогового значения определяется на основании параметра квантования, QP, с использованием справочной таблицы.the threshold parameter β is determined based on the quantization parameter, QP, using a look-up table.
Если край субблока между субблоками отсутствует внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок вблизи края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержит:If there is no subblock edge between subblocks within the first P coding block, and if there is a subblock edge between subblocks within the second Q coding block, the step of performing deblocking filtering on sample values near the block edge between the first P coding block and the second Q coding block comprises:
определение отфильтрованного значения выборки первой выборки текущей строки или столбца выборок справа или снизу от вертикального или горизонтального края между первым Р блоком кодирования и вторым Q блоком кодирования на основании следующего уравнения:filtered value definition samples of the first sample of the current row or column of samples to the right or below the vertical or horizontal edge between the first P coding block and the second Q coding block based on the following equation:
; ;
илиor
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
При отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок вблизи края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержат:If there is no subblock edge between subblocks within the first P coding block and if there is a subblock edge between subblocks within the second Q coding block, the step of performing deblocking filtering on sample values near the block edge between the first P coding block and the second Q coding block comprises:
определение отфильтрованного значения выборки второй выборки текущей строки или столбца выборок справа или снизу от вертикального или горизонтального края между первым Р блоком кодирования и вторым Q блоком кодирования на основании следующего уравнения:filtered value definition samples of the second sample of the current row or column of samples to the right or below the vertical or horizontal edge between the first P coding block and the second Q coding block based on the following equation:
; ;
или or
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block q j represents the corresponding sample value of a portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
При отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок вблизи края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержит:If there is no subblock edge between subblocks within the first P coding block and if there is a subblock edge between subblocks within the second Q coding block, the step of performing deblocking filtering on sample values near the block edge between the first P coding block and the second Q coding block comprises:
определение отфильтрованного значения выборки третьей выборки текущей строки или столбца выборок справа или снизу от вертикального или горизонтального края между первым Р блоком кодирования и вторым Q блоком кодирования на основании следующего уравнения:filtered value definition samples of the third sample of the current row or column of samples to the right or below the vertical or horizontal edge between the first P coding block and the second Q coding block based on the following equation:
; ;
илиor
; ;
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
При отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок вблизи края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержит:If there is no subblock edge between subblocks within the first P coding block and if there is a subblock edge between subblocks within the second Q coding block, the step of performing deblocking filtering on sample values near the block edge between the first P coding block and the second Q coding block comprises:
определение отфильтрованного значения выборки соответствующей выборки текущей строки или столбца выборок слева или вверху от вертикального или горизонтального края между первым и вторым блоком кодирования на основании следующего уравнения:filtered value definition samples of the corresponding sample of the current row or column of samples to the left or top of the vertical or horizontal edge between the first and second coding block based on the following equation:
, ,
, ,
, ,
, ,
, ,
, ,
, ,
в котором pi представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qj представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.in which p i represents the corresponding sample value of a portion of the current row or column of samples of the first P coding block and q j represents the corresponding sample value of the portion of the current row or column of samples of the second Q coding block, i, j = 0, 1..7.
Способ удаления блочности согласно вариантам осуществления дополнительно содержит:The deblocking method according to the embodiments further comprises:
определение, следует ли фильтровать край блока между первым Р блоком кодирования и вторым Q блоком кодирования, применяя первый фильтр; и третий фильтр применяется к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определяется, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования не должен быть отфильтрован путем применения первого фильтра, в котором модифицируются не более число МА значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируются не более число МВ значений выборок второго блока кодирования, смежного с краем блока на строку, MA = MB = 4.determining whether to filter a block edge between the first P coding block and the second Q coding block by applying the first filter; and a third filter is applied to sample values near a block edge between the first P coding block and the second Q coding block when it is determined that the block edge between the first P coding block and the second Q coding block is not to be filtered by applying a first filter in which not more than the number MA of sample values of the first coding block adjacent to the block edge per line, and modified by at most the number MB of sample values of the second coding block adjacent to the block edge per line, MA = MB = 4.
Очевидно, что первый фильтр, второй фильтр, третий фильтр, четвертый фильтр, пятый фильтр и шестой фильтр соответствуют различной фильтрации края блока. Другими словами, все различные фильтры используют в качестве входных и выходных выборок: выборки, которые перпендикулярны и примыкают к заданному краю блока. Более того, разные фильтры используют разное количество максимальных выборок фильтрации в качестве входных данных и также модифицируют разное количество максимальных выборок в качестве выходных данных фильтра.Obviously, the first filter, the second filter, the third filter, the fourth filter, the fifth filter and the sixth filter correspond to different block edge filtering. In other words, all the different filters use as input and output samples: samples that are perpendicular to and adjacent to a given block edge. Moreover, different filters use different number of maximum filter samples as input and also modify different number of maximum filter samples as filter output.
Фиг.13 является упрощенной блок-схемой устройства 1300, которое может использоваться как одно или оба устройство 310 источника и устройство 320 назначения по фиг.3 согласно примерному варианту осуществления. Устройство 1300 может реализовывать способы настоящего изобретения. Устройство 1300 может быть реализовано в форме вычислительной системы, включающей в себя несколько вычислительных устройств, или в форме одного вычислительного устройства, например, мобильного телефона, планшетного компьютера, портативного компьютера, портативного компьютера, настольного компьютера и т.д.FIG. 13 is a simplified block diagram of a
Процессор 1302 устройства 1300 может быть центральным процессором. В качестве альтернативы процессор 1302 может быть устройством любого другого типа или множеством устройств, способных манипулировать или обрабатывать информацию, существующую в настоящее время или разработанную в будущем. Хотя раскрытые реализации могут быть реализованы с одним процессором, как показано, например процессором 1302, преимущества в скорости и эффективности могут быть достигнуты с использованием более чем одного процессора.
В настоящем изобретении память 1304 в устройстве 1300 может быть устройством постоянной памяти (ROM) или устройством оперативной памяти (RAM). В качестве памяти 1304 может использоваться любой другой подходящий тип запоминающего устройства. Память 1304 может использоваться для хранения кода и/или данных 1306, к которым обращается процессор 1302 по шине 1312. Память 1304 дополнительно может использоваться для хранения операционной системы 1308 и прикладных программ 1310. Прикладные программы 1310 могут включать в себя, по меньшей мере, одну программу, которая позволяет процессору 1302 выполнять описанные в настоящем документе способы. Например, прикладные программы 1310 могут включать в себя приложения с 1 по N и дополнительно включать в себя приложение кодирования видео, которое выполняет описанные в настоящем документе способы. Устройство 1300 также может включать в себя дополнительную память в виде вторичного хранилища 1314, которое может, например, быть картой памяти, используемой с мобильным вычислительным устройством. Поскольку сеансы видеосвязи могут содержать значительный объем информации, они могут быть сохранены полностью или частично в хранилище 1314 и загружены в память 1304 по мере необходимости для обработки.In the present invention,
Устройство 1300 также может включать в себя одно или более устройств вывода, таких как дисплей 1318. Дисплей 1318 может быть, в одном примере, сенсорным дисплеем, который объединяет дисплей с сенсорным элементом, способным распознавать сенсорные вводы. Дисплей 1318 может быть соединен с процессором 1302 через шину 1312. В дополнение к дисплею 1318 или в качестве альтернативы ему могут быть предоставлены другие устройства вывода, которые позволяют пользователю программировать или иным образом использовать устройство 1300. Когда устройство вывода является или включает в себя дисплей, дисплей может быть реализован различными способами, в том числе с помощью жидкокристаллического дисплея (LCD), дисплея с электронно-лучевой трубкой (CRT), плазменного дисплея или дисплея на светоизлучающих диодах (LED), например, дисплеем на органических светодиодах (OLED).
Устройство 1300 также может включать в себя или взаимодействовать с устройством 1320 формирования изображений, например, камеру, или любое другое устройство 1320 формирования изображений, существующее используемому в настоящее время или разработанному в будущем, которое может воспринимать изображение, такое как изображение пользовательского операционного устройства 1300. Устройство 1320 формирования изображения может быть расположено так, чтобы оно было направлено к устройству 1300 управления пользователя. В примере положение и оптическая ось устройства 1320 формирования изображения могут быть сконфигурированы так, что поле зрения включает в себя область, которая непосредственно расположена рядом с дисплеем 1318 и с которого виден дисплей 1318.The
Устройство 1300 также может включать в себя устройство 1322 обнаружения звука, например, микрофон, или любое другое устройство обнаружения звука, существующее в настоящее время или разработанное в будущем, которое может воспринимать звуки рядом с устройством 1300, или взаимодействовать с ним. Устройство 1322 обнаружения звука может быть расположено таким образом чтобы быть направленным на устройство 1300 управления пользователя и может быть выполнено с возможностью принимать звуки, например, речь или другие звуки, издаваемые пользователем, когда пользователь управляет устройством 1300.The
Хотя фиг.13 изображает процессор 1302 и память 1304 устройства 1300 как интегрированные в единое устройство, могут использоваться другие конфигурации. Операции процессора 1302 могут быть распределены между несколькими машинами (каждая машина имеет один или более процессоров), которые могут быть соединены напрямую или через локальную область или другую сеть. Память 1304 может быть распределена между несколькими машинами, такими как сетевая память или память на множестве машин, выполняющих операции устройства 1300. Хотя здесь изображена одна шина, шина 1312 устройства 1300 может содержать несколько шин. Кроме того, вторичное хранилище 1314 может быть напрямую соединено с другими компонентами устройства 1300 или может быть доступно через сеть и может содержать один интегрированный блок, такой как карта памяти, или более блоков, таких как несколько карт памяти. Таким образом, устройство 1300 может быть реализовано в широком разнообразии конфигураций.Although FIG. 13 depicts
Фиг.14 является схемой примерного устройства 1400 кодирования для кодирования видео согласно варианту осуществления настоящего изобретения. Устройство 1400 кодирования выполнено с возможностью реализации раскрытых вариантов осуществления, как описано в настоящем документе. В варианте осуществления устройство 1400 кодирования может быть декодером, таким как видеодекодер 200 по фиг.2 или кодер, такой как видеокодер 100 по фиг.1. В варианте осуществления устройство 1400 кодирования может быть одним или несколькими компонентами видеодекодера 200 по фиг.2 или видеокодера 100 по фиг.1, как описано выше.14 is a diagram of an
Устройство 1400 кодирования содержит входные порты 1420 и блоки 1410 приемника (Rx) для приема данных; процессор, логический блок или центральный процессор (CPU) 1430 для обработки данных; блоки 1440 передатчика (Tx) и выходные порты 1450 для передачи данных; память 1460 для хранения данных. Устройство 1400 кодирования может также содержать оптико-электрические (OE) компоненты и электрические-оптические (EO) компоненты, подключенные к входным портам 1420, блокам 1410 приемника, блокам 1440 передатчика и выходным портам 1450 для вывода или ввода оптических или электрических сигналов. В некоторых примерах устройство 1400 кодирования также может включать в себя беспроводные передатчики и/или приемники.Encoder 1400 includes
Процессор 1430 реализован посредством аппаратного и программного обеспечения. Процессор 1430 может быть реализован как одна или более микросхем CPU, ядер (например, как многоядерный процессор), программируемых вентильных матриц (FPGA), специализированных интегральных схем (ASIC) и процессоров цифровых сигналов (DSP). Процессор 1430 соединен с входными портами 1420, блоками 1410 приемника, блоками 1440 передатчика, выходными портами 1450 и памятью 1460. Процессор 1430 содержит модуль 1414 кодирования. Модуль 1414 кодирования реализует раскрытые, описанные выше варианты осуществления. Например, модуль 1414 кодирования реализует, обрабатывает, подготавливает или предоставляет различные операции кодирования. Таким образом, использованием модуля 1414 кодирования обеспечивает существенное улучшение функциональных возможностей устройства 1400 кодирования и обеспечивает преобразование устройства 1400 кодирования в другое состояние. В качестве альтернативы модуль 1414 кодирования реализован как инструкции, хранящиеся в памяти 1460 и выполняемые процессором 1430 (например, как компьютерный программный продукт, хранящийся на постоянном носителе данных).The
Память 1460 содержит один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных с переполнением, для хранения программ, когда такие программы выбраны для выполнения, и для хранения инструкций и данных, которые считываются. во время выполнения программы. Память 1460 может быть энергозависимой и/или энергонезависимой и может представлять собой постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), троичное запоминающее устройство с адресацией по содержимому (TCAM) и/или статическое запоминающее устройство с произвольным доступом (SRAM). Устройство 1400 кодирования может также иметь устройство ввода/вывода (I/O) для взаимодействия с конечным пользователем. Например, устройство 1400 кодирования может включать в себя дисплей, такой как монитор, для визуального вывода, динамики для вывода звука, а также клавиатуру/мышь /шаровой манипулятор и т.д. для пользовательского ввода.The
Настоящее изобретение было описано вместе с различными вариантами осуществления. Однако другие варианты раскрытых вариантов осуществления могут быть поняты и осуществлены специалистами в данной области техники при практическом применении заявленного изобретения на основании изучения чертежей, описания и прилагаемой формулы изобретения. В формуле изобретения слово «содержащий» не исключает других элементов или этапов, и неопределенный артикль «а» или «an» не исключает множественности. Один процессор или другое устройство может выполнять функции нескольких элементов, указанных в формуле изобретения. Простой факт, что определенные меры изложены в обычно различных зависимых пунктах формулы изобретения, не означает, что комбинация этих мер не может быть использована с выгодой. Компьютерная программа может храниться/распространяться на подходящем носителе, таком как оптический носитель данных или твердотельный носитель, поставляемый вместе с другим оборудованием или как его часть, но также может распространяться в других формах, например, через интернет или другие системы проводной или беспроводной связи.The present invention has been described in conjunction with various embodiments. However, other variations of the disclosed embodiments may be understood and practiced by those skilled in the art in the practice of the claimed invention based on examination of the drawings, description, and appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude plurality. One processor or other device can perform the functions of several elements specified in the claims. The mere fact that certain measures are set forth in generally different dependent claims does not mean that a combination of these measures cannot be used to advantage. The computer program may be stored/distributed on a suitable medium, such as an optical storage medium or solid state media provided with or as part of other equipment, but may also be distributed in other forms, such as over the Internet or other wired or wireless communication systems.
В тексте настоящего документа, в котором варианты осуществления и описание относятся к термину «память», термин «память» следует понимать и/или должен содержать [список всех возможных запоминающих устройств] магнитный диск, оптический диск, постоянное запоминающее устройство (Read-Only Memory, ROM) или оперативное запоминающее устройство (Random Access Memory, RAM),…, если явно не указано иное.In the text of this document, in which embodiments and descriptions refer to the term "memory", the term "memory" should be understood and / or should contain [list of all possible storage devices] magnetic disk, optical disk, read-only memory , ROM) or RAM (Random Access Memory, RAM),…, unless otherwise specified.
В тексте настоящего документа, в котором варианты осуществления и описание относятся к термину «сеть», термин «сеть» следует понимать и/или должен содержать [список всех возможных сетей]…, если явно не указано иное.In the text of this document, in which embodiments and description refer to the term "network", the term "network" should be understood and/or should contain [a list of all possible networks]... unless explicitly stated otherwise.
Для специалиста в данной области техники очевидно, что «блоки» («units») на различных чертежах (способ и устройство) представляют или описывают функциональные возможности вариантов осуществления изобретения (а не обязательно отдельные «блоки» в аппаратном или программном обеспечении) и таким образом описывают в равной степени функции или признаки вариантов осуществления устройства, а также варианты осуществления способа (блок = этапу).It will be apparent to one skilled in the art that the "units" in the various drawings (method and apparatus) represent or describe the functionality of embodiments of the invention (rather than necessarily individual "blocks" in hardware or software) and thus describe equally the functions or features of device embodiments as well as method embodiments (block = step).
Терминология «блоков» используется просто для иллюстративных целей функциональных возможностей вариантов осуществления кодера/декодера и не предназначена для ограничения настоящего изобретения.The terminology "blocks" is used merely for illustrative purposes of the functionality of encoder/decoder embodiments and is not intended to limit the present invention.
В нескольких вариантах осуществления, представленных в настоящем изобретении, следует понимать, что раскрытые система, устройство и способ могут быть реализованы другими способами. Например, описанный вариант осуществления устройства является просто примерным. Например, разделение на блоки представляет собой просто разделение логических функций и может быть другим разделением в реальной реализации. Например, множество блоков или компонентов могут быть объединены или интегрированы в другую систему, или некоторые функции могут игнорироваться или не выполняться. Дополнительно, отображаемые или обсуждаемые взаимные связи или прямые связи или коммуникационные соединения могут быть реализованы с использованием некоторых интерфейсов. Непрямые связи или коммуникационные соединения между устройствами или блоками могут быть реализованы в электронной, механической или других формах.In several embodiments presented in the present invention, it should be understood that the disclosed system, device and method can be implemented in other ways. For example, the device embodiment described is merely exemplary. For example, the division into blocks is simply a division of logical functions and may be another division in the actual implementation. For example, many blocks or components may be combined or integrated into another system, or certain functions may be ignored or not performed. Additionally, displayed or discussed reciprocal links or direct links or communication connections can be implemented using some interfaces. Indirect links or communication connections between devices or units may be implemented in electronic, mechanical or other forms.
Блоки, описанные как отдельные части, могут быть или не быть физически отдельными, и части, отображаемые как блоки, могут быть или не быть физическими блоками, могут быть расположены в одной позиции или могут быть распределены по множеству сетевых блоков. Некоторые или все блоки могут быть выбраны в соответствии с фактическими потребностями для достижения целей решений вариантов осуществления.Blocks described as separate parts may or may not be physically separate, and parts displayed as blocks may or may not be physical blocks, may be located in the same position, or may be distributed over multiple network blocks. Some or all of the blocks may be selected according to actual needs in order to achieve the goals of the solutions of the embodiments.
Дополнительно, функциональные блоки в вариантах осуществления настоящего изобретения могут быть интегрированы в один блок обработки, или каждый из блоков может использоваться отдельно физически, или два или более блоков объединены в один блок.Additionally, the functional blocks in the embodiments of the present invention may be integrated into one processing unit, or each of the units may be physically used separately, or two or more units may be combined into one unit.
Варианты осуществления изобретения могут дополнительно содержать устройство, например, кодер и/или декодер, который содержит схему обработки, выполненную с возможностью выполнять любой из способов и/или процессов, описанных в данном документе.Embodiments of the invention may further comprise an apparatus, such as an encoder and/or decoder, that includes a processing circuit configured to perform any of the methods and/or processes described herein.
Варианты осуществления могут быть реализованы как аппаратное обеспечение, встроенное программное обеспечение, программное обеспечение или любая их комбинация. Например, функциональные возможности кодера/кодирования или декодера/декодирования могут выполняться схемой обработки с или без встроенного программного обеспечения или программного обеспечения, например, процессор, микроконтроллер, цифровой сигнальный процессор (DSP), программируемая пользователем вентильная матрица (FPGA), специализированная интегральная схема (ASIC) и т.п.Embodiments may be implemented as hardware, firmware, software, or any combination thereof. For example, encoder/encoder or decoder/decoder functionality may be performed by a processing circuit with or without firmware or software, such as a processor, microcontroller, digital signal processor (DSP), field programmable gate array (FPGA), application specific integrated circuit ( ASIC) etc.
Функциональные возможности кодера 100 (и соответствующего способа 100 кодирования) и/или декодера 200 (и соответствующего способа 200 декодирования) могут быть реализованы с помощью программных инструкций, сохраненных на машиночитаемом носителе. Программные инструкции при исполнении побуждают схему обработки, компьютер, процессор и т.п. выполнять этапы способов кодирования и/или декодирования. Машиночитаемый носитель может быть любым носителем, включающий в себя постоянный носитель данных, на котором хранится программа, например, диск Bluray, DVD, CD, USB (флэш-накопитель), жесткий диск, серверное хранилище, доступное через сеть и т. д.The functionality of encoder 100 (and corresponding encoding method 100) and/or decoder 200 (and corresponding decoding method 200) may be implemented using program instructions stored on a computer-readable medium. Program instructions, when executed, cause a processing circuit, a computer, a processor, or the like. perform steps of encoding and/or decoding methods. The computer-readable medium may be any medium including a permanent storage medium on which the program is stored, such as a Bluray disc, DVD, CD, USB (flash drive), hard disk, server storage accessible via a network, etc.
Вариант осуществления изобретения содержит компьютерную программу, содержащую программный код для выполнения любого из способов, описанных в данном документе, при исполнении на компьютере.An embodiment of the invention comprises a computer program containing program code for performing any of the methods described herein when executed on a computer.
Вариант осуществления изобретения содержит или является машиночитаемым носителем, содержащим программный код, который при исполнении процессором побуждает компьютерную систему выполнять любой из описанных в настоящем документе способов.An embodiment of the invention comprises or is a computer-readable medium containing program code that, when executed by a processor, causes a computer system to perform any of the methods described herein.
В одном или нескольких примерах описанные функции могут быть реализованы в аппаратном обеспечении, программном обеспечении, встроенном программном обеспечении или любой их комбинации. Если реализованы в программном обеспечении, функции могут храниться или передаваться в виде одной или нескольких инструкций или кода на машиночитаемом носителе и выполняться аппаратным процессором. Машиночитаемый носитель может включать в себя машиночитаемый носитель данных, который соответствует материальному носителю, например, носителю данных, или носителю связи, включающий в себя любой носитель, который облегчает передачу компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, машиночитаемые носители обычно могут соответствовать (1) материальным машиночитаемым носителям данных, которые являются энергонезависимыми, или (2) средам связи, таким как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может получить доступ один или более компьютеров или один или более процессоров для извлечения инструкций, кода и/или структур данных для реализации способов, описанных в этом изобретении. Компьютерный программный продукт может включать в себя машиночитаемый носитель данных.In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored or transmitted as one or more instructions or code on a computer-readable medium and executed by a hardware processor. A computer-readable medium may include a computer-readable medium that corresponds to a tangible medium, such as a data medium, or a communication medium, including any medium that facilitates the transfer of a computer program from one place to another, such as according to a communication protocol. Thus, computer-readable media can typically correspond to (1) tangible computer-readable storage media that are non-volatile, or (2) communication media such as a signal or carrier wave. Storage media can be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and/or data structures for implementing the methods described in this invention. The computer program product may include a computer readable storage medium.
В качестве примера, а не ограничения, такие машиночитаемые носители данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое запоминающее устройство на оптическом диске, запоминающее устройство на магнитном диске или другие устройства магнитного хранения, флэш-память или любой другой носитель, который может использоваться для хранения необходимого программного кода в форме инструкций или структур данных и может быть доступен для компьютера. Дополнительно, любое соединение правильно называть машиночитаемым носителем данных. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасный порт, радио и микроволновый сигнал, тогда коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасный порт, радио и микроволновый сигнал необходимо рассматривать в качестве среды. Однако следует понимать, что машиночитаемые носители данных и носители данных не включают в себя соединения, несущие волны, сигналы или другие временные носители, а вместо этого представляют собой энергонезависимые материальные носители данных. Диск и диск, используемые в данном документе, включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), дискету и диск Blu-ray, в котором диски обычно воспроизводят данные магнитным способом, и диски воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также должны быть включены в объем машиночитаемых носителей.By way of example, and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk or other magnetic storage devices, flash memory, or any other media which can be used to store the necessary program code in the form of instructions or data structures and can be accessed by a computer. Additionally, any connection is properly referred to as a computer-readable storage medium. For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave should be considered as the medium. However, it should be understood that computer-readable storage media and storage media do not include connections, carrier waves, signals, or other temporary media, but are instead nonvolatile tangible storage media. The disc and disc used herein include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc, in which discs usually reproduce data magnetically, and discs reproduce data optically using lasers. Combinations of the above should also be included within the scope of computer readable media.
Инструкции могут выполняться одним или несколькими процессорами, такими как один или более процессоров цифровых сигналов (DSPs), микропроцессоры общего назначения, специализированные интегральные схемы (ASICs), программируемые пользователем вентильные матрицы (FPGAs) или другие эквивалентные интегральные или дискретные логические схемы. Соответственно, термин «процессор», используемый в настоящем описании, может относиться к любой из вышеупомянутой структуры или любой другой структуре, подходящей для реализации описанных способов. Дополнительно, в некоторых аспектах описанные здесь функциональные возможности могут быть предоставлены в рамках выделенных аппаратных и/или программных модулей, выполненных с возможностью кодировать и декодировать или содержащиеся в комбинированном кодеке. Дополнительно, способы могут быть полностью реализованы в одной или нескольких схемах или логических элементах.The instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Accordingly, the term "processor" as used herein may refer to any of the aforementioned structures, or any other structure suitable for implementing the described methods. Additionally, in some aspects, the functionality described herein may be provided within dedicated hardware and/or software modules configured to encode and decode or contained in a combined codec. Additionally, the methods may be fully implemented in one or more circuits or logic elements.
Способы настоящего изобретения могут быть реализованы в большом количестве устройств или устройств, включающие в себя беспроводной телефон, интегральную схему (IC) или набор ICs (например, набор микросхем). В этом изобретении описаны различные компоненты, модули или блоки, чтобы подчеркнуть функциональные аспекты устройств, выполненных с возможностью выполнять раскрытые технологии, но не обязательно требующих реализации различными аппаратными блоками. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или обеспечены набором взаимодействующих аппаратных блоков, включающие в себя один или более процессоров, как описано выше, в сочетании с подходящим программным обеспечением и/или встроенным программным обеспечением.The methods of the present invention may be implemented in a wide variety of devices or devices, including a wireless telephone, an integrated circuit (IC), or a set of ICs (eg, a chipset). This invention describes various components, modules, or blocks to emphasize the functional aspects of devices capable of performing the disclosed technologies, but not necessarily requiring implementation in different hardware blocks. Rather, as described above, the various blocks may be combined into a codec hardware block, or provided with a set of cooperating hardware blocks, including one or more processors, as described above, in combination with suitable software and/or firmware.
Хотя в настоящем изобретении представлено несколько вариантов осуществления, следует понимать, что раскрытые системы и способы могут быть воплощены во многих других конкретных формах, не выходя за рамки объема настоящего изобретения. Настоящие примеры следует рассматривать как иллюстративные, а не как ограничительные, и настоящее изобретение не ограничиваться приведенными в настоящем документе деталями. Например, различные элементы или компоненты могут быть объединены или интегрированы в другую систему, или определенные функции могут быть опущены или не реализованы.Although the present invention presents several embodiments, it should be understood that the disclosed systems and methods can be embodied in many other specific forms, without going beyond the scope of the present invention. The present examples are to be considered as illustrative and not restrictive, and the present invention is not limited to the details provided herein. For example, various elements or components may be combined or integrated into another system, or certain features may be omitted or not implemented.
Дополнительно, способы, системы, подсистемы и способы, описанные и проиллюстрированные в различных вариантах осуществления как дискретные или отдельные, могут быть объединены или интегрированы с другими системами, модулями, технологиями или способами, не выходя за рамки объема настоящего изобретения. Другие элементы, показанные или обсуждаемые как связанные или непосредственно связанные или взаимодействующие друг с другом, могут быть косвенно связаны или могут взаимодействовать через некоторый интерфейс, устройство или промежуточный компонент, электрически, механически или иным образом. Специалисту в данной области техники очевидны другие примеры изменений, замен и модификаций, которые могут быть реализованы без отступления от сущности и объема настоящего изобретения.Additionally, the methods, systems, subsystems, and methods described and illustrated in various embodiments as discrete or separate may be combined or integrated with other systems, modules, technologies, or methods without departing from the scope of the present invention. Other elements shown or discussed as related or directly connected or interacting with each other may be indirectly connected or may interact through some interface, device or intermediate component, electrically, mechanically or otherwise. Those skilled in the art will recognize other examples of changes, substitutions and modifications that can be made without departing from the spirit and scope of the present invention.
Claims (138)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62/717,029 | 2018-08-10 | ||
US62/723,453 | 2018-08-27 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2022130752A Division RU2022130752A (en) | 2018-08-10 | 2019-08-12 | DEVICE AND METHOD FOR PERFORMING DELOCULATION |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2021105840A RU2021105840A (en) | 2022-09-12 |
RU2785090C2 true RU2785090C2 (en) | 2022-12-02 |
Family
ID=
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2472304C2 (en) * | 2007-10-10 | 2013-01-10 | Квэлкомм Инкорпорейтед | Universal correction of image blocking effect |
WO2013012479A1 (en) * | 2011-07-19 | 2013-01-24 | Qualcomm Incorporated | Deblocking of non-square blocks for video coding |
RU2586003C2 (en) * | 2011-10-25 | 2016-06-10 | Квэлкомм Инкорпорейтед | Determination of filtration boundary level of deblocking for video coding |
EP3001682B1 (en) * | 2011-03-01 | 2017-03-01 | Telefonaktiebolaget LM Ericsson (publ) | Deblocking filtering control |
CN103957425B (en) * | 2014-04-23 | 2018-01-23 | 华为技术有限公司 | Image processing method and system |
WO2018123423A1 (en) * | 2016-12-28 | 2018-07-05 | ソニー株式会社 | Image processing device and image processing method |
CN105681814B (en) * | 2014-11-21 | 2019-03-29 | 联想(北京)有限公司 | A kind of determination method and device of block-eliminating effect filtering mode |
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2472304C2 (en) * | 2007-10-10 | 2013-01-10 | Квэлкомм Инкорпорейтед | Universal correction of image blocking effect |
EP3001682B1 (en) * | 2011-03-01 | 2017-03-01 | Telefonaktiebolaget LM Ericsson (publ) | Deblocking filtering control |
WO2013012479A1 (en) * | 2011-07-19 | 2013-01-24 | Qualcomm Incorporated | Deblocking of non-square blocks for video coding |
RU2586003C2 (en) * | 2011-10-25 | 2016-06-10 | Квэлкомм Инкорпорейтед | Determination of filtration boundary level of deblocking for video coding |
CN103957425B (en) * | 2014-04-23 | 2018-01-23 | 华为技术有限公司 | Image processing method and system |
CN105681814B (en) * | 2014-11-21 | 2019-03-29 | 联想(北京)有限公司 | A kind of determination method and device of block-eliminating effect filtering mode |
WO2018123423A1 (en) * | 2016-12-28 | 2018-07-05 | ソニー株式会社 | Image processing device and image processing method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111819852B (en) | Method and apparatus for residual symbol prediction in the transform domain | |
CN111837389A (en) | Block detection method and device suitable for multi-sign bit hiding | |
JP7326439B2 (en) | Apparatus and method for deblocking filter in video coding | |
CN112400323B (en) | Image encoder, image decoder, and corresponding methods | |
JP2023169237A (en) | Device and method for executing deblocking | |
KR20210020137A (en) | Apparatus and method for intra prediction of prediction blocks of video images | |
RU2766557C1 (en) | Image processing apparatus and method for executing effective blocking removal | |
RU2785090C2 (en) | Device and method for removal of blocking artifacts | |
WO2020073969A1 (en) | An image processing device and method for performing deblocking | |
RU2779474C1 (en) | Image processing device and method for performing effective deblocks | |
RU2789030C2 (en) | Device and method for deblocking filter in video encoding | |
CN112352435B (en) | In-loop deblocking filter apparatus and method for video coding and decoding | |
RU2793920C2 (en) | Image processing device and method of performing deblocking with quality optimization |