RU2586017C2 - Способ и устройство для кодирования/декодирования изображений с использованием вектора движения - Google Patents

Способ и устройство для кодирования/декодирования изображений с использованием вектора движения Download PDF

Info

Publication number
RU2586017C2
RU2586017C2 RU2013140464/08A RU2013140464A RU2586017C2 RU 2586017 C2 RU2586017 C2 RU 2586017C2 RU 2013140464/08 A RU2013140464/08 A RU 2013140464/08A RU 2013140464 A RU2013140464 A RU 2013140464A RU 2586017 C2 RU2586017 C2 RU 2586017C2
Authority
RU
Russia
Prior art keywords
motion vector
motion
block
reference picture
vector
Prior art date
Application number
RU2013140464/08A
Other languages
English (en)
Other versions
RU2013140464A (ru
Inventor
Сунг Чанг ЛИМ
Хой Йонг КИМ
Се Йоон ДЗЕОНГ
Сук Хи ЧО
Донг Сан ДЗУН
Дзонг Хо КИМ
Ха Хиун ЛИ
Дзин Хо ЛИ
Дзин Соо ЧОИ
Дзин Воонг КИМ
Original Assignee
Электроникс Энд Телекоммьюникейшнз Рисерч Инститьют
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=46873758&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=RU2586017(C2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from KR1020110065707A external-priority patent/KR20120088494A/ko
Application filed by Электроникс Энд Телекоммьюникейшнз Рисерч Инститьют filed Critical Электроникс Энд Телекоммьюникейшнз Рисерч Инститьют
Priority claimed from KR1020120010096A external-priority patent/KR101428030B1/ko
Publication of RU2013140464A publication Critical patent/RU2013140464A/ru
Application granted granted Critical
Publication of RU2586017C2 publication Critical patent/RU2586017C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Изобретение относится к технологиям кодирования/декодирования изображения с использованием вектора движения. Техническим результатом является уменьшение объема памяти, требуемого для хранения векторов движения, за счет усечения вектора движения. Предложено устройство декодирования изображения. Устройство содержит буфер опорной картинки для хранения опорной картинки. Устройство содержит блок компенсации движения для генерирования блока предсказания с использованием опорной картинки и вектора движения опорной картинки. При этом вектор движения опорной картинки усекается в предварительно определенном фиксированном диапазоне. Устройство декодирования изображения декодирует битовый поток в режиме внутреннего предсказания или в режиме внешнего предсказания для вывода реконструированного изображения. 4 з.п. ф-лы, 15 ил., 18 табл.

Description

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к обработке изображения, и более конкретно, к способу кодирования/декодирования видео с использованием усеченного вектора движения и устройству для этого.
УРОВЕНЬ ТЕХНИКИ
В последнее время в соответствии с распространением систем вещания, поддерживающих разрешение высокой четкости (HD) в стране и во всем мире, многие пользователи привыкли к изображению c высоким разрешением и четкостью, так что многие организации провели много попыток для разработки видеоустройств следующего поколения. К тому же, так как интерес к HDTV и сверхвысокому разрешению (UHD), имеющему разрешение в четыре раза выше, чем разрешение HDTV, увеличился, потребовалась технология сжатия для видео с более высоким разрешением и более высокой четкостью.
Для сжатия изображения могут быть использованы технология внешнего предсказания для предсказания значений пикселей, включенных в текущую картинку из картинки до и/или после текущей картинки, технология внутреннего предсказания для предсказания значений пикселей с использованием информации пикселей в данной картинке, технология энтропийного кодирования для присвоения сокращенного кода символу, имеющему высокую частоту появления, длинного кода символу, имеющему низкую частоту появления, или подобные.
РАСКРЫТИЕ
ТЕХНИЧЕСКАЯ ПРОБЛЕМА
Настоящее изобретение предоставляет способ кодирования/декодирования видео с использованием усеченного вектора движения и устройство для него.
Настоящее изобретение также предоставляет способ для усечения вектора движения опорной картинки.
Настоящее изобретение также предоставляет способ для передачи информации о векторе движения.
ТЕХНИЧЕСКОЕ РЕШЕНИЕ
1. Вариант осуществления настоящего изобретения относится к способу кодирования изображения. Способ включает в себя усечение вектора движения опорной картинки в предварительно определенном динамическом диапазоне, чтобы сгенерировать усеченный вектор движения, сохранение усеченного вектора движения в буфере и кодирование вектора движения древовидного блока кодирования с использованием вектора движения, сохраненного в буфере.
2. В п.1, динамический диапазон может быть задан уровнем видеокодека.
3. В п.1, динамический диапазон может быть определен посредством предварительно определенной глубины в битах, и глубина в битах может быть задана уровнем видеокодека.
4. В п.1, X-составляющая и Y-составляющая вектора движения опорной картинки могут быть усечены в разных динамических диапазонах.
5. Еще один вариант осуществления настоящего изобретения относится к способу декодирования изображения. Способ включает в себя усечение вектора движения опорной картинки в предварительно определенном динамическом диапазоне, чтобы сгенерировать усеченный вектор движения, сохранение усеченного вектора движения в буфере, получение вектора движения древовидного блока кодирования с использованием вектора движения, сохраненного в буфере и выполнение процесса декодирования с внешним предсказанием с использованием вектора движения древовидного блока кодирования.
6. В п.5, динамический диапазон может быть задан уровнем видеокодека.
7. В п.5, динамический диапазон может быть определен посредством предварительно определенной глубины в битах, и глубина в битах может быть задана уровнем видеокодека.
8. В п.5, динамический диапазон может быть определен посредством предварительно определенной глубины в битах, и глубина в битах может быть получена посредством набора параметров последовательности, передаваемого из устройства кодирования изображения.
9. В п.8, набор параметров последовательности может включать в себя флаг, указывающий является ли вектор движения опорной картинки усеченным, и параметр для получения глубины в битах.
10. В п.9, способ декодирования изображения может включать в себя сжатие вектора движения опорной картинки, в котором набор параметров последовательности включает в себя флаг, указывающий является ли вектор движения опорной картинки сжатым, и параметр для получения коэффициента сжатия вектора движения опорной картинки.
11. В п.5, способ декодирования изображения может включать в себя ограничение разрешения представления вектора движения опорной картинки.
12. В п.5, усеченный вектор движения может быть сохранен согласно приоритету.
13. В п.5, усеченный вектор движения может быть вектором движения блока, кодированного в режиме внешнего предсказания.
14. В п.5, способ декодирования изображения может включать в себя выполнение масштабирования вектора движения опорной картинки.
15. В п.5, X-составляющая и Y-составляющая вектора движения опорной картинки могут быть усечены в разных динамических диапазонах.
16. В п.15, динамический диапазон X-составляющей и динамический диапазон Y-составляющей могут быть заданы уровнем видеокодека.
17. Еще один вариант осуществления настоящего изобретения относится к устройству декодирования изображения. Устройство включает в себя буфер опорной картинки, хранящий опорную картинку, и компенсатор движения, генерирующий предсказанный блок с использованием опорной картинки и вектора движения опорной картинки, при этом вектор движения опорной картинки усекается в предварительно определенном динамическом диапазоне.
18. В п.17, динамический диапазон может быть задан уровнем видеокодека.
19. В п.17, динамический диапазон может быть определен посредством предварительно определенной глубины в битах, и глубина в битах может быть задана уровнем видеокодека.
20. В п.17, динамический диапазон может быть определен посредством предварительно определенной глубины в битах, и глубина в битах может быть получена посредством набора параметров последовательности, передаваемого из устройства кодирования изображения.
ПОЛЕЗНЫЕ РЕЗУЛЬТАТЫ
Согласно примерному варианту осуществления настоящего изобретения видео может быть кодировано с использованием усеченного вектора движения.
Согласно примерному варианту осуществления настоящего изобретения размер памяти, требуемой для хранения векторов движения, может быть уменьшен.
Согласно примерному варианту осуществления настоящего изобретения полоса пропускания для доступа к памяти, требуемая для извлечения данных из памяти, может быть уменьшена.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 является блок-схемой, показывающей пример структуры кодера согласно примерному варианту осуществления настоящего изобретения.
Фиг.2 является блок-схемой, показывающей пример структуры декодера согласно примерному варианту осуществления настоящего изобретения.
Фиг.3 показывает примеры картинки объектов кодирования/декодирования и опорной картинки.
Фиг.4 показывает пример ограничения динамического диапазона вектора движения.
Фиг.5-8 являются схемами последовательностей операций, показывающими способ сохранения вектора движения опорной картинки.
Фиг.9 показывает пример квантования вектора движения.
Фиг.10-13 показывают примеры извлечения информации движения из опорной картинки.
Фиг.14 является схемой последовательности операций, показывающей способ кодирования изображения согласно примерному варианту осуществления настоящего изобретения.
Фиг.15 является схемой последовательности операций, показывающей способ декодирования изображения согласно примерному варианту осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В дальнейшем, примерные варианты осуществления настоящего изобретения будут описаны подробно со ссылкой на прилагаемые чертежи. Однако, при описании примерных вариантов осуществления настоящего изобретения хорошо известные функции или конструкции не будут описаны подробно, так как они могут сделать понимание настоящего изобретения затруднительным.
Следует понимать, что когда какой-либо элемент называется являющимся "соединенным с" или "связанным с" другим элементом, он может быть соединен напрямую или связан напрямую с другим элементом или быть соединен или связан с другим элементом, так что другой элемент находится между ними. К тому же, в настоящем описании в случае, когда описывается как "включающий в себя" конкретный компонент, следует понимать, что помимо соответствующего компонента, не исключены другие компоненты, и они могут быть включены в примерные варианты осуществления или технический объем настоящего изобретения.
Термины, используемые в данном описании, "первый", "второй" и т.д., могут быть использованы для описания различных компонентов, но эти компоненты не должны толковаться как ограниченные данными терминами. То есть, данные термины используются для отличия одного компонента от другого компонента. Например, "первый" компонент может быть назван "вторым" компонентом, или наоборот, без отступления от объема настоящего изобретения.
К тому же, компоненты, описанные в примерных вариантах осуществления настоящего изобретения, показаны раздельно только для того, чтобы указать, что они выполняют разные характерные функции. Вследствие этого, компоненты, которые показаны раздельно, не означают, что каждый из компонентов не может быть реализован как одно аппаратное средство или программное средство. То есть, каждый из компонентов разделен для удобства разъяснения, множество компонентов могут быть объединены друг с другом, чтобы тем самым работать как один компонент, или один компонент может быть разделен на множество компонентов, чтобы тем самым работать как множество компонентов, которые включены в объем настоящего изобретения, пока он отступает от существенных характеристик настоящего изобретения.
К тому же, некоторые из компонентов могут не быть необходимыми компонентами, выполняющими ключевые функции настоящего изобретения, но могут быть выборочными компонентами, улучшающими только его эффективность. Настоящее изобретение может также быть реализовано только посредством структуры, включающей в себя необходимые компоненты, за исключением выборочных компонентов, и структура, включающая в себя только необходимые компоненты, также включена в объем настоящего изобретения.
Фиг.1 является блок-схемой, показывающей пример структуры кодера согласно примерному варианту осуществления настоящего изобретения.
Ссылаясь на фиг.1, кодер 100 включает в себя модуль 111 предсказания движения, компенсатор 112 движения, модуль 120 внутреннего предсказания, переключатель 115, модуль 125 вычитания, преобразователь 130, модуль 140 квантования, энтропийный кодер 150, модуль 160 деквантования, обратный преобразователь 170, сумматор 175, фильтрующий модуль 180 и буфер 190 опорной картинки.
Кодер 100 кодирует входные изображения в режиме внутреннего предсказания или режиме внешнего предсказания для вывода кодером битового потока. Внутреннее предсказание означает предсказание внутри картинки, и внешнее предсказание означает предсказание между картинками. Кодер 100 переключается между режимом внутреннего предсказания и режимом внешнего предсказания посредством переключения переключателя 115. Кодер 100 генерирует предсказанный блок для входного блока входного изображения и затем кодирует остаток между входным блоком и предсказанным блоком.
В случае режима внутреннего предсказания модуль 120 внутреннего предсказания выполняет пространственное предсказание с использованием значений пикселей соседних блоков, которые уже кодированы, чтобы сгенерировать предсказанные блоки.
В случае режима внешнего предсказания модуль 111 предсказания движения осуществляет поиск опорного блока, оптимально совпадающего с входным блоком, в опорной картинке, хранящейся в буфере 190 опорной картинки, во время процесса предсказания движения, чтобы получить вектор движения. Компенсатор 112 движения выполняет компенсацию движения с использованием вектора движения, чтобы сгенерировать предсказанный блок. Здесь, вектор движения может быть двухмерным вектором, используемым для внешнего предсказания, и представлять смещение между текущим древовидным блоком кодирования и опорным блоком.
Модуль 125 вычитания генерирует остаточный блок на основе остатка между входным блоком и предсказанным блоком, и преобразователь 130 преобразует остаточный блок для вывода коэффициента преобразования. Модуль 140 квантования квантует коэффициент преобразования для вывода квантованного коэффициента.
Энтропийный кодер 150 выполняет энтропийное кодирование на основе информации, полученной во время процесса кодирования/квантования для вывода битового потока. Энтропийное кодирование представляет часто генерируемые символы как небольшое число битов, тем самым уменьшая размер битового потока для символа кодирования. Вследствие этого, можно ожидать улучшения эффективности сжатия видео посредством энтропийного кодирования. Энтропийный кодер 150 для энтропийного кодирования может использовать способ кодирования, такой как экспоненциальный код Голомба, контекстно-адаптированное кодирование с переменной длиной кодового слова (CAVLC), контекстно-адаптированное двоичное арифметическое кодирование (CABAC), или подобный.
Кодированная картинка должна быть снова декодирована и сохранена, чтобы быть использованной в качестве опорной картинки для выполнения кодирования с внешним предсказанием. Вследствие этого, модуль 160 деквантования деквантует квантованный коэффициент, и обратный преобразователь 170 осуществляет обратное преобразование деквантованного коэффициента для вывода реконструированного остаточного блока. Сумматор 175 добавляет (суммирует с) реконструированный остаточный блок к предсказанному блоку, чтобы сгенерировать реконструированный блок.
Фильтрующий модуль 180 также называется адаптивным контурным фильтром и применяет к реконструированному блоку по меньшей мере одно из фильтрации блочности, адаптивной компенсации смещения выборок (SAO), адаптивной контурной фильтрации (ALF). Фильтрация блочности означает, что удаляется блочность изображения, возникающая на границе между блоками, и компенсация SAO означает, что соответствующее смещение добавляется к значению пикселя, для того, чтобы компенсировать ошибку кодирования. К тому же, ALF означает, что фильтрация выполняется на основе сравнения значения между реконструированным изображением и первоначальным изображением.
При этом, буфер 190 опорной картинки хранит реконструированный блок, пропущенный через фильтрующий модуль 180.
Фиг.2 является блок-схемой, показывающей пример структуры декодера согласно примерному варианту осуществления настоящего изобретения.
Ссылаясь на Фиг.2, декодер включает в себя энтропийный декодер 210, модуль 220 деквантования, обратный преобразователь 230, модуль 240 внутреннего предсказания, компенсатор 250 движения, сумматор 255, фильтрующий модуль 260 и буфер 270 опорной картинки.
Декодер 200 декодирует битовый поток в режиме внутреннего предсказания или режиме внешнего предсказания для вывода реконструированного изображения. Декодер 200 переключается между режимом внутреннего предсказания и режимом внешнего предсказания посредством переключения переключателя. Декодер 200 получает остаточный блок из битового потока, чтобы сгенерировать предсказанный блок, и затем добавляет остаточный блок и предсказанный блок друг к другу, чтобы сгенерировать реконструированный блок.
Энтропийный декодер 210 выполняет энтропийное декодирование на основе распределения вероятностей. Процесс энтропийного декодирования является процессом, противоположным вышеупомянутому процессу энтропийного кодирования. То есть энтропийный декодер 210 генерирует символ, включающий в себя квантованный коэффициент из битового потока, в котором часто генерируемый символ представлен как небольшое число битов.
Модуль 220 деквантования деквантует квантованный коэффициент, и обратный преобразователь 230 осуществляет обратное преобразование деквантованного коэффициента, чтобы сгенерировать остаточный блок.
В случае режима внутреннего предсказания модуль 240 внутреннего предсказания выполняет пространственное предсказание с использованием значений пикселей соседних блоков, которые уже кодированы, чтобы сгенерировать предсказанные блоки.
В случае режима внешнего предсказания компенсатор 250 движения выполняет компенсацию движения с использованием вектора движения и опорной картинки, хранящейся в буфере 270 опорной картинки, чтобы сгенерировать предсказанный блок.
Сумматор 255 добавляет (суммирует с) предсказанный блок к остаточному блоку, и фильтрующий модуль 260 применяет по меньшей мере одно из фильтрации блочности, компенсации SAO, ALF, к блоку, пропущенному через сумматор, для вывода реконструированного изображения.
Реконструированное изображение может быть сохранено в буфере 270 опорной картинки, чтобы тем самым быть использованным для компенсации движения.
В дальнейшем, блок означает единицу кодирования/декодирования. В процессе кодирования/декодирования изображение разделяется на предварительно определенный размер и затем кодируется/декодируется. Вследствие этого, блок может также быть назван единицей кодирования (CU), единицей предсказания (PU), единицей преобразования (TU) или подобным, и одиночный блок может также быть разделен на подблоки, имеющие меньший размер.
Здесь, единица предсказания означает базовую единицу, в которой выполняется предсказание и/или компенсация движения. Единица предсказания может быть разделена на множество сегментов, и каждый из сегментов может быть также назван сегментом единицы предсказания. Когда единица предсказания разделена на множество сегментов, каждый из сегментов единицы предсказания может стать базовой единицей, в которой выполняются предсказание и/или компенсация движения. В дальнейшем, в примерном варианте осуществления настоящего изобретения, единица предсказания может также означать сегменты единицы предсказания.
При этом, в кодировании видео высокой эффективности (HEVC) используется способ предсказания вектора движения, основанный на усовершенствованном предсказании вектора движения (AMVP).
В способе предсказания вектора движения, основанном на усовершенствованном предсказании вектора движения, может быть использован вектор движения (MV) блока, существующего в положении, которое является таким же или соответствует положению древовидного блока кодирования, в опорной картинке, так же как и векторы движения реконструированных блоков, расположенных вокруг древовидного блока кодирования. Здесь, блок, существующий в положении, которое является таким же или пространственно соответствует положению древовидного блока кодирования, в опорной картинке называется совмещенным блоком, и вектор движения совмещенного блока называется совмещенным вектором движения или временным вектором движения. Однако, совмещенный блок может быть блоком, существующим в положении, аналогичном (то есть, соответствующим) положению древовидного блока кодирования, в опорной картинке, так же как и блоком, существующим в том же положении, что и положение древовидного блока кодирования.
В способе слияния информации движения информация движения оценивается исходя из совмещенного блока, так же как и реконструированных блоков, расположенных вокруг древовидного блока кодирования, чтобы тем самым быть использованной в качестве информации движения древовидного блока кодирования. Здесь, информация движения включает в себя по меньшей мере одно из информации режима внешнего предсказания, указывающей индекс опорной картинки, вектор движения, однонаправленный, двунаправленный или подобное, требуемой в момент внешнего предсказания, списка опорных картинок и информации режима предсказания о том, выполняется ли кодирование в режиме внутреннего предсказания или в режиме внешнего предсказания.
Предсказанный вектор движения в древовидном блоке кодирования может быть вектором движения совмещенного блока, который является блоком, временно смежным с древовидным блоком кодирования, так же как векторы движения соседних блоков, пространственно смежных с древовидным блоком кодирования.
Фиг.3 показывает примеры картинки объектов кодирования/декодирования и опорной картинки.
На фиг.3, блок X указывает древовидный блок кодирования в картинке 310 объектов кодирования/декодирования, и блок A, блок B, блок C, блок D и блок E указывают реконструированные блоки, расположенные вокруг древовидного блока кодирования. К тому же, блок T в опорной картинке 320 указывает совмещенный блок, существующий в положении, соответствующем положению древовидного блока кодирования.
Какой вектор движения в древовидном блоке кодирования используется в качестве предсказанного вектора движения может быть распознано посредством индекса блока предсказания вектора движения.
Figure 00000001
Как показано в таблице 1, индексы модуля предсказания вектора движения mvp_idx_10 и mvp_idx_11 для каждого списка опорных картинок передаются декодеру, и декодер использует такой же вектор движения как вектор движения, предсказанный кодером, в качестве предсказанного вектора движения.
В случае, в котором древовидный блок кодирования кодируется/декодируется с использованием векторов движения соседних блоков, пространственно смежных с древовидным блоком кодирования, вектор движения может храниться только с помощью памяти, имеющей относительно небольшой размер. Однако, в случае, в котором используется временный вектор движения, так как все векторы движения опорной картинки должны храниться в памяти, требуется память, имеющая относительно большой размер, и размер полосы пропускания для доступа к памяти, требуемой для извлечения данных из памяти, также увеличивается. Вследствие этого, нужно более эффективно хранить временный вектор движения в прикладном окружении, в котором пространство памяти портативного терминала, или подобного, является недостаточным или потребление электроэнергии минимизировано.
При этом в качестве технологии сохранения вектора движения в памяти, существует способ уменьшения пространственного разрешения вектора движения. В этом способе вектор движения сжимается с любым коэффициентом и затем сохраняется в памяти. Например, вектор движения, сохраненный в единице блока 4×4, сохранен в 4×4 или большей единице блока для уменьшения числа сохраненных векторов движения. Здесь, для того, чтобы регулировать размер блока сохраненного вектора движения передается информация о коэффициенте сжатия. Информация передается посредством набора параметров последовательности (SPS), как показано в таблице 2.
Figure 00000002
Ссылаясь на таблицу 2, в случае, в котором motion_vector_buffer_comp_flag равен 1, выполняется процесс сжатия буфера вектора движения.
motion_vector_buffer_comp_ratio_log2 указывает коэффициент сжатия процесса сжатия буфера вектора движения. В случае, в котором motion_vector_buffer_comp_ratio_log2 не существует, motion_vector_buffer_comp_ratio_log2 расценивается как 0, и коэффициент сжатия буфера вектора движения представляется уравнением 1.
[Уравнение 1]
MVBufferCompRatio=1<<motion_vector_buffer_comp_ratio_log2
Например, в случае, в котором все блоки 4×4 картинок 1920×1080 имеют разные вектора движения и используют два списка опорных картинок, причем каждый использует две опорные картинки, для хранения временного вектора движения требуется общее пространство памяти 3,21 Мбайта, как описано ниже.
1. Глубина в битах 26 бит на один вектор движения.
(1) Динамический диапазон X-составляющей вектора движения: от -252 до +7676 (глубина в битах: 13 битов)
(2) Динамический диапазон Y-составляющей вектора движения: от -252 до +4316 (глубина в битах: 13 битов)
(3) (Динамические диапазоны каждой составляющей вектора движения были вычислены на основе первой единицы предсказания в соответствующей картинке.)
2. В случае, в котором все из единиц блока 4×4 имеют разные векторы движения: 480×270 = 129600 блоков
3. Использование двух векторов движения на каждый блок.
4. Число списков опорных картинок: 2
5. Использование двух опорных картинок на каждый список опорных картинок
=> 26 битов × 129600 блоков × два вектора движения × два списка опорных картинок × две опорные картинки = 26956800 битов = 3,21 Мбайта
Согласно способу уменьшения пространственного разрешения вектор движения, как описано выше, возможно уменьшить размер требуемого пространства памяти и полосы пропускания для доступа к памяти с использованием пространственной корреляции вектора движения. Однако, способ уменьшения пространственного разрешения вектора движения не ограничивает динамический диапазон вектора движения.
Когда размер пространства памяти уменьшается на 1/4, размер пространства памяти, требуемого в вышеупомянутом примере, уменьшается до почти 0,8 Мбайта. Здесь, когда только шесть битов глубины в битах, требуемой для хранения вектора движения, используются для каждой составляющей вектора движения посредством дополнительного ограничения динамического диапазона вектора движения, размер требуемого пространства памяти может быть дополнительно уменьшен до 0,37 Мбайта.
Вследствие этого в примерном варианте осуществления настоящего изобретения, динамический диапазон вектора движения ограничивается, для того, чтобы уменьшить размер пространства памяти, требуемого для хранения вектора движения, и полосы пропускания для доступа к памяти, требуемой для извлечения данных из памяти. Вектор движения опорной картинки, динамический диапазон которой ограничен, может быть использован в качестве временного вектора движения в древовидном блоке кодирования.
В дальнейшем, динамический диапазон означает диапазон между минимальным значением и максимальным значением отрицательной составляющей или положительной составляющей вектора движения на основе 0, и глубина в битах, которая указывает размер пространства, требуемого для хранения вектора движения, означает ширину в битах. К тому же, пока не описано конкретно, вектор движения означает вектор движения опорной картинки, то есть, временный вектор движения.
В случае, в котором каждая составляющая вектора движения выходит за динамический диапазон, он представляется минимальным значением или максимальным значением соответствующего динамического диапазона. Например, в случае, в котором X-составляющая вектора движения составляет 312 и максимальное значение динамического диапазона каждой составляющей вектора движения составляет 256, X-составляющая вектора движения ограничивается до 256.
Аналогично, в случае, в котором глубина в битах каждой составляющей вектора движения составляет 16 битов, и вектор движения составляет (-36, 24), когда глубина в битах каждой составляющей вектора движения ограничена до 6 битов, каждая составляющая вектора движения имеет динамический диапазон от -32 до +31, так что вектор движения представляется посредством (-32, 24), что находится в его динамическом диапазоне.
К тому же, в случае, в котором глубина в битах каждой составляющей вектора движения составляет 16 битов, и вектор движения составляет (-49, 142), когда глубина в битах каждой составляющей вектора движения ограничена до 9 битов, каждая составляющая вектора движения имеет динамический диапазон от -256 до +255, так что вектор движения представляется посредством (-49, 142) без изменения
Фиг.4 показывает пример ограничения динамического диапазона вектора движения.
Ссылаясь на фиг.4, когда динамический диапазон вектора движения, имеющего динамический диапазон от -4096 до +4095, ограничивается от -128 до +127, глубина в битах может быть уменьшена с 13 битов до 8 битов.
Каждая составляющая временного вектора движения усекается как представлено уравнениями 2 и 3, чтобы быть сохраненной при глубине в битах из N бита(ов). Где N является положительным целым числом.
[Уравнение 2]
clippedMV_X = min(1<<(N-1)-1, max(-1<<(N-1), MV_X))
[Уравнение 3]
clippedMV_Y = min(1<<(N-1)-1, max(-1<<(N-1), MV_Y))
где MV_X указывает X-составляющую вектора движения, MV_Y указывает Y-составляющую вектора движения, min(a,b) означает операцию вывода меньшего значения в a и b, и max(a,b) означает операцию вывода большего значения в a и b. Каждый из clippedMV_X и clippedMV_Y указывает X- и Y-составляющие усеченного временного вектора движения, и хранится в памяти, чтобы тем самым быть использованным в качестве временного вектора движения древовидного блока кодирования.
Например, как показано в таблице 3, в случае, в котором размер пространства памяти составляет 48 байт, и каждая составляющая вектора движения использует глубину в битах из 16 битов, могут быть сохранены всего двенадцать векторов движения.
Таблица 3
MV1-X MV1-Y MV2-X MV2-Y MV3-X MV3-Y MV4-X MV4-Y
MV5-X MV5-Y MV6-X MV6-Y MV7-X MV7-Y MV8-X MV8-Y
MV9-X MV9-Y MV10-X MV10-Y MV11-X MV11-Y MV12-X MV12-Y
Однако, когда каждая составляющая вектора движения использует только глубину в битах из 8 битов, могут быть сохранены всего двадцать четыре вектора движения, как показано в таблице 4.
Таблица 4
MV1-X MV1-Y MV2-X MV2-Y MV3-X MV3-Y MV4-X MV4-Y
MV5-X MV5-Y MV6-X MV6-Y MV7-X MV7-Y MV8-X MV8-Y
MV9-X MV9-Y MV10-X MV10-Y MV11-X MV11-Y MV12-X MV12-Y
MV13-X MV13-Y MV14-X MV14-Y MV15-X MV15-Y MV16-X MV16-Y
MV17-X MV17-Y MV18-X MV18-Y MV19-X MV19-Y MV20-X MV20-Y
MV21-X MV21-Y MV22-X MV22-Y MV23-X MV23-Y MV24-X MV24-Y
Вследствие этого, согласно примерному варианту осуществления настоящего изобретения, когда изображение, реконструированное в кодере и/или декодере, подвергается обработке контурным фильтром, таким как фильтр блочности, адаптивный контурный фильтр, или подобным, и затем сохраняется в буфере декодированной картинки (DPB), динамический диапазон вектора движения ограничивается, так чтобы вектор движения опорной картинки был сохранен. Буфер декодированной картинки означает буфер опорной картинки согласно фиг.1 или Фиг.2.
I. Процесс усечения вектора движения
Процесс усечения каждой составляющей вектора движения задействуется в случае, в котором slice_type не равен 1. Процесс усечения вектора движения выполняется в древовидном блоке или наибольшей единице кодирования после завершения процесса фильтрации. Входными данными в процессе усечения вектора движения являются местоположение (xP, yP), задающее верхнюю левую выборку единицы предсказания относительно верхней левой выборки текущей картинки, и матрицы векторов движения MvL0 и MvL1. Выходными данными в данном процессе являются матрицы усеченных векторов движения CMvL0 и CMvL1.
По отношению к матрицам MvL0, MvLl, CMvL0 и CMvL1 выполняются операции уравнений с 4 по 7.
[Уравнение 4]
mvLX = MvLX[xP, yP]
[Уравнение 5]
cmvLX[0]=Clip(-1<<(TMVBitWidth -1),1<<(TMVBitWidth -1)-1, mvLX[0]
[Уравнение 6]
cmvLX[1] = Clip3(-1<<(TMVBitWidth -1), 1<<(TMVBitWidth -1)-1, mvLX[1]
[Уравнение 7]
CMvLX [xP, yP] = cmvLX
где TMVBitWidth указывает глубину в битах вектора движения, Clip3(a, b, c) означает функцию усечения c, так чтобы существовать в диапазоне между a и b.
II. Процесс сохранения вектора движения
Фиг.5-8 являются схемами последовательностей операций, показывающими способ сохранения вектора движения опорной картинки.
Ссылаясь на фиг.5, вектор движения опорной картинки может быть сохранен с использованием как буфера изображения, хранящего реконструированное изображение, так и буфера вектора движения, хранящего вектор движения. Здесь, реконструированное изображение подвергается обработке контурным фильтром (S510), и вектор движения подвергается процессу ограничения динамического диапазона (S520) и затем сохраняется (S540).
К тому же, ссылаясь на фиг.6, используются и буфер изображения, и буфер вектора движения, вектор движения подвергается процессу ограничения динамического диапазона (S620) и процессу уменьшения пространственного разрешения (S630) и затем сохраняется (S640).
К тому же, ссылаясь на фиг.7, реконструированное изображение подвергается обработке контурным фильтром (S710) и затем сохраняется в буфере изображения (S740), и вектор движения подвергается процессу ограничения динамического диапазона (S720) и затем сохраняется в буфере вектора движения (S540).
К тому же, ссылаясь на фиг.8, реконструированное изображение подвергается обработке контурным фильтром (S810) и затем сохраняется в буфере изображения (S840), и вектор движения подвергается процессу ограничения динамического диапазона (S820) и процессу уменьшения пространственного разрешения (S830) и затем сохраняется (S850).
При этом в примерных вариантах осуществления согласно фиг.6 и 8, последовательность из процесса ограничения динамического диапазона S620 или S820 и процесса уменьшения пространственного разрешения S630 и S830 не ограничивается, и может быть изменена.
К тому же, для того, чтобы дополнительно уменьшить полосу пропускания для доступа к памяти, динамические диапазоны каждой составляющей вектора движения могут быть ограничены по-разному. Например, только один из динамического диапазона X-составляющей и динамического диапазона Y-составляющей может быть ограничен, или динамический диапазон Y-составляющей может быть дополнительно ограничен по сравнению с динамическим диапазоном X-составляющей.
Ограниченный динамический диапазон вектора движения передается посредством набора параметров последовательности, набора параметров картинки (PPS), заголовка слайса (среза) и тому подобного, и декодер аналогично выполняет ограничение динамического диапазона временного вектора движения в последовательности, картинке или слайсе. В этом случае может также быть передана глубина в битах, которая является размером пространства памяти, требуемого для хранения вектора движения, представленного в динамическом диапазоне. К тому же, возможно эффективно хранить временный вектор движения, с тем чтобы совпадал с характеристиками движения изображения, с использованием динамического диапазона, передаваемого посредством набора параметров последовательности, набора параметров картинки, заголовка слайса или подобного, вместо хранения вектора движения с использованием глубины в битах, имеющей фиксированный размер.
При этом вектор движения может быть квантован и сохранен. В случае, в котором вектор движения квантован и сохранен, уменьшается точность вектора движения. В качестве способа квантования существуют равномерное квантование, при котором размеры шага являются равномерными, неравномерное квантование, при котором размеры шага не являются равномерными, и подобные. Размер шага при квантовании задается в фиксированное значение, предварительно заданное между кодером или декодером, или передается из кодера в декодер посредством набора параметров последовательности, набора параметров картинки, заголовка слайса или подобного. Декодер использует квантованный вектор движения как он есть или деквантует и использует квантованный вектор движения. Фиг.9 показывает пример квантования вектора движения. Ссылаясь на Фиг.9, в случае, в котором вектор движения имеет значение составляющей от 32 до 48, вектор движения квантуется до 40.
К тому же, вектор движения может быть ограничен в разрешении представления и сохранен. Разрешение представления означает единицу целого пикселя (1 единица пикселя), единицу дробного пикселя (единица 1/2 пикселя, единица 1/4 пикселя или подобное). Например, разрешение вектора движения, обработанного в единице 1/4 пикселя, может быть сохранено как целый пиксель. Разрешение представления вектора движения задается в фиксированное значение, предварительно заданное между кодером или декодером, или передается из кодера в декодер посредством набора параметров последовательности, набора параметров картинки, заголовка слайса или подобного.
К тому же, только по отношению к некоторым векторам движения из числа временных векторов движения, хранящихся в памяти, могут быть выполнены процесс ограничения динамического диапазона, процесс уменьшения пространственного разрешения и процесс квантования вектора движения.
В случае, в котором динамический диапазон вектора движения ограничен и сохранен, информация о динамическом диапазоне вектора движения может быть добавлена и сохранена в памяти. Например, в случае, в котором динамический диапазон вектора движения составляет от -128 до +127, может быть дополнительно сохранен флаг со значением 1, и в случае, в котором динамический диапазон вектора движения составляет от -32 до +31, может быть дополнительно сохранен флаг со значением 0. В этом случае информация флага может быть сохранена вместе с вектором движения или может быть сохранена в памяти, отличной от памяти, в которой хранится вектор движения. В случае, в котором информация флага и вектор движения хранятся в разной памяти, когда распознано в каком динамическом диапазоне хранится конкретный вектор движения, может быть обеспечена возможность доступа к информации флага. К тому же, информация о том, в каком динамическом диапазоне хранятся некоторые векторы движения, передается посредством набора параметров последовательности, набора параметров картинки, заголовка слайса или подобного, тем самым делая возможным обеспечение возможности декодеру выполнить операцию, аналогичную операции кодера.
В случае, в котором пространственное разрешение вектора движения уменьшено и сохранено, информация о размере блока вектора движения может быть добавлена и сохранена в памяти. Например, в случае, в котором размер блока вектора движения составляет 4×4, может быть дополнительно сохранен флаг со значением 1, и в случае, в котором размер блока вектора движения составляет 16×16, может быть дополнительно сохранен флаг со значением 0. В этом случае информация флага может быть сохранена вместе с вектором движения или может быть сохранена в памяти, отличной от памяти, в которой хранится вектор движения. В случае, в котором информация флага и вектор движения хранятся в разной памяти, когда распознано в каком размере блока хранится конкретный вектор движения, может быть обеспечена возможность доступа к информации флага. К тому же, информация о том, в каком размере блока хранятся некоторые векторы движения, передается посредством набора параметров последовательности, набора параметров картинки, заголовка слайса или подобного, тем самым давая возможность декодеру выполнить операцию, аналогичную операции кодера.
В случае, в котором вектор движения квантован и сохранен, информация о точности вектора движения может быть добавлена и сохранена в памяти. Например, в случае, в котором размер шага квантования составляет 4, может быть дополнительно сохранен флаг со значением 1, и в случае, в котором размер шага квантования составляет 1, может быть дополнительно сохранен флаг со значением 0. В этом случае информация флага может быть сохранена вместе с вектором движения или может быть сохранена в памяти, отличной от памяти, в которой хранится вектор движения. В случае, в котором информация флага и вектор движения хранятся в разной памяти, когда распознано с каким размером шага квантован и сохранен конкретный вектор движения, может быть обеспечена возможность доступа к информации флага. К тому же, информация о том, с каким размером шага квантованы и сохранены некоторые векторы движения, передается посредством набора параметров последовательности, набора параметров картинки, заголовка слайса или подобного, тем самым делая возможным обеспечение возможности декодеру выполнить операцию, аналогичную операции кодера.
К тому же, в случае, в котором информация движения хранится в памяти, пространственное разрешение вектора движения может быть уменьшено и сохранено. Здесь, информация движения включает в себя по меньшей мере одно из информации режима внешнего предсказания, указывающей индекс опорной картинки, вектор движения, однонаправленный, двунаправленный или подобное, требуемой в момент внешнего предсказания, списка опорных картинок и информации режима предсказания о том, выполняется ли режим внутреннего предсказания или режим внешнего предсказания.
Например, информация единицы предсказания, имеющей наибольший размер сегмента среди множества информации движения конкретной области, может быть сохранена в памяти как репрезентативная информация движения. Здесь, конкретная область может включать в себя область в древовидном блоке кодирования и области соседних блоков древовидного блока кодирования. К тому же, конкретная область может быть областью, включающей в себя блок, в котором хранится информация движения, в случае, в котором вся картинка, или слайс, разделена на предварительно определенный размер.
Например, после того как информация движения, которая закодирована в способе слияния информации движения, способе пропуска информации кодирования или подобном, исключена из множества информации движения, включенной в конкретную область, репрезентативная информация движения может быть сохранена в памяти.
Например, наиболее часто генерируемая информация движения среди множества информации движения, включенной в конкретную область, может быть сохранена как репрезентативная информация движения в памяти. В этом случае может быть вычислено число генераций информации движения для каждого размера блока или подобное.
Например, информация движения в конкретном положении среди множества информации движения, включенной в конкретную область, может быть сохранена. Здесь, конкретное положение, которое является положением, включенным в конкретную область, может быть фиксированным положением конкретной области. К тому же, конкретное положение может быть выбрано как одно из множества положений. Когда используются множество положений, может быть определен приоритет для каждого из положений, и информация движения может быть сохранена в памяти согласно приоритету.
Например, когда множество информации движения, включенной в конкретную область, хранится в памяти, так как информация движения не существует снаружи границы блока, кодированного в режиме внутреннего предсказания, блока, кодированного в режиме импульсно-кодовой модуляции, слайса или картинки, информация движения соответствующего положения может быть не сохранена в памяти.
В вышеупомянутых примерах, когда информация движения конкретного положения сохранена, в случае, в котором информация движения соответствующего положения не существует, информация положения совмещенного блока, информация положения уже кодированного блока или информация движения соседнего блока может быть использована в качестве информации движения соответствующего положения. Здесь, конкретное положение может быть положением выборки в соседнем блоке или положением данного блока. Например, в случае, в котором информация движения конкретного положения не существует, промежуточное значение или среднее значение среди информации движения соседних блоков, которые кодированы с внешним предсказанием, может быть сохранено в памяти. Например, в случае, в котором информация движения конкретного положения не существует, среднее значение информации движения соседних блоков может быть сохранено в памяти. Когда вычислены промежуточное значение и среднее значение, в случае, в котором информация движения соседних блоков отличается от по меньшей мере одного из индекса опорной картинки, списка опорных картинок и информации режима внешнего предсказания, размер вектора движения может быть отрегулирован согласно индексу опорной картинки, списку опорных картинок, информации режима внешнего предсказания, порядковому номеру картинки и тому подобному.
III. Процесс получения вектора движения
В случае, в котором информация движения сохраняется в памяти с использованием вышеупомянутых способов информации движения, и информация движения опорной картинки используется в способе предсказания вектора движения, способе усовершенствованного предсказания вектора движения или способе слияния информации движения, сохраненная информация может быть извлечена.
Например, может быть извлечена информация движения положения, соответствующего положению древовидного блока кодирования в опорной картинке. В этом случае положение, соответствующее положению древовидного блока кодирования в опорной картинке, может быть фиксированным положением в конкретной области или относительном положении исходя из положения древовидного блока кодирования.
Фиг.10-13 показывают примеры извлечения информации движения из опорной картинки.
На фиг.10-13, блок X указывает древовидный блок кодирования в картинке 1010, 1110, 1210 или 1310 объектов декодирования, и блок A, блок B, блок C, блок D и блок E указывает реконструированные соседние блоки. К тому же, блок T в опорной картинке 1020, 1120, 1220 и 1320 указывает совмещенный блок, соответствующий древовидному блоку кодирования. Блок Y в опорной картинке 1320 согласно фиг.13 указывает блок, соответствующий положению, отличному от блока объектов кодирования/декодирования.
Ссылаясь на фиг.10, может быть извлечена информация движения, соответствующая положению, соответствующему положению верхнего левого пикселя, среди положений древовидного блока X кодирования в опорной картинке.
Ссылаясь на фиг.11, может быть извлечена информация движения, соответствующая положению, соответствующему положению центрального пикселя, среди положений древовидного блока X кодирования в опорной картинке.
Ссылаясь на фиг.12, может быть извлечена информация движения, соответствующая положению, соответствующему положению правого нижнего пикселя, среди положений древовидного блока X кодирования в опорной картинке.
Ссылаясь на фиг.13, может быть извлечена информация движения, соответствующая положению, соответствующему положению пикселя, отличного от древовидного блока X кодирования в опорной картинке.
Способ кодирования/декодирования, такой как предсказание вектора движения, усовершенствованное предсказание вектора движения, слияние информации движения, пропуск слияния информации движения или подобный, может быть выполнен с использованием информации движения, хранящейся в памяти, то есть, информации движения опорной картинки.
Вектор движения может быть сохранен в памяти с использованием по меньшей мере одного из способа ограничения динамического диапазона вектора движения, способа уменьшения пространственного разрешения вектора движения, способа квантования вектора движения и способа уменьшения разрешения представления вектора движения, и сохраненный вектор движения может быть использован для предсказания вектора движения древовидного блока кодирования и слияния их информации движения.
Процесс извлечения вектора движения опорной картинки из памяти называется процессом получения временного вектора движения. В процессе получения временного вектора движения, TMVbitWidth указывает глубину в битах временного вектора движения, хранящегося в памяти.
Входными данными в процессе получения временного вектора движения являются местоположение (xP, yP), задающее верхнюю левую выборку яркости текущей единицы предсказания относительно верхней левой выборки текущей картинки, переменные, задающие ширину и высоту единицы предсказания для яркости, nPSW и nPSH, опорный индекс текущего сегмента единицы предсказания refldxLX (с X, составляющим 0 или 1). Выходными данными в процессе являются предсказание вектора движения mvLXCol и флаг доступности availableFlagLXCol.
Функция RefPicOrderCnt(pic, refidx, LX) задается значением PicOrderCnt картинки, которая является опорной картинкой RefPicListX[refidx] из pic с X, составляющим 0 или 1. PicOrderCnt из опорной картинки должно быть обеспечено пока картинка не отмечена как "несуществующая". Clip3(a, b, c) означает функцию усечения c, так чтобы существовать в диапазоне между a и b.
Если slice_type равен B и collocated_from_10_flag равен 0, переменная colPic определяет картинку, которая содержит совмещенный сегмент, как задано посредством RefPicList1[0]. Иначе (slice_type равен B и collocated_from_10_flag равен 1 или slice_type равен P), переменная colPic определяет_картинку, которая содержит совмещенный сегмент, как задано посредством RefPicList0[0].
Переменная colPu и ее положение (xPCol, yPCol) получают на следующих упорядоченных этапах:
1. Правое нижнее положение яркости (xPRb, yPRb) текущей единицы предсказания задается как представлено уравнениями 8 и 9.
[Уравнение 8]
xPRb = xP + nPSW
[Уравнение 9]
yPRb = yP + nPSH
2. Если colPu кодируется в режиме внутреннего предсказания или colPu недоступна,
(1) Центральное положение яркости текущей единицы предсказания задается как представлено уравнениями 10 и 11.
[Уравнение 10]
xPCtr = (xP + (nPSW >> 1) - 1
[Уравнение 11]
yPCtr = (yP + (nPSH >> 1) - 1
(2) Переменная colPu задается как единица предсказания, покрывающая измененное положение, заданное посредством ((xPCtr>>4) << 4, (yPCtr >> 4) << 4) внутри colPic.
3. (xPCol, yPCol) задается равным верхней левой выборке яркости для colPu относительно верхней левой выборки яркости для colPic.
Переменные mvLXCol и availableFlagLXCol получают как следует ниже.
1. Если colPu кодируется в режиме внутреннего предсказания или colPu недоступна, обе составляющие mvLXCol задаются равными 0, и availableFlagLXCol задается равной 0.
2. Иначе (colPu не кодируется в режиме внутреннего предсказания и colPu доступна), переменные mvCol и refldxCol получают как следует ниже,
(1) Если PredFlagL0[xPCol][yPCol] равна 0, вектор движения mvCol и опорный индекс refldxCol задаются равными MvL1[xPCol][yPCol] и RefldxL1 [xPCol][yPCol], соответственно.
(2) Иначе (PredFlagL0[xPCol][yPCol] равна 1), применяется следующее.
1) Если PredFlagL1[xPCol][yPCol] равна 0, вектор движения mvCol и опорный индекс refldxCol задаются равными MvL0[xPCol][yPCol] и RefldxL0[xPCol][yPCol], соответственно.
2) Иначе (PredFlagL1[xPCol][yPCol] равна 1), применяется следующее.
a. Следующие назначения сделаны с X, составляющим 0 или 1.
i. RefldxColLX = RefIdxLX[xPCol][yPCol]
ii. Если PicOrderCnt(colPic) меньше, чем PicOrderCnt(currPic), и RefPicOrderCnt(colPic, RefldxColLX, LX) больше, чем PicOrderCnt(currPic), или PicOrderCnt(colPic) больше, чем PicOrderCnt(currPic), и RefPicOrderCnt(colPic, RefldxColLX, LX) меньше, чем PicOrderCnt(currPic), переменная MvXCross равна 1.
iii. Иначе (PicOrderCnt(colPic) меньше, чем PicOrderCnt(currPic), и RefPicOrderCnt(colPic, RefldxColLX, LX) меньше, чем PicOrderCnt(currPic) или равна ей, или PicOrderCnt(colPic) больше, чем PicOrderCnt(currPic), и RefPicOrderCnt(colPic, RefldxColLX, LX) больше, чем PicOrderCnt(currPic) или равна ей), переменная MvXCross равна 0.
b. Если одно из следующих условий верно, вектор движения mvCol, опорный индекс refldxCol и ListCol задаются равными MvL1[xPCol][yPCol], RefldxColL1 и L1, соответственно.
i. Mv0Cross равна 0 и Mv1Cross равна 1.
ii. Mv0Cross равна Mvl Cross и список опорных индексов равен L1
c. Иначе, вектор движения mvCol, опорный индекс refldxCol и ListCol задаются равными MvL0[xPCol][yPCol], RefldxColL0 и L0, соответственно.
3) переменная availableFlagLXCol задается равной 1, и применяются операции уравнения 12 и уравнений с 13 по 18.
a. Если PicOrderCnt(colPic) - RefPicOrderCnt(colPic, refldxCol, ListCol) равна PicOrderCnt(currPic) - RefPicOrderCnt(currPic, refldxLX, LX),
[Уравнение 12]
mvLXCol = Clip3(-1<<( TMVBitWidth -1), 1<<( TMVBitWidth -1)-1, mvCol
b. Иначе
[Уравнение 13]
tx = (16384 + Abs(td/2))/td
[Уравнение 14]
DistScaleFactor = Clip3(-1024, 1023, (tb * tx + 32) >> 6
[Уравнение 15]
mvLXCol = Clip3( -1<<(TMVBitWidth -1), 1<<(TMVBitWidth-1)-1, mvCol)
[Уравнение 16]
mvLXCol = ClipMv((DistScaleFactor * mvLXCol + 128) >> 8 где td и tb получают как в уравнениях 17 и 18.
[Уравнение 17]
td=Clip3(-128, 127, PicOrderCnt(colPic) - RefPicOrderCnt(colPic, refldxCol, ListCol))
[Уравнение 18]
tb = C/i>3(-128, 127, PicOrderCnt(currPic) - RefPicOrderCnt(currPic, refldxLX, LX))
То есть ссылаясь на уравнения 13-16, mvLXCol получают как масштабированную версию вектора движения mvCol.
При этом даже если вектор движения усечен в динамическом диапазоне, в случае, в котором усеченный вектор движения масштабирован, усеченный вектор движения может быть снова вне динамического диапазона. Вследствие этого, после получения масштабированного вектора движения, динамический диапазон вектора движения может быть ограничен. В этом случае каждое из уравнений 15 и 16 может быть заменено уравнениями 19 и 20.
[Уравнение 19]
mvLXCol = ClipMvi (DistScaleFactor * mvLXCol + 128) >> 8
[Уравнение 20]
mvLXCol = Clip3( -1<<(TMVBitWidth -1), 1<<(TMVBitWidth -1)-1, mvCol)
IV. Способ передачи информации для усечения временного вектора движения в декодере.
В дальнейшем будет описан способ передачи информации, требуемой для усечения временного вектора движения в декодере, с использованием того же способа, как и способ кодера.
TMVBitWidth в процессе получения временного вектора движения может быть передана из кодера в декодер посредством набора параметров последовательности, набора параметров картинки, заголовка слайса или подобного.
Figure 00000003
bit_width_temporal_motion_vector_minus8 по таблице 5 задает ширину в битах составляющей временного вектора движения. Когда bit_width_temporal_motion_vector_minus8 не присутствует, следует предполагать, что она равна 0. Ширина в битах составляющей временного вектора движения задается как следует ниже:
[Уравнение 21]
TMVBitWidth=bit_width_temporal_motion_vector_minus8 + 8(?)
1. Способ 1 передачи информации - в случае, в котором вектор движения сжат и глубина в битах вектора движения ограничена
Figure 00000004
Ссылаясь на таблицу 6, в случае, в котором motion_vector_buffer_comp_flag равняется 1, применяется процесс сжатия буфера вектора движения.
motion_vector_buffer_comp_ratio_log2 задает коэффициент сжатия в процессе сжатия буфера вектора движения. Когда motion_vector_buffer_comp_ratio_log2 не присутствует, следует предполагать, что он равен 0. Коэффициент сжатия буфера вектора движения задается как следует ниже:
[Уравнение 22]
MVBufferCompRatio=1<< motion_vector_buffer_comp_ratio_log2
Снова ссылаясь на таблицу 6, в случае, в котором bit_depth_temporal_motion_vector_constraint_flag равняется 1, применяется процесс ограничения глубины в битах временного вектора движения.
bit_depth_temporal_motion_vector_minus8 задает глубину в битах временного вектора движения. Когда bit_depth_temporal_motion_vector_minus8 не присутствует, следует предполагать, что она равна 0. Глубина в битах временного вектора движения задается как следует ниже:
[Уравнение 23]
TMVBitDepth = bit_depth_temporal_motion_vector_minus8 + 8
2. Способ 2 передачи информации - в случае, в котором глубина в битах вектора движения ограничена
Figure 00000005
Ссылаясь на таблицу 7, в случае, в котором bit_depth_temporal_motion_vector_constraint_flag равняется 1, применяется процесс ограничения глубины в битах временного вектора движения.
bit_depth_temporal_motion_vector_minus8 задает глубину в битах временного вектора движения. Когда bit_depth_temporal_motion_vector_minus8 не присутствует, следует предполагать, что она равна 0. Глубина в битах временного вектора движения задается как следует ниже:
[Уравнение 24]
TMVBitDepth = bit_depth_temporal_motion_vector_minus8 + 8
3. Способ 3 передачи информации - в случае, в котором глубина в битах вектора движения ограничена
Figure 00000006
bit_depth_temporal_motion_vector_minus8 задает глубину в битах временного вектора движения. Когда bit_depth_temporal_motion_vector_minus8 не присутствует, следует предполагать, что она равна 0. Глубина в битах временного вектора движения задается как следует ниже:
[Уравнение 25]
TMVBitDepth = bit_depth_temporal_motion_vector_minus8 + 8
4. Способ 4 передачи информации - в случае, в котором глубина в битах ограничена по отношению к каждому из X- и Y-составляющих вектора движения
Figure 00000007
Ссылаясь на таблицу 9, в случае, в котором bit_depth_temporal_motion_vector_constraint_flag равняется 1, применяется процесс ограничения глубины в битах временного вектора движения.
bit_depth_temporal_motion_vector_x_minus8 задает глубину в битах составляющей x временного вектора движения. Когда bit_depth_temporal_motion_vector_x_minus8 не присутствует, следует предполагать, что она равна 0. Глубина в битах составляющей x временного вектора движения задается как следует ниже:
[Уравнение 26]
TMVXBitDepth=bit_depth_temporal_motion_vector_x_minus8 + 8
bit_depth_temporal_motion_vector_y_minus8 задает глубину в битах составляющей y временного вектора движения. Когда bit_depth_temporal_motion_vector_y_minus8 не присутствует, следует предполагать, что она равна 0. Глубина в битах составляющей y временного вектора движения задается как следует ниже:
[Уравнение 27]
TMVXBitDepth=bit_depth_temporal_motion_vector_y_minus8 + 8
5. Способ 5 передачи информации - в случае, в котором вектор движения сжат и глубина в битах вектора движения ограничена
Figure 00000008
Ссылаясь на таблицу 10, в случае, в котором motion_vector_buffer_comp_flag равняется 1, применяется процесс сжатия буфера вектора движения.
motion_vector_buffer_comp_ratio_log2 задает коэффициент сжатия в процессе сжатия буфера вектора движения. Когда motion_vector_buffer_comp_ratio_log2 не присутствует, следует предполагать, что она равна 0. Коэффициент сжатия буфера вектора движения задается как следует ниже:
[Уравнение 28]
MVBufferCompRatio=1<< motion_vector_buffer_comp_ratio_log2
V. Задание динамического диапазона посредством уровней видеокодека Динамический диапазон временного вектора движения может быть задан посредством уровня видеокодека, вместо того, чтобы передаваться посредством набора параметров последовательности, набора параметров картинки или заголовка слайса. Кодер и декодер могут определять ограниченный диапазон вектора движения с использованием информации уровня.
К тому же, даже в уровнях, динамические диапазоны и/или глубины в битах каждой из X- и Y-составляющих вектора движения могут быть заданы по-разному, и могут быть заданы минимальные значения и максимальные значения каждой из составляющих.
Таблицы 11 и 12 показывают пример случая, в котором TMVBitWidth в процессе получения временного вектора движения, описанного выше, задается в уровнях.
Таблица 11
Номер уровня MaxTMVBitWidth
(Максимальная ширина в битах составляющей
временного MV)
1 8
1b 8
1,1 8
1,2 8
1,3 8
2 8
2,1 8
2,2 8
3 8
3,1 10
3,2 10
4 10
4,1 10
4,2 10
5 10
5,1 10
Ссылаясь на таблицу 11, TMVBitWidth задается как MaxTMVBitWidth, заданная в уровнях. Здесь, MaxTMVBitWidth указывает максимальную ширину в битах временного вектора движения, когда временный вектор движения хранится в памяти.
При этом TMVBitWidth может также быть задана в уровнях, и отличие от заданного значения (дельта значение) может быть передано посредством набора параметров последовательности, набора параметров картинки или заголовка слайса. То есть TMVBitWidth может быть задана как значение, полученное посредством прибавления отличия, переданного посредством набора параметров последовательности, набора параметров картинки или заголовка, к MaxTMVBitWidth, заданной в уровнях. Здесь, TMVBitWidth указывает ширину в битах временного вектора движения, когда временный вектор движения хранится в памяти.
Таблица 12
Номер уровня MaxTMVBitWidth
(Максимальная глубина в битах составляющей временного MV)
1 8
1b 8
1,1 8
1,2 8
1,3 8
2 8
2,1 8
2,2 8
3 8
3,1 10
3,2 10
4 10
4,1 10
4,2 10
5 10
5,1 10
Figure 00000009
delta_bit_width_temporal_motion_vector_minus8 задает дельта ширину в битах составляющей временного вектора движения. Когда delta_bit_width_temporal_motion_vector_minus8 не присутствует, следует предполагать, что она равна 0. Ширина в битах составляющей временного вектора движения задается как следует ниже:
[Уравнение 29]
TMVBitWidth = delta_bit_width_temporal_motion_vector_minus8 + MaxTMVBitWidth
К тому же, как показано в таблице 14, динамический диапазон каждой составляющей временного вектора движения может также быть задан в уровнях.
Таблица 14
Номер уровня MaxMBPS (Максимальная скорость обработки макроблока) (МБ/с) MaxFS
(Максимальный размер картинки) (МБ)
MaxDpbMbs
(Максимальный размер буфера декодированного изображения) (МБ)
MaxBR (Максимальная битовая скорость видео) (1000 бит/с, 1200 бит/с, cpbBrVclFactor бит/с, или cpbBrNalFactor бит/с) МахСРВ (Максимальный размер СРВ) (1000 битов, 1200 битов, cpbBrVclFactor битов, или cpbBrNalFactor битов) MaxTmvR (Максимальный диапазон составляющей временного MV) (выборки картинки по яркости) MinCR (Минимальный коэффициент сжатия) MaxMvsPer2Mb (Максимальное число векторов движения на два последующих МБ)
1 1485 99 396 64 175 [-64, +63,75] 2 -
1b 1485 99 396 128 350 [-64, +63,75] 2 -
1,1 3000 396 900 192 500 [-128, +127,75] 2 -
1,2 6000 396 2376 384 1000 [-128, +127,75] 2 -
1,3 11880 3% 2376 768 2000 [-128, +127,75] 2 -
2 11880 396 2376 2000 2000 [-128, +127,75] 2 -
2,1 19800 792 4752 4000 4000 [-256, +255,75] 2 -
2,2 20250 1620 8100 4000 4000 [-256, +255,75] 2 -
3 40500 1620 8100 10000 10000 [-256, +255,75] 2 32
3,1 106000 3600 18000 14000 14000 [-512, +511,75] 4 16
3,2 216000 5120 20480 20000 20000 [-512, +511,75] 4 16
4 245760 8192 32768 20000 25000 [-512, +511,751] 4 16
4,1 245760 8192 32768 50000 62500 [-512, +511,75] 2 16
4,2 522240 8704 34816 50000 62500 [-512, +511,75] 2 16
5 589824 22080 110400 135000 135000 [-512, +511,75] 2 16
5,1 983040 36864 184320 240000 240000 [-512, +511,75] 2 16
К тому же, как показано в таблице 15-17, ширина в битах каждой составляющей временного вектора движения может также быть задана в уровнях.
Таблица 15
Номер уровня MaxMBPS (Максимальная скорость обработки макроблока) (МБ/с) MaxFS (Максимальный размер картинки) (МБ) MaxDpbMbs (Максимальный размер буфера декодированного изображения) (МБ) MaxBR (Максимальная битовая скорость видео) (1000 бит/с, 1200 бит/с, cpbBrVclFactor бит/с, или cpbBrNalFactor бит/с) МахСРВ (Максимальный размер СРВ) (1000 битов, 1200 битов, cpbBrVclFactor битов, или cpbBrNalFactor битов) MaxTMVBitWidth (Максимальная ширина в битах составляющей временного MV) MinCR (Минимальный коэффициент сжатия) MaxMvsPer2Mb (Максимальное число векторов движения на два последующих МБ)
1 1485 99 396 64 175 8 2 -
1b 1485 99 3% 128 350 8 2 -
1,1 3000 396 900 192 500 8 2 -
1,2 6000 396 2376 384 1000 8 2 -
1,3 11880 396 2376 768 2000 8 2 -
2 11880 396 2376 2000 2000 8 2 -
2,1 19800 792 4752 4000 4000 8 2 -
2,2 20250 1620 8100 4000 4000 8 2 -
3 40500 1620 8100 10000 10000 8 2 32
3,1 108000 3600 18000 14000 14000 10 4 16
3,2 216000 5120 20480 20000 20000 10 4 16
4 245760 8192 32768 23000 25000 10 4 16
4,1 245760 8192 32768 50000 62500 10 2 16
4,2 522240 8704 34816 50000 62500 10 2 16
5 589824 22080 110400 135000 135000 10 2 16
5,1 983040 36864 184320 240000 240000 10 2 16
Таблица 16
Номер уровня MaxMBPS
(Максимальная скорость обработки макроблока) (МБ/с)
MaxFS (Максимальный размер картинки) (МБ) MaxDpbMbs (Максимальный размер буфера декодированного изображения) (МБ) MaxBR (Максимальная битовая скорость видео) (1000 бит/с, 1200 бит/с, cpbBrVclFactor бит/с, или cpbBrNalFactor бит/с) МахСРВ (Максимальный размер СРВ) (1000 битов, 1200 битов, cpbBrVclFactor битов, или cpbBrNalFactor битов) MaxTMVBitWidth (Максимальная ширина в битах составляющей временного MV) MinCR (Минимальный коэффициент сжатия) MaxMvsPer2Mb (Максимальное число векторов движения на два последующих МБ)
1 1485 99 396 64 175 6 2 -
1b 1485 99 396 128 350 6 2 -
1,1 3000 396 900 192 500 7 2 -
1,2 6000 396 2376 384 1000 7 2 -
1,3 11880 396 2376 768 2000 7 2 -
2 11880 396 2376 2000 2000 7 2 -
2,1 19800 792 4752 4000 4000 8 2 -
2,2 20250 1620 8100 4000 4000 8 2 -
3 40500 1620 8100 10000 10000 8 2 32
3,1 108000 3600 18000 14000 14000 10 4 16
3,2 216000 5120 20480 28900 20000 10 4 16
4 245760 8192 32768 20000 25000 10 4 16
4,1 245760 8192 32768 50000 62500 10 2 16
4,2 522240 8704 34816 50000 62500 10 2 16
5 589824 22080 110400 135000 135000 10 2 16
5,1 983040 36864 184320 240000 240000 10 2 16
Таблица 17
Номер уровня MaxTMVBitWidth (Максимальная ширина в битах составляющей временного MV)
1 8
1b 8
1,1 8
1,2 8
1,3 8
2 8
2,1 8
2,2 8
3 8
3,1 10
3,2 10
4 10
4,1 10
4,2 10
5 10
5,1 10
К тому же, как показано в таблице 18, ширина в битах Y-составляющей временного вектора движения может также быть задана в уровнях.
Figure 00000010
К тому же, динамический диапазон временного вектора движения может быть задан как фиксированное значение, предварительно заданное между кодером и декодером, без передачи информации об ограничении вектора движения или сохранен в виде фиксированной глубины в битах.
В случае, в котором TMVBitWidth привязана к тому же значению и используется в кодере и декодере, TMVBitWidth может быть положительным целым числом, таким как 4, 6, 8, 10, 12, 14, 16 или подобным. Здесь, TMVBitWidth указывает ширину в битах временного вектора движения, когда временный вектор движения хранится в памяти.
Фиг.14 является схемой последовательности операций, показывающей способ кодирования изображения согласно примерному варианту осуществления настоящего изобретения. Ссылаясь на фиг.14, способ кодирования изображения включает в себя этап усечения (S1410), этап сохранения (S1420) и этап кодирования (S1430).
Устройство кодирования изображения и/или устройство декодирования изображения усекают вектор движения опорной картинки в предварительно определенном динамическом диапазоне (S1410). Как описано выше посредством "I. Процесс усечения вектора движения", вектор движения, который выходит за динамический диапазон, представляется минимальным значением или максимальным значением соответствующего динамического диапазона. Вследствие этого, как описано выше посредством "IV. Способ передачи информации для усечения временного вектора движения в декодере" и "V. Задание динамического диапазона посредством уровней видеокодека", глубина в битах ограничивается посредством уровня видеокодека, набора параметров последовательности и подобного, или динамический диапазон ограничивается посредством уровня видеокодека, тем самым делая возможным усечение вектора движения опорной картинки в предварительно определенном динамическом диапазоне.
Устройство кодирования изображения и/или устройство декодирования изображения сохраняет усеченный вектор движения опорной картинки в буфере, как описано выше посредством "II. Процесс сохранения вектора движения" (S1420). Вектор движения может быть сохранен в буфере вместе с реконструированным изображением или отдельно от него.
Устройство кодирования изображения кодирует вектор движения древовидного блока кодирования с использованием сохраненного вектора движения опорной картинки (S1430). Как описано выше посредством "III. Процесс получения вектора движения", в способе усовершенствованного предсказания вектора движения, используемом в HEVC, может быть использован вектор движения блока, существующий в положении, которое является таким же или соответствует положению древовидного блока кодирования в опорной картинке, также как и векторы движения реконструированных блоков, расположенных вокруг древовидного блока кодирования. Вследствие этого вектор движения древовидного блока кодирования может также быть вектором движения опорной картинки, то есть временным вектором движения, также как и векторы движения соседних блоков, смежных с древовидным блоком кодирования.
При этом, так как динамический диапазон X-составляющей и Y-составляющей вектора движения опорной картинки могут быть заданы по-разному, каждая составляющая вектора движения опорной картинки может быть усечена в каждом динамическом диапазоне.
К тому же, может быть использован способ сжатия вектора опорной картинки, также как и способ ограничения динамического диапазона вектора движения опорной картинки. В случае ограничения динамического диапазона вектора движения опорной картинки или сжатия вектора движения опорной картинки, флаг, указывающий динамический диапазон, и вектор движения и параметр, относящийся к нему, могут быть заданы в уровне видеокодека, наборе параметров последовательности или подобном.
К тому же, способ кодирования, такой как предсказание вектора движения, усовершенствованное предсказание вектора движения, слияние информации движения, пропуск слияния информации движения или подобный, может быть выполнен с использованием информации движения, хранящейся в памяти, то есть, информации движения опорной картинки.
Фиг.15 является схемой последовательности операций, показывающей способ декодирования изображения согласно примерному варианту осуществления настоящего изобретения. Ссылаясь на фиг.15, способ декодирования изображения включает в себя этап усечения (S1510), этап сохранения (S1520), этап получения (S1530) и этап декодирования (S1540).
Этап усечения (S1510) и этап сохранения (S1520) согласно фиг.15 аналогичны этапу усечения (S1410) и этапу сохранения (S1420) согласно фиг.14, использующим "I. Процесс усечения вектора движения" и "II. Процесс сохранения вектора движения", описанные выше. К тому же, этап получения (S1530) согласно фиг.15 использует "III. Процесс получения вектора движения", описанный выше, и является симметричным этапу кодирования (S1430) согласно фиг.14. Вследствие этого их подробное описание будет опущено.
Устройство декодирования изображения выполняет декодирование с внешним предсказанием с использованием вектора движения древовидного блока кодирования (S1540). Устройство декодирования изображения может сохранять вектор движения в памяти с использованием по меньшей мере одного из способа ограничения динамического диапазона вектора движения, способа уменьшения пространственного разрешения вектора движения, способа квантования вектора движения и способа уменьшения разрешения представления вектора движения, и использовать сохраненный вектор движения для предсказания вектора движения древовидного блока кодирования и слияния их информации движения.
К тому же устройство декодирования изображения может выполнять способ декодирования, такой как предсказание вектора движения, усовершенствованное предсказание вектора движения, слияние информации движения, пропуск слияния информации движения, или подобный, с использованием информации движения, сохраненной в памяти, то есть, информации движения опорной картинки.
Хотя вышеупомянутые примерные варианты осуществления были описаны посредством схем последовательностей операций, представленных сериями этапов или блоков, настоящее изобретение не ограничено последовательностью этапов, описанных выше. То есть, некоторые этапы могут быть осуществлены в другой последовательности, чем другие этапы или одновременно с ними. К тому же, может быть понятно специалистам в данной области техники, к которой принадлежит настоящее изобретение, что этапы, показанные в схемах последовательностей операций являются неисключительными, так что другие этапы могут быть включены или некоторые этапы могут быть удалены.
К тому же, вышеупомянутые примерные варианты осуществления включают в себя примеры различных аспектов. Хотя все возможные комбинации для показа различных аспектов не описаны, специалистам в данной области техники понятно, что могут быть реализованы другие комбинации. Вследствие этого, настоящее изобретение должно толковаться как включающее в себя все другие замены, изменения и модификации, принадлежащие к следующей ниже формуле изобретения.

Claims (5)

1. Устройство декодирования изображения, содержащее:
буфер опорной картинки для хранения опорной картинки; и
блок компенсации движения для генерирования блока предсказания с использованием опорной картинки и вектора движения опорной картинки,
при этом вектор движения опорной картинки усекается в предварительно определенном фиксированном диапазоне, и при этом устройство декодирования изображения декодирует битовый поток в режиме внутреннего предсказания или в режиме внешнего предсказания для вывода реконструированного изображения.
2. Устройство декодирования изображения по п. 1, в котором вектор движения усекается в предварительно определенном диапазоне с фиксированными значениями.
3. Устройство декодирования изображения по п. 1,
в котором вектор движения опорной картинки сохраняется в предварительно определенной единице блока, и
в котором блок компенсации движения генерирует блок предсказания с использованием вектора движения опорной картинки, сохраненного в предварительно определенной единице блока.
4. Устройство декодирования изображения по п. 2, в котором Х- и Y-составляющие вектора движения усекаются в одном и том же диапазоне с фиксированными значениями.
5. Устройство декодирования изображения по п. 1, в котором вектор движения является вектором движения блока, декодированного в режиме внешнего предсказания.
RU2013140464/08A 2011-01-31 2012-01-31 Способ и устройство для кодирования/декодирования изображений с использованием вектора движения RU2586017C2 (ru)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
KR10-2011-0009636 2011-01-31
KR20110009636 2011-01-31
KR20110019166 2011-03-03
KR10-2011-0019166 2011-03-03
KR1020110050853A KR20120088488A (ko) 2011-01-31 2011-05-27 시간적 움직임 벡터 저장 방법 및 그 장치
KR10-2011-0050853 2011-05-27
KR1020110065707A KR20120088494A (ko) 2011-01-31 2011-07-01 시간적 움직임 벡터 저장 방법 및 그 장치
KR10-2011-0065707 2011-07-01
KR10-2012-0010096 2012-01-31
KR1020120010096A KR101428030B1 (ko) 2011-01-31 2012-01-31 움직임 벡터를 이용한 영상 복호화 장치
PCT/KR2012/000770 WO2012105807A2 (ko) 2011-01-31 2012-01-31 움직임 벡터를 이용한 영상 부호화/복호화 방법 및 장치

Publications (2)

Publication Number Publication Date
RU2013140464A RU2013140464A (ru) 2015-03-10
RU2586017C2 true RU2586017C2 (ru) 2016-06-10

Family

ID=46873758

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013140464/08A RU2586017C2 (ru) 2011-01-31 2012-01-31 Способ и устройство для кодирования/декодирования изображений с использованием вектора движения

Country Status (16)

Country Link
US (4) US10244252B2 (ru)
EP (2) EP3930332A1 (ru)
JP (6) JP5911890B2 (ru)
KR (5) KR20120088488A (ru)
CN (11) CN108124161B (ru)
BR (5) BR122020015455B1 (ru)
CA (3) CA3050903C (ru)
DK (1) DK2672708T3 (ru)
ES (1) ES2899990T3 (ru)
HK (2) HK1251832A1 (ru)
HU (1) HUE056876T2 (ru)
PL (1) PL2672708T3 (ru)
PT (1) PT2672708T (ru)
RU (1) RU2586017C2 (ru)
SI (1) SI2672708T1 (ru)
WO (1) WO2012105807A2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2801823C2 (ru) * 2018-09-07 2023-08-16 Гуандун Оппо Мобайл Телекоммьюникейшнс Корп., Лтд. Способ и устройство для кодирования/декодирования изображений с использованием внутреннего предсказания

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120088488A (ko) 2011-01-31 2012-08-08 한국전자통신연구원 시간적 움직임 벡터 저장 방법 및 그 장치
KR101706318B1 (ko) * 2012-10-03 2017-02-15 에이치에프아이 이노베이션 인크. 3차원 비디오 코딩을 위한 모션 데이터 버퍼 감소 방법 및 장치
US10015515B2 (en) * 2013-06-21 2018-07-03 Qualcomm Incorporated Intra prediction from a predictive block
CN110572650B (zh) 2014-01-08 2023-10-27 索尼公司 解码设备和解码方法、以及编码设备和编码方法
KR102105606B1 (ko) 2014-06-02 2020-05-04 한국전자통신연구원 데이터 압축 장치
WO2016050219A1 (en) 2014-09-30 2016-04-07 Mediatek Inc. Method of adaptive motion vetor resolution for video coding
WO2017052250A1 (ko) * 2015-09-23 2017-03-30 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
KR20170058838A (ko) 2015-11-19 2017-05-29 한국전자통신연구원 화면간 예측 향상을 위한 부호화/복호화 방법 및 장치
CN106954074B (zh) * 2016-01-07 2019-12-20 青岛海信电器股份有限公司 一种视频数据处理方法和装置
TW202344052A (zh) 2016-02-09 2023-11-01 弗勞恩霍夫爾協會 用於圖像/視訊資料串流而允許有效可縮減性或有效隨機存取之技術
CN105744275B (zh) * 2016-02-22 2019-04-05 青岛海信电器股份有限公司 一种视频数据输入、输出方法和装置
US10827186B2 (en) * 2016-08-25 2020-11-03 Intel Corporation Method and system of video coding with context decoding and reconstruction bypass
EP3613014B1 (en) * 2017-04-21 2023-10-18 Zenimax Media Inc. Player input motion compensation by anticipating motion vectors
EP3613015A4 (en) 2017-04-21 2021-02-24 Zenimax Media Inc. SYSTEMS AND PROCEDURES FOR TOY GENERATED MOTION VECTORS
US11700391B2 (en) 2017-05-18 2023-07-11 Hfi Innovation Inc. Method and apparatus of motion vector constraint for video coding
KR102368621B1 (ko) 2018-02-28 2022-02-28 삼성전자주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
KR102516233B1 (ko) * 2018-04-02 2023-03-30 엘지전자 주식회사 움직임 벡터에 기반한 영상 코딩 방법 및 그 장치
US10873748B2 (en) * 2018-05-12 2020-12-22 Qualcomm Incorporated Storage of high precision motion vectors in video coding
CN112040243B (zh) 2018-06-04 2021-06-29 华为技术有限公司 获取运动矢量的方法和装置
CA3105072A1 (en) * 2018-06-29 2020-01-02 Vid Scale, Inc. Adaptive control point selection for affine motion model based video coding
TWI750486B (zh) 2018-06-29 2021-12-21 大陸商北京字節跳動網絡技術有限公司 運動資訊共用的限制
US20220150529A1 (en) * 2018-09-17 2022-05-12 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus, and recording medium storing bitstream
CN112997494B (zh) * 2018-10-08 2023-05-09 北京达佳互联信息技术有限公司 用于视频编码的运动矢量存储
AU2019381454A1 (en) * 2018-11-16 2021-06-24 FG Innovation Company Limited Systems and methods for deriving a motion vector prediction in video coding
CN113039796B (zh) 2018-11-17 2023-09-19 北京字节跳动网络技术有限公司 视频处理中的广义双向预测模式
WO2020125751A1 (en) * 2018-12-21 2020-06-25 Beijing Bytedance Network Technology Co., Ltd. Information signaling in current picture referencing mode
CN113273205A (zh) 2018-12-21 2021-08-17 北京字节跳动网络技术有限公司 使用更高比特深度精度的运动矢量推导
BR112021009911A2 (pt) * 2018-12-29 2021-08-17 Huawei Technologies Co., Ltd. codificador, decodificador e métodos correspondentes usando armazenamento de mv compacto
JP2022544164A (ja) 2019-08-06 2022-10-17 オーピー ソリューションズ, エルエルシー フレームタイプに基づく適応分解能管理の暗示的信号伝達
BR112022002204A2 (pt) * 2019-08-06 2022-10-18 Op Solutions Llc Redimensionamento de previsão de gerenciamento de resolução adaptativa
WO2021026324A1 (en) * 2019-08-06 2021-02-11 Op Solutions Adaptive resolution management prediction rescaling
KR20220090493A (ko) 2019-08-06 2022-06-29 오피 솔루션즈, 엘엘씨 블록-기반 적응적 해상도 관리
BR112022008918A2 (pt) 2019-11-08 2022-08-02 Op Solutions Llc Métodos e sistemas para corte adaptável
KR20220093915A (ko) 2020-12-28 2022-07-05 삼성전자주식회사 반도체 집적회로 레이아웃의 확률적 취약점 검출 방법 및 이를 수행하는 컴퓨터 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2106759C1 (ru) * 1992-02-21 1998-03-10 Ар-Си-Эй Томсон Лайсензинг Корпорейшн Приемники тввч с низким разрешением
RU2335859C2 (ru) * 2003-12-22 2008-10-10 Кэнон Кабусики Кайся Устройство кодирования движущихся изображений, способ и программа управления этим устройством

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2263855C (en) * 1997-06-25 2003-04-01 Nippon Telegraph And Telephone Corporation Motion vector predictive encoding method, motion vector decoding method,predictive encoding apparatus and decoding apparatus, and storage media storing motion vector predictive encoding and decoding programs
JP2914448B2 (ja) * 1997-06-25 1999-06-28 日本電信電話株式会社 動きベクトル予測符号化方法および動きベクトル復号方法、予測符号化装置および復号装置、並びに、動きベクトルの予測符号化プログラムおよび復号プログラムを記録した記録媒体
US7206346B2 (en) * 1997-06-25 2007-04-17 Nippon Telegraph And Telephone Corporation Motion vector predictive encoding method, motion vector decoding method, predictive encoding apparatus and decoding apparatus, and storage media storing motion vector predictive encoding and decoding programs
JPH11122624A (ja) 1997-10-16 1999-04-30 Matsushita Electric Ind Co Ltd ビデオデコーダ処理量を低減する方法および装置
ATE404019T1 (de) * 2001-09-12 2008-08-15 Nxp Bv Bewegungsschätzung und/oder kompensation
KR100632072B1 (ko) * 2001-12-25 2006-10-04 마츠시타 덴끼 산교 가부시키가이샤 동화상 압축 부호화장치 및 모션벡터 검출방법
US7177356B2 (en) * 2002-01-11 2007-02-13 Webtv Networks, Inc. Spatially transcoding a video stream
EP1427216A1 (en) * 2002-07-02 2004-06-09 Matsushita Electric Industrial Co., Ltd. Image encoding method and image decoding method
US20040057521A1 (en) 2002-07-17 2004-03-25 Macchina Pty Ltd. Method and apparatus for transcoding between hybrid video CODEC bitstreams
CN101090499A (zh) * 2002-07-17 2007-12-19 达丽星网络有限公司 在混合视频codec比特流之间进行码转换的方法和装置
US8837605B2 (en) 2006-09-26 2014-09-16 Onmobile Global Limited Method and apparatus for compressed video bitstream conversion with reduced-algorithmic-delay
AU2003273307A1 (en) * 2002-10-01 2004-04-23 Thomson Licensing S.A. Implicit weighting of reference pictures in a video encoder
US7499495B2 (en) * 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
KR100941123B1 (ko) * 2003-10-09 2010-02-10 톰슨 라이센싱 에러 은닉을 위한 직접 모드 도출 프로세스
US7961963B2 (en) * 2005-03-18 2011-06-14 Sharp Laboratories Of America, Inc. Methods and systems for extended spatial scalability with picture-level adaptation
KR101406156B1 (ko) * 2006-02-02 2014-06-13 톰슨 라이센싱 움직임 보상 예측을 위한 적응 가중 선택 방법 및 장치
US8494052B2 (en) 2006-04-07 2013-07-23 Microsoft Corporation Dynamic selection of motion estimation search ranges and extended motion vector ranges
JP2008067194A (ja) * 2006-09-08 2008-03-21 Toshiba Corp フレーム補間回路、フレーム補間方法、表示装置
KR101365574B1 (ko) 2007-01-29 2014-02-20 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
CN101115200B (zh) * 2007-04-20 2010-05-19 西安交通大学 一种有效的运动矢量可伸缩编码方法
US8908765B2 (en) * 2007-11-15 2014-12-09 General Instrument Corporation Method and apparatus for performing motion estimation
US8345763B2 (en) * 2007-11-27 2013-01-01 Mediatek Inc. Motion compensation method and integrated circuit utilizing the same
ES2812473T3 (es) * 2008-03-19 2021-03-17 Nokia Technologies Oy Vector de movimiento combinado y predicción de índice de referencia para la codificación de vídeo
CN101873483B (zh) * 2009-04-24 2012-08-29 深圳市九洲电器有限公司 一种运动估计方法及采用运动估计方法的编码芯片、装置
JP5209572B2 (ja) 2009-06-29 2013-06-12 三菱電機株式会社 画像符号化装置及び画像復号装置
JP5738549B2 (ja) 2009-07-22 2015-06-24 株式会社Sumco 包装済石英ガラスルツボ用クレーン装置およびこの装置を用いる包装済石英ガラスルツボの梱包方法
KR20110017302A (ko) 2009-08-13 2011-02-21 삼성전자주식회사 움직임 벡터의 정확도 조절을 이용한 영상 부호화, 복호화 방법 및 장치
KR20110019166A (ko) 2009-08-19 2011-02-25 삼화주철공업 주식회사 소음 방지용 맨홀
KR101356613B1 (ko) * 2009-08-21 2014-02-06 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
KR101074238B1 (ko) 2009-11-09 2011-10-14 부경대학교 산학협력단 초임계 처리를 이용한 오징어 및 고등어 내장에서의 단당류를 수득하는 방법
KR101418104B1 (ko) * 2010-03-08 2014-07-16 에스케이 텔레콤주식회사 움직임 벡터 해상도 조합을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
CN101841712A (zh) * 2010-04-28 2010-09-22 广西大学 面向全景视频编码的b帧扩展直接模式
US8711940B2 (en) * 2010-11-29 2014-04-29 Mediatek Inc. Method and apparatus of motion vector prediction with extended motion vector predictor
KR20120088488A (ko) 2011-01-31 2012-08-08 한국전자통신연구원 시간적 움직임 벡터 저장 방법 및 그 장치
WO2012122927A1 (en) * 2011-03-14 2012-09-20 Mediatek Inc. Method and apparatus for derivation of motion vector candidate and motion vector prediction candidate
AU2011362447B2 (en) * 2011-03-14 2015-09-24 Hfi Innovation Inc. Method and apparatus for deriving temporal motion vector prediction
US10536701B2 (en) * 2011-07-01 2020-01-14 Qualcomm Incorporated Video coding using adaptive motion vector resolution
JP5895469B2 (ja) * 2011-11-18 2016-03-30 富士通株式会社 動画像符号化装置、および動画像復号装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2106759C1 (ru) * 1992-02-21 1998-03-10 Ар-Си-Эй Томсон Лайсензинг Корпорейшн Приемники тввч с низким разрешением
RU2335859C2 (ru) * 2003-12-22 2008-10-10 Кэнон Кабусики Кайся Устройство кодирования движущихся изображений, способ и программа управления этим устройством

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2801823C2 (ru) * 2018-09-07 2023-08-16 Гуандун Оппо Мобайл Телекоммьюникейшнс Корп., Лтд. Способ и устройство для кодирования/декодирования изображений с использованием внутреннего предсказания
RU2808540C2 (ru) * 2018-09-07 2023-11-29 Гуандун Оппо Мобайл Телекоммьюникейшнс Корп., Лтд. Способ и устройство для кодирования/декодирования изображений с использованием внутреннего предсказания
RU2809077C2 (ru) * 2018-09-07 2023-12-06 Гуандун Оппо Мобайл Телекоммьюникейшнс Корп., Лтд. Способ и устройство для кодирования/декодирования изображений с использованием внутреннего предсказания

Also Published As

Publication number Publication date
KR20130084286A (ko) 2013-07-24
JP2019193298A (ja) 2019-10-31
CA2826157A1 (en) 2012-08-09
US20190149837A1 (en) 2019-05-16
HK1251838A1 (zh) 2019-04-12
KR101477771B1 (ko) 2015-01-05
US20220086479A1 (en) 2022-03-17
DK2672708T3 (da) 2021-12-13
HUE056876T2 (hu) 2022-03-28
HK1251832A1 (zh) 2019-04-04
KR20130093057A (ko) 2013-08-21
JP2016129371A (ja) 2016-07-14
BR112013019495B1 (pt) 2022-05-17
CN103583044B (zh) 2018-01-26
JP2014509479A (ja) 2014-04-17
CN108124162B (zh) 2020-11-24
EP2672708A2 (en) 2013-12-11
CN108174219B (zh) 2020-11-24
KR101461499B1 (ko) 2014-11-17
US20200228822A1 (en) 2020-07-16
CN108174221A (zh) 2018-06-15
JP6203878B2 (ja) 2017-09-27
JP7369679B2 (ja) 2023-10-26
CN108124162A (zh) 2018-06-05
CA3220287A1 (en) 2012-08-09
CN107846596A (zh) 2018-03-27
CN108174215A (zh) 2018-06-15
ES2899990T3 (es) 2022-03-15
CN108124161B (zh) 2020-11-24
JP6783355B2 (ja) 2020-11-11
CA3050903C (en) 2024-01-16
CN107888927A (zh) 2018-04-06
KR20130084287A (ko) 2013-07-24
US10645411B2 (en) 2020-05-05
JP2021007261A (ja) 2021-01-21
KR101461498B1 (ko) 2014-11-17
CN108174219A (zh) 2018-06-15
US20130294522A1 (en) 2013-11-07
BR122020015452B1 (pt) 2024-01-30
CA2826157C (en) 2019-09-24
KR101378888B1 (ko) 2014-04-02
BR122020015455B1 (pt) 2022-12-27
CN108174216A (zh) 2018-06-15
PL2672708T3 (pl) 2022-02-07
CN108174220A (zh) 2018-06-15
BR122020015411B1 (pt) 2022-12-27
BR122014018140A2 (pt) 2019-04-30
RU2013140464A (ru) 2015-03-10
EP2672708B1 (en) 2021-11-17
PT2672708T (pt) 2021-12-16
BR112013019495A2 (pt) 2018-04-03
JP2023018075A (ja) 2023-02-07
KR20120088488A (ko) 2012-08-08
JP6550429B2 (ja) 2019-07-24
JP5911890B2 (ja) 2016-04-27
CN107888916A (zh) 2018-04-06
CN108174215B (zh) 2020-11-24
CN107888927B (zh) 2020-11-24
WO2012105807A3 (ko) 2012-12-13
BR122014018140B1 (pt) 2022-06-07
CN103583044A (zh) 2014-02-12
CN108124161A (zh) 2018-06-05
EP3930332A1 (en) 2021-12-29
WO2012105807A2 (ko) 2012-08-09
CA3050903A1 (en) 2012-08-09
JP2018011323A (ja) 2018-01-18
SI2672708T1 (sl) 2022-01-31
EP2672708A4 (en) 2015-01-21
US10244252B2 (en) 2019-03-26
KR20140102639A (ko) 2014-08-22

Similar Documents

Publication Publication Date Title
RU2586017C2 (ru) Способ и устройство для кодирования/декодирования изображений с использованием вектора движения
US11057636B2 (en) Affine motion prediction
KR102454842B1 (ko) 비디오 코딩을 위한 참조로서 현재 픽처의 이용
US9426463B2 (en) Restriction of prediction units in B slices to uni-directional inter prediction
US11758151B2 (en) Template matching in video coding
KR101428030B1 (ko) 움직임 벡터를 이용한 영상 복호화 장치