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

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

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

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

Таблица 12.6. Значения пикселов, выбранных в качестве опорных

x\y

1

2

3

4

1

23

81

101

124

2

61

110

131

155

 

 

 

 

 

3

121

145

158

179

 

 

 

 

 

4

150

174

191

237

В другом варианте выбора опорных пикселов из исходных пикселов макроблока (рис. 12.16) выбирают в каждой строке такие пикселы, которые имеют максимальное абсолютное отклонение своих значений от среднего значения уровня по строке (табл. 12.7). После этого выбирают в каждом сформированном столбце такие пикселы, которые имеют максимальное абсолютное отклонение своих значений от среднего значения уровня по столбцам (табл. 12.8). Данные выбранные пикселы используют в качестве опорных, их положения в исходном макроблоке показаны подчеркиванием (табл. 12.9).

Таблица 12.7. Значения пикселов в выбранных строках

x\y

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

1

82

112

168

165

119

157

75

115

221

85

24

163

85

166

210

86

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

81

144

174

166

186

157

186

115

111

182

23

64

68

170

110

176

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

189

104

64

103

115

159

195

187

235

188

171

63

68

124

97

181

4

196

150

62

101

100

117

203

191

237

195

180

61

61

174

236

189

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 12.8. Значения пикселов, выбранных в качестве опорных

x\y

1

2

3

4

1

75

210

221

24

2

186

68

64

23

 

 

 

 

 

3

68

64

63

235

 

 

 

 

 

4

237

62

61

61

Таблица 12.9. Положения выбранных опорных пикселов в исходном макроблоке (опорные пикселы обозначены подчеркиванием)

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

При поиске векторов движения длявыбора опорных пикселов необходимо выполнить порядка (16 · (16 + 1) · 16/2 + M · (16 + 1) · 16/2)/256 ≈ 10 обращений к одному пикселу макроблока, где M — число опорных пикселов (в данном случае M = 16), для поиска вектора движения с использованием SAD1 необходимо выполнить порядка 256M 3 · (2N + 1)2 операций. При окне поиска N > 10 количество операций, необходимых для поиска опорных пикселов, пренебрежимо мало по сравнению с числом операций, необходимых для вычисления SAD1 и поиска вектора движения. Поэтому достигается ускорение поиска векторов приблизительно в 256/M = 16 раз.

Эффективность этого способа поиска векторов движения иллюстрируется рисунках 12.17а–г. На рис. 12.17а показаны векторы движения, полученные стандартным эталонным алгоритмом с использованием всех пикселов макроблока. На рис. 12.17б, в приведены векторы движения, определенные в соответствии с описанными выше двумя вариантами обработки. Как видно из этих рисунков, векторы движения в большинстве случаев совпадают. Чтобы дать количественную оценку способа, рассмотрим результаты кодирования динамической последовательности кадров (табл. 12.10) в рамках стандарта MPEG-2 с использованием разработанного алгоритма поиска движения. Поскольку в рамках стандарта возможно использование векторов движения с точностью до половинных значений пикселов, рассмотрим два случая кодирования — без уточнения полученных векторов, и с уточнением в пределах ±0,5 пиксела с использованием интерполяции между пикселами. Для уточнения использована контрольная сумма (12.1) со всеми 256 пикселами макроблока. Уточнение векторов до половины пиксела требует порядка 3 · 9 = 27 дополнительных операций на каждый пиксел. Как следует из анализа результата кодирования, предложенные способы дают существенное ускорение поиска векторов движения (в 16 раз при 16 опорных точках), при этом коэффициент сжатия ухудшается не более 1–3% в случае использования точности векторов до 0,5 пиксела и 4–10% при точности векторов в один пиксел.

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

Изложение способа анализа с передискретизацией изображения можно проиллюстрировать на примере того же макроблока динамического изображения (рис. 12.14). В отличие от описанных выше принципов поиска, в данном варианте перед выбором опорных точек для каждого макроблока проводят передискретизацию исходного и опорного кадров. Рассмотрим случай, когда передискретизацию производят с уменьшением пространственного разрешения в 2 раза с использованием усреднения соседних пикселов:

F (d)(x, y) = 14 (F (2x, 2y) + F (2x + 1, 2y) + F (2x, 2y + 1) + F (2x + 1, 2y + 1)).

Здесь F (d)(x, y) — значение пиксела после передискретизации. Отсчеты пикселов макроблока, показанного на рис. 12.15 и 12.16, после передискретизации будут иметь значения, представленные в табл. 12.11.

Согласно одному из вариантов способа вычисления векторов движения, передискретизированный макроблок размером 8 × 8 пикселов делят на несколько

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

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

Рис. 12.17. Векторы движения, найденные стандартным способом — а и тремя вариантами эффективной реализации способа — б, в и г соответственно

Таблица 12.10. Размер кода MPEG-2 (в байтах) для последовательности «Сад цветов», 97 кадров с разрешением 640 × 480 пикселов

Конечная

 

 

 

Способ полного

 

 

 

перебора

точность

Первый

Второй

Третий

с использованием

векторов

вариант

вариант

вариант

256 пикселов

движения

 

 

 

 

 

 

макроблока

 

 

 

 

 

 

 

 

 

0,5 пиксела

3 317 551

3 375 686

3 295 558

3242122

 

 

 

 

 

1 пиксел

3 747 245

3 767 395

3 699 264

3545362

 

 

 

 

 

Таблица 12.11. Значения пикселов в выбранном макроблоке после передискретизации

y/x

1

2

3

4

5

6

7

8

1

103

112

113

112

153

168

133

148

 

 

 

 

 

 

 

 

 

2

165

155

163

112

100

119

93

116

 

 

 

 

 

 

 

 

 

3

151

143

151

162

157

124

129

144

4

138

117

96

124

120

140

191

178

 

 

 

 

 

 

 

 

 

5

165

117

117

108

169

213

174

146

 

 

 

 

 

 

 

 

 

6

68

54

49

92

163

153

142

110

7

104

106

133

167

155

135

176

173

 

 

 

 

 

 

 

 

 

8

204

175

141

139

110

101

141

127

 

 

 

 

 

 

 

 

 

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

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

 

 

 

y\x

1

 

 

2

 

3

 

4

5

 

6

 

7

 

 

8

 

 

 

 

 

1

 

max

 

 

 

min

max

 

 

 

min

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

min

 

 

 

max

min

 

 

 

max

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

max

 

 

 

min

max

 

 

 

min

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

min

 

 

 

max

min

 

 

 

max

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 12.13. Положение выбранных пикселов

 

 

 

 

 

 

 

 

 

 

 

(опорные пикселы отмечены подчеркиванием)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y\x

 

1

 

2

 

 

3

 

4

5

 

 

6

 

7

 

8

 

1

 

103

 

112

 

 

113

 

112

153

 

 

168

 

133

 

148

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

165

 

155

 

 

163

 

112

100

 

 

119

 

93

 

116

 

3

 

151

 

143

 

 

151

 

162

157

 

 

124

 

129

 

144

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

138

 

117

 

 

96

 

124

120

 

 

140

 

191

 

178

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

165

 

117

 

 

117

 

108

169

 

 

213

 

174

 

146

 

6

 

68

 

54

 

 

49

 

92

163

 

 

153

 

142

 

110

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

104

 

106

 

 

133

 

167

155

 

 

135

 

176

 

173

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

204

 

175

 

 

141

 

139

110

 

 

101

 

141

 

127

В процессе минимизации нормы SAD1 в окне поиска ±N/2 пикселов по передискретизированным изображениям определяют K векторов V1d, V2d, . . . , VKd, дающих наименьшие значения SAD1:

Min = SAD1(V1d) SAD1(V2d) SAD1(V3d) ...

После нахождения наилучших векторов V1d, V2d, V3d, . . ., соответствующих передискретизированным опорному и текущему кадрам, значения векторов увеличивают в соответствии с отношением разрешений исходного и передискретизированного кадров, в данном случае — в 2 раза. Далее в небольшой окрестности (например, ±1 пиксел) от каждого из полученных значений векторов (2·V1d, 2·V2d, 2· V3d,. . . ) производят минимизацию контрольной суммы и определяют наилучший вектор движения. Данный вектор принимается за конечный вектор движения макроблока в случае использования точности векторов, равной 1 пикселу.

При использовании точности векторов движения, равной половине пиксела, как это, например, реализуется в стандарте MPEG-2, последний найденный выше вектор уточняется в окрестности ±0, 5 пиксела, либо сразу в малых окрестностях (например, ±1 пиксел) векторов 2·V1d, 2·V2d, 2·V3d,. . . с точностью до 0,5 пиксела.

Для поиска векторов движения на этапе их оценки в передискретизированном кадре число операций на один пиксел передискретизированного кадра составляет 3 6416 (2 · NZ + 1)2, где Z — отношение исходного и передискретизированного разрешений (в данном случае Z = 2), или 14 3 6416 (2 · NZ + 1)2 на пиксел в кадре исходного разрешения.

Уточнение векторов движения в окрестности каждого из найденных векторов занимает небольшое количество операций — порядка 3K(2·1+1)2 на пиксел в кадре исходного разрешения, где K — количество наилучших векторов, и не зависит

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

от N . При K 3 и N > 10 последним числом можно пренебречь. В этом слу-

чае ускорение по сравнению с эталонным способом полного перебора составляет

14 3 6416 (2 · NZ + 1)2/3 6416 (2 · NZ + 1)2 ≈ 16Z2 = 64 при Z = 2.

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

При этом вычисляют среднее значение выбранных пикселов макроблока:

1

 

Fср =

M

 

F (x, y, t).

 

 

(x,y)

координаты

выбранных точек в соответствующих

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

Затем вычисляют модули разностей X(x, y) = |F (x, y, t) − Fср|, где (x, y) — координаты выбранных точек в соответствующих участках макроблока, и контрольную сумму вычисляют последовательно по координатам (x, y), для которых величины X(x, y) располагаются в убывающей последовательности.

В случае если текущий выбранный вектор x y не соответствует

V = (V , V )

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

Эффективность способа анализа движения по этому методу иллюстрируется в табл. 12.14. На рис. 12.17г приведены вектора движения, полученные с использованием способа при K = 3, а в табл. 12.14 даны результаты кодирования тестовой динамической последовательности кадров в рамках стандарта MPEG-2 (K=1, 2 и 3). Из таблицы следует, что этот способ при Z = 2 уступает по коэффициенту сжатия наилучшему эталонному способу перебора по всем пикселам не более 1% уже при K=2 и 3, и превосходит другие способы, не использующие передискретизацию. При этом коэффициент ускорения анализа движения по сравнению с эталонным способом составляет 64 раза при Z = 2.

Таблица 12.14. Размер кода MPEG-2 (в байтах) для последовательности «Сад цветов», 97 кадров с разрешением 640 × 480 пикселов (с фильтрацией)

Конечная точность векторов движения

K = 1

K = 2

K = 3

 

 

 

 

0,5 пиксела

3 308 449

3 276 854

3269046

1 пиксел

3 648 403

3 601 394

3590763

 

 

 

 

Заметим, что использование фильтрации улучшает результат. Например, если бы передискретизация проводилась без фильтрации, а только за счет прореживания по формуле F (d)(x, y) = F (2x, 2y), то результат по коэффициенту сжатия был бы хуже на 1–2% (табл. 12.15).

12.3. Дополнительные возможности компенсации движения деталей

Таблица 12.15. Размер кода MPEG-2 (в байтах) для последовательности «Сад цветов», 97 кадров с разрешением 640 × 480 пикселов (с прореживанием)

Конечная точность векторов движения

K = 1

K = 2

K = 3

0,5 пиксела

3 350 937

3 297 776

3 283 745

 

 

 

 

1 пиксел

3 688 898

3 624 819

3 606 289

 

 

 

 

Принципиальной особенностью рассмотренных выше методов является то, что улучшение межкадрового сжатия достигается за счет усложнения модели движения. После компенсации движения в рамках стандарта МРЕG-2 внутрикадровое сжатие приводит фактически к изменению истинных значений пикселов изображения (обусловленных квантованием коэффициентов спектра) без изменения положения этих пикселов в кадре. С другой стороны, можно незначительно изменить содержание кодируемого кадра таким образом, чтобы данное изменение было незаметно для глаза и улучшало компенсацию движения в рамках той или иной используемой модели. При этом дополнительное сжатие может быть достигнуто за счет небольших (в пределах долей пиксела) пространственных смещений деталей исходного изображения [4.45].

Поясним сказанное примером. На рис. 12.18 изображен одномерный импульсный сигнал, движущийся с постоянной скоростью вдоль оси ординат. Предположим, что данный сигнал должен быть закодирован и передан в рамках стандарта МРЕG. При дискретности передаваемого вектора движения после компенсации движения значение разностного сигнала отлично от нуля (кривая 4), и требуется определенное количество битов для передачи разностного сигнала. С другой стороны, сдвинутый сигнал в пределах долей пиксела (кривая 3) визуально мало отличается от исходного и не требует передачи дополнительной информации после компенсации движения. Поэтому выгоднее передать сдвинутый в пределах долей пиксела сигнал (кривая 3) вместо исходного сигнала (кривая 1).

Можно выделить две принципиально различные возможности пространственной передискретизации элементов изображения в предлагаемом способе:

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

определенным способом, который отвечает некоторой физической модели движения.

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

Рис. 12.19. А — реальное положение объекта, В — отображаемое положение объекта

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

Рис. 12.18. Компенсация движения одиночного импульса: 1 — значение сигнала в текущий момент времени, 2 — значение сигнала в предыдущий момент времени, 3 — сдвинутое положение сигнала, обеспечивающее нулевой сигнал после компенсации движения, 4 — значение сигнала после компенсации движения

сточностью до целых значений пикселов

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

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

кретным значением вектора движения (рис. 12.19). В таком понимании приходим к новой модели кад-

ра изображения, элементы которого (в стандарте МРЕG такими элементами могут быть макроблоки) имеют временную неопределенность в воспроизведении в пределах долей временного интервала между кадрами. Появление временной неопределенности, с одной стороны, оправдано свойством инерции человеческою глаза, а с другой стороны, расширяет возможности по улучшению компенсации движения в рамках заданного стандарта и, следовательно, увеличению коэффициента сжатия.

Проанализируем метод пространственной передискретизации элементов изображения в рамках стандарта MPEG-2, адекватный сформулированной модели. Ограничимся случаем, когда передискретизации подвергаются только В-кадры. Изменение пространственного положения объектов в этих кадрах, в отличие от кадров типа I и Р, не будет влиять на компенсацию движения и кодирование остальной последовательности кадров. Поэтому такой способ должен всегда характеризоваться положительным эффектом по увеличению коэффициента сжатия.

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

12.3. Дополнительные возможности компенсации движения деталей

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

Основные уравнения

Рассмотрим видеопоследовательность кадров, содержащую кадры В-типа стандарта MPEG. В случае кодирования макроблока В-кадра на кодере вычисляется величина разности

 

 

Cx,y = Yx,y(n) − Xx,y,

(12.12)

где Cx,y = Yx,y(n) − Xx,y при предсказании движения в одну сторону и

 

1

(n−Δ1)

(n−Δ2)

 

Xx,y =

 

Yx+V1x,y+V1y

+ Yx+V2x,y+V2y

 

2

при предсказании движения в обе стороны; Yx,y(n) — значение сигнала яркости пиксела в макроблоке в кадре с номером n, имеющего пространственные координаты (x, y); Xx,y(n) — предсказанное значение пиксела с учетом компенсации движения;

— расстояние до опорного кадра; (Vx, Vy ) — координаты вектора движения. При кодировании с векторами движения с точностью до полпиксела значения

(Vx, Vy ) вычисляются с помощью линейной интерполяции.

Будем считать, что вектор движения макроблока известен и определен, например, методом полного перебора и, соответственно, значения Xx,y(n) вычислены.

(n)

Сущность предлагаемого метода сводится к замене истинного значения Yx,y некоторым другим значением Yx,y(n), соответствующим небольшому смещению изображения во времени. Целью замены является уменьшение модуля разности Cx,y. Будем считать, что значения пикселов Yx,y(n) можно получить исходя из значений Yx,y(n) с использованием интерполяции между пикселами:

Y new(n) = Y

(n)

,

(12.13)

x,y

x+ΔVx,y+ΔVy

 

 

где Vx, Vy — координаты вектора небольшого смещения макроблока. Величи-

 

= (ΔVx, Vy ) должна определяться из условия минимизации

на смещения V

разностного сигнала:

 

 

 

 

 

 

 

(Yx,ynew(n) − Xx,y)2 min,

(12.14)

x,y

Суммирование здесь производится по всем пикселам макроблока.

Пусть ориентация вектора соответствует случаю, изображенному на ри-

V

сунке 12.20, на котором обозначено Y0 = Yi,k , Y1 = Yi+1,k, Y2 = Yi,k+1, Y3 = = Yi+1,k+1. Для вычисления промежуточного значения сигнала яркости в точке

будем использовать интерполяцию по четырем соседним точкам. Предпола-

V

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

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

 

+

 

 

2

Y (ΔV ) = Y0

V · Y + O((ΔV · Y ) ),

где Y — градиент функции.

В пренебрежении членами второго порядка малости имеем:

 

(1)

= Y0

+ x1(e1 · Y ) + x2(e2 · Y ) = Y0 + x1(Y1 − Y0) + x2(Y2 − Y0),

Y (ΔV ) ≈ Y

 

 

 

 

(12.15)

 

(2)

= Y0

+ y1(e1 · Y ) + y2(e3 · Y ) = Y0 + y1(Y1 − Y0) + y2(Y3 − Y0),

Y (ΔV ) ≈ Y

 

 

 

 

(12.16)

 

(3)

= Y0

+ z1(e2 · Y ) + z2(e3 · Y ) = Y0 + z1(Y2 − Y0) + z2(Y3 − Y0),

Y (ΔV ) ≈ Y

 

 

 

 

(12.17)

где координаты x, y, z определены как координаты вектора смещения в различных базисах:

 

 

 

 

 

+ y2e3 = z1e2 + z2e3,

 

 

 

 

V = x1e1 + x2e2 = y1e1

 

 

 

 

y2 = x2, y1 = x1 − x2, z1 = x2 − x1, z2 = x1

 

 

 

(см. рис. 12.20).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В соотношениях (12.15)–(12.17) использовалась

 

 

 

 

приближенная формула для производных: ek · Y ≈

 

 

 

 

 

 

 

 

Yk − Y0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для того чтобы включить в интерполяционную

 

 

 

 

формулу значения функции во всех четырех точках,

 

 

 

 

рассмотрим усредненное между (12.15)–(12.17) значе-

 

 

 

 

ние с различным весом для каждого выражения:

 

 

 

 

 

 

 

 

 

 

 

 

Y (ΔV )

qY

(1) +

1 − q

Y (2) +

1 − q

Y (3) =

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

1

2

 

 

 

 

 

 

 

 

 

 

0

1

 

2

 

 

 

1

0

 

 

 

 

 

 

= Y + qx +

1 − q

y

 

 

(Y

Y ) +

 

 

Рис. 12.20. Положение дей-

+ qx2 +

1 − q

z1

(Y2

Y0)+

1 − q

(y2 + z2)(Y3

Y0)

ствительной поправки к цело-

численному значению вектора

 

 

2

 

 

 

 

 

 

 

2

 

 

 

 

 

движения макроблока

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(12.18)

q и (1 − q)/2 — веса, с которыми выражения (3.15)–(3.17) входят в конечную формулу. В последней формуле выбраны вследствие симметрии (см. рис. 12.20) одинаковые веса для выражений (12.15)–(12.17). Выражая коэффициенты через Декартовы координаты вектора (x1, x2), имеем

 

 

 

 

 

 

 

Y (ΔV ) ≈ Y0 + α1(Y1 − Y0) + α2(Y2 − Y0) + α3(Y3 − Y0),

α

=

1 + q

x

1

1 − q

x

,

2

2

1

 

 

2

 

α

=

1 + q

x

2

1 − q

x

,

2

2

2

 

 

1

 

α3

=

1 − q

(x1 + x2).

 

 

2

 

 

 

 

 

 

 

 

 

(12.19)

(12.20)

(12.21)

(12.22)

12.3. Дополнительные возможности компенсации движения деталей

В формулах (12.15)–(12.17) независимыми величинами являются только координаты вектора (x1, x2), по которым необходимо произвести минимизацию в (12.14). С другой стороны, в (12.18) присутствует новый параметр q, поэтому минимизацию можно проводить по трем независимым параметрам (x1, x2, q). Нетрудно видеть, что в общем случае якобиан преобразования (12.19)

∂(α1, α2, α3)/(x1, x2, q) = 0,

поэтому величины (α1, α2, α3) являются независимыми и, следовательно, минимизацию можно проводить по величинам (α1, α2, α3).

После нахождения оптимальных значений (α1, α2, α3) необходимо вычислить, какому вектору движения они соответствуют. Формулы обратного преобразования имеют вид:

x1

= α1 + α3,

(12.23)

x2

= α2 + α3,

(12.24)

 

 

α1 + α2

(12.25)

q =

 

.

α1 + α2 + 2α3

Координаты вектора движения (x1, x2) определяются простыми выражениями (12.23), (12.24).

Необходимо наложить условие, чтобы вектор движения находился внутри рассматриваемой области. Величины Vx, Vy не должны превышать доли пиксела, 0 x1, x2 p, откуда

0 α1 + α3

p,

(12.26)

0 α2 + α3

p,

(12.27)

где p — диапазон допустимого размера смещения элементов изображения при

передискретизации, 0 p 1/2. Величины (α1, α2, α3) находятся из условия:

H = (X0i − Y0i − α1(Y1i − Y0i) − α2(Y2i − Y0i) − α3(Y3i − Y0i))2 min.

(12.28) В (12.28) X0 = Xi,k — значение сигнала яркости в текущем кадре суммирование производится по всем точкам макроблока (индексу i).

Необходимыми условиями минимума являются:

∂H/∂α1 = ∂H/∂α2 = ∂H/∂α3 = 0,

откуда получаем линейную систему из трех уравнений для определения (α1, α2, α3):

a11α1

+ a12

α2 + a13

α3

= −s1,

(12.29)

a21α1

+ a22

α2 + a23

α3

= −s2,

(12.30)

a31α1

+ a32

α2

+ a33

α3

= −s3,

(12.31)

!

 

 

!

 

 

 

где alm = (X0,i − Yl,i)(Y0,i − Ym,i), sl

= (X0,i − Y0,i)(Y0,i − Yl,i), m = 1, 2, 3.

Система (12.29)–(12.31) решается стандартными методами линейной алгебры. В вырожденном случае (детерминант матрицы равен нулю) передискретизацию проводить не будем (положим α1 = α2 = α3 = 0). Поскольку вектор смещения может иметь 4 различные ориентации, необходимо выбрать наилучшее

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

замена значений попиксельной яркости согласно (12.19).