RU2773641C2 - Image data encoding method and device, image data decoding method and device - Google Patents
Image data encoding method and device, image data decoding method and device Download PDFInfo
- Publication number
- RU2773641C2 RU2773641C2 RU2021125295A RU2021125295A RU2773641C2 RU 2773641 C2 RU2773641 C2 RU 2773641C2 RU 2021125295 A RU2021125295 A RU 2021125295A RU 2021125295 A RU2021125295 A RU 2021125295A RU 2773641 C2 RU2773641 C2 RU 2773641C2
- Authority
- RU
- Russia
- Prior art keywords
- node
- split
- code tree
- child
- mode
- Prior art date
Links
- 230000000875 corresponding Effects 0.000 claims abstract description 456
- 238000000926 separation method Methods 0.000 claims description 68
- 230000000694 effects Effects 0.000 abstract description 3
- 239000000126 substance Substances 0.000 abstract 1
- 238000005192 partition Methods 0.000 description 70
- 238000000638 solvent extraction Methods 0.000 description 46
- 238000000034 method Methods 0.000 description 28
- 238000004590 computer program Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000003287 optical Effects 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 239000003365 glass fiber Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000004301 light adaptation Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000001131 transforming Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Abstract
Description
Область техники, к которой относится изобретениеThe technical field to which the invention belongs
Варианты осуществления настоящего изображения относятся к области обработки изображения и, в частности, к способу и устройству кодирования данных изображения, способу и устройству декодирования данных изображения.Embodiments of the present image relate to the field of image processing and, in particular, to an image data encoding method and apparatus, an image data decoding method and apparatus.
Уровень техникиState of the art
В видеокодеке стандарта H.265 кадр изображения разбивают на блоки кодового дерева (Coding Tree Unit, CTU), которые не перекрывают друг друга, и каждый CTU используют в качестве корневого узла дерева квадрантов (Quad-Tree, QT). Каждый CTU рекурсивно разделен на несколько листовых узлов на основании QT структуры. Каждый узел в QT структуре соответствует одной области изображения. Если узел больше не разделяют, то узел называется листовым узлом, и область изображения, соответствующая узлу, формирует блок кодирования (Coding Unit, CU). Таким образом, можно считать, что H.265 представляет собой процесс разделения CTU на группу CUs. Режим разделения для разделения CTU на группу CUs соответствует одному кодовому дереву (coding tree).In the H.265 video codec, an image frame is divided into non-overlapping Coding Tree Units (CTUs), and each CTU is used as the root node of a Quad-Tree (QT). Each CTU is recursively divided into several leaf nodes based on the QT structure. Each node in the QT structure corresponds to one region of the image. If the node is no longer shared, then the node is called a leaf node, and the image area corresponding to the node forms a coding unit (CU). Thus, H.265 can be considered to be a process of dividing CTUs into a group of CUs. The partitioning mode for dividing CTUs into a group of CUs corresponds to one coding tree.
Совместная исследовательская группа по усовершенствованию кодирования видео (Joint Exploration on Future Video Coding, JVET) в рамках совместной исследовательской модели (Joint Exploration Model, JEM) предложила QTBT режим разделения. Более конкретно, узлы в кодовом дереве первого уровня используют QT режим разделения и узлы в кодовом дереве второго уровня используют режим разделения двоичного дерева (Binary Tree, BT) (ВТ режим разделения включает в себя «горизонтальное бинарное разделение» и «вертикальное бинарное разделение»). В частности, CTU сначала разделяют в QT режиме разделения для получения нескольких QT листовых узлов; и QT листовой узел может быть разделен в ВТ режиме разделения. CU формы более диверсифицированы в QTBT режиме разделения, что позволит лучше адаптироваться к контенту локального изображения.The Joint Exploration on Future Video Coding (JVET) Research Group, within the framework of the Joint Exploration Model (JEM), proposed the QTBT split mode. More specifically, the nodes in the first level code tree use the QT splitting mode and the nodes in the second level code tree use the Binary Tree (BT) splitting mode (BT splitting mode includes "horizontal binary splitting" and "vertical binary splitting") . In particular, the CTU is first split in QT split mode to obtain multiple QT leaf nodes; and QT leaf node can be split in BT split mode. CU forms are more diversified in QTBT split mode, which will better adapt to local image content.
Однако для каждого узла устройство кодирования обычно должно вычислить стоимость искажения скорости (Rate Distortion cost, RD cost) каждого режима разделения, который может быть использован узлом, сравнить вычисленную RD стоимость и определить режим разделения, соответствующий наименьшей RD стоимости, как режим разделения узла. Таким образом, для каждого узла устройство кодирования должно вычислить RD стоимости множества режимов разделения и, следовательно, сложность кодирования является относительно высокой.However, for each node, the encoder typically needs to calculate the Rate Distortion cost (RD cost) of each split mode that can be used by the node, compare the computed RD cost, and determine the split mode corresponding to the lowest RD cost as the split mode of the node. Thus, for each node, the encoder has to calculate the cost RD of a plurality of partition modes, and hence the encoding complexity is relatively high.
Раскрытие сущности изобретенияDisclosure of the essence of the invention
Варианты осуществления настоящего изобретения обеспечивают способ и устройство кодирования данных изображения, и способ и устройство декодирования данных изображения для решения технической задачи по снижению высокой сложности кодирования.Embodiments of the present invention provide an image data encoding method and apparatus, and an image data decoding method and apparatus for solving the technical problem of reducing high encoding complexity.
Для решения вышеизложенной задачи используют следующие технические решения в вариантах осуществления настоящего изобретения.To solve the above problem, the following technical solutions are used in the embodiments of the present invention.
В соответствии с первым аспектом предложен способ декодирования данных изображения. После получения битового потока, включающего в себя данные изображения, устройство декодирования выполняет синтаксический анализ битового потока для получения информации режима разделения узла кодового дерева первого уровня и информации режима разделения узла кодового дерева второго уровня, где информация режима разделения узла кодового дерева второго уровня указывает режим разделения, соответствующий первому узлу кодового дерева второго уровня, режим разделения, соответствующий первому узлу, является одним режимом в наборе кандидатов режима разделения, соответствующем первому узлу, набор кандидатов режима, соответствующий первому узлу, определяют в соответствии с первым заданным условием разделения, первое заданное условие разделения используют для указания, следует ли ограничить разделение первого узла целевым режимом разделения, и целевой режим разделения включает в себя по меньшей мере одно из горизонтального бинарного разделения, горизонтального троичного разделения, вертикального бинарного разделения и вертикального троичного разделения. Если режим разделения, соответствующий первому узлу, дополнительно не разделяет, то устройство декодирования выполняет синтаксический анализ битового потока для получения информации кодирования первого узла, в котором первый узел соответствует одному блоку кодирования CU. Таким образом, устройство декодирования может декодировать и восстановить блок кодирования на основании информации кодирования первого узла для получения изображения, соответствующего данным изображения. В настоящем изобретении, корневой узел дерева кодирования первого уровня соответствует одному CTU, листовой узел дерева кодирования первого уровня идентифицируют с использованием корневого узла дерева кодирования первого уровня и режима разделения узла, соответствующего информации режима разделения узла кодового дерева первого уровня, и корневой узел кодового дерева второго уровня является листовым узлом кодового дерева первого уровня.According to a first aspect, a method for decoding image data is provided. After receiving the bitstream including the image data, the decoding apparatus parses the bitstream to obtain the first level code tree node split mode information and the second layer code tree node split mode information, where the second layer code tree node split mode information indicates the split mode. corresponding to the first node of the second-level code tree, the split mode corresponding to the first node is one mode in the split mode candidate set corresponding to the first node, the mode candidate set corresponding to the first node is determined according to the first split condition specified, the first split condition specified is used to indicate whether or not to limit the splitting of the first node to the target splitting mode, and the target splitting mode includes at least one of horizontal binary splitting, horizontal ternary splitting, vertical binary separation and vertical ternary separation. If the partitioning mode corresponding to the first node does not further partition, then the decoder parses the bitstream to obtain encoding information of the first node in which the first node corresponds to one coding unit CU. Thus, the decoding apparatus can decode and reconstruct the coding block based on the encoding information of the first node to obtain an image corresponding to the image data. In the present invention, a first level coding tree root node corresponds to one CTU, a first level coding tree leaf node is identified using a first level coding tree root node and a node split mode corresponding to the first level code tree node split mode information, and a second level code tree root node level is a leaf node of the first level code tree.
В этом варианте осуществления настоящего изобретения режим разделения, соответствующий первому узлу кодового дерева второго уровня является одним из режимов разделения, определяемых в соответствии с первым заданным условием разделения, первое заданное условие разделения используют для указания, следует ли ограничить разделение первого узла целевым режимом разделения, а целевой режим разделения включает в себя, по меньшей мере, одно из горизонтального бинарного разделения, горизонтального троичного разделения, вертикального бинарного разделения и вертикального троичного разделения. Количество режимов разделения, соответствующих первому узлу, уменьшают согласно первому заданному условию разделения, эффективно уменьшая сложность декодирования.In this embodiment of the present invention, the split mode corresponding to the first node of the second level code tree is one of the split modes determined according to the first split condition set, the first split condition set is used to indicate whether split of the first node should be restricted to the target split mode, and the target splitting mode includes at least one of horizontal binary splitting, horizontal ternary splitting, vertical binary splitting, and vertical ternary splitting. The number of partition modes corresponding to the first node is reduced according to the first given partition condition, effectively reducing the decoding complexity.
В качестве варианта, в возможной реализации настоящего изобретения режим разделения узла, соответствующий кодовому дереву первого уровня, отличается от режима разделения узла, соответствующего кодовому дереву второго уровня. Режим разделения узла, соответствующий кодовому дереву первого уровня, включает в себя разделение дерева квадрантов, и режим разделения узла, соответствующий кодовому дереву второго уровня, включает в себя бинарное разделение дерева и троичное разделение дерева.Alternatively, in an exemplary implementation of the present invention, the node split mode corresponding to the first level code tree is different from the node split mode corresponding to the second level code tree. The node splitting mode corresponding to the first level code tree includes quadtree splitting, and the node splitting mode corresponding to the second level code tree includes binary tree splitting and ternary tree splitting.
В качестве варианта, в другом возможном осуществлении настоящего изобретения, первое заданное условие разделения включает в себя по меньшей мере одно из первого заданного подусловия разделения, второго заданного подусловия разделения, третьего заданного подусловия разделения, четвертого заданного подусловия разделения, пятого заданного подусловия разделения, шестого заданного подусловия разделения, седьмого заданного подусловия разделения, восьмого заданного подусловия разделения и девятого заданного подусловия разделения. Первое заданное подусловие разделения является: если отношение ширины к высоте области изображения, соответствующей первому узлу, больше или равно первому заданному пороговому значению, то набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя горизонтальное бинарное разделение или горизонтальное троичное разделение. Отношение ширины к высоте области изображения, соответствующей первому узлу, представляет собой отношение ширины области изображения, соответствующей первому узлу, к высоте области изображения, соответствующей первому узлу. Второе заданное подусловие разделения является: если отношение высоты к ширине области изображения, соответствующей первому узлу, больше или равно второму заданному пороговому значению, то набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя вертикальное бинарное разделение или вертикальное троичное разделение. Отношение высоты к ширине области изображения, соответствующей первому узлу, представляет собой отношение высоты области изображения, соответствующей первому узлу, к ширине области изображения, соответствующей первому узлу. Третье заданное подусловие разделения является: если отношение площади области изображения, соответствующей первому узлу, к площади области изображения, соответствующей листовому узлу кодового дерева первого уровня, к которому первый узел принадлежит, меньше или равно третьему заданному пороговому значению, то набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя горизонтальное бинарное разделение, горизонтальное троичное разделение, вертикальное бинарное разделение или вертикальное троичное разделение. Четвертое заданное подусловие разделения является: если режим разделения, соответствующий первому узлу, включает в себя первый режим разделения и декодирование первого дочернего узла первого узла выполняют позже, чем второго дочернего узла первого узла, и режим разделения, соответствующий второму дочернему узлу, является первым режимом разделения, то набор кандидатов режима разделения, соответствующий первому дочернему узлу, не включает в себя первый режим разделения. Первый режим разделения является горизонтальным бинарным разделением или вертикальным бинарным разделением. Пятое заданное подусловие разделения является: если режим разделения, соответствующий первому узлу, включает в себя второй режим разделения, и площадь области изображения, соответствующая первому дочернему узлу первого узла, является наименьшей среди площадей областей изображения, соответствующей трем дочерним узлам первого узла, то набор кандидатов режима разделения, соответствующий первому дочернему узлу, не включает в себя второй режим разделения. Второй режим разделения является горизонтальным троичным разделением или вертикальным троичным разделением. Шестое заданное подусловие разделения является: если режим разделения, соответствующий первому узлу, включает в себя второй режим разделения и площадь области изображения, соответствующая первому дочернему узлу первого узла, является самой большой среди площадей области изображения, соответствующей трем дочерним узлам первого узла, набор кандидатов режима разделения, соответствующий первому дочернему узлу, не включает в себя второй режим разделения. Седьмое заданное подусловие разделения является: если отношение ширины области изображения, соответствующая первому узлу, к заданной длине стороны минимального CU меньше или равно третьему заданному пороговому значению, то набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя вертикальное троичное разделение; или, если отношение высоты области изображения, соответствующее первому узлу, к заданной длине стороны минимального CU меньше или равно третьему заданному пороговому значению, то набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя горизонтальное троичное разделение. Восьмое заданное подусловие разделения является: если площадь области изображения, соответствующая первому узлу, меньше или равна четвертому заданному пороговому значению, то набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя горизонтальное бинарное разделение, горизонтальное троичное разделение, вертикальное бинарное разделение или вертикальное троичное разделение. Девятое заданное подусловие разделения является: если режим разделения, соответствующий первому узлу, является вторым режимом разделения и площадь области изображения, соответствующая первому дочернему узлу первого узла, является самой большой среди площадей области изображения, соответствующие трем дочерним узлам первого узла, то набор кандидатов режима разделения, соответствующий первому дочернему узлу, не включает в себя первый режим разделения. Направление разделения первого режима разделения является таким же, что и второго режима разделения.Alternatively, in another exemplary embodiment of the present invention, the first predetermined splitting condition includes at least one of a first predetermined splitting subcondition, a second predetermined splitting subcondition, a third predetermined splitting subcondition, a fourth predetermined splitting subcondition, a fifth predetermined splitting subcondition, a sixth predetermined a split subcondition, a seventh predetermined split subcondition, an eighth predetermined split subcondition, and a ninth predetermined split subcondition. The first specified split subcondition is: if the width-to-height ratio of the image area corresponding to the first node is greater than or equal to the first specified threshold value, then the split mode candidate set corresponding to the first node does not include horizontal binary split or horizontal ternary split. The width-to-height ratio of the image area corresponding to the first node is the ratio of the width of the image area corresponding to the first node to the height of the image area corresponding to the first node. The second predetermined split subcondition is: if the height to width ratio of the image area corresponding to the first node is greater than or equal to the second predetermined threshold value, then the split mode candidate set corresponding to the first node does not include vertical binary split or vertical ternary split. The height to width ratio of the image area corresponding to the first node is the ratio of the height of the image area corresponding to the first node to the width of the image area corresponding to the first node. The third predetermined split subcondition is: if the ratio of the area of the image area corresponding to the first node to the area of the image area corresponding to the leaf node of the first level code tree to which the first node belongs is less than or equal to the third predetermined threshold value, then the split mode candidate set corresponding to to the first node does not include horizontal binary splitting, horizontal ternary splitting, vertical binary splitting, or vertical ternary splitting. The fourth predetermined partitioning subcondition is: if the partitioning mode corresponding to the first node includes the first partitioning mode and the decoding of the first child node of the first node is later than the second child node of the first node, and the partitioning mode corresponding to the second child node is the first partitioning mode , then the split mode candidate set corresponding to the first child node does not include the first split mode. The first partitioning mode is horizontal binary partitioning or vertical binary partitioning. The fifth specified partition subcondition is: if the partition mode corresponding to the first node includes the second partition mode, and the area of the image region corresponding to the first child node of the first node is the smallest among the areas of the image region corresponding to the three child nodes of the first node, then the set of candidates split mode corresponding to the first child node does not include the second split mode. The second mode of division is horizontal ternary division or vertical ternary division. The sixth specified split subcondition is: if the split mode corresponding to the first node includes the second split mode, and the area of the image area corresponding to the first child node of the first node is the largest among the areas of the image area corresponding to the three child nodes of the first node, the mode candidate set partition corresponding to the first child node does not include the second partition mode. The seventh predetermined partition subcondition is: if the ratio of the width of the image area corresponding to the first node to the predetermined side length of the minimum CU is less than or equal to the third predetermined threshold value, then the partition mode candidate set corresponding to the first node does not include vertical ternary separation; or, if the ratio of the image area height corresponding to the first node to the specified side length of the minimum CU is less than or equal to the third predetermined threshold value, then the split mode candidate set corresponding to the first node does not include horizontal ternary separation. The eighth predetermined split subcondition is: if the area of the image area corresponding to the first node is less than or equal to the fourth predetermined threshold value, then the split mode candidate set corresponding to the first node does not include horizontal binary split, horizontal ternary split, vertical binary split, or vertical ternary division. The ninth specified split subcondition is: if the split mode corresponding to the first node is the second split mode, and the image area area corresponding to the first child node of the first node is the largest among the image area areas corresponding to the three child nodes of the first node, then the split mode candidate set The corresponding to the first child node does not include the first split mode. The division direction of the first division mode is the same as that of the second division mode.
В качестве варианта, в другом возможном осуществлении настоящего изобретения, информация режима разделения узла кодового дерева второго уровня включает в себя первую информацию, вторую информации и третью информацию. Первую информацию используют для указания, следует ли дополнительно разделять первый узел, вторую информацию используют для указания направления, в котором первый узел разделен, и третью информацию используют для указания режима, в котором первый узел разделен. В этом случае, способ «синтаксического анализа битового потока для получения информации режима разделения узла кодового дерева второго уровня» представляет собой следующее: выполняют синтаксический анализ битового потока для определения, в соответствии с первым заданным состоянием разделения, набора кандидатов режима разделения, соответствующего первому узлу; и выполняют синтаксический анализ битового потока на основании набора кандидатов режима разделения, соответствующего первому узлу, для определения первой информации, второй информации и третьей информации.Alternatively, in another possible implementation of the present invention, the splitting mode information of the second layer code tree node includes first information, second information, and third information. The first information is used to indicate whether the first node should be further divided, the second information is used to indicate the direction in which the first node is divided, and the third information is used to indicate the mode in which the first node is divided. In this case, the method of "parsing a bitstream to obtain splitting mode information of a second level code tree node" is as follows: parsing the bitstream to determine, according to the first given splitting state, a set of splitting mode candidates corresponding to the first node; and parsing the bitstream based on the partition mode candidate set corresponding to the first node to determine first information, second information, and third information.
Согласно способу синтаксического анализа для получения первой информации, второй информации и третьей информации устройством декодирования на основании набора кандидатов режима разделения, соответствующему первому узлу, значения первой информации, второй информации и третьей информации могут быть проанализированы из битового потока или могут быть заданы системой.According to the parsing method for obtaining the first information, the second information and the third information by the decoding device based on the separation mode candidate set corresponding to the first node, the values of the first information, the second information and the third information may be parsed from the bitstream or may be set by the system.
В качестве варианта, в другом возможном осуществлении настоящего изобретения, способ «синтаксического анализа битового потока на основании набора кандидатов режима разделения, соответствующий первому узлу, для определения первой информации, второй информации и третьей информации» конкретно представляет собой следующее: во-первых, определяют первое числовое значение. Первое числовое значение представляет собой количество режимов разделения, содержащееся в наборе кандидатов режима разделения, соответствующем первому узлу. Затем, битовый поток анализируется на основании первого числового значения для определения первой информации, второй информации и третьей информации.Alternatively, in another possible implementation of the present invention, the method of "parsing a bitstream based on a partition mode candidate set corresponding to the first node to determine first information, second information, and third information" is specifically as follows: first, determine the first numeric value. The first numeric value is the number of partition modes contained in the partition mode candidate set corresponding to the first node. Then, the bit stream is analyzed based on the first numerical value to determine the first information, the second information, and the third information.
Набор кандидатов режима разделения, соответствующий узлам кодового дерева второго уровня может включать в себя максимум 15 режимов разделения. Для нескольких режимов разделения в 15 режимах разделения, способы получения первой информации, второй информации и третьей информации, являются такими же или аналогичными. Таким образом, устройство декодирования может определять первую информацию, вторую информацию и третью информацию, основанную на количестве режимов разделения (а именно, первое числовое значение), содержащиеся в наборе кандидатов режима, соответствующий первому узлу. Таким образом, устройство декодирования может более быстро определять информацию режима разделения узла кодового дерева второго уровня.The split mode candidate set corresponding to the second level code tree nodes may include a maximum of 15 split modes. For several partition modes in 15 partition modes, the methods for obtaining the first information, the second information, and the third information are the same or similar. Thus, the decoding apparatus can determine the first information, the second information, and the third information based on the number of partition modes (namely, the first numerical value) contained in the mode candidate set corresponding to the first node. Thus, the decoding apparatus can more quickly determine the splitting mode information of the second level code tree node.
В качестве варианта, в другом возможном осуществлении настоящего изобретения, режим разделения узла, соответствующий кодовому дереву второго уровня, дополнительно включает в себя разделение дерева квадрантов. В этом случае, способ «синтаксического анализа битового потока для получения информации режима разделения узла кодового дерева второго уровня» представляет собой следующее: выполняют синтаксический анализ битового потока для получения информации режима разделения узла дерева кодирования второго уровня. Информация режима разделения узла кодового дерева второго уровня указывает режим разделения, соответствующий первому узлу кодового дерева второго уровня, режим разделения, соответствующий первому узлу, является одним режимом в наборе кандидатов режима разделения, соответствующий первому узлу, набор кандидатов режима разделения, соответствующий первому узлу, определяется в соответствии с первым заданным условием разделения и вторым заданным условием разделения, и второе заданное условие разделения используют для указания, следует ли ограничивать разделения первого узла на основании разделения дерева квадрантов.Alternatively, in another possible embodiment of the present invention, the node splitting mode corresponding to the second level code tree further includes splitting the quadtree. In this case, the method of "parsing the bitstream to obtain split mode information of the second layer code tree node" is as follows: parsing the bit stream to obtain split mode information of the second layer code tree node. The split mode information of the second level code tree node indicates the split mode corresponding to the first node of the second level code tree, the split mode corresponding to the first node is one mode in the split mode candidate set corresponding to the first node, the split mode candidate set corresponding to the first node is determined according to the first predetermined split condition and the second predetermined split condition, and the second predetermined split condition is used to indicate whether splits of the first node should be limited based on the split of the quadtree.
В качестве варианта, в другом возможном осуществлении настоящего изобретения, второе заданное условие разделения включает в себя, по меньшей мере, одно из десяти заданных подусловий и одиннадцатое заданное подусловие разделения. Десятое заданное подусловие разделения представляет собой следующее: если глубина первого узла в кодовом дереве второго уровня меньше, чем заданная максимальная глубина в кодовом дереве второго уровня, набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя разделение дерева квадрантов. Одиннадцатое заданное подусловие разделения является: если отношение ширины к высоте области изображений, соответствующее первому узлу, больше или равно пятому заданному пороговому значению, набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя разделение дерева квадрантов.Alternatively, in another exemplary embodiment of the present invention, the second split predetermined includes at least one of ten predetermined subconditions and an eleventh predetermined split subcondition. The tenth predetermined split subcondition is: if the depth of the first node in the second level code tree is less than the predetermined maximum depth in the second level code tree, the split mode candidate set corresponding to the first node does not include splitting the quadtree. The eleventh predetermined split subcondition is: if the ratio of the width to height of the image area corresponding to the first node is greater than or equal to the fifth predetermined threshold, the split mode candidate set corresponding to the first node does not include splitting the quadtree.
В качестве варианта, в другом возможном осуществлении настоящего изобретения, информация режима разделения узла кодового дерева второго уровня дополнительно включает в себя четвертую информации, причем четвертая информация используется для указания, следует ли разделить первый узел на основании разделения дерева квадрантов. Соответственно, способ «синтаксического анализа битового потока для получения информации режима разделения узла дерева кодирования второго уровня» представляет собой следующее: выполняют синтаксический анализ битового потока для определения, в соответствии с первым заданным условием разделения и вторым заданным условием разделения, набора кандидатов режима разделения, соответствующего первому узлу. Выполняют синтаксический анализ битового потока в режиме разделения, соответствующем первому узлу, для определения первой информации, второй информации, третьей информации и четвертой информации.Alternatively, in another exemplary embodiment of the present invention, the splitting mode information of the second level code tree node further includes fourth information, the fourth information being used to indicate whether to split the first node based on splitting the quadtree. Accordingly, the method of "parsing a bitstream to obtain splitting mode information of a second-level coding tree node" is as follows: parsing the bitstream to determine, according to the first predetermined splitting condition and the second predetermined splitting condition, a splitting mode candidate set corresponding to the first node. The bit stream is parsed in a split mode corresponding to the first node to determine the first information, the second information, the third information, and the fourth information.
В соответствии со вторым аспектом, обеспечивается устройство декодирования. Устройство декодирования включает в себя модуль получения, модуль синтаксического анализа и модуль декодирования и восстановления. Модуль получения выполнен с возможностью получения битового потока, включающего в себя данные изображения. Модуль синтаксического анализа выполнен с возможностью: анализировать битовый поток, полученный модулем получения, чтобы получить информацию режима разделения узла кодового дерева первого уровня, где корневой узел кодового дерева первого уровня соответствует одному блоку кодового дерева CTU, листовой узел кодового дерева первого уровня идентифицируют с использованием корневого узла кодового дерева первого уровня и режима разделения узла, соответствующий информации режима разделения узла кодового дерева первого уровня; анализировать битовый поток для получения информации режима разделения узла кодового дерева второго уровня, в котором информация режима разделения узла кодового дерева второго уровня указывает режим разделения, соответствующий первому узлу кодового дерева второго уровня, режим разделения, соответствующий первому узлу, является одним режимом в наборе кандидатов режима разделения, соответствующем первому узлу, и набор кандидатов режима, соответствующий первому узлу, определяют в соответствии с первым заданным условием разделения, первое заданное условие разделения используют для указания, следует ли ограничить разделение первого узла целевым режимом разделения, целевой режим разделения включает в себя, по меньшей мере, одно из горизонтального бинарного разделения, горизонтального троичного разделения, вертикального бинарного разделения и вертикального троичного разделения, и корневой узел кодового дерева второго уровня является листовым узлом кодового дерева первого уровня; и, если режим разделения, соответствующий первому узлу, дополнительно не разделяет, синтаксический анализ битового потока для получения информации кодирования первого узла, в котором первый узел соответствует одному блоку кодирования CU. Модуль декодирования и восстановления выполнен с возможностью декодировать и восстанавливать блок кодирования на основании информации кодирования первого узла, полученной модулем синтаксического анализа, чтобы получить изображение, соответствующее данным изображения.According to the second aspect, a decoding device is provided. The decoding device includes an acquiring module, a parsing module, and a decoding and recovery module. The acquisition module is configured to obtain a bit stream including image data. The parsing module is configured to: parse the bit stream received by the acquisition module to obtain split mode information of the first level code tree node, where the root node of the first level code tree corresponds to one CTU, the leaf node of the first level code tree is identified using the root node. a first level code tree node and a node division mode corresponding to the first level code tree node division mode information; parse the bitstream to obtain split mode information of the second level code tree node, in which the split mode information of the second layer code tree node indicates the split mode corresponding to the first node of the second level code tree, the split mode corresponding to the first node is one mode in the mode candidate set partition corresponding to the first node and a mode candidate set corresponding to the first node are determined in accordance with the first predetermined split condition, the first predetermined split condition is used to indicate whether to restrict the split of the first node to the target split mode, the target split mode includes, at least one of horizontal binary splitting, horizontal ternary splitting, vertical binary splitting, and vertical ternary splitting, and the root node of the second level code tree is a leaf node of the first level code tree; and, if the partitioning mode corresponding to the first node does not further partition, parsing the bitstream to obtain the encoding information of the first node, in which the first node corresponds to one coding unit CU. The decoding and recovery module is configured to decode and recover the coding block based on the first node encoding information obtained by the parsing module to obtain an image corresponding to the image data.
В качестве варианта, в возможной реализации настоящего изобретения режим разделения узла, соответствующий кодовому дереву первого уровня, отличается от режима разделения узла, соответствующего кодовому дереву второго уровня. Режим разделения узла, соответствующий кодовому дереву первого уровня, включает в себя разделение дерева на квадранты, а режим разделения узла, соответствующий кодовому дереву второго уровня, включает в себя бинарное разделение дерева и троичное разделение дерева.Alternatively, in an exemplary implementation of the present invention, the node split mode corresponding to the first level code tree is different from the node split mode corresponding to the second level code tree. The node splitting mode corresponding to the first level code tree includes tree splitting into quadrants, and the node splitting mode corresponding to the second level code tree includes binary tree splitting and ternary tree splitting.
В качестве варианта, в другой возможной реализации настоящего изобретения режим разделения узла, соответствующий кодовому дереву первого уровня, включает в себя разделение дерева на квадранты, а режим разделения узла, соответствующий кодовому дереву второго уровня, включает в себя бинарное разделение дерева и троичное разделение дерева.Alternatively, in another possible implementation of the present invention, the node splitting mode corresponding to the first level code tree includes tree splitting into quadrants, and the node splitting mode corresponding to the second level code tree includes binary tree splitting and ternary tree splitting.
В качестве варианта, в другой возможной реализации настоящего изобретения, информация режима разделения узла кодового дерева второго уровня включает в себя первую информацию, вторую информации и третью информацию. Первая информация используется для указания, следует ли дополнительно разделять первый узел, вторую информацию используют для указания направления, в котором первый узел разделен, и третья информация используется для указания режима, в котором первый узел разделен. Соответственно, модуль синтаксического анализа специально выполнен с возможностью: выполнять синтаксический анализ битового потока для определения, в соответствии с первым заданным условием разделения, набора кандидатов режима разделения, соответствующего первому узлу; и выполнять синтаксический анализ битового потока на основании набора кандидатов режима разделения, соответствующего первому узлу, для определения первой информации, второй информации и третьей информации.Alternatively, in another possible implementation of the present invention, the splitting mode information of the second layer code tree node includes first information, second information, and third information. The first information is used to indicate whether the first node should be further divided, the second information is used to indicate the direction in which the first node is divided, and the third information is used to indicate the mode in which the first node is divided. Accordingly, the parsing module is specifically configured to: parse the bitstream to determine, in accordance with the first predetermined split condition, a split mode candidate set corresponding to the first node; and parsing the bitstream based on the partition mode candidate set corresponding to the first node to determine first information, second information, and third information.
В качестве варианта, в другой возможной реализации настоящего изобретения модуль синтаксического анализа специально выполнен с возможностью: определять первое числовое значение, где первое числовое значение представляет собой количество режимов разделения в наборе кандидатов режима разделения, соответствующем первому узлу; и выполнять синтаксический анализ битового потока на основании первого числового значения для определения первой информации, второй информации и третьей информации.Alternatively, in another possible implementation of the present invention, the parser is specifically configured to: determine a first numeric value, where the first numeric value is the number of split modes in the split mode candidate set corresponding to the first node; and parsing the bitstream based on the first numerical value to determine the first information, the second information, and the third information.
В качестве варианта, в другой возможной реализации настоящего изобретения режим разделения узла, соответствующий кодовому дереву второго уровня, дополнительно включает в себя разделение дерева на квадранты. Соответственно, модуль синтаксического анализа специально выполнен с возможностью выполнять синтаксический анализ битового потока для получения информации режима разделения узла кодового дерева второго уровня, где информация режима разделения узла кодового дерева второго уровня указывает режим разделения, соответствующий первому узлу кодового дерева второго уровня, режим разделения, соответствующий первому узлу, является одним из режимов в наборе кандидатов режима разделения, соответствующий первому узлу, набор кандидатов режима разделения, соответствующий первому узлу, определяют в соответствии с первым заданным условием разделения и вторым заданным условием разделения, а второе заданное условие разделения используют для указания, следует ли ограничить разделением первого узла на основании разделения дерева на квадранты.Alternatively, in another possible implementation of the present invention, the node splitting mode corresponding to the second level code tree further includes splitting the tree into quadrants. Accordingly, the parsing unit is specifically configured to parse the bitstream to obtain the split mode information of the second level code tree node, where the split mode information of the second level code tree node indicates the split mode corresponding to the first node of the second level code tree, the split mode corresponding to to the first node is one of the modes in the partition mode candidate set corresponding to the first node, the partition mode candidate set corresponding to the first node is determined according to the first partition predetermined condition and the second partition predetermined condition, and the second partition predetermined condition is used to indicate whether whether to limit the division of the first node based on the division of the tree into quadrants.
В качестве варианта, в другой возможной реализации настоящего изобретения информация режима разделения узла дерева кодирования второго уровня дополнительно включает в себя четвертую информацию, и четвертая информация используется для указания, следует ли разделить первый узел, на основании разделения дерева квадрантов. Соответственно, модуль синтаксического анализа специально выполнен с возможностью: выполнять синтаксический анализ битового потока для определения, в соответствии с первым заданным условием разделения и вторым заданным условием разделения, набора кандидатов режима разделения, соответствующего первому узлу; и выполнять синтаксический анализ битового потока в режиме разделения, соответствующий первому узлу, для определения первой информации, второй информации, третьей информации и четвертой информации.Alternatively, in another possible implementation of the present invention, the splitting mode information of the second layer coding tree node further includes fourth information, and the fourth information is used to indicate whether to split the first node based on splitting the quadtree. Accordingly, the parser is specifically configured to: parse the bitstream to determine, according to the first predetermined split condition and the second predetermined split condition, a split mode candidate set corresponding to the first node; and parsing the bitstream in a split mode corresponding to the first node to determine the first information, the second information, the third information, and the fourth information.
Для первого заданного условия разделения во втором аспекте может быть сделана ссылка на описание первого заданного условия разделения в первом аспекте. Аналогично, для второго заданного условия разделения во втором аспекте сделана ссылка на описание второго заданного условия разделения в первом аспекте.For the first predetermined separation condition in the second aspect, reference may be made to the description of the first predetermined separation condition in the first aspect. Similarly, for the second predetermined separation condition in the second aspect, reference is made to the description of the second predetermined separation condition in the first aspect.
В соответствии с третьим аспектом предоставлено устройство декодирования. Устройство декодирования включает в себя один или более процессоров, память и интерфейс связи. Память и интерфейс связи соединены с одним или более процессорами. Память выполнена с возможностью хранить компьютерный программный код. Компьютерный программный код включает в себя инструкцию. Когда один или более процессоров выполняют инструкции, устройство декодирования выполняет способ декодирования данных изображения по любому одному из первого аспекта или возможных реализациях первого аспекта.According to a third aspect, a decoding device is provided. The decoding device includes one or more processors, a memory, and a communication interface. The memory and communication interface are connected to one or more processors. The memory is configured to store the computer program code. The computer program code includes an instruction. When the one or more processors execute the instructions, the decoding device executes the image data decoding method according to any one of the first aspect or possible implementations of the first aspect.
В соответствии с четвертым аспектом обеспечивается машиночитаемый носитель данных. Машиночитаемый носитель данных хранит инструкции. При выполнении инструкций устройством декодирования, устройство декодирования выполнено с возможностью выполнять способ декодирования данных изображений по любому одному из первого аспекта или возможных реализациях первого аспекта.According to a fourth aspect, a computer-readable storage medium is provided. A computer-readable storage medium stores instructions. When the instructions are executed by the decoding device, the decoding device is configured to perform a method for decoding image data according to any one of the first aspect or possible implementations of the first aspect.
В соответствии с пятым аспектом обеспечивается компьютерный программный продукт, включающий в себя инструкции. Когда компьютерный программный продукт выполняется устройством декодирования, устройство декодирования выполнено с возможностью выполнения способа декодирования данных изображения по любому одному из первого аспекта или возможных реализациях первого аспекта.According to a fifth aspect, a computer program product including instructions is provided. When the computer program product is executed by the decoding device, the decoding device is configured to perform the image data decoding method according to any one of the first aspect or possible implementations of the first aspect.
В настоящем изобретении для подробного описания второго аспекта, третьего аспекта, четвертого аспекта, пятого аспекта и реализаций второго аспекта, третьего аспекта, четвертого аспекта и пятого аспекта может быть сделана ссылка на подробные описания первого аспекта и реализаций первого аспекта. Дополнительно, для получения информации о полезных эффектах второго аспекта, третьего аспекта, четвертого аспекта, пятого аспекта и реализаций второго аспекта, третьего аспекта, четвертого аспекта и пятого аспекта может быть сделана ссылка на анализ полезных эффектов первого аспекта и реализаций первого аспекта. Подробности не описаны здесь снова.In the present invention, for detailed descriptions of the second aspect, third aspect, fourth aspect, fifth aspect, and implementations of the second aspect, third aspect, fourth aspect, and fifth aspect, reference may be made to detailed descriptions of the first aspect and implementations of the first aspect. Additionally, for obtaining information about the beneficial effects of the second aspect, the third aspect, the fourth aspect, the fifth aspect, and the implementations of the second aspect, the third aspect, the fourth aspect, and the fifth aspect, reference can be made to the analysis of the beneficial effects of the first aspect and the implementations of the first aspect. Details are not described here again.
В настоящем изобретении упомянутое название устройства декодирования не является каким-либо ограничением устройств или функциональных модулей. В фактической реализации устройства или функциональные модули могут иметь другие названия. Каждое устройство или функциональный модуль находится в пределах объема, определяемого формулой изобретения и их эквивалентных технологий в настоящем изобретении, при условии, что функция устройства или функционального модуля аналогично тому, как описано в настоящем изобретении.In the present invention, the mentioned name of the decoding device is not any limitation of devices or functional modules. Devices or functional modules may have other names in the actual implementation. Each device or functional module is within the scope of the claims and their equivalent technologies in the present invention, provided that the function of the device or functional module is similar to that described in the present invention.
В соответствии с шестым аспектом обеспечивается способ декодирования данных изображения. После определения CTU, соответствующего блоку изображения, подлежащему кодированию, устройство кодирования делит CTU в режиме разделения узла, соответствующего дереву кодирования первого уровня, для получения листового узла кодового дерева первого уровня. Корневой узел кодового дерева первого уровня соответствует CTU. Устройство кодирования определяет набор кандидатов режима разделения, соответствующий первому узлу кодового дерева второго уровня. Набор кандидатов режима кодирования, соответствующий первому узлу, удовлетворяет первому заданному условию разделения, используемому для указания, следует ли ограничить разделение первого узла целевым режимом разделения, режим целевого разделения включает в себя по меньшей мере одно из горизонтального бинарного разделения, горизонтального троичного разделения, вертикального бинарного разделения и вертикального троичного разделения, и корневой узел кодового дерева второго уровня является листовым узлом кодового дерева первого уровня. Если набор кандидатов режима кодирования, соответствующий первому узлу, не включает в себя дополнительное разделение, устройство кодирования кодирует блок кодирования, соответствующий первому узлу, для получения кодированного блока битового потока, соответствующего блоку кодирования.According to a sixth aspect, a method for decoding image data is provided. After determining the CTU corresponding to the image block to be encoded, the encoder divides the CTU in node splitting mode corresponding to the first level coding tree to obtain a leaf node of the first level coding tree. The root node of the first level code tree corresponds to the CTU. The encoder determines a split mode candidate set corresponding to the first node of the second level code tree. The coding mode candidate set corresponding to the first node satisfies a first predetermined partitioning condition used to indicate whether to limit the partitioning of the first node to the target partitioning mode, the target partitioning mode includes at least one of horizontal binary partitioning, horizontal ternary partitioning, vertical binary separation and vertical ternary separation, and the root node of the second level code tree is the leaf node of the first level code tree. If the coding mode candidate set corresponding to the first node does not include an additional split, the encoder encodes the coding block corresponding to the first node to obtain an encoded bitstream block corresponding to the coding block.
Первое заданное условие разделения в этом варианте осуществления настоящего изобретения ограничивает режим разделения узла кодового дерева второго уровня, что значительно снижает сложность разделения узла кодового дерева второго уровня и уменьшает сложность кодирования.The first predetermined separation condition in this embodiment of the present invention restricts the splitting mode of the second level code tree node, which greatly reduces the complexity of splitting the second level code tree node and reduces the coding complexity.
В качестве варианта, в возможной реализации настоящего изобретения, режим разделения узла, соответствующий кодовому дереву первого уровня, включает в себя разделение дерева квадрантов, и режим разделения узла, соответствующий кодовому дереву второго уровня, включает в себя бинарное разделение дерева и троичное разделение дерева.Alternatively, in an exemplary implementation of the present invention, the node splitting mode corresponding to the first level code tree includes quadtree splitting, and the node splitting mode corresponding to the second level code tree includes binary tree splitting and ternary tree splitting.
В качестве варианта, в другой возможной реализации настоящего изобретения, режим разделения узла, соответствующий кодовому дереву второго уровня, дополнительно включает в себя разделение дерева квадрантов. В этом случае, способ «определения набора кандидатов режима разделения, соответствующий первому узлу кодового дерева второго уровня» представляет собой следующее: определяют набор кандидатов режима разделения, соответствующий первому узлу. Набор кандидатов режима разделения, соответствующий первому узлу, удовлетворяет первому заданному условию разделения и второму заданному условию ограничения, и второе заданное условие используют для указания, следует ли ограничить разделение первого узла на основании разделения дерева квадрантов.Alternatively, in another possible implementation of the present invention, the node splitting mode corresponding to the second level code tree further includes splitting the quadtree. In this case, the method of "determining the split mode candidate set corresponding to the first node of the second level code tree" is as follows: determining the split mode candidate set corresponding to the first node. The split mode candidate set corresponding to the first node satisfies the first predetermined split condition and the second predetermined constraint condition, and the second predetermined condition is used to indicate whether to restrict the split of the first node based on the split of the quadtree.
В качестве варианта, в другой возможной реализации настоящего изобретения, если набор кандидатов режима разделения, соответствующий первому узлу, включает в себя режим разделения, отличный от без дополнительного разделения, вычисляют стоимость искажения скорости каждого из режимов разделения, доступные для первого узла; режим разделения, соответствующий наименьшей стоимости искажения скорости определяется в качестве целевого режима разделения, соответствующего первому узлу; и первый узел разделен с использованием целевого режима разделения, соответствующий первому узлу.Alternatively, in another exemplary implementation of the present invention, if the split mode candidate set corresponding to the first node includes a split mode other than no further split, calculate the rate distortion cost of each of the split modes available to the first node; a split mode corresponding to the lowest rate distortion cost is determined as the target split mode corresponding to the first node; and the first node is partitioned using the target partition mode corresponding to the first node.
Для первого заданного условия разделения в шестом аспекте может быть сделана ссылка на описание первого заданного условия разделения в первом аспекте. Аналогично, для второго заданного условия разделения в шестом аспекте может быть сделана ссылка на описание второго заданного условия разделения в первом аспекте.For the first predetermined separation condition in the sixth aspect, reference may be made to the description of the first predetermined separation condition in the first aspect. Similarly, for the second predetermined separation condition in the sixth aspect, reference may be made to the description of the second predetermined separation condition in the first aspect.
В соответствии с седьмым аспектом обеспечивается устройство кодирования. Устройство кодирования включает в себя модуль определения, модуль разделения и модуль кодирования. Модуль определения выполнен с возможностью определения блока кодового дерева CTU, соответствующего блоку изображения, подлежащему кодированию. Модуль разделения выполнен с возможностью разделять в режиме разделения узла, соответствующего кодовому дереву первого уровня, CTU, определяемый модулем определения, для получения листового узла кодового дерева первого уровня. Корневой узел кодового дерева первого уровня соответствует CTU. Модуль определения дополнительно выполнен с возможностью определения набора кандидатов режима разделения, соответствующего первому узлу кодового дерева второго уровня. Набор кандидатов режима разделения, соответствующий первому узлу, удовлетворяет первому заданному условию разделения, первое заданное условие разделения используют для указания, следует ли ограничить разделение первого узла целевым режимом разделения, корневой узел кодового дерева второго уровня представляет собой листовой узел кодового дерева первого уровня, и целевой режим разделения включает в себя по меньшей мере одно из горизонтального бинарного разделения, горизонтального троичного разделение, вертикального бинарного разделения и вертикального троичного разделения. Модуль кодирования выполнен с возможностью: если набор кандидатов режима разделения, который соответствует первому узлу, и который определяется модулем определения, включает в себя отсутствие дополнительного разделения, кодировать блок кодирования CU, соответствующий первому узлу для получения кодированного блока битового потока, соответствующего блоку кодирования.According to a seventh aspect, an encoding device is provided. The encoding device includes a determination module, a separation module, and an encoding module. The determination module is configured to determine the CTU code tree block corresponding to the image block to be encoded. The splitter is configured to split in split mode the node corresponding to the first level code tree the CTU determined by the determiner to obtain a leaf node of the first level code tree. The root node of the first level code tree corresponds to the CTU. The determining module is further configured to determine a split mode candidate set corresponding to the first node of the second level code tree. The split mode candidate set corresponding to the first node satisfies the first predetermined split condition, the first predetermined split condition is used to indicate whether to restrict the split of the first node to the target split mode, the root node of the second level code tree is a leaf node of the first level code tree, and the target the split mode includes at least one of a horizontal binary split, a horizontal ternary split, a vertical binary split, and a vertical ternary split. The coding module is configured to: if the split mode candidate set that corresponds to the first node, and which is determined by the determination module, includes no additional partition, encode the CU coding block corresponding to the first node to obtain an encoded bitstream block corresponding to the coding block.
В качестве варианта, в возможной реализации настоящего изобретения, режим разделения узла, соответствующий кодовому дереву первого уровня, включает в себя разделение дерева квадрантов, и режим разделения узла, соответствующий кодовому дереву второго уровня, включает в себя бинарное разделение дерева и троичное разделение дерева.Alternatively, in an exemplary implementation of the present invention, the node splitting mode corresponding to the first level code tree includes quadtree splitting, and the node splitting mode corresponding to the second level code tree includes binary tree splitting and ternary tree splitting.
В качестве варианта, в возможной реализации настоящего изобретения, режим разделения узла, соответствующий кодовому дереву второго уровня, дополнительно включает в себя разделение дерева квадрантов. Соответственно, модуль определения специально выполнен с возможностью определять набор кандидатов режима разделения, соответствующий первому узлу. Набор кандидатов режима разделения, соответствующий первому узлу, удовлетворяет первому заданному условию разделения и второму заданному условию ограничения, и второе заданное условие разделения используется для указания, следует ли ограничить разделение первого узла на основании разделения дерева квадрантов.Alternatively, in an exemplary implementation of the present invention, the node splitting mode corresponding to the second level code tree further includes quadtree splitting. Accordingly, the determination module is specifically configured to determine the split mode candidate set corresponding to the first node. The split mode candidate set corresponding to the first node satisfies the first predetermined split condition and the second predetermined constraint condition, and the second predetermined split condition is used to indicate whether to restrict the split of the first node based on the split of the quadtree.
В качестве варианта, в возможной реализации настоящего изобретения устройство кодирования, обеспечиваемое настоящим вариантом осуществления настоящего изобретения, дополнительно включает в себя модуль вычисления. Модуль вычисления выполнен с возможностью: если набор кандидатов режима разделения, который соответствует первому узлу и который определяется модулем определения, включает в себя режим разделения помимо без дополнительного разделения, вычисления стоимости искажения скорости каждого из режимов разделения, доступных для первого узла. Соответственно, модуль определения дополнительно выполнен с возможностью определения режима разделения, соответствующего наименьшей стоимости искажения скорости, в качестве целевого режима разделения, соответствующего первому узлу. Модуль разделения специально выполнен с возможностью разделять первый узел в целевом режиме разделения, что соответствует первому узлу и который определяется модулем определения.Alternatively, in an exemplary implementation of the present invention, the encoding device provided by the present embodiment of the present invention further includes a calculation unit. The calculation module is configured to: if the split mode candidate set that corresponds to the first node and which is determined by the determination module includes a split mode in addition to no additional split, calculating the rate distortion cost of each of the split modes available to the first node. Accordingly, the determination module is further configured to determine the division mode corresponding to the lowest rate distortion cost as the target division mode corresponding to the first node. The separation module is specifically configured to separate the first node in the target separation mode, which corresponds to the first node and which is determined by the determination module.
Для первого заданного условия разделения в седьмом аспекте может быть сделана ссылка на описание первого заданного условия разделения в первом аспекте. Аналогично, для второго заданного условия разделения в седьмом аспекте может быть сделана ссылка на описание второго заданного условия разделения в первом аспекте.For the first predetermined separation condition in the seventh aspect, reference may be made to the description of the first predetermined separation condition in the first aspect. Similarly, for the second predetermined separation condition in the seventh aspect, reference may be made to the description of the second predetermined separation condition in the first aspect.
В соответствии с восьмым аспектом обеспечивается устройство кодирования. Устройство кодирования включает в себя один или более процессоров, память и интерфейс связи. Память и интерфейс связи соединены с одним или более процессорами. Память выполнена с возможностью хранить компьютерный программный код. Компьютерный программный код включает в себя инструкции. Когда один или более процессоров выполняют инструкции, устройство кодирования выполняет способ кодирования данных изображения по любому из шестого аспекта или возможных реализаций шестого аспекта.According to an eighth aspect, an encoding device is provided. The encoder includes one or more processors, a memory, and a communication interface. The memory and communication interface are connected to one or more processors. The memory is configured to store the computer program code. The computer program code includes instructions. When one or more processors execute the instructions, the encoding device executes the image data encoding method according to any of the sixth aspect or possible implementations of the sixth aspect.
В соответствии с девятым аспектом обеспечивается машиночитаемый носитель данных. Машиночитаемый носитель данных хранит инструкции. При выполнении инструкций устройством кодирования, устройство кодирования выполнено с возможностью выполнять способ кодирования данных изображения по любому из шестого аспекта или возможных реализаций шестого аспекта.According to a ninth aspect, a computer-readable storage medium is provided. A computer-readable storage medium stores instructions. Upon executing the instructions by the encoding device, the encoding device is configured to perform the image data encoding method according to any of the sixth aspect or possible implementations of the sixth aspect.
В соответствии с десятым аспектом обеспечивается компьютерный программный продукт, включающий в себя инструкции. Когда компьютерный программный продукт выполняется устройством кодирования, устройство кодирования выполнено с возможностью выполнять способ кодирования данных изображения по любому из шестого аспекта или возможных реализаций шестого аспекта.According to a tenth aspect, a computer program product including instructions is provided. When the computer program product is executed by the encoding device, the encoding device is configured to perform the image data encoding method according to any of the sixth aspect or possible implementations of the sixth aspect.
Для конкретных описаний седьмого аспекта, восьмого аспекта, девятого аспекта, десятого аспекта и реализаций седьмого аспекта, восьмого аспекта, девятого аспекта и десятого аспекта может быть сделана ссылка на подробное описание в седьмом аспекте и реализациях седьмого аспекта. Дополнительно, для полезных эффектов седьмого аспекта, восьмого аспекта, девятого аспекта, десятого аспекта и реализации седьмого аспекта, восьмого аспекта, девятого аспекта и десятого аспекта может быть сделана ссылка на полезные эффекты шестого аспекта и реализаций шестого аспекта. Подробности не описаны здесь снова.For specific descriptions of the seventh aspect, the eighth aspect, the ninth aspect, the tenth aspect, and the implementations of the seventh aspect, the eighth aspect, the ninth aspect, and the tenth aspect, reference can be made to the detailed description in the seventh aspect and the implementations of the seventh aspect. Additionally, for the benefits of the seventh aspect, the eighth aspect, the ninth aspect, the tenth aspect, and the implementation of the seventh aspect, the eighth aspect, the ninth aspect, and the tenth aspect, reference can be made to the benefits of the sixth aspect and the implementations of the sixth aspect. Details are not described here again.
В настоящем изобретении название устройства кодирования не представляет собой какое-либо ограничение устройства или функциональных модулей. В фактической реализации устройства или функциональные модули могут иметь другие названия. Каждое устройство или функциональный модуль находится в пределах объема, определяемого формулой изобретения и их эквивалентных технологий в настоящем изобретении, при условии, что функция устройства или функционального модуля аналогична тому, как описано в данном описании.In the present invention, the name of the encoding device does not represent any limitation of the device or functional modules. Devices or functional modules may have other names in the actual implementation. Each device or functional module is within the scope of the claims and their equivalent technologies in the present invention, provided that the function of the device or functional module is similar to that described in this description.
В нижеследующем описании приведено более точное и полное описание аспектов или иного аспекта настоящего изобретения.Краткое описание чертежейThe following description provides a more precise and complete description of aspects or other aspect of the present invention. Brief Description of the Drawings
Фиг.1 является схемой различных режимов разделения в соответствии с вариантом осуществления настоящего изобретения;Fig. 1 is a diagram of various separation modes according to an embodiment of the present invention;
Фиг.2 представляет собой схему глубины дерева квадрантов в соответствии с вариантом осуществления настоящего изобретения;2 is a quadtree depth diagram in accordance with an embodiment of the present invention;
Фиг.3 представляет собой схему комбинированного разделения дерева квадрантов деления и разделения бинарного дерева в соответствии с вариантом осуществления настоящего изобретения;3 is a diagram of a combined division quadtree splitting and binary tree splitting according to an embodiment of the present invention;
Фиг.4 представляет собой схему системы обработки изображения в соответствии с вариантом осуществления настоящего изобретения;Fig. 4 is a diagram of an image processing system according to an embodiment of the present invention;
Фиг.5 представляет собой схему структуры аппаратных средств мобильного телефона согласно варианту осуществления настоящего изобретения;5 is a hardware structure diagram of a mobile phone according to an embodiment of the present invention;
Фиг.6 представляет собой первую блок-схему алгоритма способа декодирования данных изображения согласно варианту осуществления настоящего изобретения;Fig. 6 is a first flowchart of an image data decoding method according to an embodiment of the present invention;
Фиг.7 представляет собой вторую блок-схему алгоритма способа декодирования данных изображения согласно варианту осуществления настоящего изобретения;7 is a second flowchart of an image data decoding method according to an embodiment of the present invention;
Фиг.8 представляет собой блок-схему алгоритма способа кодирования данных изображения в соответствии с вариантом осуществления настоящего изобретения;Fig. 8 is a flowchart of an image data encoding method according to an embodiment of the present invention;
Фиг.9 представляет собой схему устройства декодирования согласно варианту осуществления настоящего изобретения; иFig. 9 is a diagram of a decoding apparatus according to an embodiment of the present invention; and
Фиг.10 является схемой устройства кодирования в соответствии с вариантом осуществления настоящего изобретения.10 is a diagram of an encoder according to an embodiment of the present invention.
Осуществление изобретения Implementation of the invention
В описании, формуле изобретения и сопроводительных чертежах настоящего изобретения, термины, такие как «первый», «второй», «третий» и «четвертый» предназначены для различения между различными объектами, но не указывают на конкретный порядок.In the description, claims, and accompanying drawings of the present invention, terms such as "first", "second", "third", and "fourth" are intended to distinguish between different entities, but do not indicate a particular order.
В вариантах осуществления настоящего изобретения, слово, такое как «например» или «пример» используется для обозначения данного примера, иллюстрации или описания. Любой вариант осуществления или схема, описанная как «например» или «пример» в вариантах осуществления настоящего изобретения не должны быть интерпретированы как предпочтительный или имеющий больше преимуществ, чем другой вариант осуществления или схема. Именно, слово, например, «например» или «пример» используются для представления соответствующей концепции определенным образом.In embodiments of the present invention, a word such as "for example" or "example" is used to refer to a given example, illustration, or description. Any embodiment or scheme described as "for example" or "example" in the embodiments of the present invention should not be interpreted as being preferred or having more advantages than another embodiment or scheme. Namely, a word such as "for example" or "example" is used to represent the relevant concept in a certain way.
Для облегчения понимания вариантов осуществления настоящего изобретения прежде всего, описаны соответствующие элементы в вариантах осуществления настоящего изобретения.To facilitate understanding of the embodiments of the present invention, first of all, the corresponding elements in the embodiments of the present invention are described.
Блок кодового дерева (Coding Tree Unit, CTU): изображение включает в себя множество CUs. CTU обычно соответствует одной квадратной области изображения. Как показано на фиг. 1 (а), изображение 10 включает в себя множество CTUs (включающее в себя CTU A, CTU B, CTU С и тому подобное). Информация кодирования, соответствующая CTU, включает в себя значение яркости и/или значение цветности пикселя в квадратной области изображения, соответствующее CTU. Дополнительно, информация кодирования, соответствующая CTU, может дополнительно включать в себя элемент синтаксиса. Элемент синтаксиса указывает, как разделить CTU, по меньшей мере, на один CU и декодировать каждый CU, чтобы получить восстановленное изображение.Coding Tree Unit (CTU): An image includes a plurality of CUs. The CTU usually corresponds to one square area of the image. As shown in FIG. 1(a),
Область изображения, соответствующая одному CTU, может включать в себя 64 х 64, 128 х 128 или 256 х 256 пикселей. В качестве примера, CTU, включающий в себя 64 х 64 пикселей, включает в себя прямоугольную матрицу пикселей с 64 столбцами и 64 строками пикселей, и каждый пиксель включает в себя компонент яркости и/или компонент цветности.An image area corresponding to one CTU may include 64 x 64, 128 x 128, or 256 x 256 pixels. As an example, a CTU including 64 x 64 pixels includes a rectangular pixel array with 64 columns and 64 rows of pixels, and each pixel includes a luma component and/or a chrominance component.
Очевидно, что CTU альтернативно может соответствовать прямоугольной области изображения или области изображения в другой форме, и область изображения, соответствующая одному CTU, альтернативно может быть областью изображения, в которой количество пикселей в горизонтальном направлении отличается от количества пикселей в вертикальном направлении, например, включает в себя 64 х 128 пикселей.Obviously, a CTU may alternatively correspond to a rectangular image area or an image area in another shape, and an image area corresponding to one CTU may alternatively be an image area in which the number of pixels in the horizontal direction is different from the number of pixels in the vertical direction, for example, includes itself 64 x 128 pixels.
Блок кодирования (Coding Unit, CU): блок кодирования, как правило, соответствует одной AxB прямоугольной области, где А представляет собой ширину прямоугольника и В представляет собой высоту прямоугольника. Ширина в вариантах осуществления настоящего изобретения является длиной в направлении оси Х (горизонтальное направление) в двумерной прямоугольной системе координат XOY системы, показанной на фиг. 1, и высота является длиной в направлении оси Y (вертикальное направление) в двумерной прямоугольной системе координат XOY системы, показанной на фиг.1. В данном случае, значения А и В могут быть одинаковыми или могут быть различными. Значения А и В, как правило, являются цельно численными значениями степеней 2, например, 256, 128, 64, 32, 16, 8 или 4. Восстановленный блок изображения в прямоугольной области AxB может быть получен путем выполнения процесса декодирования CU. Обработка декодирования, как правило, включает в себя обработку, такую как предсказание (prediction), деквантования (dequantization) и обратное преобразование (inverse transform), и генерируют предсказанное и остаточное изображение, и предсказанное и остаточное изображения накладываются друг на друга, чтобы получить восстановленный блок изображения. Окончательное восстановленное изображение может быть получено с использованием множества восстановленных блоков изображений.Coding Unit (CU): A coding unit typically corresponds to one AxB rectangular area, where A is the width of the rectangle and B is the height of the rectangle. The width in embodiments of the present invention is the length in the X-axis direction (horizontal direction) in the two-dimensional XOY rectangular coordinate system of the system shown in FIG. 1, and the height is the length in the Y-axis direction (vertical direction) in the two-dimensional XOY rectangular coordinate system of the system shown in FIG. In this case, the values of A and B may be the same or may be different. The values A and B are typically integer powers of 2, such as 256, 128, 64, 32, 16, 8, or 4. A reconstructed image block in the rectangular area AxB can be obtained by performing a CU decoding process. The decoding processing typically includes processing such as prediction, dequantization, and inverse transform, and generates a predicted and residual image, and the predicted and residual images are superimposed on each other to obtain a reconstructed image block. The final reconstructed image may be obtained using a plurality of reconstructed image blocks.
Дерево квадрантов (Quad-Tree, QT): дерево квадрантов представляет собой древовидную структуру, и узел может быть разделен на четыре дочерних узла. В примере, в видеокодеке стандарта H.265, используют режим разделения CTU дерева квадрантов: CTU используют в качестве корневого узла. Каждый узел соответствует одной квадратной области изображения. Узел может быть дополнительно разделен (в данном случае, квадратная область изображения, соответствующая узлу, является CU); или может быть разделен на четыре узла нижнего уровня, то есть, квадратная область изображения, соответствующая узлу, делится на четыре одинаковых квадратных областей (ширина и высота квадратной области, соответственно, половину ширины и половину высоты области перед разделением) и каждая область соответствует одному узлу. Как показано на фиг. 1 (b), CTU А является корневым узлом и CTU А разделен на четыре узла: а, b, c и d. Если узел а больше не разделяют, то квадратная область изображения, соответствующая узлу А, соответствует одному CU.Quad-Tree (QT): A quad-tree is a tree structure and a node can be split into four child nodes. In the example, in the H.265 video codec, the quadtree CTU split mode is used: CTU is used as the root node. Each node corresponds to one square area of the image. The node may be further divided (in this case, the square image area corresponding to the node is CU); or can be divided into four lower-level nodes, that is, the square image area corresponding to the node is divided into four equal square areas (the width and height of the square area, respectively, half the width and half the height of the area before splitting) and each area corresponds to one node . As shown in FIG. 1(b), CTU A is the root node and CTU A is divided into four nodes a, b, c and d. If node a is no longer shared, then the square image area corresponding to node A corresponds to one CU.
Бинарное дерево (Binary Tree, BT): бинарное дерево представляет собой древовидную структуру. Узел может быть разделен на два дочерних узла. Узел в структуре бинарного дерева может быть дополнительно разделен, или может быть разделен на два узла нижнего уровня. Режим разделения бинарного дерева может включать в себя одно из следующих действий:Binary Tree (BT): A binary tree is a tree structure. A node can be split into two child nodes. A node in the binary tree structure may be further split, or may be split into two lower level nodes. The binary tree splitting mode can include one of the following:
(1) Горизонтальное бинарное разделение(1) Horizontal Binary Separation
Область изображения, соответствующая узлу, разделена на верхнюю область и нижнюю область, которые имеют одинаковый размер. Конкретно, для области изображения, полученной путем разделения, ширина остается неизменной, и высота становится вдвое меньше, чем в области изображения разделения. Каждая область изображения, полученная путем разделения, соответствует одному дочернему узлу. Как показано на фиг. 1 (с), узел b разделяют в режиме горизонтального разделения бинарного дерева для генерирования узла e и узла f.The region of the image corresponding to the node is divided into an upper region and a lower region, which are of the same size. Specifically, for a split image area, the width remains unchanged and the height becomes half that of the split image area. Each area of the image obtained by splitting corresponds to one child node. As shown in FIG. 1(c), node b is split in horizontal binary tree splitting mode to generate node e and node f.
(2) Вертикальное бинарное разделение(2) Vertical Binary Separation
Область, соответствующая узлу, разделяют на левую область и правую область, которые имеют одинаковый размер. Конкретно, для области изображения, полученной путем разделения, высота остается неизменной, и ширина составляет половину области изображения разделения. Каждая область изображения, полученная путем разделения, соответствует одному дочернему узлу. Как показано на фиг. 1 (d), узел d разделяют в режиме вертикального бинарного разделения для генерирования узла g и узла h.The region corresponding to the node is divided into a left region and a right region, which are of the same size. Specifically, for a split image area, the height remains unchanged and the width is half of the split image area. Each area of the image obtained by splitting corresponds to one child node. As shown in FIG. 1(d), node d is split in a vertical binary splitting mode to generate node g and node h.
Очевидно, что горизонтальное бинарное разделение и вертикальное бинарное разделение являются примерами режима разделения бинарного дерева. Область изображения, соответствующая узлу, может быть разделена на две подобласти в другом режиме. Например, две подобласти неравные по высоте получают путем горизонтального разделения или две области неравные по ширине получают посредством вертикального разделения.Obviously, horizontal binary splitting and vertical binary splitting are examples of the binary tree splitting mode. An image area corresponding to a node can be divided into two sub-areas in another mode. For example, two subregions unequal in height are obtained by a horizontal division, or two regions unequal in width are obtained by a vertical division.
Троичное дерево (Ternary Tree, ТТ): троичное дерево представляет собой древовидную структуру. Узел может быть разделен на три дочерних узла. Узел в структуре троичного дерева не может быть дополнительно разделен, или может быть разделены на три узла нижнего уровня. Режим разделения троичного дерева может включать в себя одно из следующих действий:Ternary Tree (TT): A ternary tree is a tree structure. A node can be split into three child nodes. A node in a ternary tree structure cannot be further split, or it can be split into three lower level nodes. The ternary tree split mode can include one of the following:
(1) Горизонтальное троичное разделение(1) Horizontal ternary separation
Область изображения, соответствующая узлу, разделяется на три области: верхняя область, средняя область и нижняя область, и каждая область соответствует одному дочернему узлу. В примере, высота верхней области, средней области и нижней области соответственно равна 1/4, 1/2 и 1/4 высоты области изображения перед разделением. Как показано на фиг. 1 (е), узел с разделен в режиме горизонтального троичного разделения, чтобы сгенерировать узел j, узел k и узел m. Высота в области изображения, соответствующем узлу j составляет 1/4 от высоты области изображения, соответствующего узлу с, и высота области изображения, соответствующей узлу k, равна 1/2 высоте области изображения, соответствующей узлу с, и высота области изображения, соответствующей узлу m, составляет 1/4 от высоты области изображения, соответствующей узлу с. В другом примере, высота верхней области, средней области и нижней области соответственно равна 1/3, 1/3 и 1/3 высоты области изображения перед разделением. Более конкретно, область изображения, соответствующая узлу, равномерно разделена на три области в направлении оси Х в двумерной прямоугольной системе координат XOY системы, показанной на фиг.1. Как показано на фиг.1 (f), узел с разделяют в режиме горизонтального троичного разделения, чтобы сгенерировать узел j, узел k и узел m; и высота области изображения, соответствующей узлу j, высота в области изображения, соответствующей узлу k, и высота области изображения, соответствующей узлу m, являются все 1/3 высоты области изображения, соответствующей узлу с.The image area corresponding to a node is divided into three areas: a top area, a middle area, and a bottom area, and each area corresponds to one child node. In the example, the height of the top region, middle region, and bottom region are respectively 1/4, 1/2, and 1/4 of the height of the image region before splitting. As shown in FIG. 1(e), node c is split in a horizontal ternary split mode to generate node j, node k, and node m. The height of the image area corresponding to node j is 1/4 of the height of the image area corresponding to node c, and the height of the image area corresponding to node k is 1/2 the height of the image area corresponding to node c, and the height of the image area corresponding to node m , is 1/4 of the height of the image area corresponding to node c. In another example, the height of the top region, middle region, and bottom region are respectively 1/3, 1/3, and 1/3 of the height of the image region before splitting. More specifically, the image area corresponding to a node is evenly divided into three areas in the X-axis direction in the two-dimensional XOY rectangular coordinate system of the system shown in FIG. As shown in Fig. 1(f), node c is split in a horizontal ternary split mode to generate node j, node k, and node m; and the height of the image area corresponding to node j, the height in the image area corresponding to node k, and the height of the image area corresponding to node m are all 1/3 of the height of the image area corresponding to node c.
(2) Вертикальное троичное разделение.(2) Vertical ternary separation.
Область изображения, соответствующая узлу, делится на три области: левая область, средняя область и правая область, и каждая область соответствует одному дочернему узлу. В примере, ширина левой области, средней области и правой области соответственно равны 1/4, 1/2 и 1/4 ширины области изображения перед разделением. Как показано на фиг.1 (g), узел с разделен в режиме вертикального троичного разделения, чтобы сгенерировать узел p, узел q и узел х. Ширина области изображения, соответствующая узлу р, составляет 1/4 от ширины области изображения, соответствующего узла с, и ширина области изображения, соответствующая узлу q, составляет 1/2 от ширины области изображения, соответствующей узлу с, и ширина области изображения, соответствующей узлу х, составляет 1/4 от ширины области изображения, соответствующего узла с. В другом примере, высота левой области, средней области и правой области соответственно равны 1/3, 1/3 и 1/3 высоты области изображения перед разделением. Более конкретно, область изображения, соответствующая узлу, равномерно разделена на три области в направлении оси Х в двумерной прямоугольной системе координат XOY системы, показанной на фиг.1. Как показано на фиг.1 (h), узел с разделен в режиме вертикального троичного разделения, чтобы сгенерировать узел р, узел q и узел х; и ширина области изображения, соответствующая узлу р, ширина области изображения, соответствующая узлу q и ширина области изображения, соответствующая узлу х, все равны 1/3 ширины область изображения, соответствующей узлу с.The image region corresponding to a node is divided into three regions: a left region, a middle region, and a right region, and each region corresponds to one child node. In the example, the widths of the left region, middle region, and right region are respectively 1/4, 1/2, and 1/4 of the width of the image region before splitting. As shown in Fig. 1(g), node c is split in a vertical ternary split mode to generate node p, node q, and node x. The width of the image area corresponding to node p is 1/4 of the width of the image area corresponding to node c, and the width of the image area corresponding to node q is 1/2 of the width of the image area corresponding to node c, and the width of the image area corresponding to node c. x is 1/4 of the width of the image area corresponding to node c. In another example, the height of the left region, middle region, and right region are respectively 1/3, 1/3, and 1/3 of the height of the image region before splitting. More specifically, the image area corresponding to a node is evenly divided into three areas in the X-axis direction in the two-dimensional XOY rectangular coordinate system of the system shown in FIG. As shown in Fig. 1(h), node c is split in a vertical ternary split mode to generate node p, node q, and node x; and the width of the image area corresponding to node p, the width of the image area corresponding to node q, and the width of the image area corresponding to node x are all 1/3 of the width of the image area corresponding to node c.
Кодирование изображения (image encoding): кодирование изображения представляет собой процесс обработки, в котором последовательность изображений сжимают в битовый поток.Image encoding: Image encoding is a processing process in which a sequence of images is compressed into a bitstream.
Декодирование изображения (image decoding): декодирования изображения представляет собой процесс обработки, в котором битовый поток будет восстановлен в восстановленное изображение в соответствии с конкретным правилом синтаксиса и конкретным способом обработки.Image decoding: Image decoding is a processing process in which a bitstream will be restored into a reconstructed image according to a specific syntax rule and a specific processing method.
В видеокодеке стандарта H.265, CTU разделяют в QT режиме разделения. В частности, CTU используют в качестве корневого (root) узла QT структуры, и CTU рекурсивно разделяют на несколько листовых узлов (leaf node) в QT режиме разделения. Если узел больше не разделяют, то узел называется листовым узлом. Это можно узнать из приведенного выше описания, изображение включает в себя множество CTUs, и один CTU соответствует одной квадратной области изображения. Другими словами, один CTU соответствует одному блоку изображения. Каждый листовой узел соответствует одному CU. Каждый CU эквивалентен дочернему блоку изображения в блоке изображения, соответствующий CTU, и дочерний блок изображения не может быть больше разделен в QT режиме разделения. Если узел должен быть дополнительно разделен, то область изображения, соответствующая узлу, разделяют на четыре области изображения одного и того же размера. Как показано на фиг.1 (b), после того, как область изображения, соответствующая узлу, разделяется, каждая область изображения генерируется после того, как разделение соответствует одному узлу, и определяют, следует ли дополнительно разделять эти узлы. Необходимость разделить узел будет идентифицировано битом флага разделения (например, split_cu_flag), соответствующий узлу, в битовом потоке. Глубина корневого узла в QT структуре (QT глубина, для краткости) равна 0, и QT глубина дочернего узла, генерируемого в QT режиме разделения, является QT глубиной родительского узла дочернего узла плюс 1.In the H.265 video codec, CTUs are split in QT split mode. In particular, the CTU is used as the root node of the QT structure, and the CTU is recursively partitioned into multiple leaf nodes in the QT split mode. If the node is no longer shared, then the node is called a leaf node. As can be seen from the description above, an image includes a plurality of CTUs, and one CTU corresponds to one square image area. In other words, one CTU corresponds to one image block. Each leaf node corresponds to one CU. Each CU is equivalent to a child image unit in the image unit corresponding to the CTU, and the child image unit cannot be further divided in QT split mode. If the node is to be further divided, then the image area corresponding to the node is divided into four image areas of the same size. As shown in Fig. 1(b), after an image area corresponding to a node is divided, each image area is generated after the division corresponds to one node, and it is determined whether to further divide these nodes. The need to split a node will be identified by a split flag bit (eg, split_cu_flag) corresponding to the node in the bitstream. The depth of a root node in a QT structure (QT depth, for short) is 0, and the QT depth of a child node generated in QT split mode is the QT depth of the parent node of the
Например, бит флага разделения узла представлен split_cu_flag. Если split_cu_flag = 0, то это означает, что узел больше не разделяют; или, если split_cu_flag = 1, то это означает, что узел должен быть дополнительно разделен. Как показано на фиг. 2, когда значение split_cu_flag 64х64 CTU узла (чья QT глубина 0) равно 1, то CTU узел делится на четыре 32х32 узлов (чьи QT глубины равны 1) и четыре 32х32 узлов, соответственно, узел А1, узел A2, узел A3 и A4 узел. Каждый из четырех узлов 32х32 может быть или не может быть разделен на основании split_cu_flag соответствующего узла. Если значение split_cu_flag узла А1 равно 1, то узел А1 дополнительно разделен на четыре 16x16 узла (чьи QT глубины равны 2), четыре 16x16 узла, соответственно, узел В1, узел В2, узел В3 и узел В4, и так далее до тех пор, пока ни один узел не будет дополнительно разделен. Таким образом, один CTU разделяют на группу CUs. В той же QT структуре, минимальные размеры всех CUs (а именно, минимальные значения CUs) являются такими же, и минимальные размеры CUs определены в наборе параметров последовательности (Sequence Parameter Set, SPS) битового потока. Например, 8x8 CU является минимальным CU. В приведенном выше процессе рекурсивного разделения, если размер узла равен минимальному размеру CU, то определяется, что узел больше не делят, и флаг разделения узла не должен быть включен в битовый поток.For example, the split node flag bit is represented by split_cu_flag. If split_cu_flag = 0, then this means that the node is no longer split; or, if split_cu_flag = 1, then this means that the node should be further split. As shown in FIG. 2, when the value of split_cu_flag 64x64 CTU of a node (whose QT depth is 0) is 1, then the CTU node is divided into four 32x32 nodes (whose QT depths are 1) and four 32x32 nodes, respectively, node A1, node A2, node A3 and node A4 . Each of the four 32x32 nodes may or may not be split based on the split_cu_flag of the corresponding node. If node A1's split_cu_flag value is 1, then node A1 is further split into four 16x16 nodes (whose QT depths are 2), four 16x16 nodes, respectively, node B1, node B2, node B3, and node B4, and so on until until no node is further split. Thus, one CTU is divided into a group of CUs. In the same QT structure, the minimum sizes of all CUs (namely, the minimum values of CUs) are the same, and the minimum sizes of CUs are defined in the Sequence Parameter Set (SPS) of the bitstream. For example, 8x8 CU is the minimum CU. In the above recursive splitting process, if the node size is equal to the minimum CU size, then it is determined that the node is no longer split, and the node splitting flag should not be included in the bitstream.
Режим разделения, в котором CTU разделен на группу CUs, соответствует одному кодовому дереву. Фиг.3 (а) представляет собой пример кодового дерева. Кодовое дерево может соответствовать только одному режиму разделения, например, режиму разделения дерева квадрантов, или может соответствовать множеству режимов разделения, например, вышеописанной QTBT структуре и описанной далее QTBT/ТТ структуре.The split mode in which the CTU is divided into a group of CUs corresponds to one code tree. Fig. 3(a) is an example of a code tree. The code tree may correspond to only one partitioning mode, such as a quadtree partitioning mode, or may correspond to multiple partitioning modes, such as the QTBT structure described above and the QTBT/TT structure described later.
Кодовое дерево первого уровня, кодовое дерево второго уровня, кодовое дерево третьего уровня, ..., и кодовое дерево N-го уровня соответствуют различным наборам режима разделения, где N является положительным целым числом больше 3. Различные наборы режима разделения могут быть типом дерева, например, троичным деревом, бинарным деревом или деревом квадрантов; или может представлять собой набор режимов разделения в одном и том же типе дерева, например, горизонтальное бинарное разделение или вертикальное бинарное разделение; или может быть их комбинацией. Очевидно, что кодовое дерево не обязательно включает в себя все упомянутые множества кодовых деревьев на разных уровнях. Например, кодовое дерево может включать в себя только кодовое дерево первого уровня; или кодовое дерево может включать в себя кодовое дерево первого уровня и кодовое дерево второго уровня; или кодовое дерево может включать в себя кодовое дерево первого уровня, кодовое дерево второго уровня и кодовое дерево третьего уровня.The first level code tree, the second level code tree, the third level code tree, ..., and the Nth level code tree correspond to different split mode sets, where N is a positive integer greater than 3. The different split mode sets can be a tree type, for example, a ternary tree, a binary tree, or a quadtree; or may be a set of partitioning modes in the same tree type, such as horizontal binary partitioning or vertical binary partitioning; or may be a combination of them. It is obvious that the code tree does not necessarily include all the mentioned sets of code trees at different levels. For example, the code tree may include only the first level code tree; or the code tree may include a first level code tree and a second level code tree; or the code tree may include a first level code tree, a second level code tree, and a third level code tree.
В примере, кодовое дерево первого уровня может включать в себя разделение дерева квадрантов, и кодовое дерево второго уровня может включать в себя бинарное разделение дерева и троичное разделение дерева.In an example, a first level code tree may include a quadtree split, and a second level code tree may include a binary tree split and a ternary tree split.
В примере, кодовое дерево первого уровня может включать в себя разделение на дерево квадрантов и кодовое дерево второго уровня может включать в себя бинарное разделение дерева, троичное разделение дерева и разделение дерева квадрантов.In an example, the first level code tree may include quadtree splitting and the second level code tree may include binary tree splitting, ternary tree splitting, and quadtree splitting.
В примере, дерево кодирования первого уровня может включать в себя разделение дерева квадрантов и бинарное разделение дерева, и кодовое дерево второго уровня включает в себя троичное разделение дерева.In an example, the first level coding tree may include quadtree splitting and binary tree splitting, and the second level code tree includes ternary tree splitting.
В примере, дерево кодирования первого уровня может включать в себя разделение дерева квадрантов, дерево кодирования второго уровня может включать в себя бинарное разделение дерева и кодовое дерево третьего уровня может включать в себя троичное разделение дерева.In an example, the first level encoding tree may include quadtree splitting, the second level encoding tree may include binary tree splitting, and the third level encoding tree may include ternary tree splitting.
В примере, кодовое дерево первого уровня может включать в себя горизонтальное бинарное разделение, кодовое дерево второго уровня может включать в себя вертикальное бинарное разделение и разделение дерева квадрантов, и кодовое дерево третьего уровня может включать в себя вертикальное троичное разделение и горизонтальное троичное разделение.In an example, the first level code tree may include horizontal binary splitting, the second level code tree may include vertical binary splitting and quadtree splitting, and the third level code tree may include vertical ternary splitting and horizontal ternary splitting.
Кодовое дерево второго уровня может дополнительно включать в себя другие режимы разделения, и это конкретно не ограничено в вариантах осуществления настоящего изобретения.The second level code tree may further include other partitioning modes, and this is not specifically limited in the embodiments of the present invention.
Устройство кодирования обычно использует технологию оптимизации скорости искажений (Rate Distortion Optimization, RDO) для определения конкретного кодового дерева, используемого CTU для кодирования. В частности, для каждого узла, устройство кодирования вычисляет стоимость скорости искажения (Rate Distortion cost, RD cost) каждого режима разделения, который может быть использован узлом, сравнивает вычисленные RD стоимости, и определяет режим разделения, соответствующий минимальной RD стоимости, как режим разделения узла.The encoder typically uses Rate Distortion Optimization (RDO) technology to determine the specific code tree used by the CTU for encoding. Specifically, for each node, the encoder calculates the Rate Distortion cost (RD cost) of each split mode that can be used by the node, compares the computed RD costs, and determines the split mode corresponding to the minimum RD cost as the split mode of the node. .
Аналогично QT структуре, глубина узла в ВТ структуре называется ВТ глубиной, и ВТ глубина дочернего узла, генерируемого в ВТ режиме разделения, является ВТ глубиной BT родительского узла дочернего узла плюс 1. Если ВТ глубина узла равна максимальной ВТ глубине, то определяется, что узел больше не разделяют. Максимальная ВТ глубина в ВТ структуре обычно идентифицируется в SPS.Similar to the QT structure, the depth of a node in the BT structure is called the BT depth, and the BT depth of a child node generated in the BT split mode is the BT depth of the child node's parent node plus 1. If the BT depth of a node is equal to the maximum BT depth, then it is determined that the node no longer shared. The maximum BT depth in the BT structure is usually identified in the SPS.
В качестве примера, ВТ режим разделения вводят в дополнении к QT режиму разделения. QT режим разделения и ВТ режим разделения используют последовательно для получения режима разделения. Этот режим разделения называется QTBT режимом разделения. В частности, CTU разделяют в QT режиме разделения и QT листовой узел может быть дополнительно разделен в ВТ режиме разделения. Другими словами, кодовое дерево первого уровня является QT, и кодовое дерево второго уровня является ВТ.As an example, the BT split mode is administered in addition to the QT split mode. The QT split mode and the BT split mode are used sequentially to obtain the split mode. This split mode is called QTBT split mode. In particular, the CTU is split in the QT split mode, and the QT leaf node can be further split in the BT split mode. In other words, the first level code tree is QT and the second level code tree is BT.
Как показано на фиг.3(а), каждая конечная точка представляет собой узел, сплошная линия показывает, что узел разделяют в QT режиме разделения, пунктирная линия показывает, что узел разделяют в BT режиме разделения, А до М 13 являются листовыми узлами, и каждый листовой узел соответствует одному CU. В ВТ структуре, 10 представляет собой вертикальное бинарное разделение и 11 представляет собой горизонтальное бинарное разделение. Фиг.3(b) показывает область изображения, соответствующая CTU, которую разделяют в режиме разделения, показанного на фиг.3(а).As shown in FIG. 3(a), each endpoint is a node, the solid line shows that the node is split in QT split mode, the dashed line shows that the node is split in BT split mode, A to M 13 are leaf nodes, and each leaf node corresponds to one CU. In the BT structure, 10 represents the vertical binary separation and 11 represents the horizontal binary separation. Fig. 3(b) shows an image area corresponding to a CTU that is divided in the split mode shown in Fig. 3(a).
В QTBT режиме разделения, каждый из CU имеет QT глубину и BT глубину. Для CU в QTBT режиме разделения, QT глубина CU является QT глубиной QT листового узла, к которому принадлежит CU, и ВТ глубина CU является ВТ глубиной ВТ листового узла, к которому CU принадлежит. Если CTU не разделяют, то есть, есть только один CU, QT глубина CU равна 0, и ВТ глубина CU равна 0.In QTBT split mode, each CU has a QT depth and a BT depth. For a CU in QTBT split mode, the QT depth of the CU is the QT depth of the QT leaf node to which the CU belongs, and the BT depth of the CU is the BT depth of the leaf node to which the CU belongs. If the CTUs are not shared, that is, there is only one CU, the QT CU depth is 0 and the BT CU depth is 0.
Например, на фиг.3 (а), QT глубины А и В равны 1, и BT глубины А и В равны 2; QT глубины C, D и Е равны 1, и ВТ глубины С, D и Е равны 1; QT глубины F, K и L равны 2, и ВТ глубины Р, К и L равны 1; QT глубины I и J равны 2, и ВТ глубины I и J равны 0; QT глубины G и Н равны 2, и ВТ глубины G и Н равны 2; и QT глубина М равна 1, и ВТ глубина М равна 0.For example, in Fig. 3(a), the QTs of depths A and B are 1, and the BTs of depths A and B are 2; QT depths C, D and E are 1, and BT depths C, D and E are 1; QT depths F, K and L are 2, and BT depths P, K and L are 1; QT depths I and J are 2, and BT depths I and J are 0; QT depths G and H are 2, and BT depths G and H are 2; and QT M depth is 1 and BT M depth is 0.
CU формы в QTBT режиме разделения более диверсифицированы, что позволяет лучше адаптироваться к контенту локального изображения. В стандарте H.265 все CUs, полученные путем расщепления на основании QT режима разделения, могут быть только квадратами, то есть, ширина (width) CU равна высоте (height) CU. После того, как ВТ режим разделения вводится в дополнении к QT режиму разделения, ширина и высота CU может отличаться друг от друга. Например, отношение ширины к высоте (числовое значение отношения ширины к высоте равно ширине, деленной на высоту) равно 2, 4, 8, 16, 1/2, 1/4, 1/8 или 1/16. Конечно, в QTBT режиме разделения, ни ширина, ни высота каждого CU не может быть меньше, чем длина стороны минимального CU (например, минимальный CU может быть установлен равным 4×4). SPS видеопотока обычно включает в себя информацию о размере минимального CU.CU forms in QTBT split mode are more diversified, allowing better adaptation to local image content. In the H.265 standard, all CUs obtained by splitting based on the split mode QT can only be squares, that is, the width (width) of the CU is equal to the height (height) of the CU. After the BT split mode is introduced in addition to the QT split mode, the width and height of the CU may be different from each other. For example, the ratio of width to height (the numerical value of the ratio of width to height is equal to the width divided by the height) is 2, 4, 8, 16, 1/2, 1/4, 1/8, or 1/16. Of course, in the QTBT split mode, neither the width nor the height of each CU can be smaller than the side length of the minimum CU (for example, the minimum CU may be set to 4×4). The SPS of a video stream typically includes information about the minimum CU size.
В дополнение к QTBT, может быть дополнительно использован QTBT/ТТ разделения. Более конкретно, узел кодового дерева первого уровня использует QT режим разделения и узел кодового дерева второго уровня может использовать ВТ режим разделения или ТТ режим разделения. В частности, CTU является корневым узлом кодового дерева первого уровня, и CTU разделяют в QT режиме разделения, чтобы генерировать несколько листовых узлов в кодовом дереве первого уровня. Затем листовой узел кодового дерева первого уровня используют в качестве корневого узла кодового дерева второго уровня, и узел кодового дерева второго уровня разделяют в ВТ режиме разделения (включающий в себя горизонтальное бинарное разделения и вертикальное бинарное разделение) или ТТ режим разделения (включающий в себя горизонтальное троичное разделение и вертикальное троичное разделение), чтобы генерировать несколько листовых узлов в кодовом дереве второго уровня.In addition to QTBT, a QTBT/TT separation may optionally be used. More specifically, the first level code tree node uses the QT split mode, and the second level code tree node may use the BT split mode or the TT split mode. Specifically, the CTU is the root node of the first level code tree, and the CTU is split in the QT split mode to generate multiple leaf nodes in the first level code tree. Then, the leaf node of the first level code tree is used as the root node of the second level code tree, and the second level code tree node is split in HT split mode (including horizontal binary split and vertical binary split) or TT split mode (including horizontal ternary split). split and vertical ternary split) to generate multiple leaf nodes in a second-level code tree.
Однако, для каждого узла, устройство кодирования, как правило, должно вычислить стоимость RD каждого режима разделения, который может быть использован узлом, сравнить вычисленную стоимость RD, и определить режим разделения, соответствующий минимальной стоимости RD, как режим разделения узла. В QT-BT/TT режиме разделения, поскольку для каждого узла кодового дерева второго уровня может быть использован ВТ режим разделения или ТТ режим разделения, устройство кодирования вычисляет стоимость RD четырех режимов разделения (горизонтальное бинарное разделение, вертикальное бинарное разделение, горизонтальное троичное разделение и вертикальное троичное разделение), чтобы определить режим разделения, фактически используемый узлом кодового дерева второго уровня. Следовательно, сложность кодирования является относительно высокой.However, for each node, the encoder typically needs to calculate the RD cost of each split mode that can be used by the node, compare the calculated RD cost, and determine the split mode corresponding to the minimum RD cost as the node split mode. In QT-BT/TT splitting mode, since BT splitting mode or TT splitting mode can be used for each second level code tree node, the encoder calculates the cost RD of four splitting modes (horizontal binary splitting, vertical binary splitting, horizontal ternary splitting, and vertical ternary split) to determine the split mode actually used by the second level code tree node. Therefore, the encoding complexity is relatively high.
С учетом приведенных выше технических задач, вариант осуществления настоящего изобретения предоставляет способ декодирования данных изображения. После получения битового потока, содержащего данные изображения, устройство декодирования выполняет синтаксический анализ битового потока, чтобы получить информацию о режиме разделения узла кодового дерева первого уровня и информацию о режиме разделения кодового дерева второго уровня. Информация о режиме разделения узла кодового дерева второго уровня указывает режим разделения, соответствующий первому узлу кодового дерева второго уровня, режим разделения, соответствующий первому узлу, является одним режимом в наборе кандидатов режима разделения, соответствующий первому узлу, набор кандидатов режима разделения, соответствующий первому узлу, определяют в соответствии с первым заданным условием разделения, первое заданное условие разделения используют для указания, следует ли ограничить разделение первого узла целевым режимом разделения, и целевой режим разделения включает в себя, по меньшей мере, одно из горизонтальное бинарное разделение, горизонтальное троичное разделение, вертикальное бинарное разделение и вертикальное троичное разделение. Если режим разделения, соответствующий первому узлу, не подлежит дополнительному разделению, то устройство декодирования выполняет синтаксический анализ битового потока, чтобы получить информацию кодирования первого узла. Первый узел соответствует одному блоку кодирования CU. Таким образом, устройство декодирования может декодировать и восстановить блок кодирования на основании информации кодирования первого узла для получения изображения, соответствующее данным изображения. В настоящем изобретении, корневой узел кодового дерева первого уровня соответствует CTU, листовой узел кодового дерева первого уровня идентифицируют с использованием корневого узла кодового дерева первого уровня и режима разделения узла, соответствующего информации режима разделения узла кодового дерева первого уровня, и корневой узел кодового дерева второго уровня является листовым узлом кодового дерева первого уровня. В этом варианте осуществления настоящего изобретения, режим разделения, соответствующий первому узлу кодового дерева второго уровня, является одним из режимов разделения, определяемым в соответствии с первым заданным условием разделения, первое заданное условие разделения используют для указания, следует ли ограничить разделение первого узла целевым режимом разделения, целевой режим разделения включает в себя, по меньшей мере, одно из горизонтальное бинарное разделение, горизонтальное троичное разделение, вертикальное бинарное разделение и вертикальное троичное разделение. Количество режимов разделения, соответствующие первому узлу, уменьшают с использованием первого заданного условия разделения, эффективно уменьшая сложность декодирования.In view of the above technical problems, an embodiment of the present invention provides a method for decoding image data. After receiving a bitstream containing image data, the decoding apparatus performs parsing of the bitstream to obtain splitting mode information of a first level code tree node and splitting mode information of a second level code tree. The split mode information of the second level code tree node indicates the split mode corresponding to the first node of the second level code tree, the split mode corresponding to the first node is one mode in the split mode candidate set corresponding to the first node, the split mode candidate set corresponding to the first node, is determined according to the first predetermined split condition, the first predetermined split condition is used to indicate whether to restrict the split of the first node to the target split mode, and the target split mode includes at least one of horizontal binary split, horizontal ternary split, vertical binary separation and vertical ternary separation. If the division mode corresponding to the first node is not subject to further division, then the decoder performs parsing of the bitstream to obtain encoding information of the first node. The first node corresponds to one coding unit CU. Thus, the decoding apparatus can decode and reconstruct the coding block based on the encoding information of the first node to obtain an image corresponding to the image data. In the present invention, a first level code tree root node corresponds to a CTU, a first level code tree leaf node is identified using a first level code tree root node and a node split mode corresponding to the first level code tree node split mode information, and a second level code tree root node is a leaf node of the first level code tree. In this embodiment of the present invention, the split mode corresponding to the first node of the second level code tree is one of the split modes determined according to the first split condition set, the first split condition set is used to indicate whether split of the first node should be limited to the target split mode , the target splitting mode includes at least one of horizontal binary splitting, horizontal ternary splitting, vertical binary splitting, and vertical ternary splitting. The number of split modes corresponding to the first node is reduced using the first given split condition, effectively reducing the decoding complexity.
Соответственно, вариант осуществления настоящего изобретении дополнительно предлагает способ кодирования данных изображения. После определения CTU, соответствующего блоку изображения, подлежащего кодированию, устройство кодирования делит CTU в режиме разделения узла, соответствующего кодового дерева первого уровня, чтобы получить листовой узел кодового дерева первого уровня. Корневой узел кодового дерева первого уровня соответствует CTU. Устройство кодирования определяет набор кандидатов режима кодирования, соответствующий первому узлу кодового дерева второго уровня. Набор кандидатов режима разделения, соответствующий первому узлу, удовлетворяет первому заданному условию разделения, используемое для указания, следует ли ограничить разделение первого узла целевым режимом разделения, целевой режим разделения включает в себя, по меньшей мере, одно из горизонтальное бинарное разделение, горизонтальное троичное разделение, вертикальное бинарное разделение и вертикальное троичное разделение, и корневой узел кодового дерева второго уровня является листовым узлом кодового дерева первого уровня. Если набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя дополнительное разделение, то устройство кодирования кодирует блок кодирования, соответствующий первому узлу, чтобы получить кодируемый блок битового поток, соответствующий блоку кодирования. Первое заданное условие разделения в этом варианте осуществления настоящего изобретения ограничивает режим разделения узла кодового дерева второго уровня, что значительно снижает сложность разделения узла кодового дерева второго уровня и уменьшает сложность кодирования.Accordingly, an embodiment of the present invention further provides a method for encoding image data. After determining the CTU corresponding to the image block to be encoded, the encoder divides the CTU in node splitting mode corresponding to the first level code tree to obtain a leaf node of the first level code tree. The root node of the first level code tree corresponds to the CTU. The encoding device determines a set of encoding mode candidates corresponding to the first node of the second level code tree. The partition mode candidate set corresponding to the first node satisfies a first specified partition condition used to indicate whether the partition of the first node should be restricted to the partition target mode, the partition target mode includes at least one of horizontal binary partition, horizontal ternary partition, vertical binary splitting and vertical ternary splitting, and the root node of the second level code tree is the leaf node of the first level code tree. If the split mode candidate set corresponding to the first node does not include the additional split, then the encoder encodes the coding block corresponding to the first node to obtain an encoded bitstream block corresponding to the coding block. The first predetermined separation condition in this embodiment of the present invention restricts the splitting mode of the second level code tree node, which greatly reduces the complexity of splitting the second level code tree node and reduces the coding complexity.
Способ кодирования данных изображения и способ декодирования данных изображения, предусмотренные в вариантах осуществления настоящего изобретения, оба применимы к системе обработки изображения. Фиг.4 представляет собой структурную схему системы обработки изображения в соответствии с вариантом осуществления настоящего изобретения. Как показано на фиг.4, система обработки изображения включает в себя устройство 40 кодирования и устройство 41 декодирования. Устройство 40 кодирования и устройство 41 декодирования может быть расположено отдельно, или могут быть интегрированы в одном устройстве. Это конкретно не ограничено в этом варианте осуществления настоящего изобретения. Например, на фиг.1, устройство 40 кодирования и устройство 41 декодирования расположены отдельно. Для простоты описания, описание приведено с помощью примера, в котором устройство кодирования и устройство декодирования расположены отдельно.The image data encoding method and the image data decoding method provided in the embodiments of the present invention are both applicable to an image processing system. 4 is a block diagram of an image processing system according to an embodiment of the present invention. As shown in Fig. 4, the image processing system includes an
В частности, после захвата видео устройство 40 кодирования выполняет процесс обработки, в режиме разделения кодового дерева первого уровня и режиме разделения кодового дерева второго уровня, CTU, соответствующий каждому изображению в видео. Если набор кандидатов режима разделения, соответствующий первому узлу кодового дерева второго уровня, не включает в себя дополнительное разделение, то устройство 40 кодирования кодирует блок кодирования, соответствующий первому узлу для получения кодируемого блока битового потока, соответствующий блоку кодирования. После получения кодированного блока битового потока, соответствующего каждому узлу кодового дерева второго уровня, устройство 40 кодирования получает CTU битового потока и отправляет CTU битового потока в устройство 41 декодирования. Устройство 41 декодирования выполняет синтаксический анализ CTU битового потока, полученный устройством 41 декодирования, для получения информации о режиме разделения узла кодового дерева второго уровня, и выполняет соответствующую обработку на основании информации о режиме разделения узла кодового дерева второго уровня, чтобы получить восстановленное изображение.Specifically, after capturing the video, the
Как устройство 40 кодирования, так и устройство 41 декодирования могут быть различными устройствами с камерой (например, фронтальной камеры или камеры, установленной на тыльной стороне). Например, устройство кодирования и устройство декодирования может быть носимым электронным устройством (например, «умные» часы) или камеры моментальной печати; или могут быть мобильными телефонами, показанные на фиг.5; или может быть планшетным компьютером, настольным компьютером, устройством виртуальной реальности, ноутбуком, ультра-мобильным персональным компьютером (Ultra-Mobile Personal Computer, UMPC), персональным цифровым помощником (Personal Digital Assistant, PDA) или тому подобное. Конкретные формы устройства 40 кодирования и устройства 41 декодирования не имеют особых ограничений в этом варианте осуществления настоящего изобретения.Both the
Со ссылкой на фиг.4, как показано на фиг.5, как устройство 40 кодирования, так и устройство 41 декодирования в этом варианте осуществления могут быть мобильными телефонами. Ниже конкретно описывает, в качестве примера, этот вариант при использовании мобильного телефона.Referring to FIG. 4, as shown in FIG. 5, both the
Следует понимать, что мобильный телефон, показанный на фиг.5, является лишь примером устройства 40 кодирования и устройства 41 декодирования, и мобильный телефон может включать в себя большее или меньшее число компонентов, чем компоненты, показанные на фиг.5, могут быть объединены два или более компонентов, или могут иметь различные конфигурации компонентов. Компоненты, показанные на фиг.5, могут быть реализованы в аппаратных средствах, включающие в себя один или более процессоров сигналов и/или специализированные интегральные схемы, программное обеспечение или комбинацию аппаратных средств и программное обеспечение.It should be understood that the mobile phone shown in Fig. 5 is only an example of the
Как показано на фиг. 5, мобильный телефон включает в себя такие компоненты, как RF (радиочастотную, Radio Frequency) схему 50, память 51, блок 52 ввода, блок 53 отображения, датчик 54, аудио-схему 55, модуль 56 «беспроводная достоверность» (Wireless Fidelity Wi-Fi), процессор 57, Bluetooth модуль 58 и источник 59 питания. Специалист в данной области техники может понять, что структура мобильного телефона, показанная на фиг.5, не представляет собой ограничение структуры мобильного телефона, и мобильный телефон может включать в себя большее или меньшее число компонентов, чем показано на фиг. 5, может быть объединены некоторые компоненты, или могут иметь различные механизмы компонентов.As shown in FIG. 5, the mobile phone includes components such as an RF (Radio Frequency) circuit 50, a memory 51, an input unit 52, a display unit 53, a sensor 54, an audio circuit 55, a Wireless Fidelity Wi -Fi), processor 57, Bluetooth module 58 and power supply 59. One skilled in the art can understand that the structure of the mobile phone shown in FIG. 5 is not a limitation of the structure of the mobile phone, and the mobile phone may include more or fewer components than shown in FIG. 5, some components may be combined, or may have different component mechanisms.
Ниже конкретно описаны компоненты мобильного телефона со ссылкой на фиг. 5.The components of a mobile phone will be specifically described below with reference to FIG. 5.
RF схема 50 может быть выполнена с возможностью передавать и принимать сигналы в информации для отправки и выполнять процесс обработки приема или процесс вызова. RF схема 310 может принимать информацию по нисходящей линии связи от базовой станции, а затем передавать информацию по нисходящей линии связи в процессор 57 для обработки; и отправлять данные по восходящей линии связи к базовой станции. RF схема, как правило, включает в себя, но не ограничивается такими устройствами, как антенна, по меньшей мере, один усилитель, приемопередатчик, переходник, малошумящий усилитель, и дуплексер. Кроме того, RF схема 50 может дополнительно осуществлять связь с сетью и другим мобильным устройством через беспроводную связь. Беспроводная связь может использовать стандартные любые сообщения или протокол, включающий в себя, но не ограничиваясь, глобальной системы мобильной связи, глобальную службу пакетной радиосвязи, множественный доступ с кодовым разделением каналов, широкополосный множественный доступ с кодовым разделением каналов, «долгосрочное развитие», электронной почты, службы передачи коротких сообщений и тому подобное.The RF circuit 50 may be configured to transmit and receive signals in the information to be sent, and perform a receive processing process or a call process. RF circuit 310 may receive information on the downlink from the base station and then transmit the information on the downlink to the processor 57 for processing; and send data on the uplink to the base station. The RF circuit typically includes, but is not limited to, devices such as an antenna, at least one amplifier, a transceiver, an adapter, a low noise amplifier, and a duplexer. In addition, the RF circuit 50 may further communicate with a network and another mobile device via wireless communication. Wireless communications may use any standard message or protocol, including but not limited to Global System for Mobile Communications, Global Packet Radio Service, Code Division Multiple Access, Wideband Code Division Multiple Access, Long Term Evolution, Email , short message services, and the like.
Память 51 может быть выполнена с возможностью хранить программное обеспечение и данные. Процессор 57 запускает программу и данные, хранящиеся в памяти 51, чтобы выполнять различные функции мобильного телефона 110 и данных процесса. Память 51 может включать в себя, главным образом, область хранения программы и область хранения данных. Область хранения программы может хранить операционную систему, прикладную программу, необходимую, по меньшей мере, одной функции (например, как аудио функция воспроизведения и функцию воспроизведения изображения) и тому подобные. Область хранения данных может хранить данные (например, аудио данные, телефонную книгу и видео), которую генерируют в соответствии с использованием мобильного телефона, и тому подобное. Кроме того, память 51 может включать в себя высокоскоростное оперативное запоминающее устройство и может дополнительно включать в себя энергонезависимую память, например, по меньшей мере, одно магнитное запоминающее устройство на диске, устройство флэш-памяти или другое твердотельное устройство хранения. В следующих вариантах осуществления память 51 хранит операционную систему, которая позволяет мобильному телефону инициировать, например, операционную систему, разработанную iOS® Apple, с открытым исходным кодом операционной системы, разработанную Android® Google, и операционную систему Windows®, разработанную компанией Microsoft.The memory 51 may be configured to store software and data. The processor 57 runs the program and data stored in the memory 51 to perform various functions of the mobile phone 110 and process data. The memory 51 may mainly include a program storage area and a data storage area. The program storage area may store an operating system, an application program, at least one function required (such as an audio playback function and an image playback function), and the like. The data storage area may store data (for example, audio data, phone book, and video) that is generated in accordance with the use of the mobile phone, and the like. In addition, the memory 51 may include a high-speed random access memory and may further include a non-volatile memory, such as at least one magnetic disk storage device, a flash memory device, or other solid state storage device. In the following embodiments, the memory 51 stores an operating system that allows the mobile phone to trigger, for example, an operating system developed by iOS® Apple, an open source operating system developed by Android® Google, and a Windows® operating system developed by Microsoft.
Блок 52 ввода (например, сенсорный экран) может быть выполнен с возможностью принимать ввод цифр или символов информации, и генерировать входной сигнал, относящиеся к пользовательской настройке и управлению функциями мобильного телефона. В частности, блок 52 ввода может включать в себя сенсорный экран 521 и другое устройство 522 ввода. Сенсорный экран 521, также известный как сенсорная панель, может воспринимать операции касания, выполняемые пользователем на или рядом с сенсорным экраном 521 (например, операции, выполненные на или рядом с сенсорным экраном 521 пользователем, используя любой подходящий объект или аксессуар, такой как палец или стилус), и управлять соответствующим соединением устройства в соответствии с программой предустановки. Возможно, сенсорный экран 521 может включать в себя два компонента: устройство обнаружения касания и сенсорный контроллер (которые не показаны на фиг. 5). Устройство обнаружения касания обнаруживает позицию прикосновения пользователя, обнаруживает сигнал, сгенерированный с помощью операции прикосновения, и передает сигнал на сенсорный контроллер. Сенсорный контроллер принимает информацию от сенсорного устройства обнаружения касания, преобразует сенсорную информацию в координаты контакта, передает контактные координаты в процессор 57, и может принимать и выполнять инструкцию, отправленную процессором 57. Дополнительно, сенсорный экран 521 может быть реализованы в различных типах, таких как резистивного типа, емкостного типа, инфракрасного типа и типа поверхностной акустической волны.An input unit 52 (eg, a touch screen) may be configured to receive input of numbers or characters of information, and generate an input signal related to user settings and control of mobile phone functions. In particular, the input unit 52 may include a
Блок 53 отображения (а именно, экран дисплея) может быть выполнен с возможностью отображать информацию пользователя или информацию, предоставленную пользователю, и графическим пользовательским интерфейсом (Graphical User Interface, GUI) различного меню мобильного телефона. Блок 53 отображения может включать в себя панель 531 дисплея, расположенный на передней стороне мобильного телефона. Возможно, панель 531 дисплея может быть выполнена в форме, такой как жидкокристаллический дисплей (Liquid Crystal Display, LCD) или органический светоизлучающий диод (Organic Light-emitting Diode, OLED). Кроме того, сенсорный экран 521 может покрывать панель 531 дисплея. После обнаружения операции касания на или около сенсорного экрана 521, сенсорный экран 131 передает операцию касания в процессор 57 для определения типа сенсорного события. Затем процессор 57 обеспечивает соответствующий визуальный вывод на панели 531 дисплея на основании типа сенсорного события. На фиг.5, сенсорный экран 521 и панель 531 дисплея используются в качестве отдельных компонентов для реализации функции ввода и вывода мобильного телефона. Тем не менее, в некоторых вариантах осуществления, сенсорный экран 521 и панель 531 дисплея могут быть интегрированы для реализации входных и выходных функций мобильного телефона.The display unit 53 (namely, a display screen) may be configured to display user information or information provided to the user and a graphical user interface (GUI) of various menus of the mobile phone. The display unit 53 may include a display panel 531 located on the front side of the mobile phone. Optionally, the display panel 531 may be in a form such as a Liquid Crystal Display (LCD) or an Organic Light-emitting Diode (OLED). In addition, the
В других вариантах осуществления на сенсорном экране 521 может быть предусмотрен датчик давления. В этом случае, когда пользователь выполняет операцию касания на сенсорном экране, сенсорный экран может дополнительно определять величину оказанного давления посредством операции касания, так что мобильный телефон может обнаружить событие касания более точно.In other embodiments, a pressure sensor may be provided on the
Мобильный телефон может дополнительно включать в себя, по меньшей мере, один датчик 54, например, датчик света, датчик движения и другие датчики. В частности, оптический датчик может включать в себя датчик внешней освещенности и датчик приближения. Датчик внешней освещенности может регулировать яркость панели 531 дисплея на основании яркости окружающего света. Датчик расположен на передней стороне мобильного телефона. Когда мобильный телефон перемещается к уху, мобильный телефон отключает подачу питания на панель 531 дисплея на основании обнаружения датчика приближения, так что мобильный телефон может дополнительно экономить энергию. В качестве датчика движения, датчик акселерометра может обнаружить величину ускорения всех направлений (как правило, по трем осям), может обнаружить величину и направление силы тяжести, когда датчик акселерометра находится в неподвижном состоянии, и может быть выполнен с возможностью распознавать жесты при использовании мобильного телефона (например, для переключения экрана между режимами портрета и ландшафта, в зависимости от использования игрового приложения и калибровки магнитометра), функции вибрации (например, шагомером или постукиванием) и тому подобные. Для мобильного телефона могут быть дополнительно сконфигурированы другие датчики, например, гироскоп, барометр, гигрометр, термометр, и инфракрасный датчик. Подробности в настоящем документе не описаны.The mobile phone may further include at least one sensor 54, such as a light sensor, a motion sensor, and other sensors. In particular, the optical sensor may include an ambient light sensor and a proximity sensor. The ambient light sensor may adjust the brightness of the display panel 531 based on the brightness of the ambient light. The sensor is located on the front side of the mobile phone. When the mobile phone moves to the ear, the mobile phone turns off the power supply to the display panel 531 based on the detection of the proximity sensor, so that the mobile phone can further save power. As a motion sensor, the accelerometer sensor can detect the amount of acceleration in all directions (typically three axes), can detect the amount and direction of gravity when the accelerometer sensor is stationary, and can be configured to recognize gestures when using a mobile phone (for example, to switch the screen between portrait and landscape modes, depending on the use of a game application and magnetometer calibration), vibration functions (for example, a pedometer or tapping), and the like. Other sensors can be additionally configured for the mobile phone, such as a gyroscope, a barometer, a hygrometer, a thermometer, and an infrared sensor. Details are not described in this document.
Аудио-схема 55, динамик 551 и микрофон 552 могут обеспечить звуковой интерфейс между пользователем и мобильным телефоном. Аудио-схема 55 может передавать в динамик 551 электрический сигнал, преобразованный из принятых аудиоданных, и динамик 551 преобразует электрический сигнал в звуковой сигнал для вывода звука. Кроме того, микрофон 552 преобразует собранный звуковой сигнал в электрический сигнал, и аудио-схема 55 преобразует электрический сигнал в звуковые данные после приема электрического сигнала, а затем выводит звуковые данные в RF схему 50 для отправки аудиоданных, например, в другой мобильный телефон, или выводит звуковые данные в память 51 для дополнительной обработки.Audio circuit 55, speaker 551, and microphone 552 may provide an audio interface between a user and a mobile phone. The audio circuit 55 may supply the speaker 551 with an electrical signal converted from the received audio data, and the speaker 551 converts the electrical signal into an audio signal to output sound. In addition, the microphone 552 converts the collected audio signal into an electrical signal, and the audio circuit 55 converts the electrical signal into audio data after receiving the electrical signal, and then outputs the audio data to the RF circuit 50 to send the audio data to, for example, another mobile phone, or outputs audio data to memory 51 for further processing.
Wi-Fi является технологией беспроводной передачи на короткие расстояния. С помощью Wi-Fi, модуля 56 мобильный телефон может предоставить возможность пользователю отправлять и принимать сообщения по электронной почте, просматривать веб-страницы, получать доступ к мультимедийному потоку, и так далее. Wi-Fi обеспечивает пользователю беспроводной широкополосный доступ к интернету.Wi-Fi is a short distance wireless transmission technology. Using Wi-Fi, the mobile phone module 56 can enable the user to send and receive e-mail messages, surf the web, access a multimedia stream, and so on. Wi-Fi provides the user with wireless broadband Internet access.
Процессор 57 является центральным блоком управления мобильного телефона 110, и соединен с компонентами всего мобильного телефона с помощью различных интерфейсов и линий. При запуске или при выполнении программы программного обеспечения, сохраненной в памяти 51, и вызова данных, сохраненных в памяти 51, процессор 57 выполняет различные функции мобильного телефона и обработку данных, для выполнения общего мониторинга на мобильном телефоне. В некоторых вариантах осуществления процессор 57 может включать в себя один или несколько блоков обработки. Процессор 57 может дополнительно включать в себя процессор приложений и процессор модема. Процессор приложений, главным образом, обеспечивает функционирование операционной системы, интерфейс пользователя, прикладную программу и тому подобное. Процессор модема, в основном, выполняет процессы беспроводной связи. Это может быть понятно, что, процессор модема также может быть расположен отдельно.The processor 57 is the central control unit of the mobile phone 110, and is connected to the components of the entire mobile phone through various interfaces and lines. When starting or executing the software program stored in the memory 51 and retrieving the data stored in the memory 51, the processor 57 performs various mobile phone functions and data processing to perform general monitoring on the mobile phone. In some embodiments, processor 57 may include one or more processing units. Processor 57 may further include an application processor and a modem processor. The application processor mainly provides operation of an operating system, a user interface, an application program, and the like. The modem processor primarily performs wireless communication processes. It may be understood that, the modem's processor may also be located separately.
Bluetooth модуль 58 выполнен с возможностью обмена информацией с другим устройством, используя протокол связи малой дальности, такой как Bluetooth. Например, мобильный телефон может установить, с помощью Bluetooth модуля 58, соединение Bluetooth для носимого электронного устройства (например, SmartWatch), которое также имеет модуль Bluetooth, для обмена данными.Bluetooth module 58 is configured to communicate with another device using a short range communication protocol such as Bluetooth. For example, a mobile phone can establish, using the Bluetooth module 58, a Bluetooth connection for a wearable electronic device (eg, smartwatch) that also has a Bluetooth module to exchange data.
Мобильный телефон дополнительно включает в себя источник 59 питания (например, батарею), который подает питание к компонентам. Источник питания может быть логически соединен с процессором 57 с помощью системы управления мощностью, чтобы реализовать функции, такие как управление заряда и разряда и управления энергопотреблением с помощью системы управления питанием.The mobile phone further includes a power supply 59 (eg, a battery) that supplies power to the components. The power supply may be logically coupled to the processor 57 by a power management system to implement functions such as charge and discharge control and power management by the power management system.
Со ссылкой на конкретные варианты осуществления, ниже подробно описан способ кодирования данных изображения и способа декодирования данных изображений в соответствии с вариантами осуществления настоящего изобретения.With reference to specific embodiments, the method for encoding image data and the method for decoding image data according to embodiments of the present invention will be described in detail below.
Фиг.6 представляет собой блок-схему алгоритма способа декодирования данных изображения в соответствии с вариантом осуществления настоящего изобретения. Способ декодирования может быть применен к системе обработки изображения, показанной на фиг. 4.6 is a flowchart of a method for decoding image data according to an embodiment of the present invention. The decoding method can be applied to the image processing system shown in FIG. four.
Как показано на фиг. 6, способ декодирования изображения данных включает в себя следующие этапы.As shown in FIG. 6, the data image decoding method includes the following steps.
S600. Устройство декодирования получает битовый поток, включающий в себя данные изображения.S600. The decoder receives a bit stream including image data.
Возможно, битовый поток, который включает в себя данные изображения, и который получают с помощью устройства декодирования, который включает в себя набор параметров последовательности (Sequence Parameter Set, SPS), набор параметров изображения (Picture Parameter Set, PPS), заголовок сегмента (slice header) или заголовок секции сегмента (slice segment header) и битовый поток CTU. Битовый поток CTU переносит данные изображения.Possibly, a bitstream that includes image data and is obtained by a decoder that includes a Sequence Parameter Set (SPS), a Picture Parameter Set (PPS), a slice header (slice header) or a slice segment header and a CTU bitstream. The CTU bitstream carries image data.
S601. Устройство декодирования декодирует битовый поток, полученный с помощью устройства декодирования, чтобы получить информацию о режиме разделения узла кодового дерева первого уровня.S601. The decoder decodes the bitstream obtained by the decoder to obtain information about the division mode of the first level code tree node.
Корневой узел кодового дерева первого уровня соответствует одному CTU, и листовой узел кодового дерева первого уровня идентифицируют с помощью корневого узла кодового дерева первого уровня и режима разделения узла, соответствующего информация о режиме разделения узла кодового дерева первого уровня. Режим разделения узла, соответствующий кодовому дереву первого уровня, включает в себя разделение дерева квадрантов.The root node of the first level code tree corresponds to one CTU, and the leaf node of the first level code tree is identified by the root node of the first level code tree and the split mode of the node corresponding to the split mode information of the first level code tree node. The node splitting mode corresponding to the first level code tree includes quadtree splitting.
После получения битового потока, устройство декодирования выполняет синтаксический анализ CTU битового потока в битовом потоке для получения информации разделения узла кодового дерева первого уровня.After receiving the bitstream, the decoding apparatus parses the CTU of the bitstream in the bitstream to obtain the division information of the first level code tree node.
Возможно, способ для синтаксического анализа CTU битового потока устройством декодирования для получения информации разделения узла кодового дерева первого уровня в может быть: устройство декодирования выполняет синтаксический анализ CTU битового потока с помощью CTU в качестве корневого узла кодового дерева первого уровня для получения первого идентификатора (например, SplitFlag), который содержится в синтаксическом элементе в CTU битового потока и используется для указания, как разделить CTU, по меньшей мере, на один CU, то есть, первый идентификатор представляет информацию о режиме разделения узла кодового дерева первого уровня. В качестве примера, если числовое значение конкретного SplitFlag равно 0, то это указывает на то, что узел, соответствующий конкретному SplitFlag, является листовым узлом кодового дерева первого уровня. Если числовое значение SplitFlag равно 1, то дополнительно получают SplitFlag четырех дочерних узлов узла, соответствующего конкретному SplitFlag, до тех пор, пока не будет определена информация обо всех листовых узлах кодового дерева первого уровня.Possibly, a method for parsing the CTU of the bitstream by a decoder to obtain splitting information of the first level code tree node may be: the decoder parses the CTU of the bitstream with the CTU as the root node of the first level code tree to obtain the first identifier (e.g., SplitFlag) which is contained in a syntax element in the CTU of the bitstream and is used to indicate how to split the CTU into at least one CU, i.e., the first identifier represents information about the splitting mode of the first level code tree node. As an example, if the numeric value of a particular SplitFlag is 0, then this indicates that the node corresponding to the particular SplitFlag is a leaf node of the first level code tree. If the SplitFlag numeric value is 1, then the SplitFlag of the four child nodes of the node corresponding to the particular SplitFlag is additionally obtained until information about all leaf nodes of the first level code tree is determined.
Следует отметить, что, если ширина области изображения, соответствующего узла, равна первому пороговому значению (например, первое пороговое значение равно 8 или 16), то узел является листовым узлом кодового дерева первого уровня, и числовое значение SplitFlag, соответствующего узла, равно 0.It should be noted that if the width of the image area corresponding to the node is equal to the first threshold value (for example, the first threshold value is 8 or 16), then the node is a leaf node of the first level code tree, and the numerical value of the SplitFlag corresponding to the node is 0.
В качестве варианта, способ синтаксического анализа CTU битового потока устройством декодирования для получения информации разделения узла кодового дерева первого уровня также может содержать: устройство декодирования выполняет синтаксический анализ CTU битового потока с помощью CTU в качестве корневого узла кодового дерева первого уровня для получения второго идентификатора (например, NSFlag), который содержится в синтаксическом элементе в CTU битового потока, и который используется, для указания, следует ли разделить узел кодового дерева первого уровня. Если числовое значение второго идентификатора имеет первое значение (например, 1), это указывает на то, что узел, соответствующий второму идентификатору, является листовым узлом кодового дерева первого уровня и является листовым узлом кодового дерева второго уровня; или, если числовое значение второго идентификатора представляет второе значение (например, 0), то получают третий идентификатор (например, QTSplitFlag), содержащийся в синтаксическом элементе. Если числовое значение третьего идентификатора является третьим значением (например, 0), то это означает, что узел, соответствующий третьему идентификатору, является листовым узлом кодового дерева первого уровня, но не является листовым узел кодового дерева второго уровня; или, если числовое значение третьего идентификатора является четвертым значением (например, 1), дополнительно получают вторые идентификаторы четырех дочерних узлов узла, соответствующие третьему идентификатору, до тех пор, пока информация обо всех листовых узлах кодового дерева первого уровня не будет определена.Alternatively, a method for parsing a CTU of a bitstream by a decoding device to obtain partitioning information of a first level code tree node may also comprise: the decoding device parses the CTU of the bitstream with the CTU as the root node of the first level code tree to obtain a second identifier (e.g., , NSFlag), which is contained in a syntax element in the CTU of the bitstream, and which is used to indicate whether a first level code tree node should be split. If the numeric value of the second identifier has a first value (for example, 1), this indicates that the node corresponding to the second identifier is a leaf node of the first level code tree and is a leaf node of the second level code tree; or, if the numeric value of the second identifier represents the second value (eg, 0), then the third identifier (eg, QTSplitFlag) contained in the syntax element is obtained. If the numerical value of the third identifier is the third value (eg, 0), then this means that the node corresponding to the third identifier is a leaf node of the first level code tree, but is not a leaf node of the second level code tree; or, if the numerical value of the third identifier is the fourth value (eg, 1), additionally obtain the second identifiers of the four child nodes of the node corresponding to the third identifier, until information about all leaf nodes of the first level code tree is determined.
Следует отметить, что, если ширина области изображения, соответствующего узла, равна первому пороговому значению (например, первое пороговое значение равно 8 или 16), узел является листовым узлом кодового дерева первого уровня, и числовое значение третьего идентификатора, соответствующего узла, является третьим значением. Кроме того, если ширина или высота области изображения, соответствующая узлу, больше, чем второе пороговое значение, и значение второго идентификатора, соответствующего узла, является вторым значением, то числовое значением третьего идентификатора является третьим значением; или, если режим разделения, соответствующего узла, является QT режимом разделения, то числовое значение второго идентификатора, соответствующего узла, является вторым значением, и числовое значение третьего идентификатора, соответствующего узла, является третьим значением.It should be noted that if the width of the image area corresponding to the node is equal to the first threshold value (for example, the first threshold value is 8 or 16), the node is a leaf node of the first level code tree, and the numerical value of the third identifier corresponding to the node is the third value . In addition, if the width or height of the image area corresponding to the node is greater than the second threshold value, and the value of the second identifier corresponding to the node is the second value, then the numerical value of the third identifier is the third value; or, if the split mode corresponding to the node is QT split mode, then the numerical value of the second identifier corresponding to the node is the second value, and the numerical value of the third identifier corresponding to the node is the third value.
В одном из примеров, таблица синтаксиса кодового дерева первого уровня в этом варианте осуществления настоящего изобретения показана в таблице 1. В таблице 1, coding_quadtree () является структурой синтаксиса кодового дерева первого уровня, и описывает информацию о узле кодового дерева первого уровня.In one example, the first level code tree syntax table in this embodiment of the present invention is shown in Table 1. In Table 1, coding_quadtree() is the first level code tree syntax structure, and describes the first level code tree node information.
В таблице 1, coding_quadtree (xCtb, yCtb, CtbLog2SizeY, 0) анализируется с помощью CTU в качестве корневого узла, где CtbLog2SizeY является логарифмом длины стороны CTU с 2 в качестве основы (в данном описании область изображения, соответствующая CTU, имеет квадратную форму), и xCtb и yCtb соответственно представляют собой горизонтальную координату смещение и вертикальную координату смещения верхнего левого угла области изображения, соответствующего CTU, по отношению к верхнему левому углу области изображения, соответствующего узла; х0 и у0 соответственно представляют собой горизонтальную координату смещения и вертикальную координату смещения верхнего левого угла области изображения, соответствующего узла, по отношению к верхнему левому углу области изображения, соответствующего CTU; log2CbSize представляет собой логарифм длины стороны изображения, соответствующей узлу с 2, в качестве основы (потому что область изображения, соответствующая CTU, является квадратом и кодовое дерево первого уровня использует только разделение дерева квадрантов и изображения области, соответствующее всем узлам кодового дерева первого уровня, также являются квадратами и имеют одинаковую ширину и высоту, только требуется идентифицировать длину стороны и нет никакой необходимости проводить различие между шириной и высотой); cqtDepth представляет собой глубину узла кодового дерева первого уровня; условие condA представляет собой условие, при котором информация разделения узла синтаксического элемента split_cu_flag кодового дерева первого уровня должна быть проанализирована из битового потока. Например, condA является «область изображения, соответствующая узлу, находится в области изображения, соответствующая CTU, и длина стороны области изображения, соответствующая узлу, больше, чем пороговое значение». Если split_cu_flag равен 0, то это означает, что узел не разделяют на основании дерева квадрантов и является листовым узлом кодового дерева первого уровня. В этом случае, анализируют листовой узел на основании структуры синтаксиса coding_second_tree () кодового дерева второго уровня; или, если split_cu_flag равен 1, то это указывает, что узел разделен на основании дерева квадрантов. В этом случае, узел разделен на четыре дочерних узла, и определяют длину стороны и координату области изображения, соответствующую каждому дочернему узлу, и глубину каждого дочернего узла в кодовом дереве первого уровня и дочерние узлы анализируют последовательно на основании coding_quadtree (). "X >> Y" обозначает перемещение X вправо на Y бит. "X << Y" указывает на перемещение Х влево на Y бит. ае (v) указывает на синтаксический анализа элемента, основанный на CABAC.In Table 1, coding_quadtree (xCtb, yCtb, CtbLog2SizeY, 0) is parsed with CTU as the root node, where CtbLog2SizeY is the logarithm of the CTU side length with 2 as the base (in this description, the image area corresponding to the CTU is square), and xCtb and yCtb respectively represent a horizontal offset coordinate and a vertical offset coordinate of the upper left corner of the image area corresponding to the CTU with respect to the upper left corner of the image area corresponding to the node; x0 and y0 respectively represent the horizontal offset coordinate and the vertical offset coordinate of the upper left corner of the image area corresponding to the node, with respect to the upper left corner of the image area corresponding to the CTU; log2CbSize is the logarithm of the length of the side of the image corresponding to the node with 2 as base (because the image area corresponding to the CTU is a square and the first level code tree uses only the split of the quadtree and the area image corresponding to all the nodes of the first level code tree, also are squares and have the same width and height, it is only required to identify the length of the side and there is no need to distinguish between width and height); cqtDepth is the depth of the first level code tree node; the condA condition is a condition under which split_cu_flag syntax element node separation information of the first level code tree is to be parsed from the bitstream. For example, condA is "the image area corresponding to the node is in the image area corresponding to the CTU, and the length of the side of the image area corresponding to the node is greater than the threshold value." If split_cu_flag is 0, then this means that the node is not split based on the quadtree and is a leaf node of the first level code tree. In this case, the leaf node is parsed based on the syntax structure coding_second_tree() of the second level code tree; or, if split_cu_flag is 1, then this indicates that the node is split based on the quadtree. In this case, a node is divided into four child nodes, and a side length and an image area coordinate corresponding to each child node and a depth of each child node in the first level coding tree are determined, and the child nodes are analyzed sequentially based on coding_quadtree(). "X >> Y" denotes moving X to the right by Y bits. "X << Y" indicates moving X to the left by Y bits. ae (v) indicates the element's parsing based on CABAC.
Таблица 1Table 1
S602. Устройство декодирования выполняет синтаксический анализ битового потока, полученного устройством декодирования, чтобы получить информацию о режиме разделения узла кодового дерева второго уровня.S602. The decoder performs parsing of the bitstream received by the decoder to obtain information about the division mode of the second level code tree node.
Информация о режиме разделения узла кодового дерева второго уровня указывает режим разделения, соответствующий первому узлу кодового дерева второго уровня, режим разделения, соответствующий первому узлу, является одним режимом в наборе кандидатов режима разделения, соответствующий первому узлу, набор кандидатов режима разделения, соответствующий первому узлу, определяют в соответствии с первым заданным условием разделения, первое заданное условие разделения используют для указания, следует ли ограничит разделение первого узла целевым режимом разделения и целевой режим разделения включает в себя, по меньшей мере, одно из горизонтальное бинарное разделение, горизонтальное троичное разделение, вертикальное бинарное разделение и вертикальное троичное разделение.The split mode information of the second level code tree node indicates the split mode corresponding to the first node of the second level code tree, the split mode corresponding to the first node is one mode in the split mode candidate set corresponding to the first node, the split mode candidate set corresponding to the first node, is determined according to the first predetermined split condition, the first predetermined split condition is used to indicate whether the split of the first node should be limited to the target split mode, and the target split mode includes at least one of horizontal binary split, horizontal ternary split, vertical binary separation and vertical ternary separation.
Корневой узел кодового дерева второго уровня является листовым узлом кодового дерева первого уровня. Режим разделения узла, соответствующий кодовому дереву второго уровня, отличается от режима разделенного узла, соответствующий кодовому дереву первого уровня. В этом варианте осуществление режим разделения узла, соответствующий кодовому дереву второго уровня, включает в себя бинарное разделение дерева и троичное разделение дерева, и бинарное разделение дерева включает в себя горизонтальное бинарное разделение, вертикальное бинарное разделение, и троичное разделение дерева включает в себя горизонтальное троичное разделение и вертикальное троичное разделение.The root node of the second level code tree is the leaf node of the first level code tree. The node split mode corresponding to the second level code tree is different from the node split mode corresponding to the first level code tree. In this embodiment, the node splitting mode corresponding to the second level code tree includes binary tree splitting and ternary tree splitting, and binary tree splitting includes horizontal binary splitting, vertical binary splitting, and ternary tree splitting includes horizontal ternary splitting. and vertical ternary division.
После получения информации о режиме разделения узла кодового дерева первого уровня, устройство декодирования использует листовой узел кодового дерева первого уровня, который идентифицирован корневым узлом кодового дерева первого уровня и режимом разделения узла, соответствующий информации о режиме разделения узла кодового дерева первого уровня, в качестве корневого узла кодового дерева второго уровня; и анализирует CTU битового потока для получения информации о режиме разделения узла кодового дерева второго уровня.After obtaining the split mode information of the first level code tree node, the decoding apparatus uses the leaf node of the first level code tree, which is identified by the root node of the first level code tree and the split mode of the node corresponding to the split mode information of the first level code tree node, as the root node. code tree of the second level; and parses the CTU of the bitstream to obtain information about the splitting mode of the second layer code tree node.
Возможно, способ для синтаксического анализа CTU битового потока устройством декодирования для получения информации о режиме разделения узла кодового дерева второго уровня может быть: устройство декодирования анализирует CTU битового потока, чтобы получить четвертый идентификатор (например, STSplitMode), используемый для указания, как разделить узел кодового дерева второго уровня, то есть, четвертый идентификатор указывает информацию о режиме разделения узла кодового дерева второго уровня.Perhaps a way for a decoder to parse the CTU of the bitstream to obtain information about the splitting mode of the second level code tree node could be: the decoder parses the CTU of the bitstream to obtain a fourth identifier (eg, STSplitMode) used to indicate how to split the code tree node. tree of the second level, that is, the fourth identifier indicates information about the splitting mode of the node of the code tree of the second level.
Если четвертый идентификатор указывает на отсутствие дополнительного разделения (например, STSplitMode равно 0), это указывает, что узел, соответствующий четвертому идентификатору, является листовым узлом кодового дерева второго уровня дерева.If the fourth identifier indicates no additional splitting (eg, STSplitMode is 0), this indicates that the node corresponding to the fourth identifier is a leaf node of the code tree of the second level of the tree.
Если четвертый идентификатор указывает дополнительное разделение (например, STSplitMode равно 1, 2, 3 или 4), то это указывает, что узел, соответствующий четвертому идентификатору, включает в себя два или три дочерних узлов, и устройство кодирования дополнительно получает четвертый идентификатор дочернего узла, соответствующий четвертому идентификатору, пока не будет идентифицирована информация обо всех листовых узлах кодового дерева второго уровня. Например, если STSplitMode равен 1, то это указывает, что режим разделения, который соответствует узлу, соответствующий четвертому идентификатору, является горизонтальным бинарным разделением; если STSplitMode равно 2, то это указывает, что режим разделения, который соответствует узлу, соответствующий четвертому идентификатору, является вертикальным бинарным разделением; если STSplitMode равно 3, то это означает, что режим разделения, который соответствует узлу, соответствующий четвертому идентификатору, является горизонтальным троичным разделением; или, если STSplitMode равно 4, то это указывает, что режим разделения, который соответствует узлу, соответствующий четвертому идентификатору, является вертикальным троичным разделением.If the fourth identifier indicates an additional split (for example, STSplitMode is 1, 2, 3, or 4), then this indicates that the node corresponding to the fourth identifier includes two or three child nodes, and the encoder additionally obtains the fourth child node identifier, corresponding to the fourth identifier until information about all leaf nodes of the second level code tree is identified. For example, if STSplitMode is 1, then this indicates that the split mode that corresponds to the node corresponding to the fourth identifier is horizontal binary split; if STSplitMode is 2, then it indicates that the split mode that corresponds to the node corresponding to the fourth identifier is vertical binary split; if STSplitMode is 3, it means that the split mode that corresponds to the node corresponding to the fourth identifier is horizontal ternary split; or, if STSplitMode is 4, then this indicates that the split mode that corresponds to the node corresponding to the fourth identifier is vertical ternary split.
Возможно, способ для синтаксического анализа CTU битового потока устройством декодирования для получения информации режима разделения узла кодового дерева второго уровня также может быть: для первого узла кодового дерева второго уровня устройство декодирования, во-первых, выполняет синтаксический анализ битового потока, а затем определяет, согласно первому заданному условию разделения, набор кандидатов режима разделения, соответствующий первому узлу, и затем анализирует битовый поток на основании набора кандидатов режима разделения, соответствующий первому узлу, чтобы определить информацию режима разделения, соответствующей первому узлу.Possibly, the method for parsing the CTU of the bitstream by the decoder to obtain splitting mode information of the second layer code tree node can also be: for the first node of the second layer code tree, the decoder first parses the bitstream, and then determines, according to the first given split condition, the split mode candidate set corresponding to the first node, and then analyzes the bitstream based on the split mode candidate set corresponding to the first node to determine split mode information corresponding to the first node.
В данном случае, первое заданное условие разделения включает в себя, по меньшей мере, один из следующих заданных подусловий разделения: первое заданное подусловие разделения, второе заданное подусловие разделения, третье заданное подусловие разделения, четвертое заданное подусловие разделения, пятое заданное подусловие разделения, шестое заданное подусловие разделения, седьмое заданное подусловие разделения, восьмое заданное подусловие разделения и девятое заданное подусловие разделения.Here, the first predetermined splitting condition includes at least one of the following predetermined splitting subconditions: the first predetermined splitting subcondition, the second predetermined splitting subcondition, the third predetermined splitting subcondition, the fourth predetermined splitting subcondition, the fifth predetermined splitting subcondition, the sixth predetermined a split subcondition, a seventh predetermined split subcondition, an eighth predetermined split subcondition, and a ninth predetermined split subcondition.
Первое заданное подусловие разделения: если отношение ширины к высоте в области изображения, соответствующей первому узлу, больше или равно первому заданному пороговому значению (например, 8 или 4), набор режима разделения, соответствующий первому узлу, не включает в себя горизонтальное бинарное разделение или горизонтальное троичное разделение. Отношение ширины к высоте области изображений, соответствующей первому узлу, представляет собой отношение ширины области изображения, соответствующую первому узлу, к высоте области изображения, соответствующей первому узлу.First specified split subcondition: If the ratio of width to height in the image area corresponding to the first node is greater than or equal to the first specified threshold value (for example, 8 or 4), the split mode set corresponding to the first node does not include horizontal binary split or horizontal ternary division. The width-to-height ratio of the image area corresponding to the first node is the ratio of the width of the image area corresponding to the first node to the height of the image area corresponding to the first node.
Второе заданное подусловие разделения: если отношение высоты к ширине области изображений, соответствующей первому узлу, больше или равно второму заданному пороговому значению (например, 8 или 4), набор режима разделения, соответствующий первому узлу, не включает в себя вертикальное бинарное разделение или вертикальное троичное разделение. Отношение высоты к ширине области изображений, соответствующей первому узлу, представляет собой отношение высоты области изображения, соответствующую первый узлу, к ширине области изображений, соответствующей первому узлу.Second specified split subcondition: if the ratio of height to width of the image area corresponding to the first node is greater than or equal to the second specified threshold value (for example, 8 or 4), the split mode set corresponding to the first node does not include vertical binary split or vertical ternary separation. The height to width ratio of the image area corresponding to the first node is the ratio of the height of the image area corresponding to the first node to the width of the image area corresponding to the first node.
В третьем заданном подусловии разделения: если отношение площади области изображения, соответствующей первому узлу, к площади области изображений, соответствующей листовому узлу кодового дерева первого уровня, к которому принадлежит первому узлу, меньше или равно третьему заданному пороговому значению (например, 16 или 8), то набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя горизонтальное бинарное разделение, горизонтальное троичное разделение, вертикальной бинарное разделение или вертикальное троичное разделение.In the third predetermined split subcondition: if the ratio of the area of the image area corresponding to the first node to the area of the image area corresponding to the leaf node of the first level code tree to which the first node belongs is less than or equal to the third predetermined threshold value (for example, 16 or 8), then the partitioning mode candidate set corresponding to the first node does not include horizontal binary partitioning, horizontal ternary partitioning, vertical binary partitioning, or vertical ternary partitioning.
Четвертое заданное подусловие разделения: если режим разделения, соответствующий первому узлу, включает в себя первый режим разделения и декодирование первого дочернего узла первого узла выполняют позже, чем второго дочернего узла первого узла и режим разделения, соответствующий второму дочернему узлу, является первым режимом разделения, набор кандидатов режима разделения, соответствующий первому дочернему узлу, не включает в себя первый режим разделения. Первый режим разделения является горизонтальным бинарным разделением или вертикальным бинарным разделением.The fourth division subcondition is set: if the division mode corresponding to the first node includes the first division mode and the decoding of the first child node of the first node is later than the second child node of the first node and the division mode corresponding to the second child node is the first division mode, set the split mode candidate corresponding to the first child node does not include the first split mode. The first partitioning mode is horizontal binary partitioning or vertical binary partitioning.
Например, если режимы разделения, соответствующие первому узлу и второму дочернему узлу являются горизонтальным троичным разделением, набор кандидатов режима разделения, соответствующий первому дочернему узлу, не включает в себя горизонтальное троичное разделение, то есть, не выполняют разделение первого дочернего узла в режиме горизонтального троичного разделения.For example, if the split modes corresponding to the first node and the second child are horizontal ternary split, the split mode candidate set corresponding to the first child does not include horizontal ternary split, that is, does not split the first child node in horizontal ternary split. .
В пятом заданном подусловии разделения: если режим разделения, соответствующий первому узлу, включает в себя второй режим разделения, площадь области изображения, соответствующий первому дочернего узлу, первого узла является наименьшим среди площадей областей изображения, соответствующие три дочерних узла первого узла, набор кандидатов режима разделения, соответствующий первому дочернему узлу, не включает в себя второй режим разделения. Второй режим разделения является горизонтальным троичным разделением или вертикальным троичным разделением.In the fifth predetermined partition subcondition: if the partition mode corresponding to the first node includes the second partition mode, the image region area corresponding to the first child node of the first node is the smallest among the image region areas, the corresponding three child nodes of the first node, the partition mode candidate set The corresponding to the first child node does not include the second split mode. The second mode of division is horizontal ternary division or vertical ternary division.
Например, если режим разделения, соответствующий первому узлу, является горизонтальным троичным разделением, набор кандидатов режима разделения, соответствующий первому дочернему узлу, не включает в себя горизонтальное троичное разделение, то есть, разделение первичного дочернего узла в режим горизонтального троичного разделения не допускается.For example, if the partitioning mode corresponding to the first node is horizontal ternary partitioning, the partitioning mode candidate set corresponding to the first child node does not include horizontal ternary partitioning, i.e., splitting the primary child node into horizontal ternary partitioning is not allowed.
Шестое заданное подусловие разделения: если режим разделения, соответствующий первому узлу, включает в себя второй режим разделения, площадь области изображения, соответствующая первому дочернему узлу, первого узла является самым крупным среди площадей областей изображения, соответствующие трем дочерним узлам первого узла, набор кандидатов режима разделения, соответствующий первому дочернему узлу, не включает в себя второй режим разделения.The sixth division subcondition specified: if the division mode corresponding to the first node includes the second division mode, the area of the image region corresponding to the first child node of the first node is the largest among the areas of the image regions corresponding to the three child nodes of the first node, the division mode candidate set The corresponding to the first child node does not include the second split mode.
В седьмом заданном подусловии разделения: если отношение ширины области изображения, соответствующего первому узлу, к заданной длине стороны минимального CU меньше или равно третьему заданному пороговому значению в наборе кандидатов режима разделения, соответствующий первому узлу, не включает в себя вертикальное троичное разделение; или, если отношение высоты области изображения, соответствующего первому узлу, к длине стороны минимального CU меньше или равно третьему заданному пороговому значению, то набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя горизонтальное троичное разделение.In the seventh predetermined partition subcondition: if the ratio of the width of the image area corresponding to the first node to the predetermined side length of the minimum CU is less than or equal to the third predetermined threshold value in the partition mode candidate set corresponding to the first node does not include vertical ternary separation; or, if the ratio of the height of the image area corresponding to the first node to the side length of the minimum CU is less than or equal to the third predetermined threshold value, then the separation mode candidate set corresponding to the first node does not include horizontal ternary separation.
Восьмое заданное подусловие разделения: если площадь области изображения, соответствующая первому узлу, меньше или равна заданному четвертому пороговому значению, то набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя горизонтальное бинарное разделение, горизонтальное троичное разделение, вертикальное бинарное разделение или вертикальное троичное разделение.Eighth specified partition subcondition: if the area of the image area corresponding to the first node is less than or equal to the specified fourth threshold value, then the partition mode candidate set corresponding to the first node does not include horizontal binary separation, horizontal ternary separation, vertical binary separation, or vertical ternary separation.
Девятое заданное подусловие разделения: если режим разделения, соответствующий первому узлу, является вторым режимом разделения и площадь области изображения, соответствующая первому дочернему узлу первого узла, является самой крупной среди площадей областей изображения, соответствующей трем дочерним узлам первого узла, то набор кандидатов режима разделения, соответствующий первому дочернему узлу, не включает в себя первый режим разделения. Направление разделения первого режима разделения является таким же, что и второй режим разделения.Ninth division subcondition given: if the division mode corresponding to the first node is the second division mode, and the area of the image region corresponding to the first child node of the first node is the largest among the areas of the image regions corresponding to the three child nodes of the first node, then the division mode candidate set, corresponding to the first child node does not include the first split mode. The division direction of the first division mode is the same as that of the second division mode.
Например, если режим разделения, соответствующий первому узлу, является горизонтальным троичным разделением и площадь области изображения, соответствующая первому дочернему узлу первого узла, является самой большой среди площадей областей изображения, соответствующих трем дочерним узлам первого узла, то набор кандидатов режима разделения, соответствующий первому дочернему узлу, не включает в себя горизонтальное бинарное разделение, то есть, разделение первого дочернего узла в режиме горизонтального бинарного разделения не допускаются.For example, if the division mode corresponding to the first node is horizontal ternary division and the area of the image region corresponding to the first child node of the first node is the largest among the areas of the image regions corresponding to the three children of the first node, then the division mode candidate set corresponding to the first child node does not include horizontal binary splitting, that is, splitting the first child node in horizontal binary splitting mode is not allowed.
Например, первое заданное условие разделения в этом варианте осуществления настоящего изобретения может включать в себя третье заданное подусловие разделения; может включать в себя четвертые заданное подусловие разделения, или может включать в себя пятое заданное подусловие разделения; может включать в себя первое заданное подусловие разделения и второе заданное подусловие разделения; может включать в себя первое заданное подусловие разделения, второе заданное подусловие разделения, четвертое заданное подусловие разделения, шестое заданное подусловие разделения и седьмое заданное подусловие разделения; может включать в себя первое заданное подусловие разделения, второе заданное подусловие разделения, третье заданное подусловие разделения и седьмое заданное подусловие разделения; может включать в себя первое заданное подусловие разделения, второе заданное подусловие разделения, третье заданное подусловие разделения, пятое заданное подусловие разделения и седьмое заданное подусловие разделения; может включать в себя пятое заданное подусловие разделения и седьмое заданное подусловие разделения; может включать в себя третье заданное подусловие разделения, четвертое заданное подусловие разделения и седьмое заданное подусловие разделения; или может включать в себя первое заданное подусловие разделения, второе заданное подусловие разделения, четвертое заданное подусловие разделения и пятое заданное подусловие разделения.For example, the first predetermined split condition in this embodiment of the present invention may include a third predetermined split subcondition; may include a fourth predetermined split subcondition, or may include a fifth predetermined split subcondition; may include a first predetermined split subcondition and a second predetermined split subcondition; may include a first predetermined split subcondition, a second predetermined split subcondition, a fourth predetermined split subcondition, a sixth predetermined split subcondition, and a seventh predetermined split subcondition; may include a first predetermined split subcondition, a second predetermined split subcondition, a third predetermined split subcondition, and a seventh predetermined split subcondition; may include a first predetermined split subcondition, a second predetermined split subcondition, a third predetermined split subcondition, a fifth predetermined split subcondition, and a seventh predetermined split subcondition; may include a fifth predetermined split subcondition and a seventh predetermined split subcondition; may include a third predetermined split subcondition, a fourth predetermined split subcondition, and a seventh predetermined split subcondition; or may include a first predetermined split subcondition, a second predetermined split subcondition, a fourth predetermined split subcondition, and a fifth predetermined split subcondition.
Конечно, первое заданное подусловие разделения в этом варианте осуществления настоящего изобретения альтернативно может быть другой комбинацией указанных выше заданных подусловий разделения. Подробности не описаны здесь снова.Of course, the first predetermined split subcondition in this embodiment of the present invention may alternatively be another combination of the above predetermined split subconditions. Details are not described here again.
В качестве варианта, устройство кодирования может получить первое заданное пороговое значение, второе заданное пороговое значение, третье заданное пороговое значение, четвёртое заданное пороговое значение и заданную длину стороны минимального CU из SPS, PPS или заголовка сегмента в битовом потоке, включающие в себя данные изображения. Конечно, первое заданное пороговое значение, второе заданное пороговое значение, третье заданное пороговое значение, четвёртое заданное пороговое значение и заданная длина стороны минимального CU в качестве альтернативы могут быть заданы системой обработки изображений.Alternatively, the encoder may obtain a first predetermined threshold, a second predetermined threshold, a third predetermined threshold, a fourth predetermined threshold, and a predetermined minimum CU side length from an SPS, PPS, or segment header in a bitstream including image data. Of course, the first predetermined threshold value, the second predetermined threshold value, the third predetermined threshold value, the fourth predetermined threshold value, and the predetermined side length of the minimum CU may alternatively be set by the image processing system.
Дополнительно, в дополнении к первому заданному подусловию разделения по девятое заданное подусловие разделения, первое заданное условие разделения в этом варианте осуществления настоящего изобретения может также включать другое условие. Это конкретно не ограничено в этом варианте осуществления настоящего изобретения.Further, in addition to the first predetermined split subcondition through the ninth predetermined split subcondition, the first predetermined split condition in this embodiment of the present invention may also include another condition. This is not specifically limited in this embodiment of the present invention.
Например, первое заданное условие разделения дополнительно включает в себя любое одно из следующих условий:For example, the first defined split condition further includes any one of the following conditions:
A. Если глубина первого узла в кодовом дереве второго уровня равна заданной максимальной глубины в кодовом дереве второго уровня (например, заданная максимальная глубина в кодовом дереве второго уровня равна 3, 4 или 2), то набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя никакого дополнительного разделения.A. If the depth of the first node in the second level code tree is equal to the specified maximum depth in the second level code tree (eg, the specified maximum depth in the second level code tree is 3, 4, or 2), then the split mode candidate set corresponding to the first node is not includes no additional division.
Устройство кодирования может получить заданный максимальный уровень кодового дерева второго уровня из SPS, PPS или заголовка сегмента в битовом потоке, включающий в себя данные изображения.The encoder can obtain the predetermined maximum level of the second level code tree from the SPS, PPS, or segment header in the bitstream including image data.
B. Если ширина области изображения, соответствующая первому узлу, равна ширине заданного минимального CU, набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя горизонтальное бинарное разделение.B. If the width of the image area corresponding to the first node is equal to the width of the predetermined minimum CU, the split mode candidate set corresponding to the first node does not include horizontal binary separation.
C. Если ширина или высота области изображения, соответствующая первому узлу, больше, чем пятое заданное пороговое значение (например, 64 или 128), то набор кандидатов режим разделения, соответствующий первому узлу, включает в себя отсутствие дополнительного разделения.C. If the width or height of the image area corresponding to the first node is greater than the fifth predetermined threshold value (eg, 64 or 128), then the split mode candidate set corresponding to the first node includes no further split.
D. Если отношение ширины области изображения, соответствующая первому узлу, к длине стороны заданного минимального CU, меньше, чем шестое заданное пороговое значение, то набор кандидатов режима разделения, соответствующий первому узлу не включает в себя вертикальное троичное разделение; или, если отношение высоты области изображения, соответствующая первому узлу, к заданной длине стороны минимального CU меньше, чем заданное седьмое пороговое значение, то набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя горизонтальное троичное разделение.D. If the ratio of the width of the image area corresponding to the first node to the length of the side of the specified minimum CU is less than the sixth specified threshold value, then the separation mode candidate set corresponding to the first node does not include vertical ternary separation; or, if the ratio of the height of the image area corresponding to the first node to the given length of the side of the minimum CU is less than the given seventh threshold value, then the separation mode candidate set corresponding to the first node does not include horizontal ternary separation.
Согласно приведенных выше описаний, четвертый идентификатор в этом варианте осуществления настоящего изобретения используют для указания, как разделить узел кодового дерева второго уровня. Возможно, четвертый идентификатор может включать в себя первую информацию, используемой для указания дальнейшего разделения узла, вторая информация используется ли для указания направления, в котором узел разделен, и третью информацию используют для обозначения режима, в котором узел разделен.As described above, the fourth identifier in this embodiment of the present invention is used to indicate how to split the second level code tree node. Possibly, the fourth identifier may include first information used to indicate further splitting of the node, second information used to indicate the direction in which the node is split, and third information used to indicate the mode in which the node is split.
Например, первая информация представлена STSplitFlag. Если числовое значение STSplitFlag равно 0, то это означает, что узел, соответствующий STSplitFlag, больше не разделяют; или, если числовое значение STSplitFlag равно 1, то это указывает, что узел, соответствующий STSplitFlag, дополнительно разделяется. Вторая информация представлена STSplitDir. Если числовое значение STSplitDir равна 0, то это означает, что узел, соответствующий STSplitDir, разделяют в горизонтальном направлении; или, если числовое значение STSplitDir равно 1, то это указывает, что узел, соответствующий STSplitDir, разделен в вертикальном направлении. Третья информация представлена STSplitType. Если числовое значение STSplitType равно 0, то это означает, что режим разделения, который соответствует узлу, соответствующий STSplitType, является разделением бинарного дерева. Если числовое значение STSplitDir равно 1, то это указывает, что режим разделения, который соответствует узлу, соответствующий STSplitType, является разделением троичного дерева.For example, the first information is represented by STSplitFlag. If the numerical value of STSplitFlag is 0, then this means that the node corresponding to the STSplitFlag is no longer shared; or, if the STSplitFlag numeric value is 1, then this indicates that the node corresponding to the STSplitFlag is further split. The second information is represented by STSplitDir. If the numeric value of STSplitDir is 0, this means that the node corresponding to STSplitDir is split in the horizontal direction; or, if the numerical value of STSplitDir is 1, then this indicates that the node corresponding to STSplitDir is split in the vertical direction. The third information is represented by STSplitType. If the numeric value of STSplitType is 0, it means that the split mode that corresponds to the node corresponding to STSplitType is binary tree split. If the numeric value of STSplitDir is 1, then this indicates that the split mode that corresponds to the node corresponding to STSplitType is ternary tree split.
В качестве варианта, четвертый идентификатор в этом варианте осуществления настоящего изобретения может альтернативно включать в себя: идентификатор разделения бинарного дерева, используемый для указания, следует ли разделять узел, соответствующий четвертому идентификатору, в режиме разделения бинарного дерева; идентификатор разделения троичного дерева, используемый для указания, следует ли разделять в режиме разделения троичного дерева узел, соответствующий четвертому идентификатору; и вторая информация (идентификатор направления разделения является таким же, как идентификатор направления разделения в приведенном выше примере).Alternatively, the fourth identifier in this embodiment of the present invention may alternatively include: a binary tree split identifier used to indicate whether to split the node corresponding to the fourth identifier in the binary tree split mode; a ternary tree split identifier used to indicate whether the node corresponding to the fourth identifier should be split in the ternary tree split mode; and second information (the split direction ID is the same as the split direction ID in the above example).
Например, идентификатор разделения бинарного дерева представлен BTFlag. Если числовое значение BTFlag равно 0, то это означает, что режим разделения, который соответствует узлу, соответствующий четвертому идентификатору, не является ВТ разделением; или, если числовое значение BTFlag равно 1, то это указывает, что режим разделения, который соответствует узлу, соответствующий четвертому идентификатору, является ВТ разделением. Идентификатор разделения троичного дерева является TTFlag. Если числовое значение TTFlag равно 0, то это означает, что режим разделения, который соответствует узлу, соответствующий четвертому идентификатору, не является ТТ разделением; или, если числовое значение TTFlag равно 1, то это указывает, что режим разделения, который соответствует узлу, соответствующий четвертому идентификатору, является ТТ разделением.For example, the binary tree split identifier is represented by BTFlag. If the numerical value of BTFlag is 0, it means that the split mode that corresponds to the node corresponding to the fourth identifier is not BT split; or, if the BTFlag numeric value is 1, then this indicates that the split mode that corresponds to the node corresponding to the fourth identifier is BT split. The ternary tree split identifier is TTFlag. If the numerical value of TTFlag is 0, it means that the split mode that corresponds to the node corresponding to the fourth identifier is not TT split; or, if the numerical value of TTFlag is 1, then it indicates that the split mode that corresponds to the node corresponding to the fourth identifier is TT split.
Конечно, четвертый идентификатор в этом варианте осуществления настоящего изобретения может альтернативно включать в себя любую комбинацию из первой информации, второй информации и третьей информации. Это конкретно не ограничено в этом варианте осуществления настоящего изобретения.Of course, the fourth identifier in this embodiment of the present invention may alternatively include any combination of the first information, the second information, and the third information. This is not specifically limited in this embodiment of the present invention.
Очевидно, что, если режим разделения, соответствующий кодовому дереву второго уровня, дополнительно включает в себя режим разделения, кроме разделения бинарного дерева и разделения троичного дерева, четвертый идентификатор может включать в себя больше информации.Obviously, if the split mode corresponding to the second level code tree further includes a split mode other than binary tree split and ternary tree split, the fourth identifier may include more information.
Четвертый идентификатор может включать в себя первую информацию, вторую информацию, а также третью информацию. Таким образом, после определения набора кандидатов режима разделения, соответствующий первому узлу, устройство декодирования определяет первую информацию, вторую информацию, а также третью информацию, основанную на наборе кандидатов режима разделения, соответствующий первому узлу. В этом случае, может быть определена информация о режиме разделения, соответствующая первому узлу.The fourth identifier may include first information, second information, and third information. Thus, after determining the split mode candidate set corresponding to the first node, the decoding apparatus determines first information, second information, and third information based on the split mode candidate set corresponding to the first node. In this case, the partition mode information corresponding to the first node can be determined.
В частности, устройство декодирования сначала определяет набор кандидатов режима разделения первого узла в соответствии с первым заданным условием разделения. Затем, устройство декодирования определяет на основании набора кандидатов режима разделения первого узла, может ли быть проанализирована первая информация, вторая информация и третья информация из битового потока. Если какая-либо одна из первой информации, второй информации и третьей информации не может быть проанализирована из битового потока, то таким образом числовое значение информации является значением системы по умолчанию.Specifically, the decoding apparatus first determines the split mode candidate set of the first node according to the first predetermined split condition. Then, the decoding apparatus determines, based on the first node separation mode candidate set, whether the first information, the second information, and the third information from the bitstream can be parsed. If any one of the first information, the second information, and the third information cannot be parsed from the bitstream, then the numerical value of the information is thus the system default value.
Например, первая информация представлена STSplitFlag, вторая информация представлена STSplitDir и третья информация представлена STSplitType. Если набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя горизонтальное бинарное разделение, горизонтальное троичное разделение, вертикальное бинарное разделение или вертикальное троичное разделение, режим разделения, соответствующий первому узлу, дополнительно не разделяют, то есть, не требуется анализ ни одного из STSplitFlag, STSplitDir и STSplitType из битового потока, числовые значения STSplitFlag, STSplitDir и STSplitType равны 0. Если набор кандидатов режима разделения, соответствующий первому узлу, включает в себя, по меньшей мере, одно горизонтальное бинарное разделение, горизонтальное троичное разделение, вертикальное бинарное разделение и вертикальное троичное разделение, устройство декодирования сначала анализирует STSplitFlag из битового потока. Если числовое значение STSplitFlag является 0, числовые значения STSplitDir и STSplitType являются 0 по умолчанию; или если числовое значение STSplitFlag равно 1, STSplitDir (режим синтаксического анализа STSplitDir относится к набору кандидатов режима разделения, соответствующий первому узел) дополнительно анализируются и STSplitType (режим синтаксического анализа STSplitType относится к набору кандидатов режима разделения, соответствующий первому узлу) анализируется на основании числового значения STSplitDir. Если набор кандидатов режима разделения, соответствующий первому узлу, включает в себя горизонтальное бинарное разделение, горизонтальное троичное разделение, вертикальное бинарное разделение и вертикальное троичное разделение, устройство декодирования выполняет синтаксический анализ STSplitDir и STSplitType из битового потока последовательно; или, если набор кандидатов режима разделения, соответствующий первому узлу, включает в себя от одного до трех режимов разделения, по меньшей мере, один из STSplitDir и STSplitType может быть непосредственно получены вместо выполнения синтаксического анализа из битового потока.For example, the first information is represented by STSplitFlag, the second information is represented by STSplitDir, and the third information is represented by STSplitType. If the split mode candidate set corresponding to the first node does not include horizontal binary split, horizontal ternary split, vertical binary split, or vertical ternary split, the split mode corresponding to the first node is not further split, that is, none of the STSplitFlag, STSplitDir, and STSplitType from the bitstream, the numeric values of STSplitFlag, STSplitDir, and STSplitType are 0. If the split mode candidate set corresponding to the first node includes at least one horizontal binary split, a horizontal ternary split, a vertical binary split, and vertical ternary split, the decoder first parses the STSplitFlag from the bitstream. If the numeric value of STSplitFlag is 0, the numeric values of STSplitDir and STSplitType are 0 by default; or if the numeric value of STSplitFlag is 1, STSplitDir (the parsing mode of STSplitDir refers to the split mode candidate set corresponding to the first node) is further parsed, and STSplitType (the parsing mode of STSplitType refers to the split mode candidate set corresponding to the first node) is parsed based on the numeric value STSplitDir. If the split mode candidate set corresponding to the first node includes horizontal binary split, horizontal ternary split, vertical binary split, and vertical ternary split, the decoder parses STSplitDir and STSplitType from the bitstream sequentially; or, if the split mode candidate set corresponding to the first node includes one to three split modes, at least one of STSplitDir and STSplitType can be obtained directly instead of parsing from the bitstream.
В качестве примера, таблица 2 показывает все возможные случаи набора кандидатов режима разделения, соответствующий первому узлу, в этом варианте осуществления, и показывает способ синтаксического анализа для первой информации, второй информации и третьей информации, которые соответствуют в каждом конкретном случае. В таблице 2, если числовое значение вертикального бинарного разделения (Vertical Binary Tree, VBT) равно 0, то это означает, что набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя вертикальное бинарное разделение; если числовое значение VBT равно 1, это указывает, что набор кандидатов режима разделения, соответствующий первому узлу, включает в себя вертикальное бинарное разделение; если числовое значение горизонтального бинарного разделения (Horizontal Binary Tree, НВТ) равно 0, то это означает, что набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя горизонтальное бинарное разделение; если числовое значение HBT равно 1, то это указывает, что набор кандидатов режима разделения, соответствующий первому узлу, включает в себя горизонтальное бинарное разделение; если числовое значение вертикального троичного разделения (Vertical Ternary Tree, VTT) равно 0, то это означает, что набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя вертикальное троичное разделение; если значение VTT равно 1, это то указывает, что набор кандидатов режима разделения, соответствующий первому узлу, включает в себя вертикальное троичное разделение; если числовое значение горизонтального троичного разделения (Horizontal Binary Tree, HTT) равно 0, то это означает, что набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя горизонтальное троичное разделение; или, если числовое значение HТТ равно 1, то это указывает, что набор кандидатов режима разделения, соответствующий первому узлу, включает в себя горизонтальное троичное разделение. а, b, c соответственно указывают, что STSplitFlag, STSplitDir и STSplitType анализируют из битового потока; и НА(х) указывает установку соответствующего бита в значение х по умолчанию. Когда после синтаксического анализа получена информация, что STSplitFlag 0, числовые значения STSplitDir и STSplitType равны 0 по умолчанию. Когда после синтаксического анализа получена информация, что STSplitFlag 1, STSplitDir сначала анализируется, а затем STSplitType анализируется на основании числового значения STSplitDir. Символ ! является логической операцией NOT, выражение «ехр?m:n» указывает, что, если ехр верно, то используется m; в противном случае используется n. Например, STSplitDir? C: NA (1) указывает, что, если числовое значение STSplitDir не равно 0 (то есть, числовое значение STSplitDir равно 1. Это происходит потому, что числовое значение STSplitDir в этом варианте осуществления равно 0 или 1), STSplitType получают из битового потока; в противном случае, числовое значение STSplitType является 1 по умолчанию. В качестве другого примера !STSplitDir? НА(0):NA(1) указывает, что, если числовое значение STSplitDir равно 0, числовое значение STSplitType равно 0 по умолчанию; в противном случае, числовое значение STSplitType по умолчанию равно 1.As an example, Table 2 shows all possible cases of the partition mode candidate set corresponding to the first node in this embodiment, and shows the parsing method for the first information, the second information, and the third information that correspond in each case. In Table 2, if the numerical value of the Vertical Binary Tree (VBT) is 0, it means that the partition mode candidate set corresponding to the first node does not include vertical binary partition; if the numerical value of VBT is 1, it indicates that the partition mode candidate set corresponding to the first node includes vertical binary partition; if the numerical value of the horizontal binary partition (Horizontal Binary Tree, HBT) is 0, it means that the partition mode candidate set corresponding to the first node does not include the horizontal binary partition; if the numerical value of HBT is 1, it indicates that the partition mode candidate set corresponding to the first node includes horizontal binary partition; if the numeric value of the Vertical Ternary Tree (VTT) is 0, it means that the partition mode candidate set corresponding to the first node does not include vertical ternary split; if the VTT value is 1, this indicates that the split mode candidate set corresponding to the first node includes vertical ternary split; if the numeric value of the Horizontal Binary Tree (HTT) is 0, it means that the partitioning mode candidate set corresponding to the first node does not include horizontal ternary splitting; or, if the HTT numerical value is 1, then this indicates that the split mode candidate set corresponding to the first node includes a horizontal ternary split. a, b, c respectively indicate that STSplitFlag, STSplitDir and STSplitType are parsed from the bitstream; and HA(x) indicates that the corresponding bit is set to the default value of x. When information is received after parsing that STSplitFlag is 0, the numeric values of STSplitDir and STSplitType are 0 by default. When information is received after parsing that STSplitFlag is 1, STSplitDir is first parsed, and then STSplitType is parsed based on the numeric value of STSplitDir. Symbol ! is a logical NOT operation, the expression "exp?m:n" indicates that if exp is true, then m is used; otherwise, n is used. For example, STSplitDir? C: NA (1) indicates that if the numeric value of STSplitDir is not 0 (that is, the numeric value of STSplitDir is 1. This is because the numeric value of STSplitDir in this embodiment is 0 or 1), STSplitType is obtained from the bitstream ; otherwise, the numeric value of STSplitType is 1 by default. As another example, !STSplitDir? HA(0):NA(1) indicates that if the numeric value of STSplitDir is 0, the numeric value of STSplitType is 0 by default; otherwise, the STSplitType numeric value defaults to 1.
Со ссылкой на таблицу 2, можно узнать, что устройство декодирования может определить STSplitFlag, STSplitDir и STSplitType на основании набора кандидатов режима разделения, соответствующего первому узлу.With reference to Table 2, it can be seen that the decoder can determine STSplitFlag, STSplitDir and STSplitType based on the split mode candidate set corresponding to the first node.
В качестве примера, для набора 15 кандидатов режима разделения в таблице 2, если набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя вертикальное бинарное разделение, горизонтальное бинарное разделение, горизонтальное троичное разделение или вертикальное троичное разделение, то числовые значения STSplitFlag, STSplitDir и STSplitType все равны 0 по умолчанию.As an example, for the split mode candidate set of 15 in Table 2, if the split mode candidate set corresponding to the first node does not include vertical binary split, horizontal binary split, horizontal ternary split, or vertical ternary split, then the numerical values of STSplitFlag, STSplitDir and STSplitType are all 0 by default.
В другом примере для набора 12 кандидатов режима разделения в таблице 2, если набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя горизонтальное бинарное разделение, горизонтальное троичное разделение или вертикальное троичное разделение, то прежде всего устройство декодирования выпоняет синтаксический анализ STSplitFlag из битового потока; если числовое значение STSplitFlag равно 0, то числовые значения STSplitDir и STSplitType оба равны 0 по умолчанию; или если числовое значение STSplitFlag равно 1, то числовое значение STSplitDir равно 1 по умолчанию, и числовое значение STSplitType равно 0 по умолчанию.In another example, for the split mode candidate set 12 in Table 2, if the split mode candidate set corresponding to the first node does not include horizontal binary split, horizontal ternary split, or vertical ternary split, then first of all, the decoder parses the STSplitFlag from the bitwise flow; if the numeric value of STSplitFlag is 0, then the numeric values of STSplitDir and STSplitType are both 0 by default; or if the numeric value of STSplitFlag is 1, then the numeric value of STSplitDir is 1 by default and the numeric value of STSplitType is 0 by default.
В другом примере для набора 6 кандидатов режима разделения в таблице 2, если набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя горизонтальное троичное разделение или вертикальное троичное разделение, тово-первых, устройство декодирования выполняет синтаксический анализ STSplitFlag из битового потока; если числовое значение STSplitFlag равно 0, числовые значения STSplitDir и STSplitType оба равны 0 по умолчанию; если числовое значение STSplitFlag равно 1, то устройство декодирования анализирует STSplitDir из битового потока, и устанавливает числовое значение STSplitType равное 0 по умолчанию.In another example, for the split mode candidate set 6 in Table 2, if the split mode candidate set corresponding to the first node does not include horizontal ternary split or vertical ternary split, firstly, the decoder parses STSplitFlag from the bitstream; if the numeric value of STSplitFlag is 0, the numeric values of STSplitDir and STSplitType are both 0 by default; if the numeric value of STSplitFlag is 1, then the decoder parses the STSplitDir from the bitstream, and sets the numeric value of STSplitType to 0 by default.
Таблица 2table 2
(STSplitFlag==1)STSplitDir
(STSplitFlag==1)
(STSplitFlag==1)STSplitType
(STSplitFlag==1)
В другом примере для набора 5 кандидатов режима разделения в таблице 2, первый из которых соответствует набору кандидатов режима разделения, соответствующий первому узлу, не включает в себя вертикальное троичное разделение, и устройство декодирования прежде всего выполняет синтаксический анализ STSplitFlag из битового потока. Если числовое значение STSplitFlag является 0, числовые значения STSplitDir и STSplitType являются 0 по умолчанию; или если числовое значение STSplitFlag равно 1, то устройство декодирования выполняет синтаксический анализ STSplitDir из битового потока. Если числовое значение STSplitDir равно 1, числовое значение STSplitType равно 0 по умолчанию; или если числовое значение STSplitDir равно 0, то устройство декодирования выполняет синтаксический анализ STSplitType из битового потока.In another example, for split mode candidate set 5 in table 2, the first of which corresponds to the split mode candidate set corresponding to the first node, does not include vertical ternary splitting, and the decoder first parses the STSplitFlag from the bitstream. If the numeric value of STSplitFlag is 0, the numeric values of STSplitDir and STSplitType are 0 by default; or if the numerical value of STSplitFlag is 1, then the decoder parses STSplitDir from the bitstream. If the numeric value of STSplitDir is 1, the numeric value of STSplitType is 0 by default; or if the numeric value of STSplitDir is 0, then the decoder parses the STSplitType from the bitstream.
После определения числовых значений STSplitFlag, STSplitDir и STSplitType, устройство декодирования может определить, четвертый STSplitMode идентификатор на основании трех числовых значений, то есть, определение информации о режиме разделения первого узла кодового дерева второго уровня.After determining the numerical values of STSplitFlag, STSplitDir and STSplitType, the decoder may determine the fourth STSplitMode identifier based on the three numerical values, that is, determining the split mode information of the first node of the second level code tree.
Например, устройство декодирования определяет числовое значение STSplitMode на основании числовых значений STSplitFlag, STSplitDir и STSplitType в режиме отображения, как показано в таблице 3.For example, the decoder determines the numeric value of STSplitMode based on the numeric values of STSplitFlag, STSplitDir, and STSplitType in display mode, as shown in Table 3.
Таблица 3Table 3
В качестве примера, со ссылкой на приведенный выше пример, если числовые значения STSplitFlag, STSplitDir и STSplitType, которые соответствует первому узлу, соответственно, равны 1, 1 и 0, то значение STSplitMode равно 2, то есть, режим разделения, соответствующий первому узлу, является вертикальным бинарным разделением.As an example, with reference to the above example, if the numerical values of STSplitFlag, STSplitDir, and STSplitType that correspond to the first node are 1, 1, and 0, respectively, then the value of STSplitMode is 2, that is, the split mode corresponding to the first node, is a vertical binary separation.
В качестве варианта, набор кандидатов режима разделения может альтернативно включать в себя только горизонтальное троичное разделение и вертикальное троичное разделение, и не включает в себя горизонтальное бинарное разделение или вертикальное бинарное разделение. В этом случае, устройство декодирования прежде всего выполняет синтаксический анализ STSplitFlag из битового потока. Если числовое значение STSplitFlag является 0, числовые значения STSplitDir и STSplitType являются 0 по умолчанию; или если числовое значение STSplitFlag равно 1, то устройство декодирования выполняет синтаксический анализ STSplitDir из битового потока, и числовое значение STSplitType равно 1 по умолчанию.Alternatively, the partitioning mode candidate set may alternatively include only horizontal ternary partitioning and vertical ternary partitioning, and does not include horizontal binary partitioning or vertical binary partitioning. In this case, the decoder first parses the STSplitFlag from the bitstream. If the numeric value of STSplitFlag is 0, the numeric values of STSplitDir and STSplitType are 0 by default; or if the numeric value of STSplitFlag is 1, then the decoder parses STSplitDir from the bitstream, and the numeric value of STSplitType is 1 by default.
Легко понять, что, если режим разделения кодового дерева второго уровня дополнительно включает в себя режим разделения, кроме горизонтального бинарного разделения, вертикального бинарного разделения, горизонтального троичного разделения и вертикального троичного разделения, способ синтаксического анализа информации, показанный в таблице 2, должен быть расширен. Это конкретно не ограничено в этом варианте осуществления настоящего изобретения.It is easy to understand that if the splitting mode of the second level code tree further includes a splitting mode other than horizontal binary splitting, vertical binary splitting, horizontal ternary splitting, and vertical ternary splitting, the information parsing method shown in Table 2 should be extended. This is not specifically limited in this embodiment of the present invention.
Как видно из таблицы 2, режимы для синтаксического анализа первой информации, второй информации и третьей информации, которые соответствуют нескольким наборам кандидатов режима разделения в 15 наборах кандидатов режима разделения, одинаковы или похожие. Таким образом, несколько наборов кандидатов режима разделения могут быть дополнительно объединены в одну категорию, и один способ синтаксического анализа используется для каждой категории. В этом случае, способ для синтаксического анализа первой информации, второй информации и третьей информации эквивалентен способу синтаксического анализа для определения первой информации, второй информации и третьей информации в соответствии с таблицей 2, но есть меньше ветвей определения.As can be seen from Table 2, the modes for parsing the first information, the second information, and the third information that correspond to multiple partition mode candidate sets in the 15 partition mode candidate sets are the same or similar. Thus, multiple partition mode candidate sets can be further combined into one category, and one parsing method is used for each category. In this case, the method for parsing the first information, the second information, and the third information is equivalent to the parsing method for determining the first information, the second information, and the third information according to Table 2, but there are fewer determination branches.
Например, устройство декодирования может определять первую информацию STSplitFlag в режиме синтаксического анализа, показанном в таблице 4, определяет вторую информацию STSplitDir в режиме синтаксического анализа, показанном в таблице 5, и определяет третью информацию STSplitType в режиме синтаксического анализа, показанном на таблица 6. && является логической операцией И, || является логической операцией ИЛИ, и ! является логической операцией НЕТ. Как и в таблице 2, а, b, c соответственно указывают, что соответствующие данные должны быть проанализированы из битового потока, и НА(х) указывает, что значение соответствующей информации устанавливается на х.For example, the decoder may determine the first STSplitFlag information in the parsing mode shown in Table 4, determine the second STSplitDir information in the parsing mode shown in Table 5, and determine the third STSplitType information in the parsing mode shown in Table 6. && is logical operation AND, || is a logical OR operation, and ! is a logical NO operation. As in Table 2, a, b, c respectively indicate that the corresponding data is to be parsed from the bitstream, and HA(x) indicates that the value of the corresponding information is set to x.
Таблица 4Table 4
Как показано в таблице 4, когда величина (а именно, первое числовое значение, представленное NumType) режимов разделения, содержащиеся в наборе кандидатов режима разделения больше, чем 0, то устройство декодирования выполняет синтаксический анализ STSplitFlag из битового потока; или, если числовое значение NumType равно 0, то числовое значение STSplitFlag равно 0 по умолчанию. При определении, что числовое значение STSplitFlag равно 1, устройство декодирования продолжает выполнение синтаксического анализа STSplitDir и STSplitType; в противном случае, числовые значения STSplitDir и STSplitType оба равны 0 по умолчанию.As shown in Table 4, when the value (namely, the first numeric value represented by NumType) of the split modes contained in the split mode candidate set is greater than 0, then the decoder parses STSplitFlag from the bitstream; or, if the NumType numeric value is 0, then the STSplitFlag numeric value is 0 by default. When determining that the numerical value of STSplitFlag is 1, the decoder continues parsing STSplitDir and STSplitType; otherwise, the numeric values of STSplitDir and STSplitType are both 0 by default.
Со ссылкой на таблицу 2, можно видеть, что, в наборах 1-14 кандидатов режима разделения в таблице 2, где каждый набор кандидатов режима разделения включает в себя множество режимов разделения и STSplitFlag, соответствующий каждому набору кандидатов режима разделения должен быть проанализирован из битового потока. Это соответствует случаю, показанному в таблице 4. Кроме того, набор 15 кандидатов режима разделения в таблице 2, не включает в себя режим разделения, то есть, количество режимов разделения, содержащееся в наборе 15 кандидатов режима разделения, равно 0. Числовое значение STSplitFlag, соответствующее набору 15 кандидатов режима разделения является NA (0) по умолчанию, и это соответствует таблице 4.With reference to Table 2, it can be seen that, in the split mode candidate sets 1-14 in Table 2, where each split mode candidate set includes a split mode plurality and the STSplitFlag corresponding to each split mode candidate set is to be parsed from the bitstream . This corresponds to the case shown in Table 4. In addition, the split mode candidate set 15 in Table 2 does not include a split mode, that is, the number of split modes contained in the split mode candidate set 15 is 0. The numerical value STSplitFlag, corresponding to the set of 15 partition mode candidates is NA (0) by default, and this corresponds to Table 4.
Таблица 5Table 5
>= 3NumType
>= 3
== 1NumType
== 1
== 0NumType
== 0
Как показано в таблице 5, когда числовое значение NumType больше или равно 3, числовое значение NumType равно 2, числовое значение NumType равно 1, и числовое значение NumType равно 0, то устройство декодирования определяет STSplitDir в различных режимах. Кроме того, когда числовое значение NumType равно 2, то устройство декодирования дополнительно должно определить, в зависимости от различных условий, конкретный режим для определения STSplitDir.As shown in Table 5, when the NumType numeric value is greater than or equal to 3, the NumType numeric value is 2, the NumType numeric value is 1, and the NumType numeric value is 0, then the decoder determines STSplitDir in various modes. In addition, when the numerical value of NumType is 2, then the decoder must further determine, depending on various conditions, a specific mode to determine STSplitDir.
Например, когда числовое значение NumType больше или равно 3, то устройство декодирования выполняет синтаксический анализ битового потока, чтобы получить STSplitDir. Когда числовое значение NumType равно 2 и условие (НВТ && НТТ) || (VBT && ВТТ) удовлетворяется, числовое значение STSplitDir установлено на !HBT (то есть, когда НВТ равно 0, STSplitDir равно 1; или, когда HBT равно 1, STSplitDir равно 0).For example, when the numerical value of NumType is greater than or equal to 3, then the decoder parses the bitstream to obtain STSplitDir. When the numeric value of NumType is 2 and the condition (HBT && HTT) || (VBT && VTT) is satisfied, the numerical value of STSplitDir is set to !HBT (that is, when HBT is 0, STSplitDir is 1; or when HBT is 1, STSplitDir is 0).
Со ссылкой на таблицу 2, можно узнать, что, в наборах 1-5 кандидатов режима разделения в таблице 2, количество режимов разделения, содержащееся в каждом наборе кандидатов режима разделения больше или равно 3, и STSplitDir, соответствующий каждый из набора 1-5 кандидатов режима разделения, должны быть проанализированы из битового потока. Это соответствует случаю, показанному в таблице 5. В наборах 6-10 кандидатов режима разделения в таблице 2, количество режимов разделения, содержащиеся в каждом наборе кандидатов режима разделения, равно 2, и при различных условиях, существует различные режимы для анализа STSplitDir, соответствующий всем из наборов 6-10 кандидатов режима разделения, и это соответствует случаю, показанному в таблице 5. В наборах 11-14 кандидатов режима разделения в таблице 2 количество режимов разделения, содержащийся в каждом наборе кандидатов режима разделения, равно 1, и числовое значение STSplitDir, соответствующее каждому из набора 11-14 кандидатов режима разделения, является значением по умолчанию NA (VBT || ВТТ), и это соответствует случаю, показанному в таблице 5. Количество режимов разделения, содержащиеся в наборе 15 кандидатов режима разделения в таблице 2, равно 0, и STSplitDir, соответствующий набору 15 кандидатов режима разделения, является значением по умолчанию НА(0), и это соответствует случаю, показанному в таблице 5.With reference to Table 2, it can be learned that, in the split mode candidate sets 1-5 in Table 2, the number of split modes contained in each split mode candidate set is greater than or equal to 3, and STSplitDir corresponding to each of the split mode candidate set 1-5 split mode must be parsed from the bitstream. This corresponds to the case shown in Table 5. In the split mode candidate sets 6-10 in Table 2, the number of split modes contained in each split mode candidate set is 2, and under different conditions, there are different modes for parsing STSplitDir corresponding to all of the split mode candidate sets 6 to 10, and this corresponds to the case shown in Table 5. In the split mode candidate sets 11 to 14 in Table 2, the number of split modes contained in each split mode candidate set is 1, and the numerical value STSplitDir, corresponding to each of the split mode candidate set 11-14 is the default value NA (VBT || VTT), and this corresponds to the case shown in Table 5. The number of split modes contained in the split mode candidate set 15 in Table 2 is 0 , and STSplitDir corresponding to the set of 15 split mode candidates is the default value of AT(0), and this corresponds to the case shown in Table 5.
Таблица 6Table 6
Как показано в таблице 6, когда числовое значение NumType равно 4, числовое значение NumType равно 3, числовое значение NumType равно 2, числовое значение NumType равно 1, и числовое значение NumType равно 0, то устройство декодирования определяет STSplitType в различных режимах. Кроме того, когда числовое значение NumType равно 2 и числовое значение NumType равно 3, то устройство декодирования должно дополнительно определить, в зависимости от различных условий, конкретный режим для определения STSplitType. Как и в таблице 4 и таблице 5, таблица 6 также соответствует таблице 2.As shown in Table 6, when the NumType numeric value is 4, the NumType numeric value is 3, the NumType numeric value is 2, the NumType numeric value is 1, and the NumType numeric value is 0, the decoder determines STSplitType in various modes. Also, when the NumType number is 2 and the NumType number is 3, the decoding apparatus must further determine, depending on various conditions, a specific mode to determine STSplitType. As in Table 4 and Table 5, Table 6 also corresponds to Table 2.
Способ определения STSplitType устройством декодирования согласно таблице 6 аналогичен способу определения STSplitDir устройством декодирования в соответствии с таблицей 5, и подробности не описаны здесь еще раз.The method for determining STSplitType by the decoder according to Table 6 is similar to the method for determining STSplitDir by the decoder according to Table 5, and the details are not described again here.
Следует отметить, что, если информация разделения кодового дерева первого уровня представлена NSFlag и QTSplitFlag, когда числовое значение NSFlag узла является первым значением, узел является листовым узлом кодового дерева второго уровня, и числовое значение STSplitFlag равно 0 по умолчанию; или, когда числовое значение NSFlag узла является вторым значением, и числовое значение QTSplitFlag является вторым значением, то узел не является листовым узлом кодового дерева второго уровня и числовое значение STSplitFlag равно 1 по умолчанию.It should be noted that, if the first level code tree split information is represented by NSFlag and QTSplitFlag, when the node's NSFlag numeric value is the first value, the node is a leaf node of the second level code tree, and the STSplitFlag numeric value is 0 by default; or, when the node's NSFlag numeric value is the second value and the QTSplitFlag numeric value is the second value, then the node is not a leaf node of the second-level code tree and the STSplitFlag numeric value is 1 by default.
В качестве варианта, в этом варианте осуществления настоящего изобретения, после выполнения S601, устройство декодирования выполняет S602; или в процессе выполняя S601, после получения информации о листовом узле кодового дерева первого уровня может сразу же выполнить S602 на основании листового узла кодового дерева первого уровня, до момента получения последнего листового узла кодового дерева первого уровня.Alternatively, in this embodiment of the present invention, after executing S601, the decoding apparatus executes S602; or in the process of executing S601, after obtaining information about the leaf node of the first level code tree, can immediately execute S602 based on the leaf node of the first level code tree until the last leaf node of the first level code tree is obtained.
S603. Если информация о режиме разделения узла кодового дерева второго уровня указывает, что режим разделения, соответствующий первому узлу, кодового дерева второго уровня дополнительно не разделяет, устройство декодирования выполняет синтаксический анализ битового потока, чтобы получить информацию кодирования первого узла.S603. If the split mode information of the second layer code tree node indicates that the split mode corresponding to the first node does not further split the second layer code tree, the decoding apparatus parses the bitstream to obtain the first node encoding information.
В этом варианте осуществления настоящего изобретения, если информация о режиме разделения узла кодового дерева второго уровня указывает, что режим разделения, соответствующий первому узлу кодового дерева второго уровня, дополнительно не разделяет, то это указывает, что первый узел является листовым узлом кодового дерева второго уровня.In this embodiment of the present invention, if the split mode information of the second level code tree node indicates that the split mode corresponding to the first second level code tree node does not further split, it indicates that the first node is a leaf node of the second level code tree.
Из приведенных выше описаний известно, что узел, который больше не разделяют, соответствует одному CU. Соответственно, первый узел соответствует одному CU.It is known from the above descriptions that a node that is no longer shared corresponds to one CU. Accordingly, the first node corresponds to one CU.
В частности, устройство декодирования анализирует синтаксис структуры блока кодирования в битовом потоке (например, синтаксис структура coding_unit () в H.265. Для объяснения о синтаксисе структуры coding_unit (), обратитесь к следующим описаниям) для получения информации кодирования каждого CU. Информация кодирования каждого CU включает в себя информацию, такую как режим предсказания и коэффициент преобразования CU. При этом, устройство декодирования получает информацию кодирования каждого CU, что означает, что устройство декодирования получает информацию кодирования каждого листового узла кодового дерева второго уровня.In particular, the decoding device parses the syntax of the coding unit structure in the bitstream (for example, the syntax of the coding_unit() structure in H.265. For an explanation about the syntax of the coding_unit() structure, refer to the following descriptions) to obtain encoding information of each CU. The coding information of each CU includes information such as a prediction mode and a transform coefficient of the CU. Here, the decoding apparatus obtains encoding information of each CU, which means that the decoding apparatus obtains encoding information of each leaf node of the second-level code tree.
В качестве варианта, в этом варианте осуществления настоящего изобретения, в процессе выполнения S602, после получения информации о листовом узле кодового дерева второго уровня устройство декодирования может анализировать битовый поток для получения информации кодирования листового узла; и после получения информации кодирования листового узла продолжает получать листовой узел следующего кодового дерева второго уровня и информацию кодирования листового узла следующего кодового дерева второго уровня и так далее, до тех пор, пока не будет получен листовой узел последнего кодового дерева второго уровня.Alternatively, in this embodiment of the present invention, in the process of executing S602, after obtaining information about the leaf node of the second layer code tree, the decoding device may parse the bitstream to obtain the encoding information of the leaf node; and after receiving the leaf node encoding information, continues to obtain the leaf node of the next second level code tree and the leaf node encoding information of the next second level code tree, and so on, until the leaf node of the last second level code tree is obtained.
В одном из примеров, таблица синтаксиса кодового дерева второго уровня в этом варианте осуществления настоящего изобретения показана в таблице 7. coding_second_tree () представляет собой синтаксис структуры кодового дерева второго уровня и описывает информацию об узле кодового дерева второго уровня.In one example, the syntax table of the second level code tree in this embodiment of the present invention is shown in Table 7. coding_second_tree() is the syntax of the second level code tree structure and describes information about the second level code tree node.
В таблице 7, log2CuWidth и log2CuHeight соответственно представляют собой логарифмическую величину области изображения, соответствующей узлу с основанием 2 и логарифмическим значением высоты области изображения, соответствующую узлу с основанием 2, stDepth представляет собой глубину листового узла кодового дерева второго уровня, и условие condB представляет собой условие, при котором синтаксический элемент STSplitMode информации разделения узла кодового дерева второго уровня должна быть проанализирована из битового потока. Например, условие condB является «глубина stDepth узла кодового дерева второго уровня меньше, чем максимальная заданная глубина maxSTDepth в кодовой дереве второго уровня, как ширина, так и высота области изображения, соответствующего узла, меньше, чем пороговое значение maxSTSize, и ширина или высота области изображения, соответствующая узлу, больше, чем пороговое значение minSTSize». maxSTDepth представляет собой целое число (например, 2, 3 или 4) больше 0, и может быть задано или получена из SPS; minSTSize представляет собой целое число (например, 4 или 8) больше 0, и может быть задано или получено из SPS; maxSTSize является целым числом (например, 64 или 128) больше, чем minSTSize, и может быть задано или получено из SPS.In Table 7, log2CuWidth and log2CuHeight respectively represent the logarithmic value of the image area corresponding to the node with base 2 and the logarithmic value of the height of the image area corresponding to the node with base 2, stDepth represents the depth of the leaf node of the second level code tree, and the condition condB represents the condition , in which the STSplitMode syntax element of the second level code tree node split information is to be parsed from the bitstream. For example, the condition condB is "the depth stDepth of a second level code tree node is less than the maximum specified depth maxSTDepth in the second level code tree, both the width and height of the image area corresponding to the node is less than the maxSTSize threshold, and the width or height of the area image corresponding to the node is greater than the threshold minSTSize". maxSTDepth is an integer (eg, 2, 3, or 4) greater than 0, and may be set to or obtained from the SPS; minSTSize is an integer (eg, 4 or 8) greater than 0, and may be set to or obtained from the SPS; maxSTSize is an integer (eg 64 or 128) greater than minSTSize and can be set to or obtained from the SPS.
Диапазон значения STSplitMode равен 0, 1, 2, 3 и 4. Когда числовое значение STSplitMode равно 0, узел является листовым узлом кодового дерева второго уровня, и узел соответствует одному CU. В этом случае, информация кодирования блока анализируется на основании синтаксиса структуры CU coding_unit (). Режим организации синтаксического элемента информации о кодировании блока не ограничиваются в этом варианте осуществления настоящего изобретения. Когда числовое значение STSplitMode находится в диапазоне от 1 до 4, узел разделяется на два или три дочерних узла по отдельности посредством горизонтального бинарного разделения, вертикального бинарного разделения, горизонтального троичного разделения и вертикального троичного разделения, и для каждого дочернего узла определяют ширину, высоту и координату области изображения, соответствующую дочернему узлу, и глубину в кодовом дереве второго уровня и дочерние узлы последовательно анализируют на основании coding_second_tree ().The value range of STSplitMode is 0, 1, 2, 3, and 4. When the numerical value of STSplitMode is 0, the node is a leaf node of the second-level code tree, and the node corresponds to one CU. In this case, the block coding information is parsed based on the syntax of the CU coding_unit() structure. The syntax element organization mode of the block encoding information is not limited in this embodiment of the present invention. When the numerical value of STSplitMode is in the range of 1 to 4, the node is split into two or three child nodes separately by horizontal binary split, vertical binary split, horizontal ternary split, and vertical ternary split, and for each child node, determine the width, height, and coordinate the image area corresponding to the child node and the depth in the second-level coding tree and the child nodes are sequentially parsed based on coding_second_tree().
В качестве варианта, в этом варианте осуществления настоящего изобретения, STSplitFlag, STSplitDir и STSplitType могут быть закодированы в режиме обхода (by-pass) или могут быть закодированы с помощью одной модели вероятности или вероятностная модель может быть адаптивно выбрана на основании контекста.Alternatively, in this embodiment of the present invention, STSplitFlag, STSplitDir, and STSplitType may be encoded in by-pass mode, or may be encoded with a single probability model, or the probability model may be adaptively selected based on context.
Например, способ выбора модели контекста STSplitFlag является: получают размер S1 CU, соответствующий левой стороны области изображения, соответствующая узлу, размер S2 CU, соответствующий верхней стороне области изображения, соответствующая узлу, и размер S3 области изображения, соответствующей узлу. Если оба S1 и S2 меньше, чем S3, выбирают модель контекста под номером 2; или, если только один из S1 и S2 меньше, чем S3, то выбирают модель контекста, пронумерованной 1; в противном случае, (ни один из S1 и S2 не меньше, чем S3), выбирают модель контекста под номером 0. Левая часть области изображения, соответствующего узла, например, (х0 - 1, у0) и верхняя сторона области изображения, соответствующего узла, является, например, (х0, у0 - 1).For example, the method for selecting the context model STSplitFlag is: get the size S1 of the CU corresponding to the left side of the image area corresponding to the node, the size S2 of the CU corresponding to the top side of the image area corresponding to the node, and the size S3 of the image area corresponding to the node. If both S1 and S2 are less than S3, select context model number 2; or, if only one of S1 and S2 is less than S3, then select the context model numbered 1; otherwise, (none of S1 and S2 is less than S3), choose context model number 0. The left side of the image area corresponding to the node, for example, (x0 - 1, y0) and the top side of the image area corresponding to the node , is, for example, (x0, y0 - 1).
Способ выбора модели контекста STSplitDir: если ширина области изображения, соответствующая узлу, в два раза больше, чем высота, используют модель под номером 0; если ширина области изображения, соответствующая узлу, равна удвоенной высоте, используют модель под номером 1; если ширина области изображения, соответствующая узлу, равна высоте, используют модель номер 2; если ширина области изображения, соответствующая узлу, равна 1/2 высоты, то используют модель номер 3; или, если ширина области изображения, соответствующая узлу меньше, чем 1/2 высоты, то используют модель номер 4.STSplitDir context model selection method: if the width of the image area corresponding to the node is twice as large as the height, use model number 0; if the width of the image area corresponding to the node is equal to twice the height,
Способ выбора модели контекста STSplitType: если глубина узла кодового дерева второго уровня равна 0, то выбирают модель с номерами 0; если глубина узла кодового дерева второго уровня равна 1, то выбирают модель номер 1; или, если глубина узла кодового дерева второго уровня больше 1, выбирают модель номер 2.STSplitType context model selection method: if the code tree node depth of the second level is 0, then the model with numbers 0 is selected; if the depth of the node of the code tree of the second level is equal to 1, then select the
Следует понимать, что число указанных выше контекстных моделей просто используется для различения разных контекстных моделей, и число моделей контекста не ограничивается, чтобы быть таким же, как цифры в приведенных выше примерах.It should be understood that the number of the above context models is simply used to distinguish between different context models, and the number of context models is not limited to be the same as the numbers in the above examples.
Таблица 7Table 7
S604. Устройство декодирования декодирует и восстанавливает кодированный блок на основе информации кодирования трех дочерних узлов первого узла, чтобы получить изображение, соответствующие данным изображения.S604. The decoding apparatus decodes and reconstructs the coded block based on the encoding information of the three child nodes of the first node to obtain an image corresponding to the image data.
Процесс декодирования и восстановления блока кодирования включает в себя обработку, такую как предсказание, деквантование, обратное преобразование и контурная фильтрация. В частности, процесс декодирования и восстановления каждого блока кодирования включает в себя следующие этапы:The process of decoding and recovering a coding block includes processing such as prediction, dequantization, inverse transform, and loop filtering. In particular, the process of decoding and recovering each coding block includes the following steps:
(1) Выбирают режим внутреннего предсказания или внешнего предсказания на основании режима предсказания в информации кодирования CU для получения предсказанного пикселя CU.(1) An intra prediction mode or an inter prediction mode is selected based on the prediction mode in the CU coding information to obtain a predicted CU pixel.
(2) Если CU включает в себя коэффициент преобразования, деквантования и обратного преобразования, то выполняют обработку CU на основании коэффициента преобразования, деквантования и обратного преобразования для получения восстановленного остаточного CU; или, если CU не включает в себя коэффициент преобразования, восстановленный остаточный CU равен 0, другими словами, восстановленный остаточное значение каждого пикселя в CU равно 0.(2) If the CU includes a transform, dequantize, and inverse transform coefficient, then perform CU processing based on the transform coefficient, dequantize, and inverse transform to obtain a reconstructed residual CU; or, if the CU does not include a transform coefficient, the recovered residual CU is 0, in other words, the recovered residual value of each pixel in the CU is 0.
(3) После добавления предсказанного пикселя CU и восстановленного остаточного CU выполняют обработку посредством контурного фильтра для получения восстановленного блока изображения CU.(3) After adding the predicted pixel CU and the reconstructed residual CU, loop filter processing is performed to obtain a reconstructed CU image block.
Устройство кодирования декодирует и восстанавливает каждый блок кодирования в соответствии с описанным выше способом для получения восстановленного блока изображения каждого CU. После получения восстановленного блока изображения каждого CU, устройство кодирования получает окончательное восстановленное изображение на основании всех восстановленных блоков изображения, которые получают, то есть, получают изображение, соответствующие данным изображения.The encoding device decodes and reconstructs each coding block in accordance with the method described above to obtain a reconstructed image block of each CU. After obtaining the reconstructed image block of each CU, the encoder obtains the final reconstructed image based on all the reconstructed image blocks that are obtained, i.e., obtain an image corresponding to the image data.
В этом варианте осуществления настоящего изображения, режим разделения, соответствующий первому узлу кодового дерева второго уровня, является одним из режимов разделения, определяемый в соответствии с первым заданным условием разделения, первое заданное условие разделения используют для указания, следует ли ограничить разделение первого узла целевым режимом разделения, и целевой режим разделения включает в себя, по меньшей мере, одно из горизонтальное бинарное разделение, горизонтальное троичное разделение, вертикальное бинарное разделение и вертикальное троичное разделение. Количество режимов разделения, соответствующих первому узлу, уменьшают первым заданным условием разделения, эффективно уменьшая сложность декодирования.In this embodiment of the present image, the split mode corresponding to the first node of the second level code tree is one of the split modes determined according to the first split condition set, the first split condition set is used to indicate whether split of the first node should be restricted to the target split mode , and the target splitting mode includes at least one of horizontal binary splitting, horizontal ternary splitting, vertical binary splitting, and vertical ternary splitting. The number of partition modes corresponding to the first node is reduced by the first given partition condition, effectively reducing the decoding complexity.
В варианте осуществления, показанном на фиг.6, в процессе определения информации о режиме разделения узла кодового дерева второго уровня, устройство декодирования может последовательно определять первую информацию, вторую информацию и третью информацию. Устройство декодирования в этом варианте осуществления настоящего изобретения может дополнительно определять информацию о режиме разделения узла кодового дерева второго уровня в последовательности первой информации, третьей информации и второй информации. Этот сценарий описан в данный момент.In the embodiment shown in FIG. 6, in the process of determining the splitting mode information of the second layer code tree node, the decoding apparatus may sequentially determine the first information, the second information, and the third information. The decoding apparatus in this embodiment of the present invention may further determine splitting mode information of the second level code tree node in the sequence of the first information, the third information, and the second information. This scenario is currently described.
В качестве примера, в S602, устройство декодирования может дополнительно определить первую информацию, третью информацию и вторую информацию последовательно в соответствии со способом синтаксического анализа, показанным в таблице 8, чтобы получить информацию о режиме разделения узла кодового дерева второго уровня на основании режима отображения, показанном в таблице 3.As an example, in S602, the decoding apparatus may further determine the first information, the third information, and the second information sequentially according to the parsing method shown in Table 8 to obtain information about the splitting mode of the second level code tree node based on the display mode shown in table 3.
Таблица 8 аналогична таблице 2. Детали не описаны здесь еще раз.Table 8 is similar to Table 2. Details are not described again here.
Как и в том, что в таблице 2, режимы для синтаксического анализа первой информации, третьей информации и второй информации, что соответствует нескольким наборам кандидатов режима разделения в 15 наборах кандидатов режима разделения, показанных в таблице 8, которые является одинаковыми или аналогичными. Таким образом, несколько наборов кандидатов режима разделения может быть дополнительно объединены в одну категорию, и могут использовать один способ синтаксического анализа для каждой категории. В этом случае, способ для синтаксического анализа первой информации, третьей информации и второй информации эквивалентен способу синтаксического анализа для определения первой информации, третьей информации и второй информации в соответствии с таблицей 8, но при меньшем количестве ветвей определения.As in Table 2, modes for parsing the first information, the third information, and the second information, corresponding to multiple partition mode candidate sets in the 15 partition mode candidate sets shown in Table 8, which are the same or similar. Thus, multiple partition mode candidate sets can be further combined into one category, and can use one parsing method for each category. In this case, the method for parsing the first information, the third information, and the second information is equivalent to the parsing method for determining the first information, the third information, and the second information according to Table 8, but with fewer determination branches.
Например, устройство декодирования может определять первую информацию STSplitFlag, основанную на режиме синтаксического анализа, показанном в таблице 4, определять третью информацию STSplitType, основываясь на режиме синтаксического анализа, показанном в таблице 9, и определять вторую информацию STSplitDir на основании режима синтаксического анализа, показанного в таблице 10.For example, the decoding apparatus may determine the first STSplitFlag information based on the parsing mode shown in Table 4, determine the third STSplitType information based on the parsing mode shown in Table 9, and determine the second STSplitDir information based on the parsing mode shown in Table 9. table 10.
Таблица 8Table 8
(STSplitFlag==1)STSplitDir
(STSplitFlag==1)
Таблица 9Table 9
>= 3NumType
>= 3
== 1NumType
== 1
|| (VBT && VTT)
|| (HBT && VTT)
|| (VBT && HTT)(HBT && HTT)
|| (VBT && VTT)
|| (HBT && VTT)
|| (VBT && HTT)
Таблица 10Table 10
Как можно видеть, независимо от того, определяет ли устройство декодирования информацию о режиме разделения узла кодового дерева второго уровня в последовательности первой информации, второй информации и третьей информации, или определяет ли информацию режима разделения узла кодового дерева второго уровня в последовательности первой информации, третьей информации и второй информации, устройство декодирования может выполнить быстрое декодирование с функцией первого заданного условия разделения и сложность декодирования является относительно низкой.As can be seen, whether the decoding apparatus determines the splitting mode information of the second level code tree node in the sequence of first information, second information, and third information, or determines the splitting mode information of the second level code tree node in the sequence of first information, third information and second information, the decoding apparatus can perform fast decoding with the function of the first predetermined separation condition, and the decoding complexity is relatively low.
В описанном выше варианте осуществления, режим разделения, соответствующий кодовому дереву первого уровня, включает в себя разделение дерева квадрантов, и режим разделения узла, соответствующий кодовому дереву второго уровня, включает в себя бинарное разделение дерева и троичное разделение дерева. В реальной реализации режим разделения, соответствующий кодовому дереву второго уровня, может дополнительно включать в себя разделение дерева квадрантов. В этом случае, устройство декодирования должно определить, в соответствии с первым заданным условием разделения и вторым заданным условием разделения, набор кандидатов режима разделения, соответствующий первому узлу, для определения режима разделения, соответствующего первому узлу.In the above embodiment, the split mode corresponding to the first level code tree includes quadtree split, and the node split mode corresponding to the second level code tree includes binary tree split and ternary tree split. In an actual implementation, the split mode corresponding to the second level code tree may further include splitting the quadtree. In this case, the decoding apparatus must determine, in accordance with the first predetermined split condition and the second predetermined split condition, the split mode candidate set corresponding to the first node to determine the split mode corresponding to the first node.
Как показано на фиг.7, в этом случае, способ декодирования данных изображения, приведенный в этом варианте осуществления настоящего изобретения, включает в себя следующие этапы.As shown in FIG. 7, in this case, the image data decoding method provided in this embodiment of the present invention includes the following steps.
S700. Устройство декодирования получает битовый поток, включающий в себя данные изображения.S700. The decoding device receives a bit stream including image data.
Описание операций на этапе S700 может быть понятно из вышеприведенного описания S600. Подробности опущены.Description of operations in step S700 can be understood from the above description of S600. Details omitted.
S701. Устройство декодирования декодирует битовый поток, полученный устройством декодирования, для получения информации о режиме разделения узла кодового дерева первого уровня.S701. The decoder decodes the bit stream received by the decoder to obtain information about the division mode of the first level code tree node.
Описание операций на этапе S701 может быть понятно из вышеприведенного описания S601. Подробности опущены.The description of the operations in step S701 can be understood from the above description of S601. Details omitted.
S702. Устройство для декодера анализирует битовый поток, полученный устройством декодирования, для получения информации о режиме разделения узла в кодовом дереве второго уровня.S702. The device for the decoder analyzes the bit stream received by the decoder to obtain information about the node splitting mode in the second level code tree.
Информация о режиме разделения узла кодового дерева второго уровня указывает на режим разделения, соответствующий первому узлу кодового дерева второго уровня, режим разделения, соответствующий первому узлу, является одним режимом в наборе кандидатов режима разделения, соответствующий первому узлу, набор кандидатов режима разделения, соответствующий первому узлу, определяют в соответствии с первым заданным условием разделения и вторым заданным условием разделения, первое заданное условие разделения используют для указания, следует ли ограничить разделение первого узла целевым режимом разделения, целевой режим разделения включает в себя, по меньшей мере, одно из горизонтальное бинарное разделение, горизонтальное троичное разделение, вертикальное бинарное разделение и вертикальное троичное разделение, и второе заданное условие разделения используют для указания, следует ли ограничить разделение первого узла на основании разделения дерева квадрантов.The split mode information of the second level code tree node indicates the split mode corresponding to the first node of the second level code tree, the split mode corresponding to the first node is one mode in the split mode candidate set corresponding to the first node, the split mode candidate set corresponding to the first node , are determined in accordance with the first predetermined splitting condition and the second predetermined splitting condition, the first predetermined splitting condition is used to indicate whether to restrict the splitting of the first node to the target splitting mode, the target splitting mode includes at least one of the horizontal binary splitting, the horizontal ternary split, the vertical binary split, and the vertical ternary split, and the second predetermined split condition are used to indicate whether the split of the first node should be restricted based on the split of the quadtree.
Корневой узел кодового дерева второго уровня является листовым узлом кодового дерева первого уровня. Режим разделения узла, соответствующий кодовому дереву второго уровня, отличается от режима разделения узла, соответствующего кодовому дереву первого уровня. В этом варианте осуществления режим разделения узла, соответствующий кодовому дереву второго уровня, включает в себя бинарное разделение дерева, троичное разделение дерева и разделение дерева квадрантов, бинарное разделение дерева включает в себя горизонтальное бинарное разделение и вертикальное бинарное разделение и троичное разделение дерева включает в себя горизонтальное троичное разделение и вертикальное троичное разделение.The root node of the second level code tree is the leaf node of the first level code tree. The node split mode corresponding to the second level code tree is different from the node split mode corresponding to the first level code tree. In this embodiment, the node splitting mode corresponding to the second level code tree includes binary tree splitting, ternary tree splitting, and quadtree splitting, binary tree splitting includes horizontal binary splitting and vertical binary splitting, and ternary tree splitting includes horizontal ternary separation and vertical ternary separation.
В отличие от S602, устройство декодирования в этом варианте осуществления должно определить, в соответствии с первым заданным условием разделения и вторым заданным условием разделения, набор кандидатов режима разделения, соответствующий первому узлу.Unlike S602, the decoding apparatus in this embodiment needs to determine, in accordance with the first predetermined split condition and the second predetermined split condition, a split mode candidate set corresponding to the first node.
Первое заданное условие разделения является таким же, как первое заданное условие разделения в варианте осуществления, показанном на фиг.6. В данном случае, второе заданное условие разделения может включать в себя, по меньшей мере, одно из следующих заданных подусловий разеделения:The first predetermined split condition is the same as the first predetermined split condition in the embodiment shown in FIG. Here, the second predetermined split condition may include at least one of the following predefined split subconditions:
десятое заданное подусловие разделения: если глубина первого узла в кодовом дереве второго уровня меньше, чем максимальная заданная глубина в кодовом дереве второго уровня, то набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя разделение дерева квадрантов; иtenth predetermined split subcondition: if the depth of the first node in the second level code tree is less than the maximum predetermined depth in the second level code tree, then the split mode candidate set corresponding to the first node does not include splitting the quadtree; and
одиннадцатое заданное подусловие разделения: если отношение ширины к высоте области изображений, соответствующей первому узлу, больше или равно пятому заданному пороговому значению, то набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя разделение дерева квадрантов.eleventh predetermined split subcondition: if the ratio of the width to height of the image area corresponding to the first node is greater than or equal to the fifth predetermined threshold value, then the split mode candidate set corresponding to the first node does not include splitting the quadtree.
Аналогично, что в S602, устройство декодирования в этом варианте осуществления сначала определяет, в соответствии с первым заданным условием разделения и вторым заданным условием разделения, набор кандидатов режима разделения, соответствующий первому узлу, и затем анализирует битовый поток в режиме разделения, соответствующий первому узлу, для определения информации о режиме разделения узла, соответствующем кодовому дереву второго уровня.Similar to S602, the decoding apparatus in this embodiment first determines, according to the first predetermined split condition and the second predetermined split condition, a split mode candidate set corresponding to the first node, and then analyzes the split mode bitstream corresponding to the first node, to determine information about the splitting mode of the node corresponding to the code tree of the second level.
Поскольку режим разделения узла, соответствующий кодовому дереву второго уровня в этом варианте осуществления дополнительно включает в себя разделение дерева квадрантов, в этом варианте осуществления, основанный на описании на фиг.6, числовое значение четвертого идентификатора (STSplitMode) также может быть 5, то есть, STSplitMode = 5, что свидетельствует о том, что режим разделения, который соответствует узлу, соответствующий четвертому идентификатору, является разделением дерева квадрантов.Since the node splitting mode corresponding to the second level code tree in this embodiment further includes quadtree splitting, in this embodiment based on the description in FIG. 6, the numerical value of the fourth identifier (STSplitMode) may also be 5, that is STSplitMode = 5, indicating that the split mode that corresponds to the node corresponding to the fourth identifier is quadtree split.
Соответственно, четвертый идентификатор в этом варианте осуществления дополнительно включает в себя четвертую информацию (четвертая информация в данном описании представлена STQTSplitFlag), и четвертая информация используется для указания, следует ли разделить первый узел на основании разделения дерева квадрантов. Другими словами, четвертый идентификатор в этом варианте осуществления включает в себя первую информацию, вторую информацию, третью информацию и четвертую информацию. В этом варианте осуществления, если числовое значение STQTSplitFlag равно 1, это указывает, что режим разделения, который соответствует узлу, соответствующий четвертому идентификатору, включает в себя разделение дерева квадрантов; или, если числовое значение STQTSplitFlag равно 0, то это указывает, что набор кандидатов режима разделения, который соответствует узлу, соответствующий четвертому идентификатору, не включает в себя разделение дерева квадрантов.Accordingly, the fourth identifier in this embodiment further includes fourth information (the fourth information in this specification is represented by STQTSplitFlag), and the fourth information is used to indicate whether the first node should be split based on the quadtree split. In other words, the fourth identifier in this embodiment includes first information, second information, third information, and fourth information. In this embodiment, if the STQTSplitFlag numeric value is 1, this indicates that the split mode that corresponds to the node corresponding to the fourth identifier includes quadtree split; or, if the STQTSplitFlag numeric value is 0, then this indicates that the split mode candidate set that corresponds to the node corresponding to the fourth identifier does not include a quadtree split.
В частности, устройство декодирования определяет первую информацию, вторую информацию, третью информацию и четвертую информацию последовательно, чтобы определить информацию о режиме разделения узла, соответствующего кодового дерева второго уровня.Specifically, the decoding apparatus determines the first information, the second information, the third information, and the fourth information sequentially to determine the splitting mode information of the node corresponding to the second level code tree.
Аналогично, что в варианте осуществления на фиг. 6, устройство декодирования в этом варианте осуществления может определять первую информацию на основании первого числового значения и содержания четвертой информации в варианте осуществления на фиг. 6, для определения второй информации и третьей информации.Similarly, in the embodiment of FIG. 6, the decoding apparatus in this embodiment may determine the first information based on the first numerical value and the content of the fourth information in the embodiment of FIG. 6 to determine the second information and the third information.
Например, устройство декодирования может определять первую информацию STSplitFlag в режиме синтаксического анализа, показанном в таблице 11, и определяет четвертую информацию STQTSplitFlag в режиме синтаксического анализа, показанном в таблице 12. В таблице 11, если QT числовое значение равно 1, это указывает, что первый узел является QT режимом разделения; или, если QT числовое значение равно 0, то это означает, что разделение первого узла в QT режиме разделения не допускается. Когда «NumType> 0 || QT» выполняется, то устройство декодирования выполняет синтаксический анализ STSplitFlag из битового потока; в противном случае, (то есть, «NumType == 0 &&! QT» выполняется), числовое значение STSplitFlag равно 0 по умолчанию. Если числовое значение STSplitFlag равно 1, то устройство декодирования продолжает выполнять синтаксический анализ STQTSplitFlag; в противном случае, числовые значения STQTSplitFlag, STSplitDir и STSplitType равны 0 по умолчанию.For example, the decoding apparatus may determine the first STSplitFlag information in the parsing mode shown in Table 11, and determine the fourth STQTSplitFlag information in the parsing mode shown in Table 12. In Table 11, if the QT numeric value is 1, this indicates that the first node is a QT split mode; or, if the QT numeric value is 0, it means splitting the first node in QT split mode is not allowed. When "NumType> 0 || QT" is executed, then the decoder parses the STSplitFlag from the bitstream; otherwise, (that is, "NumType == 0 &&! QT" is executed), the numeric value of STSplitFlag is 0 by default. If the numerical value of STSplitFlag is 1, then the decoder continues parsing the STQTSplitFlag; otherwise, the numeric values of STQTSplitFlag, STSplitDir, and STSplitType are 0 by default.
Как показано в таблице 12, когда режим разделения, соответствующий первому узлу, включает в себя разделение дерева квадрантов, устройство декодирования выполняет синтаксический анализ STQTSplitFlag из битового потока; в противном случае, числовое значение STQTSplitFlag равно 0 по умолчанию. Если числовое значение STQTSplitFlag равно 0, STSplitDir и STSplitType продолжают анализировать последовательно; в противном случае, числовые значения STSplitDir и STSplitType равны 0 по умолчанию.As shown in Table 12, when the split mode corresponding to the first node includes quadtree split, the decoder parses STQTSplitFlag from the bitstream; otherwise, the numeric value of STQTSplitFlag is 0 by default. If the numeric value of STQTSplitFlag is 0, STSplitDir and STSplitType continue to be parsed sequentially; otherwise, the numeric values of STSplitDir and STSplitType are 0 by default.
В этом варианте осуществления, способы анализа STSplitDir и STSplitType являются такими же, как способы анализа STSplitDir и STSplitType в варианте осуществления на фиг. 6. Детали не описаны здесь еще раз.In this embodiment, the methods for parsing STSplitDir and STSplitType are the same as the methods for parsing STSplitDir and STSplitType in the embodiment of FIG. 6. Details are not described here again.
Таблица 11Table 11
Таблица 12Table 12
После определения числовых значений STSplitFlag, STSplitDir, STSplitType и STQTSplitFlag, устройство декодирования может определить четвертый STSplitMode идентификатор на основании четырех числовых значений, то есть, определение информации о режиме разделения первого узла кодового дерева второго уровня.After determining the numeric values of STSplitFlag, STSplitDir, STSplitType, and STQTSplitFlag, the decoder can determine the fourth STSplitMode identifier based on the four numeric values, that is, determining the split mode information of the first node of the second level code tree.
Например, устройство декодирования определяет числовое значение STSplitMode на основании числовых значений STSplitFlag, STSplitDir, STSplitType и STQTSplitFlag в режиме отображения, показанном в таблице 13.For example, the decoder determines the STSplitMode numeric value based on the STSplitFlag, STSplitDir, STSplitType, and STQTSplitFlag numeric values in the display mode shown in Table 13.
Таблица 13Table 13
Аналогично, другая информация STQTSplitFlag в этом варианте осуществления также может быть закодирована в режиме обхода или закодирована с помощью одной или нескольких моделей вероятности.Likewise, other STQTSplitFlag information in this embodiment may also be bypass-encoded or encoded with one or more probability models.
S703. Если информация о режиме разделения узла кодового дерева второго уровня указывает, что режим разделения, соответствующий первому узлу кодового дерева второго уровня, не используют для дополнительного разделения, устройство декодирования выполняет синтаксический анализ битового потока, чтобы получить информацию кодирования первого узла.S703. If the split mode information of the second layer code tree node indicates that the split mode corresponding to the first node of the second layer code tree is not used for further split, the decoding apparatus parses the bitstream to obtain the encoding information of the first node.
Описание S703 может быть сделано со ссылкой на S603. Подробности не описаны здесь снова.Description of S703 may be made with reference to S603. Details are not described here again.
S704. Устройство декодирования декодирует и восстанавливает блок кодирования на основании информации кодирования трех дочерних узлов первого узла, для получения изображения, соответствующего данным изображения.S704. The decoding device decodes and reconstructs the encoding block based on the encoding information of the three child nodes of the first node to obtain an image corresponding to the image data.
Для описания S704 может быть сделана ссылка на S604. Подробности не описаны здесь снова.To describe S704, reference may be made to S604. Details are not described here again.
По сравнению с вариантом осуществления на фиг.6, в этом варианте осуществления, режим разделения, соответствующий кодовому дереву второго уровня, дополнительно включает в себя разделение дерева квадрантов, и режим разделения, содержащийся в наборе кандидатов режима разделения, соответствующий первому узлу, дополнительно ограничивается. Таким образом, эффективность декодирования устройства декодирования может быть дополнительно повышена.Compared with the embodiment in FIG. 6, in this embodiment, the split mode corresponding to the second level code tree further includes splitting the quadtree, and the split mode contained in the split mode candidate set corresponding to the first node is further restricted. Thus, the decoding efficiency of the decoding apparatus can be further improved.
Дополнительно, вариант осуществления настоящего изобретения дополнительно предоставляет способ кодирования данных изображения. Способ кодирования может быть применен к системе обработки изображения, показанного на фиг. 4.Additionally, an embodiment of the present invention further provides a method for encoding image data. The encoding method can be applied to the image processing system shown in FIG. four.
Как показано на фиг.8, способ кодирования данных изображения, предусмотренных настоящим вариантом осуществления настоящего изобретения, включает в себя следующие этапы.As shown in FIG. 8, the image data encoding method provided by the present embodiment of the present invention includes the following steps.
S800. Устройство кодирования определяет CTU, соответствующий блоку изображения, подлежащий кодирования.S800. The encoder determines the CTU corresponding to the image block to be encoded.
Согласно приведенных выше описаний, изображение включает в себя множество CTUs, и один CTU обычно соответствует одной квадратной области изображения. После получения изображения, устройство кодирования кодирует каждый CTU изображения.As described above, an image includes a plurality of CTUs, and one CTU typically corresponds to one square image area. After receiving the image, the encoder encodes each CTU of the image.
Процессы кодирования всех CTUs, выполняемые устройством кодирования, являются одинаковыми. Таким образом, описание приведено в данном варианте осуществления настоящего изобретения, используя пример, в котором устройство кодирования кодирует один CTU.The encoding processes of all CTUs performed by the encoder are the same. Thus, the description has been given in this embodiment of the present invention using an example in which an encoder encodes one CTU.
S801. Устройство кодирования делит CTU в режиме разделения узла, соответствующий кодовому дереву первого уровня, для получения листового узла кодового дерева первого уровня.S801. The encoder divides the node split mode CTU corresponding to the first level code tree to obtain a leaf node of the first level code tree.
Корневой узел кодового дерева первого уровня соответствует CTU, и режим разделения узла, соответствующий кодовому дереву первого уровня, является разделением дерева квадрантов.The root node of the first level code tree corresponds to the CTU, and the node split mode corresponding to the first level code tree is quadtree split.
В частности, устройство кодирования определяет CTU в качестве корневого узла кодового дерева первого уровня, и рекурсивно разбивает CTU, по меньшей мере, один листовой узел в QT режиме разделения.Specifically, the encoder determines the CTU as the root node of the first level encoding tree, and splits the CTU recursively into at least one leaf node in the QT split mode.
После получения по меньшей мере одного листового узла кодового дерева первого уровня, устройство кодирования определяет каждый листовой узел кодового дерева первого уровня в качестве корневого узла кодового дерева второго уровня, и последовательно выполняет следующие действия этапов на каждом корневом узле кодового дерева второго уровня, до тех пор, пока не будет получена информация обо всех листовых узлах кодового дерева второго уровня. Описание приводится в данном варианте осуществления настоящего изобретения, используя пример, в котором устройство кодирования обрабатывает первый узел кодового дерева второго уровня.After obtaining at least one leaf node of the first level code tree, the encoding device determines each leaf node of the first level code tree as the root node of the second level code tree, and sequentially performs the following steps on each root node of the second level code tree, until until information about all leaf nodes of the second-level code tree is obtained. Description is given in this embodiment of the present invention using an example in which the encoding device processes the first node of the second level code tree.
S802. Устройство кодирования определяет набор кандидатов режима разделения, соответствующий первому узлу кодового дерева второго уровня, где набор кандидатов режима разделения, соответствующий первому узлу, удовлетворяет первому заданному условию разделения.S802. The coding device determines a split mode candidate set corresponding to the first node of the second level code tree, where the split mode candidate set corresponding to the first node satisfies the first predetermined split condition.
Первое заданное условие разделения используют для указания, следует ли ограничить разделение первого узла целевым режимом разделения, корневой узел кодового дерева второго уровня представляет собой листовой узел кодового дерева первого уровня, и целевой режим разделения включает в себя, по меньшей мере, одно горизонтальное бинарное разделение, горизонтальное троичное разделение, вертикальное бинарного разделение и вертикальное троичное разделение.The first predetermined split condition is used to indicate whether the split of the first node should be restricted to the target split mode, the root node of the second level code tree is a leaf node of the first level code tree, and the target split mode includes at least one horizontal binary split, horizontal ternary separation, vertical binary separation and vertical ternary separation.
В общем случае, при отсутствии ограничений для разделения первого узла, режимы разделения, доступные для первого узла, не включают в себя дополнительное разделение, горизонтальное бинарное разделение, горизонтальное троичное разделение, вертикальное бинарное разделение, вертикальное троичное разделение и разделение дерева квадрантов. В этом случае, устройство кодирования должно вычислить RD стоимость шести режимов разделения последовательно, вызывая относительно высокую сложность кодирования.In general, in the absence of restrictions on splitting the first node, the splitting modes available for the first node do not include extra splitting, horizontal binary splitting, horizontal ternary splitting, vertical binary splitting, vertical ternary splitting, and quadtree splitting. In this case, the encoder has to calculate the RD cost of the six division modes sequentially, causing relatively high encoding complexity.
Этот вариант осуществления настоящего изобретения предлагает первое заданное условие разделения для ограничения режим разделения, доступного для первого узла. Первое заданное условие разделения является таким же, как первое заданное условие разделения, описанное в варианте осуществления, показанном на фиг.6. Детали не описаны здесь еще раз.This embodiment of the present invention proposes a first predetermined split condition to limit the split mode available to the first node. The first predetermined separation condition is the same as the first predetermined separation condition described in the embodiment shown in FIG. The details are not described here again.
Количество режимов разделения, содержащиеся в наборе кандидатов режима разделения, соответствующий первому узлу, ограниченно первым заданным условием разделения. Таким образом, устройству кодирования не нужно вычислять RD стоимость шести режимов разделения для первого узла в большинстве случаев, уменьшая сложность кодирования.The number of partition modes contained in the partition mode candidate set corresponding to the first node is limited by the first given partition condition. Thus, the encoder does not need to calculate the RD cost of the six division modes for the first node in most cases, reducing the encoding complexity.
S803. Если набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя дополнительное разделение, то устройство кодирования кодирует CU, соответствующий первому узлу, для получения блока кодирования битового потока, соответствующий CU.S803. If the split mode candidate set corresponding to the first node does not include an additional split, then the encoder encodes the CU corresponding to the first node to obtain a bitstream coding block corresponding to the CU.
Если набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя никакого дополнительного разделения, то это указывает, что первый узел является листовым узлом кодового дерева второго уровня, и первый узел соответствует одному CU. Устройство кодирования кодирует CU, соответствующий первому узлу, чтобы получить блок кодирования битового потока, соответствующий CU.If the split mode candidate set corresponding to the first node does not include any additional split, then this indicates that the first node is a leaf node of the second level code tree and the first node corresponds to one CU. The encoder encodes the CU corresponding to the first node to obtain a bitstream encoding block corresponding to the CU.
В частности, CU кодирование включает в себя процедуры, такие как предсказание (prediction), преобразование (transform), квантование (quantization) и энтропийное кодирование (entropy coding). Для CU, процесс, в котором устройство кодирования кодирует CU для получения CU битового потока, соответствующего CU, главным образом, включает в себя следующие этапы:In particular, CU coding includes procedures such as prediction (prediction), transformation (transform), quantization (quantization) and entropy coding (entropy coding). For a CU, a process in which an encoder encodes a CU to obtain a CU of a bitstream corresponding to the CU mainly includes the following steps:
(1) Устройство кодирования выбирает режим внутреннего предсказания или внешнего предсказания на основании режима предсказания для получения предсказанного пикселя CU.(1) An encoding device selects an intra prediction mode or an inter prediction mode based on the prediction mode to obtain a predicted pixel CU.
(2). Устройство кодирования изменяет и квантует разностную величину между оригинальным пикселем CU и предсказанным пикселем CU для получения коэффициента преобразования, и выполняет деквантование и обратное преобразование полученного коэффициента преобразования, чтобы получить восстановленный остаточный CU.(2). The encoding device changes and quantizes the difference between the original CU pixel and the predicted CU pixel to obtain a transform coefficient, and dequantizes and inversely transforms the obtained transform coefficient to obtain a reconstructed residual CU.
(3) После добавления предсказанного пиксела CU и восстановленного остаточного CU, устройство кодирования выполняет процесс фильтрации, чтобы получить восстановленный пиксель CU.(3) After adding the predicted CU pixel and the reconstructed residual CU, the encoding device performs a filtering process to obtain the reconstructed CU pixel.
(4) Устройство кодирования выполняет энтропийное кодирование информации, такое как режим предсказания и коэффициент преобразования CU, для получения CU битового потока.(4) An encoder performs entropy encoding of information such as a prediction mode and a transform coefficient of a CU to obtain a CU of a bitstream.
Подробное описание процесса, в котором устройство кодирования кодирует CU для получения CU битового потока, может быть изложено со ссылкой на используемый способ генерирования CU битового потока, и повторное изложение опущено.A detailed description of a process in which an encoder encodes a CU to obtain a bitstream CU may be set forth with reference to a method used to generate a bitstream CU, and rehashing is omitted.
S804. Если набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя никакое дополнительное разделение, то устройство кодирования вычисляет RD стоимость каждого режима разделения в наборе кандидатов режима разделения, соответствующий первому узлу.S804. If the split mode candidate set corresponding to the first node does not include any additional split, then the encoder calculates an RD cost of each split mode in the split mode candidate set corresponding to the first node.
Для набора кандидатов режима разделения в наборе кандидатов режима разделения, соответствующий первому узлу, устройство кодирования делит первый узел в этом режиме разделения и получает все CUs, полученные после того, как первый узел разделен в этом режиме разделения. Устройство кодирования вычисляет стоимость RD каждого CU, и определяет сумму стоимостей RD всех CUs в качестве стоимости RD этого режима разделения.For the split mode candidate set in the split mode candidate set corresponding to the first node, the encoder divides the first node in this split mode and obtains all CUs obtained after the first node is split in this split mode. The encoder calculates the RD cost of each CU, and determines the sum of the RD costs of all CUs as the RD cost of this split mode.
В качестве варианта, для любого CU, RD стоимость CU равна взвешенной сумме суммы квадратов ошибок (Sum of Squared Errors, SSE) искажения восстановления пикселей, содержащиеся в CU, и расчетное значение количества битов в битовом потоке, соответствующих CU.Alternatively, for any CU, the RD cost of the CU is equal to the weighted sum of the Sum of Squared Errors (SSE) of the pixel reconstruction distortion contained in the CU and the calculated value of the number of bits in the bitstream corresponding to the CU.
S805. Устройство кодирования определяет режим разделения, соответствующий наименьшей стоимости искажения скорости в качестве целевого режима разделения, соответствующего первому узлу.S805. The encoder determines the division mode corresponding to the least rate distortion cost as the target division mode corresponding to the first node.
S806. Устройство кодирования делит первый узел в целевом режиме разделения, соответствующий первому узлу.S806. The encoder divides the first node in the target split mode corresponding to the first node.
После разделения первого узла в целевом режиме разделения, соответствующий первому узлу, устройство кодирования последовательно выполняет S802 - S806 на каждом дочернем узле первого узла, пока не будут получены все листовые узлы кодового дерева второго уровня.After splitting the first node in the split target mode corresponding to the first node, the encoder sequentially executes S802 to S806 on each child node of the first node until all leaf nodes of the second level code tree are obtained.
Каждый листовой узел кодового дерева второго уровня соответствует одному CU. После получения всех листовых узлов кодового дерева второго уровня, устройство кодирования может получить CU, соответствующего каждому листовому узлу кодового дерева второго уровня. Это может быть известно из S803, что устройство кодирования может кодировать CU для получения CU битового потока, соответствующий CU. Таким образом, устройство кодирования может получить, по меньшей мере, один CU битового потока. Таким образом, устройство кодирования может получить CTU битового потока на основе информации, по меньшей мере, одного CU битового потока, режима разделения узла, соответствующего кодового дерева первого уровня и информации о режиме разделения узла, соответствующий кодовому дереву второго уровня, чтобы генерировать битовый поток данных, включающий в себя изображения.Each leaf node of the second level code tree corresponds to one CU. After obtaining all leaf nodes of the second level code tree, the encoder may obtain a CU corresponding to each leaf node of the second level code tree. It may be known from S803 that the encoder may encode the CU to obtain the CU of the bitstream corresponding to the CU. Thus, the encoder can receive at least one bitstream CU. Thus, the encoder can obtain the CTU of the bitstream based on the information of the at least one bitstream CU, the node split mode, the corresponding first layer code tree, and the node split mode information corresponding to the second layer code tree, to generate a data bitstream. , which includes images.
Кроме того, устройство кодирования в этом варианте осуществления настоящего изобретения может дополнительно определить, в соответствии со вторым заданным условием разделения, набор кандидатов режима разделения, соответствующий первому узлу.In addition, the encoding apparatus in this embodiment of the present invention can further determine, in accordance with the second predetermined partitioning condition, a partitioning mode candidate set corresponding to the first node.
В данном случае, второе заданное условие разделения может включать в себя, по меньшей мере, одно из следующих заданных подусловий разделения:Here, the second predetermined split condition may include at least one of the following predetermined split subconditions:
Десятое заданное подусловие разделения: если глубина первого узла кодового дерева второго уровня меньше, чем максимальная заданная глубина кодового дерева второго уровня, то набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя разделение дерева квадрантов.Tenth predetermined split subcondition: If the depth of the first node of the second level code tree is less than the maximum predetermined depth of the second level code tree, then the split mode candidate set corresponding to the first node does not include splitting the quadtree.
Одиннадцатое заданное подусловие разделения: если отношение ширины к высоте области изображений, соответствующей первому узлу, больше или равно пятому заданному пороговому значению, то набор кандидатов режима разделения, соответствующий первому узлу, не включает в себя разделение дерева квадрантов.Eleventh predetermined splitting subcondition: if the width-to-height ratio of the image area corresponding to the first node is greater than or equal to the fifth predetermined threshold value, then the split mode candidate set corresponding to the first node does not include splitting the quadtree.
В этом варианте осуществления настоящего изобретения, разделение узла кодового дерева второго уровня ограничивается первым заданным условием. Таким образом, сложность разделения узла кодового дерева второго уровня значительно снижается, и сложность кодирования уменьшается.In this embodiment of the present invention, the division of the second level code tree node is limited by the first given condition. Thus, the complexity of splitting the second level code tree node is greatly reduced, and the encoding complexity is reduced.
Вариант осуществления настоящего изобретения обеспечивает устройство декодирования. Устройство декодирования выполнено с возможностью выполнять этапы, выполняемые устройством декодирования данных в указанном выше способе декодирования изображения. Устройство декодирования, предусмотренное этим вариантом осуществления настоящего изобретения, может включать в себя модули, соответствующие соответствующим этапам.An embodiment of the present invention provides a decoding device. The decoding device is configured to perform the steps performed by the data decoding device in the above image decoding method. The decoding apparatus provided by this embodiment of the present invention may include modules corresponding to the respective steps.
В этом варианте осуществления настоящего изобретения разделение функциональных модулей устройства декодирования может быть выполнено в соответствии с примером в предшествующем способе. Например, разделение функциональных модулей может быть выполнено в соответствии с функциями, или две или более функций могут быть объединены в один модуль обработки. Встроенный модуль может быть реализован в виде аппаратных средств или может быть реализован в виде функционального модуля программного обеспечения. В этом варианте осуществления настоящего изобретения, деление модулей является примером и является лишь логической функцией разделения, и может быть иным подразделением в фактической реализации.In this embodiment of the present invention, the division of functional modules of the decoding apparatus can be performed according to the example in the previous method. For example, separation of functional modules may be performed according to functions, or two or more functions may be combined into one processing module. An embedded module may be implemented in hardware or may be implemented as a functional software module. In this embodiment of the present invention, the division of modules is an example and is only a logical division function, and may be a different division in the actual implementation.
Когда разделение функциональных модулей выполняется в соответствии с функциями, фиг. 9 представляет собой возможную структурную схему оконечного устройства в предшествующем варианте осуществления. Как показано на фиг. 9, устройство декодирования включает в себя модуль 900 получения, модуль 901 синтаксического анализа и модуль 910 декодирования и восстановления. Модуль 900 получения выполнен с возможностью поддерживать устройство декодирования при выполнении S600, S700 и/или тому подобное в вышеприведенных вариантах осуществления, и/или выполнено с возможностью выполнять другой процесс технологии, описанной в данном документе. Модуль 901 синтаксического анализа выполнен с возможностью поддерживать устройство декодирования при выполнении S601, S602, S603, S701, S702, S703 и/или тому подобное в предшествующих вариантах осуществления, и/или выполнен с возможностью выполнять другой процесс технологии, описанной в этом документе. Модуль 910 декодирования и восстановления выполнен с возможностью поддерживать устройство декодирования при выполнении S604, S704 и/или тому подобное в предшествующих вариантах осуществления, и/или выполнен с возможностью выполнять другой процесс технологии, описанный в данном документе. Все содержание, относящееся к приведенным выше этапам вариантов осуществления способа, может быть приведено в описании функций соответствующих функциональных модулей, и детали не описаны здесь еще раз. Конечно, устройство декодирования, предусмотренное настоящим вариантом осуществления настоящего изобретения, включает в себя, но не ограничиваются приведенными выше модулями. Например, устройство декодирования может дополнительно включать в себя модуль 911 хранения. Модуль 911 хранения может быть выполнен с возможностью хранить программный код и данные устройства декодирования.When the separation of functional modules is performed according to functions, FIG. 9 is a possible block diagram of a terminal device in the previous embodiment. As shown in FIG. 9, the decoding apparatus includes an
Когда используют интегрированный блок, модуль 901 синтаксического анализа и модуль 910 декодирования и восстановления в этом варианте осуществления настоящего изобретения, может быть процессором 57 на фиг. 5, модуль 900 получения может быть RF схемой 50 на фиг. 5 и антенной, соединенной с RF схемой 50, и модуль 911 хранения данных может быть памятью 51 на фиг. 5.When an integrated block is used, the
При работе устройства декодирования, устройство декодирования выполняет способ декодирования данных изображения в варианте осуществления, показанном на фиг. 6 или фиг. 7. Для описания конкретного способа декодирования данных изображения может быть сделана ссылка на соответствующее описание в предшествующем варианте осуществления, показанном на фиг. 6 или фиг. 7. Подробности не описаны здесь еще раз.When the decoding apparatus is operated, the decoding apparatus executes the image data decoding method in the embodiment shown in FIG. 6 or FIG. 7. For a description of a specific image data decoding method, reference may be made to the corresponding description in the foregoing embodiment shown in FIG. 6 or FIG. 7. Details are not described here again.
Еще один вариант осуществления настоящего изобретения дополнительно обеспечивает машиночитаемый носитель данных. Машиночитаемый носитель данных включает в себя одну или несколько групп программного кода, а также одну или несколько программ, включающие в себя инструкцию. Когда процессор в устройстве декодирования выполняет программный код, устройство декодирования выполняет способ декодирования данных изображения, показанного на фиг. 6 или фиг. 7.Yet another embodiment of the present invention further provides a computer-readable storage medium. The computer-readable storage medium includes one or more groups of program code, as well as one or more programs, including instructions. When the processor in the decoding apparatus executes the program code, the decoding apparatus executes the method for decoding the image data shown in FIG. 6 or FIG. 7.
Еще один вариант осуществления настоящего изобретения дополнительно содержит компьютерный программный продукт. Компьютерный программный продукт включает в себя исполняемые компьютером инструкции, и компьютер исполняемые инструкции хранят на машиночитаемом носителе данных. Когда, по меньшей мере, один процессор устройства декодирования может считывать исполняемую инструкцию из машиночитаемого носителя данных, по меньшей мере, один процессор выполняет исполняемую компьютером инструкцию, таким образом, устройство декодирования выполняет этапы устройства декодирования в способе декодирования данных изображения, показанный на фиг. 6 или фиг. 7.Another embodiment of the present invention further comprises a computer program product. The computer program product includes computer-executable instructions, and the computer-executable instructions are stored on a computer-readable storage medium. When at least one processor of the decoding device can read an executable instruction from the computer-readable storage medium, the at least one processor executes the computer-executable instruction, thus the decoding device performs the steps of the decoding device in the image data decoding method shown in FIG. 6 or FIG. 7.
Вариант осуществления настоящего изобретения обеспечивает устройство кодирования. Устройство кодирования выполнено с возможностью выполнять операции, выполняемые устройством кодирования в описанном ранее способе декодирования изображения. В данном варианте осуществления настоящего изобретения предоставлено устройство кодирования, которое может включать в себя модули, соответствующие соответствующим этапам.An embodiment of the present invention provides an encoding device. The encoding device is configured to perform operations performed by the encoding device in the previously described image decoding method. In this embodiment of the present invention, an encoding device is provided that may include modules corresponding to the respective steps.
В этом варианте осуществления настоящего изобретения, разделение функциональных модулей может быть выполнено на устройстве кодирования в соответствии с примером в предшествующем способе. Например, разделение функциональных модулей может быть выполнено в соответствии с функциями, или две или более функций могут быть объединены в один модуль обработки. Встроенный модуль может быть реализован в виде аппаратных средств или может быть реализован в виде функционального модуля программного обеспечения. В этом варианте осуществления настоящего изобретения, деление модулей является примером и является лишь логической функцией разделения, и может быть иным подразделением в фактической реализации.In this embodiment of the present invention, the division of functional modules can be performed on the encoding device according to the example in the previous method. For example, separation of functional modules may be performed according to functions, or two or more functions may be combined into one processing module. An embedded module may be implemented in hardware or may be implemented as a functional software module. In this embodiment of the present invention, the division of modules is an example and is only a logical division function, and may be a different division in the actual implementation.
Когда разделение функциональных модулей выполняется в соответствии с функциями, фиг. 10 является возможной структурной схемой оконечного устройства в предшествующем варианте осуществления. Как показано на фиг. 10, устройство кодирования включает в себя модуль 1000 определения, модуль 1001 разделения, модуль 1010 кодирования и модуль 1011 вычисления. Модуль 1000 определения выполнен с возможностью поддерживать устройство кодирования при выполнении S800, S802, S805 и/или, как и в предшествующем варианте осуществления, и/или выполнить другой процесс в технологии, описанной в данном документе. Модуль 1001 разделения выполнен с возможностью поддерживать устройство кодирования при выполнении S801, S806, и/или тому подобное, в вышеупомянутом варианте осуществления, и/или выполнить другой процесс в технологии, описанной в данном документе. Модуль 1010 кодирования выполнен с возможностью поддерживать устройство кодирования при выполнении S803 в предшествующем варианте осуществления, и/или выполнить другой процесс в технологии, описанной в данном описании. Модуль 1011 вычисления выполнен с возможностью поддерживать устройство кодирования при выполнении S804 в предшествующем варианте осуществления, и/или выполнить другой процесс в технологии, описанной в данном описании. Все содержание, относящееся к этапам в вышеприведенном варианте осуществления способа может быть приведено в описании функций соответствующих функциональных модулей, и детали не описаны здесь еще раз. Конечно, устройство кодирования, предусмотренное настоящим вариантом осуществления настоящего изобретения, включает в себя, но не ограничиваются приведенными выше модулями. Например, устройство кодирования может дополнительно включать в себя модуль 1002 хранения, модуль 1003 отправки и модуль 1004 приема. Модуль 1002 хранения может быть выполнен с возможностью хранить программный код и данные устройства кодирования. Модуль 1003 отправки и модуль 1004 приема выполнены с возможностью осуществлять связь с другим устройством.When the separation of functional modules is performed according to functions, FIG. 10 is an exemplary block diagram of a terminal device in the foregoing embodiment. As shown in FIG. 10, the encoding device includes a
Когда используют интегрированный блок, модуль 1000 определения, модуль 1001 разделения, модуль 1010 кодирования и модуль 1011 вычисления в данном варианте осуществления настоящего изобретения, может быть процессором 57 на фиг. 5, модуль 1003 передачи и модуль 1004 приема может быть RF схемой 50 на фиг. 5 и антенной, соединенной со RF схемой 50, и модуль 1002 хранения данных может быть памятью 51 на фиг. 5.When an integrated unit is used, the
Когда устройство кодирования работает, то устройство кодирования выполняет способ кодирования данных изображения в варианте осуществления, показанном на фиг.8 Описание конкретного способа декодирования данных изображения может быть сделано со ссылкой на соответствующее описание в предшествующем варианте осуществления, показанном на фиг. 8. Подробности не описаны здесь еще раз.When the encoding device is running, the encoding device executes the image data encoding method in the embodiment shown in FIG. 8. Details are not described here again.
Еще один вариант осуществления настоящего изобретения дополнительно обеспечивает машиночитаемый носитель данных. Машиночитаемый носитель данных включает в себя одну или несколько групп программного кода, а также одна или несколько программ, включает в себя инструкцию. Когда процессор в устройстве кодирования выполняет программный код, устройство кодирования выполняет способ декодирования данных изображения, показанного на фиг. 8.Yet another embodiment of the present invention further provides a computer-readable storage medium. The computer-readable storage medium includes one or more groups of program code, as well as one or more programs, includes an instruction. When the processor in the encoding device executes the program code, the encoding device executes the method for decoding the image data shown in FIG. eight.
В другом варианте осуществления настоящего изобретения дополнительно представлен компьютерный программный продукт. Компьютерный программный продукт включает в себя исполняемые компьютером инструкции, и исполняемые компьютером инструкции хранят на машиночитаемом носителе данных. По меньшей мере, один процессор устройства кодирования может считывать исполняемую компьютером инструкцию из машиночитаемого носителя данных и, по меньшей мере, один процессор выполняет исполняемую компьютером инструкцию, таким образом, устройство кодирования выполняет этапы устройства кодирования в способе декодирования данных изображения, показанный на фиг. 8.In another embodiment of the present invention, a computer program product is further provided. The computer program product includes computer-executable instructions, and the computer-executable instructions are stored on a computer-readable storage medium. At least one processor of the encoder can read a computer-executable instruction from the computer-readable storage medium, and at least one processor executes the computer-executable instruction, thus the encoder performs the steps of the encoder in the image data decoding method shown in FIG. eight.
Все или некоторые из приведенных выше вариантов осуществления, могут быть реализованы с помощью программного обеспечения, аппаратных средств, встроенного программного обеспечения или любой их комбинации. Когда программа используется для реализации вариантов осуществления, все или некоторые из вариантов осуществления, могут быть реализованы в виде компьютерного программного продукта. Компьютерный программный продукт включает в себя одну или несколько инструкций компьютера. При загрузке компьютерной программы и выполнении на компьютере, все или некоторые из процедур или функций генерируются в соответствии с вариантами осуществления настоящего изобретения. Компьютер может быть компьютером общего назначения, компьютером специального назначения, компьютерной сетью или другим программируемым устройством. Инструкции компьютера могут быть сохранены на носителе данных, считываемых компьютером, или может быть переданы с машиночитаемого носителя данных на другой машиночитаемый носитель информации, например, компьютерные инструкции могут передаваться с веб-сайта, компьютера, сервера или центра обработки данных на другой сайт, компьютер, сервер или центр обработки данных по проводной (например, коаксиальный кабель, оптическое волокно или цифровой абонентской линии (DSL)) или беспроводной (например, связь инфракрасного диапазона, радиосвязь или связь микроволнового диапазона) связи. Машиночитаемый носитель данных может быть любой полезной средой, доступной для компьютера, или устройством хранения данных, таким как сервер или центр обработки данных, интегрирующий один или несколько используемых носителей. Полезная среда может представлять собой магнитный носитель (например, флоппи-диск, жесткий диск или магнитную ленту), оптический носитель (например, DVD), полупроводниковую среду (например, твердотельный накопитель Solid State Disk (SSD)) или тому подобное.All or some of the above embodiments may be implemented in software, hardware, firmware, or any combination thereof. When a program is used to implement the embodiments, all or some of the embodiments may be implemented as a computer program product. A computer program product includes one or more computer instructions. When a computer program is downloaded and executed on the computer, all or some of the procedures or functions are generated in accordance with embodiments of the present invention. The computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable device. Computer instructions may be stored on a computer-readable storage medium or may be transferred from a computer-readable storage medium to another computer-readable storage medium, for example, computer instructions may be transferred from a website, computer, server, or data center to another site, computer, a server or data center over a wired (eg, coaxial cable, optical fiber, or digital subscriber line (DSL)) or wireless (eg, infrared, radio, or microwave) connection. A computer-readable storage medium can be any useful medium available to a computer, or a data storage device such as a server or data center that integrates one or more of the media used. The payload medium may be a magnetic medium (eg, a floppy disk, hard disk, or magnetic tape), an optical medium (eg, a DVD), a semiconductor medium (eg, a Solid State Disk (SSD)) or the like.
С помощью описаний приведенных выше реализаций, специалист в данной области техники может четко понимать, что для удобства и краткости описания разделение указанных выше функциональных модулей используется просто в качестве примера для описания. В практическом применении указанные выше функции могут быть выделены различным функциональным модулям для реализации по мере необходимости, то есть, внутренняя структура устройства делится на различные функциональные модули, чтобы реализовать все или некоторые из описанных выше функций.With the help of the descriptions of the above implementations, one skilled in the art can clearly understand that for convenience and brevity of description, the division of the above functional modules is used merely as an example for description. In practical application, the above functions can be allocated to different functional modules to implement as needed, that is, the internal structure of the device is divided into different functional modules to implement all or some of the functions described above.
В некоторых вариантах осуществления, представленных в настоящем изобретении, следует понимать, что раскрытые устройства и способы могут быть реализованы другими способами. Так, например, описанное устройство варианта осуществления является просто примерами. Например, разделение модулей или блоков является просто логической функцией разделения, и может быть иным подразделением в фактической реализации. Например, множество модулей или компонентов могут быть объединены или интегрированы в другое устройство, или некоторые функции могут быть проигнорированы или не могут быть выполнены. Кроме того, отображаемые или обсуждаемые взаимные связи или прямые соединения, или связи могут быть реализованы с использованием некоторых интерфейсов. Косвенные связи или соединения между устройствами или блоками могут быть реализованы в электрических, механических или других формах.In some embodiments provided in the present invention, it should be understood that the disclosed devices and methods can be implemented in other ways. Thus, for example, the embodiment device described is merely examples. For example, the division of modules or blocks is simply a logical division function, and may be a different division in the actual implementation. For example, many modules or components may be combined or integrated into another device, or certain functions may be ignored or cannot be performed. In addition, the interconnections or direct connections or links that are displayed or discussed can be implemented using some interfaces. Indirect links or connections between devices or units may be implemented in electrical, mechanical or other forms.
Устройство, описанное в виде отдельных частей, может или не может быть физически разделено, а также компоненты отображаются в виде блоков может быть одним или более физическими блоками, другими словами, компоненты могут быть расположены в одном месте или могут быть распределены в разных местах. Некоторые или все блоки могут быть выбраны в зависимости от фактических потребностей для достижения целей решений вариантов осуществления.A device described as separate parts may or may not be physically separated, and components displayed as blocks may be one or more physical units, in other words, the components may be located in the same location or may be distributed in different locations. Some or all of the blocks may be selected depending on the actual needs to achieve the objectives of the decisions of the embodiments.
Кроме того, функциональные блоки в вариантах осуществления настоящего изобретения могут быть интегрированы в один блок обработки, или каждый блок может быть реализован в одиночку физически, или два или более блоков объединены в один блок. Интегрированный блок может быть реализован в виде аппаратных средств, или может быть реализован в виде программного функционального блока.In addition, the functional blocks in the embodiments of the present invention may be integrated into one processing unit, or each unit may be physically implemented alone, or two or more units may be combined into one unit. An integrated block may be implemented in hardware, or may be implemented in a software function block.
Когда интегрированный блок реализован в виде программного обеспечения функционального блока и продан или использован в качестве независимого продукта, интегрированный блок может храниться в машиночитаемом носителе данных. На основе такого понимания, технические решения вариантов осуществления настоящего изобретения, по существу, или частей предшествующего уровня техники, или все или некоторые из технических решений, могут быть реализованы в виде программного продукта. Программный продукт хранится на носителе данных и содержит несколько инструкций, таким образом, что устройство (которое может быть микрокомпьютером на одной микросхеме, микросхеме или тому подобное) или процессор (processor) выполняет все или некоторые из этапов способы, описанные в вариантах осуществления настоящего изобретения. Упомянутый носитель данных включает в себя различную медиа информацию, которая может хранить программный код, такие как флэш-накопитель USB, съемный жесткий диск, память только для чтения (Read-Only Memory, ROM), оперативное запоминающее устройство (Random Access Memory, RAM), магнитный диск и компакт-диск.When an integrated block is implemented as function block software and sold or used as a standalone product, the integrated block may be stored in a computer-readable storage medium. Based on such an understanding, the technical solutions of the embodiments of the present invention, essentially, or parts of the prior art, or all or some of the technical solutions, can be implemented as a software product. The software product is stored on a storage medium and contains several instructions, such that a device (which may be a microcomputer on a single chip, chip, or the like) or a processor (processor) performs all or some of the steps of the methods described in the embodiments of the present invention. Said storage medium includes various media information that can store program code, such as a USB flash drive, removable hard disk, Read-Only Memory (ROM), Random Access Memory (RAM) , magnetic disk and CD.
Вышеприведенные описания являются лишь конкретными реализациями настоящего изобретения, но не предназначены для ограничения объема защиты настоящего изобретения. Любое изменение или замена в пределах технического объема, раскрытого в настоящем изобретении, должны находиться в пределах объема защиты настоящего изобретения. Таким образом, объем защиты настоящего изобретения определен формулой изобретения.The above descriptions are only specific implementations of the present invention, but are not intended to limit the protection scope of the present invention. Any modification or replacement within the technical scope disclosed in the present invention should be within the protection scope of the present invention. Thus, the protection scope of the present invention is defined by the claims.
Claims (25)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2021125295A RU2773641C2 (en) | 2018-03-09 | Image data encoding method and device, image data decoding method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2021125295A RU2773641C2 (en) | 2018-03-09 | Image data encoding method and device, image data decoding method and device |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2020103339A Division RU2754870C2 (en) | 2017-06-28 | 2018-03-09 | Method and device for encoding image data, method and device for decoding image data |
Publications (3)
Publication Number | Publication Date |
---|---|
RU2021125295A RU2021125295A (en) | 2021-10-08 |
RU2021125295A3 RU2021125295A3 (en) | 2022-04-08 |
RU2773641C2 true RU2773641C2 (en) | 2022-06-06 |
Family
ID=
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102801976A (en) * | 2012-08-03 | 2012-11-28 | 山东省科学院情报研究所 | Inter-frame module selecting method based on three-dimensional wavelet video code |
WO2014078068A1 (en) * | 2012-11-13 | 2014-05-22 | Intel Corporation | Content adaptive transform coding for next generation video |
WO2014120369A1 (en) * | 2013-01-30 | 2014-08-07 | Intel Corporation | Content adaptive partitioning for prediction and coding for next generation video |
RU2565877C2 (en) * | 2010-07-06 | 2015-10-20 | Нокиа Корпорейшн | Method and apparatus for determining correlation between syntax element and codeword for variable length coding |
WO2016091161A1 (en) * | 2014-12-10 | 2016-06-16 | Mediatek Singapore Pte. Ltd. | Method of video coding using binary tree block partitioning |
WO2017088170A1 (en) * | 2015-11-27 | 2017-06-01 | Mediatek Inc. | Entropy coding the binary tree block partitioning structure |
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2565877C2 (en) * | 2010-07-06 | 2015-10-20 | Нокиа Корпорейшн | Method and apparatus for determining correlation between syntax element and codeword for variable length coding |
CN102801976A (en) * | 2012-08-03 | 2012-11-28 | 山东省科学院情报研究所 | Inter-frame module selecting method based on three-dimensional wavelet video code |
WO2014078068A1 (en) * | 2012-11-13 | 2014-05-22 | Intel Corporation | Content adaptive transform coding for next generation video |
WO2014120369A1 (en) * | 2013-01-30 | 2014-08-07 | Intel Corporation | Content adaptive partitioning for prediction and coding for next generation video |
WO2016091161A1 (en) * | 2014-12-10 | 2016-06-16 | Mediatek Singapore Pte. Ltd. | Method of video coding using binary tree block partitioning |
WO2017088170A1 (en) * | 2015-11-27 | 2017-06-01 | Mediatek Inc. | Entropy coding the binary tree block partitioning structure |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2754870C2 (en) | Method and device for encoding image data, method and device for decoding image data | |
WO2018001207A1 (en) | Coding and decoding method and apparatus | |
JP6541641B2 (en) | Video encoding method and apparatus for signaling SAO parameters, and video decoding method and apparatus | |
TWI667914B (en) | Picture data encoding and decoding method and apparatus | |
JP2015528250A (en) | Video encoding method and apparatus for signaling SAO parameters, and video decoding method and apparatus | |
US20230353747A1 (en) | Storage of evc decoder configuration information | |
CN110996122A (en) | Video frame transmission method and device, computer equipment and storage medium | |
KR20170044682A (en) | System and method for in-loop filtering in video coding | |
RU2773641C2 (en) | Image data encoding method and device, image data decoding method and device | |
WO2022136065A1 (en) | Compression of temporal data by using geometry-based point cloud compression | |
US20240015301A1 (en) | Evc decoding complexity metrics | |
US20240236362A9 (en) | Vertex motion vector predictor coding for vertex mesh (v-mesh) | |
BR112019027732B1 (en) | METHOD AND APPARATUS FOR CODING IMAGE DATA AND METHOD AND APPARATUS FOR DECODING IMAGE DATA | |
BR122024002650A2 (en) | METHOD AND APPARATUS FOR CODING IMAGE DATA AND METHOD AND APPARATUS FOR DECODING IMAGE DATA |