СПОСОБ И АППАРАТУРА ДЛЯ АФФИННОГО ВНЕШНЕГО ПРЕДСКАЗАНИЯ СУББЛОКОВ ЦВЕТНОСТИ

1. Способ получения вектора движения для цветности, используемый в аффинном внешнем предсказании блока текущей картинки, содержащего блок яркости и совместно расположенный блок цветности, причем способ содержит
определение коэффициентов масштабирования цветности в горизонтальном и вертикальном направлениях на основе информации формата цветности, при этом информация формата цветности указывает формат цветности текущей картинки, которой принадлежит блок текущей картинки;
определение набора (S) субблоков яркости блока яркости на основе значений коэффициентов масштабирования цветности; и
определение вектора движения для субблока цветности блока цветности на основе векторов движения одного или более субблоков яркости в наборе (S) субблоков яркости.
2. Способ по п. 1, в котором каждый из одного или нескольких субблоков яркости в наборе (S) представлен индексом субблока в горизонтальном направлении и индексом субблока в вертикальном направлении.
3. Способ по п. 1 или 2, в котором
когда SubWidthC и SubHeightC равны 1, набор субблоков (S) яркости содержит субблок яркости, индексированный как
0
S = (xSbIdx, ySbIdx);
когда по меньшей мере один из SubWidthC и SubHeightC не равен 1, набор субблоков (S) яркости содержит: первый субблок яркости, индексированный как
0
S =((xSbIdx >> (SubWidthC - 1) << (SubWidthC - 1)),
(ySbIdx >> (SubHeightC - 1) << (SubHeightC - 1))),
и второй субблок яркости, индексированный как
1
S=((xSbIdx >> (SubWidthC - 1) << (SubWidthC - 1)) + (SubWidthC - 1),
(ySbIdx >> (SubHeightC - 1) << (SubHeightC - 1)) + (SubHeightC - 1)),
где SubWidthC и SubHeightC представляют коэффициенты масштабирования цветности в горизонтальном и вертикальном направлениях, соответственно;
xSbIdx и ySbIdx представляют индекс субблока в горизонтальном направлении и индекс субблока в вертикальном направлении, соответственно, для субблока яркости в наборе (S);
“<<” представляет собой арифметический сдвиг влево;
“>>” представляет собой арифметический сдвиг вправо;
xSbIdx=0..numSbX - 1 и ySbIdx=0..numSbY - 1;
где numSbX указывает количество субблоков яркости в блоке яркости в горизонтальном направлении; и
numSbY указывает количество субблоков яркости в блоке яркости в вертикальном направлении.
4. Способ по п. 3, в котором количество субблоков цветности в блоке цветности в горизонтальном направлении и вертикальном направлении совпадает с количеством субблоков яркости в блоке яркости в горизонтальном и вертикальном направлениях, соответственно.
5. Способ по п. 1 или 2, в котором
когда и SubWidthC, и SubHeightC равны 1, набор субблоков (S) яркости содержит субблок яркости, индексированный как
0
,
S = (xCSbIdxyCSbIdx),
когда по меньшей мере один из SubWidthC и SubHeightC не равен 1, набор субблоков (S) яркости содержит
первый субблок яркости, индексированный как
0
S = ((xCSbIdx >> (SubWidthC - 1) << (SubWidthC - 1)),
(yCSbIdx >> (SubHeightC - 1) << (SubHeightC - 1))),
и второй субблок яркости, индексированный как
1
S = (xCSbIdx >> (SubWidthC - 1) << (SubWidthC - 1)) + (SubWidthC - 1),
(yCSbIdx >> (SubHeightC - 1) << (SubHeightC - 1)) + (SubHeightC - 1)),
где SubWidthC и SubHeightC представляют соответственно коэффициенты масштабирования цветности в горизонтальном и вертикальном направлениях;
xCSbIdx и yCSbIdx представляют индекс субблока в горизонтальном направлении и индекс субблока в вертикальном направлении, соответственно, для субблока яркости в наборе (S);
xCSbIdx=0..numCSbX - 1 и yCSbIdx=0..numCSbY - 1,
где numCSbX указывает количество субблоков цветности в горизонтальном направлении;
numCSbY указывает количество субблоков цветности в вертикальном направлении.
6. Способ по п. 5, в котором размер каждого из субблоков цветности такой же, как размер каждого из субблоков яркости.
7. Способ по п. 5, в котором
количество субблоков цветности в блоке цветности в горизонтальном направлении зависит от количества субблоков яркости в блоке яркости по горизонтали и значения коэффициента масштабирования цветности в горизонтальном направлении; и
количество субблоков цветности в блоке цветности в вертикальном направлении зависит от количества субблоков яркости в блоке яркости в вертикальном направлении и значения коэффициента масштабирования цветности в вертикальном направлении.
8. Способ по любому из предшествующих пунктов, в котором для субблока цветности, индексированного индексом xSbIdxL субблока в горизонтальном направлении и индексом ySbIdxL субблока в вертикальном направлении, набор субблоков (S) яркости содержит один или несколько субблоков, индексированных как
0
S = (xSbIdxL, ySbIdxL),
1
S = (xSbIdxL, ySbIdxL + (SubHeightC-1)),
2
S = (xSbIdxL+ (SubWidthC-1), ySbIdxL), или
3
S = (xSbIdxL+ (SubWidthC-1),
ySbIdxL + (SubHeightC-1)),
0
где индекс S субблока яркости представлен индексомxSbIdxL субблока в горизонтальном направлении и индексом ySbIdxL субблока в вертикальном направлении;
1
индекс S блока яркости представлениндексом субблока в горизонтальном направлении xSbIdxL и индексом субблока в вертикальном направлении ySbIdxL + (SubHeightC-1);
2
индекс S блока яркости представлениндексом субблока в горизонтальном направлении xSbIdxL + (SubWidthC-1) и индексом субблока в вертикальном направлении ySbIdxL; и
3
индекс S блока яркости представлениндексом субблока в горизонтальном направлении xSbIdxL + (SubWidthC-1) и индексом субблока в вертикальном направлении ySbIdxL + (SubHeightC-1).
9. Способ по любому из предшествующих пунктов, в котором набор субблоков (S) яркости содержит
первый субблок яркости, индексированный как
0
S = (xSbIdxL, ySbIdxL),
и второй субблок яркости, индексированный как
1
S = (xSbIdxL + (SubWidthC-1),
ySbIdxL + (SubHeightC-1)),
0
при этом позиция S блока яркостипредставлена индексом xSbIdxL субблока в горизонтальном направлении и индексом ySbIdxL субблока в вертикальном направлении;
1
позиция S блока яркости представленаиндексом субблока в горизонтальном направлении xSbIdxL + (SubWidthC-1) и индексом субблока в вертикальном направлении ySbIdxL + (SubHeightC-1).
10. Способ по любому из предшествующих пунктов, в котором
когда форматом цветности является 4:4:4, набор (S) содержит один субблок яркости, совмещенный с субблоком цветности;
когда форматом цветности является 4:2:2, набор (S) содержит два субблока яркости, горизонтально смежные друг с другом;
когда форматом цветности является 4:2:0, набор (S) содержит два субблока яркости, которые диагональны.
11. Способ по любому из предшествующих пунктов, в котором, когда имеется более одного субблока яркости в наборе (S), упомянутое определение вектора движения для субблока цветности на основе вектора движения одного или нескольких субблоков яркости в наборе (S) субблоков яркости содержит
усреднение векторов движения субблоков яркости в наборе S, чтобы сгенерировать усредненный вектор движения яркости;
получение вектора движения для субблока цветности на основе усредненного вектора движения яркости.
12. Способ по п. 11, в котором усреднение векторов движения субблоков яркости в наборе S содержит одно или несколько из усреднения горизонтальной составляющей векторов движения субблоков яркости в наборе S; усреднения вертикальной составляющей векторов движения субблоков яркости в наборе S.
13. Способ по п. 11 или 12, в котором усреднение векторов движения субблоков яркости в наборе S для генерации усредненного вектора движения яркости содержит
mvAvgLX = ,
когда mvAvgLX[0] больше или равно 0, mvAvgLX[0] = ( mvAvgLX[0] + (N>>1) - 1) >> log2(N), иначе
mvAvgLX[0] = -( (-mvAvgLX[0] + (N>>1) - 1) >> log2(N) ),
когда mvAvgLX[1] больше или равно 0, mvAvgLX[1] = ( mvAvgLX[1] + (N>>1) - 1) >> log2(N), иначе
mvAvgLX[1] = -( (-mvAvgLX[1] + (N>>1) - 1) >> log2(N) ),
где mvAvgLX - результирующий вектор движения усреднения;
mvAvgLX[0] - горизонтальная составляющая результирующего вектора mvAvgLX движения,
mvAvgLX[1] - вертикальная составляющая результирующего вектора mvAvgLX движения;
i
и  горизонтальный и вертикальный индексы субблока S в наборе субблоков (S) яркости в массиве векторов движения,
вектор движения субблока яркости с индексами  и ;
N - количество элементов в наборе (S) субблока яркости;
log2(N) - представляет собой логарифм N c основанием 2 и является степенью, в которую возводится число 2 для получения значения N;
“>>”  - это арифметический сдвиг вправо.
14. Способ по любому из пп. 11-13, в котором усреднение векторов движения субблоков яркости в наборе S содержит
mvAvgLX = mvLX[ ( xSbIdx  >>  ( SubWidthC - 1 )  <<  ( SubWidthC - 1 ) ) ][ (ySbIdx  >>  ( SubHeightC - 1 )  <<  ( SubHeightC - 1 ) ) ] +mvLX[ ( xSbIdx  >>  (SubWidthC - 1 )  <<  ( SubWidthC - 1) ) + ( SubWidthC - 1 ) ][ ( ySbIdx  >>  ( SubHeightC - 1 )  <<  ( SubHeightC - 1 ) ) + ( SubHeightC - 1 )],
если mvAvgLX[0] >= 0, то
mvAvgLX[0] =( mvAvgLX[0] + 1 -( mvAvgLX[0] >= 0 ) ) >> 1,
если mvAvgLX[1] >= 0, то
mvAvgLX[1] =( mvAvgLX[1] + 1 -( mvAvgLX[1] >= 0 ) ) >> 1,
где mvAvgLX[0] - горизонтальная составляющая усредненного вектора движения mvAvgLX;
mvAvgLX[1] - вертикальная составляющая усредненного вектора движения mvAvgLX; где SubWidthC и SubHeightC представляют коэффициенты масштабирования цветности в горизонтальном и вертикальном направлениях соответственно;
xSbIdx и ySbIdx представляют индекс субблока в горизонтальном направлении и индекс субблока в вертикальном направлении, соответственно, для субблока яркости в наборе (S);
“<<” - это арифметический сдвиг влево;
“>>” - арифметический сдвиг вправо.
15. Способ по любому из предшествующих пунктов, в котором упомянутое определение коэффициентов масштабирования цветности в горизонтальном и вертикальном направлениях на основе информации формата цветности содержит: определение коэффициентов масштабирования цветности в горизонтальном и вертикальном направлениях на основе сопоставления между информацией формата цветности и парой коэффициентов масштабирования цветности в горизонтальном и вертикальном направлениях.
16. Способ по любому из предшествующих пунктов, дополнительно содержащий генерирование предсказания субблока цветности на основе упомянутого определенного вектора движения.
17. Способ по любому из предыдущих пунктов, в котором формат цветности содержит один из формата YUV 4:2:2, формата YUV 4:2:0 или формата YUV 4:4:4.
18. Способ по любому из пп. 1-17, реализуемый устройством кодирования.
19. Способ по любому из пп. 1-17, реализуемый устройством декодирования.
20. Кодер (20), содержащий схему обработки для выполнения способа по любому из пп. 1-18.
21. Декодер (30), содержащий схему обработки для выполнения способа по любому из пп. 1-17 и 19.
22. Компьютерный программный продукт, содержащий программный код для выполнения способа по любому из пп. 1-19.
23. Декодер, содержащий один или более процессоров; энергонезависимый машиночитаемый носитель данных, связанный с процессорами и хранящий программу для исполнения процессорами, причем программа, когда исполняется процессорами, конфигурирует декодер для выполнения способа по любому из пп.1-17 и 19.
24. Кодер, содержащий один или более процессоров; энергонезависимый машиночитаемый носитель данных, связанный с процессорами и хранящий программу для исполнения процессорами, причем программа, когда исполняется процессорами, конфигурирует декодер для выполнения способа по любому из пп. 1-18.
25. Энергонезависимый машиночитаемый носитель данных, несущий программный код, который при исполнении компьютерным устройством заставляет компьютерное устройство выполнять способ по любому из предшествующих пунктов.
26. Битовый поток для видеосигнала путем включения множества элементов синтаксиса, при этом множество элементов синтаксиса содержит первый флаг, и способ по любому из предшествующих пунктов выполняется на основе значения первого флага.
27. Устройство для аффинного внешнего предсказания блока текущей картинки, содержащего совместно расположенные блоки яркости и цветности, причем устройство содержит модуль определения, выполненный с возможностью определять коэффициенты масштабирования цветности в горизонтальном и вертикальном направлениях на основе информации формата цветности, при этом информация формата цветности указывает формат цветности текущей картинки, которой принадлежит блок текущей картинки, и определять набор (S) субблоков яркости упомянутого блока яркости на основе значений коэффициентов масштабирования цветности; модуль вывода вектора движения, выполненный с возможностью определять вектор движения для субблока цветности блока цветности на основе векторов движения одного или более субблоков яркости в наборе (S) субблоков яркости.
28. Устройство по п. 27, при этом каждый из одного или более субблоков яркости в наборе (S) представлен индексом субблока в горизонтальном направлении и индексом субблока в вертикальном направлении.
29. Устройство по п. 27 или 28, причем
когда SubWidthC и SubHeightC равны 1, набор субблоков (S) яркости содержит субблок яркости, индексированный как
0
,
S = (xSbIdxySbIdx),
когда по меньшей мере один из SubWidthC и SubHeightC не равен 1, набор субблоков (S) яркости содержит
первый субблок яркости, индексированный как
0
S = (( xSbIdx  >>  ( SubWidthC - 1 )  <<  ( SubWidthC - 1 ) ) ,
(ySbIdx  >>  ( SubHeightC - 1 )  <<  ( SubHeightC - 1 ) )),
и второй субблок яркости, индексированный как
1
S=((xSbIdx >> (SubWidthC - 1) << (SubWidthC - 1)) + (SubWidthC - 1),
(ySbIdx >> (SubHeightC - 1) << (SubHeightC - 1)) + (SubHeightC - 1)),
где SubWidthC и SubHeightC представляют коэффициенты масштабирования цветности в горизонтальном и вертикальном направлениях, соответственно;
xSbIdx и ySbIdx представляют индекс субблока в горизонтальном направлении и индекс субблока в вертикальном направлении, соответственно, для субблока яркости в наборе (S);
“<<” представляет собой арифметический сдвиг влево;
“>>” представляет собой арифметический сдвиг вправо;
xSbIdx=0..numSbX - 1 и ySbIdx=0..numSbY - 1;
где numSbX указывает количество субблоков яркости в блоке яркости в горизонтальном направлении;
numSbY указывает количество субблоков яркости в блоке яркости в вертикальном направлении.
30. Устройство по п.29, при этом количество субблоков цветности в блоке цветности в горизонтальном направлении и вертикальном направлении совпадает с количеством субблоков яркости в блоке яркости в горизонтальном и вертикальном направлениях, соответственно.
31. Устройство по п. 27 или 28, причем
когда и SubWidthC, и SubHeightC равны 1, набор субблоков (S) яркости включает субблок яркости, индексированный как
0
S = (xCSbIdx, yCSbIdx),
когда по меньшей мере один из SubWidthC и SubHeightC не равен 1, набор субблоков (S) яркости содержит
первый субблок яркости, индексированный как
0
S = ((xCSbIdx >> (SubWidthC - 1) << (SubWidthC - 1)),
(yCSbIdx >> (SubHeightC - 1) << (SubHeightC - 1))),
второй субблок яркости, индексированный как
1
S = (xCSbIdx >> (SubWidthC - 1) << (SubWidthC - 1)) + (SubWidthC - 1),
(yCSbIdx >> (SubHeightC - 1) << (SubHeightC - 1)) + (SubHeightC - 1)),
где SubWidthC и SubHeightC представляют соответственно коэффициенты масштабирования цветности в горизонтальном и вертикальном направлениях;
xCSbIdx и yCSbIdx представляют индекс субблока в горизонтальном направлении и индекс субблока в вертикальном направлении, соответственно, для субблока яркости в наборе (S);
xCSbIdx=0..numCSbX - 1 и yCSbIdx=0..numCSbY - 1;
где numCSbX указывает количество субблоков цветности в горизонтальном направлении; и numCSbY указывает количество субблоков цветности в вертикальном направлении.
32. Устройство по п. 31, причем размер каждого из субблоков цветности такой же, как размер каждого из субблоков яркости.
33. Устройство по п. 31, причем
количество субблоков цветности в блоке цветности в горизонтальном направлении зависит от количества субблоков яркости в блоке яркости по горизонтали и значения коэффициента масштабирования цветности в горизонтальном направлении;
количество субблоков цветности в блоке цветности в вертикальном направлении зависит от количества субблоков яркости в блоке яркости в вертикальном направлении и значения коэффициента масштабирования цветности в вертикальном направлении.
34. Устройство по любому из предшествующих пунктов, при этом для субблока цветности, индексированного индексом xSbIdxL субблока в горизонтальном направлении и индексом ySbIdxL субблока в вертикальном направлении, набор субблоков (S) яркости содержит один или несколько индексированных субблоков
0
S = (xSbIdxL, ySbIdxL),
1
S = (xSbIdxL, ySbIdxL + (SubHeightC-1)),
2
S = (xSbIdxL+ (SubWidthC-1), ySbIdxL),
3
S = (xSbIdxL+ (SubWidthC-1),
ySbIdxL + (SubHeightC-1));
0
где индекс S субблока яркости представлен индексом xSbIdxL субблока в горизонтальном направлении и индексом ySbIdxL субблока в вертикальном направлении;
1
индекс S блока яркостипредставлен индексом субблока в горизонтальном направлении xSbIdxL и индексом субблока в вертикальном направлении ySbIdxL + (SubHeightC-1);
2
индекс S блока яркости представлениндексом субблока в горизонтальном направлении xSbIdxL + (SubWidthC-1) и индексом субблока в вертикальном направлении ySbIdxL;
3
индекс S блока яркости представлениндексом субблока в горизонтальном направлении xSbIdxL + (SubWidthC-1) и индексом субблока в вертикальном направлении ySbIdxL + (SubHeightC-1).
35. Устройство по любому из предшествующих пунктов, при этом набор субблоков (S) яркости содержит
первый субблок яркости, индексированный как
0
S = (xSbIdxL, ySbIdxL),
и второй субблок яркости, индексированный как
1
S = (xSbIdxL + (SubWidthC-1),
ySbIdxL + (SubHeightC-1));
0
при этом позиция S блокаяркости представлена индексом xSbIdxL субблока в горизонтальном направлении и индексом ySbIdxL субблока в вертикальном направлении;
1
позиция S блока яркости представленаиндексом субблока в горизонтальном направлении xSbIdxL + (SubWidthC-1) и индексом субблока в вертикальном направлении ySbIdxL + (SubHeightC-1).
36. Устройство по любому из предшествующих пунктов, при этом
когда форматом цветности является 4:4:4, набор (S) содержит один субблок яркости, совмещенный с субблоком цветности;
когда форматом цветности является 4:2:2, набор (S) содержит два субблока яркости, горизонтально смежные друг с другом;
когда форматом цветности является 4:2:0 набор (S) содержит два субблока яркости, которые диагональны.
37. Устройство по любому из предшествующих пунктов, при этом, когда имеется более одного субблока яркости в наборе (S), модуль вывода вектора движения сконфигурирован для:
усреднения векторов движения субблоков яркости в наборе S, чтобы сгенерировать усредненный вектор движения яркости; и
получения вектора движения для субблока цветности на основе усредненного вектора движения яркости.
38. Устройство по п. 37, в котором модуль вывода вектора движения сконфигурирован для усреднения горизонтальной составляющей векторов движения субблоков яркости в наборе S; или усреднения вертикальной составляющей векторов движения субблоков яркости в наборе S.
39. Устройство по п. 37 или 38, в котором модуль вывода вектора движения сконфигурирован для усреднения векторов движения субблоков яркости в наборе S для генерирования усредненного вектора движения яркости следующим образом:
mvAvgLX = ,
когда mvAvgLX[0] больше или равно 0, mvAvgLX[0] = ( mvAvgLX[0] + (N>>1) - 1) >> log2(N), иначе
mvAvgLX[0] = - ( (-mvAvgLX[0] + (N>>1) - 1) >> log2(N) );
когда mvAvgLX[1] больше или равно 0, mvAvgLX[1] = ( mvAvgLX[1] + (N>>1) - 1) >> log2(N), иначе
mvAvgLX[1] = -( (-mvAvgLX[1] + (N>>1) - 1) >> log2(N) ),
где mvAvgLX - результирующий вектор движения усреднения;
mvAvgLX[0] - горизонтальная составляющая результирующего вектора mvAvgLX движения, а mvAvgLX [1] - вертикальная составляющая результирующего вектора mvAvgLX движения;
i
и  горизонтальные и вертикальные индексы субблока S в наборе субблоков (S) яркости в массиве векторов движения,
- вектор движения субблока яркости с индексами  и , N - количество элементов в наборе (S) субблоков яркости, log2(N) представляет собой логарифм N по основанию 2 и представляет собой степень, в которую должно быть возведено число 2 для получения значения N,
“>>” представляет собой арифметический сдвиг вправо.
40. Устройство по любому из пп. 37-39, в котором модуль вывода вектора движения сконфигурирован для усреднения векторов движения субблоков яркости в наборе S для генерирования усредненного вектора движения яркости следующим образом:
mvAvgLX = mvLX[ ( xSbIdx  >>  ( SubWidthC - 1 )  <<  ( SubWidthC - 1 ) ) ][ (ySbIdx  >>  ( SubHeightC - 1 )  <<  ( SubHeightC - 1 ) ) ] +mvLX[ ( xSbIdx  >>  (SubWidthC - 1 )  <<  ( SubWidthC - 1) ) + ( SubWidthC - 1 ) ][ ( ySbIdx  >>  ( SubHeightC - 1 )  <<  ( SubHeightC - 1 ) ) + ( SubHeightC - 1 ) ],
если mvAvgLX[0] >= 0, тогда
mvAvgLX[0] =( mvAvgLX[0] + 1 -( mvAvgLX[0] >= 0 ) ) >> 1,
если mvAvgLX[1] >= 0, тогда
mvAvgLX[1] =( mvAvgLX[1] + 1 -( mvAvgLX[1] >= 0 ) ) >> 1,
где mvAvgLX[0] - горизонтальная составляющая усредненного вектора движения mvAvgLX, mvAvgLX[1] - вертикальная составляющая усредненного вектора движения mvAvgLX; где SubWidthC и SubHeightC представляют коэффициенты масштабирования цветности в горизонтальном и вертикальном направлениях, соответственно; xSbIdx и ySbIdx представляют индекс субблока в горизонтальном направлении и индекс субблока в вертикальном направлении, соответственно, для субблока яркости в наборе (S),
“<<” - это арифметический сдвиг влево,
“>>” - арифметический сдвиг вправо.
41. Устройство по любому из предшествующих пунктов, в котором модуль определения сконфигурирован для определения коэффициентов масштабирования цветности в горизонтальном и вертикальном направлениях на основе сопоставления между информацией формата цветности и парой коэффициентов масштабирования цветности в горизонтальном и вертикальном направлениях.
42. Устройство по любому из предшествующих пунктов, дополнительно содержащее модуль компенсации движения, сконфигурированный для генерирования предсказания субблока цветности на основании определенного вектора движения.
43. Устройство по любому из предыдущих пунктов, при этом формат цветности содержит один из формата YUV 4:2:2, формата YUV 4:2:0 и формата YUV 4:4:4.