УСТРОЙСТВО КОДИРОВАНИЯ, УСТРОЙСТВО ПЕРЕДАЧИ И УСТРОЙСТВО ПРИЕМА
ENCODING DEVICE, TRANSMITTING DEVICE  AND RECEIVING DEVICE

Область техники, к которой относится изобретение
Настоящая технология относится к устройству кодирования, устройству передачи и устройству приема и, в частности, к устройству кодирования, формирующему видеоданные, имеющие часть с переключаемой частотой кадров и т.п.
Уровень техники
Частота кадров существующих широковещательных служб устанавливается равной, например, 29,97 Гц. Имеется, однако, возможность, чтобы в будущем также обеспечивалась широковещательная служба, адаптированная к другой частоте кадров (например, смотрите патентную литературу 1). В этом случае также рассматривается ситуация, в которой распространяются видеоданные, имеющие часть с переключаемой частотой кадров в середине данных.
Литература
Патентная литература
Патентная литература 1: 2011-172164A JP
Раскрытие изобретения
Техническая проблема
Задача настоящей технологии состоит в том, чтобы позволить приемной стороне легко обеспечивать непрерывность отображения, когда распространяются видеоданные, имеющие часть с переключаемой частотой кадров.
Решение проблемы
Концепция настоящей технологии заключается в устройстве передачи, содержащем: блок кодирования изображения, выполненный с возможностью формирования видеоданных, имеющих часть кодированных данных изображения первой последовательности, переключаемую на кодированные данные изображения второй последовательности, имеющей частоту кадров, отличную от первой последовательности; и блок передачи, выполненный с возможностью передачи в заданном формате контейнера, содержащего сформированные видеоданные. Блок кодирования изображения выполняет кодирование таким образом, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности.
В настоящей технологии формируются видеоданные, имеющие часть, в которой кодированные данные изображения первой последовательности переключаются на кодированные данные изображения второй последовательности, имеющей частоту кадров, отличную от первой последовательности. В этом случае в блоке кодирования изображения кодирование выполняется таким образом, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности.
Блок передачи передает в заданном формате контейнер, содержащий описанные выше видеоданные. Контейнер может быть, например, транспортным потоком (MPEG 2 TS), который использовался в цифровых широковещательных стандартах. Кроме того, контейнером может быть, например, МР4, который использовался при распространении в Интернете и т.п., или контейнером в отличном от него формате.
В настоящей технологии, представленной выше, кодирование выполняется таким образом, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого изображения кодированных данных изображения второй последовательности. Таким образом, например, приемная сторона может легко обеспечивать непрерывность отображения между первой последовательностью и второй последовательностью.
В настоящей технологии, например, блок кодирования изображения может выполнять кодирование способом, в котором кодированные данные изображения первой последовательности и кодированные данные изображения второй последовательности имеют одно и то же количество задержанных кадров от момента декодирования до момента отображения. Выполнение кодирования таким способом, например, позволяет стороне приема избежать отказа буфера.
В настоящей технологии, например, блок кодирования изображения может выполнять кодирование способом, при котором момент декодирования первого изображения кодированных данных изображения второй последовательности устанавливается таким как момент, полученный добавлением периода времени одного кадра кодированных данных изображения первой последовательности к моменту декодирования последнего кадра кодированных данных изображения первой последовательности. Выполняя кодирование таким способом, сторона приема может, например, легко обеспечивать непрерывность моментов декодирования первой последовательности и второй последовательности и может явно избегать задержки считывания первого кадра второй последовательности.
В настоящей технологии, например, может быть дополнительно введен блок вставки информации, выполненный с возможностью вставки информации, указывающей, имеет ли место переключение частоты кадров в каждом фрагменте кодированных данных изображения каждого кадра видеоданных. В этом случае, например, когда информация указывает, что переключение частоты кадров существует, к предшествующей информации может быть добавлена информация, указывающая значение измененной частоты кадров. Вставляя информацию таким образом, сторона приема может легко устанавливать точку переключения с первой последовательности на вторую последовательность.
В настоящей технологии, например, может дополнительно быть введен блок вставки в пакет, содержащий видеоданные, информации, выполненный с возможностью вставки информации, уведомляющей о переключении с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности. В этом случае, блок вставки информации может, например, вставить информацию уведомлении в поле расширения пакета PES, который вводит кодированные данные изображения каждого кадра в свою полезную нагрузку. Вставляя информацию уведомления таким образом, сторона приема может легко определить переключение с первой последовательности на вторую последовательность.
В этом случае, например, информация уведомления может содержать информацию, указывающую, существует ли разрыв при изменении значения времени декодирования. Затем, когда информация указывает, что разрыв существует, к информации может быть добавлено, например, значение обратного отсчета количества кадров до того кадра, при котором произошел разрыв.
Кроме того, в этом случае, например, информация уведомления может содержать информацию, указывающую, ^переключается ли период времени отображения каждого кадра. Затем, когда информация указывает переключение, например, значение обратного отсчета количества кадров до переключения может быть добавлено к предшествующей информации.
В настоящей технологии, например, дополнительно может быть введен блок вставки информации, выполненный с возможностью вставки на уровень контейнера информации, уведомляющей о переключении с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности. В этом случае, например, информация уведомления может содержать информацию о частоте кадров первой последовательности и о частоте кадров второй последовательности. Вставляя информацию уведомления таким образом, сторона приема может определять переключение с первой последовательности на вторую последовательность.
Другой концепцией настоящей технологии является устройство приема, содержащее: блок приема, выполненный с возможностью приема контейнера в заданном формате, который содержит видеоданные, имеющие часть, переключаемую с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, имеющей частоту кадров, отличную от первой последовательности. Видеоданные кодируются таким образом, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности. Устройство приема дополнительно содержит блок декодирования изображения, выполненный с возможностью декодирования видеоданных, содержащихся в принятом контейнере, чтобы получить данные изображения с поддерживаемой непрерывностью отображения между первой последовательностью и второй последовательностью.
В настоящей технологии блок приема принимает контейнер в заданном формате. Этот контейнер содержит видеоданные, имеющие часть, переключенную с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, имеющей частоту кадров, отличную от первой последовательности. Кроме того, блок декодирования изображения декодирует видеоданные, содержащиеся в принятом контейнере, и получает данные изображения с поддерживаемой непрерывностью отображения между первой последовательностью и второй последовательностью.
Здесь видеоданные кодируются таким образом, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности, устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности. Таким образом, непрерывность отображения между первой последовательностью и второй последовательностью может быть легко обеспечена.
В настоящей технологии, например, перед одним и тем же самым моментом времени блок декодирования изображения может декодировать кодированные данные изображения каждого кадра второй последовательности в момент времени, синхронизированной с моментом декодирования кодированных данных изображения каждого кадра первой последовательности. В этом случае можно избежать реализации, в которой одновременно генерируются два асинхронных сигнала кадровой синхронизации.
В настоящей технологии, например, информация, уведомляющая о переключении с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, может быть вставлена по меньшей мере в пакет, содержащий видеоданные, или на уровень контейнера. Процесс работы блока декодирования изображения может управляться, основываясь на информации уведомления.
Другой концепцией настоящей технологии является устройство, приема, содержащее: блок приема, выполненный с возможностью приема видеоданных, имеющих часть, переключаемую с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, имеющие частоту кадров, отличную от первой последовательности; и блок обработки, выполненный с возможностью обработки принятых видеоданных. Видеоданные кодируются таким образом, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности.
В настоящей технологии блок приема принимает видеоданные, имеющие часть, переключаемую с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, имеющей частоту кадров, отличную от первой последовательности. Кроме того, блок обработки обрабатывает принятые видеоданные.
В этом случае видеоданные кодируются таким образом, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности. Соответственно, например, непрерывность отображения между первой последовательностью и второй последовательностью может быть легко обеспечена.
Эти видеоданные могут кодироваться таким образом, что, например, кодированные данных изображения первой последовательности и кодированные данные изображения второй последовательности имеют одно и то же количество задержанных кадров, начиная от декодирования и до отображения. Кроме того, например, видеоданные могут кодироваться таким образом, что момент декодирования первого кадра кодированных данных изображения второй последовательности устанавливается на момент времени, полученный добавлением периода времени одного кадра кодированных данных изображения первой последовательности к моменту декодирования последнего кадра кодированных данных изображения первой последовательности.
Предпочтительные результаты изобретения
В соответствии с настоящей технологией, сторона приема может легко обеспечивать непрерывность отображения. Следует заметить, что, описанные здесь эффекты, не обязательно являются ограничением и может быть продемонстрирован любой эффект, описанный в настоящем раскрытии.
Краткое описание чертежей
Фиг. 1 - блок-схема примера конфигурации системы передачи и приема варианта осуществления.
Фиг. 2 - блок-схема примера конфигурации устройства передачи.
Фиг. 3 - пример управления HRD кодера для обеспечения непрерывности отображения.
Фиг. 4 - пример управления HRD кодера.
Фиг. 5 - пример структуры интерфейса Для вставки информации временного обновления SEI и примерная структура "temporal_refresh_information ()".
Фиг. 6 - содержание основной информации примера структуры "temporal_refresh_information ()".
Фиг. 7 - блок-схема примера конфигурации кодера.
Фиг. 8 - пример блок-схемы последовательности выполнения операций кодера.
Фиг. 9 - пример структуры данных (pes_extension_field_data) поля расширения PES и содержание его основной информации.
Фиг. 10 - пример структуры временной информации о разрыве "temporal_discontinuity_information ()".
Фиг. 11 - содержание основной информации примерной структуры временной информации о разрыве "temporal_discontinuity_information ()".
Фиг. 12 - пример преобразования информации, относящейся к непрерывности отображения во время переключения с первой последовательности (последовательности А) на вторую последовательность (последовательность В).
Фиг. 13 - примерная структура дескриптора видеопараметров "Video_parameter_descriptor".
Фиг. 14 - содержание основной информации примерной структуры дескриптора видеопараметров "Video_parameter_descriptor".
Фиг. 15 - блок-схема примера конфигурации мультиплексора.
Фиг. 16 - пример блок-схемы последовательности выполнения операций мультиплексора.
Фиг. 17 - пример конфигурации транспортного потока TS.
Фиг. 18 - блок-схема примера конфигурации устройства приема.
Фиг. 19 - блок-схема примера конфигурации демультиплексора.
Фиг. 20 - пример блок-схемы последовательности выполнения операций демультиплексора.
Фиг. 21 - блок-схема примера конфигурации декодера.
Фиг. 22 - пример временной диаграммы переключения сигнала Vsync кадровой синхронизации.
Фиг. 23 - другой пример временной диаграммы переключения сигнала Vsync кадровой синхронизации.
Фиг. 24 - пример управления HRD кодера для обеспечения непрерывности отображения и непрерывности декодирования.
Осуществление изобретения
Здесь далее будут описаны варианты осуществления для реализации настоящей технологии (здесь далее упоминаемые как "варианты осуществления"). Заметим, что описание будет представлено в следующем порядке.
1. Вариант осуществления
2. Модифицированный пример
1. Вариант осуществления
Система передачи и приема
На фиг. 1 пример конфигурации системы 10 передачи и приема показан как вариант осуществления. Эта система 10 передачи и приема выполнена с возможностью присутствия в ней устройства 100 передачи и устройства 200 приема.
Устройство 100 передачи передает транспортный поток TS, являющийся контейнером, заставляя поток переноситься на широковещательных радиоволнах. Этот транспортный поток TS содержит видеопоток, имеющий часть с переключаемой частотой кадров, часть, которая переключается с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, имеющей частоту кадров, отличную от первой последовательности.
Предполагается, что кодирование выполняется, например, по стандарту H.264/AVC, H.265/HEVC и т.п. При этом кодирование выполняется таким образом, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности. Соответственно, сторона приема, например, может легко обеспечивать непрерывность отображения между первой последовательностью и второй последовательностью.
Информация, указывающая, существует ли изменение частоты кадров, вставляется в кодированные данные изображения каждого кадра видеопотока. Соответственно, сторона приема может легко установить, например, точку переключения с первой последовательности на вторую последовательность.
Кроме того, информация, уведомляющая о переключении с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, вставляется в пакет, содержащий видеопоток, например, в пакет PES. Кроме того, информация, уведомляющая о переключении с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, вставляется на уровень контейнера, то есть, уровень транспортного потока. Соответственно, сторона приема может легко определить, например, переключение с первой последовательности на вторую последовательность.
Устройство 200 приема принимает описанный выше транспортный поток TS, посланный посредством переноса на радиоволнах от устройства 100 передачи. Устройство 200 приема декодирует видеопоток, содержащийся в транспортном потоке TS, чтобы, получить данные изображения. Как описано выше, видеопоток кодируется таким образом, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности. Таким образом, могут быть получены данные изображения с поддерживаемой непрерывностью отображения между первой последовательностью и второй последовательностью.
Здесь информация, уведомляющая о переключении с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, вставляется по меньшей мере в один пакет, содержащий видеопоток и уровень контейнера. Процесс декодирования изображения управляется на основе этой информации уведомления. Например, часть, переключаемая с первой последовательности на вторую последовательность, устанавливается, основываясь на этой информации уведомлении, и выполняется переключение с тактового кадрового сигнала, синхронизированного с кодированными данными изображения первой последовательности, на тактовый кадровый сигнал, синхронизированный с кодированными данными изображения второй последовательности.
Кроме того, кодированные данные изображения каждого кадра второй последовательности декодируются в момент времени, синхронизированный с моментом времени декодирования кодированных данных изображения каждого первой последовательности перед описанным выше тем же моментом времени. Соответственно, например, можно избежать реализации, в которой одновременно генерируются два асинхронных сигнала кадровой синхронизации.
Конфигурация устройства передачи
На фиг. 2 показана примерная конфигурация устройства 100 передачи. Это устройство 100 передачи имеет центральный процессор (CPU) 101, кодер 102, буфер сжатых данных (буфер кодированного кадра или cpb) 103, мультиплексор 104 и блок 105 передачи. CPU 101 является блоком управления, который управляет операциями каждого блока устройства 100 передачи.
Кодер 102 принимает входной сигнал в виде несжатых данных изображения и выполняет их кодирование. Кодер 102 выполняет кодирование, например, по стандарту H.264/AVC, H.265/HEVC и т.п. В этом варианте осуществления несжатые данные изображения с разной частотой кадров вводятся в кодер 102 с переключением. Таким образом, кодер 102 формирует видеопотоки (видеоданные) с частью, имеющей переключаемую частоту кадров, то есть, с частью, которая переключается с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, имеющей другую частоту кадров.
Здесь кодер 102 выполняет кодирование таким образом, что момент окончания отображения последнего изображения кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности.
На фиг. 3 показан пример управления гипотетическим опорным декодером (Hypothetical Reference Decoder, HRD) кодера 102. Ступенчатая сплошная линия представляет прохождение объема данных, сгенерированных при кодировании, и каждая ступенька соответствует блоку одного кадра. Высота каждой ступеньки представляет объем данных, генерируемых при кодировании.
Момент времени Р0 указывает момент, в который первый байт кодированных данных изображения первого кадра первой последовательности (последовательности А) поступает в буфер кодированного кадра (cpd или буфер сжатых данных). Момент времени Р1 указывает момент, в который первый байт кодированных данных изображения последнего кадра первой последовательности поступает в cpd. Момент времени Р2 указывает момент, в который последний байт кодированных данных изображения последнего кадра первой последовательности поступает в cpd и первый байт кодированных данных изображения первого кадра второй последовательности (последовательности В) поступает в cpd.
Кроме того, Ra указывает входную битовую скорость передачи кодированных данных изображения первого кадра первой последовательности в cpd. Здесь, когда объем данных кодированных данных изображения первого кадра первой последовательности устанавливается равным Qa и предполагается, что данные вводятся в cpd в течение какого-то времени Та, Ra=Qa/Ta. В показанном примере представлен случай, в котором битовая скорость передачи кодированных данных изображения других кадров первой последовательности в cpd также устанавливается равной Ra.
Кроме того, Rb указывает входную битовую скорость передачи кодированных данных изображения первого кадра второй последовательности к cpd. Здесь, когда объем кодированных данных изображения первого кадра второй последовательности устанавливается равным Qb и предполагается, что данные вводятся в cpd за какое-то время Tb, то тогда Rb=Qb/Tb. В показанном примере представлен случай, в котором битовая скорость передачи кодированных данных изображения других кадров второй последовательности к cpd также устанавливается равной Rb. Следует заметить, что хотя Ra и Rb показаны как пример постоянной битовой скорости передачи (constant_bit_rate), они этим не ограничиваются, и тот же самый подход применяется к случай переменной битовой скорости передачи (variable_bit_rate).
Ступенчатая сплошная линия b представляет прохождение объема данных, используемых при декодировании, и каждая ступень соответствует блоку одного кадра. Высота каждой ступени представляет объем данных, используемых при декодировании. Qcpb представляет объем занятости cpd. Кодирование выполняется таким образом, что объем данных вписывается в размер cpb (емкости памяти) в любой момент времени.
В показанном примере первая последовательность состоит из 4 кадров, которые декодируются в порядке а0, a1, а2 и а3 и отображаются в порядке а0, а2, а3 и a1. В этом случае данные изображения каждого из декодированных кадров вводятся в буфер декодированного кадра (dpb или буфер несжатых данных). В этом примере количество кадров, задержанных после того, как декодируется первая последовательность, до их отображения, устанавливается равным 2.
Каждый из кадров первой последовательности декодируется и отображается в момент времени сигнала кадровой синхронизации (Vsync) с периодом времени, соответствующим его частоте кадров (частоте смены кадров). Например, кадры а0, a1, а2 и а3 декодируются в моменты времени Та (0), Та (1), Та (2) и Та (3), а отображение кадров а0, а2, а3 и a1 начинается в моменты времени Та (2), Та (3), Та (4) и Та (5).
Вторая последовательность состоит из 6 кадров, которые декодируются в порядке b0, b1, b2, b3, b4 и b5 и отображаются в порядке b1, b2, b0, b4, b5 и b3. В этом случае кодированные данные каждого из декодированных кадров вводятся в dpb. В этом примере количество задержанных изображений после того, как декодируется вторая последовательность, до их отображения, устанавливается равным 2, что то же самое, что и в первой последовательности. Соответственно, избегают отказа буфера.
Каждый из кадров второй последовательности декодируется и отображается в момент сигнала кадровой синхронизации (Vsync), с периодом времени, соответствующим его частоте кадров (частота смены кадров). Например, изображения b0, b1, b2, b3, b4 и b5 декодируются в моменты времени Tb (0), Tb (1), Tb (2), Tb (3), Tb (4) и Tb (5) и отображение кадров b1, b2, b0, b4, b5 и b3 начинается в моменты времени Tb (2), Tb (3), Tb (4), Tb (5), Tb (6) и Tb (7).
В этом примере момент окончания отображения последнего кадра первой последовательности становится тем же самым, что и момент начала отображения первого кадра второй последовательности. То есть, момент времени Та (6) устанавливается таким же, как момент Tb(2). Соответственно, обеспечивается непрерывность отображения между первой последовательностью и второй последовательностью.
В этом случае момент времени (Tb(0)), в который декодируется первый кадр второй последовательности, задерживается во времени на "Initial_cpb_removal_delay В" от момента времени (Р2), в который ведущий байт первого кадра второй последовательности начинает накопление в буфере сжатых данных (cpb). Если момент времени (Tb(0)) устанавливается позже, чем момент времени (Та(4)), задержки считывания первого изображения второй последовательности удается избежать.
На фиг. 4 также показан пример управления HRD. Этот пример является примером сравнения с описанным выше управлением HRD, показанным на фиг. 3. В этом примере момент времени (Tb(0)), в который декодируется первый кадр второй последовательности, устанавливается таким же, как момент времени (Та(4)), полученный добавлением период одного кадра второй последовательности к моменту времени (Та(3)), в который декодируется последний кадр первой последовательности.
В этом случае, хотя непрерывность в моменты декодирований первой последовательности и второй последовательности обеспечивается, непрерывность при отображении не обеспечивается. Другими словами, момент (Та(6)) окончания отображения последнего кадра первой последовательности отклоняется от момента (Tb(4)) начала отображения первого кадра второй последовательности. В этом случае, необходимо задержать отображение последнего кадра первой последовательности непосредственно до момента (Tb(4)), как показано позицией Р4.
Кроме того, кодер 102 вставляет информацию, указывающую, существует ли. изменение частоты кадров кодированных данных изображения каждого кадра видеопотока. Кодер 102 вставляет временную информацию обновления SEI (temporal_refresh_information SEI), которая заново определяет эту информацию как информацию префикса SEI (Prefix_SEI).
На фиг. 5(A) показана примерная структура (синтаксис) интерфейса (I/F) для вставки временной информации обновления SEI. Поле "uuid_iso_iec_11578" имеет значение UUID, указанное в "ISO/IEC 11578: 1996 Приложение А". "Temporal_refresh_information ()" вставляется в поле "user_data_payload_byte".
На фиг. 5(b) показана примерная структура (синтаксис) "temporal_refresh_information ()". На фиг. 6 показано содержание (семантика) основной информации примерной структуры. ID заданных данных пользователя приводится в 16-разрядном поле "userdata_id". 8-разрядное поле "temporal_refresh_information_length" указывает количество байтов "temporal_refresh_information" (отсчитывается от элемента, следующего за этим элементом).
1-разрядное поле "temporal_timing_discontinuity_flag" является флагом, указывающим разрыв, происходящий во временной информации отображения, и отметку времени. "1" указывает, что разрыв произошел. "0" указывает, что никакого разрыва не произошло. Когда флаг равен "1", представляются 8-разрядное поле "num_unit_in_tick" и 8-разрядное поле "times_scale".
8-разрядное поле "num_unit_in_tick" является количеством блоков, указывающим период отображения соответствующего среза или кадра. 8-разрядное поле "times_scale" указывает значение масштабирования временной информации. Здесь, вычисляя "times_scale" и "num_unit_in_tick", может быть получена. частота кадров (частота смены кадров).
На фиг. 7 показана примерная конфигурация кодера 102. Этот кодер 102 имеет блок 122 управления буферной задержкой, блок 123 установки гипотетического опорного декодера (HRD), блок 124 установки параметров/кодирования SEI, блок 125 кодирования среза и блок 126 пакетирования NAL.
Блок 122 управления буферной задержкой вычисляет значение "initial_cpb_removal_delay", которое является начальным значением буферирования последовательности, и значения "cpb_removal_delay" и "dpb_output_delay" для каждого кадра последовательностей, расположенных хронологически до и после переключения. В этом случае, чтобы гарантировать непрерывную связь отображения между этими двумя последовательностями, значениями "dpb_output_delay" и "cpb_removal_delay" этих двух последовательностей управляют так, что буферный выход dpb последнего кадра предыдущей последовательности становится следующим по времени непрерывным с выходом буфера dpb первого кадра изображения после последовательности (смотрите фиг. 3).
"Initial cpb removal time" указывает время (начальное время), отсчитываемое, когда декодируются кодированные данные изображения ведущего кадра группы кадров (Group of Pictures, GOP) из cpb (буфер сжатых данных). "cpb_removal_delay" является моментом временем, в который кодированные данные изображения каждого кадра извлекаются из cpb, и момент времени, в который декодируется каждый кадр, определяется в соответствии с "initial_cpb_removal_time". Кроме того, "dpb_output_delay" указывает время от входа в dpb (буфер несжатых данных) до выгрузки данных после декодирования.
Блок 123 установки HRD выполняет установку HRD, основываясь на информации "initial_cpb_removal_time", "cpb_removal_delay" и "dpb_output_delay", вычисленной блоком 122 управления задержкой буфера. Блок 124 установки параметров/кодирования SEI формирует SEI в дополнение к наборам параметров, таких как набор видеопараметров (VPS) и набор параметров последовательности (SPS), основываясь на установке HRD и т.п.
Например, формируется момент SEI кадра, который содержит "cpb_removal_delay" и "dpb_output_delay". Кроме того, например, генерируется период SEI буферирования, содержащий "initial_cpb_removal_time". Кроме того, например, генерируется временная информация обновления SEI (temporal_refresh_information SEI), которая уточняет момент переключения, как описано выше.
Блок 125 кодирования срезов получает данные срезов (заголовок сегмента среза и данные сегмента среза), кодируя данные изображения каждого кадра. Блок 125 декодирования срезов вставляет "ref_idx_10_active" (ref_idx_11_active), который указывает индекс кадра, который является назначением предсказания "блока предсказания" в "заголовке сегмента среза" ("slice segment header"), в качестве информации, указывающей состояние временного предсказания направления, используя буфер кадров. Соответственно, во время декодирования определяется опорный исходный кадр. Кроме того, блок 125 декодирования среза вставляет индекс текущего среза в "заголовок сегмента среза"" как "short_term_ref_pic_set_idx" или "it_idx_sps".
Блок 126 пакетирования NAL генерирует кодированные данные изображения каждого кадра, основываясь на наборах параметров и SEI, сгенерированных блоком 124 установки параметров/кодирования SEI, и на данных среза, сгенерированных блоком 125 кодирования среза, и выводит вилеопотоки (кодированные потоки).
На фиг. 8 показана примерная блок-схема последовательности выполнения операций кодера 102. Кодер 102 запускает процесс на этапе ST1 и затем переходит к процессу на этапе ST2. В этом этапе ST2 кодер 102 проверяет параметр динамической последовательности, которая должна кодироваться. Этот параметр также содержит частоту кадров (частоту смены кадров).
Затем кодер 102 на этапе ST3 определяет, существует ли изменение частоты кадров в последовательности. Когда изменение частоты кадров существует, кодер 102 переходит к процессу или этапу ST4. На этапе ST4 кодер управляет моментами входа в буфер и выхода из буфера до и после точки изменения.
В этом случае удовлетворяется следующее выражение (1).
Здесь, "Т_2 (first_presentation)" указывает момент начала отображения первого кадра второй последовательности. "T_1 (last_presentation)" указывает момент начала отображения последнего кадра первой последовательности. "(Т_1 temporal disctance) указывает период времени между сигналами кадровой синхронизации, то есть, период кадров первой последовательности.
После процесса этапа ST4 кодер 102 переходит к процессу этапа ST5. Когда на описанном выше этапе ST3 не существует изменения частоты кадров, кодер 102 непрямую переходит к процессу этапа 5. На этом этапе ST5 кодер 102 выполняет управление HRD во; всех кадрах (срезах), выполняет кодирование срезов, устанавливает параметры, SEI и т.п. и затем конфигурирует поток с помощью пакетов NAL. После этого кодер 102 на этапе ST6 заканчивает процесс.,
Возвращаясь к фиг. 2, буфер 103 сжатых данных (cpb) временно накапливает видеопоток, содержащий кодированные данные каждого кадра, сформированного кодером 102. Мультиплексор 104 считывает видеопоток, накопленный в буфере 103 сжатых данных, превращает их в пакеты PES, дополнительно превращает их в транспортные пакеты и мультиплексирует, получая, таким образом, транспортный поток TS в виде мультиплексированного потока.
Мультиплексор 104 вставляет информацию, уведомляющую об изменении кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, в пакет, содержащий видеопоток, например, в пакет PES. В этом варианте осуществления в поле расширения PES пакета PES определяется временная информация о разрыве (temporal_discontinuity_information).
Эта временная информация о разрыве содержит информацию, указывающую, существует ли разрыв при изменении значения времени декодирования, и когда информация указывает, что разрыв существует, к этой информации добавляется значение обратного отсчета количества кадров до того кадра, в котором произошел разрыв. Кроме того, эта временная информация о разрыве содержит информацию, указывающую, переключается ли период времени отображения каждого из кадров, и если информация указывает на наличие переключения, к информации добавляется значение обратного отсчета количества кадров до момента переключения.
На фиг. 9(A) показана примерная структура (синтаксис) данных поля расширения PES (pes_extension_field_data). На фиг. 9(B) показано содержание (семантика) основной информации в информации о структуре. Следует заметить, что, как предполагается, "ES_extension field length" должна задаваться за пределами структуры синтаксиса. 8-разрядное поле "start_sync_byte" указывает кодовое значение, выражающее начало поля расширения.
8-разрядное поле "extension_field_type" указывает тип поля расширения. "0×01" указывает тип "temporal_discontinuity_information", то есть, структуру, в которой предоставляется временная информация о разрыве блоков доступа (кадров). Когда типом поля расширения является "0×01", временная информация о разрыве (temporal_discontinuity_information) вставляется в поле "data_byte".
На фиг. 10 показана примерная структура (синтаксис) временной информации о разрыве "temporal_discontinuity_information 0". На фиг. 11 показано содержание (семантика) основной информации примерной структуры.
1-разрядое поле "decode_time_discontinuity_flag" является флагом, указывающим, существует ли разрыв в изменении значения времени декодирования (или отметки времени декодирования). "1" указывает, что разрыв существует, и "0" указывает, что разрыв отсутствует. 1-разрядное поле "presentation_frequency_change_flag" является информацией флага, указывающей, переключается ли период времени отображения блоков доступа. "1" указывает, что переключение происходит и "0" указывает, что переключение не существует.
Когда флаг "decode_time_discontinuity_flag" равен "1", представляется 8-разрядное поле "au_count_down_to_decode_time_switching". Это поле указывает значение обратного отсчета в единицах блоков доступа (кадров), до тех пор, пока не произошел разрыв в изменении времени декодирования. Например, "0×00" указывает, что соответствующий блок доступа является последним блоком доступа перед точкой разрыва, и "0×01" - "0×FE" указывают значения соответствующих блоков доступа, подсчитанных до последнего блока доступа перед точкой разрыва.
Кроме того, когда флаг "presentation_frequency_change_flag" равен "1", представляется 8-разрядное поле "au_count_down_to_presentation_frequency_change". Это поле указывает значение обратного отсчета, выраженное в блоках доступа, до того момента, пока не переключится период времени отображения каждого из блоков доступа. Например, "0×00" указывает, что соответствующий блок доступа является последним блоком доступа перед переключением периода времени отображения, и "0×01" до "0×FE" указывают значения соответствующих блоков доступа, считанных до последнего блока доступа перед переключением периода времени отображения.
На фиг. 12 показан пример преобразования информации, относящейся к непрерывности отображения во время переключения с первой последовательности (последовательности А) на вторую последовательность (последовательность В). Здесь один период кадровой частоты первой последовательности принимается равным "Time Distance А" (период времени А) и один период кадровой частоты второй последовательности принимается равным "Time Distance В" (период времени В". Кроме того, здесь показываются информация флага "temporal_timing_discontinuity_flag", содержащаяся в временной информации SEI обновления (temporal_refresh_information SEI), и значения обратного отсчета "au_count_down_to_presentation_frequency_change", содержащиеся во временной информации о разрыве (temporal_discontinuity_information).
Кроме того, мультиплексор 104 вставляет информацию, уведомляющую о переключении с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности в транспортном потоке TS.
В качестве специфической программной информации (PSI), транспортный переноса TS содержит таблицу карты программ (РМТ). Эта РМТ имеет контур видеоэлементов (видеоконтур ES1) с информацией, относящейся к каждому видеопотоку. В этом контуре видеоэлементов информация потокового типа, идентификатор пакета (PID) ит.п., а также дескриптор, описывающий информацию, относящуюся к видеопотоку, располагаются так, чтобы соответствовать каждому видеопотоку. В этом варианте осуществления, мультиплексор 104 вставляет дескриптор видеопараметров (Video_parameter_descriptor), который должен определяться вновь как один из дескрипторов.
На фиг. 13 показана примерная структура (синтаксис) дескриптора видеопараметров (Video_parameter_descriptor). Кроме того, на фиг. 14 показано содержание (семантика) основной информации примерной структуры.
8-разрядное поле "descriptor_tag" указывает тип дескриптора, указывающий здесь дескриптор видеопараметров. 8-разрядное поле "descriptor_length" указывает длину (размер) дескриптора, показывая количество последующих байтов в качестве длины дескриптора.
1-разрядное поле "resolution_change_flag" является информацией флага, указывающей, существует ли изменение разрешающей способности по горизонтали и по вертикали. 1-разрядное поле "video_frame_rate_change_flag" является 1-разрядным полем, указывающим, существует ли изменение частоты кадров (частоты смены кадров) для кадра. 1-разрядное поле "video_bit_depth_change_flag" является информацией флага, указывающей, существует ли изменение кодированной битовой ширины. 1-разрядное поле "color_gamut_change_flag" является информацией флага, указывающей, существует ли изменение цветовой палитры кодированного изображения. 1-разрядное поле "dynamic_range_change_flag" является информацией флага, указывающей, существует ли изменение диапазона яркости от яркого до темного.
4-разрядное поле "video_resolution1" указывает текущие разрешающие способности по горизонтали и по вертикали. 4-разрядное поле "video_frame_rate1" указывает частоту кадров для текущего кадра. "video_bit_depth1" указывает текущую кодированную битовую ширину. "color_gamut1" указывает палитру текущего кодированного кадра. "luma_dynamic_range1" указывает диапазон яркости от яркого до темного.
Когда установлен флаг "resolution_change_flag=1", указывающий, что существует изменение разрешающих способностей по горизонтали и по вертикали, предоставляется 4-разрядное поле "video_resolution2". Это поле указывает измененные разрешающие способности по горизонтали и по вертикали. Кроме того, когда устанавливается флаг "video_frame_rate_change_flag=1", указывающий, что существует изменение частоты кадров для текущего кадра, предоставляется 4-разрядное поле ""video_frame_rate2". Это поле указывает измененную частоту кадров для текущего кадра.
Кроме того, когда устанавливается флаг "video_bit_depth_change_flag=1", указывающий, что существует изменение кодированной битовой ширины, предоставляется 4-разрядное поле "video_bit_depth2". Это поле указывает измененную кодированную битовую ширину. Дополнительно, когда устанавливается флаг "color_gamut_change_flag=1", указывающий, что существует изменение. палитры кодированного кадра, предоставляется 4-разрядное поле "color_gamut2". Это поле указывает измененную палитру кодированного кадра. Дополнительно, когда устанавливается флаг "dynamic_range_change_flag=1", указывающий, что существует изменение диапазона яркости от яркого до темного, предоставляется 4-разрядное поле "luma_dynamic_range2". Это поле указывает измененный диапазон яркости от яркого до темного.
На фиг. 15 показана примерная конфигурация мультиплексора 104. Мультиплексор 104 имеет блок 142 кодирования секций, блок 143 пакетирования PES и блок 145 транспортного пакетирования.
Блок 143 пакетирования PES считывает видеопоток (элементарный поток), накопленный в буфере 103 сжатых данных, чтобы сформировать пакет PES. В этом случае блок 143 пакетирования PES делает отметку времени, такую как отметка времени декодирования (DTS) и отметка времени индикации (PTS) в заголовке PES, основываясь на информации HRD и т.п. видеопотока. В этом случае, "cpu_removal_delay" и "dpb_output_delay" каждого кадра обращаются к отметкам времени, которые преобразуются в каждую DTS и PTS с синхронизированной точностью с помощью времени, соответствующего системному времени (STC), и располагаются в заданных местах заголовков PES.
Кроме того, в этом случае блок 143 пакетирования PES создает вышеописанную временную информацию о разрыве (temporal_discontinuity_information) (смотрите фиг. 10), основываясь на временной информации о разрыве кадров блоков доступа, содержащейся в видеопотоке. Затем блок 143 пакетирования PES вставляет эту информацию в поле расширения PES пакета PES.
Блок 142 кодирования секций формирует различные виды секционных данных, которые должны вставляться в транспортный поток TS. В этом случае блок 142 кодирования секций также создает описанный выше дескриптор видеопараметров (Video_parameter_descriptor) (смотрите фиг. 13), основываясь, например, на временной информации о разрыве кадров (блоков доступа), содержащейся в видеопотоке.
Пакет PES, сформированный блоком 143 пакетирования PES, передается блоку 145 транспортного пакетирования. Кроме того, различные виды секционных данных, сформированных блоком 142 кодирования секций, также передаются блоку 145 транспортного пакетирования. Блок 145 транспортного пакетирования формирует пакет TS, который содержит пакет PES и секционные данные в его полезной нагрузке и затем формирует транспортный поток TS.
На фиг. 16 показана примерная блок-схема последовательности выполнения операций мультиплексора 104. Мультиплексор 104 начинает процесс на этапе ST11 и затем переходит к этапу ST12. На этом этапе ST12 мультиплексор 104 вычисляет отметку времени, исходя из временной информации обновления SEI, синхронизации кадров SEI, периода буферирования SEI или информация HRD видеопотока (элементарного потока).
Затем мультиплексор 104 на этапе ST13 создает временную информацию о разрыве и вставляет информацию в поле расширения PES. Затем мультиплексор 104 на этапе ST14 вставляет видеопоток (элементарный поток) в полезную нагрузку PES.
Затем мультиплексор 104 на этапе ST15 формирует различные виды секционных данных. В качестве одного из видов этих секционных данных также формируется дескриптор видеопараметров, который указывает наличие изменения в параметре видеопотока (элементарного потока). Затем мультиплексор 104 на этапе ST16 формирует и. выводит пакет TS, содержащий в его полезной нагрузке пакет PES и секционные данные. После процесса на этапе ST16 мультиплексор 104 на этапе ST17 заканчивает процесс.
На фиг. 17 показан пример конфигурации транспортного потока TS. Этот транспортный поток TS содержит один видеопоток. Другими словами, в этом примере конфигурации имеется пакет PES "video PES 1" видеопотока.
Кодированные данные изображения каждого кадра раскрываются в полезной нагрузке PES. В случае кодирования HEVC кодированные данные изображения составляются из блоков NAL, таких как VPS, SPS, SEI, PPS, P-SEI, PPS, S-SEI и EOS. Описанная выше информация временного обновления SEI (temporal_refresh_information SEI) вставляется как один из блоков P-SEI.
Кроме того, описанная выше временная информация о разрыве (temporal_continuity_information) вставляется в поле расширения PES заголовка PES. Следует заметить, что DTS и PTS также располагаются в заголовке PES.
Кроме того, транспортный поток TS содержит таблицу отображения программы (РМТ) в качестве специфической программной информации (PSI). Эта PSI является информацией, описывающей, к какой программе присоединяется каждый элементарный поток, введенный в транспортный поток.
В РМТ существует программный контур, описывающий информацию, относящуюся ко всей программе. Кроме того, в РМТ существует элементарный контур, имеющий информацию, относящуюся к каждому элементарному потоку. В этой примерной конфигурации существует элементарный видеоконтур (видеоконтур ES1).
В элементарном видеоконтуре располагаются информация о типе потока, идентификатор пакета (PID) и т.п., а также описываются дескрипторы, описывающие информацию, относящуюся к видеопотоку и соответствующую видеопотоку (видео PES1). В качестве одного из дескрипторов вставляется описанный выше видеодескриптор параметров (video_parameter_descriptor).
Возвращаясь к фиг. 2, блок 105 передачи модулирует транспортный поток TS в схеме модуляции, пригодной для широковещательной передачи, например, QPSK-OFDM, и радиочастотный модулированный сигнал передается через передающую антенну.
Далее будет кратко описана работа устройства 100 передачи, показанного на фиг. 2. Кодер 102 принимает входные данные несжатого изображения. В кодере 102 кодирование согласно, например, стандартам H.264/AVC, H.265/HEVC и т.п., выполняется для данных изображения. В этом случае данные изображения различных частот кадров переключаются для введения в кодер 102. Таким образом, кодер 102 формирует видеопоток, имеющий часть с переключаемой частотой кадров, то есть, часть, которая переключается с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, имеющей частота кадров, отличную от первой последовательности.
Кодер 102 выполняет кодирование таким образом, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности. Кроме того, кодер 102 выполняет кодирование таким образом, что кодированные данные изображения первой последовательности и кодированные данные изображения второй последовательности имеют одно и то же количество задержанных кадров в течение времени с момента декодирования до отображения. Дополнительно, кодер 102 выполняет кодирование таким образом, что момент декодирования первого кадра кодированных данных изображения второй последовательности устанавливается на момент времени, более поздний, чем момент времени, полученный, добавляя один период кадров кодированных данных изображения первой последовательности к моменту декодирования последнего изображения кодированных данных изображения первой последовательности.
Кроме того, кодер 102 вставляет информацию, указывающую, существует ли изменение частоты кадров в каждом фрагменте кодированных данных изображения каждого кадра видеопотока. Другими словами, кодер 102 вставляет временную информацию обновления SEI (temporal_refresh_information SEI) (смотрите фиг. 5(B)) в кодированные данные изображения каждого кадра в качестве одного вида префикса SEI (Prefix_SEI).
Видеопоток, который формируется кодером 102, содержащий кодированные данные кадров каждого уровня, подается в буфер 103 сжатых данных (cpb) 103 и временно в нем сохраняется. В мультиплексоре 104 видеопоток, накопленный в буфере 103 сжатых данных, считывается, PES пакетируется и дополнительно пакетируется для транспортирования и мультиплексируется и, таким образом, транспортный поток TS получают в виде мультиплексированного потока.
Мультиплексор 104 вставляет информацию уведомления о переключении с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности в пакет, который содержит видеопоток, например, в пакет PES. Другими словами, временная информация о разрыве (temporal_discontinuity_information) (смотрите фиг. 10) вставляется в поле расширения PES пакета PES.
Кроме того, мультиплексор 104 вставляет информацию уведомления о переключении с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности в транспортный поток TS. Другими словами, дескриптор видеопараметров (Video_parameter_descriptor) (смотрите фиг. 13) вставляется в элементарный видеоконтур.
Транспортный поток TS, сформированный мультиплексором 104, передается блоку 105 передачи. В блоке 105 передачи транспортный поток TS модулируется в схеме модуляции, пригодной для широкого вещания, например, QPSK-OFDM, и радиочастотный модулированный сигнал передается через передающую антенну.
Конфигурация устройства приема
На фиг. 18 показана примерная конфигурация устройства 200 приема. Это устройство 200 приема имеет центральный процессор (CPU) 201, блок 202 приема, демультиплексор 203 и буфер 204 сжатых данных (буфер кодированных кадров или cpb). Дополнительно устройство 200 приема имеет устройство 205 декодирования, буфер 206 несжатых данных (буфер декодированных кадров или dpb), блок 207 последующей обработки, блок 208 генерирования тактового сигнала и делитель 209 частоты. CPU 201 является блоком управления, который управляет операциями каждого блока устройства 200 приема.
Блок 202 приема демодулирует радиочастотный модулированный сигнал, принятый приемной антенной, чтобы получить транспортный поток TS. Транспортный поток TS содержит видеопоток (видеоданные) с частью, переключаемой с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, имеющей частоту кадров, отличную от первой последовательности. Демультиплексор 203 извлекает видеопоток и передает поток в буфер 204 сжатых данных (буфер кодированного кадра или cpb).
На фиг. 19 показана примерная конфигурация демультиплексора 203. Демультиплексор 203 имеет блок 231 извлечения поля адаптации TS, блок 232 извлечения информации тактового сигнала, блок 233 извлечения полезной нагрузки TS, блок 234 извлечения секций, блок 235 извлечения таблицы PSI/дескриптора и блок 236 извлечения пакетов PES. Дополнительно, демультиплексор 203 имеет блок 237 извлечения заголовка PES, блок 238 извлечения отметки времени, блок 239 извлечения информации о разрыве/обратном отсчете и блок 240 извлечения полезной нагрузки PES.
Блок 231 извлечения поля адаптации TS извлекает поле адаптации из пакета TS, имеющего поле адаптации транспортного потока TS. Блок 232 извлечения информации тактового сигнала извлекает опорный тактовый сигнал программы (PCR) из поля адаптации, в котором содержится PCR, и передает PCR на блок 208 генерирования тактового сигнала.
Блок 233 извлечения полезной нагрузки TS извлекает полезную нагрузку TS их пакета TS, содержащего полезную нагрузку TS транспортного потока TS. Блок 234 извлечения секций извлекает данные секций из полезной нагрузки TS, которая содержит данные секций. Блок 235 извлечения таблицы PSI/дескриптора анализирует данные секций, извлеченные блоком 234 извлечения секций, и извлекает таблицу PSI или дескриптор. Затем, блок 235 извлечения таблицы PSI/дескриптора передает информацию дескриптора на CPU 201.
Эта информация дескриптора также содержит описанный выше дескриптор видеопараметров (Video_parameter_descriptor). CPU 201 может распознать изменение частоты кадров (частоты смены кадров) заранее из информации дескриптора видеопараметров и далее может также распознать измененную частоту кадров.
Блок извлечения пакета PES извлекает пакет PES из полезной нагрузки TS, которая содержит пакет PES. Блок 237 извлечения заголовка PES извлекает заголовок PES из пакета PES, извлеченного блоком 236 извлечения пакета PES. Блок 238 извлечения отметки времени извлекает отметки времени (DTS и PTS), вставленные в заголовок PES в единицах кадров, и посылает отметки времени на CPU 201.
Кроме того, 239 блок извлечения информации о разрыве/обратного отсчета извлекает описанную выше временную информацию о разрыве (temporal_discontinuity_information), вставленную в поле расширения PES заголовка PES в единицах кадров, и посылает информацию о разрыве и информацию обратного отсчета на CPU 201.
В этом случае, когда существует разрыв в изменении значения времени декодирования (или отметки времени декодирования), CPU 201 может распознать разрыв заранее и дополнительно может отчетливо выявить его прогресс, пока не произойдет разрыв в единицах блоков доступа (кадров), исходя из информации обратного отсчета (значения обратного отсчета). Кроме того, когда период времени отображения каждого блока доступа (кадров) переключается, CPU 201 может распознать переключение заранее и дополнительно может отчетливо определить прогресс в единицах блоков доступа (кадров), пока не произойдет переключение, исходя из информации обратного отсчета (значения обратного отсчета).
Блок 240 извлечения полезной нагрузки PES извлекает полезную нагрузку PES, то есть, кодированные данные изображения каждого кадра из пакета PES, извлеченного блоком 236 извлечения пакета PES, и посылает данные в буфер 204 сжатых данных (буфер кодированных кадров или cpb).
На фиг. 20 показана примерная блок-схема последовательности выполнения операций демультиплексора 203. Демультиплексор 203 начинает процесс на этапе ST31 и затем на этапе ST32 извлекает полезную нагрузку TS. Затем демультиплексор 203 на этапе ST33 выполняет анализ PID, чтобы определить, существует ли секция. Когда определено, что секция существует, демультиплексор 203 на этапе ST34 демультиплексирует пакет, проходящий через соответствующий фильтр PID, чтобы выполнить парсинг секции.
Затем демультиплексор 203 на этапе ST35 анализирует дескриптор видеопараметров (Video_parameter_descriptor). Затем демультиплексор 203 на этапе ST36 определяет, существует ли изменение частоты кадров (частоты смены кадров). Когда изменение частоты кадров существует, демультиплексор 203 на этапе ST37 уведомляет систему, то есть, CPU 201, об измененной частоте кадров.
Затем, демультиплексор 203 переходит к этапу ST38 и завершает процесс. Следует заметить, что если на этапе ST36 не обнаружено изменение частоты кадров, демультиплексор 203 переходит непосредственно к этапу ST38, чтобы завершить процесс.
Кроме того, когда на этапе ST33 обнаруживается, что это не секция, демультиплексор 203 на этапе ST39 извлекает пакет PES. Затем демультиплексор 203 на этапе ST40 определяет, является ли это заголовком PES. Когда это заголовок PES, демультиплексор 203 при анализе дескриптора видеопараметров на этапе ST4J определяет, существует ли изменение частоты кадров.
Когда изменение частоты кадров существует, демультиплексор 203 на этапе ST42 определяет, существует ли временная информация о разрыве (temporal_discontinuity_information) в поле расширения PES. Определение этапа ST41, как предполагается, совпадает с результатом этапа ST36.
Когда временная информация о разрыве существует, демультиплексор 203 на этапе ST43 обнаруживает разрыв отметки времени с помощью флага разрыва временной информации о разрыве и значения обратного отсчета и уведомляет систему, то есть, CPU 201,. об обнаружения. Затем демультиплексор 203 переходит к процессу на этапе ST44. Следует заметить, что когда на этапе ST41 нет изменения частоты кадров или когда на этапе ST42 нет никакой временной информации о разрыве, демультиплексор 203 напрямую переходит к процессу на этапе ST44.
На этапе ST44 демультиплексор 203 определяет, существуют ли DTS и PTS. Когда DTS и PTS существуют, демультиплексор 203 переходит к процессу на этапе ST46. С другой стороны, когда не существуют ни DTS, ни PTS, демультиплексор 203 формирует DTS и PTS через интерполяцию на этапе ST45 и затем переходит к процессу на этапе ST46. На этапе ST46 демультиплексор 203 уведомляет систему, то есть, CPU 201, о DTS и PTS. Затем демультиплексор 203 переходит к этапу ST38, чтобы завершить процесс.
Кроме того, когда на этапе ST40 определено, что это не заголовок PES, на этапе ST47 демультиплексор 203 извлекает полезную нагрузку PES. Затем демультиплексор 203 на этапе ST48 передает кодированный поток для PID в буфер 204 сжатых данных (cpb). Затем демультиплексор 203 переходит к этапу ST38, чтобы завершить процесс.
Возвращаясь к фиг. 18, буфер 204 сжатых данных (cpb) временно накапливает видеопоток (кодированный поток), полученный демультиплексором 203. Декодер 205 декодирует кодированные данные изображения каждого из кадров видеопотока, накопленного в буфере 204 сжатых данных, в моменты декодировании кадров и передает данные в буфер 206 несжатых данных (dpb).
Здесь CPU 201 задает декодеру 205 моменты декодирования, основываясь на отметке времени декодирования (DTS). Следует заметить, что, когда декодер 205 декодирует кодированные данные изображения каждого кадра, декодер считывает и использует данные изображения опорного исходного кадра, взятые из буфера 206 несжатых данных.
На фиг. 21 показан пример конфигурации декодера 205. У этого декодера 205 имеется блок 251 анализа пакетов NAL и блок 252 декодирования. Блок 251 анализа пакетов NAL анализирует каждый пакет NAL, составляющий кодированные данные изображения, чтобы определить набор параметров, таких как VPS, SPS или PPS, SEI и срез. Блок 251 анализа пакетов NAL передает каждый пакет NAL вместе с результатом определения на блок 252 декодирования.
Блок 252 декодирования последовательно декодирует кодированные данные изображения каждого из кадров, содержащихся в видеопотоке (кодированном потоке), передаваемом через блок 251 анализа пакетов NAL в моменты декодирования, и передает данные в буфер 206 несжатых данных (dpb). В этом случае блок 252 декодирования выполняет анализ временной информации для VPS, SPS и PPS, чтобы установить "general_level_idc", который является уровнем битовой скорости всего потока, или "sublayer_level_idc", который является уровнем битовой скорости каждого подуровня, и проверить, может ли декодирование быть выполнено в пределах его возможностей декодирования. Кроме того, в этом случае блок 252 декодирования анализирует SEI, чтобы установить, например, "initial_cpb_removal_time" и "cpb_removal_delay" и проверить, является ли правильной синхронизация декодирования, передаваемая от CPU 201.
Кроме того, в этом случае блок 252 декодирования получает частоту кадров (частоту смены кадров) из информации "vps_num_units_in_tick" и "vps_times_scale", содержащейся в VPS, и передает частоту кадров на CPU 201. Соответственно, CPU 201 может проверить частоту кадров для кадра, который в настоящий момент подвергается декодированию. Следует заметить, что блок 252 декодирования может определить, является ли кадр кадром с разрывом во временной информации и отметке времени, анализируя информацию SEI временной информации, и когда кадр является кадром с разрывом, частота кадров (частота смены кадров) может также быть получена из информации "num_units_in_tick" и "times_scale", содержащейся в SEI.
При декодировании среза блок 252 декодирования получает "ref_idx_10_active (ref_idx_l1_active)" из заголовка среза в качестве информации, указывающей назначение предсказания направления во времени, чтобы выполнить предсказание направления во времени. Следует заметить, что декодированные кадры обрабатываются, чтобы другие кадры делали на них ссылки, используя "short_term_ref_pic_set_idx" или "it_idx_sps", полученные из заголовка среза в качестве индекса.
Возвращаясь к фиг. 18, буфер 206 несжатых данных (dpb) временно хранит данные изображения каждого кадра, декодированной декодером 205. Блок 207 последующей обработки выполняет обработку данных изображения каждого из кадров, последовательно считываемых от буфера 206 несжатых данных (dpb) в моменты отображения, чтобы заставить их частоту кадров совпадать с возможностями отображения. В этом случае моменты отображения задаются декодеру 205 от CPU 201, основываясь на отметке времени представления (PTS).
Например, когда частота кадров декодированных данных изображения кадров равна 120 кадров/с (fps) и возможности отображения составляют 120 кадров/с, блок 207 последующей обработки передает декодированные данные изображения кадров на дисплей в том виде, в котором они есть. Кроме того, когда, например, частота кадров декодированных данных изображения кадров составляет 120 кадров/с, а возможности отображения составляют 60 кадров/с, блок 207 последующей обработки выполняет процесс подвыборки, так чтобы разрешающая способность направления-времени была половиной от декодированных данных изображения кадров, и передает данные на дисплей в качестве данных изображения с частотой 60 кадров/с.
Кроме того, когда частота кадров декодированных данных изображения кадров составляет 60 кадров/с, а возможности отображения составляют 120 кадров/с, блок 207 последующей обработки выполняет процесс интерполяции, так чтобы разрешающая способность для направления-времени было удвоенными декодированными данными изображения кадров, и передает данные на дисплей в качестве данных изображения с частотой 120 кадров/с. Кроме того, когда, например, частота кадров декодированных данных изображения кадров составляет 60 кадров/с, а возможности отображения составляют 60 кадров/с, блок 207 последующей обработки передает декодированные данные изображения кадров на дисплей такими, какие они есть.
CPU 201 блока формирования тактовой частоты формирует системную тактовую частоту STC, которая синхронизируется с PCR, извлеченной демультиплексором 203. Делитель 209 частоты делит частоту этой STC системной тактовой частоты и выводит сигнал Vsync кадровой синхронизации. Этот сигнал Vsync кадровой синхронизации подается на CPU 201, а также подается на демультиплексор 203, декодер 205 и блок 207 последующей обработки и дополнительно в другие необходимые места.
Частота этого сигнала Vsync кадровой синхронизации управляется в соответствии с поданным коэффициентом деления частоты (коэффициентом деления) от CPU 201. В этом варианте осуществления частота сигнала Vsync кадровой синхронизации переключается, чтобы согласовываться с частотой кадров первой последовательности, пока не наступит момент начала отображения первого кадра изображения второй последовательности, и должен соответствовать частоте кадров второй последовательности, начиная с момента начала отображения.
Таким образом, в настоящем варианте осуществления, перед моментом начала отображения первого кадра второй последовательности кодированные данные изображения каждого кадра второй последовательности, декодируются в моменты декодирования кодированных данных изображения каждого кадра первой последовательности.
На фиг. 22 показан пример момента переключения сигнала Vsync кадровой синхронизации. В этом представленном примере первая последовательность состоит из 4 кадров, которые декодируются в порядке а0, a1, а2 и а3 и отображаются в порядке а0, а2, а3 и a1. В этом случае количество задержанных кадров после первой последовательности, которая декодируется, пока не начнется ее отображение, устанавливается равным 2.
Каждый из кадров первой последовательности декодируется и отображается в момент сигнала кадровой синхронизации (Vsync), имеющего период времени Va, соответствующий его частоте кадров (частоте смены кадров). Например, кадры а0, a1, а2 и а3 декодируются в моменты времени Та(0), Та(1), Та(2) и Та(3), а отображение кадров а0, а2, а3 и a1 начинается в моменты времени Та(2), Та(3), Та(4) и Та(5).
Вторая последовательность состоит из 7 кадров, которые декодируются в порядке b0, b1, b2, b3, b4, b5 и b6 и отображаются в порядке b0, b2, b3, b1, b5, b6 и b3. В этом случае количество задержанных кадров после того, как вторая последовательность декодируется, пока не начнется ее отображение, устанавливается равным 2, так же, как для первой последовательности.
Моменты декодирования и отображения устанавливаются при кодировании таким образом, что, каждый из кадров второй последовательности декодируется и отображается в моменты времени сигнала кадровой синхронизации (Vsync), имеющего период времени Vb (<Va), соответствующий его частоте кадров (частоте смены кадров). В этом варианте осуществления, однако, частота переключается, чтобы совпадать с частотой смены кадров первой последовательности, пока не наступит момент начала отображения (Tb(2)) первого кадра второй последовательности, и совпадать с частотой кадров второй последовательности с этого момента времени.
Таким образом, перед моментом начала отображения (Tb(2)) первого кадра второй последовательности, декодер 205 декодирует кодированные данные изображения каждого из кадров (кадры b0 и b1 в показанном примере) второй последовательности в момент декодирования кодированных данных изображения каждого кадра первой последовательности с поддерживаемой непрерывностью моментов декодирования первой последовательности.
Другими словами, кадры b0 и b1 декодируются в моменты времени Та(4) и Та(5). Кадр b0 может декодироваться даже перед моментом (Tb(0)), потому что демультиплексор 203 извлекает временную информацию о разрыве (temporal_discontinuity_information) из поля расширения PES в момент времени, в который ведущий байт последнего кадра первой последовательности поступает (самый поздний момент Р1 на фиг. 3) в буфер 204 сжатых данных (cpb) и обнаруживает информацию о разрыве.
Кроме того, как описано выше, переключение сигнала Vsync кадровой синхронизации выполняется в момент начала отображения (Tb(2)) первого кадра второй последовательности, то есть, в момент окончания отображения (Та(6)) последнего кадра первой последовательности. CPU 201 может обнаружить необходимость переключения сигнала Vsync кадровой синхронизации в этот момент времени, исходя из информации о разрыве, которая является временной информацией о разрыве и информацией обратного отсчета.
На фиг. 23 также показан другой пример момента переключения сигнала Vsync кадровой синхронизации. Пример, представленный на фиг. 22, показывает, что цикл кадра (период времени) первой последовательности устанавливается равным Va, а цикл кадра (период времени) второй последовательности устанавливается равным Vb (<Va), но этот пример может быть обратным рассмотренному. Другими словами, в этом примере, цикл кадра (период времени) первой последовательности устанавливается равным Vb, а цикл кадра (период времени) второй последовательности устанавливается равным Va (>Vb).
В представленном примере первая последовательность состоит из 4 кадров, которые декодируются в порядке b0, b1, b2 и b3 и отображаются в порядке b0, b2, b3 и b1. В этом случае количество задержанных кадров после того, как последовательность декодируется, пока не начнется ее отображение, устанавливается равным 2.
Каждый из кадров первой последовательности декодируется и отображается в момент сигнала кадровой синхронизации (Vsync), имеющего период времени Vb, соответствующий ее частоте кадров (частоте смены кадров). Например, изображения b0, b1, b2 и b3 декодируются в моменты Tb(0), Tb(1), Tb(2) и Tb(3), а отображение изображений b0, b2, b3 и b1 начинается в моменты Tb(2), Tb(3), Tb(4) и Tb(5).
Вторая последовательность состоит из 4 кадров, которые декодируются в порядке а0, al, а2 и а3 и отображаются в порядке а0, а2, а3 и a1. В этом случае количество задержанных кадров после того, как последовательность декодируется, пока не начнет отображаться, устанавливается равным 2, так же как для первой последовательности.
Моменты декодирования и отображения устанавливаются при кодировании таким образом, что каждый из кадров второй последовательности декодируется и отображается в момент времени сигнала кадровой синхронизации (Vsync), имеющего период времени Va (>Vb), соответствующий его частоте кадров (частоте смены кадров). В этом варианте осуществления, однако, частота переключается, чтобы совпадать с частотой кадров первой последовательности до момента начала отображения (Та(2)) первого кадра второй последовательности, и с этого момента совпадать с частотой кадров второй последовательности.
Таким образом, перед моментом начала отображения (Та(2)) первого кадра второй последовательности декодер 205 декодирует кодированные данные изображения каждого из кадров (в показанном примере кадров а0 и al) второй последовательности в момент декодирования кодированных данных изображения каждого кадра первой последовательности с поддержанием непрерывности моментов декодирования первой последовательности.
Другими словами, кадры ab и al декодируются в моменты Tb(4) и Tb(5). Кадр а0 может декодироваться даже после момента (Та(0)), потому что демультиплексор 203 извлекает временную информацию о разрыве (temporal_discontinuity_information) из поля расширения PES в момент времени, когда ведущий байт последнего кадра первой последовательности входит в буфер 204 сжатых данных (cpb) в самый поздний момент (момент Р1 на фиг. 3) и обнаруживает информацию о разрыве.
Кроме того, переключение сигнала Vsync кадровой синхронизации выполняется в момент (Та(2)) начала отображения первого кадра второй последовательности, то есть, в момент (Tb(6)) окончания отображения последнего кадра первой последовательности, как описано выше. CPU 201 может обнаруживать необходимость переключения сигнала Vsync кадровой синхронизации в этот момент времени, исходя из информации о разрыве, которая является временной информацией о разрыве и информацией обратного отсчета.
Далее будет кратко описана работа устройства 200 приема, показанного на фиг. 18. Блок 202 приема демодулирует радиочастотный модулированный сигнал, принятый приемной антенной, чтобы получить транспортный поток TS. Транспортный поток TS содержит видеопоток с частью, переключаемой с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, имеющей частоту кадров, отличную от первой последовательности. Этот транспортный поток TS передается на демультиплексор 203. Демультиплексор 203 извлекает видеопоток из транспортного потока TS и передает поток в буфер 204 сжатых данных (cpb), чтобы заставить поток временно накапливаться.
Кроме того, демультиплексор 203 извлекает программный тактовый опорный сигнал (PCR) из поля адаптации пакета TS. Этот PCR подается на блок 208 формирования тактового сигнала. Блок 208 формирования тактового сигнала формирует системный тактовый сигнал STC, который синхронизируется с PCR. Затем этот системный тактовый сигнал STC подвергается делению частоты делителем 209 частоты, чтобы получить сигнал Vsync кадровой синхронизации. Этот сигнал Vsync кадровой синхронизации подается на CPU 201, а также в необходимые места, такие как демультиплексор 203, декодер 205 и блок 207 последующей обработки.
Кроме того, демультиплексор 203 извлекает дескриптор, такой как дескриптор видеопараметров (Video_parameter_descriptor), из транспортного потока TS и подает дескриптор на CPU 201. CPU 201 может распознать изменение кадровой частоты (частоты смены кадров) заранее из информации дескриптора видеопараметров и может дополнительно распознать измененную частоту кадров.
Кроме того, демультиплексор 203 извлекает временную информацию о разрыве (temporal_discontinuity_information), вставленную в поле расширения PES заголовка PES для каждого кадра, и информация о разрыве и информация обратного отсчета подается на CPU 201.
Соответственно, когда существует разрыв в изменении значения времени декодирования (или декодировании отметок времени), CPU 201 может распознать разрыв заранее и дополнительно может из информации обратного отсчета (значения обратного отсчета) отчетливо выявить прогресс в единицах блоков доступа (кадрах), пока не произойдет разрыв. Кроме того, когда период времени отображения каждого блока доступа (кадра) переключается, CPU 201 может распознать переключение заранее и дополнительно может из информации обратного отсчета (значения обратного отсчета) отчетливо выявить прогресс в единицах блоков доступа (кадрах изображения) до переключения,
Кроме того, демультиплексор 203 извлекает отметки времени DTS и PTS, расположенные в заголовке PES для каждого кадра, и передает их в CPU 201. CPU 201 задает декодеру 205 моменты времени декодирования и моменты отображения, основываясь на отметках времени.
Декодер 205 декодирует кодированные данные изображения каждого из кадров видеопотока, накопленного в буфере 204 сжатых данных в моменты декодирования кадров и передает данные в буфер 206 несжатых данных (dpb), чтобы заставить данные временно накапливаться. В этом случае, когда декодируются кодированные данные изображения каждого из кадров, данные изображения опорного целевого кадра считываются из буфера 206 несжатых данных и используются в случае необходимости.
Данные изображения каждого из кадров, последовательно считываемых из буфера 206 несжатых данных (dpb) в моменты отображения, передаются на блок 207 последующей обработки. В этом случае момент окончания отображения последнего кадра первой последовательности устанавливается таким же, как момент начала отображения первого кадра второй последовательности.
Блок 207 последующей обработки выполняет интерполяцию или подвыборку, чтобы заставить частоту кадров данных изображения кадров совпасть с возможностями отображения. Данные изображения кадров, обрабатываемых блоком 207 последующей обработки, подаются на дисплей, где и отображается динамическое изображение данных изображения кадров.
Следует заметить, что частота сигнала Vsync кадровой синхронизации переключается по мере того, как изменяется значение коэффициента деления (коэффициента деления), подаваемое от CPU 201. Частота сигнала Vsync кадровой синхронизации переключается, чтобы совпадать с частотой кадров первой последовательности, до момент начала отображения первого кадра второй последовательности, и совпасть с частотой кадров второй последовательности с этого момента времени. CPU 201 распознает этот момент переключения, основываясь на информации о разрыве, которая является временной информацией о разрыве, и на информации обратного отсчета.
Кроме того, частота сигнала Vsync кадровой синхронизации устанавливается такой, чтобы совпасть с частотой кадров первой последовательности до момента начала отображения кадра второй последовательности, как описано выше. Поэтому кодированные данные изображения каждого из кадров второй последовательности декодируются в моменты декодирования кодированных данных изображения каждого из кадров первой последовательности до момента начала отображения первого кадра второй последовательности в соответствии с управлением CPU 201. Такое управление возможно, поскольку обнаруживается информация о разрыве временной информации о разрыве.
Как описано выше, в системе 10 передачи и приема, показанной на фиг. 1, сторона передачи выполняет кодирование таким образом, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности. Таким образом, например, сторона приема может легко обеспечивать непрерывность отображения между первой последовательностью и второй последовательностью.
Кроме того, в системе 10 передачи и приема, показанной на фиг. 1, сторона передачи выполняет кодирование таким образом, что кодированные данные изображения первой последовательности и кодированные данные изображения второй последовательности имеют одинаковое количество задержанных кадров после декодирования и до отображения. Таким образом, например, сторона приема может избежать отказа буфера, который мог бы произойти в части, переключаемой с первой последовательности на вторую последовательность.
'Кроме того, в системе 10 передачи и приема, показанной на фиг. 1, сторона передачи вставляет в кодированные данные изображения каждого кадра видеопотока информацию, указывающую, существует ли изменение частоты кадров, то есть, временную информация SEI обновления (temporal_refresh_information SEI), Таким образом, например, сторона приема может легко определять точку переключения с первой последовательности на вторую последовательность.
Кроме того, в системе 10 передачи и приема, показанной на фиг. 1, сторона передачи вставляет в пакет, содержащий видеопоток, например, в пакет PES, информацию, уведомляющую о переключении кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, то есть, временную информацию о разрыве (temporal_discontinuity_information), Таким образом, например, сторона приема может легко определять переключение с первой последовательности на вторую последовательность, временную информацию, информацию о разрыве отметки времени и информацию обратного отсчета до переключения.
Кроме того, в системе 10 передачи и приема, показанной на фиг. 1, сторона передачи вставляет на уровень контейнера, то есть, на уровень транспортного потока TS, информацию уведомления о переключении с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, то есть, дескриптор видеопараметров (Video_parameter_descriptor). Таким образом, например, сторона приема может легко определять переключение с первой последовательности на вторую последовательность и измененную частоту кадров.
Кроме того, в системе 10 передачи и приема, показанной на фиг. 1, сторона приема декодирует кодированные данные изображения каждого из кадров второй последовательности в момент декодирования кодированных данных изображения каждого из кадров первой последовательности перед моментом начала отображения первого кадра второй последовательности. Таким образом, например, можно избежать реализации, в которой одновременно формируются два асинхронных сигнала кадровой синхронизации.
2. Модифицированный пример
В описанном выше варианте осуществления показан пример, в котором сторона приема может легко обеспечивать непрерывность отображения между первой последовательностью и второй последовательностью. С этой целью, сторона передачи выполняет кодирование таким образом, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности.
Здесь сторона приема, как полагают, легко обеспечивает непрерывность отображения между первой последовательностью и второй последовательностью и дополнительно легко обеспечивает непрерывность в моменты декодирования первой последовательности и второй последовательности. С этой целью, сторона передачи выполняет кодирование таким образом, что момент декодирования первого кадра кодированных данных изображения второй последовательности устанавливается таким, как момент, полученный добавлением периода времени одного кадра кодированных данных изображения первой последовательности к моменту декодирования последнего кадра кодированных данных изображения первой последовательности:
На фиг. 24 показывает пример управления гипотетического опорного декодера (HRD) для кодера 102 в этом случае. На фиг. 24 подробные описания частей, соответствующих частям, показанным на фиг. 3, приведены выше и, соответственно, не повторяются.
В представленном примере первая последовательность состоит из 4 кадров, которые декодируются в порядке а0, a1, а2 и а3 и отображаются в порядке а0, а2, а3 и a1. В этом случае данные изображения каждого декодированного кадра вводятся в буфер несжатых данных (буфер декодированного кадра или dpb). В этом примере количество задержанных кадров после того, как декодируется первая последовательность и пока не начинается их отображение, устанавливается равным 2.
Каждый из кадров первой последовательности декодируется и отображается в момент времени сигнала (Vsync) кадровой синхронизации, имеющего период времени, соответствующий его частоте кадров (частоте смены кадров). Например, изображения а0, a1, а2 и а3 декодируются в моменты времени Та(0), Та(1), Та(2) и Та(3) и отображение кадров а0, а2, а3 и a1 начинается в моменты времени Та(2), Та(3), Та(4) и Та(5).
Вторая последовательность состоит из 6 кадров, которые декодируются в порядке b0, b1, b2, b3, b4 и b5 и отображаются в порядке b1, b2, b0, b4, b5 и b3. В этом случае кодированные данные каждого из декодированных кадров вводятся к dpb. В этом примере количество задержанных кадров после того, как декодируется вторая последовательность, и до начала ее отображения, устанавливается равным 2, также, как для первой последовательности. Соответственно, избегают отказа буфера.
Аналогично фиг. 3, момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности. Другими словами, момент Та(6) устанавливается таким же, как момент Tb(2). Соответственно, обеспечивается непрерывность отображения между первой последовательностью и второй последовательностью.
С момента начала отображения (Tb(2)) первого кадра второй последовательности, последовательность декодируется и отображается в моменты сигнала (Vsync) кадровой синхронизации, имеющего период времени, соответствующий его частоте кадров (частоте смены кадров). Например, кадры b2, b3, b4 и b5 декодируются в моменты Tb(2), Tb(3), Tb(4) и Tb(5) и отображение кадров b1, b2, b0, b4, b5 и b3 начинается в моменты Tb(2), Tb(3), Tb(4), Tb(5), Tb(6) и Tb(7).
Кроме того, перед моментом начала отображения (Tb(2)) ее первого кадра, вторая последовательность декодируется в моменты сигнала (Vsync) кадровой синхронизации, имеющего период времени, соответствующий первой частоте кадров (частоте смены кадров). В этом примере кадры b0 и b1 декодируются в моменты Tb(0) и Tb(1) при установке Tb(0)=Та(4) и Tb(1)=Та(5).
В этом случае момент декодирования первого кадра кодированных данных изображения второй последовательности устанавливается на момент времени, полученный добавлением периода времени одного кадра кодированных данных изображения первой последовательности к моменту декодирования последнего кадра кодированных данных изображения первой последовательности. Другими словами, момент времени Та(4) устанавливается таким же, как момент Tb(0). Поэтому "Initial_cpb_removal_delayB" устанавливается таким образом, что момент времени Tb(0) устанавливается таким же, как момент Та(4).
Выполняя кодирование таким образом, что момент времени Tb(0) устанавливается таким же, как момент времени Та(4), сторона приема легко обеспечивает непрерывность моментов времени декодирования первой последовательности и второй последовательности и задержки считывания первого изображения второй последовательности можно избежать. В этом случае сторона приема не требует процесса регулирования моментов времени декодирования кадров второй последовательности, расположенных перед моментом начала отображения первого кадра второй последовательности, как показано выше на фиг. 22 и 23. Поэтому нагрузка на сторону приема также может быть уменьшена.
2. Модифицированный пример
Следует заметить, что хотя описанный выше вариант осуществления показывает систему 10 передачи и приема, состоящую из устройства 100 передачи и устройства 200 приема, конфигурация системы передачи и приема, к которой может быть применена настоящая технология, этим не ограничивается. Например, устройство 200 приема может быть конфигурировано, например, с помощью цифрового приемника, соединенного с цифровым интерфейсом, таким как мультимедийный интерфейс высокой четкости (High-Definition Multimedia interface, HDMI) и монитор и т.п. Заметим, что "HDMI" является зарегистрированной торговой маркой.
Кроме того, описанный выше вариант осуществления показывает пример, в котором контейнер является транспортным потоком (MPEG-2 TS). Настоящая технология, однако, может быть также применена к системе, выполненной с возможностью распространения данных приемному терминалу, используя такую сеть, как Интернет. При распространении данных в Интернете существует много случаев распространения, использующих контейнер в формате МР4 или других форматах. Другими словами, в качестве контейнеров, различные форматы, содержащие транспортные потоки (MPEG-2 TS), используемые в цифровых широковещательных стандартах, МР4, используемый при распространении в Интернете, и т.п., ему эквивалентны.
Дополнительно, настоящая технология может быть выполнена с возможностями, описанными ниже.
(1)
Устройство кодирования, содержащее:
блок кодирования изображения, выполненный с возможностью генерирования видеоданных, имеющих часть, переключаемую с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, имеющей частоту кадров, отличную от частоты кадров первой последовательности, при этом
блок кодирования изображения выполнен с возможностью осуществления кодирования так, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности.
(2)
Устройство кодирования по (1), в котором блок кодирования изображения выполнен с возможностью осуществления кодирования так, что кодированные данные изображения первой последовательности и кодированные данные изображения второй последовательности имеют одно и то же количество задержанных кадров с момента декодирования до момента отображения.
(3)
Устройство кодирования по п. (1) или (2), в котором блок кодирования изображения выполнен с возможностью кодирования так, что момент декодирования первого кадра кодированных данных изображения второй последовательности установлен таким же, как момент, полученный добавлением периода времени одного кадра кодированных данных изображения первой последовательности к моменту декодирования последнего кадра кодированных данных изображения первой последовательности.
(4)
Устройство передачи, содержащее:
блок кодирования изображения, выполненный с возможностью генерирования видеоданных, имеющих часть, переключаемую с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, имеющей частоту кадров, отличную от первой последовательности; и
блок передачи, выполненный с возможностью передачи контейнера в заданном формате, содержащего сформированные видеоданные, при этом
блок кодирования изображения выполнен с возможностью осуществления кодирования так, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра данных изображения второй последовательности.
(5)
Устройство передачи по (4), дополнительно содержащее:
блок вставки информации, выполненный с возможностью вставки информации, указывающей, существует ли изменение частоты кадров в каждом фрагменте кодированных данных изображения каждого кадра видеоданных.
(6)
Устройство передачи по (5), в котором, когда информация указывает, что существует переключение частоты кадров, информация, указывающая значение измененной частоты кадров, добавляется к информации.
(7)
Устройство передачи по любому из (4)-(6), дополнительно содержащее:
блок вставки информации, выполненный с возможностью вставки информации, уведомляющей о переключении с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, в пакет, содержащий видеоданные.
(8)
Устройство передачи по (7), в котором информация уведомления содержит информацию, указывающую, существует ли разрыв при изменении значения времени декодирования.
(9)
Устройство передачи по (8), в котором, когда информация указывает, что существует разрыв, значение обратного отсчета количества кадров до возникновения разрыва добавляется к информации.
(10)
Устройство передачи по любому из (7)-(9), в котором информация уведомления содержит информацию, указывающую, переключается ли период времени отображения каждого кадра.
(11)
Устройство передачи по (10), в котором, когда информация указывает переключение, значение обратного отсчета количества кадров до переключения, добавляется к информации.
(12)
Устройство передачи по любому из (7)-(11), в котором блок вставки информации выполнен с возможностью вставки информации уведомления в поле расширения пакета PES, который содержит кодированные данные изображения каждого кадра в полезной нагрузке.
(13)
Устройство передачи по любому из (4)-(12), дополнительно содержащее:
блок вставки информации, выполненный с возможностью вставки информации, уведомляющей о переключении с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности на уровне контейнера.
(14)
Устройство передачи по (13), в котором информация уведомления содержит информацию о частоте кадров первой последовательности и о частоте кадров второй последовательности.
(15)
Устройство приема, содержащее:
блок приема, выполненный с возможностью приема видеоданных, имеющих часть, переключаемую с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, имеющей частоту кадров, отличную от первой последовательности; и
блок обработки, выполненный с возможностью обработки принятых видеоданных, при этом
видеоданные кодированы так, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности.
(16)
Устройство приема по (15), в котором видеоданные кодируются так, что кодированные данные изображения первой последовательности и кодированные данные изображения второй последовательности имеют одно и то же количество задержанных кадров, начиная от декодирования и до отображения.
(17)
Устройство приема по (15) или (16), в котором видеоданные кодированы так, что момент декодирования первого кадра кодированных данных изображения второй последовательности устанавливается таким, как момент времени, полученный добавлением периода времени одного кадра кодированных данных изображения первой последовательности к моменту декодирования последнего кадра кодированных данных изображения первой последовательности.
(18)
Устройство приема, содержащее:
блок приема, выполненный с возможностью, приема контейнера в заданном формате, содержащего видеоданные, имеющие часть, переключаемую с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, имеющей частоту кадров, отличную от частоты кадров первой последовательности, при этом
видеоданные кодируются так, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности, а
устройство приема дополнительно содержит блок декодирования изображения, выполненный с возможностью декодирования видеоданных, содержащихся в принятом контейнере, для получения данных изображения с непрерывностью отображения, поддерживаемой между первой последовательностью и второй последовательностью.
(19)
Устройство приема по (18), в котором перед одним и тем же моментом времени блок декодирования изображения выполнен с возможностью декодирования кодированных данных изображения каждого кадра второй последовательности в момент времени, синхронизированный с моментом времени декодирования кодированных данных изображения каждого кадра первой последовательности.
(20)
Устройство приема по (18) или (19),
в котором информация, уведомляющая о переключении с кодированных данных изображения первой последовательности на кодированные данные изображения второй последовательности, вставлена по меньшей мере в пакет, содержащий видеоданные, или на уровень контейнера, при этом
процесс блока декодирования изображения управляется, на основе информации уведомления.
Основная характеристика настоящей технологии такова, что когда распространяются видеоданные, имеющие часть с переключаемой частотой кадров, сторона приема может легко обеспечивать непрерывность отображения между первой последовательностью и второй последовательностью, поскольку кодирование выполняется таким образом, что момент окончания отображения последнего кадра кодированных данных изображения первой последовательности устанавливается таким же, как момент начала отображения первого кадра кодированных данных изображения второй последовательности (смотрите фиг. 3).
Перечень ссылочных позиций
10 Система передачи и приема
100 Устройство передачи
101 CPU (центральный процессор)
102 Кодер
103 Буфер сжатых данных (cpb)
104 Мультиплексор
105 Блок передачи
122 Блок управления задержкой буфера
123 Блок установки HRD
124 Блок установки параметров/кодирования SEI
125 Блок кодирования среза
126 Блок пакетирования NAL
142 Блок кодирования
143 Блок пакетирования PES
144 Блок транспортного пакетирования
200 Устройство приема
201 CPU (центральный процессор)
202 Блок приема
203 Демультиплексор
204 Буфер сжатых данных (cpb)
205 Декодер
206 Буфер несжатых данных (dpb)
207 Блок последующей обработки
208 Блок генерирования тактового сигнала
209 Делитель частоты
231 Блок извлечения поля адаптации TS
232 Блок извлечения информации тактового сигнала
233 Блок извлечения полезной нагрузки TS
234 Блок извлечения секций
235 Блок извлечения таблицы PSI/дескриптора
236 Блок извлечения пакета PES
237 Блок извлечения заголовка PES
238 Блок извлечения отметки времени
239 Блок извлечения информации о разрыва/обратного отсчета
240 Блок извлечения полезной нагрузки PES
251 Блок анализа пакетов NAL
252 Блок декодирования