Притязание на приоритет
Настоящая заявка связана с предварительной заявкой на патент США № 61/510753, поданной 22 июля 2011 г., которая настоящим включена путем ссылки в полном объеме, и по ней испрашивается приоритет.
Область техники, к которой относится изобретение
Настоящее изобретение относится к области кодирования видеосигнала, например, кодированию трехмерных видеоданных.
Уровень техники
Возможности цифрового видео можно внедрять в разнообразные устройства, включая цифровые телевизоры, системы прямого цифрового вещания, беспроводные широковещательные системы, карманные персональные компьютеры (КПК), портативные или настольные компьютеры, планшетные компьютеры, устройства чтения электронных книг, цифровые камеры, цифровые устройства записи, цифровые медиапроигрыватели, устройства для видеоигр, консоли для видеоигр, сотовые или спутниковые радиотелефоны, так называемые «смартфоны», устройства видеоконференцсвязи, устройства потоковой передачи видеосигнала и пр. Устройства цифрового видео реализуют методы сжатия видеосигнала, например MPEG-2, MPEG-4, или H.264/MPEG-4, Part 10, Advanced Video Coding (AVC), для более эффективной передачи и приема цифрового видеосигнала. Методы сжатия видеосигнала осуществляют пространственное и временное прогнозирование для снижения или устранения избыточности, присущей видеопоследовательностям.
Методы сжатия видеосигнала осуществляют пространственное прогнозирование и/или временное прогнозирование для снижения или устранения избыточности, присущей видеопоследовательностям. Для кодирования видеосигнала на основании блоков, кадров или серии последовательных макроблоков видео можно разбивать на макроблоки. Каждый макроблок можно дополнительно разбивать. Макроблоки во внутреннекодированном (I) кадре или серии последовательных макроблоков кодируются с использованием пространственного прогнозирования в отношении соседних макроблоков. Макроблоки во внешнекодированном (P или B) кадре или серии последовательных макроблоков могут использовать пространственное прогнозирование в отношении соседних макроблоков в одном и том же кадре или серии последовательных макроблоков или временное прогнозирование в отношении других опорных кадров.
После кодирования видеоданных, видеоданные можно пакетизировать для передачи или хранения. Видеоданные можно собирать в видеофайл, отвечающий любому из различных стандартов, например, формату медиафайлов, установленному Международной организацией по стандартизации (ISO) и его расширениям, например AVC.
Были предприняты усилия по разработке новых стандартов кодирования видеосигнала на основании H.264/AVC. Одним таким стандартом является стандарт кодирования масштабируемого видео (SVC), который представляет собой масштабируемое расширение до H.264/AVC. Другим стандартом является кодирование многовидового видео (MVC), который стал многовидовым расширением до H.264/AVC. Совместный проект MVC описан в JVT-AB204, “Joint Draft 8.0 on Multiview Video Coding”, 28th JVT meeting, Hannover, Germany, July 2008, доступном по адресу http://wftp3.itu.int/av-arch/jvt-site/2008_07_Hannover/JVT-AB204.zip. Версия стандарта AVC описана в JVT-AD007, “Editors' draft revision to ITU-T Rec. H.264 | ISO/IEC 14496-10 Advanced Video Coding - in preparation for ITU-T SG 16 AAP Consent (in integrated form)”, 30th JVT meeting, Geneva, CH, Feb. 2009,” доступном по адресу http://wftp3.itu.int/av-arch/jvt-site/2009_01_Geneva/JVT-AD007.zip. Этот документ объединяет SVC и MVC в спецификации AVC.
Раскрытие изобретения
В общем, в настоящем раскрытии описаны методы для поддержки кодирования и визуализации трехмерного (3D) видеосигнала. В частности, методы настоящего изобретения относятся к кодированию и декодированию 3D видеосодержимого. Методы настоящего изобретения включают в себя кодирование информации текстуры (например, данных светлоты или яркости и данные цвета или цветности), а также карты глубин для информации текстуры. Карта глубин можно прогностически кодировать с использованием методов, аналогичных применяемым для кодирования информации текстуры, например, кодирования с внутренним прогнозированием и/или кодирования с внешним прогнозированием. Карты глубин, кодированные с использованием методов кодирования с внешним прогнозированием, именуются в настоящем документе «картами глубин движения». Настоящее изобретение предусматривает кодирование карт глубин движения, которые имеют диапазон глубины изменения относительно опорной карты глубин. Например, настоящее изобретение предусматривает регулирование значений прогностического блока на основании различия между первым диапазоном глубины реального мира опорной компоненты вида глубины и вторым диапазоном глубины реального мира компоненты текущего вида глубины. Например, значения прогнозируемой карты глубин можно регулировать согласно процессу кодирования с повторным картированием пиксельных значений, который осуществляется после компенсации движения.
В 3D кодеке, компонента вида каждого вида видеоданных в конкретный момент времени может включать в себя компоненту вида текстуры и компоненту вида глубины. Компонента вида текстуры может включать в себя компоненты яркости (Y) и компоненты цветности (Cb и Cr), совместно именуемые «информацией текстуры» или «компонентами текстуры». Компоненты яркости (светлоты) и цветности (цвета) совместно именуются здесь компонентами «текстуры». Компонента вида глубины может образовывать карту глубин изображения. При визуализации 3D изображения, карты глубин включают в себя значения глубины и могут использоваться для формирования виртуальных видов из обеспеченной перспективы просмотра относительно другого вида, например, вида, включающего в себя информацию текстуры. Единицы кодированных блоков, также именуемые в настоящем изобретении просто «кодированными блоками», могут соответствовать макроблокам в ITU-T стандарта H.264/AVC (Advanced Video Coding) или единицам кодирования стандарта High Efficiency Video Coding (HEVC).
В одном аспекте способ обработки видеоданных содержит определение первого диапазона глубины реального мира для компоненты первого вида глубины, соответствующей компоненте опорного вида и определение второго диапазона глубины реального мира для компоненты второго вида глубины, соответствующей компоненте текущего вида, причем компонента текущего вида прогнозируется относительно компоненты опорного вида. Способ также содержит определение прогностического блока для части компоненты текущего вида из компоненты опорного вида. Способ дополнительно содержит регулирование значений прогностического блока на основании различия между первым диапазоном глубины реального мира и вторым диапазоном глубины реального мира и прогнозирование части текущего вида на основании отрегулированных значений прогностического блока.
В другом аспекте устройство для кодирования данных содержит видеокодер, выполненный с возможностью определения первого диапазона глубины реального мира для компоненты первого вида глубины, содержащей компоненту опорного вида, определения второго диапазона глубины реального мира для компоненты второго вида глубины, содержащей компоненту текущего вида, причем компонента текущего вида прогнозируется относительно компоненты опорного вида, определения прогностического блока для части компоненты текущего вида из компоненты опорного вида, регулировать значения прогностического блока на основании различия между первым диапазоном глубины реального мира и вторым диапазоном глубины реального мира, и прогнозирования части текущего вида на основании отрегулированных значений прогностического блока.
В другом аспекте машиночитаемый носитель содержит машиночитаемый носитель данных, на котором хранятся инструкции, которые, при выполнении, предписывают процессору устройства видеокодирования определять первый диапазон глубины реального мира для компоненты первого вида глубины, соответствующей компоненте опорного вида, определять второй диапазон глубины реального мира для компоненты второго вида глубины, соответствующей компоненте текущего вида, причем компонента текущего вида прогнозируется относительно компоненты опорного вида, определения прогностического блока для части компоненты текущего вида из компоненты опорного вида, регулировать значения прогностического блока на основании различия между первым диапазоном глубины реального мира и вторым диапазоном глубины реального мира, и прогнозирования части текущего вида на основании отрегулированных значений прогностического блока.
В другом аспекте, предусмотрено устройство, которое содержит средство для определения первого диапазона глубины реального мира для компоненты первого вида глубины, соответствующей компоненте опорного вида, средство для определения второго диапазона глубины реального мира для компоненты второго вида глубины, соответствующей компоненте текущего вида, причем компонента текущего вида прогнозируется относительно компоненты опорного вида, и средство для определения прогностического блока для части компоненты текущего вида из компоненты опорного вида. Устройство дополнительно содержит средство для регулировки значений прогностического блока на основании различия между первым диапазоном глубины реального мира и вторым диапазоном глубины реального мира и средство для прогнозирования части текущего вида на основании отрегулированных значений прогностического блока.
Методы, описанные в настоящем раскрытии, можно реализовать в аппаратном обеспечении, программном обеспечении, программно-аппаратном обеспечении или любой их комбинации. Будучи реализовано в программном обеспечении, программное обеспечение может выполняться на процессоре, который может означать один или более процессоров, например, микропроцессор, специализированную интегральную схему (ASIC), вентильную матрицу, программируемую пользователем (FPGA), или цифровой сигнальный процессор (DSP), или другую эквивалентную интегральную или дискретную логическую схему. Программное обеспечение, содержащее инструкции для выполнения методов, может первоначально храниться на машиночитаемом носителе и загружаться и выполняться процессором.
Соответственно, настоящее изобретение также предусматривает машиночитаемые носители, содержащие инструкции, предписывающие процессору осуществлять любой из различных методов, описанных в этом раскрытии. В ряде случаев, машиночитаемый носитель может составлять часть компьютерного программного продукта, который может продаваться производителям и/или использоваться в устройстве. Компьютерный программный продукт может включать в себя машиночитаемый носитель, и в ряде случаев, также может включать в себя упаковочные материалы.
Настоящее изобретение также может применяться к электромагнитным сигналам, несущим информацию. Например, электромагнитный сигнал может содержать информацию, относящуюся к поддержке полных пикселей, используемой для интерполяции значения для субцелого пикселя опорной выборки. В некоторых примерах, сигнал может формироваться из или передаваться устройством, реализующим описанные здесь методы. В других примерах, настоящее изобретение может применяться к сигналам, которые могут приниматься в устройстве, реализующем описанные здесь методы.
Детали одного или более аспектов изобретения представлены на сопровождающих чертежах и в нижеприведенном описании. Другие признаки, задачи и преимущества методов, описанных в этом раскрытии, явствуют из описания и чертежей, а также из формулы изобретения.
Краткое описание чертежей
Фиг. 1 - блок-схема, демонстрирующая один пример системы кодирования и декодирования видеосигнала согласно методам настоящего изобретения.
Фиг. 2 - блок-схема, более подробно демонстрирующая пример устройства кодирования видео, показанного на фиг. 1, согласно методам настоящего изобретения.
Фиг. 3 - схема одного примера структуры MVC-прогнозирования для кодирования многовидового видео согласно методам настоящего изобретения.
Фиг. 4 - блок-схема, более подробно демонстрирующая пример устройства декодирования видео, показанного на фиг. 1, согласно методам настоящего изобретения.
Фиг. 5 - блок-схема операций, демонстрирующая пример работы устройства кодирования видео в соответствии с настоящим изобретением согласно методам настоящего изобретения.
Фиг. 6 - принципиальная схема, демонстрирующая пример обмена данными между компонентами другого примера устройства кодирования для регулировки подвергнутых компенсации движения значений карт глубин согласно методам настоящего изобретения.
Осуществление изобретения
В этом раскрытии описаны методы сигнализации, которые может применять кодер и может использовать декодер по меньшей мере на стадии внешнего прогнозирования по меньшей мере одного из процесса кодирования и декодирования видеосигнала. Описанные методы относятся к кодированию трехмерного (“3D”) видеосодержимого. Настоящее изобретение предусматривает кодирование карт глубин движения, которые имеют диапазон глубины изменения относительно опорных карт глубин. Например, настоящее изобретение предусматривает регулирование значений прогностического блока на основании различия между первым диапазоном глубины реального мира опорной компоненты вида глубины и вторым диапазоном глубины реального мира компоненты текущего вида глубины. Например, процесс кодирования с повторным картированием пиксельных значений может осуществляться после компенсации движения. Эти методы можно применять для кодирования битового потока, напоминающего битовый поток кодирования многовидового видео (MVC), где любые или все виды битового потока MVC могут дополнительно включать в себя информацию глубины, в соответствии с методами настоящего изобретения. В настоящем изобретении термин «кодирование» может означать любое или оба из кодирования и/или декодирования.
В частности, методы предусматривают получение по меньшей мере одного двухмерного изображения, имеющего компоненты вида текстуры и компоненты вида глубины. Некоторые компоненты вида текстуры и компоненты вида глубины можно кодировать совместно в единый кодированный блок или как отдельные блоки. Изображение может задаваться компонентами вида глубины и компонентами вида текстуры.
Значения глубины для кадра изображения может задаваться относительно диапазона глубины, конкретно для этого кадра изображения или картинки. Однако компоненты вида глубины для разных кадров могут иметь разные диапазоны глубины. Таким образом, два значения глубины для двух разных кадров могут соответствовать разным значениям глубины реального мира, если диапазоны глубины для двух кадров различаются. Например, кадр текущего вида и соответствующий опорный кадр могут иметь одинаковое значение глубины. Если же кадр текущего вида и соответствующий ему опорный кадр имеют разные значения глубины реального мира, одинаковое значение глубины соответствуют разным значениям глубины реального мира. Описанные здесь методы кодируют карты глубин движения для компенсации этих разностей значение глубины между опорными видами и текущими видами.
Преобразование видеосигнала на основании оценивания глубины и синтеза виртуального вида можно использовать для создания приложений с 3D изображениями, например 3D-видео. В частности, виртуальные виды сцены можно использовать для создания 3D вида сцены. Формирование виртуального вида сцены на основании существующего вида сцены традиционно достигается оцениванием значений глубины объекта до синтеза виртуального вида. Оценивание глубины это процесс оценивания абсолютных или относительных расстояний между объектами и плоскостью камеры из стереопар или моноскопического содержимого. Информация глубины может включать в себя информацию, полезную при формировании трехмерного видео, например, карту глубин (например, значения глубины на попиксельной основе) или карту параллакса (например, горизонтальное расхождение на попиксельной основе). Информация глубины может иметь диапазон значений глубины реального мира, именуемый диапазоном глубины. Значения глубины реального мира для изображения можно квантовать, обычно со ссылкой на диапазон глубины, для создания карты глубин для этого изображения.
Оцененную информацию глубины, обычно представляемую картой глубин изображения в градации серого, можно использовать для формирования произвольного угла виртуальных видов с использованием методов визуализация на основании изображения с глубиной (DIBR). По сравнению с традиционными системами трехмерного телевидения (3DTV), где многовидовые последовательности сталкиваются с проблемами эффективного межвидового сжатия, система на основании карты глубин может снижать использование полосы, передавая только один или несколько видов совместно с картой(ами) глубин, которую(ые) можно эффективно кодировать. Карта(ы) глубин, используемая(ые) в преобразовании на основании карты глубин может(гут) подвергаться управлению (например, посредством масштабирования) конечными пользователями до использования ее (их) при синтезе вида. Заказные виртуальные виды могут формироваться с разными величинами воспринимаемой глубины. Также, оценивание глубины может осуществляться с использованием моноскопического видео, где доступно только 2D содержимое одного вида.
Внешнее кодирование на основании блоков это метод кодирования, который опирается на временное прогнозирование для снижения или устранения временной избыточности между видеоблоками последовательных кодированных единиц видеопоследовательности. Внешнее кодирование можно применять к информации обеих текстуры и глубины. Кодированные единицы могут содержать кадры видео, серию последовательных макроблоков кадров видео, группы изображений, или другую заданную единицу кодированных видеоблоков. Используемые здесь термины «кадр» и «изображение» можно употреблять взаимозаменяемо. Для внешнего кодирования, устройство кодирования видео осуществляет оценивание движения и компенсацию движения для оценивания движения между видеоблоками двух или более соседних кодированных единиц. С использованием методов оценивания движения устройство кодирования видео формирует векторы движения, которые могут указывать перемещение видеоблоков относительно соответствующих видеоблоков прогнозирования в одном или более опорных кадрах или других кодированных единицах. С использованием методов для компенсация движения, устройство кодирования видео может использовать векторы движения для формирования видеоблоков прогнозирования из одного или более опорных кадров или других кодированных единиц. После компенсации движения, устройство кодирования видео может вычислять остаточные видеоблоки путем вычитания видеоблоков прогнозирования из исходных кодируемых видеоблоков. Межвидовое кодирование также можно использовать для прогнозирования информации текстуры и/или глубины из компонент опорного вида других видов, в которых векторы перемещения можно вычислять и использовать для формирования прогностических блоков относительно компоненты опорного вида.
На фиг. 1 показана блок-схема, демонстрирующая один пример системы 10 кодирования и декодирования видеосигнала, которую можно использовать для реализации одного или более методов настоящего изобретения. Как показано на фиг. 1, система 10 включает в себя устройство-источник 12, которое передает кодированный видеосигнал на устройство 16 назначения через канал 15 связи. Устройство-источник 12 и устройство 16 назначения может содержать любое из разнообразных устройств. В ряде случаев, любое или оба из устройства-источника 12 и устройства 16 назначения может(ут) содержать устройства беспроводной связи, например, беспроводные телефонные трубки, так называемые сотовые или спутниковые радиотелефоны, или любые беспроводные устройства, которые могут передавать видеоинформацию по каналу 15 связи, в каковом случае канал 15 связи является беспроводным. Однако методы настоящего изобретения, относящиеся к кодированию блоков видеоданных, которые включают в себя информацию обеих текстуры и глубины, не обязаны ограничиваться беспроводными приложениями или установками. Методы также могут быть полезны в различных других установках и устройствах, включая устройства, которые осуществляют связь по физическим проводам, оптическим волокнам или другим физическим или беспроводным средам передачи данных.
Кроме того, методы кодирования или декодирования также можно применять в автономном устройстве, которое не обязательно осуществляет связь с каким-либо другим устройством. Например, устройство 28 декодирования видео может располагаться в цифровом медиаплеере или другом устройстве и принимать кодированные видеоданные посредством потоковой передачи, загрузки или носителей данных. Следовательно, представление устройства-источника 12 и устройства 16 назначения как осуществляющих связь друг с другом обеспечено в целях иллюстрации варианта реализации, и не следует рассматривать в плане ограничения методами, описанными в настоящем раскрытии, которые можно применять к кодированию видеосигнала, в общем случае, в различных условиях, применениях или реализациях.
В примере, показанном на фиг. 1, устройство-источник 12 может включать в себя источник 20 видеосигнала, блок 21 обработки глубины, устройство 22 кодирования видео, модулятор/демодулятор (модем) 23 и передатчик 24. Устройство 16 назначения может включать в себя приемник 26, модем 27, устройство 28 декодирования видео и устройство 30 отображения. В соответствии с настоящим изобретением, устройство 22 кодирования видео устройства-источника 12 может быть выполнен с возможностью применения одного или более методов настоящего изобретения в рамках процесса кодирования видеосигнала. Аналогично, устройство 28 декодирования видео устройства 16 назначения может быть выполнен с возможностью применения одного или более методов настоящего изобретения в рамках процесса декодирования видеосигнала.
Видеопоследовательность обычно включает в себя последовательность кадров видео, также именуемых видеоизображениями. Устройство 22 кодирования видео работает на видеоблоках в отдельных кадрах видео для кодирования видеоданных. Видеоблоки могут иметь фиксированные или переменные размеры и могут отличаться размером согласно указанному стандарту кодирования. Каждый кадр видео включает в себя последовательность из одной или более серий последовательных макроблоков. В стандарте ITU-T H.264, например, каждая серия последовательных макроблоков может включать в себя последовательность макроблоков, которые могут быть организованы в подблоки. Стандарт H.264 поддерживает внутреннее прогнозирование в различных размерах блока для кодирования двухмерного (2D) видеосигнала, например, 16 на 16, 8 на 8 или 4 на 4 для яркостных компонент, и 8×8 для цветностных компонент, а также внешнее прогнозирование в различных размерах блока, например, 16 на 16, 16 на 8, 8 на 16, 8 на 8, 8 на 4, 4 на 8 и 4 на 4 для яркостных компонент и соответствующие масштабируемые размеры для цветностных компонент. Видеоблоки может содержать блоки пиксельных данных или блоки коэффициентов преобразования, например, после процесса преобразования, например, дискретного косинусного преобразования (DCT) или принципиально аналогичного процесса преобразования. Эти методы можно распространить на 3D-видео.
Меньшие видеоблоки могут обеспечивать более высокое разрешение и могут использоваться для положений кадра видео, которые включают в себя высокие уровни детализации. В общем случае, макроблоки и различные подблоки можно рассматривать как видеоблоки. Кроме того, серию последовательных макроблоков можно рассматривать как последовательность видеоблоков, например, макроблоков и/или подблоков. Каждая серия последовательных макроблоков может быть независимо декодируемой единицей кадра видео. В качестве альтернативы, сами кадры могут быть декодируемыми единицами, или другие части кадра можно задавать как декодируемые единицы.
2D макроблоки стандарта ITU-T H.264 можно распространить на 3D путем кодирования информации глубины из карты глубин или карты параллакса совместно с соответствующими яркостными и цветностными компонентами (то есть компонентами текстуры) для этого кадра или серии последовательных макроблоков видео. Картирование параллакса (также именуемое картированием виртуального перемещения или картированием смещения) смещает компоненты текстуры в положении пикселя на основании функции угла обзора и карты высот в положении пикселя. Устройство 22 кодирования видео может кодировать информацию глубины как монохроматический видеосигнал.
Для кодирования видеоблоков, например, кодированного блока, устройство 22 кодирования видео осуществляет внутреннее или внешнее прогнозирование для формирования одного или более блоков прогнозирования. Устройство 22 кодирования видео вычитает блоки прогнозирования из исходных видеоблоков, подлежащих кодированию, для формирования остаточных блоков. Таким образом, остаточные блоки может представлять попиксельные разности между кодируемыми блоками и блоками прогнозирования.
Устройство 22 кодирования видео также может применять процессы преобразования, квантования и статистического кодирования для дополнительного снижения битовой скорости, связанной с передачей остаточных блоков. Методы преобразования могут содержать дискретные косинусные преобразования (DCT) или принципиально аналогичные процессы. Альтернативно, можно использовать вейвлетные преобразования, целочисленные преобразования или другие типы преобразований. В процессе DCT, в порядке примера, набор пиксельных значений может преобразовываться в коэффициенты преобразования, которые могут представлять энергию пиксельных значений в частотной области.
Устройство 22 кодирования видео может квантовать коэффициенты преобразования в общем с использованием процесса, который сокращает количество битов, связанное с соответствующим коэффициентом преобразования. Квантование, в общем случае, означает процесс, в котором коэффициенты квантуются для возможного сокращения объема данных, используемого для представления коэффициентов. После квантования, статистическое кодирование может осуществляться согласно методологии статистического кодирования. Статистическое кодирование может включать в себя один или более процессов, которые совместно сжимают данные для вывода в битовый поток, где сжатые данные могут включать в себя, например, последовательность режимов кодирования, информации движения, шаблонов кодированных блоков, и квантованные коэффициенты преобразования. Примеры статистического кодирования включают в себя, но без ограничения, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC). Дополнительные детали в отношении процесса кодирования, осуществляемого устройством 22 кодирования видео, описаны ниже со ссылкой на фиг. 2.
Кодированный видеоблок можно представлять информацией прогнозирования, которую можно использовать для создания или идентификации прогностического блока, и остаточным блоком данных, который можно применять к прогностическому блоку для воссоздания исходного блока. Информация прогнозирования может содержать один или более векторов движения, которые используются для идентификации прогностического блока данных. Использование векторов движения позволяет устройству 28 декодирования видео реконструировать прогностические блоки, которые использовались для кодирования остаточных блоков. Таким образом, на основании набора остаточных блоков и набора векторов движения (и, возможно, какого-либо дополнительного синтаксиса), устройство 28 декодирования видео может реконструировать кадр видео, который был первоначально закодирован. Внешнее кодирование на основании оценивания движения и компенсации движения может достигать относительно высоких степеней сжатия без чрезмерной потери данных, поскольку последовательные кадры видео или другие типы кодированных единиц часто являются аналогичными. Кодированная видеопоследовательность может содержать блоки остаточных данных, векторы движения (при кодировании с внешним прогнозированием), указатели режимов внутреннего прогнозирования для внутреннего прогнозирования и элементы синтаксиса.
Благодаря компенсации или повторному картированию пиксельных значений на основании диапазонов значений глубины, эти методы могут улучшать процесс кодирования карт глубин. Кроме того, описанные здесь методы могут повышать эффективность компенсации движения. Повторное картирование может осуществляться для значений глубины в текущем виде после подпиксельной компенсации движения с использованием интерполяции.
В некоторых примерах, устройство 22 кодирования видео и устройство 28 декодирования видео соответствуют стандарту H.264/AVC, который использует блочную компенсацию движения. При блочной компенсации движения (BMC), кадры делятся на блоки пикселей. Каждый блок можно прогнозировать из блока равного размера в опорном кадре. Блоки можно не преобразовывать никаким иным образом, кроме сдвига в позицию прогнозируемого блока. Этот сдвиг представляется вектором движения.
Для использования избыточности между векторами соседнего блока, (например, для единичного движущегося объекта, покрытого множеством блоков), в ряде случаев только разность между текущим и предыдущим векторами движения можно кодировать в битовый поток. Результат этого процесса дифференцирования может быть математически аналогичен глобальной компенсации движения с возможностью панорамирования. Блок статистического кодирования (например, блок 46 статистического кодирования, показанный на фиг. 2) может пользоваться результирующим статистическим распределением векторов движения вокруг нулевого вектора для снижения выходного размера.
Блок может сдвигаться на нецелое количество пикселей, что может именоваться подпиксельной точностью. Подпиксели находятся между полностью целыми пикселями и могут формироваться путем интерполяции соседних пикселей. Обычно можно использовать полупиксельную или четвертьпиксельную точность. Вычислительные затраты на обеспечение подпиксельной точности могут быть выше, чем для обеспечения целочисленной пиксельной точности вследствие дополнительной обработки, необходимой для интерполяции. Кроме того, на стороне кодера оценивается большее количество потенциальных исходных блоков.
Блочная компенсация движения может вносить нарушения непрерывности на границах блоков, именуемые артефактами блочности или артефактами блоковости. Эти артефакты блочности проявляются в форме резких горизонтальных и вертикальных краев, которые могут быть заметны человеческому глазу и создавать эффекты звона (большие коэффициенты в высокочастотных поддиапазонах) в преобразовании, связанном с преобразованием Фурье, используемом для кодирования с преобразованием остаточных кадров.
Блочная компенсация движения делит текущий кадр на неперекрывающиеся блоки, и вектор движения обеспечивает информацию для извлечения прогнозируемых значений для этих блоков. Блоки, используемые в качестве опорных, могут перекрываться в опорном кадре (также именуемом исходным кадром), и, таким образом, не обязательно возникают на границах блоков в опорном кадре. Некоторые алгоритмы сжатия видеосигнала предусматривают сборку текущего кадра из фрагментов нескольких разных ранее переданных кадров.
Кадры также можно прогнозировать из будущих кадров, то есть кадров, которые отображаются позже, чем кадр, кодируемый в данный момент (хотя эти позднее отображаемые кадры кодируются до текущего кадра и, таким образом, данные для этих кадров обеспечиваются раньше в самом битовом потоке). Будущие кадры можно кодировать до прогнозируемых кадров. Таким образом, порядок кодирования не обязательно совпадает с реальным порядком кадров. Такие кадры обычно прогнозируются с двух направлений, т.е. из I- или P-кадров, которые непосредственно предшествуют прогнозируемому кадру или следуют за ним. Эти кадры, прогнозируемые в двух направлениях, называются B-кадрами. Схема кодирования может быть, например, IBBPBBPBBPBB.
Наборы параметров могут содержать информацию заголовка уровня последовательностей (в наборах параметров последовательности - SPS) и нечасто изменяющуюся информацию заголовка уровня изображений (в наборах параметров изображения - PPS). Благодаря наборам параметров, эта нечасто изменяющаяся информация не обязана повторяться для каждой последовательности или каждого изображения, следовательно, эффективность кодирования повышается. Кроме того, использование наборов параметров позволяет передавать за пределами полосы важную информацию заголовка, избегая необходимости в избыточных передачах для обеспечения устойчивости к ошибкам. При передаче за пределами полосы, единицы NAL набора параметров могут передаваться по другому каналу, чем другие единицы NAL.
Опять же, система 10, проиллюстрированная на фиг. 1, является всего лишь одним примером. Различные методы настоящего изобретения могут осуществляться любым устройством кодирования, которое поддерживает кодирование с прогнозированием на основании блоков, или любым устройством декодирования, которое поддерживает декодирование с прогнозированием на основании блоков. Устройство-источник 12 и устройство 16 назначения являются всего лишь примерами таких устройств кодирования, в которых устройство-источник 12 формирует кодированные видеоданные для передачи на устройство 16 назначения. В ряде случаев, устройства 12 и 16 могут работать по существу симметричным образом, так что каждое из устройств 12 и 16 включает в себя компоненты кодирования и декодирования видеосигнала. Следовательно, система 10 может поддерживать одностороннюю или двустороннюю передачу видеосигнала между видеоустройствами 12 и 16, например, для потоковой передачи видео, воспроизведения видео, вещания видео или видеотелефонии.
Источник 20 видеосигнала устройства-источника 12 может включать в себя одно или более устройств съемки видео, например, видеокамеры, видеоархивы, содержащий ранее захваченное видео, или подачи видео от поставщика видеосодержимого. В качестве другой альтернативы, источник 20 видеосигнала может формировать данные на основании компьютерной графики в качестве исходного видео или комбинацию прямой видеосъемки, архивных видеозаписей и видео, создаваемого на компьютере. В ряде случаев, если источником 20 видеосигнала является видеокамера, устройство-источник 12 и устройство 16 назначения могут образовывать так называемые камерофоны или видеотелефоны, или другие мобильные устройства, выполненные с возможностью манипулирования видеоданных, например, планшетные вычислительные устройства. В каждом случае, захваченное, предварительно захваченное или создаваемое на компьютере видео может кодироваться устройством 22 кодирования видео. Источник 20 видеосигнала снимает вид и выдает его на блок 21 обработки глубины. В некоторых примерах, блок 21 обработки глубины входит в состав устройства 22 кодирования видео.
Изображение с глубиной может определяться для объектов в виде из вида, захваченного источником 20 видеосигнала. Блок 21 обработки глубины может быть выполнен с возможностью автоматически вычислять значения глубины для объектов в виде. Например, блок 21 обработки глубины может вычислять значения глубины для объектов на основании информации яркости. Блок 21 обработки глубины также может определять диапазон глубины для значений глубины в виде. Диапазон глубины может соответствовать диапазону от наименьшего (например, ближайшего) значения глубины реального мира до наибольшего (например, наиболее удаленного) значения глубины реального мира. Используемое здесь значение глубины обозначается d, тогда как диапазон глубины обозначается как znear~zfar.
В некоторых примерах, блок 21 обработки глубины выполнен с возможностью принимать информацию глубины от пользователя. В некоторых примерах, источник 20 видеосигнала снимает два вида сцены в разных перспективах, и затем вычисляет информацию глубины для объектов в сцене на основании расхождения между объектами в двух видах. В различных примерах, источник 20 видеосигнала содержит стандартную двухмерную камеру, двухкамерную систему, которая обеспечивает стереоскопический вид сцены, массив камер, который снимает множество видов сцены, или камеру, которая снимает один вид плюс информацию глубины.
Блок 21 обработки глубины передает компоненты вида текстуры и компоненты вида глубины на устройство 22 кодирования видео. Блок 21 обработки глубины также может передавать вид на устройство 22 кодирования видео. Компоненты вида глубины могут формировать изображение карты глубин для вида. Карта глубин может содержать карту значений глубины для каждой зоны пикселей, связанной с областью (например, блоком, серией последовательных макроблоков или кадром), подлежащей отображению. Зона пикселей может представлять собой единичный пиксель или группу из одного или более пикселей. Некоторые примеры карт глубин имеют по одной компоненте глубины на пиксель. В других примерах, имеющих подпиксельную точность, присутствует несколько компонент глубины на пиксель. Карты глубин можно кодировать по существу аналогично данным текстуры, например, с использованием внутреннего прогнозирования или внешнего прогнозирования относительно других, ранее кодированных данных глубины.
В некоторых примерах, карта глубин оценивается. Согласование стереопары можно использовать для оценивания карт глубин, при наличии более одного вида. Однако при преобразовании 2D в 3D, оценивание глубины может быть более трудным. Тем не менее, карту глубин, оцененную различными способами, можно использовать для 3D визуализации на основании визуализации на основании глубины изображения (DIBR).
Хотя источник 20 видеосигнала может обеспечивать множество видов сцены, блок 21 обработки глубины может вычислять информацию глубины на основании множества видов, и устройство-источник 12 может в общем передавать один вид плюс информация глубины для каждого вида сцены.
Когда вид является цифровым неподвижным изображением, устройство 22 кодирования видео может быть выполнен с возможностью кодирования вида в виде, например, изображение в формате Joint Photographic Experts Group (JPEG). Когда вид является кадром видеоданных, устройство 22 кодирования видео может быть выполнен с возможностью кодирования первого вида согласно стандарту кодирования видеосигнала, например стандарту Motion Picture Experts Group (MPEG), International Organization for Standardization (ISO)/International Electrotechnical Commission (IEC) MPEG-1 Visual, ISO/IEC MPEG-2 Visual, ISO/IEC MPEG-4 Visual, International Telecommunication Union (ITU) H.261, ITU-T H.262, ITU-T H.263, ITU-T H.264/MPEG-4, H.264 Advanced Video Coding (AVC), перспективному стандарту High Efficiency Video Coding (HEVC) (также именуемому H.265), или другим стандартам кодирования видеосигнала. Устройство 22 кодирования видео может включать компоненты вида глубины совместно с кодированным изображением для формирования одного или более кодированных блоков. Устройство 22 кодирования видео передает один или более кодированных блоков на передатчик 24. Кодированный блок может переноситься на приемник 26 в битовом потоке, включающем в себя информацию сигнализации совместно с кодированным блоком.
Кодированная видеоинформация может включать в себя компоненты вида текстуры и компоненты вида глубины. Компоненты текстуры могут включать в себя компоненты яркости (яркостные компоненты) и компоненты цветности (цветностные компоненты) видеоинформации. Яркостные компоненты, в общем случае, описывают светлоту, тогда как компоненты цветности, в общем случае, описывают оттенки цвета. Блок 21 обработки глубины может извлекать информацию глубины из карты глубин захваченного вида. Устройство 22 кодирования видео может кодировать компоненты вида текстуры и компоненты вида глубины в единый кодированный блок кодированных видеоданных. Аналогично, устройство 22 кодирования видео может кодировать блок, что позволяет повторно использовать информацию движение или режима внутреннего прогнозирования для яркостной компоненты для цветностных компонент и компоненты глубины. Устройство 22 кодирования видео может повторно картировать значения глубины для текущих видов относительно разности между диапазоном глубины текущего вида и диапазоном глубины опорного вида.
Кодированный блок может модулироваться модемом 23 согласно стандарту связи, например, например, стандарту множественного доступа с кодовым разделением (CDMA) или другому стандарту связи, и передаваться на устройство 16 назначения через передатчик 24 и канал 15 связи. Модем 23 может включать в себя различные смесители, фильтры, усилители или другие компоненты, предназначенные для модуляции сигнала. Передатчик 24 может включать в себя схемы, предназначенные для передачи данных, включающие в себя усилители, фильтры, и одну или более антенн. В некоторых примерах, вместо того, чтобы передавать по каналу связи, устройство-источник 12 сохраняет кодированные видеоданные, включающие в себя блоки, имеющие компоненты текстуры и глубины, на носитель данных, например, цифровой видеодиск (DVD), диск Blu-ray, флэш-носитель и т.п.
Приемник 26 устройства 16 назначения принимает информацию по каналу 15 связи, и модем 27 демодулирует информацию. Как и передатчик 24, приемник 26 может включать в себя схемы, предназначенные для приема данных, включающие в себя усилители, фильтры, и одну или более антенн. В ряде случаев, передатчик 24 и/или приемник 26 могут быть включены в единый компонент приемопередатчика, который включает в себя приемную и передающую схему. Модем 27 может включать в себя различные смесители, фильтры, усилители или другие компоненты, предназначенные для демодуляции сигнала. В ряде случаев, модемы 23 и 27 могут включать в себя компоненты для осуществления модуляции и демодуляции.
Опять же, процесс кодирования видеосигнала, осуществляемый устройством 22 кодирования видео, может реализовывать один или более из описанных здесь методов в ходе кодирования с внешним прогнозированием, которое может включать в себя оценивание движения и компенсацию движения, и кодирования с внутренним прогнозированием. Процесс декодирования видеосигнала, осуществляемый устройством 28 декодирования видео, также может осуществлять такие методы на стадии компенсации движения процесса декодирования.
Термин «кодер» используется здесь для обозначения специализированного компьютерного устройства или устройства, которое осуществляет кодирование видеосигнала или декодирование видеосигнала. Термин «кодер» в общем случае означает любое устройство кодирования видео, устройство декодирования видео или объединенный кодер/декодер (кодек). Термин «кодирование» означает кодирование или декодирование. Термины «кодированный блок», «единица кодированного блока», или «кодированная единица» может означать любую независимо декодируемую единицу кадра видео, например, кадр целиком, серию последовательных макроблоков кадра, блок видеоданных или другую независимо декодируемую единицу, заданную согласно используемым методам кодирования.
Устройство 30 отображения отображает декодированные видеоданные пользователю и может содержать любое из различных одного или более устройств отображения, например, электронно-лучевой трубки (ЭЛТ), жидкокристаллического дисплея (ЖКД), плазменного дисплея, органо-светодиодного (ОСИД) дисплея, или другого типа устройства отображения. В некоторых примерах, устройство 30 отображения соответствует устройству, способному к трехмерному воспроизведению. Например, устройство 30 отображения может содержать стереоскопический дисплей, который используется совместно со стереоочками, носимыми зрителем. Стереоочки могут содержать активные очки, в каковом случае устройство 30 отображения быстро переключается между изображениями разных видов синхронно с попеременным срабатыванием затворов линз активных очков. В качестве альтернативы, стереоочки могут содержать пассивные очки, в каковом случае устройство 30 отображения одновременно отображает изображения из разных видов, и пассивные очки могут включать в себя поляризованные линзы, которые, в общем случае, поляризованы в ортогональных направлениях для фильтрации между разными видами.
В примере, показанном на фиг. 1, канал 15 связи может содержать любую беспроводную или проводную среду связи, например, радиочастотный (РЧ) спектр или одну или более физических линий передачи, или любую комбинацию беспроводных и проводных сред передачи данных. Канал 15 связи может составлять часть сети с коммутацией пакетов, например, локальной сети, широкомасштабной сети, или глобальной сети, например, интернета. Канал 15 связи, в общем случае, представляет любую подходящую среду связи или совокупность разных сред связи, для передачи видеоданных с устройства-источника 12 на устройство 16 назначения. Канал 15 связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезно для облегчения связи от устройства-источника 12 на устройство 16 назначения.
Устройство 22 кодирования видео и устройство 28 декодирования видео могут работать согласно стандарту сжатия видеосигнала, например, стандарту ITU-T H.264, альтернативно описываемому как MPEG-4, Part 10, Advanced Video Coding (AVC). Дополнительные стандарты сжатия видеосигнала, которые основаны на стандарте ITU H.264/AVC, которые могут использоваться устройством 22 кодирования видео и устройством 28 декодирования видео, включают в себя стандарт масштабируемого кодирования видеосигнала (SVC), который является масштабируемым расширением до стандарта ITU H.264/AVC. Другой стандарт, согласно которому могут работать устройство 22 кодирования видео и устройство 28 декодирования видео, включает в себя стандарт кодирования многовидового видео (MVC), который является многовидовым расширением до стандарта ITU H.264/AVC. Однако методы настоящего изобретения не ограничиваются никаким конкретным стандартом кодирования видеосигнала.
В некоторых аспектах, каждое из устройства 22 кодирования видео и устройства 28 декодирования видео может быть объединено с аудиокодером и декодером и может включать в себя надлежащие блоки мультиплексирования/демультиплексирования, или другое оборудование и программное обеспечение, для обработки кодирования аудио и видео в общем потоке данных или отдельных потоках данных. Если применимо, блоки мультиплексирования/демультиплексирования могут отвечать протоколу мультиплексора ITU H.223 или другим протоколам, например протоколу пользовательских дейтаграмм (UDP).
Устройство 22 кодирования видео и устройство 28 декодирования видео можно реализовать в виде одного или более микропроцессоров, цифровых сигнальных процессоров (DSP), специализированных интегральных схем (ASIC), вентильных матриц, программируемых пользователем (FPGA), дискретной логики, программного обеспечения, аппаратного обеспечения, программно-аппаратного обеспечения или их комбинаций. Когда любой или все из методов настоящего изобретения реализуются в программном обеспечении, реализующее устройство может дополнительно включать в себя оборудование для хранения и/или выполнения инструкций для программного обеспечения, например, память для хранения инструкций и один или более блоков обработки для выполнения инструкций. Каждое из устройства 22 кодирования видео и устройства 28 декодирования видео может быть включено в один или более кодеров или декодеров, любой из которых может входить в состав комбинированного кодека, который обеспечивает возможности кодирования и декодирования в соответствующем мобильном устройстве, абонентском устройстве, широковещательном устройстве, сервере и т.п.
В настоящее время ведутся работы по созданию нового стандарта кодирования видеосигнала, в данный момент известного под названием High Efficiency Video Coding (HEVC). Перспективный стандарт также именуется H.265. Работы по стандартизации основаны на модели устройства видеокодирования, именуемой HEVC Test Model (HM). HM предусматривает несколько возможностей устройств кодирования видеосигнала над устройствами, выполненными с возможностью кодирования видеоданных согласно, например, ITU-T H.264/AVC. Например, в то время как H.264 обеспечивает девять режимов кодирования с внутренним прогнозированием, HM обеспечивает целых тридцать три режима кодирования с внутренним прогнозированием. HEVC можно распространить на описанные здесь методы поддержки информации заголовка серии последовательных макроблоков.
HM означает блок видеоданных в качестве единицы кодирования (CU). Данные синтаксиса в битовом потоке могут задавать наибольшую единицу кодирования (LCU), которая является наибольшей единицей кодирования в отношении количества пикселей. В общем случае, CU выполняет функцию, аналогичную функции макроблока в H.264, за исключением того, что CU не имеет различия в размере. Кодированный блок может являться CU согласно стандарту HM. Таким образом, CU можно разбивать на под-CU. В общем случае, CU, упомянутая в этом раскрытии, может означать наибольшую единицу кодирования изображения или под-CU в LCU. LCU можно разбивать на под-CU, и каждую под-CU можно разбивать на под-CU. Данные синтаксиса для битового потока могут задавать максимальную кратность разбиения LCU, именуемую глубиной CU. Соответственно, битовый поток также может задавать наименьшую единицу кодирования (SCU). В этом раскрытии также используется термин «блок» для обозначения любой из CU, единицы прогнозирования (PU) или единицы преобразования (TU).
LCU может быть связана со структурой данных квадродерева. В целом, структура данных квадродерева включает в себя по одному узлу на CU, где корневой узел соответствует LCU. Если CU разбивается на четыре под-CU, то узел, соответствующая CU, включает в себя четыре краевых узла, каждый из которых соответствует одной из под-CU. Каждый узел структуры данных квадродерева может обеспечивать данные синтаксиса для соответствующей CU. Например, узел в квадродереве может включать в себя флаг разбиения, указывающий, разбивается ли CU, соответствующая узлу, на под-CU. Элементы синтаксиса для CU можно задавать рекурсивно и в зависимости от того, разбивается ли CU на под-CU.
CU, которая не разбивается, может включать в себя один или более единицы прогнозирования (PU). В общем случае, PU представляет всю или часть соответствующей CU и включает в себя данные для извлечения опорной выборки для PU. Например, когда PU кодируется во внутреннем режиме, PU может включать в себя данные, описывающие режим внутреннего прогнозирования для PU. В порядке другого примера, когда PU кодируется во внешнем режиме, PU может включать в себя данные, задающие вектор движения для PU. Данные, задающие вектор движения, могут описывать, например, горизонтальную компоненту вектора движения, вертикальную компоненту вектора движения, разрешение для вектора движения (например, точность в четверть пикселя или точность в одну восьмую пикселя), опорный кадр, на который указывает вектор движения, и/или опорный список (например, список 0 или список 1) для вектора движения. Вектор движения также можно рассматривать как имеющий разные разрешения для компонент вида текстуры и компонент вида глубины. Данные для CU, задающие PU, также могут описывать, например, разбиение CU на одну или более PU. Режимы разбиения могут отличаться в зависимости от того, является ли CU не закодированной, закодированной в режиме внутреннего прогнозирования или закодированной в режиме внешнего прогнозирования.
CU, имеющая одну или более PU, также может включать в себя одну или более единиц преобразования (TU). После прогнозирования с использованием PU, устройство 22 кодирования видео может вычислять остаточное значение для части CU, соответствующей PU. Остаточное значение можно преобразовывать, сканировать и квантовать. TU не обязана ограничиваться размером PU. Таким образом, TU может быть больше или меньше соответствующей PU для одной и той же CU. В некоторых примерах, максимальный размер TU может соответствовать размеру соответствующей CU.
Как упомянуто выше, внутреннее прогнозирование включает в себя прогнозирование PU текущей CU изображения из ранее кодированных CU того же изображения. В частности, устройство 22 кодирования видео может осуществлять внутреннее прогнозирование текущей CU изображения с использованием конкретного режима внутреннего прогнозирования. HM кодер может быть выполнен с возможностью использования до тридцати трех режимов внутреннего прогнозирования. Таким образом, для поддержки взаимно-однозначного соответствия между режимами направленного внутреннего прогнозирования и направленными преобразованиями, HM кодерам и декодерам потребуется сохранять 66 матриц для каждого поддерживаемого размера преобразование. Кроме того, размеры блока, для которого поддерживаются все тридцать три режима внутреннего прогнозирования, могут быть сравнительно большими, например, 32×32 пикселя, 64×64 пикселя, или еще больше.
В устройстве 16 назначения, устройство 28 декодирования видео принимает кодированные видеоданные. Устройство 28 декодирования видео статистически декодирует принятые видеоданные, например, кодированный блок, согласно методологии статистического кодирования, например CAVLC или CABAC, для получения квантованных коэффициентов. Устройство 28 декодирования видео применяет функции обратного квантования (деквантования) и обратного преобразования для реконструкции остаточного блока в пиксельной области. Устройство 28 декодирования видео также формирует блок прогнозирования на основании информации управления или синтаксической информации (например, режима кодирования, векторов движения, синтаксиса, который задает коэффициенты фильтрации и пр.), включенной в кодированные видеоданные. Устройство 28 декодирования видео может вычислять сумму блока прогнозирования и реконструированного остаточного блока для создания реконструированного видеоблока для отображения. Дополнительные детали в отношении примера процесса декодирования, осуществляемого устройством 28 декодирования видео, описаны ниже со ссылкой на фиг. 5.
Описанный здесь сигнал Y может представлять яркость, Cb и Cr может представлять два разных значения цветности трехмерного цветового пространства YCbCr (например, оттенки синего и красного), и d может представлять информацию глубины. В некоторых примерах, положение каждого пикселя может фактически задавать три пиксельных значения для трехмерного цветового пространства и одно пиксельное значение для глубины положения пикселя. В других примерах, на одну цветностную компоненту может приходиться несколько яркостных компонент. Например, на одну цветностную компоненту может приходиться четыре яркостные компоненты. Дополнительно, компоненты глубины и текстуры могут иметь разные разрешения. В таком примере, может отсутствовать взаимно-однозначно соотношение между компонентами вида текстуры (например, яркостными компонентами) и компонентами вида глубины. Кроме того, значения глубины между разными видами могут относиться к разным диапазонам глубины. Однако для простоты методы настоящего изобретения могут предусматривать прогнозирование в одном измерении. Постольку, поскольку методы описаны для пиксельных значений в одном измерении, аналогичные методы можно распространить на другие измерения. В частности, в соответствии с одним аспектом настоящего изобретения, устройство 22 кодирования видео и/или устройство 28 декодирования видео могут получать блок пикселей, где блок пикселей включает в себя компоненты вида текстуры и компоненты вида глубины.
В некоторых примерах, устройство 22 кодирования видео и устройство 28 декодирования видео могут использовать один или более методов интерполяционной фильтрации в ходе компенсации движения. Таким образом, устройство 22 кодирования видео и/или устройство 28 декодирования видео могут применять интерполяционный фильтр для поддержки фильтрации, содержащий наборы полностью целых позиций пикселя.
Устройство 28 декодирования видео устройства 16 назначения может принимать один или более кодированных блоков в составе битового потока кодированного видеосигнала совместно с дополнительной информацией, включающей в себя элементы синтаксиса, относящиеся к компонентам вида текстуры. Устройство 28 декодирования видео может визуализировать видеоданные для 3D воспроизведения на основании кодированного блока и элементов синтаксиса. Элементы синтаксиса могут сигнализироваться в заголовке серии последовательных макроблоков. Могут сигнализироваться некоторые элементы синтаксиса для компонентов вида глубины. В уровень серии последовательных макроблоков может быть включен флаг, который указывает, требуется ли повторное картирование для декодирования серии последовательных макроблоков текущей глубины. В другом примере, в заголовок серии последовательных макроблоков для каждого опорного вида или изображение может быть включен другой флаг, который указывает, требуется ли повторное картирование, когда компенсация движения опирается на этот конкретный опорный вид или изображение. В других примерах, элементы синтаксиса могут сигнализироваться на уровне последовательности (например, в структуре данных набора параметров последовательности (SPS)), уровень изображения (например, в структуре данных набора параметров изображения (PPS) или заголовке кадра), или уровне блока (например, в заголовке блока), помимо уровня серии последовательных макроблоков (например, в заголовке серии последовательных макроблоков).
На фиг. 2 показана блок-схема, более подробно демонстрирующая пример устройства 22 кодирования видео, показанного на фиг. 1. Устройство 22 кодирования видео может кодировать карты глубин движения с различными диапазонами глубины. Устройство 22 кодирования видео является одним примером специализированного компьютерного устройства или устройства обработки видеосигнала, именуемого здесь «кодером». Как показано на фиг. 2, устройство 22 кодирования видео соответствует устройство 22 кодирования видео устройства-источника 12. Однако, в других примерах, устройство 22 кодирования видео может соответствовать другому устройству. В дополнительных примерах, другие блоки (например, например, другие кодеры/декодеры (кодеки)) также осуществляют методы, аналогичные тем, которые осуществляются устройством 22 кодирования видео. Описанные здесь блоки или модули предусмотрены для представления функциональных возможностей и могут быть или не быть отдельными аппаратными блоками, отдельными программными функциями или даже отдельными процессами.
Устройство 22 кодирования видео может осуществлять внутреннее и внешнее кодирование блоков в кадрах видео, хотя компоненты внутреннего кодирования не показаны на фиг. 2 для простоты иллюстрации. Внутреннее кодирование опирается на пространственное прогнозирование для снижения или устранения пространственной избыточности в видеосигнале в данном кадре видео. Внешнее кодирование опирается на временное прогнозирование для снижения или устранения временной избыточности в видеосигнале в соседних кадрах видеопоследовательности. Внутренний режим (I-режим) может означать пространственный режим сжатие. Внешние режимы, например, прогнозирование (P-режим) или двунаправленный (B-режим) может означать временные режимы сжатия. Методы настоящего изобретения применяются в ходе внешнего кодирования и внутреннего кодирования. Однако, для простоты и легкости иллюстрации, единицы внутреннего кодирования, например, единица пространственного прогнозирования, не представлены на фиг. 2.
Как показано на фиг. 2, устройство 22 кодирования видео принимает видеоблок в кадре видео, подлежащем кодированию. Например, устройство 22 кодирования видео может принимать компоненты вида текстуры и компоненты вида глубины. В примере, показанном на фиг. 2, устройство 22 кодирования видео включает в себя блок 32 обработки прогнозирования, который включает в себя блок 35 оценивания движения (MEU) и блок 37 компенсации движения (MCU) и один или более интерполяционных фильтров 39. Устройство 22 кодирования видео дополнительно включает в себя блок 33 многовидового видео плюс глубина (MVD), память 34, первый сумматор 48, блок 38 обработки преобразования, блок 40 квантования, блок 41 повторного картирования (перекартирования) значений глубины и блок 46 статистического кодирования. Для реконструкции видеоблоков, устройство 22 кодирования видео также включает в себя блок 42 обратного квантования, блок 44 обработки обратного преобразования, второй сумматор 51 и блок 43 подавления блочности. Устройство 22 кодирования видео также включает в себя память 34, используемую для хранения данных, например, буфер опорных кадров.
Блок 43 подавления блочности может представлять собой противоблоковый фильтр, который фильтрует границы блоков для устранения артефактов блоковости из реконструированного видеосигнала. Если он включен в устройство 22 кодирования видео, блок 43 подавления блочности обычно фильтрует выходной сигнал второго сумматора 51. Блок 43 подавления блочности может определять информацию удаления блочности для одной или более компонент текстуры. Блок 43 подавления блочности также может определять информацию удаления блочности для компонент карты глубин. В некоторых примерах, информация удаления блочности для одной или более компонент текстуры может отличаться от информации удаления блочности для компоненты карты глубин.
Блок 33 многовидового видео плюс глубина (MVD) принимает один или более видеоблоков (обозначенные «видеоблок» на фиг. 2), содержащих компоненты текстуры и информацию глубины. Блок MVD 33 обеспечивает функциональные возможности устройству 22 кодирования видео для кодирования компонент глубины в единицах блоков. Блок MVD 33 может обеспечивать компоненты вида текстуры и компоненты вида глубины, совместно или по отдельности, на блок 32 обработки прогнозирования в формате, который позволяет блоку 32 обработки прогнозирования обрабатывать информацию глубины. Блок MVD 33 также может определять диапазон глубины реального мира для значений глубины в каждой компоненте вида глубины или кадре. В других примерах, каждый блок устройства 22 кодирования видео, например, блок 32 обработки прогнозирования, блок 38 обработки преобразования, блок 40 квантования, блок 46 статистического кодирования, и т.д., содержит функциональные возможности для обработки информации глубины помимо компоненты вида текстуры.
В общем случае, устройство 22 кодирования видео может кодировать информацию глубины аналогично информации цветности, поскольку блок 37 компенсации движения может быть выполнен с возможностью повторно использовать векторы движения, вычисленные для компоненты яркости блока при вычислении прогнозируемого значения для компоненты глубины того же блока. Аналогично, блок внутреннего прогнозирования устройство 22 кодирования видео может быть выполнено с возможностью использовать режим внутреннего прогнозирования, выбранный для компоненты яркости (то есть на основании анализа компоненты яркости) при кодировании компоненты глубины с использованием внутреннего прогнозирования.
Блок 32 обработки прогнозирования может включать в себя блок 35 оценивания движения (ME) и блок 37 компенсации движения (MC). Блок 32 обработки прогнозирования может прогнозировать информацию глубины для положений пикселей, а также для компонент текстуры. Один или более интерполяционных фильтров 39 (именуемых здесь “фильтром 39”) могут быть включены в блок 32 обработки прогнозирования и могут вызываться одним или обоими из блока 35 ME и блока 37 MC для осуществления интерполяции в рамках оценивания движения и/или компенсации движения. Интерполяционный фильтр 39 может фактически представлять несколько разных фильтров для облегчения многочисленных различных типов интерполяционной фильтрации и фильтрации интерполяционного типа. Таким образом, блок 32 обработки прогнозирования может включать в себя несколько интерполяционных или интерполяционноподобных фильтров.
В ходе процесса кодирования устройство 22 кодирования видео принимает видеоблок, подлежащий кодированию (обозначенный «видеоблок» на фиг. 2), и блок 32 обработки прогнозирования осуществляет кодирование с внешним прогнозированием для формирования блока прогнозирования (обозначенного «блок прогнозирования» на фиг. 2). Блок прогнозирования может включать в себя компоненты вида текстуры и информацию вида глубины. В частности, блок 35 ME может осуществлять оценивание движения для идентификации блока прогнозирования в памяти 34, и блок 37 MC может осуществлять компенсация движения для формирования блока прогнозирования.
Оценивание движения обычно рассматривается как процесс формирования векторов движения, которые оценивают движение для видеоблоков. Вектор движения, например, может указывать перемещение блока прогнозирования в прогнозируемом или опорном кадре (или другой кодированной единице, например, серии последовательных макроблоков) относительно блока, подлежащего кодированию, в текущем кадре (или другой кодированной единице). Вектор движения может иметь полностью целую или субцелую пиксельную точность. Например, горизонтальная компонента и вертикальная компонента вектора движения могут иметь соответствующие полностью целые компоненты и субцелые компоненты. Опорный кадр (или часть кадра) может располагаться во времени до или после кадра видео (или части кадра видео), которому(ой) принадлежит текущий видеоблок. Компенсация движения обычно рассматривается как процесс выборки или формирования блока прогнозирования из памяти 34, который может включать в себя интерполяцию или иное формирование прогностических данных на основании вектора движения, определенного посредством оценивания движения.
Блок 35 ME вычисляет по меньшей мере один вектор движения для видеоблока, подлежащего кодированию, сравнивая видеоблок с опорными блоками одного или более опорных кадров (например, предыдущего и/или последующего кадра). Данные для опорных кадров могут храниться в памяти 34. Блок 35 ME может осуществлять оценивание движения с дробно-пиксельной точностью, иногда именуемое дробно-пиксельным, дробно-элементным, субцелым, или подпиксельным оцениванием движения. При дробно-пиксельном оценивании движения, блок 35 ME может вычислять вектор движения, который указывает перемещение в положение, отличное от целочисленного положения пикселя. Таким образом, вектор движения может иметь дробно-пиксельную точность, например, точность в половину пикселя, точность в четверть пикселя, точность в одну восьмую пикселя или другие дробно-пиксельные точности. Таким образом, дробно-пиксельное оценивание движения позволяет блоку 32 обработки прогнозирования оценивать движение с более высокой точностью, чем целопиксельные (или полнопиксельные) положения, и, таким образом, блок 32 обработки прогнозирования может формировать более точный блок прогнозирования. Дробно-пиксельное оценивание движения может позволять блоку 32 обработки прогнозирования прогнозировать информацию глубины с первым разрешением и прогнозировать компоненты текстуры со вторым разрешением. Например, компоненты текстуры можно прогнозировать с полнопиксельной точностью, тогда как информация глубины прогнозируется с точностью в половину пикселя. В других примерах, для информации глубины и компонент текстуры можно использовать другие разрешения вектора движения.
Блок 35 ME может вызывать фильтр(ы) 39 для любых необходимых интерполяций в ходе процесса оценивания движения. В некоторых примерах, в памяти 34 могут храниться интерполированные значения для субцелых пикселей, которые могут вычисляться, например, вторым сумматором 51 с использованием фильтра(ов) 39. Например, второй сумматор 51 может применять фильтр(ы) 39 к реконструированным блокам, которые подлежат сохранению в памяти 34.
Устройство 22 кодирования видео, например, снабженный блоком 41 повторного картирования («перекартирования») значений глубины, может осуществлять повторное картирование компоненты текущего вида глубины на основании различия между первым диапазоном глубины реального мира компоненты текущего вида глубины и вторым диапазоном глубины реального мира компоненты опорного вида. Блок 41 повторного картирования может определять первый диапазон глубины реального мира для компоненты первого вида глубины, содержащей компоненту опорного вида. Блок 41 повторного картирования также может определять второй диапазон глубины реального мира для компоненты второго вида глубины, содержащей компоненту текущего вида, например, когда компонента текущего вида прогнозируется относительно компоненты опорного вида. Прогностический блок для части компоненты текущего вида можно определять из компоненты опорного вида на основании различия между первым диапазоном глубины реального мира и вторым диапазоном глубины реального мира, можно регулировать значения прогностического блока. Значения можно регулировать на основании функции. Часть текущего вида можно кодировать на основании отрегулированных значений прогностического блока.
В одном примере, поисковая таблица, содержащая потенциальные функции, может храниться в памяти 34. Блок 41 повторного картирования может обращаться к поисковой таблице для выбора функции для каждой компоненты вида глубины или компоненты опорного вида. В одном примере, поисковая таблица включает в себя 256 значений для 8-байтовой карты глубин. Линейную функцию можно вычислять путем обращения к поисковой таблице. Функцию можно применять к значениям диапазона глубины прогнозируемого блока.
После того, как блок 32 обработки прогнозирования сформирует блок прогнозирования или перекартирует блок прогнозирования, устройство 22 кодирования видео формирует остаточный видеоблок (обозначенный «остат. блок» на фиг. 2), путем вычитания блока прогнозирования из исходного кодируемого видеоблока. Это вычитание может происходить между компонентами текстуры в исходном видеоблоке и компонентами текстуры в блоке прогнозирования, а также для информации глубины в исходном видеоблоке или карты глубин из информации глубины в блоке прогнозирования. Первый сумматор 48 представляет компонент или компоненты, которые осуществляют эту операцию вычитания.
Блок 38 обработки преобразования применяет преобразование, например, дискретное косинусное преобразование (DCT) или принципиально аналогичное преобразование, к остаточному блоку, создавая видеоблок, содержащий остаточные коэффициенты блока преобразования. Следует понимать, что блок 38 обработки преобразования представляет компонент устройства 22 кодирования видео, который применяет преобразование к остаточным коэффициентам блока видеоданных, а не к TU CU, заданным согласно HEVC. Таким образом, в примере, показанном на фиг. 2, блок 38 обработки преобразования может представлять собой функциональный блок, а не “TU” в отношении HEVC.
Блок 38 обработки преобразования может, например, осуществлять другие преобразования, например, заданные стандартом H.264, которые принципиально аналогичны DCT. Такие преобразования могут включать в себя, например, направленные преобразования (например, преобразования согласно теореме Карунена-Лева), вейвлетные преобразования, целочисленные преобразования, преобразования поддиапазона или другие типы преобразований. В любом случае, блок 38 обработки преобразования применяет преобразование к остаточному блоку, создавая блок остаточных коэффициентов преобразования. Блок 38 обработки преобразования может применять один и тот же тип преобразования к компонентам текстуры и к информации глубины в соответствующих остаточных блоках. Для каждой компоненты текстуры и глубины могут существовать отдельные остаточные блоки. Преобразование может преобразовывать остаточную информацию из пиксельной области в частотную область.
Блок 40 квантования квантует остаточные коэффициенты преобразования для дополнительного снижения битовой скорости. Процесс квантования может уменьшать битовую глубину, связанную с некоторыми или всеми коэффициентами. Блок 40 квантования может квантовать остаток кодирования изображения с глубиной. После квантования, блок 46 статистического кодирования статистически кодирует квантованные коэффициенты преобразования. Например, блок 46 статистического кодирования может осуществлять CAVLC, CABAC, или другую методологию статистического кодирования.
Блок 46 статистического кодирования также может кодировать один или более векторов движения и поддерживать информацию, полученную от блока 32 обработки прогнозирования или другого компонента устройства 22 кодирования видео, например, блока 40 квантования. Один или более элементов синтаксиса прогнозирования могут включать в себя режим кодирования, данные для одного или более векторов движения (например, горизонтальную и вертикальную компоненты, идентификаторы опорного списка, индексы списка и/или информацию сигнализации разрешения вектора движения), указание используемого метода интерполяции, набор коэффициентов фильтрации, указание разрешения изображения с глубиной относительно разрешению яркостной компоненты, матрицу квантования для остатка кодирования изображения с глубиной, информация удаления блочности для изображения с глубиной, или другую информацию, связанную с формированием блока прогнозирования. Эти элементы синтаксиса прогнозирования могут быть обеспечены на уровне последовательности или на уровне изображения.
Один или более элементов синтаксиса также могут включать в себя разность параметров квантования (QP) между яркостной компонентой и компонентой глубины. Разность QP может сигнализироваться на уровне серии последовательных макроблоков. Другие элементы синтаксиса также могут сигнализироваться на уровне единицы кодированного блока, включая шаблон кодированных блоков для компоненты вида глубины, дельта QP для компоненты вида глубины, разность векторов движения или другую информацию, связанную с формированием блока прогнозирования. Разность векторов движения может сигнализироваться как значение дельта между целевым вектором движения и вектором движения компонент текстуры или как значение дельта между целевым вектором движения (то есть вектором движения кодируемого блока) и предсказателем из соседних векторов движения для блока (например, PU CU). После осуществления статистического кодирования блоком 46 статистического кодирования, кодированный видеосигнал и элементы синтаксиса могут передаваться на другое устройство или архивироваться (например, в памяти 34) для дальнейшей передачи или извлечения.
Блок 42 обратного квантования и блок 44 обработки обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, для реконструкции остаточного блока в пиксельной области, например, для дальнейшего использования в качестве опорного блока. Реконструированный остаточный блок (обозначенный «рекон. остат. блок» на фиг. 2) может представлять реконструированную версию остаточного блока, обеспеченного блоку 38 обработки преобразования. Реконструированный остаточный блок может отличаться от остаточного блока, формируемого первым сумматором 48 вследствие потери деталей, обусловленной операциями квантования и обратного квантования. Второй сумматор 51 суммирует реконструированный остаточный блок с блоком прогнозирования, подвергнутым компенсации движения, созданным блоком 32 обработки прогнозирования, для создания реконструированного видеоблока для сохранения в памяти 34. Реконструированный видеоблок может использоваться блоком 32 обработки прогнозирования в качестве опорного блока, который можно использовать для последующего кодирования единицы блока в последующем кадре видео или последующей кодированной единице.
Таким образом, устройство 22 кодирования видео представляет пример устройства кодирования видео, выполненного с возможностью определения первого диапазона глубины реального мира для компоненты первого вида глубины, содержащей компоненту опорного вида, определения второго диапазона глубины реального мира для компоненты второго вида глубины, содержащей компоненту текущего вида, причем компонента текущего вида прогнозируется относительно компоненты опорного вида, определения прогностического блока для части компоненты текущего вида из компоненты опорного вида, регулировать значения прогностического блока на основании различия между первым диапазоном глубины реального мира и вторым диапазоном глубины реального мира, и обработки части текущего вида на основании отрегулированных значений прогностического блока.
На фиг. 3 показана схема одного примера структуры MVC-прогнозирования для кодирования многовидового видео. Структура MVC-прогнозирования включает в себя как прогнозирование между изображениями в каждом виде, так и прогнозирование между видами. На фиг. 3B прогнозы указаны стрелками, где указуемый объект использует указующий объект для ссылки прогнозирования. И текстура, и карты глубин допускают межвидовое прогнозирование. Структуру MVC-прогнозирования, показанную на фиг. 3, можно использовать совместно с размещением порядка декодирования первым по времени. В порядке декодирования первым по времени, каждая единица доступа может задаваться таким образом, чтобы вмещать в себя кодированные изображения всех видов для одного момента времени вывода. Порядок декодирования единиц доступа может не быть идентичным порядку вывода или отображения.
В MVC прогнозирование между видами может поддерживаться за счет компенсации расхождения в движении, которая использует синтаксис компенсации движения по H.264/AVC, но позволяет задавать изображение в другом виде в качестве опорного изображения. Кодирование двух видов может поддерживаться также MVC. MVC-кодер может брать более двух видов в качестве входа 3D-видео, и MVC-декодер может декодировать многовидовое представление. Блок визуализации с MVC-декодером может декодировать 3D видеосодержимое с множеством видов.
В MVC изображения в одной и той же единице доступа (т.е. с одним и тем же моментом времени) допускают межвидовое прогнозирование. При кодировании изображения в одном из неосновных видов, изображение можно добавить в список опорного изображения, если оно находится в другом виде, но с тем же моментом времени. Опорное изображение прогнозирования между видами можно помещать в любую позицию списка опорного изображения, как и любое опорное изображение внешнего прогнозирования.
В MVC прогнозирование между видами можно реализовать, как если бы компонента вида в другом виде являлась ссылкой для внешнего прогнозирования. Потенциальные межвидовые ссылки можно сигнализировать в MVC-расширении набора параметров последовательности (SPS). Потенциальные межвидовые ссылки можно модифицировать процессом построения списка опорного изображения, что позволяет гибко упорядочивать ссылки внешнего прогнозирования или прогнозирования между видами.
Битовый поток можно использовать для переноса единиц блока многовидового видео плюс глубина и элементов синтаксиса между, например, устройством-источником 12 и устройством 16 назначения, показанными на фиг. 1. Битовый поток может отвечать стандарту кодирования ITU H.264/AVC и, в частности, согласуется со структурой битового потока кодирования многовидового видео (MVC). Таким образом, в некоторых примерах битовый поток может отвечать MVC-расширению H.264/AVC. В других примерах, битовый поток может отвечать многовидовому расширению HEVC или многовидовому расширению другого стандарта. В прочих примерах можно использовать другие стандарты кодирования.
Типичным размещением порядка битового потока MVC (порядок декодирования) является кодирование первым по времени. Каждая единица доступа задается так, чтобы вмещать в себя кодированные изображения всех видов для одного момента времени вывода. Порядок декодирования единиц доступа может быть или не быть идентичным порядку вывода или отображения. Обычно, MVC-прогнозирование может включать в себя, как прогнозирование между изображениями в каждом виде, так и прогнозирование между видами. В MVC прогнозирование между видами может поддерживаться за счет компенсации расхождения в движении, которая использует синтаксис компенсации движения по H.264/AVC, но позволяет использовать изображение в другом виде в качестве опорного изображения.
Кодирование двух видов поддерживается MVC. Одно из преимуществ MVC состоит в том, что MVC-кодер может брать более двух видов в качестве входа 3D-видео, и MVC-декодер может декодировать два вида в многовидовое представление. Таким образом, блок визуализации с MVC-декодером может рассматривать 3D видеосодержимое как имеющее множество видов. Раньше MVC не обрабатывал ввод карты глубин, по аналогии с H.264/AVC с сообщениями SEI (стерео-информация или изображения пространственного перемежения).
В стандарте H.264/AVC, единицы уровня сетевых абстракций (NAL) задаются для обеспечения “дружественных к сети” приложений адресации представления видео, например, видеотелефонии, хранилища или потокового видео. Единицы NAL можно подразделить на единицы NAL уровня кодирования видеосигнала (VCL) и единицы NAL не-VCL. Единицы VCL могут содержать базовую машину сжатия и содержат уровни блока, макроблока (MB) и серии последовательных макроблоков. Другие единицы NAL являются единицами NAL не-VCL.
Для кодирования 2D видеосигнала, каждая единица NAL может содержать однобайтовый заголовок единицы NAL и полезную нагрузку переменного размера. Пять битов можно использовать для указания типа единицы NAL. Три бита можно использовать для nal_ref_idc, который указывает, насколько важна единица NAL в качестве предмета ссылки со стороны других изображений (единиц NAL). Например, задание nal_ref_idc равным 0 означает, что единица NAL не используется для внешнего прогнозирования. Поскольку H.264/AVC можно расширить таким образом, чтобы он включал в себя кодирование 3D видеосигнала, например, до стандарта масштабируемого кодирования видеосигнала (SVC), заголовок NAL может быть аналогичен заголовку в 2D сценарии.
Заголовки единиц NAL также можно использовать для единиц NAL MVC. Однако, в MVC, структура заголовка единицы NAL может оставаться неизменной за исключением префиксных единиц NAL и единиц NAL серии последовательных макроблоков, кодированного согласно MVC. Единицы NAL серии последовательных макроблоков, кодированной согласно MVC, могут содержать четырехбайтовый заголовок и полезную нагрузку единицы NAL, которая может включать в себя единицу блока, например, кодированный блок 8, показанный на фиг. 1. Элементы синтаксиса в заголовке единицы NAL MVC может включать в себя priority_id, temporal_id, anchor_pic_flag, view_id, non_idr_flag и inter_view_flag. В других примерах, в заголовок единицы NAL MVC могут быть включены другие элементы синтаксиса.
Элемент синтаксиса anchor_pic_flag может указывать, является ли изображение якорным изображением или неякорным изображением. Якорные изображения и все последующие изображения в порядке вывода (т.е. порядке отображения) можно правильно декодировать, не декодируя предыдущие изображения в порядке декодирования (т.е. порядке битового потока) и, таким образом, можно использовать как случайные точки доступа. Якорные изображения и неякорные изображения могут иметь разные зависимости, которые обе могут сигнализироваться в наборе параметров последовательности.
Структура битового потока, заданная в MVC, может характеризоваться двумя элементами синтаксиса: view_id и temporal_id. Элемент синтаксиса view_id может указывать идентификатор каждого вида. Этот идентификатор в заголовке единицы NAL позволяет без труда идентифицировать единицы NAL на декодере и быстро осуществлять доступ к декодированным видам для отображения. Элемент синтаксиса temporal_id может указывать временную иерархию масштабируемости или, косвенно, частоту кадров. Например, рабочая точка, включающая в себя единицы NAL со значением temporal_id меньшим максимального, может иметь более низкую частоту кадров, чем рабочая точка со значением temporal_id большим максимального. Кодированные изображения с более высоким значением temporal_id обычно зависят от кодированных изображений с более низкими значениями temporal_id в виде, но могут не зависеть ни от какого кодированного изображения с более высоким temporal_id.
Элементы синтаксиса view_id и temporal_id в заголовке единицы NAL можно использовать, как для извлечения, так и для адаптации битового потока. Элемент синтаксиса priority_id можно, в основном, использовать для простого однопроходного процесса адаптации битового потока. Элемент синтаксиса inter_view_flag может указывать, будет ли эта единица NAL использоваться для прогнозирования между видами другой единицы NAL в другом виде.
В MVC также могут применяться наборы параметров последовательности (SPS) и могут включать в себя MVC-расширение SPS. Наборы параметров используются для сигнализации в H.264/AVC. Наборы параметров могут содержать информацию заголовка уровня последовательностей в наборах параметров последовательности и нечасто изменяющуюся информацию заголовка уровня изображений в наборах параметров изображения (PPS). Благодаря наборам параметров, эта нечасто изменяющаяся информация не обязана повторяться для каждой последовательности или каждого изображения, следовательно, эффективность кодирования повышается. Кроме того, использование наборов параметров позволяет передавать за пределами полосы информацию заголовка, избегая необходимости в избыточных передачах для обеспечения устойчивости к ошибкам. В некоторых примерах передачи за пределами полосы, единицы NAL набора параметров могут передаваться по другому каналу, чем другие единицы NAL. В MVC, зависимость вида может сигнализироваться в MVC-расширении SPS. Все прогнозирование между видами может осуществляться в объеме, указанном MVC-расширением SPS.
В некоторых предыдущих методах кодирования 3D видеосигнала, содержимое кодируется таким образом, что цветовые компоненты, например, в цветовом пространстве YCbCr, кодируются в одной или более единицах NAL, тогда как изображение с глубиной кодируется в одной или более отдельных единицах NAL. Однако, когда никакая отдельно взятая единица NAL не содержит кодированных выборок текстуры и изображений с глубиной единицы доступа, могут возникать некоторые проблемы. Например, в 3D устройстве декодирования видео предполагается, что после декодирования обоих из текстуры и изображения с глубиной каждого кадра, визуализация вида на основании карты глубин и текстуры активируется для формирования виртуальных видов. Если единица NAL изображения с глубиной и единица NAL текстуры для единицы доступа кодируются в последовательном режиме, визуализация вида может не начаться, пока единица доступа не будет полностью декодирована. Это может привести к увеличению времени на визуализацию 3D-видео.
Описанные здесь методы можно добавить в существующие стандарты, например MVC, для поддержки 3D-видео. Многовидовое видео плюс глубина (MVD) можно добавить в MVC для обработки 3D-видео. Методы кодирования 3D видеосигнала могут придавать существующим стандартам видео повышенную гибкость и расширяемость, например, для плавного изменения угла обзора или регулировки восприятия схождения или глубины назад или вперед на основании технических характеристик устройств или предпочтений пользователя. Стандарты кодирования также можно расширить для использования карт глубин для формирования виртуальных видов в 3D-видео.
На фиг. 4 показана блок-схема, демонстрирующая пример устройства 28 декодирования видео, которое может декодировать видеопоследовательность, кодированную наподобие описанного здесь. Устройство 28 декодирования видео является одним примером специализированного компьютерного устройства или приспособления обработки видеосигнала, именуемого здесь «кодером». Как показано на фиг. 3, устройство 28 декодирования видео соответствует устройству 28 декодирования видео устройства 16 назначения. Однако, в других примерах, устройство 28 декодирования видео может соответствовать другому устройству. В дополнительных примерах, другие блоки (например, например, другие кодеры/декодеры (кодеки)) также осуществляют методы, аналогичные тем, которые осуществляются устройством 28 декодирования видео.
Устройство 28 декодирования видео включает в себя блок 52 статистического декодирования, который статистически декодирует принятый битовый поток для формирования квантованных коэффициентов и элементов синтаксиса прогнозирования. Битовый поток может включать в себя кодированные блоки, имеющие компоненты текстуры и соответствующие компоненты глубины, которые можно использовать для визуализации 3D-видео. Битовый поток также может включать в себя элементы синтаксиса. Элементы синтаксиса прогнозирования может включать в себя режим кодирования, один или более векторов движения, информацию, идентифицирующую используемый метод интерполяции, коэффициенты для использования в интерполяционной фильтрации и/или другую информацию, связанную с формированием блока прогнозирования.
Элементы синтаксиса прогнозирования, например, данные векторов движения, пересылаются на блок 55 обработки прогнозирования. Блок 55 обработки прогнозирования может использовать данные векторов движения для создания прогнозируемого блока для компоненты текстуры или компоненты глубины. Блок 55 обработки прогнозирования может выдавать прогнозируемые блоки для компонент текстуры непосредственно на сумматор 64, тогда как блок 55 обработки прогнозирования может выдавать прогнозируемые блоки для компонент глубины на блок 63 повторного картирования. Блок 63 повторного картирования может определять различия в диапазонах глубины реального мира для опорного кадра (или серии последовательных макроблоков) и текущего кадра (или серии последовательных макроблоков) и регулировать значения в прогнозируемом значении для компоненты глубины соответственно, например, с использованием поисковой таблицы или другими методами, описанными в настоящем изобретении, для регулировки прогнозируемых значений карты глубин. Таким образом, блок 63 повторного картирования содержит пример блока для регулировки значений прогностического блока на основании различия между первым диапазоном глубины реального мира опорного кадра или серии последовательных макроблоков и вторым диапазоном глубины реального мира кодируемого текущего кадра или серии последовательных макроблоков.
Блок 55 обработки прогнозирования может формировать данные прогнозирования на основании элементов синтаксиса прогнозирования и одного или более ранее декодированных блоков, которые хранятся в памяти 62, в основном, таким же образом, как подробно описано выше в отношении блока 32 обработки прогнозирования устройства 22 кодирования видео. В частности, блок 55 обработки прогнозирования может осуществлять один или более из методов многовидового видео плюс глубина настоящего изобретения в ходе компенсации движения для формирования блока прогнозирования, включающего в себя компоненты глубины, а также компоненты текстуры. Блок прогнозирования (а также кодированный блок) может иметь разное разрешение для компонент глубины и компонент текстуры. Например, компоненты глубины могут иметь четвертьпиксельную точность, тогда как компоненты текстуры имеют целочисленную пиксельную точность. Таким образом, устройство 28 декодирования видео может использовать один или более методов настоящего изобретения при формировании блока прогнозирования. Блок 55 обработки прогнозирования может включать в себя блок компенсации движения, который содержит фильтры, используемые для методов интерполяционной и интеполяционно-подобной фильтрации настоящего изобретения. Компонент компенсация движения не показан на фиг. 4 для простоты и легкости иллюстрации. Эти фильтры могут соответствовать по существу интерполяционным фильтрам 39 блока 32 обработки прогнозирования (фиг. 2).
Блок 56 обратного квантования осуществляет обратное квантование, т.е. деквантование, квантованных коэффициентов. Процесс обратного квантования может быть процессом, заданным для декодирования по H.264 или для любого другого стандарта декодирование. Блок 58 обработки обратного преобразования применяет обратное преобразование, например, обратное DCT или принципиально аналогичный процесс обратного преобразования, к коэффициентам преобразования для создания остаточных блоков в пиксельной области. Сумматор 64 суммирует остаточный блок с соответствующим блоком прогнозирования, формируемым блоком 55 обработки прогнозирования, для формирования реконструированной версии исходного блока, кодированного устройством 22 кодирования видео. При необходимости противоблоковый фильтр также можно применять для фильтрации декодированных блоков для устранения артефактов блоковости. Затем декодированные видеоблоки сохраняются в памяти 62, которая обеспечивает опорные блоки для последующей компенсация движения и также создает декодированный видеосигнал для возбуждения устройства отображения (например устройства 28 на фиг. 1).
Декодированные видеоданные можно использовать для визуализации 3D-видео. 3D-видео может содержать трехмерный виртуальный вид. Таким образом, виртуальный вид можно визуализировать (строить) с использованием компоненты текстуры и компоненты глубины компоненты вида. Информацию глубины можно использовать для определения горизонтального смещения (горизонтального расхождения) для каждого пикселя в каждом блоке компоненты вида. Обработка окклюзии также может осуществляться для формирования виртуального вида. Устройство 28 декодирования видео может выдавать декодированную текстуру и информацию глубины на внешний блок для визуализации виртуального вида.
Таким образом, устройство 28 декодирования видео представляет пример устройства декодирования видео, выполненного с возможностью определения первого диапазона глубины реального мира для компоненты первого вида глубины, содержащей компоненту опорного вида, определения второго диапазона глубины реального мира для компоненты второго вида глубины, содержащей компоненту текущего вида, причем компонента текущего вида прогнозируется относительно компоненты опорного вида, определения прогностического блока для части компоненты текущего вида из компоненты опорного вида, регулировать значения прогностического блока на основании различия между первым диапазоном глубины реального мира и вторым диапазоном глубины реального мира, и обработки части текущего вида на основании отрегулированных значений прогностического блока.
На фиг. 5 показана блок-схема операций, демонстрирующая пример работы видеокодера согласно настоящему изобретению. Устройство кодирования видео или устройство декодирования видео может осуществлять примерный способ, показанный на фиг. 5. Видеокодер, например, устройство 22 кодирования видео, определяет первый диапазон глубины реального мира для компоненты первого вида глубины, содержащей компоненту опорного вида (102). Видеокодер определяет второй диапазон глубины реального мира для компоненты второго вида глубины, содержащей компоненту текущего вида, причем компонента текущего вида прогнозируется относительно компоненты опорного вида (104). Диапазон глубины реального мира может непосредственно сниматься камерами глубины, вычисляться, если содержимое формируется из 3D модели компьютерной графики, или оцениваться, например, методами оценивания расхождения.
Видеокодер может определять прогностический блок для части компоненты текущего вида из компоненты опорного вида (106). Прогностический блок может определяться на основании методов для определения прогностических блоков, описанных в H.264/AVC, HEVC, или другом стандарте кодирования видеосигнала.
Когда прогностический блок определен, может потребоваться отрегулировать значения глубины прогностического блока, если диапазон глубины реального мира компонент вида глубины опорного вида отличается от диапазона глубины реального мира компонент вида глубины текущего вида. Диапазон глубины реального мира компонент вида глубины опорного вида можно сравнивать с диапазоном глубины реального мира компонент вида глубины текущего вида для определения, отличаются ли они. В некоторых примерах, когда диапазоны глубины реального мира отличаются, видеокодер регулирует значения прогностического блока на основании различия между первым диапазоном глубины реального мира и вторым диапазоном глубины реального мира (108).
Текущий вид можно кодировать с использованием значений отрегулированного прогностического блока. Видеокодер прогнозирует часть текущего вида на основании отрегулированных значений прогностического блока (110).
В примере, где видеокодер представляет собой устройство кодирования видео, определение прогностического блока может содержать формирование прогностического блока. Прогнозирование части текущего вида содержит кодирование части текущего вида на основании отрегулированных значений прогностического блока. В другом примере, где видеокодер представляет собой устройство декодирования видео, определение прогностического блока содержит прием прогностического блока, и обработка части текущего вида содержит декодирование части текущего вида на основании отрегулированных значений прогностического блока.
Флаг может быть обеспечен в заголовке, например в заголовке серии последовательных макроблоков, прогностического блока, который указывает, отрегулированы ли значения прогностического блока. Заголовок может представлять собой данные в битовом потоке, которые обеспечивают элементы синтаксиса для кодированного видеоблока. Например, блок 46 статистического кодирования (фиг. 2) может обеспечивать такой флаг, и блок 52 статистического декодирования (фиг. 4) может интерпретировать семантику для значения флага. В информации заголовка также можно обеспечить флаг, который указывает, отрегулирована ли часть компоненты опорного вида, что значения прогностического блока, определенные из компонент опорного вида. Регулирование значений прогностического блока на основании различия между первым диапазоном глубины реального мира и вторым диапазоном глубины реального мира может включать в себя применение функции к значениям прогностического блока. Функция может быть линейной функцией. В некоторых примерах, функция включает в себя масштабирование значений глубины прогностического блока и прибавление смещения к масштабированным значениям глубины. Масштабирование и смещение могут относиться к первому диапазону глубины и второму диапазону глубины. Например, величина масштабирования и смещения может зависеть от значений первого или второго диапазона глубины. Функцию можно вычислять на основании поисковой таблицы, содержащей значения для восьмибайтовой карты глубин.
Последовательность карт глубин можно использовать как нормальную видеопоследовательность, с использованием существующих стандартов кодирования, например, H.264/AVC или HEVC. В содержимом 3DV последовательности карт глубин может быть связанна с текстурными видеопоследовательностями. Изображение карты глубин обычно может содержать изображение, где значение z реального мира квантовано. Например, изображение карты глубин можно квантовать, например, до 8 байтов, согласно конкретным формулам, например:
где d - квантованное значение глубины в пределах от 0 до 255, и z - значение реального мира в пределах от znear до zfar.
Квантование от значения глубины реального мира до 8-байтового значения глубины может изменяться от кадра к кадру и также от вида к виду, поскольку znear до zfar может изменяться. Таким образом, одно и то же значение глубины в текущем кадре и его опорном кадре может соответствовать разным значениям глубины реального мира. Эффективность компенсации движения может снижаться, когда одно и то же значение глубины в текущем кадре и соответствующем опорном кадре применяется к разным значениям глубины реального мира. Кроме того, одно и то же значение глубины в кадре текущего вида и его межвидовом опорном кадре может соответствовать разным значениям глубины реального мира, из-за чего прогнозирование между видами может оказаться неэффективным.
Повторное картирование можно применять на попиксельной основе. В других примерах, повторное картирование значений глубины можно применять к группе пикселей.
Описанные здесь методы можно применять, когда диапазон глубины реального мира изменяется на уровне кадра. Процесс декодирования с повторным картированием значений глубины можно вводить после компенсации движения. Можно предположить, что повторное картирование является линейной функцией, что позволяет проводить повторное картирование пиксельных значений после подпиксельной компенсации движения, осуществленной с использованием методом интерполяции. Повторное картирование можно обобщить до любой формы прогнозирования текстуры, включая межвидовое прогнозирование глубины и любое прогнозирование текстуры среди изображений, которые квантуются до одного и того же динамического диапазона, но из другого диапазона освещения. В некоторых примерах, функция определяется по отдельности для каждого видеоблока или другой части кадра, хотя в других примерах, единую функцию можно применять для повторного картирования всего кадра.
В некоторых примерах, можно вводить поисковую таблицу, что позволяет вычислить функция для применения к текущему виду глубины путем обращения к базе данных или поисковой таблице картирования. В одном примере, база данных картирования содержит 256 значений для 8-байтовой карты глубин и может быть доступна любому или обоим из устройства кодирования видео и устройства декодирования видео. База данных или поисковая таблица картирования может храниться внутри видеокодера, например, в памяти 34 устройства 22 кодирования видео, или во внешнем хранилище, доступном видеокодеру.
По сравнению с традиционной платформой кодирования видеосигнала, предложен процесс повторного картирования значений глубины согласно описанным здесь методам. Каждый пиксель блока, подвергнутого компенсации движения может отображаться в новое значение согласно общей функции для каждого пикселя блока, подвергнутого компенсации движения. Методы можно применять к любым кодекам на основании компенсации движения, что позволяет применять их к потенциальным расширениям для H.264/AVC и HEVC.
Для определения линейной функции повторного картирования, пиксель с глубиной z отображается в d в опорном изображении с диапазоном глубины , и текущее изображение имеет диапазон глубины . Значение d должно отображаться в d1 для более точного прогнозирования, в связи с чем, уравнение (1) приобретает вид:
Применяя диапазон глубины к уравнению (2), получаем:
Для упрощения уравнения 3, можно ввести следующие обозначения:
где t=0, 1.
Подставляя уравнения 4 - 6 в уравнение 3 можно получить уравнение 7:
Заметим, что:
Зададим следующие соотношения:
Таким образом, с применением уравнений 9 и 10 к уравнению 7, функция повторного картирования уравнения 1 приобретает вид:
В этом примере, функция повторного картирования является линейной функцией, поскольку
и
Также следует обратить внимание на следующее соотношение:
Уравнение 14 указывает, что подпиксельная компенсация движения, применяемая к повторно картированному опорному изображению, в некоторых примерах, может быть эквивалентна осуществлению сначала подпиксельной компенсации движения и затем применению повторного картирования на компенсированном сигнале. Функцию повторного картирования можно проиллюстрировать следующим образом:
В некоторых примерах, вычисление вышеозначенной функции повторного картирования для каждого пикселя может быть более сложным и использовать больше вычислительных ресурсов, чем желательно. Альтернативно, поисковую таблицу можно использовать вместо вычисления функции повторного картирования для каждого пикселя. Поисковая таблица может соответствовать опорному изображению. n-е опорное изображение имеет поисковую таблицу . Пусть компенсированный пиксельный блок (размером KxL) из n-ого опорного изображения является массивом В процессе повторного картирования окончательный массив прогнозирования формируется следующим образом:
Заметим, что некоторые из значений в поисковой таблице могут быть отрицательными или превышать 255. В подобных случаях, 16-битовый знаковое целое число можно использовать для представления значений.
В других примерах с функциями квантования, функцию повторного картирования можно вычислять аналогично. Приведем два примера. В первом примере, значение z пропорционально значению d:
В примере уравнения 17, следующая линейная функция повторного картирования дает:
в порядке второго примера, значение z является поисковой таблицей значений d, в том смысле, что, следующие две функции сигнализируются как для опорного изображения, и для текущего изображения. Таким образом, повторное картирование в этом примере выглядит следующим образом:
Поскольку обе и являются монотонными функциями, функцию, обратную , можно вычислить путем поиска функции . Например, без ущерба для общности, можно предположить, что обе функции являются монотонно убывающими функциями. При любом значении d в диапазоне [0, 255], результирующее значение глубины реального мира определяется путем обращения к поисковой таблице, соответствующей . Например,
В кодированном битовом потоке может присутствовать флаг для указания, осуществлялось ли повторное картирование. Флаг может сигнализироваться в битовом потоке и устанавливаться на первое значение для указания, что повторное картирование не осуществлялось, и устанавливаться на второе значение, отличное от первого значения, для указания, что повторное картирование осуществлялось. Флаг, например depth_remap_enabled_flag, может быть включен в заголовок серии последовательных макроблоков для указания, разрешено ли повторное картирование. Например, когда флаг равен «истина», требуется повторное картирование, в противном случае повторное картирование не требуется. В некоторых примерах, повторное картирование не требуется, поскольку, например, диапазон глубины не изменяется между текущим кадром и любым опорным кадром, или изменения диапазона глубины ниже порогового уровня допустимой разности диапазонов глубины. В другом примере, заголовок серии последовательных макроблоков прогностического блока может указывать, что регулирование блока прогнозирования на основании диапазона глубины разрешено для кодирования одного или более блоков серии последовательных макроблоков. Серия последовательных макроблоков может включать в себя компоненту текущего вида.
В некоторых примерах, где требуется повторное картирование для текущего изображения, может существовать опорное изображение, имеющее такой же или аналогичный диапазон глубины, как у текущего изображения, и другое опорное изображение, которое не имеет такого же или аналогичного диапазона глубины. Таким образом, когда depth_remap_enabled_flag равен «истина», флаг можно вводить в заголовок серии последовательных макроблоков для каждого опорного изображения. Этот флаг указывает, требуется ли повторное картирование для конкретного опорного изображения и текущего изображения.
На фиг. 6 показана принципиальная схема, демонстрирующая пример обмена данными между компонентами другого примера устройства 200 кодирования для регулировки подвергнутых компенсации движения значений карт глубин. В примере, показанном на фиг. 6, устройство 200 кодирования включает в себя блок 202 управления кодером, блок 204 преобразования/масштабирования/квантования, блок 206 масштабирования/обратного квантования, блок 208 фильтрации, блок 210 внутрикадрового прогнозирования, блок 212 компенсации движения, блок 214 повторного картирования значений глубины, блок 216 оценивания движения и блок 220 статистического кодирования. Устройство 200 кодирования может представлять собой устройство кодирования или устройство декодирования.
Компоненты устройства 200 кодирования, называемые аналогично соответствующим компонентам устройства 22 кодирования видео, могут по существу соответствовать им в отношении функциональных возможностей. В этом примере устройство 200 кодирования принимает входное изображение 222, которое является картой глубин, представляющей значений глубины для частей соответствующего изображения текстуры (например, соответствующей компоненты текстуры). Значения глубины можно, в общем случае, кодировать по существу аналогично кодированию данных яркости без данных цветности, что позволяет использовать внутреннее и/или внешнее прогнозирование для кодирования такой информации глубины. Соответственно, блок 202 управления кодировкой определяет режим кодирования для кодирования входного изображения 222, например, внутренний или внешний режим.
Предполагая, без ущерба для общности, что блок 202 управления кодировкой выбирает внешнее прогнозирование для кодирования входного изображения 222, блок 216 оценивания движения может вычислять вектор движения, подлежащий использованию для прогнозирования блоков входного изображения 222 относительно частей ранее кодированного изображения, представленного опорным изображением 218, которое может храниться в памяти (не показана) устройства 200 кодирования. Блок 216 оценивания движения может выдавать вычисленный вектор движения на блок 212 компенсации движения, который может формировать прогнозируемый блок для входного изображения 222 с использованием опорного изображения 218. Входное изображение 222 и опорное изображение 218 могут иметь соответствующие диапазоны глубины реального мира.
В соответствии с методами настоящего изобретения блок 212 компенсации движения может выдавать прогностический блок на блок 214 повторного картирования значений глубины, который также может принимать указание соответствующих диапазонов глубины реального мира для входного изображения 222 и опорного изображения 218. Кроме того, в соответствии с этими методами, блок 214 повторного картирования значений глубины может регулировать значения прогностического блока, принятые от блока 212 компенсации движения, на основании различия между диапазоном глубины реального мира для входного изображения 222 и диапазоном глубины реального мира для опорного изображения 218.
Блок 214 повторного картирования значений глубины может регулировать значения прогнозируемого блока карты глубин с использованием любого или всех методов настоящего изобретения. Например, блок 214 повторного картирования значений глубины может выполнять линейную функцию или обращаться к поисковой таблице для регулировки значений прогнозируемого блока. В некоторых примерах, блок 214 повторного картирования значений глубины (или другой блок устройства 200 кодирования) может обеспечивать указание (например, флаг) в заголовке серии последовательных макроблоков, который показывает, нужно ли повторно картировать значения глубины для серии последовательных макроблоков, на основании различия между диапазонами глубины реального мира для серии последовательных макроблоков и опорного кадра или серии последовательных макроблоков, используемого для прогнозирования блоков серии последовательных макроблоков.
Блок 210 внутрикадрового прогнозирования может вычислять прогнозируемый блок, когда блок 202 управления кодировкой выбирает внутреннее прогнозирование. Поскольку внутреннее прогнозирование предусматривает формирование прогнозируемого блока из соседних, ранее кодированных пикселей того же кадра, диапазоны глубины реального мира для прогнозируемого блока и опорных выборок обычно не отличаются, поскольку они соответствуют одному и тому же опорному кадру. Однако, в случаях, когда разные диапазоны глубины обеспечены в одном и том же кадре (или серии последовательных макроблоков), эти методы также можно применять для регулировки значений прогнозируемой серии последовательных макроблоков, полученных внутренним прогнозированием.
Прогнозируемый блок (который может регулироваться блоком 214 повторного картирования значений глубины) поступает на сумматор 226, совместно с соответствующим (то есть совмещенным) блоком из входного изображения 222. Сумматор 226 вычисляет разность между этими блоками для создания остаточного значения, которое преобразуется, масштабируется и квантуется блоком 204 преобразования/масштабирования/квантования, создавая квантованные коэффициенты преобразования. Блок 220 статистического кодирования может статистически кодировать квантованные коэффициенты преобразования, а также данные векторов движения или информацию режима внутреннего прогнозирования и/или другие данные синтаксиса для текущего блока. Аналогично, блок 206 масштабирования/обратного квантования/обратного преобразования может осуществлять обратное квантование, обратное преобразование и масштабирование над квантованными коэффициентами преобразования для воспроизведения остаточных данных. Сумматор 228 объединяет воспроизводимые остаточные данные с прогнозируемым блоком, который, опять же, может регулироваться блоком 214 повторного картирования значений глубины в соответствии с методами настоящего изобретения. Блок 228 фильтрации может фильтровать выходной сигнал сумматора 228 и направлять потенциально фильтрованный выходной сигнал в память, где хранятся опорные изображения, например, опорное изображение 218, для использования в качестве ссылки для позднее кодируемых видеоданных.
В одном или более примерах, описанные функции могут быть реализованы в оборудовании, программном обеспечении, программно-аппаратном обеспечении, или любой их комбинации. Будучи реализованы в программном обеспечении, функции могут храниться или передаваться в виде одной или более инструкций или кода на машиночитаемом носителе и выполняться аппаратным блоком обработки. Машиночитаемые носители могут включать в себя машиночитаемые носители данных, которые соответствует вещественному носителю, например, носителям данных или средам связи, включающим в себя любую среду, которая облегчает перенос компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, машиночитаемые носители, в общем случае, могут соответствовать (1) вещественным машиночитаемым носителям данных, которые являются неизменяемыми, или (2) среде связи, например, сигналу или несущей волне. Носителями данных могут быть любые доступные носители, к которым может обращаться один или более компьютеров или один или более процессоров для извлечения инструкций, кода и/или структур данных для реализации методов, описанных в настоящем раскрытии. Компьютерный программный продукт может включать в себя машиночитаемый носитель.
В порядке примера, но не ограничения, такие машиночитаемые носители данных могут содержать ОЗУ, ПЗУ, ЭСППЗУ, CD-ROM или другое запоминающее устройство на основе оптического диска, запоминающее устройство на основе магнитного диска, или другие магнитные запоминающие устройства, флэш-память, или любой другой носитель, который можно использовать для хранения нужного программного кода в форме инструкций или структур данных, и к которым может обращаться компьютер. Также, любое соединение уместно именовать машиночитаемым носителем. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL), или беспроводных технологий, например, инфракрасных, радиочастотных и микроволновых, то коаксиальный кабель, оптоволоконный кабель, витая пара, DSL, или беспроводные технологии, например, инфракрасные, радиочастотные и микроволновые, включаются в определение носителя. Однако следует понимать, что машиночитаемые носители данных и среды не включают в себя соединения, несущие волны, сигналы или другие изменяемые среды, но вместо этого означают неизменяемые, вещественные носители данных. Используемый здесь термин диск, включает в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), флоппи-диск и диск Blu-ray, где диски обычно воспроизводят данные магнитными средствами, тогда как диски воспроизводят данные оптическими средствами с помощью лазеров. Комбинации вышеописанных устройств также подлежат включению в объем определения машиночитаемых носителей.
Инструкции могут выполняться одним или более процессорами, например, одним или более цифровыми сигнальными процессорами (DSP), микропроцессорами общего назначения, специализированными интегральными схемами (ASIC), вентильными матрицами, программируемыми пользователем (FPGA), или другими эквивалентными интегральными или дискретными логическими схемами. Соответственно, термин «процессор», используемый здесь, может означать любую из вышеупомянутой структуры или любой другой структуры, подходящей для реализации описанных здесь методов. Кроме того, в некоторых аспектах, описанные здесь функциональные возможности могут быть обеспечены в специализированных аппаратных и/или программных модулях, выполненных с возможностью кодирования и декодирования, или внедрены в комбинированный кодек. Также, методы можно полностью реализовать в одной или более схемах или логических элементах.
Методы настоящего изобретения можно реализовать в различных приспособлениях или устройствах, включающих в себя беспроводной телефон, интегральную схему (ИС) или набор ИС (например, чипсет). Различные компоненты, модули или блоки описаны в настоящем раскрытии для подчеркивания функциональных аспектов устройств, выполненных с возможностью осуществления раскрытых методов, но не обязательно требуют реализации разными аппаратными блоками. Напротив, как описано выше, различные блоки могут объединяться в аппаратном блоке кодека или обеспечиваться совокупностью взаимодействующих аппаратных блоков, включающих в себя один или более процессоров, как описано выше, совместно с подходящим программным обеспечением и/или программно-аппаратным обеспечением.
Были описаны различные примеры настоящего изобретения. Эти и другие примеры соответствуют объему нижеследующей формулы изобретения.
Изобретение относится к технологиям обработки трехмерных видеоданных. Техническим результатом является повышение точности прогнозирования компоненты текущего вида на основании отрегулированных значений за счет того, что регулирование осуществляется на основе масштабированного значения глубины прогностического блока. Предложен способ обработки видеоданных. Способ содержит этап, на котором определяют первый диапазон воспринимаемой глубины для компоненты первого вида глубины, соответствующей компоненте опорного вида, для опорного вида. А также определяют второй диапазон воспринимаемой глубины для компоненты второго вида глубины, соответствующей компоненте текущего вида, для текущего вида, причем текущий вид является видом, отличным от опорного вида, и при этом компонента текущего вида прогнозируется относительно компоненты опорного вида. Осуществляют регулирование значения прогностического блока на основании различия между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины, причем регулирование указанных значений содержит этап, на котором масштабируют значения глубины прогностического блока. 4 н. и 36 з.п. ф-лы, 6 ил.
1. Способ обработки видеоданных, причем способ содержит этапы, на которых:
определяют первый диапазон воспринимаемой глубины для компоненты первого вида глубины, соответствующей компоненте опорного вида, для опорного вида;
определяют второй диапазон воспринимаемой глубины для компоненты второго вида глубины, соответствующей компоненте текущего вида, для текущего вида, причем текущий вид является видом, отличным от опорного вида, и при этом компонента текущего вида прогнозируется относительно компоненты опорного вида;
определяют из компоненты опорного вида прогностический блок для части компоненты текущего вида;
регулируют значения прогностического блока на основании различия между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины, причем регулирование значений содержит этап, на котором масштабируют значения глубины прогностического блока; и
прогнозируют часть компоненты текущего вида на основании отрегулированных значений прогностического блока.
2. Способ по п. 1, в котором определение прогностического блока содержит этап, на котором формируют прогностический блок.
3. Способ по п. 1, в котором прогнозирование части компоненты текущего вида содержит этап, на котором кодируют часть компоненты текущего вида на основании отрегулированных значений прогностического блока.
4. Способ по п. 1, в котором прогнозирование части компоненты текущего вида содержит этап, на котором декодируют часть компоненты текущего вида на основании отрегулированных значений прогностического блока.
5. Способ по п. 1, дополнительно содержащий этап, на котором:
указывают в заголовке серии последовательных макроблоков прогностического блока, что регулирование блока прогнозирования на основании диапазона глубины разрешено для кодирования одного или более блоков серии последовательных макроблоков, включенных в компоненту текущего вида.
6. Способ по п. 1, в котором регулирование значений прогностического блока на основании различия между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины дополнительно содержит этап, на котором применяют функцию регулирования значений пикселей к значениям прогностического блока.
7. Способ по п. 1, в котором регулирование значений прогностического блока дополнительно содержит этап, на котором прибавляют смещение к масштабированным значениям глубины.
8. Способ по п. 7, в котором как масштабирование, так и смещение относятся к первому диапазону глубины и второму диапазону глубины.
9. Способ по п. 6, дополнительно содержащий этап, на котором:
определяют функцию регулирования значений пикселей на основании поисковой таблицы, содержащей значения для восьмибайтовой карты глубин.
10. Способ по п. 6, в котором применение функции регулирования значений пикселей к значениям прогностического блока дополнительно содержит этап, на котором применяют функцию регулирования значений пикселей к каждому пикселю в прогностическом блоке, причем функция регулирования значений пикселей задана в виде , в которой d представляет значение прогностического блока, ƒ(d) представляет отрегулированное значение прогностического блока,
11. Способ по п. 1, в котором регулирование значений прогностического блока на основании различия между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины содержит этап, на котором регулируют значения прогностического блока, когда разность между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины превышает пороговый уровень.
12. Способ по п. 1, дополнительно содержащий этап, на котором:
осуществляют компенсацию движения на компоненте опорного вида, причем регулирование значений прогностического блока осуществляют после компенсации движения компоненты опорного вида.
13. Устройство для кодирования видеоданных, содержащее видеокодер, выполненный с возможностью определения первого диапазона воспринимаемой глубины для компоненты первого вида глубины, содержащей компоненту опорного вида, для опорного вида, определения второго диапазона воспринимаемой глубины для компоненты второго вида глубины, содержащей компоненту текущего вида, для текущего вида, причем текущий вид является видом, отличным от опорного вида, и при этом компонента текущего вида прогнозируется относительно компоненты опорного вида, определения из компоненты опорного вида прогностического блока для части компоненты текущего вида, регулирования значений прогностического блока на основании различия между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины, причем регулирование значений содержит масштабирование значений глубины прогностического блока, и кодирования части компоненты текущего вида на основании отрегулированных значений прогностического блока.
14. Устройство по п. 13, в котором видеокодер представляет собой устройство кодирования видео, причем для определения прогностического блока устройство кодирования видео выполнено с возможностью формирования прогностического блока, и при этом для прогнозирования части компоненты текущего вида устройство кодирования видео выполнено с возможностью кодирования части компоненты текущего вида на основании отрегулированных значений прогностического блока.
15. Устройство по п. 13, в котором устройство кодирования видео дополнительно выполнено с возможностью указания в заголовке серии последовательных макроблоков прогностического блока, что регулирование блока прогнозирования на основании диапазона глубины разрешено для кодирования одного или более блоков серии последовательных макроблоков, включенных в компоненту текущего вида.
16. Устройство по п. 13, в котором устройство кодирования видео дополнительно выполнено с возможностью указания в заголовке серии последовательных макроблоков для части компоненты опорного вида, что значения прогностического блока, определенные из компонент опорного вида, отрегулированы.
17. Устройство по п. 13, в котором для регулирования значений прогностического блока на основании различия между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины видеокодер выполнен с возможностью применения функции регулирования значений пикселей к значениям прогностического блока.
18. Устройство по п. 13, в котором для регулирования значений прогностического блока видеокодер выполнен с возможностью прибавления смещения к масштабированным значениям глубины.
19. Устройство по п. 18, в котором как масштабирование, так и смещение относятся к первому диапазону глубины и второму диапазону глубины.
20. Устройство по п. 17, в котором видеокодер дополнительно выполнен с возможностью определения функции регулирования значений пикселей на основании поисковой таблицы, содержащей значения для восьмибайтовой карты глубин.
21. Устройство по п. 17, в котором для применения функции регулирования значений пикселей к значениям прогностического блока видеокодер выполнен с возможностью применения функции регулирования значений пикселей к каждому пикселю в прогностическом блоке, причем функция регулирования значений пикселей задана в виде , в которой d представляет значение прогностического блока, ƒ(d) представляет отрегулированное значение прогностического блока,
22. Устройство по п. 13, в котором для регулирования значений прогностического блока на основании различия между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины видеокодер выполнен с возможностью регулирования значений прогностического блока, когда разность между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины превышает пороговый уровень.
23. Устройство по п. 13, в котором видеокодер дополнительно выполнен с возможностью осуществления компенсации движения на компоненте опорного вида и регулирования значений прогностического блока после осуществления компенсации движения компоненты опорного вида.
24. Машиночитаемый носитель данных, на котором хранятся инструкции, которые при выполнении побуждают процессор устройства видеокодирования:
определять первый диапазон воспринимаемой глубины для компоненты первого вида глубины, соответствующей компоненте опорного вида, для опорного вида;
определять второй диапазон воспринимаемой глубины для компоненты второго вида глубины, соответствующей компоненте текущего вида, для текущего вида, причем текущий вид является видом, отличным от опорного вида, и при этом компонента текущего вида прогнозируется относительно компоненты опорного вида;
определять из компоненты опорного вида прогностический блок для части компоненты текущего вида;
регулировать значения прогностического блока на основании различия между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины, причем регулирование значений содержит масштабирование значений глубины прогностического блока; и
прогнозировать часть компоненты текущего вида на основании отрегулированных значений прогностического блока.
25. Машиночитаемый носитель по п. 24,
в котором определение прогностического блока содержит формирование прогностического блока и
в котором обработка части компоненты текущего вида содержит кодирование части компоненты текущего вида на основании отрегулированных значений прогностического блока.
26. Машиночитаемый носитель по п. 24, в котором инструкции при выполнении дополнительно побуждают процессор устройства видеокодирования:
указывать в заголовке серии последовательных макроблоков прогностического блока, что регулирование блока прогнозирования на основании диапазона глубины разрешено для кодирования одного или более блоков серии последовательных макроблоков, включенных в компоненту текущего вида.
27. Машиночитаемый носитель по п. 24, в котором регулирование значений прогностического блока на основании различия между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины содержит применение функции регулирования значений пикселей к значениям прогностического блока.
28. Машиночитаемый носитель по п. 24, в котором регулирование значений прогностического блока дополнительно содержит прибавление смещения к масштабированным значениям глубины.
29. Машиночитаемый носитель по п. 28, в котором как масштабирование, так и смещение относятся к первому диапазону глубины и второму диапазону глубины.
30. Машиночитаемый носитель по п. 27, в котором инструкции при выполнении дополнительно побуждают процессор устройства видеокодирования:
определять функцию регулирования значений пикселей на основании поисковой таблицы, содержащей значения для восьмибайтовой карты глубин.
31. Машиночитаемый носитель по п. 24, в котором регулирование значений прогностического блока на основании различия между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины содержит регулирование значений прогностического блока, когда разность между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины превышает пороговый уровень.
32. Устройство для обработки видеоданных, содержащее:
средство для определения первого диапазона воспринимаемой глубины для компоненты первого вида глубины, соответствующей компоненте опорного вида, для опорного вида;
средство для определения второго диапазона воспринимаемой глубины для компоненты второго вида глубины, соответствующей компоненте текущего вида, для текущего вида, причем текущий вид является видом, отличным от опорного вида, и при этом компонента текущего вида прогнозируется относительно компоненты опорного вида;
средство для определения из компоненты опорного вида прогностического блока для части компоненты текущего вида;
средство для регулирования значений прогностического блока на основании различия между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины, причем регулирование значений прогностического блока содержит масштабирование значений глубины прогностического блока; и
средство для прогнозирования части компоненты текущего вида на основании отрегулированных значений прогностического блока.
33. Устройство по п. 32,
в котором определение прогностического блока содержит формирование прогностического блока, и
обработка части компоненты текущего вида содержит кодирование части компоненты текущего вида на основании отрегулированных значений прогностического блока.
34. Устройство по п. 32, дополнительно содержащее:
средство для указания в заголовке серии последовательных макроблоков прогностического блока, что регулирование блока прогнозирования на основании диапазона глубины разрешено для кодирования одного или более блоков серии последовательных макроблоков, включенных в компоненту текущего вида.
35. Устройство по п. 32, в котором регулирование значений прогностического блока на основании различия между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины дополнительно содержит применение функции регулирования значений пикселей к значениям прогностического блока.
36. Устройство по п. 32, в котором регулирование значений прогностического блока дополнительно содержит прибавление смещения к масштабированным значениям глубины.
37. Устройство по п. 36, в котором как масштабирование, так и смещение относятся к первому диапазону глубины и второму диапазону глубины.
38. Устройство по п. 35, дополнительно содержащее:
средство для определения функции регулирования значений пикселей на основании поисковой таблицы, содержащей значения для восьмибайтовой карты глубин.
39. Устройство по п. 35, в котором:
применение функции регулирования значений пикселей к значениям прогностического блока дополнительно содержит применение функции регулирования значений пикселей к каждому пикселю в прогностическом блоке, причем функция регулирования значений пикселей задана в виде , в которой d представляет значение прогностического блока, ƒ(d) представляет отрегулированное значение прогностического блока,
40. Устройство по п. 32, в котором регулирование значений прогностического блока на основании различия между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины содержит регулирование значений прогностического блока, когда разность между первым диапазоном воспринимаемой глубины и вторым диапазоном воспринимаемой глубины превышает пороговый уровень.
US 6055274 A, 25.04.2000 | |||
Приспособление для суммирования отрезков прямых линий | 1923 |
|
SU2010A1 |
WO 00/77734 A2, 21.12.2000 | |||
Колосоуборка | 1923 |
|
SU2009A1 |
Способ приготовления лака | 1924 |
|
SU2011A1 |
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
СИСТЕМА И СПОСОБ ФОРМИРОВАНИЯ И ВОСПРОИЗВЕДЕНИЯ ТРЕХМЕРНОГО ВИДЕОИЗОБРАЖЕНИЯ | 2009 |
|
RU2421933C2 |
Авторы
Даты
2015-12-20—Публикация
2012-07-12—Подача