способ проверки совпадения состояний видеокодера и видеодекодера
Классы МПК: | H04N7/66 с использованием резервных кодов H04N5/14 схемы видеотракта для диапазона видеочастот G06F11/08 обнаружение и исправление ошибок с помощью избыточности в представлении данных, например с помощью корректирующих кодов |
Автор(ы): | ВЕНГЕР Стефан (FI), ХАННУКСЕЛА Миска (FI), ВАНГ Йе-Куи (FI) |
Патентообладатель(и): | Нокиа Корпорейшн (FI) |
Приоритеты: |
подача заявки:
2006-11-02 публикация патента:
27.10.2011 |
Изобретение относится к области видеокодирования с предсказанием и, в частности, к обеспечению соответствия между состояниями кодера и декодера. Техническим результатом является обеспечение проверки совпадения состояний кодера и декодера, при этом в настоящем изобретении обнаружение ошибок осуществляется приемником - декодером сообщений. Указанный технический результат достигается тем, что предложен способ проверки совпадения состояний первого видеопроцессора и второго видеопроцессора, где один из указанных видеопроцессоров является видеокодером, использующим видеокодирование с предсказанием, а другой из указанных видеопроцессоров является видеодекодером, способным восстанавливать декодированный поток битов из кодированного потока битов, сформированного указанным видеокодером. 7 н. и 16 з.п ф-лы, 2 ил.
Формула изобретения
1. Способ проверки совпадения между состоянием первого видеопроцессора и состоянием второго видеопроцессора, где один из указанных видеопроцессоров является видеокодером с использованием видеокодирования с предсказанием, а другой из указанных видеопроцессоров является видеодекодером, способным восстанавливать декодированную видеопоследовательность из кодированного потока битов, сформированного указанным видеокодером, причем данный способ включает:
формирование в указанном первом видеопроцессоре первой индикации одного или более свойств первого состояния указанного первого видеопроцессора, при этом свойства указанного первого состояния включают одно или более из используемых параметров изображения и значений выборок опорных изображений; и
передачу сообщения, содержащего указанную индикацию, указанному второму видеопроцессору,
причем указанная первая индикация используется указанным вторым видеопроцессором для проверки совпадения указанных первого и второго состояний указанных первого и второго видеопроцессоров.
2. Способ проверки совпадения между состоянием первого видеопроцессора и состоянием второго видеопроцессора, где один из указанных видеопроцессоров является видеокодером с использованием видеокодирования с предсказанием, а другой из указанных видеопроцессоров является видеодекодером, способным восстанавливать декодированную видеопоследовательность из кодированного потока битов, сформированного указанным видеокодером, причем данный способ включает:
прием вторым видеопроцессором от первого видеопроцессора сообщения, содержащего первую индикацию одного или более свойств первого состояния указанного первого видеопроцессора; и
формирование в указанном втором видеопроцессоре второй индикации одного или более свойств второго состояния указанного второго видеопроцессора;
проверку совпадения указанных первого и второго состояний указанных первого и второго видеопроцессоров путем сравнения указанных первой и второй индикации,
причем свойства указанного первого состояния и свойства указанного второго состояния включают одно или более из используемых параметров изображения и значений выборок опорных изображений.
3. Способ по п.2, включающий также выполнение процедур обработки ошибок в случае, если указанные состояния не совпадают.
4. Способ по п.2, в котором указанная индикация содержит контрольную сумму, и указанная операция формирования индикации включает вычисление указанной контрольной суммы.
5. Способ по п.4, в котором указанную контрольную сумму вычисляют с помощью по меньшей мере одного алгоритма из группы алгоритмов, содержащей двоичную копию, исключающее «ИЛИ», циклический избыточный код (CRC), защищенный алгоритм хеширования (SHA1), профиль сообщения 5 (MD5).
6. Способ по п.1, в котором указанная индикация включает контрольную сумму, и указанная операция формирования индикации включает вычисление указанной контрольной суммы.
7. Способ по п.6, в котором указанную контрольную сумму вычисляют с помощью по меньшей мере одного алгоритма из группы алгоритмов, содержащей двоичную копию, исключающее «ИЛИ», циклический избыточный код (CRC), защищенный алгоритм хеширования (SHA1), профиль сообщения 5 (MD5).
8. Способ по п.1, в котором указанная индикация содержит кодированную копию указанных свойств указанного первого состояния в соответствии по меньшей мере с одним методом кодирования из группы, включающей двоичное кодирование, кодирование с основанием 16 (Ваsе16), кодирование с основанием 64 (Base64), абстрактную синтаксическую нотацию 1 (ASN1).
9. Способ по п.1, в котором указанные свойства указанного первого состояния содержат по меньшей мере одно из следующего:
активные наборы параметров изображения (PPS);
активные наборы параметров последовательности (SPS);
наборы параметров изображения (PPS) с индексом х;
наборы параметров последовательности (SPS) с индексом х;
наборы параметров изображения (PPS) с индексом х и соответствующие им наборы параметров последовательности (SPS)
все наборы параметров изображения (PPS);
все наборы параметров последовательности (SPS);
самое последнее опорное изображение в буфере декодированного изображения (DPF);
все опорные изображения в буфере декодированного изображения (DPF), используемые для предсказания;
все опорные изображения в буфере декодированного изображения (DPF).
10. Способ по п.1, в котором указанный первый видеопроцессор является указанным видеокодером, а указанный второй видеопроцессор является указанным видеодекодером.
11. Способ по п.10, в котором указанное сообщение передают внутри указанного потока битов.
12. Способ по п.11, в котором указанное сообщение является сообщением дополнительной информации для повышения качества изображения (SEI).
13. Способ по п.10 в котором указанное сообщение передают отдельно от указанного потока битов.
14. Способ по п.13, в котором указанное сообщение содержит также информацию синхронизации для связывания указанной индикации с точкой создания указанной индикации.
15. Способ по п.1, в котором первый видеопроцессор является указанным видеодекодером, а второй видеопроцессор является указанным видеокодером.
16. Способ по п.15, в котором указанное сообщение передают с использованием по меньшей мере одного протокола из группы протоколов, включающей протокол управления в реальном времени (RTCP), H.225 и Н.245.
17. Способ по п.16, в котором указанное сообщение содержит также информацию синхронизации для связывания указанной индикации с точкой создания указанной индикации.
18. Носитель информации, считываемый компьютером, используемый в работе первого видеопроцессора и содержащий фрагменты кода для подачи процессору команд на выполнение операций:
формирования в первом видеопроцессоре первой индикации одного или более свойств первого состояния указанного первого видеопроцессора, при этом свойства указанного первого состояния включают одно или более из используемых параметров изображения и значений выборок опорных изображений; и
передачи сообщения, содержащего указанную индикацию, второму видеопроцессору,
причем указанная первая индикация используется указанным вторым видеопроцессором для проверки совпадения указанных первого и второго состояний указанных первого и второго видеопроцессоров, и
один из указанных первого и второго видеопроцессоров является видеокодером с использованием видеокодирования с предсказанием, а другой из указанных первого и второго видеопроцессоров является видеодекодером, способным восстанавливать декодированную видеопоследовательность из кодированного потока битов, сформированного указанным видеокодером.
19. Носитель информации, считываемый компьютером, используемый в работе видеопроцессора и содержащий фрагменты кода для подачи процессору команд на выполнение операций:
приема видеопроцессором от другого видеопроцессора сообщения, содержащего первую индикацию одного или более свойств первого состояния указанного другого видеопроцессора;
формирования в видеопроцессоре второй индикации одного или более свойств второго состояния видеопроцессора; и
проверки совпадения первого и второго состояний указанных видеопроцессора и другого видеопроцессора путем сравнения указанных первой и второй индикации,
причем свойства указанного первого состояния и свойства указанного второго состояния включают одно или более из используемых параметров изображения и значений выборок опорных изображений, и
один из указанных видеопроцессора и другого видеопроцессора является видеокодером с использованием видеокодирования с предсказанием, а другой из указанных видеопроцессора и другого видеопроцессора является видеодекодером, способным восстанавливать декодированную видеопоследовательность из кодированного потока битов, сформированного указанным видеокодером.
20. Система для проверки совпадения между состоянием первого видеопроцессора и состоянием второго видеопроцессора, где один из указанных видеопроцессоров является видеокодером, использующим видеокодирование с предсказанием, а другой видеопроцессор из указанных видеопроцессоров является видеодекодером, способным восстанавливать декодированную видеопоследовательность из кодированного потока битов, сформированного указанным видеокодером, причем первый видеопроцессор включает:
компонент для формирования первой индикации одного или более свойств первого состояния указанного первого видеопроцессора; и
компонент для передачи сообщения, включающего указанную индикацию, указанному второму видеопроцессору;
а указанный второй видеопроцессор включает:
компонент для формирования второй индикации указанных свойств второго состояния указанного второго видеопроцессора; и
компонент для проверки совпадения первого и второго состояний указанных первого и второго видеопроцессоров путем сравнения указанных первой и второй индикации,
причем свойства указанного первого состояния и свойства указанного второго состояния включают одно или более из используемых параметров изображения и значений выборок опорных изображений.
21. Система по п.20, в которой первый и второй видеопроцессоры также содержат компонент для выполнения процедур обработки ошибок в случае, если указанные состояния не совпадают.
22. Первый видеопроцессор, включающий:
компонент для формирования первой индикации одного или более свойств первого состояния указанного первого видеопроцессора, при этом свойства указанного первого состояния включают одно или более из используемых параметров изображения и значений выборок опорных изображений; и
компонент для передачи второму видеопроцессору сообщения, включающего указанную индикацию;
причем указанная первая индикация используется указанным вторым видеопроцессором для проверки совпадения указанного первого состояния указанного первого видеопроцессора и второго состояния указанного второго видеопроцессора,
при этом один из первого видеопроцессора и второго видеопроцессора является видеокодером с использованием видеокодирования с предсказанием, а другой из первого видеопроцессора и второго видеопроцессора является видеодекодером, способным восстанавливать декодированную видеопоследовательность из кодированного потока битов, сформированного указанным видеокодером.
23. Видеопроцессор, сконфигурированный для приема от другого видеопроцессора сообщения, содержащего первую индикацию одного или более свойств первого состояния указанного другого видеопроцессора, при этом видеопроцессор включает:
компонент для формирования второй индикации одного или более свойств второго состояния видеопроцессора; и
компонент для проверки совпадения первого и второго состояний указанного другого видеопроцессора и указанного видеопроцессора путем сравнения указанных первой и второй индикации,
причем свойства указанного первого состояния и свойства указанного второго состояния включают одно или более из используемых параметров изображения и значений выборок опорных изображений, и
один из указанных видеопроцессора и другого видеопроцессора является видеокодером с использованием видеокодирования с предсказанием, а другой из указанных видеопроцессора и другого видеопроцессора является видеодекодером, способным восстанавливать декодированную видеопоследовательность из кодированного потока битов, сформированного указанным видеокодером.
Описание изобретения к патенту
Область применения и существующий уровень техники
Настоящее изобретение относится к области видеокодирования с предсказанием, в частности к обеспечению правильного соответствия между состояниями кодера и декодера.
В большинстве существующих алгоритмов сжатия видеосигнала требуется хранение информации о состоянии декодера между декодированием изображений. Одним из примеров является опорное изображение (изображения), используемое для предсказания при переходе к следующему изображению. При возникновении ошибок во время передачи потока битов от кодера к декодеру состояние декодера обычно искажается. Однако только в некоторых случаях декодер может определить наличие искажений в потоке битов самостоятельно. В остальных случаях для определения наличия возможных искажений могут применяться внешние средства (например, последовательная нумерация передаваемых пакетов).
Искажение состояния декодера может произойти вследствие ошибок во время передачи потока битов. Если большинство транспортных пакетов содержит указание на возможное искажение потока битов, то декодер не может определить, в каком фрагменте данных произошло искажение (если вообще возможно определить, что произошло искажение данных). Например, поврежденный слайс данных может привести к искажению опорного изображения, которое используется для последующего предсказания, а искажения или потери при передаче набора внутриполосных параметров могут привести к потере или искажению набора параметров, который в дальнейшем будет использоваться как опорный.
До настоящего изобретения отсутствовал алгоритм, позволяющий кодеру сообщать декодеру информацию о своем внутреннем состоянии простым способом. Также ранее отсутствовал механизм, позволяющий декодеру информировать кодер о своем внутреннем состоянии, не принимая решения о наличии искажений (или отсутствии искажений). Другими словами, не существовало средств, с помощью которых декодер мог бы (например, периодически) информировать кодер о своем состоянии, не выполняя обнаружение ошибок и не передавая информации, которая в явном виде сообщает кодеру о наличии или отсутствии искажений.
В существующем уровне техники известны следующие сообщения обратной связи декодера с кодером. Все они явным образом несут информацию о наличии или отсутствии искажений. Чтобы сформировать такие сообщения, в существующей технике отправитель сообщения (декодер) должен произвести обнаружение ошибок.
Сообщения обратной связи об опорном изображении NEWPREAD (например, см. Kimata H. и др. «Study on Adaptive Reference Picture Selection Coding Scheme for the NEWPRED Receiver-Oriented Mobile Visual Communication» (Исследование адаптивной схемы кодирования с выбором опорного изображения на стороне приемника NEWPREAD для мобильной видеосвязи, IEEE Global Telecommunications Conference, ноябрь 8-12, 1998 (8 стр.), рекомендации Н.263 МСЭ-Т Приложение N): Декодер может информировать кодер об известном наличии или отсутствии искажений в опорном изображении с определенным идентификатором. Кодер, получив эту информацию, может использовать предыдущее опорное изображение, которое должно быть неповрежденным (в декодере) для предсказания следующего изображения. Однако декодер не может просто отправить информацию о своем состоянии и позволить кодеру принять решение о наличии или отсутствии искажений. Другими словами, процедуру обнаружения ошибок должен выполнять декодер, а не кодер.
Сигнализация по обратному каналу о потере пакетов (например, ARQ; Automatic Repeat reQuest - автоматический запрос на повтор): При таком способе по обратному каналу передается информация о потере пакета с целью инициировать повторную передачу. В этой информации сообщается состояние приемника (потеряны пакеты х, y, z). Однако это «состояние» не является состоянием в смысле состояния видеодекодера, которое касается информационных объектов, отличных от пакетов.
Запрос изображения с полным внутренним кодированием (Full Intra Request), индикация потери изображения, индикация потери фрагмента данных и аналогичные способы контроля видеосигнала, указывающие на искажение: Эти способы поддерживаются множеством различных стандартов, например, в Интернет-проекте «Extended RTP Profile for RTCP-based Feedback (RTP/AVPF)» (Расширенный профиль протокола реального времени для обратной связи на основе протокола управления в реальном времени); AVPF см. http://www.ietf.org/internet-draft/draft-ietf-avt-rctp-feedback-11.txt, или в рекомендациях Н.245 МСЭ-Т. Эти способы требуют выполнения обнаружения ошибок в декодере.
Предметом настоящего изобретения является обеспечение средств для проверки совпадения состояний кодера и декодера. В настоящем изобретении обнаружение ошибок производится приемником сообщения в отличие от вышеописанного существующего уровня техники, где требуется производить обнаружение ошибок в отправителе сообщения. Кроме того, сообщения обратной связи современного уровня техники несут информацию о наличии или отсутствии искажений, в то время как сообщения в соответствии с настоящим изобретением являются "нейтральными".
Сущность изобретения
Настоящее изобретение обеспечивает средства для вычисления контрольной суммы в видеокодере, сигнал для передачи информации о контрольной сумме из видеокодера в видеодекодер, средства для проверки целостности информации о состоянии видеодекодера, а также средства для передачи информации о состоянии видеодекодера в видеокодер.
Одним аспектом настоящего изобретения является способ проверки совпадения состояний первого видеопроцессора и второго видеопроцессора. При этом один из указанных видеопроцессоров является видеокодером с функцией видеокодирования с предсказанием, а другой из указанных видеопроцессоров является видеодекодером с возможностью восстановления декодированного видеосигнала из кодированного потока битов, формируемого указанным видеокодером. Данный способ включает:
- формирование указанным первым видеопроцессором первого признака одного или более свойств первого состояния указанного первого видеопроцессора; и
- передачу сообщения, содержащего указанный признак, указанному второму видеопроцессору.
Это сообщение также включает дополнительную информацию, которая позволяет второму видеопроцессору определить, для каких свойств был сформирован указанный признак. Этот способ согласно настоящему изобретению позволяет согласовывать состояния видеокодеров и декодеров с целью выполнения соответствующих процедур обработки ошибок в случае искажения кодированного потока битов, связанного с его передачей или другими причинами.
В соответствии с примером осуществления настоящего изобретения представленный способ также включает:
- формирование указанным вторым видеопроцессором второго признака указанных свойств второго состояния указанного второго видеопроцессора; и
- проверку совпадения указанных первого и второго состояний указанных первого и второго видеопроцессоров посредством сравнения указанных первого и второго признаков.
В соответствии с примером осуществления настоящего изобретения представленный способ также включает:
- выполнение процедур обработки ошибок в случае, если указанные состояния не совпадают.
В соответствии с примером осуществления настоящего изобретения указанный признак включает контрольную сумму, причем указанная операция формирования признака включает:
- вычисление указанной контрольной суммы.
Необходимо как-то стандартизировать процедуру вычисления, для того чтобы обеспечить возможность взаимодействия кодеров и декодеров от различных производителей.
В соответствии с примером осуществления настоящего изобретения указанная контрольная сумма вычисляется с помощью по меньшей мере одного алгоритма из группы алгоритмов, включающей двоичную копию, «исключающее ИЛИ» (XOR), циклический избыточный код (Cyclic Redundancy Code; CRC), алгоритм безопасного хеширования (Secure Hash Algorithm; SHA1), определенный Национальным институтом стандартов и технологии США (NIST), публикация FIPS 180: Secure Hash Standard (Стандарт безопасного хеширования; SHS), май 1993 г., или MD5 (Message Digest 5 -профиль сообщения 5), сформулированный в RFC IETF 1321.
В соответствии с примером осуществления настоящего изобретения признак включает кодированную копию указанных свойств указанного первого состояния в соответствии по меньшей мере с одним методом кодирования из группы, включающей двоичное кодирование, с основанием 16 (BASE16), с основанием 64 (BASE64), см. IETF RFC 3548 и абстрактную синтаксическую нотацию l (Abstract Syntax Notation 1; ASN.1, см. рекомендации Х.680 МСЭ-Т).
В соответствии с примером осуществления настоящего изобретения указанные свойства указанного первого состояния включают по меньшей мере одно из следующего:
- активные наборы параметров изображения (Picture Parameter Set, PPS);
- активные наборы параметров последовательности (Sequence Parameter Set, SPS);
- наборы параметров изображения (PPS) с индексом х;
- наборы параметров последовательности (SPS) с индексом х;
- наборы параметров изображения (PPS) с индексом х и соответствующие наборы параметров последовательности (SPS)
- все наборы параметров изображения (PPS);
- все наборы параметров последовательности (SPS);
- самое последнее опорное изображение в буфере декодированного изображения (Decoded Picture Buffer; DPF);
- все опорные изображения в буфере DPF, используемые для предсказания;
- все опорные изображения в буфере DPF.
В соответствии с примером осуществления настоящего изобретения указанный первый видеопроцессор является указанным видеокодером, а указанный второй видеопроцессор является указанным видеодекодером.
В соответствии с примером осуществления настоящего изобретения указанное сообщение передается в указанном потоке битов и может использоваться в качестве сообщения SEI (Supplemental Enhancement Information - дополнительная информация для повышения качества изображения).
В соответствии с примером осуществления настоящего изобретения указанное сообщение передается отдельно от указанного потока битов и может включать в себя информацию синхронизации для связывания указанного признака, например, контрольной суммы, с точкой генерирования указанного признака. То есть, такое сообщение, передаваемое вне полосы пропускания, должно быть синхронизировано с потоком битов.
В соответствии с примером осуществления настоящего изобретения указанный первый видеопроцессор является указанным видеодекодером, а указанный второй видеопроцессор является указанным видеокодером.
В соответствии с примером осуществления настоящего изобретения указанное сообщение передается с использованием по меньшей мере одного протокола из группы протоколов, включающей протокол RTCP (Real-Time Control Protocol - протокол управления в реальном времени, см. комментарий RFC 3550 IETF, рекомендации Н225 и Н.245 МСЭ-Т).
В соответствии с примером осуществления настоящего изобретения указанное сообщение также включает информацию для синхронизации указанного признака, например, контрольной суммы, с точкой формирования указанного признака.
В соответствии с другим аспектом настоящего изобретения обеспечивается носитель данных с возможностью считывания компьютером, содержащий фрагменты кода для подачи инструкций процессору на выполнение следующих операций:
- формирования в первом видеопроцессоре первого признака одного или более свойств первого состояния указанного первого видеопроцессора; и
- передачи сообщения, включающего указанный признак, второму видеопроцессору.
В примере осуществления изобретения носитель данных с возможностью считывания компьютером содержит также фрагменты кода для подачи инструкций процессору на выполнение следующих дополнительных операций:
- формирования в указанном втором видеопроцессоре второго признака указанных свойств второго состояния указанного второго видеопроцессора; и
- проверки совпадения первого и второго состояний указанных первого и второго видеопроцессоров посредством сравнения первого и второго признаков.
В соответствии с третьим аспектом настоящего изобретения обеспечивается система для проверки совпадения состояний первого видеопроцессора и второго видеопроцессора, причем одним из указанных видеопроцессоров является видеокодер с функцией видеокодирования с предсказанием, а другим из указанных видеопроцессоров является видеодекодер с возможностью восстановления декодированного видеосигнала из кодированного потока битов, формируемых указанным видеокодером. В данной системе первый видеопроцессор содержит:
- компонент для формирования первого признака одного или более свойств первого состояния указанного первого видеопроцессора; и
- компонент для передачи сообщения, содержащего указанный признак, второму видеопроцессору;
а второй видеопроцессор содержит:
- компонент для формирования второго признака указанных свойств второго состояния указанного второго видеопроцессора; и
- компонент для проверки совпадения первого и второго состояний указанных первого и второго видеопроцессоров посредством сравнения первого и второго признаков.
В примере осуществления изобретения второй видеопроцессор также включает:
- компонент для выполнения процедур обработки ошибок в случае, если указанные состояния не совпадают.
Краткое описание чертежей
На чертежах представлен пример для демонстрации принципов работы настоящего изобретения.
На чертежах:
- на фиг.1 представлена блок-схема операций для реализации предложенного способа;
- на фиг.2 представлена реализация системы настоящего изобретения.
Подробное описание изобретения
Основные отличия между сообщениями, передаваемыми в соответствии с настоящим изобретением, и сообщениями, передаваемыми по каналу обратной связи в существующей технике, заключаются в двух аспектах:
а) применяемые обычно сообщения обратной связи сообщают о наличии или отсутствии искажений, в то время как сообщения в соответствии с настоящим изобретением являются "нейтральными"; и
б) чтобы формировать сообщения в известном уровне техники, необходимо выполнять обнаружение ошибок в передатчике сообщений, в то время как в настоящем изобретении обнаружение ошибок производится в приемнике сообщений.
В последующем подробном описании используется терминология, применяемая в рекомендациях МСЭ-Т в стандарте сжатия видеосигналов Н.264. При этом любому специалисту в этой области должно быть очевидно, что настоящее изобретение будет работать аналогично и с другими стандартными и нестандартными алгоритмами сжатия видеосигналов, в которых используется кодирование с предсказанием. Настоящее изобретение не ограничивается использованием рекомендации Н.264.
На фиг.1 представлена блок-схема операций для примера осуществления изобретения. После старта на шаге 102 первый видеопроцессор вычисляет контрольную сумму для состояния первого видеопроцессора в соответствии с одним из алгоритмов, которые описываются далее. Существует несколько свойств, которые могут быть использованы в данном случае, о них будет сказано ниже.
На шаге 104 первый видеопроцессор передает сообщение, содержащее вычисленную контрольную сумму, второму видеопроцессору. Второй видеопроцессор на шаге 106 решает, следует ли игнорировать это сообщение, то есть пропустить ли операцию проверки на наличие ошибок. Если решение положительное, то процесс начинается сначала.
Если принимается решение, что данное сообщение следует использовать для проверки на наличие ошибок, то на шаге 108 второй видеопроцессор вычисляет контрольную сумму для такого же свойства, как первый видеопроцессор. Необходимо обеспечить, чтобы оба видеопроцессора использовали одинаковый стандарт/алгоритм для вычисления контрольной суммы.
На шаге 110 определяется, совпадают ли эти две контрольные суммы. В случае совпадения дальнейших действий не требуется (шаг 112) и процесс начинается сначала.
В случае если контрольные суммы не совпадают, на шаге 114 выполняются соответствующие процедуры обработки ошибок. Если первый видеопроцессор является видеокодером, (прямая передача информации о контрольной сумме), то, например, может быть отправлено общепринятое сообщение обратной связи, запрос на повторную передачу опорного изображения и т.п. Если первый видеопроцессор является видеодекодером (обратная передача информации о контрольной сумме), то видеокодер, выступающий в качестве приемника сообщения о контрольной сумме, может воздерживаться от использования искаженной информации о состоянии в декодере, например, не будет использовать для предсказания конкретные опорные изображения, имеющие искажения.
Ниже приводятся два варианта применения настоящего изобретения:
Вариант 1: Передатчик видеосигнала облегчает задачу выполнения обнаружения ошибок в приемнике видеосигнала. Видеопередатчик вычисляет контрольную сумму по информации о своем состоянии в данный момент времени и передает приемнику информацию о состоянии с помощью сообщения SEI в соответствии с рекомендацией Н.264. В ответ на это сообщение приемник вычисляет аналогичную контрольную сумму по своему состоянию и, если эти контрольные суммы не совпадают, выполняет соответствующую процедуру (например, отправляет общепринятое сообщение обратной связи, такое как запрос на выбор опорного изображения, полный внутренний запрос и т.п.). Примеры сообщений обратной связи известного уровня техники см. в рекомендации Rec.245 МСЭ-Т.
Вариант 2: Видеодекодер выполняет проверку целостности своего состояния по своей инициативе (например, имеется вероятность искажения, но данные об этом отсутствуют). Видеодекодер вычисляет контрольную сумму по элементам своего состояния, которые требуется проверить, и отправляет видеокодеру эту контрольную сумму вместе с информацией синхронизации. Видеокодер проверяет, является ли состояние декодера верным. Если да, то выполнять другие действия не требуется. Если нет, то видеокодер определяет, в каком фрагменте данных существует проблема и реагирует соответствующим образом. Возможны следующие действия:
- во время процесса кодирования следующих изображений кодер не опирается на опорные изображения, которые, как стало известно (после получения контрольной суммы), имеют искажения в декодере;
- выполняется передача наборов параметров, которые, как стало известно, имеют искажения, и/или в процессе кодирования последующих изображений не используется опора на наборы параметров, которые имеют искажения;
- при искажении большей части параметров состояния (наихудший случай) производится восстановление полной информации о состоянии в декодере посредством передачи полного набора параметров и изображения IDR (Independent Decoder Refresh Point - независимая точка обновления декодера).
Прежде всего, покажем, как с помощью сообщения, передаваемого от кодера к декодеру, можно облегчить задачу обработки ошибок в декодере (Вариант 1).
С целью упрощения в этой части описания допускается, что используются фиксированные наборы параметров и одно опорное изображение. В таком случае большая часть состояния декодера стандарта Н.264, которое может иметь искажения при возникновении ошибок в потоке битов, лежит в опорном изображении.
Части состояния кодека, не связанные с единственным опорным изображением, описываются далее.
В соответствии с этим аспектом настоящего изобретения кодер сначала вычисляет контрольную сумму по данным YUV (цветовое пространство) опорного изображения. Точный алгоритм для такого вычисления подлежит стандартизации, так как для получения одинаковых результатов кодер и декодер должны выполнять эквивалентные операции. Простым способом вычисления контрольной суммы является использование циклического избыточного кода (CRC) длиной 16 битов, причем CRC должен вычисляться по 8 младшим разрядам экземпляров цветовых плоскостей Y, U, V в порядке сканирования, соответственно.
Также возможно использование других видов вычисления контрольной суммы. Например, могут применяться более усовершенствованные алгоритмы, такие как SHA1, MD5 или другие часто используемые процедуры проверки целостности данных. Возможно также изменить порядок цветовых плоскостей. Как уже упоминалось, кодер и декодер должны выполнять операции по вычислению контрольной суммы одинаковым способом.
После вычисления контрольной суммы выполняется ее преобразование к соответствующему виду (например, двоичный код, с основанием 16 (base 16), с основанием 64 (base 64) и т.п.) и помещение в поток битов, например, в форме сообщения SEI. Альтернативным способом является передача такого сообщения вне полосы пропускания, то есть отдельно от потока битов, посредством применения соответствующего протокола. Примером такого протокола является RTCP Sender Report (сообщение передатчика по протоколу RTCP, см. рекомендации RFC 3550 IETF). В этом случае потребуются средства для обеспечения синхронизации сообщения с потоком битов видеосигнала; при использовании сообщений SEI синхронизация уже присутствует в неявном виде.
Затем кодер кодирует изображение и передает его. Когда декодер получает контрольную сумму (из сообщения SEI или внеполосной передачи) и кодированное изображение, он может принять решение игнорировать контрольную сумму, например, в начале цикла. Или декодер может выполнить сравнение принятой контрольной суммы и контрольной суммы, вычисленной из своего буфера опорного изображения. Если обе суммы совпадают, декодер точно знает, что его опорное изображение, которое запускается для декодирования текущего изображения, не имеет искажений.
Если тест на контрольную сумму не проходит, декодер может реагировать соответственно, например, передавать кодеру общепринятое сообщение обратной связи, которое указывает на искажение опорного изображения (например, в форме сообщения Full Intra Request (запрос изображения с полным внутренним кодированием) и вообще не выполняет декодирование потока битов. Такой алгоритм работы имеет много преимуществ: проверка на целостность данных производится в то время, когда поток битов нового изображения находится еще только в процессе приема, что приводит к ранней отправке общепринятого сообщения обратной связи. И, как уже упоминалось, при некоторых условиях искажения вообще невозможно обнаружить из потока битов и/или транспортного сигнала, в то время как в настоящем изобретении искажения обнаруживаются.
Сообщение SEI в полосе пропускания (или эквивалентное сообщение, передаваемое вне полосы) может передаваться так часто, как это требуется кодеру, таким образом позволяя выполнять настройку для выбора оптимального соотношение между возможностью обнаружения ошибок и объемом служебной информации, которая снижает производительность передачи.
Далее описывается, как с помощью сообщения, передаваемого от декодера к кодеру, можно обеспечить соответствующую реакцию кодера в зависимости от состояния декодера (вариант 2).
С целью упрощения снова предположим, что наборы параметров являются фиксированными и используется только одно опорное изображение.
В соответствии с этим аспектом изобретения декодер вычисляет контрольную сумму по данным опорного изображения, как описывается выше. В декодере устанавливается интервал, через который выполняются эти вычисления, например, после декодирования каждого изображения, через фиксированные интервалы времени, через изменяющиеся интервалы времени, определяемые требованиями внешних протоколов (например, интервал между двумя сообщениями приемника по проколу RTCP) и т.п. После того как контрольная сумма сформирована, декодер отправляет ее кодеру с помощью соответствующего протокола. Примером такого протокола является RTCP receiver reports (сообщения приемника по протоколу RTCP), см. RFC 3550 IETF. Некоторые из таких протоколов по определению могут поддерживать синхронизацию с передатчиком видеосигнала (например, в протоколе RTCP в форме временных меток); в других условиях сообщение должно содержать метку точки формирования изображения, из которого была вычислена контрольная сумма.
Кодер при получении сообщения может принять решение его игнорировать. Или кодер может проверить целостность своего локального опорного изображения с помощью принятой контрольной суммы. Необходимо отметить, что в таком случае может потребоваться, чтобы кодер вычислял контрольную сумму для всех изображений, которые он отправляет в течение времени задержки на прохождение сигнала в прямом (передача изображения) и обратном направлении (обратный канал).
Если кодер определяет, что в опорном изображении в декодере искажения отсутствуют, кодер продолжает работу в обычном режиме, что обычно включает в себя операции кодирования и передачи только изображений в режиме кодирования с предсказанием. Если кодер устанавливает, что в опорном изображении в декодере присутствуют искажения, кодер может реагировать соответственно, т.е. передает внутренне кодированное изображение.
Другие свойства состояния в большой степени зависят от используемой технологии кодера. Если опять взять в качестве примера стандарт Н.264, то можно определить по меньшей мере следующие категории информации о состоянии:
- наборы параметров; и
- (множественные) значения выборок опорных изображений.
Далее эти параметры кратко описываются.
Стандарт Н.264 вводит свой принцип наборов параметров для разделения данных, относящихся более чем к одному слайсу из слайсов /макроблоков/ блоков данных. В Н.264 требуется наличие «активного» параметра изображения и последовательности, когда запускается декодирование слайса, но не имеется каких-либо механизмов для проверки наборов параметров на целостность. Поэтому при условиях, способствующих появлению ошибок, будут полезными дополнительные алгоритмы проверки на целостность данных.
Существует два типа наборов параметров: наборы параметров изображения (Picture Parameter Sets; PPS) и наборы параметров последовательности (Sequence Parameter Sets; SPS). Оба типа параметров хранятся в нумерованных ячейках. Заголовок каждого слайса содержит индексную информацию для ссылки на активный PPS, а каждый PPS содержит индексную информацию о связанном SPS. Размер PPS может быть достаточно большим, несколько килобайт при определенных условиях. Для обеспечения масштабирования сложности в соответствии с настоящим изобретением контрольные суммы можно формировать по:
- активному(ым) PPS - стандарт Н.264 (2005) разрешает только один активный PPS, но следующие версии могут позволить использовать более одного,
- активному(ым) SPS - стандарт Н.264 (2005) разрешает только один активный SPS, но следующие версии могут позволить использовать более одного,
- активному(ым) PPS и активному(ым) SPS (при этом используется конвертирование всех наборов параметров, относящихся к декодированию текущего изображения (самый распространенный вариант)),
- PPS с индексом х,
- SPS с индексом х,
- PPS с индексом х и SPS, на который ссылается PPS с индексом х,
- все PPS,
- все SPS,
- все PPS и SPS.
Стандарт Н.264 версии 2005 года не содержит информацию инициализации для наборов параметров. Другими словами, значение отдельного параметра в наборе параметров не определено до выполнения его передачи в первый раз. Алгоритм вычисления контрольной суммы для наборов параметров необходимо разработать, принимая во внимание это свойство. Одним из возможных решений является внесение всех параметров в неинициализированный набор параметров со значением ноль. Также возможны другие решения и они являются очевидными для специалиста. Точное решение не относится к настоящему изобретению, необходимо только соблюдать условие, что в кодере и декодере должен использоваться одинаковый алгоритм.
В стандарте Н.264, а также в некоторых более ранних стандартах сжатия видеосигналов, таких как стандарт Н.263 при использовании приложения N или U, или стандарт MPEG-2 Part 2 (см. 14496-2 ISO/IEC) с применением профиля ARTS (Advanced Real-Time Simple Profile - усовершенствованный простой профиль в реальном времени) может использоваться более одного опорного изображения. Используемое опорное изображение характеризуется тем, что можно назвать «временным компонентом» трехмерного вектора движения. В зависимости от стандарта векторный компонент может быть частью изображения, слайса или синтаксическими уровнями макроблоков. Н.264 также позволяет выполнять двойное предсказание из двух опорных изображений.
При использовании нескольких опорных изображений является целесообразным проводить проверку на целостность этих опорных изображений, всех или части их них. Наиболее распространенные случаи представлены в настоящем описании, но специалистам в данном вопросе известны другие варианты, которые равным образом могут использоваться для конкретных применений.
В соответствии с настоящим изобретением прежде всего рассматриваются следующие варианты:
- самое последнее опорное изображение в буфере DPB (Decoded Picture Buffer - буфер декодированного изображения); оно в большинстве случаев (пока не будет перемещено командой ММСО (Memory Management Control Operation в стандарте Н.264 - операция управления памятью)) является предварительно декодированным изображением, в котором с большой вероятностью присутствуют искажения,
- все опорные изображения в буфере DPB, которые используются для предсказания; применяются прежде всего для направления кодер - декодер в представленном способе настоящего изобретения; контрольная сумма вычисляется по всем опорным изображениям, используемым для предсказания изображения, подлежащего кодированию,
- все опорные изображения в буфере DPB.
Стандарт Н.264 в версии 2005 года включает поддержку цветовых пространств, отличных от YUV 4:2:0. Один алгоритм формирования контрольной суммы для цветового пространства YUV 4:2:0 уже был представлен выше. Специалист сможет разработать алгоритм контрольной суммы для других цветовых пространств. Структура таких алгоритмов контрольной суммы принципиально не имеет отношения к настоящему изобретению при условии, что в кодере и декодере используется один и тот же принцип.
На фиг.2 представлена реализация системы настоящего изобретения. Первый видеопроцессор 2 включает элемент 4 для формирования первого признака одного или более свойств первого состояния указанного первого видеопроцессора и компонент 6 для передачи сообщения 14, включающего указанный признак, второму видеопроцессору 12. Второй видеопроцессор 12 включает компонент 8 для формирования второго признака указанных свойств указанного второго видеопроцессора и компонент 10 для проверки совпадения указанных первого и второго состояний указанных первого и второго видеопроцессоров посредством сравнения указанных первого и второго признаков.
В еще одном варианте осуществления изобретения используется дополнительный компонент для выполнения процедур обработки ошибок в случае, если состояния процессоров не совпадают.
Класс H04N7/66 с использованием резервных кодов
цифровой радиовещательный приемник (варианты) и способ обработки сигналов - патент 2508605 (27.02.2014) |
Класс H04N5/14 схемы видеотракта для диапазона видеочастот
Класс G06F11/08 обнаружение и исправление ошибок с помощью избыточности в представлении данных, например с помощью корректирующих кодов