Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

(по цифровому вещанию) Dvorkovich_V_Cifrovye_videoinformacionnye_sistemy

.pdf
Скачиваний:
253
Добавлен:
15.03.2016
Размер:
23.26 Mб
Скачать

Глава 12. Методы анализа и компенсации движения

уменьшение относительной площади каждого из движущихся объектов. Если объект имеет сложную структуру и его площадь мала, вклад в корреляционный сигнал может оказаться недостаточным для правильного вычисления вектора движения.

Для улучшения анализа движения нескольких объектов было предложено использовать предварительное нелинейное преобразование исходного изображения [36]. В частности, если движущийся объект имеет мелкие детали низкой контрастности (так называемую текстуру на изображении), вероятность правильного определения вектора движения улучшается при использовании следующего комплексного нелинейно-дифференциального преобразования:

F → g + ih,

(12.9)

где

g(x, y) = 12 (F + s( ∂F∂x )) ≡ 12 {F (x, y) + s [F (x + 1, y) − F (x − 1, y)]},

(12.10)

h(x, y) = 12 (F + s( ∂F∂y )) ≡ 12 {F (x, y) + s [F (x, y − 1) − F (x, y − 1)]}.

Функция s(Λ) определяется по знаку аргумента:

s(Λ) = 255,

Λ 0,

s(Λ) = 0,

Λ < 0.

На рис. 12.8 показаны 2 области размером 128×128 пикселов из соседних кадров (рис. 12.1), на которых происходит движение с разными скоростями — участка дерева с текстурой и заднего фона. После применения преобразования (12.9) изображение на рис. 12.8 имеет характерный вид, похожий на «отпечатки пальцев». Несмотря на то, что новое изображение «отпечатков пальцев» отличается от исходного, оно сохраняет информацию о положении объектов в рассматриваемой области и, как показывают эксперименты, улучшает вероятность определения векторов движения.

В стандартном методе фазовой корреляции на корреляционной поверхности присутствует только пик от движения заднего фона, а пик от движения дерева не превышает шумов (рис. 12.9а), тогда как при использовании преобразования (12.9) отчетливо наблюдаются оба пика (рис. 12.9б), дающих правильные значения векторов движения двух имеющихся объектов — участков с деревом и задним фоном.

12.1.8. Оптимизация поиска векторов движения

по стандарту MPEG-4 (метод быстрого поиска MVFAST)

Во второй модели оптимизации стандарта кодирования MPEG-4 описана методика быстрого анализа движения [4.37–4.41]. Эта методика сочетает высокое быстродействие и достаточно высокую эффективность поиска векторов движения объектов, смещение которых близко к плоскопараллельному с небольшой скоростью или с небольшим ускорением. В этой методике поиск вектора движения состоит из нескольких шагов.

1) Проверка нулевого вектора.

Большое количество макроблоков в видеопоследовательностях с небольшим движением имеют вектор движения, равный нулю. Такие макроблоки могут быть

12.1. Основные методы анализа движения

Рис. 12.8. Пример различных входных сигналов для области 128 × 128 точек, с помощью которых определялись вектора движения двумя методами фазовой корреляции: (а) — опорный кадр, (б) — текущий кадр

Рис. 12.9. Корреляционная поверхность без использования преобразования (12.9) — а, c преобразованием (12.9) — б

Глава 12. Методы анализа и компенсации движения

обнаружены на основе суммы абсолютных разностей (SAD) в соответствующих областях изображений. Поиск вектора будет прерван, если SAD, полученный в точке (0, 0) меньше, чем некоторое пороговое значение.

2) Определение активности движения.

При определении активности движения для данного макроблока (Current MB) используются вектора трех соседних макроблоков. Соответствующие макроблоки, вектора которых используются при поиске движения, показаны на рис. 12.10.

Пусть V = {V0, V1, V2, V3}, где V0 = (0, 0), Vi(i = 0) — вектор движения i-го соседнего макроблока (M Bi). Длина вектора Vi = (xi, yi) определяется как lvi = |xi| + |yi|. Пусть L = max {lvi} для всех Vi. Активность движения данного макроблока определяется следующим образом:

низкая активность движения, если L L1;

средняя активность движения, если L1 < L L2;

высокая активность движения, если L > L2,

где L1 и L2 — целые постоянные, например L1 = 1 и L2 = 2. Пример распределения векторов приведен на рис. 12.11. В данном случае lv1 = 2, lv2 = 1, lv3 = 6 и, следовательно, L = max {lv1, lv2, lv3} = 6.

Рис. 12.10. Соседние макроблоки, использующиеся для поиска движения: M B1, M B2 и M B3

Рис. 12.11. Пример распределения векторов движения соседних макроблоков

3) Центр поиска.

Выбор центра поиска зависит от активности движения для данного макроблока. Если активность движения низкая или средняя, то центр поиска совпадает с точкой (0,0) (остается первоначальным). В противном случае центр поиска перемещается на вектор из множества V (см. выше), для которого сумма абсолютных разностей (SAD) минимальна.

4) Стратегия поиска.

Чтобы получить вектор движения, поиск выполняется вокруг центра поиска. Используются две стратегии поиска, и их выбор зависит от активности движения. Если активность движения низкая или высокая, то выбирается модель поиска по «малому бриллианту» (SDS, small diamond search, рис. 12.12б). В противном случае выбирается модель поиска по «большому бриллианту» (LDS, large diamond search, рис. 12.12а).

12.1. Основные методы анализа движения

Рис. 12.12. Модели поиска по «большому бриллианту» (LDS, а) и «малому бриллианту» (SDS, б)

4а) Модель поиска SDS.

Шаг 1: Центр решетки малого бриллианта помещается в центр поиска, и подсчитывается SAD для всех его точек. Если у центральной точки SAD минимален, то центр представляет собой вектор движения; в противном случае осуществляется переход к шагу 2.

Шаг 2: Центр решетки малого бриллианта перемещается в точку, которой соответствует минимальный SAD, подсчитывается SAD для всех точек нового положения решетки. Этот шаг повторяется рекурсивно, пока центр решетки не совпадет с точкой минимального SAD.

4б) Модель поиска LDS.

Шаг 1: Центр решетки большого бриллианта помещается в центр поиска, и подсчитывается SAD для всех его точек. Если у центральной точки SAD минимален, то осуществляется переход к шагу 3; в противном случае происходит переход к шагу 2.

Шаг 2: Центр решетки большого бриллианта перемещается в точку, которой соответствует минимальный SAD, подсчитывается SAD для всех точек нового положения решетки. Этот шаг повторяется рекурсивно, пока центр решетки не совпадет с точкой минимального SAD. После этого выполняется шаг 3.

Шаг 3: Осуществляется переключение на модель поиска SDS.

Втабл. 12.1 суммируется методика выбора центра поиска и стратегии поиска

взависимости от активности движения.

Таблица 12.1. Выбор центра и стратегии поиска движения в зависимости от активности макроблока

Активность движения

Центр поиска

Стратегия поиска

 

 

 

Низкая

Первоначальный (0,0)

SDS

Средняя

Первоначальный (0,0)

LDS

 

 

 

Высокая

Центр соответствует вектору

SDS

из множества V с минимальной SAD

 

 

 

 

 

Описанная выше методика может быть усовершенствована приведенным ниже образом [4.42]. К множеству векторов V добавляется еще один вектор, равный

Глава 12. Методы анализа и компенсации движения

Рис. 12.13. Модели поиска крест (а), диагональ (б) и уточнение (в)

медианному значению трех векторов соседних макроблоков. Кроме того, добавляется еще одна стратегия поиска. Фактически стратегия LDS делится на две части — крест (cross) и диагональ (diagonal), стратегия SDS называется уточнением (refine) (см. рис. 12.13).

Переключение между стратегиями поиска происходит аналогично шагам, описанным выше. От модели «крест» происходит переключение к модели «диагональ», а затем к модели «уточнение».

Начальный выбор стратегии поиска модифицируется следующим образом. Модель «крест» выбирается, если

медианный вектор — нулевой;

хотя бы один из трех векторов соседних макроблоков «похож» на медиан-

ное значение (под похожестью двух векторов A = (Ax, Ay ) и B = (Bx, By) понимается выполнение условий |Ax − Bx| < 4 и |Ay − By | < 4);

похожи все три вектора соседних макроблоков.

Впротивном случае выбирается модель «уточнение».

Поиск движения также может прерываться, если найдена точка, для которой SAD меньше заданного порогового значения. Это может заметно повысить скорость поиска движения, но снизить его эффективность.

В[4.43] изложен надежный и достаточно быстрый алгоритм анализа движения деталей в динамических изображениях, обеспечивающий увеличение зоны поиска векторов движения и, вследствие этого, повышение качества воспроизведения быстро перемещающихся деталей. В качестве основного применения алгоритма предполагалось его использование в составе кодеров, использующих алгоритмы компрессии семейства MPEG. Этот алгоритм позволил за счет предварительного анализа характера изображения в макроблоке достичь ускорения по сравнению со стандартным алгоритмом полного перебора в 15–30 раз. Величина ускорения зависит от требований к точности компенсации движения, и уже при отличии от максимального качества компенсации движения — меньше, чем на 10%, составляет величину порядка 15 раз.

12.2. Повышение эффективности анализа движения по опорным точкам

Этот способ анализа векторов движения деталей в динамических изображениях включает следующие стадии:

преобразование последовательности кадров изображений в цифровую форму;

запоминание дискретных отсчетов яркости текущего и соседнего по времени (опорного) кадров;

разбиение текущего кадра на макроблоки и поиск вектора движения каждого из макроблоков текущего кадра относительно опорного кадра посредством минимизации по рассматриваемому множеству векторов движения контрольной суммы данного макроблока.

Контрольная сумма — это сумма норм попиксельной разности уровней в текущем и опорных кадрах, причем все множество пикселов рассматриваемого макроблока разбивается на участки, в каждом из которых выбирается только один пиксел, и контрольная сумма вычисляется лишь по выбранным пикселам. При этом упомянутые пикселы в каждом из участков выбираются таким образом, что их уровни в смежных участках наиболее отличаются друг от друга.

Дополнительно в этом способе для каждого текущего рассматриваемого значения вектора движения вычисление контрольной суммы по выбранным упомянутым пикселам производится в порядке убывания отклонения значения сигнала в каждом пикселе от среднего значения по всей совокупности упомянутых пикселов. Вычисление контрольной суммы прерывается в случае, когда она превышает минимальное значение, найденное среди всех уже рассмотренных векторов движения.

Ограничением этого способа является разбиение макроблока на несколько строго зафиксированных участков и выбор по заданному алгоритму характерного пиксела без учета структуры сигнала в остальных участках, что является лишь одним из возможных способов выборов опорных пикселов.

В [4.43] рассмотрен также второй способ выбора опорных пикселов макроблока с помощью использования порядковой статистики для всех пикселов макроблока, что также является лишь одним из возможных способов выборов опорных пикселов. Кроме того, поиск векторов движения производится по опорным пикселам макроблока только для исходного разрешения кадра, что ограничивает технический результат по уменьшению числа вычислительных операций.

При дальнейшем развитии этого нового способа анализа движения была поставлена задача сокращения вычислительных операций при более общем возможном выборе структуры опорных точек, характеризующих рельеф («скелет») значений макроблока, снижение вычислительной сложности метода, что позволяет уменьшить сложность вычисления векторов движения, повышение быстродействия кодирующих устройств и, вследствие этого, возможность производить анализ движения деталей динамических изображений в больших областях, сократив при этом объем сжатой информации и повысив качество воспроизведения быстродвижущихся деталей [4.44].

Этот способ поиска векторов движения деталей в динамических изображениях реализуется следующими действиями:

преобразование последовательности кадров изображений в цифровую форму;

запоминание дискретных отсчетов яркости текущего и опорного кадров;

Глава 12. Методы анализа и компенсации движения

разбиение текущего кадра на макроблоки;

поиск вектора движения каждого из макроблоков текущего кадра относительно опорного кадра посредством минимизации по рассматриваемому множеству векторов движения контрольной суммы данного макроблока, являющейся суммой норм попиксельной разности уровней в текущем и опорных кадрах;

выбор среди множества пикселов каждого макроблока небольшого числа пикселов, характеризующих рельеф значений макроблока;

вычисление упомянутой контрольной суммы лишь по выбранным опорным пикселам, при этом координаты выбранных пикселов в макроблоке определяют с использованием значений всех пикселов макроблока.

Кроме того, перед выбором опорных пикселов производят передискретизацию исходного и опорного кадров с уменьшением пространственного разрешения по вертикали и горизонтали в заданное число раз посредством применения фильтра к исходному и опорному кадрам. Далее для каждого получившегося макроблока меньшего размера производят выбор опорных пикселов и находят один или несколько наилучших векторов движения по отношению к опорному кадру меньшего разрешения посредством минимизации контрольной суммы с использованием выбранных опорных пикселов. Значение полученных одного или нескольких векторов движения увеличивают в соответствии с исходным разрешением кадра. В окрестностях одного или нескольких полученных векторов производят поиск вектора движения макроблока в кадре исходного разрешения с точностью до целых либо половинных значений пикселов посредством минимизации контрольной суммы с использованием пикселов макроблока исходного разрешения.

Дополниительно для выбора опорных пикселов производят переупорядочивание пикселов каждой из строк макроблока в порядке возрастания их значений и отбор нескольких равноотстоящих друг от друга пикселов в порядке возрастания получившихся номеров пикселов. Для отобранных таким образом

вмакроблоке пикселов производят переупорядочивание по столбцам в порядке возрастания их значений и выбор нескольких равноотстоящих друг от друга пикселов в порядке возрастания получившихся номеров пикселов. При этом для каждого из выбранных пикселов запоминают их координаты в исходном макроблоке.

Для выбора опорных пикселов в каждой из строк макроблока выбирают несколько первых пикселов в порядке убывания абсолютного отклонения значений пикселов от их среднего значения по строке. Среди выбранных таким образом пикселов

вкаждом из столбцов выбирают нескольких первых пикселов в порядке убывания абсолютного отклонения значений пикселов от их среднего значения по столбцу, при этом для каждого из выбранных пикселов запоминают их координаты в исходном макроблоке.

Для выбора опорных пикселов каждый макроблок также разбивают на несколько областей, в каждой из которых выбирают в качестве опорного только один пиксел, имеющий максимальное либо минимальное значение внутри данной области. При этом если в данной области выбран пиксел с максимальным значением, то в соседней с ним области выбирают пиксел с минимальным значением, и наоборот, причем для каждого из выбранных пикселов запоминают их координаты в исходном макроблоке.

12.2. Повышение эффективности анализа движения по опорным точкам

Рис. 12.14. Текущий — (а) и опорный — (б) кадры видеопоследовательности «Сад цветов»

Рис. 12.15. Увеличенное изображение одного макроблока из текущего кадра (а — помечен белой рамкой) и соответствующий ему участок изображения в опорном кадре (б — помечен черной рамкой)

И, наконец, для каждого текущего рассматриваемого значения вектора движения вычисление контрольной суммы с использованием выбранных опорных пикселов производят в порядке убывания отклонения значения сигнала в каждом пикселе от среднего значения по всей совокупности опорных пикселов. Дальнейшее вычисление контрольной суммы прерывают в случае, когда она превышает K-е минимальное значение контрольной суммы, найденной среди всех уже рассмотренных векторов движения.

Алгоритм анализа движения деталей в динамических изображениях можно проиллюстрировать на примере определения вектора смещения одного из макроблоков динамического изображения «Сад цветов» (рис. 12.14а — текущий, б — опорный кадры).

На рис. 12.15а приведена в увеличенном масштабе часть изображения текущего кадра с обведенным макроблоком, вектор движения которого определяется в зоне опорного кадра, изображенной на рис. 12.15б. Макроблок имеет размер 16 × 16 пикселов, зона поиска движения — 64 × 64 пиксела. На рис. 12.15б обозначено положение смещенного макроблока в опорном кадре.

В случае использования стандартного метода поиска вектора движения в указанной зоне поиска требуется вычислительная мощность в 3·492 = 7203 операции на каждый пиксел макроблока. Рельеф сигнала яркости макроблока изображен на рис. 12.16, а в табл. 12.2 приведены цифровые значения яркости пикселов этого макроблока.

Глава 12. Методы анализа и компенсации движения

Рис. 12.16. Рельеф сигнала яркости выбранного макроблока

Таблица 12.2. Уровни яркости пикселов в выбранном макроблоке

y\x

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

1

82

81

97

102

94

105

100

132

171

189

196

181

151

140

151

151

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

126

125

127

125

127

127

112

104

117

137

150

144

125

117

125

135

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

167

165

168

142

153

174

115

62

64

87

118

121

86

84

106

117

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

166

163

158

154

161

165

147

126

123

127

125

114

101

103

115

128

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

166

160

156

156

164

183

178

174

186

168

138

115

100

119

131

131

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

140

140

135

128

125

132

145

153

147

128

117

126

143

157

159

157

7

120

122

116

104

75

80

117

136

123

80

82

139

186

203

195

170

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

164

149

131

120

115

115

120

126

134

143

160

182

191

187

178

170

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

221

179

136

142

147

151

125

111

152

197

235

237

204

172

166

163

10

142

120

100

90

87

85

88

109

148

182

195

188

170

150

132

125

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

70

61

55

39

23

24

41

91

151

180

171

141

139

126

95

78

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

78

63

61

64

69

80

103

136

159

163

153

148

153

151

139

131

13

68

61

68

85

120

124

161

188

179

157

134

143

178

186

177

180

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

146

143

138

134

140

148

158

162

151

133

124

140

166

174

170

166

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

210

236

210

169

172

161

163

148

124

110

97

127

174

169

155

161

16

181

189

176

145

120

113

121

124

112

94

86

97

112

110

99

94

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В макроблоке выбирается несколько опорных пикселов, характеризующих рельеф (скелет) макроблока. Рассмотрим пример, когда число опорных пикселов равняется 16.

Для выбора опорных пикселов все пикселы макроблока переупорядочивают по строкам в порядке возрастания их значений (табл. 12.3). После переупорядочивания производят выбор пикселов с номерами столбцов x = {1, 6, 11, 16} (табл. 12.4).

12.2. Повышение эффективности анализа движения по опорным точкам

Таблица 12.3. Уровни яркости пикселов в выбранном макроблоке, переупорядоченные в строках в порядке возрастания их значений

y\x

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

1

81

82

94

97

100

102

105

132

140

151

151

151

171

181

189

196

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

104

112

117

117

125

125

125

125

126

127

127

127

135

137

144

150

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

62

64

84

86

87

106

115

117

118

121

142

153

165

167

168

174

4

101

103

114

115

123

125

126

127

128

147

154

158

161

163

165

166

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

100

115

119

131

131

138

156

156

160

164

166

168

174

178

183

186

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

117

125

126

128

128

132

135

140

140

143

145

147

153

157

157

159

7

75

80

80

82

104

116

117

120

122

123

136

139

170

186

195

203

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

115

115

120

120

126

131

134

143

149

160

164

170

178

182

187

191

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

111

125

136

142

147

151

152

163

166

172

179

197

204

221

235

237

10

85

87

88

90

100

109

120

125

132

142

148

150

170

182

188

195

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

23

24

39

41

55

61

70

78

91

95

126

139

141

151

171

180

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

61

63

64

69

78

80

103

131

136

139

148

151

153

153

159

163

13

61

68

68

85

120

124

134

143

157

161

177

178

179

180

186

188

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

124

133

134

138

140

140

143

146

148

151

158

162

166

166

170

174

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

97

110

124

127

148

155

161

161

163

169

169

172

174

210

210

236

16

86

94

94

97

99

110

112

112

113

120

121

124

145

176

181

189

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

После выбора столбцов производят переупорядочивание выбранных пикселов по столбцам в порядке возрастания значений (табл. 12.5). После переупорядочивания по столбцам производят конечный выбор опорных пикселов с номерами строк y = {1, 6, 11, 16} (табл. 12.6). При выборе опорных пикселов их координаты запоминают в исходном макроблоке, выбранные опорные пикселы обозначены подчеркиванием (табл. 12.2–12.5).

Для поиска вектора движения x y в способе рассматривают сумму

V = (V , V )

нормы разницы сигналов выбранных пикселов для двух макроблоков в текущем

и опорном кадрах SAD1 со сдвигом на вектор движения:

 

SAD 1 =

(x,y)−координаты

|F (x, y, t) − F (x − Vx, y − Vy , t −

t)|.

(12.11)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выбранных точек

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в соответствующих

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

участках макроблока

 

 

 

 

 

 

 

 

 

 

 

Таблица 12.4. Переупорядоченные уровни яркости пикселов

 

 

 

 

 

 

 

 

 

 

в выбранном макроблоке в выбранных столбцах

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x\y

1

 

2

3

4

5

 

6

7

8

9

10

11

12

13

14

15

16

 

 

1

81

 

104

62

101

100

 

117

75

115

111

85

23

61

61

124

97

86

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

102

 

125

106

125

138

 

132

116

131

151

109

61

80

124

140

155

110

 

 

3

151

 

127

142

154

166

 

145

136

164

179

148

126

148

177

158

169

121

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

196

 

150

174

166

186

 

159

203

191

237

195

180

163

188

174

236

189

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 12.5. Переупорядоченные уровни яркости пикселов в выбранном макроблоке в выбранных столбцах, переупорядоченные в столбцах в порядке возрастания значений

x\y

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

1

23

61

61

62

75

81

85

86

97

100

101

104

111

115

117

124

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

61

80

102

106

109

110

116

124

125

125

131

132

138

140

151

155

3

121

126

127

136

142

145

148

148

151

154

158

164

166

169

177

179

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

150

159

163

166

174

174

180

186

188

189

191

195

196

203

236

237