Устройство кодирования и декодирования видеокадров
Иллюстрации
Показать всеИзобретение относится к области радиотехники и телевидения и может быть использовано при формировании, передаче и приеме видеокадров. Технический результат заключается в повышении коэффициента кодового уплотнения информации видеокадра. Технический результат достигается тем, что в кодер дополнительно введены блок памяти видеокадров, первый блок памяти функций, блок передачи видеокадра, блок памяти воспроизводимого видеокадра, при этом вход кодера последовательно, через блок формирования видеокадров, блок памяти видеокадров, блок формирования разностного видеокадра, первый блок кадровой памяти, блок передачи видеокадра и блок памяти воспроизводимого видеокадра соединен со вторым входом блока формирования разностного видеокадра, третий вход которого соединен с выходом первого блока памяти функций, выход которого соединен со вторым входом блока передачи видеокадра, выход которого является выходом кодера устройства, в декодер дополнительно введены блок приема видеокадров, компаратор и второй блок памяти функций, причем вход декодера последовательно, через блок приема видеокадров, второй блок кадровой памяти и компаратор, соединен со вторым входом блока восстановления видеокадров, третий вход которого соединен с выходом второго блока памяти функций, а выход является выходом декодера устройства. В устройстве реализовано формирование, передача и прием кода функции распределения яркости точки экрана в последовательности кадров, что позволяет увеличить коэффициент кодового уплотнения. 1 ил., 1 табл., 7 прилож.
Реферат
Изобретение относится к области радиотехники и телевидения и может быть использовано при формировании, передаче и приеме видеокадров.
В качестве аналога выбрано устройство межкадрового кодера и декодера сжатия видеокадров (Джон Уоткинсон «Пособие для инженеров по сжатию цифровых потоков», справочники Snell & Wilcox, перевод на русский язык «Снелл и Уилкокс» ЗАО, Москва, стр.11) кодер которого содержит блок задержки на кадр, блок вычисления межкадровой разницы, блок спектрального преобразования, блок взвешивания, блок усечения коэффициентов и отбрасывания нулевых значений, декодер содержит блок обратного взвешивания, блок обратного преобразования, блок формирования кадра, блок задержки на кадр. В рассматриваемом устройстве в канал связи передается межкадровая разность, при этом увеличивается коэффициент кодового уплотнения передаваемой видеоинформации, однако любые ошибки в канале передачи видны во всех последующих видеокадрах, что делает видеопоток непригодным для декодирования. Для устранения ошибок необходимо периодически передавать полный видеокадр, подвергнутый только внутрикадровому кодированию, что уменьшает коэффициент кодового уплотнения видеоинформации.
В качестве прототипа выбрано устройство межкадрового кодера и декодера сжатия видеокадров (Джон Уоткинсон «Пособие для инженеров по сжатию цифровых потоков», справочники Snell & Wilcox, перевод на русский язык «Снелл и Уилкокс» ЗАО, Москва, стр.51) кодер которого состоит из блока формирования разностного видеокадра, блока сжатия разностного видеокадра, блока декодирования разностного видеокадра, блока формирования видеокадра, первого блока кадровой памяти, при этом вход кодера последовательно соединен через блок формирования разностного видеокадра, блок сжатия разностного видеокадра, блок декодирования разностного видеокадра, блок формирования видеокадра, первый блок кадровой памяти, со вторым входом блока формирования видеокадра и со вторым входом блока формирования разностного видеокадра, выход которого является выходом кодера устройства, декодер содержит блок декодирования разностного видеокадра, блок восстановления видеокадров, второй блок кадровой памяти, причем вход декодера последовательно через блок декодирования разностного видеокадра, блок восстановления видеокадров, второй блок кадровой памяти соединен со вторым входом блока восстановления видеокадров, а выход второго блока кадровой памяти является выходом декодера устройства. Устройство, рассматриваемое в качестве прототипа, содержит в кодере и декодере идентичные декодеры разностного видеокадра для устранения ошибок процесса сжатия. Недостаток прототипа - не достаточно высокий коэффициент кодового уплотнения видеокадров.
Решаемая техническая задача - повышение коэффициента кодового уплотнения видеокадров.
Решение технической задачи в устройстве кодирования и декодирования видеокадров, содержащем кодер, состоящий из блока формирования разностного видеокадра, блока формирования видеокадра, первого блока кадровой памяти, при этом выход кодера соединен с входом декодера, состоящего из блока восстановления видеокадров, выход которого соединен через второй блок кадровой памяти со вторым входом блока восстановления видеокадров, достигается тем, что в кодер дополнительно введены блок памяти видеокадров, первый блок памяти функций, блок передачи видеокадра, блок памяти воспроизводимого видеокадра, при этом вход кодера последовательно через блок формирования видеокадров, блок памяти видеокадров, блок формирования разностного видеокадра, первый блок кадровой памяти, блок передачи видеокадра и блок памяти воспроизводимого видеокадра соединен со вторым входом блока формирования разностного видеокадра, третий вход которого соединен с выходом первого блока памяти функций, выход которого соединен со вторым входом блока передачи видеокадра, выход которого является выходом кодера устройства, в декодер дополнительно введены блок приема видеокадров, компаратор и второй блок памяти функций, причем вход декодера последовательно через блок приема видеокадров, второй блок кадровой памяти и компаратор, соединен со вторым входом блока восстановления видеокадров, третий вход которого соединен с выходом второго блока памяти функций, а выход является выходом декодера устройства.
На чертеже приведена структурная схема устройства кодирования и декодирования видеокадров.
Устройство кодирования и декодирования видеокадров состоит из кодера 1, содержащего блок формирования разностного видеокадра 2, блок формирования видеокадра 3, первый блок кадровой памяти 4, при этом выход кодера 1 соединен с входом декодера 5, содержащего блок восстановления видеокадров 6, выход которого соединен через второй блок кадровой памяти 7 со вторым входом блока восстановления видеокадров 6. В кодер 1 устройства дополнительно введены блок памяти видеокадров 8, первый блок памяти функций 9, блок передачи видеокадра 10 и блок памяти воспроизводимого видеокадра 11. При этом вход кодера 1 последовательно через блок формирования видеокадров 3, блок памяти видеокадров 8, блок формирования разностного видеокадра 2, первый блок кадровой памяти 4, блок передачи видеокадра 10 и блок памяти воспроизводимого видеокадра 11 соединен со вторым входом блока формирования разностного видеокадра 2, третий вход которого соединен с выходом первого блока памяти функций 9, выход которого соединен со вторым входом блока передачи видеокадра 10, выход которого является выходом кодера 1. В декодер 5 устройства дополнительно введены блок приема видеокадров 12, компаратор 13 и второй блок памяти функций 14. Вход декодера 5 последовательно, через блок приема видеокадров 12, второй блок кадровой памяти 7 и компаратор 13, соединен со вторым входом блока восстановления видеокадров 6, третий вход которого соединен с выходом второго блока памяти функций 14, а выход является выходом декодера 5 устройства.
Все блоки, входящие в устройство кодирования и декодирования видеокадров, могут быть выполнены по стандартным опубликованным в литературе схемам. В приложениях №1-№6 даны алгоритмы работы блоков: формирования видеокадров 3, формирования разностного видеокадра 2 в режиме формирования статистических видеокадров, формирования разностного видеокадра 2 в режиме формирования динамических видеокадров, передачи видеокадра 10, приема видеокадров 12, восстановления видеокадров 6. В приложении №7 дана примерная структура организации ячеек памяти в первом блоке кадровой памяти 4 и во втором блоке кадровой памяти 7. Система, обеспечивающая питание блоков, на чертеже не показана.
Рассмотрим работу устройства кодирования и декодирования видеокадров. Функции, описывающие характер изменения яркости точки экрана в последовательности видеокадров и поставленные в соответствующие им коды функций, приведены в таблице №1.
Таблица №1 | ||
Класс функции | Код функции | Характер изменения функции |
Разрывные | 000 | Изменяются скачком |
Постоянные | 111 | Сохраняют постоянное значение |
Нелинейные 1 | 001 | Возрастают с увеличением скорости |
Линейные 1 | 010 | Увеличиваются линейно |
Нелинейные 2 | 011 | Возрастают с уменьшением |
скорости | ||
Нелинейные 3 | 100 | Убывают с увеличением скорости |
Линейные 2 | 101 | Убывают линейно |
Нелинейные 4 | 110 | Убывают с уменьшением скорости |
Декодер 5 устройства кодирования и декодирования видеокадров функционирует в режимах приема видеокадров и декодирования видеокадров.
Режим приема видеокадров.
Блок приема видеокадров 12 принимает из канала побито видеокадр, распознает идентификаторы видеокадра и строк, и в зависимости от их значений формирует информацию, записываемую во второй блок кадровой памяти 7. В ячейках второго блока кадровой памяти 7 хранятся записи в формате:
Для этого блок приема видеокадров 12 может принимать из канала и обрабатывать строки в форматах:
Где, 01:01 и 10:01 - идентификатор видеокадра и строк, которые определяют, что записано и (или) передано значение напряжения точки экрана;
01:10 и 10:10 - идентификаторы видеокадра и строк, которые определяют, что записано и (или) передано значение кода функции и значение чисел кадров;
10:11 - идентификаторы видеокадра и строк, которые определяют, что содержимое ячеек памяти остается без изменений.
Если блок приема видеокадров 12 принимает строку в формате (2), то значения напряжений из строки последовательно переписываются в соответствующие ячейки значений напряжений второго блока кадровой памяти 7. В ячейки значений кодов функций, числа кадров, номеров кадров и шкал записываются нулевые значения.
Если блок приема видеокадров 12 принимает строку в формате (3), то значения кодов функций и чисел кадров из строки переписываются в ячейки значений кодов функций и чисел кадров второго блока кадровой памяти 7. В ячейки значений номера кадров записываются нулевые значения. Блок приема видеокадров 12 по значениям чисел кадров формирует цены шкал, записывая их в ячейки значений шкалы, содержимое ячейки значений напряжения не изменяется.
Если блок приема видеокадров 12 принимает строку в формате (4) с идентификатором 01, то значения напряжений из строки последовательно переписываются только в те ячейки второго блока кадровой памяти 7, в которых значение кода функций имеет нулевое значение. В другие ячейки записываются нулевые значения.
Если блок приема видеокадров 12 принимает строку в формате (5) с идентификатором 11, то содержимое ячеек памяти второго блока кадровой памяти 7 остается без изменений.
Если блок приема видеокадров 12 принимает строку в формате (6) с идентификатором 10, то значения кодов функций и чисел кадров из строки записываются только в те ячейки памяти второго блока кадровой памяти 7, в которых значение кода функции имеет нулевое значение. В ячейки значений номера кадра записываются нулевые значения, а содержимое значений напряжений этих ячеек не изменяется.
Режим декодирования видеокадров.
Блок восстановления видеокадров 6 выбирает ячейки памяти второго блока кадровой памяти 7 в формате (1).
Если значение кода функции равно нулю, никаких преобразований над содержимым ячеек, соответствующих этой функции, не выполняется, и значение напряжения передается на выход декодера.
Если значение числа кадров некоторой ячейки памяти второго блока кадровой памяти 7 не равно нулю и равно значению номера кадра, то блок восстановления видеокадров 6 записывает нулевое значение кода функции. Других преобразований над содержимым этой ячейки не выполняется, значение напряжения точки экрана передается на выход декодера.
Если значение некоторого кода функции в соответствующей ячейке памяти второго блока кадровой памяти 7 не равно нулю и соответствующие этому коду значения пар номер кадра и число кадров не равны, то блок восстановления видеокадров 6 по коду функции и номеру кадра выбирает из второго блока памяти функций 14 приращение и, используя компаратор 13, модифицирует им значение напряжения выбранной ячейки памяти второго блока кадровой памяти 7. Используя компаратор 13, блок восстановления видеокадров 6 также модифицирует значение номер кадра этой ячейки содержимым значением шкалы. Модифицированное значение напряжения точки экрана передается на выход декодера.
Кодер 1 устройства функционирует в режимах: формирования статистических видеокадров, формирования динамических видеокадров, передачи видеокадров.
Режим формирования статистических видеокадров.
Исходные видеокадры поступают в блок формирования видеокадров 3, записывающий значения напряжений яркости точек экрана и номер видеокадра в блок памяти видеокадров 8, который организован для хранения минимум четырех последовательных видеокадров. Далее, необходимо сформировать в ячейках памяти первого блока кадровой памяти 4, записи в виде:
Для этого блок формирования разностного видеокадра 2 считывает последовательно видеокадры в блоке памяти видеокадров 8, выбирает из них значения напряжений и записывает их в соответствующие ячейки памяти первого блока кадровой памяти 4. Блок формирования разностного видеокадра 2 из блока памяти видеокадров 8 считывает четверки ячеек, определяющие значения напряжений для точки экрана в четырех последовательных кадрах. По четырем значениям напряжений блок формирования разностного видеокадра 2 вычисляет приращения первого и второго порядков, и по значениям приращений, используя содержимое первого блока памяти функций 9, выбирает вид функции и определяет число кадров, в течение которых функция сохраняет свою значимость. Значения этих величин блок формирования разностного видеокадра 2, записывает в соответствующие ячейки памяти первого блока кадровой памяти 4.
Режим формирования динамических видеокадров. Динамика процесса формирования видеокадров в общем случае характеризуется различными комбинациями следующих состояний ячеек первого блока кадровой памяти 4:
Если точка видеокадра в первом блоке кадровой памяти 4 описывается (8), то соответствующую ей точку видеокадра первого блока кадровой памяти 4, можно не передавать в приемное устройство, так как динамика состояний этой точки полностью определена (1). Если текущие состояния всех ячеек первого блока кадровой памяти 4, описываются (8), то видеокадр будет иметь вид:
Видеокадр передается в канал и записывается блоком передачи видеокадра 10 в блок памяти воспроизводимого видеокадра 11.
Если точка памяти первого блока кадровой памяти 4 описывается (9), то неизвестно, следует сохранить значение напряжений из (9) или необходимо их заменить соответствующими значениями напряжений из блока памяти видеокадров 8. Поэтому блок формирования разностного видеокадра 2 считывает из блока памяти видеокадров 8 тройку ячеек, определяющих состояния точки в трех последовательных видеокадрах. Вместе со значением напряжения из блока памяти воспроизводимого видеокадра 11 четверка значений напряжений используется блоком формирования разностного видеокадра 2, который вычисляет приращения первого и второго порядков и по ним, используя содержимое первого блока памяти функций 9, выбирает вид функции и определяет число кадров, в течение которых функция сохраняет свою значимость. Значения этих величин блок формирования разностного видеокадра 2, записывает в соответствующие ячейки памяти первого блока кадровой памяти 4. Далее, блок формирования разностного видеокадра 2 по значению числа кадров вычисляет цену деления шкалы и записывает ее в выбранную ячейку первого блока кадровой памяти 4. В результате описанной процедуры в первом блоке кадровой памяти 4, не будет содержаться ячеек, характеризуемых (9).
Если точка памяти первого блока кадровой памяти 4 описывается (10), то соответствующая ей точка видеокадра должна быть передана в приемное устройство, так как код 0 определяет разрывную функцию. Необходимо установить характер изменения значений напряжений в точке. Блок формирования разностного видеокадра 2 считывает из блока памяти видеокадров 8 четверку ячеек, состояния которых определяют значения напряжений для точки экрана в четырех последовательных кадрах. По этим значениям блок формирования разностного видеокадра 2 вычисляет значения приращений первого и второго порядков и по ним, используя содержимое первого блока памяти функций 9, выбирает код функции и определяет число кадров, в течение которых функция сохраняет свою значимость. Если в текущих состояниях ячеек во всех строках блока памяти воспроизводимого видеокадра 11 имеются (10), то видеокадр будет иметь вид:
Если в некоторой строке блока памяти воспроизводимого видеокадра 11 не содержится точек, определяемых (9) или (10), то такая строка будет представлена идентификатором 11. Программа передачи видеокадра будет соответствовать:
Режим передачи видеокадров.
Блок передачи видеокадра 10 передает в канал связи видеокадры, записанные в памяти первого блока кадровой памяти 4, и модифицирует содержимое ячеек блока памяти воспроизводимого видеокадра 11 в зависимости от идентификаторов кадра и строк. Блок передачи видеокадра 10 может передавать форматы (2)-(6).
Блок передачи видеокадра 10, последовательно выбирает из блока памяти первого блока кадровой памяти 4 видеокадры и последовательно передает их в канал.
Если блок передачи видеокадра 10 передает строку в формате (2), то значения напряжений из строки последовательно переписываются в соответствующие ячейки блока памяти воспроизводимого видеокадра 11. В ячейки значений кодов функций, числа кадров, номеров кадров и шкал, записываются нулевые значения.
Если блок передачи видеокадра 10 передает строку в формате (3), то значения кодов функций и чисел кадров из строки переписываются в ячейки значений кодов функций и чисел кадров в блоке памяти воспроизводимого видеокадра 11. Значение номера кадра этих ячеек обнуляется. Блок передачи видеокадра 10 по значениям чисел кадров формирует цены делений шкал и записывает их в ячейки значений шкалы блока памяти воспроизводимого видеокадра 11. Значение напряжения этих ячеек не изменяется.
Если блок передачи видеокадра 10 передает строку в формате (4) с идентификатором 01, то значения напряжений из строки последовательно переписываются только в те ячейки блока памяти воспроизводимого видеокадра 11, в которых значение кода функций имеет нулевое значение, другие значения этих ячеек обнуляются. В ячейках блока памяти воспроизводимого видеокадра 11, в которых значение кода функции не равно нулю, блок передачи видеокадров 10 модифицирует значение напряжения значениями приращений, выбираемыми по коду функции из первого блока памяти функций 9, и модифицирует значение номер кадра значениями цен делении шкал, выбираемыми из ячеек значение шкал.
Если блок передачи видеокадров 10 передает строку в формате (5) с идентификатором 11, то он модифицирует во всех ячейках блока памяти воспроизводимого видеокадра 11 значения напряжений значениями приращений, выбираемыми по коду функций из первого блока памяти функций 9, и модифицирует значение номер кадра значениями цен делений шкал, выбираемыми из ячеек значений шкал первого блока кадровой памяти 4. Состояния других значений этих ячеек не изменяются.
Если блок передачи видеокадров 10 передает строку в формате (6) с идентификатором 10, то значения кодов функций и чисел кадров из строки последовательно переписываются только в тех ячейках блока памяти воспроизводимого видеокадра 11, в которых код функции имеет нулевое значение. Значение номера кадра этих ячеек обнуляется. Блок передачи видеокадров 10, по значениям чисел кадров, формирует цены делений шкал и записывает их в ячейки значений шкал блока памяти воспроизводимого видеокадра 11, значение напряжения этих ячеек не изменяется.
Устройство кодирования и декодирования видеокадров, содержащее кодер, состоящий из блока формирования разностного видеокадра, блока формирования видеокадра, первого блока кадровой памяти, при этом выход кодера соединен с входом декодера, состоящего из блока восстановления видеокадров, выход которого соединен через второй блок кадровой памяти со вторым входом блока восстановления видеокадров, отличающееся тем, что в кодер устройства дополнительно введены блок памяти видеокадров, первый блок памяти функций, блок передачи видеокадра, блок памяти воспроизводимого видеокадра, при этом вход кодера последовательно через блок формирования видеокадров, блок памяти видеокадров, блок формирования разностного видеокадра, первый блок кадровой памяти, блок передачи видеокадра и блок памяти воспроизводимого видеокадра соединен со вторым входом блока формирования разностного видеокадра, третий вход которого соединен с выходом первого блока памяти функций, выход которого соединен со вторым входом блока передачи видеокадра, выход которого является выходом кодера устройства, в декодер устройства дополнительно введены блок приема видеокадров, компаратор и второй блок памяти функций, причем вход декодера последовательно соединен через блок приема видеокадров, второй блок кадровой памяти и компаратор со вторым входом блока восстановления видеокадров, третий вход которого соединен с выходом второго блока памяти функций, а выход является выходом декодера устройства.