КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ ВИДЕОПОСЛЕДОВАТЕЛЬНОСТЕЙ, СОДЕРЖАЩИХ НАБОРЫ ОПОРНЫХ ИЗОБРАЖЕНИЙ
VIDEO SEQUENCES ENCODING AND DECODING CONTAINING SETS OF REFERENCE IMAGES

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Изобретение относится к способу кодирования видеопоследовательности, содержащей Наборы Опорных Изображений (Reference Picture Sets, RPS), способу декодирования видеопоследовательности, содержащей Наборы Опорных Изображений (RPS), соответствующим компьютерным программам и компьютерным программным продуктам, соответствующему кодеру и соответствующему декодеру.
УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ
Видеокодирование Высокой Производительности (High Efficiency Video Coding, HEVC) является новым стандартом видеокодирования, в настоящее время разрабатываемым в Объединенной Рабочей Группе по Видеокодированию (Joint Collaborative Team - Video Coding, JCT-VC). JCT-VC является совместным проектом у Экспертной Группы по Движущимся Изображениям (Moving Picture Experts Group, MPEG) и Телекоммуникационного Сектора Стандартизации Электросвязи Международного Союза Электросвязи (Telecommunication Standardization Sector of the International Telecommunication Union, ITU-T). В настоящее время определено, что проект комитета включает в себя ряд новых инструментов, которые делают HEVC значительно более эффективным по сравнению со стандартами видеокодирования предшествующего уровня техники, в частности с H.264/AVC.
HEVC является гибридным кодеком, который использует множество опорных изображений для внешнего (inter-) предсказания. Он включает в себя процесс маркирования изображений, в котором опорные изображения могут быть помечены как «используемый для краткосрочной ссылки», «используемый для долгосрочной ссылки», или «неиспользуемый для ссылки». С пометкой «неиспользуемый для ссылки» опорное изображение превращается в не опорное изображение и не может больше использоваться для внешнего предсказания. Изображение, помеченное как «неиспользуемое для ссылки», в дальнейшем не может быть заново помечено, чтобы использоваться для краткосрочной или долгосрочной ссылки.
Управление процессом маркирования в HEVC осуществляется посредством Наборов Опорных Изображений (RPS). RPS является набором идентификаторов изображений, которые идентифицируют опорные изображения. RPS отправляется в каждом слайсе (вырезке), и опорные изображения, которые указаны в таком RPS, будут сохраняться в Буфере Изображений Декодера (Decoder Picture Buffer, DPB) и помечаться как «используемое для краткосрочной ссылки» или «используемое для долгосрочной ссылки».
В качестве примера, информация RPS может содержать значения «-4, -6, 4». Это означает, что текущее изображение может предсказываться из, то есть, копировать пиксели из, изображения, находящегося четыре кадра назад (в порядке отображения), так как присутствует число -4. Оно также сможет предсказываться из изображения, находящегося шесть кадров назад, и даже из изображения, находящегося четыре кадра вперед. Таким образом, декодер может отбрасывать все картинки (изображения) в своем буфере за исключением трех изображений, описанных выше. Для декодера это надежный способ отбрасывания изображений. На практике декодеру, возможно, придется сохранить эти картинки, пока они не будут отображены, но они больше не будут использоваться для внешнего предсказания. С целью упрощения в оставшейся части данного раскрытия будет подразумеваться, что декодер может отбрасывать эти картинки.
Иногда информация, содержащаяся в некотором RPS, может быть довольно большой. В качестве примера, следующий RPS используется в испытательных целях в условиях стандартизации HEVC: «-3, -2, 1, 2, 5, 6». Кодированию данного примерного RPS может потребоваться вплоть до 33 битов, что является заметной величиной, в частности при низких битовых скоростях и малых размерах картинок.
Одно ключевое наблюдение состоит в том, что RPS обычно не являются полностью произвольными. Скорее они могут быть использованы много раз повторно. В качестве примера, мы рассматриваем последовательность из 18 картинок из файла конфигурации, используемого в испытательных целях в стандартизации HEVC.
Изображения в HEVC идентифицируются значениями (PicOrderCntVal) своего Порядкового Номера Изображения (Picture Order Count, POC), также известными в качестве истинных значений POC. Эти числа представляют собой порядок вывода, также называемый порядком отображения, изображений. То есть, изображение с POC=57 будет отображено непосредственно после изображения с POC=56. Однако картинки не всегда передаются в порядке, в котором они отображаются. Например, кодер может сначала передать изображение с POC=0, за которым следует POC=8, за которым следует POC=4, и так далее. Декодер должен отслеживать изображения и отображать их в правильном порядке. В примере из стандартизации HEVC упомянутые 18 изображений будут переданы в порядке, указанном на Фиг. 1.
Как можно видеть на Фиг. 1, некоторые RPS отправляются несколько раз. Например, RPS, отправленный для POC=6 (-2, -4, -6, 2), является тем же самым, что и для POC=14. Поэтому, стандарт позволяет отправлять Наборы Опорных Изображений (RPS) в Наборах Параметров Последовательности (Sequence Parameter Sets, SPS) в дополнение к отправке Наборов Опорных Изображений (RPS) в заголовках слайсов. SPS содержат данные, которые не нужно отправлять для каждого слайса. Как правило, SPS отправляются только один раз на последовательность, или настолько часто насколько необходима возможность произвольного доступа. Например, если битовый поток передается широковещательным образом, то может быть достаточным отправлять SPS каждую секунду, так как это позволит переключать канал каждую секунду. Следует отметить, что для того, чтобы было возможным переключать канал каждую секунду, также необходимо отправлять каждую секунду изображение Совсем Произвольного Доступа (Clean Random Access, CRA), или изображение Мгновенного Обновления Декодирования (IDR). Изображение CRA является изображением, которое не предсказывается из какого-либо предыдущего изображения, и никакое изображение, которое следует за изображением CRA в порядке вывода, не предсказывается из какого-либо изображения, которое предшествует изображению CRA в порядке вывода. Изображение IDR является CRA, для которого никакое изображение, которое следует за IDR в порядке декодирования, не может ссылаться на какое-либо изображение, которое предшествует IDR в порядке декодирования.
В SPS можно задать восемь повторяющихся RPS из примера, изображенного на Фиг. 1, и назначить им индексы, как изображено на Фиг. 2. Информация, отправляемая в заголовке слайса, теперь должна ссылаться только на индекс RPS в SPS, как изображено на Фиг. 3. Использование индексов RPS требует меньшего количества битов по сравнению с отправкой непосредственно Наборов Опорных Изображений (RPS).
В связи с этим использование индексов RPS, как изображено на Фиг. 3, значительно уменьшает количество битов, необходимых для отправки Наборов Опорных Изображений (RPS), так как вместо этого большой объем данных отправляется в SPS, который отправляется менее часто. Однако оказывается, что возможно дополнительно сжать информацию RPS. Сравнивая две строки на Фиг. 1, можно заметить сходство между ними. Например, каждое число в RPS для POC=1 равно соответствующему числу в RPS для POC=6, если к нему добавить «5». То есть, первое значение «-1» в RPS для POC=1 равно -6+5. Второе значение «1» равно -4+5. Третье значение «3» равно -2+5. Единственным исключением к данному правилу является предпоследнее число «5» в RPS для POC=1. Ему необходим «0» в RPS для POC=6, однако картинка не может предсказываться из самой себя.
Как оказывается, каждый RPS на Фиг. 1 может быть предсказан из другого RPS. Это приводит к следующему способу описания данных из RPS в SPS, например, данных из RPS на Фиг. 1:
- Для каждой строки, то есть, RPS, задается то, из какого другого RPS должно быть совершено внешнее предсказание. Например, предсказание из предыдущего RPS указывается посредством отправки значения «-1» в delta_idx_minus1, который является параметром в SPS (см. синтаксис краткосрочного RPS на Фиг. 4).
- Затем, значение, которое следует добавить, «5» в примере, передается с использованием значений delta_rps_sign и abs_delta_rps_minus1, которые являются параметрами в SPS (см. синтаксис краткосрочного RPS на Фиг. 4).
Посредством отправки информации RPS по такому принципу множество битов может быть сэкономлено. Количество сэкономленных битов составляет приблизительно 50% от битов, используемых для отправки Наборов Опорных Изображений (RPS) в SPS, при измерениях для более старой версии файлов конфигурации, используемых для испытаний структуры опорного изображения HEVC. Так как данные SPS являются очень малой частью всех видеоданных битового потока, суммарный эффект составляет менее 50%, однако эффективность сжатия данных остается значительной.
Как правило, RPS отправляется один раз в некотором SPS, и последующие слайсы всего лишь указывают, какой RPS следует использовать, посредством использования индекса RPS. В некоторых ситуациях однако, кодер может пожелать использовать некоторый RPS, который не находится в упомянутом SPS. Тогда кодер имеет возможность явной отправки RPS, то есть в слайсе, как описано выше. О том, используется ли внешнее предсказание, или RPS закодирован пошагово от значения к значению, сигнализируется для каждого RPS с использованием параметра inter_ref_pic_set_prediction_flag, который является частью краткосрочного RPS, изображенного на Фиг. 4. Если inter_ref_pic_set_prediction_flag равен нулю, то используется осуществляемый пошагово от значения к значению способ передачи Наборов Опорных Изображений (RPS), в противном случае для сигнализации Наборов Опорных Изображений (RPS) используется внешнее предсказание.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Задача изобретения состоит в предоставлении улучшенной альтернативы вышеупомянутым методикам и предшествующему уровню техники.
Более конкретно, задача изобретения состоит в предоставлении улучшенного способа сигнализации Наборов Опорных Изображений (RPS).
Эти и другие задачи изобретения достигаются посредством различных аспектов изобретения, заданных в независимых пунктах формулы изобретения. Варианты осуществления изобретения характеризуются зависимыми пунктами формулы изобретения.
Согласно первому аспекту изобретения, предложен способ кодирования видеопоследовательности. Видеопоследовательность содержит Наборы Опорных Изображений (RPS), в частности краткосрочные RPS. Способ содержит этапы, на которых размещают упомянутые RPS в порядке передачи в структуре данных, определяют, используется ли явная передача RPS для некоторого RPS текущего изображения видеопоследовательности, и кодируют информацию, указывающую некоторый RPS, содержащийся в структуре данных, который должен быть использован для предсказания упомянутого RPS текущего изображения, только если используется явная передача RPS.
Согласно второму аспекту изобретения предложена компьютерная программа. Компьютерная программа содержит компьютерный программный код. Компьютерный программный код выполнен с возможностью, при исполнении в процессоре, осуществлять способ согласно первому аспекту изобретения.
Согласно третьему аспекту изобретения предложен компьютерный программный продукт. Компьютерный программный продукт содержит считываемый компьютером носитель данных. Считываемый компьютером носитель данных имеет воплощенную в себе компьютерную программу согласно второму аспекту изобретения.
Согласно четвертому аспекту изобретения предложен способ декодирования видеопоследовательности. Видеопоследовательность содержит Наборы Опорных Изображений (RPS), в частности краткосрочные RPS. Способ содержит этапы, на которых принимают структуру данных, содержащую упомянутые RPS, размещенные в порядке передачи, определяют, используется ли явная передача RPS для некоторого RPS текущего изображения видеопоследовательности, и принимают информацию, указывающую некоторый RPS, содержащийся в структуре данных, который должен быть использован для предсказания упомянутого RPS текущего изображения, только если используется явная передача RPS.
Согласно пятому аспекту изобретения предложена компьютерная программа. Компьютерная программа содержит компьютерный программный код. Компьютерный программный код выполнен с возможностью, при исполнении на процессоре, осуществлять способ согласно четвертому аспекту изобретения.
Согласно шестому аспекту изобретения предложен компьютерный программный продукт. Компьютерный программный продукт содержит считываемый компьютером носитель данных. Считываемый компьютером носитель данных имеет воплощенную в себе компьютерную программу согласно пятому аспекту изобретения.
Согласно седьмому аспекту изобретения предложен кодер для кодирования видеопоследовательности. Видеопоследовательность содержит Наборы Опорных Изображений (RPS), в частности краткосрочные RPS. Кодер содержит процессор и память. Память содержит инструкции, исполняемые процессором, посредством которых кодер выполнен с возможностью размещения упомянутых RPS в порядке передачи в структуре данных, определения, используется ли явная передача RPS для некоторого RPS текущего изображения видеопоследовательности, и кодирования информации, указывающей некоторый RPS, содержащийся в структуре данных, который должен быть использован для предсказания упомянутого RPS текущего изображения, только если используется явная передача RPS.
Согласно восьмому аспекту изобретения предложен декодер для декодирования видеопоследовательности. Видеопоследовательность содержит Наборы Опорных Изображений (RPS), в частности краткосрочные RPS. Декодер содержит процессор и память. Память содержит инструкции, исполняемые процессором, посредством которых декодер выполнен с возможностью приема структуры данных, содержащей упомянутые RPS, размещенные в порядке передачи, определения, используется ли явная передача RPS для некоторого RPS текущего изображения видеопоследовательности, и приема информации, указывающей некоторый RPS, содержащийся в структуре данных, который должен быть использован для предсказания упомянутого RPS текущего изображения, только если используется явная передача RPS.
В изобретении применяется понимание того, что кодировка и сигнализация Наборов Опорных Изображений (RPS), в частности краткосрочных RPS, могут выполняться более эффективно посредством использования внешнего предсказания Наборов Опорных Изображений (RPS). С этой целью RPS размещаются в порядке передачи в такой структуре данных, как SPS. Только если используется явная передача для некоторого RPS текущего изображения, то сигнализируется информация, указывающая, какой из упомянутых RPS, содержащихся в структуре данных, используется для предсказания упомянутого RPS текущего изображения, из кодера в декодер посредством кодирования такой информации. Другими словами, информация, которая описывает, какой RPS из упомянутых RPS, размещенных в порядке передачи, должен использоваться для предсказания, сигнализируется только, если это необходимо для декодирования видеопоследовательности. Данная информация может быть закодирована в некотором RPS, в частности в краткосрочном RPS, текущего изображения. Преимущество вариантов осуществления состоит в том, что упомянутый RPS текущего изображения может быть предсказан из RPS, просигнализированных в некотором SPS, тем самым уменьшая количество битов, необходимых для сигнализации Наборов Опорных Изображений (RPS), и, следовательно, битовую скорость закодированной видеопоследовательности. Кроме того, предложенный способ кодирования и сигнализации Наборов Опорных Изображений (RPS) менее сложен по сравнению с известными в уровне техники способами.
Повсюду в данном раскрытии следует понимать, что информация, такая как информационные элементы, параметры, значения и т.п., кодируется и сигнализируется, или передается, из кодера в декодер по сети связи. Такая информация в результате принимается в декодере и может декодироваться и использоваться впоследствии в процессе декодирования.
Согласно одному варианту осуществления изобретения способ дополнительно содержит этап, на котором определяют, используется ли внешнее предсказание для упомянутого RPS текущего изображения, и при этом информация, указывающая некоторый RPS, содержащийся в структуре данных, который должен быть использован для предсказания упомянутого RPS текущего изображения, кодируется, только если используются явная передача RPS и внешнее предсказание. То есть, информация, задающая то, какой RPS, содержащийся в структуре данных, используется для внешнего предсказания, сигнализируется в декодер, только если используется внешнее предсказание для явно переданного RPS. В случае, когда явно переданный RPS кодируется пошагово от значения к значению, то есть, без использования внешнего предсказания, упомянутая информация не кодируется и не сигнализируется. То, используется ли внешнее предсказание, может, например, быть просигнализировано из кодера в декодер посредством некоторого параметра. Преимущество данного случая состоит в том, что учитываются все альтернативные варианты для сигнализации Наборов Опорных Изображений (RPS), и уменьшается количество битов, необходимых для сигнализации Наборов Опорных Изображений (RPS).
Согласно одному варианту осуществления изобретения этап кодирования структуры данных содержит этап, на котором предсказывают по меньшей мере один RPS из некоторого RPS, который непосредственно предшествует упомянутому по меньшей мере одному RPS в порядке передачи. В частности, это применяется, если не используется явная передача RPS. Преимущество предсказания некоторого RPS, содержащегося в структуре данных, из другого RPS, содержащегося в структуре данных, такого как некоторый RPS, предшествующий упомянутому RPS в порядке передачи, состоит в том, что уменьшается количество битов, необходимых для сигнализации Наборов Опорных Изображений (RPS). Следует понимать, что внешнее предсказание не может использоваться для первого RPS в порядке передачи. В качестве альтернативы использованию внешнего предсказания RPS могут кодироваться пошагово от значения к значению.
Согласно одному варианту осуществления изобретения способ дополнительно содержит этап, на котором назначают индекс каждому RPS, содержащемуся в структуре данных, и при этом информация, указывающая некоторый RPS, который должен быть использован для предсказания упомянутого RPS текущего изображения, задает разность между индексом упомянутого RPS текущего изображения и индексом упомянутого RPS, используемого для предсказания. Преимущество данного способа кодирования информации, указывающей то, какой RPS использовать для внешнего предсказания, состоит в том, что уменьшается количество битов, необходимых для переноса такой информации, в частности при использовании Кодирования Переменной Длины (Variable Length Coding, VLC). Например, данная информация может быть закодирована с использованием параметра HEVC delta_idx_minus1, который является частью синтаксиса краткосрочного RPS, изображенного на Фиг. 4.
Согласно одному варианту осуществления изобретения структурой данных является SPS.
Согласно одному варианту осуществления изобретения этап определения того, используется ли явная передача RPS, содержит этап, на котором определяют, равен ли индекс RPS текущего изображения количеству упомянутых RPS, содержащихся в SPS. Это является эффективным способом определения того, используется ли явная передача RPS, так как упомянутое количество RPS, в частности краткосрочных RPS, содержащихся в SPS, сигнализируется в SPS и поэтому известно как в кодере, так и в декодере.
Согласно одному варианту осуществления изобретения этап определения того, используется ли явная передача RPS, содержит этап, на котором определяют, закодирован ли упомянутый RPS текущего изображения в заголовке слайса текущего изображения. Это является альтернативным способом определения того, используется ли явная передача RPS. С этой целью осуществляется обследование заголовка слайса для проверки того, закодирован ли некоторый RPS в заголовок слайса.
Несмотря на то, что преимущества изобретения были в некоторых случаях описаны со ссылкой на варианты осуществления первого или четвертого аспектов изобретения, соответствующее рассуждение применимо к вариантам осуществления других аспектов изобретения.
Дополнительные задачи, признаки и преимущества изобретения станут очевидными при изучении последующего подробного раскрытия, чертежей и прилагаемой формулы изобретения. Специалистам в уровне техники понятно, что для создания вариантов осуществления, отличающихся от тех, которые описаны в нижеследующем, могут объединяться различные признаки изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеупомянутые, а также дополнительные задачи, признаки и преимущества изобретения будут лучше поняты через последующее иллюстративное и не накладывающее ограничений подробное описание вариантов осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 является примером Наборов Опорных Изображений (RPS).
На Фиг. 2 изображена кодировка примерных RPS в SPS.
На Фиг. 3 изображена кодировка примерных RPS в заголовке слайса.
На Фиг. 4 показан известный синтаксис краткосрочного RPS.
На Фиг. 5 показана примерная последовательность изображений в строгом порядке передачи в соответствии с одним вариантом осуществления изобретения.
На Фиг. 6 показана примерная последовательность изображений в менее строгом порядке передачи в соответствии с одним вариантом осуществления изобретения.
На Фиг. 7 изображена кодировка примерных RPS в SPS в порядке передачи в соответствии с одним вариантом осуществления изобретения.
На Фиг. 8 показан предложенный синтаксис краткосрочного RPS в соответствии с одним вариантом осуществления изобретения.
На Фиг. 9 показан битовый поток в соответствии с одним вариантом осуществления изобретения.
На Фиг. 10 показан способ кодирования Наборов Опорных Изображений (RPS) в соответствии с одним вариантом осуществления изобретения.
На Фиг. 11 показан способ декодирования Наборов Опорных Изображений (RPS) в соответствии с одним вариантом осуществления изобретения.
На Фиг. 12 показаны кодер и декодер в соответствии с некоторыми вариантами осуществления изобретения.
Все фигуры являются схематическими, не обязательно выполненными в масштабе, и в целом только изображают части, которые необходимы для объяснения изобретения, в котором другие части могут опускаться или просто предполагаться.
ПОДРОБНОЕ ОПИСАНИЕ
Теперь далее по данному документу изобретение будет описываться более подробно со ссылкой на сопроводительные чертежи, на которых изображены некоторые варианты осуществления изобретения. Данное изобретение может, однако, быть воплощено во множестве различных форм и не должно рассматриваться как ограниченное вариантами осуществления, изложенными в данном документе. Вместо этого данные варианты осуществления предоставляются в качестве примера так, чтобы данное раскрытие было исчерпывающим и полным и полностью доносило объем изобретения до специалистов в уровне техники.
Предложенный способ сигнализации Наборов Опорных Изображений (RPS) основан на компоновке упомянутых RPS в структуру данных, такую как SPS, в порядке передачи. Существуют различные типы порядка передачи, в частности, строгий порядок передачи, порядок передачи по Группам Изображений (Group of Pictures, GOP) и общий порядок передачи. Далее в данном документе строгий порядок передачи описывается со ссылкой на Фиг. 5, на которой изображена последовательность из 16 изображений.
При строгом порядке передачи RPS кодируются в том же самом порядке, в котором они должны использоваться, то есть, в порядке, изображенном на Фиг. 5, который является порядком, в котором картинки декодируются, то есть, порядком декодирования, пока не останется ни одного RPS для отправки (изображение с POC=17 будет повторно использовать RPS в строке 12, POC=18 будет повторно использовать RPS в строке 13, POC=19 будет повторно использовать RPS в строке 14, POC=20 будет повторно использовать RPS в строке 15, POC=21 будет повторно использовать RPS в строке 12 и т.д.). В данном случае гарантируется, что предсказание из предыдущей строки, то есть, RPS, будет осуществимо.
Однако, это достаточное, но не необходимое условие. Существуют другие, менее строгие, порядки передачи, которые также позволяют осуществлять предсказание из предыдущей строки RPS. Один способ состоит в перестановке Групп (GOP) Изображений. Поскольку изображения, доступные для предсказания, главным образом определяются положением внутри GOP, иногда возможно предсказывать первый RPS некоторой GOP из последнего RPS предыдущей GOP. Например, возможен порядок, изображенный на Фиг. 6. На Фиг. 6, вторая группа GOP в SPS имеет меньший номер GOP по сравнению с предыдущей (первой) группой GOP, и строка с индексом 4 (GOP=0) поэтому может предсказываться из строки с индексом 3.
Альтернативное определение передачи в порядке передачи является следующим: считается, что RPS A передается в порядке передачи относительно RPS B, если RPS B передается следующим после A, и существуют изображение X, которое использует RPS A, и изображение Y, которое использует RPS B, и изображение Y является изображением, которое следует за изображением X в порядке декодирования.
Схожее определение, но для хранения в порядке передачи, является следующим: считается, что RPS A хранится в порядке передачи относительно RPS B, если индекс RPS B равен индексу RPS A плюс один, и существуют изображение X, которое использует RPS A, и изображение Y, который использует RPS B, и изображение Y является изображение, которое следует за изображением X в порядке декодирования.
Дополнительно, процесс кодирования и сигнализации Наборов Опорных Изображений (RPS) зависит от того, отправляется ли RPS явно или неявно. Если RPS отправляются один раз на последовательность или один раз в секунду в структуре данных, такой как SPS, то каждый слайс, который в большинстве случаев ссылается на некоторый кадр, может ссылаться на строку RPS, то есть, индекс RPS, в SPS. Это называется неявной передачей RPS.
Альтернативный вариант заключается в передаче Наборов Опорных Изображений (RPS) непосредственно в заголовке слайса. Это называется явной передачей RPS и может использоваться в ситуациях, когда декодер не может использовать RPS в SPS, или, желает использовать RPS, который не содержится в задействованном SPS.
Как описано выше, существует два альтернативных варианта для кодирования некоторого RPS при использовании явной передачи RPS, кодирование с использованием внешнего предсказания или пошаговый подход от значения к значению. Если используется внешнее предсказание, то важно задать то, из какого RPS, или строки в списке Наборов Опорных Изображений (RPS) в структуре данных, осуществлять предсказание. Так как кодер может выбрать явное кодирование упомянутого RPS для любого кадра, то декодер не может знать, какая строка более вероятна. Поэтому, если используется внешнее предсказание для явной передачи RPS, то необходима информация, идентифицирующая один из RPS, содержащегося в структуре данных, то есть, SPS. Такая информация может сигнализироваться в параметре delta_idx_minus1.
Однако неочевидное наблюдение состоит в том что, это не является случаем для кодирования Наборов Опорных Изображений (RPS) в SPS. При условии, что RPS отправляются в порядке передачи, для каждого RPS, кроме первого RPS в SPS, RPS, непосредственно предшествующий упомянутому RPS, должен включать в себя все картинки, которые могут использоваться для упомянутого RPS, за исключением предыдущего кадра непосредственно. Следовательно, при кодировании Наборов Опорных Изображений (RPS) в SPS, переменная delta_idx_minus1 равна нулю, и ее не нужно передавать.
Для дополнительного объяснения данного наблюдения RPS с Фиг. 2 снова изображены на Фиг. 7, хотя и с записанными номерами POC, а также с разностными значениями POC (deltaPOC), то есть, разностью между предыдущим и текущим номером POC.
На Фиг. 7 кодер сначала должен будет отправить первое изображение с POC=0, внутреннее изображение, который не может предсказываться ни из какого-либо предыдущего изображения. Второе изображение, то есть, первая строка на Фиг. 7, будет имеет POC=8 и deltaPOC=0-8=-8. Поскольку нет никакого другого переданного изображения, чем POC=0, то единственное изображение, на которое POC=8 может ссылаться, является POC=0. Следовательно -8 является единственным возможным значением в упомянутом RPS.
Теперь рассмотрим второе переданное изображение с POC=4. Единственными двумя изображениями, которые доступны, являются предыдущая картинка POC=8, представленная посредством deltaPOC=4, и первая картинка с POC=0. Если изображение не является предыдущим изображением, то оно должно быть доступно в предыдущем RPS, в противном случае декодер отбросит его. Поэтому второе изображение должно иметь значение POC, которое выводится из предыдущего RPS, который содержит только -8. Добавление deltaPOC=4 к этому значению дает в результате -4, которое является вторым значением в RPS.
Следовательно, должно быть ясно, что, если RPS хранятся в порядке передачи, то все RPS должны либо a) быть восстанавливаемыми, или предсказываемыми, из предыдущего RPS, посредством добавления deltaPOC к значениям в предыдущем RPS, либо b) они должны представлять собой непосредственно deltaPOC.
В противном случае, то есть, если значение не является ни a), ни b), значение не является предсказываемым из какого-либо значения в предыдущем RPS, и декодер уже отбросил изображение, и осуществление ссылки невозможно. Единственными исключениями является предыдущее изображение, которое не находится в предыдущем RPS, так как упомянутое изображение не предсказывается из самого себя, и значит точно b).
На основе данного рассуждения должно быть ясно, что, если RPS размещаются и кодируются в порядке передачи в SPS, то параметр delta_idx_minus1 может быть опущен, сберегая как сложность, так и биты. Однако при явной передаче Наборов Опорных Изображений (RPS) желателен доступ к любому RPS в SPS для того, чтобы использовать этот RPS для внешнего предсказания. В данном случае, RPS, из которого будет осуществляться предсказание, сигнализируется с использованием delta_idx_minus1. Поэтому, предлагается проверить, используется ли явная передача RPS совместно с внешним предсказанием или нет. Если используется явная передача RPS, и выполнено внешнее предсказание, то delta_idx_minus1 будет передан, в противном случае он опускается.
Следует отметить, что проблема относительно того, сигнализировать ли delta_idx_minus1 или нет, возникает только, если используется внешнее предсказание, как можно увидеть из синтаксиса краткосрочного RPS, изображенного на Фиг. 4. Оператор «if» в строке 3,
if(inter_ref_pic_set_prediction_flag)
проверяет, используется ли внешнее предсказание или нет. С этой целью, delta_idx_minus1 сигнализируется, только если выражение оператора «if» является истинным, то есть, только если используется внешнее предсказание.
Предложенный способ кодирования и сигнализации Наборов Опорных Изображений (RPS), в частности по отношению к явной или неявной передаче, отражен в предложенном синтаксисе краткосрочного RPS, изображенном на Фиг. 8.
В синтаксисе краткосрочного RPS, изображенном на Фиг. 8, вводится новый оператор «if»:
if(idx == num_short_term_ref_pic_sets)
Если выражение данного оператора «истинно», то для текущего изображения используется явная передача RPS, и декодеру нужно декодировать delta_idx_minus1. В противном случае, если выражение оператора ложно, то упомянутый RPS является одним из RPS, просигнализированных в SPS, и подразумевается, что delta_idx_minus1 равно 0, то есть, выполняется внешнее предсказание из непосредственно предшествующего RPS. В соответствии с известным краткосрочным RPS, изображенным на Фиг.4, проблема относительно того, сигнализировать ли delta_idx_minus1 или нет, возникает, только если используется внешнее предсказание. Это можно увидеть из оператора «if» в строке 3 предложенного краткосрочного RPS, изображенного на Фиг. 8, который идентичен оператору «if» известного краткосрочного RPS, изображенного на Фиг. 4.
Более конкретно, обработка в соответствии с синтаксисом, изображенным на Фиг. 8, выполняется в обоих случаях: когда создается SPS, например, один раз на последовательность или один раз в секунду, и в качестве дополнительной возможности для заголовка слайса текущего изображения, когда кодер использует явную передачу RPS. В первом случае, значение idx будет изменяться от 0 до значения num_short_term_ref_pic_sets - 1, то есть, до количества краткосрочных RPS, просигнализированных в SPS, минус один. Во втором случае, когда используется явная передача RPS, значение idx будет равно num_short_term_ref_pic_set. Таким образом можно определить, используется ли явная передача RPS, посредством сравнения idx с num_short_term_ref_pic_set, как это делается оператором «if».
В качестве альтернативы можно предусмотреть варианты осуществления изобретения, которые основываются на другом параметре other_parameter, который равен 0 при вызове в течение создания SPS, то есть, первый случай, описанный выше, и равен 1 при вызове в течение создания заголовка слайса. В таком случае соответствующий оператор «if» считывает
if(other_parameter).
В качестве еще одной дополнительной альтернативы при создании SPS могут исполняться одна функция для создания краткосрочного RPS и другая функция при создании заголовка слайса. С этой целью, первая функция не будет передавать/принимать параметр delta_idx_minus1, а вторая функция будет передавать/принимать параметр delta_idx_minus1.
На первый взгляд кажется, что предложенный синтаксис краткосрочного RPS, изображенный на Фиг. 8, увеличил сложность по сравнению с текущим стандартом, изображенным на Фиг. 4, отчасти из-за дополнительного оператора «if» в строке 4. Однако следует отметить, что декодирование значения delta_idx_minus1 сложнее простой оценки оператора «if». Кроме того, так как для большинства изображений используется неявная передача RPS, то дополнительный оператор «if» исполняется редко.
Теперь для дополнительного объяснения изобретения будет описан иллюстративный пример варианта осуществления изобретения со ссылкой на Фиг. 9, на которой изображен битовый поток 900, содержащий SPS 901 и три слайса, «слайс 2» 902, «слайс 3» 903 и «слайс 4» 904. Битовый поток 900 может содержать дополнительные элементы, которые опущены на Фиг. 9.
SPS 901 содержит, среди других данных, пять RPS 905. RPS может быть передан в SPS посредством кодировки пошагово от значения к значению, что во многих случаях является самым эффективным способом, если количество значений в упомянутом RPS мало. Например, первый RPS ({-8}) в списке RPS 905 может быть отправлен пошагово от значения к значению в виде:
inter_ref_set_prediction_flag=0
num_negative_pics=1
num_positive_pics=0
delta_poc_s0_minus1[0]=8
used_by_cur_flag[0]=1
В качестве альтернативного варианта RPS, содержащийся в SPS, может также быть передан с использованием внешнего предсказания, например, второй RPS ({-4, 4}) в списке RPS 905. Так как RPS сигнализируется в SPS 901, то есть, не явно, то ненужно сигнализировать какую-нибудь информацию, описывающую то, из какого RPS осуществлять предсказание, так как внешнее предсказание выполняется из предыдущей строки, которая в настоящем примере содержит только одно значение {-8}. Следовательно, второй RPS передается в виде:
inter_ref_set_prediction_flag=1
delta_rps_sign=0
abs_delta_rps_minus1=3
Декодер сможет восстановить второй RPS следующим образом. Сначала, deltaRps=(1 - 2*delta_rps_sign) * (abs_delta_rps_minus1+1)=4 вычисляется и добавляется к значению {-8} (первый RPS), приводя в результате к -4, что является первым значением второго RPS. Второе значение второго RPS представляет собой непосредственно значение delta_rps (delta_rps =4). Таким образом второй RPS восстанавливается в виде {-4, 4}. Здесь следует подчеркнуть, что delta_idx_minus1 не передается для второго RPS, так как подразумевается равной нулю.
Соответственно, оставшиеся RPS в списке RPS 905 в SPS 901 могут быть отправлены либо пошагово от значения к значению, либо с использованием внешнего предсказания, как описано выше. Например, третий RPS {-2, -4, -6, 2} может быть просигнализирован с использованием внешнего предсказания, тогда как четвертый RPS {-1, 1, 3, 5, 7} может быть просигнализирован пошагово от значения к значению.
Дополнительно со ссылкой на битовый поток 900, изображенный на Фиг. 9, слайс 2 902 изображает неявную передачу RPS. В связи с этим слайс 2 902 содержит информацию, указывающую 909 то, какой RPS в списке 905 Наборов Опорных Изображений (RPS) следует использовать, например, индекс #1 RPS. Таким образом, для слайса 2 902 кодер передает:
short_term_ref_pic_set_sps_flag=1
для указания того, что следует использовать RPS из списка 905 Наборов Опорных Изображений (RPS) в SPS 901, и затем передает
short_term_ref_pic_set_idx=1
для указания того, что должен использоваться второй RPS в списке 905, имеющий индекс «#1».
В качестве дополнительного примера предполагается, что слайс 3 903, который передается в битовом потоке 900, не может использовать какой-либо RPS из списка 905 Наборов Опорных Изображений (RPS), просигнализированных в SPS 901, но вместо этого явно сигнализирует RPS 907. Существует два способа явной сигнализации, и в настоящем примере слайс 3 903 использует кодировку пошагово от значения к значению. Таким образом, кодер передает:
inter_ref_set_prediction_flag=0
num_negative_pics=1
num_positive_pics=2
delta_poc_s0_minus1[0]=1
used_by_cur_flag[0]=1
delta_poc_s1_minus1[0]=1
used_by_cur_flag[0]=1
delta_poc_s1_minus1[1]=3
used_by_cur_flag[1]=1
для сигнализации RPS 907 ({-2, 2, 6}). Количество отрицательных величин в данном наборе - одна (-2), а количество положительных - две (2 и 6). Отрицательное значение кодируется относительно нуля (delta_poc_s0[0]=2), и первое положительное значение кодируется аналогично. В конце кодируется разность между двумя положительными значениями (6-2=4) (delta_poc_s1[1]=4).
Другой способ явного кодирования изображен со ссылкой на слайс 4 904 битового потока 900. Слайс 4 904 использует внешнее предсказание, но поскольку RPS передается явно, то должна быть предоставлена информация 908, указывающая 910 то, из какого RPS в списке 905 Наборов Опорных Изображений (RPS) осуществлять предсказание. В настоящем примере, это указано посредством индекса «#2» RPS 908. Таким образом нижеследующее передается в слайсе 4 904:
inter_ref_set_prediction_flag=1
delta_idx_minus1=2
num_negative_pics=1
num_positive_pics=0
delta_poc_s0_minus1[0]=8
used_by_cur_flag[0]=1
Теперь декодер может вычислить RefRpsIdx следующим образом
RefRpsldx = stRpsldx - (delta_idx_minus1+1).
В настоящем примере список 905 Наборов Опорных Изображений (RPS) в SPS 901 содержит пять RPS. Таким образом stRpsIdx будет равен пяти, а RefRPSIdx оценивается как 5 - (2+1)=2, что является индексом третьего RPS ({-2, -4, -6, 2}). В случае слайса 4 904, delta_idx_minus1 должен быть отправлен для того, чтобы указать то, из какого RPS осуществлять предсказание. В дополнение к индексу RPS 908 сигнализируется информация, описывающая то, как осуществлять предсказание («данные предсказания» 908).
В нижеследующем для декодера описывается пример, изображенный на Фиг. 9. Декодер сначала принимает SPS 901, содержащий список 905 Наборов Опорных Изображений (RPS). RPS, содержащиеся в списке 905, могут приниматься либо пошагово от значения к значению, либо с использованием внешнего предсказания. Например, первый RPS ({-8}) принимается пошагово от значения к значению посредством приема
inter_ref_set_prediction_flag=0
num_negative_pics=1
num_positive_pics=0
delta_poc_s0_minus1[0]=8
used_by_cur_flag[0]=1
С другой стороны, второй RPS ({-4, 4}) может быть принят с использованием внешнего предсказания. Однако, так как упомянутый RPS содержится в SPS 901, RPS не принимается явно, и поэтому delta_idx_minus1 не принимается. Следовательно, нижеследующее принимается декодером для второго RPS:
inter_ref_set_prediction_flag=1
delta_rps_sign=0
abs_delta_rps_minus1=3
Декодер сможет восстановить deltaRps=(1-2*delta_rps_sign) * (abs_delta_rps_minus1+1)=4. Затем deltaRps добавляется к значению {-8} (из первого RPS), приводя в результате к -4, что является первым значением второго RPS. Второе значение второго RPS представляет собой непосредственно значение delta_rps (4), и поэтому RPS предсказывается как {-4, 4}. Другие RPS, сигнализируемые в SPS 901, принимаются пошагово от значения к значению или с использованием внешнего предсказания, как описано выше.
Для слайса 2 902 RPS принимается неявно посредством индекса («#1») RPS 906, который указывает 909 на второй RPS в списке 905 Наборов Опорных Изображений (RPS) в SPS 901. Слайс 3 903 передает свой RPS 907 явно, закодированный пошагово от значения к значению.
RPS для слайса 4 904 принимается явно с использованием внешнего предсказания. Поэтому принимается информация 908, указывающая RPS в списке 905 Наборов Опорных Изображений (RPS), который следует использовать для внешнего предсказания (индекс RPS «#2»), в дополнение к информации, описывающей то, как осуществлять предсказание («данные предсказания» 908). В данном случае, необходимо принять delta_idx_minus1, и нижеследующая информация принимается декодером:
inter_ref_set_prediction_flag=1
delta_idx_minus1=2
num_negative_pics=1
num_positive_pics=0
delta_poc_s0_minus1[0]=8
used_by_cur_flag[0]=1
В данном случае следует подчеркнуть, что для явного приема RPS слайса 4 904 с использованием внешнего предсказания необходимо принять delta_idx_minus1.
На Фиг. 10 изображен вариант осуществления способа кодирования видеопоследовательности, содержащей Наборы Опорных Изображений (RPS). Способ 1000 начинается с размещения 1001 упомянутых RPS в порядке передачи в структуре данных, такой как SPS, и отправки 1001 структуры данных. Впоследствии определяется 1002, используется ли внешнее предсказание. Это, например, может достигаться посредством использования inter_ref_set_prediction_flag, как описано выше и как известно в уровне техники. Если используется внешнее предсказание («ДА» на Фиг. 10), то определяется 1002, используется ли явная передача RPS для некоторого RPS текущего изображения видеопоследовательности, то есть, сигнализируется ли упомянутый RPS в заголовке слайса текущего изображения. Если используется явная передача, то есть, если упомянутый RPS сигнализируется в заголовке слайса текущего изображения, то информация, указывающая некоторый RPS, содержащийся в структуре данных, который должен быть использован для предсказания упомянутого RPS текущего изображения, например, delta_idx_minus1, кодируется и отправляется 1004. Данная информация передается 1004 только, если используется явная передача RPS, в противном случае она не передается 1005. Аналогично, если не используется внешнее предсказание 1002 («НЕТ» на Фиг. 10), то информация, указывающая некоторый RPS, содержащийся в структуре данных, который должен быть использован для предсказания упомянутого RPS текущего изображения, например, delta_idx_minus1, не сигнализируется. Следует понимать, что варианты осуществления изобретения не ограничены точным порядком этапов, изображенных на Фиг. 10. Например, могут быть предусмотрены варианты осуществления изобретения, в которых сначала определяется, используется ли явная передача RPS для некоторого RPS текущего изображения видеопоследовательности, то есть, сигнализируется ли упомянутый RPS в заголовке слайса текущего изображения, и впоследствии определяется, используется ли внешнее предсказание.
На Фиг. 11 изображен вариант осуществления способа декодирования видеопоследовательности, содержащей Наборы Опорных Изображений (RPS). Способ 1100 содержит прием 1101 структуры данных, содержащей упомянутые RPS, размещенные в порядке передачи, и определение 1102, используется ли внешнее предсказание. Это, например, может достигаться посредством обследования inter_ref_set_prediction_flag, как описано выше. Если используется внешнее предсказание («ДА» на Фиг. 11), то определяется 1103, используется ли явная передача RPS для некоторого RPS текущего изображения видеопоследовательности, то есть, сигнализируется ли упомянутый RPS в заголовке слайса текущего изображения. Если используется явная передача, то есть, если упомянутый RPS сигнализируется в заголовке слайса текущего изображения, то принимается 1104 информация, указывающая некоторый RPS, содержащийся в структуре данных, который должен быть использован для предсказания упомянутого RPS текущего изображения, например, delta_idx_minus1. Данная информация принимается 1104, только если используется явная передача RPS, в противном случае она не принимается 1105. Если данная информация представляет собой delta_idx_minus1, задающую разность между индексом упомянутого RPS текущего изображения и индексом упомянутого RPS, используемого для предсказания, то вместо этого delta_idx_minus1 интерпретируется 1105 как равная нулю, то есть, предыдущий RPS используется для внешнего предсказания. Если внешнее предсказание не используется 1102 («НЕТ» на Фиг. 10), то информация, указывающая некоторый RPS, содержащийся в структуре данных, который должен быть использован для предсказания упомянутого RPS текущего изображения, например, delta_idx_minus1, не принимается. Следует понимать, что варианты осуществления изобретения не ограничены точным порядком этапов, изображенных на Фиг. 11. Например, могут быть предусмотрены варианты осуществления изобретения, в которых сначала определяется, используется ли явная передача RPS для некоторого RPS текущего изображения видеопоследовательности, то есть, сигнализируется ли упомянутый RPS в заголовке слайса текущего изображения, и впоследствии определяется, используется ли внешнее предсказание.
На Фиг. 12 изображены варианты осуществления кодера для кодирования видеопоследовательности, содержащей Наборы Опорных Изображений (RPS), и варианты осуществления декодера для декодирования видеопоследовательности, содержащей Наборы Опорных Изображений (RPS).
Кодер 1200 содержит процессор 1201 и память 1202, содержащую инструкции 1203, исполняемые процессором 1201, посредством которых кодер 1200 выполнен с возможностью размещения упомянутых RPS в порядке передачи в структуре данных, определения, используется ли явная передача RPS для некоторого RPS текущего изображения видеопоследовательности, и кодирования информации 1220, указывающей некоторый RPS, содержащийся в структуре данных, который должен быть использован для предсказания упомянутого RPS текущего изображения, например, delta_idx_minus1, только если используется явная передача RPS.
Декодер 1210 содержит процессор 1211 и память 1212, содержащую инструкции 1213, исполняемые процессором 1211, посредством которых декодер 1210 выполнен с возможностью приема структуры данных, содержащей упомянутые RPS, размещенные в порядке передачи, определения, используется ли явная передача RPS для некоторого RPS текущего изображения видеопоследовательности, и приема информации 1220, указывающей некоторый RPS, содержащийся в структуре данных, который должен быть использован для предсказания упомянутого RPS текущего изображения, например, delta_idx_minus1, только если используется явная передача RPS.
Следует отметить, что варианты осуществления, описанные в данном документе, относятся к видеокодерам и видеодекодерам, а также синтаксическим анализаторам битовых потоков, транскодерам, сетевым узлам и т.д. Варианты осуществления кодера и декодера могут быть реализованы в таких устройствах, как видеокамеры, устройства отображения, планшеты, приемники цифрового телевидения, сетевые узлы и т.д. Несмотря на то, что на Фиг. 12 изображено, что отправляется параметр delta_idx_minus1, следует понимать, что delta_idx_minus1 отправляется только, только если используется явная передача RPS, в соответствии с вариантами осуществления изобретения.
Также следует понимать, что использование delta_idx_minus1 повсюду в данном документе является лишь примером для того, как указывать, какой RPS следует использовать для внешнего предсказания, и читателю должно быть очевидным, что могут использоваться другие схемы сигнализации. В этом отношении любое упоминание delta_idx_minus1 должно пониматься в качестве указателя того, из какого RPS осуществлять предсказание.
Следует дополнительно отметить, что, несмотря на то, что в вариантах осуществления в данном документе описаны RPS в качестве части SPS, Наборы Опорных Изображений (RPS) также могут содержаться в других структурах данных, например, в нескольких PPS или любом другом наборе параметров.
В качестве альтернативного варианта кодеру 1200, описанному со ссылкой на Фиг. 12, вариант осуществления кодера может также содержать средство, сконфигурированное для размещения упомянутых RPS в порядке передачи в структуре данных, определения, используется ли явная передача RPS для некоторого RPS текущего изображения видеопоследовательности, и кодирования информации, указывающей некоторый RPS, содержащийся в структуре данных, который должен быть использован для предсказания упомянутого RPS текущего изображения, например, delta_idx_minus1, только если используется явная передача RPS.
В качестве еще одной дополнительной альтернативы вариант осуществления кодера может также содержать средство для размещения упомянутых RPS в порядке передачи в структуре данных, средство для определения, используется ли явная передача RPS для некоторого RPS текущего изображения видеопоследовательности, и средство для кодирования информации, указывающей некоторый RPS, содержащийся в структуре данных, который должен быть использован для предсказания упомянутого RPS текущего изображения, например, delta_idx_minus1, только если используется явная передача RPS.
В качестве альтернативного варианта декодеру 1210, описанному со ссылкой на Фиг. 12, вариант осуществления декодера может также содержать средство, сконфигурированное для приема структуры данных, содержащей упомянутые RPS, размещенные в порядке передачи, определения, используется ли явная передача RPS для некоторого RPS текущего изображения видеопоследовательности, и приема информации, указывающей некоторый RPS, содержащийся в структуре данных, который должен быть использован для предсказания упомянутого RPS текущего изображения, например, delta_idx_minus1, только если используется явная передача RPS.
В качестве еще одной дополнительной альтернативы вариант осуществления декодера может также содержать средство для приема структуры данных, содержащей упомянутые RPS, размещенные в порядке передачи, средство для определения, используется ли явная передача RPS для некоторого RPS текущего изображения видеопоследовательности, и средство для приема информации, указывающей некоторый RPS, содержащийся в структуре данных, который должен быть использован для предсказания упомянутого RPS текущего изображения, например, delta_idx_minus1, только если используется явная передача RPS.
Специалисту в данной области техники понятно, что изобретение никоим образом не ограничено вариантами осуществления, описанными выше. Напротив, в объеме прилагаемой формулы изобретения возможно множество преобразований и изменений.