RU2612614C2 - Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования - Google Patents

Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования Download PDF

Info

Publication number
RU2612614C2
RU2612614C2 RU2015116285A RU2015116285A RU2612614C2 RU 2612614 C2 RU2612614 C2 RU 2612614C2 RU 2015116285 A RU2015116285 A RU 2015116285A RU 2015116285 A RU2015116285 A RU 2015116285A RU 2612614 C2 RU2612614 C2 RU 2612614C2
Authority
RU
Russia
Prior art keywords
interpolation
pixel
filter
image
block
Prior art date
Application number
RU2015116285A
Other languages
English (en)
Other versions
RU2015116285A (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
Application filed by Самсунг Электроникс Ко., Лтд. filed Critical Самсунг Электроникс Ко., Лтд.
Publication of RU2015116285A publication Critical patent/RU2015116285A/ru
Application granted granted Critical
Publication of RU2612614C2 publication Critical patent/RU2612614C2/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/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/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4007Interpolation-based scaling, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • G06F17/175Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method of multidimensional data
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0135Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes
    • H04N7/014Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes involving the use of motion vectors

Abstract

Изобретение относится к интерполяции изображения и, более конкретно, к интерполяции между пиксельными значениями целочисленных пиксельных единиц. Техническим результатом является повышение точности генерирования дробной пиксельной единицы. В устройстве для компенсации движения с помощью процессора определяют яркостный опорный блок для предсказания текущего блока посредством использования яркостного вектора движения, генерируют пиксельное значение яркости 2/4-пиксельного местоположения посредством применения фильтра интерполяции с 8 выводами к значениям яркости целочисленных пиксельных местоположений. Генерируют значение яркости 1/4- или 3/4-местоположения посредством применения фильтра интерполяции к значениям яркости целочисленных пиксельных местоположений без использования сгенерированного значения яркости 2/4-местоположения. Процессор также сконфигурирован для определения хроматического опорного блока для предсказания текущего блока посредством использования хроматического вектора движения и генерации значения хроматичности 4/8-местоположения посредством применения фильтра интерполяции с 4 выводами к значениям хроматичности целочисленного пиксельного местоположения. 2 з.п. ф-лы, 62 ил.

Description

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Устройства и способы, связанные с иллюстративными вариантами осуществления, относятся к интерполяции изображения, и, более конкретно, к интерполяции между пиксельными значениями целочисленных пиксельных единиц.
УРОВЕНЬ ТЕХНИКИ
В соответствующем способе кодирования и декодирования изображений из уровня техники, один снимок (картинка) разделяется на множество макроблоков так, чтобы кодировать изображение. Затем, каждый из множества макроблоков кодируется с предсказанием посредством выполнения внешнего предсказания или внутреннего предсказания над ним.
Внешнее предсказание является способом сжатия изображения посредством удаления временной избыточности между снимками. Показательным примером внешнего предсказания является кодирование с оценкой движения. В кодировании с оценкой движения каждый блок текущего снимка предсказывается посредством использования по меньшей мере одного опорного снимка. Опорный блок, который является наиболее подобным текущему блоку, ищется в предварительно определенном диапазоне поиска посредством использования предварительно определенной функции оценки.
Текущий блок предсказывается на основе опорного блока, остаточный блок получается посредством вычитания предсказанного блока, который является результатом предсказания, из текущего блока, и затем остаточный блок кодируется. В этом случае, чтобы точно предсказывать текущий блок, подпиксели, которые являются более маленькими, чем целочисленные пиксельные единицы, генерируются посредством выполнения интерполяции в диапазоне поиска опорного снимка, и внешнее предсказание выполняется на основе подпикселей.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Решение проблемы
Аспекты одного или более иллюстративных вариантов осуществлений обеспечивают способ и устройство для генерирования пиксельных значений дробных пиксельных единиц посредством интерполяции пиксельных значений целочисленных пиксельных единиц.
Аспекты одного или более иллюстративных вариантов осуществлений также обеспечивают машиночитаемый носитель записи, имеющий записанную на нем компьютерную программу для выполнения способа.
ПРЕДПОЧТИТЕЛЬНЫЕ ЭФФЕКТЫ ИЗОБРЕТЕНИЯ
Согласно настоящей заявке, дробная пиксельная единица может генерироваться более точно.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеописанные и другие признаки станут более ясными из подробного описания иллюстративных вариантов осуществления со ссылкой на прилагаемые чертежи, на которых:
Фиг.1 является блок-схемой устройства для кодирования изображения согласно одному иллюстративному варианту осуществления;
Фиг.2 является блок-схемой устройства для декодирования изображения согласно одному иллюстративному варианту осуществления;
Фиг.3 иллюстрирует иерархические блоки кодирования согласно одному иллюстративному варианту осуществления;
Фиг.4 является блок-схемой кодера изображений на основе блока кодирования согласно одному иллюстративному варианту осуществления;
Фиг.5 является блок-схемой декодера изображений на основе блока кодирования согласно одному иллюстративному варианту осуществления;
Фиг.6 иллюстрирует максимальный блок кодирования, подблок кодирования и блок предсказания согласно одному иллюстративному варианту осуществления;
Фиг.7 иллюстрирует блок кодирования и блок преобразования согласно одному иллюстративному варианту осуществления;
Фиг.8a-8d иллюстрируют формы разделения блока кодирования, блока предсказания и блока преобразования согласно одному иллюстративному варианту осуществления;
Фиг.9 является блок-схемой устройства интерполяции изображений согласно одному иллюстративному варианту осуществления;
Фиг.10 является диаграммой, иллюстрирующей способ двумерной (2D) интерполяции, выполняемый посредством устройства интерполяции изображений из Фиг.9 согласно одному иллюстративному варианту осуществления;
Фиг.11 является диаграммой, иллюстрирующей область интерполяции согласно одному иллюстративному варианту осуществления;
Фиг.12 является диаграммой, иллюстрирующей способ одномерной (1D) интерполяции согласно одному иллюстративному варианту осуществления;
Фиг.13 является диаграммой, конкретно иллюстрирующей способ интерполяции 1D, выполняемый посредством устройства интерполяции изображений из Фиг.9 согласно одному иллюстративному варианту осуществления;
Фиг.14 является блок-схемой устройства интерполяции изображений согласно одному иллюстративному варианту осуществления;
Фиг.15 иллюстрирует фильтры интерполяции 2D согласно одному иллюстративному варианту осуществления;
Фиг.16a-16f иллюстрируют фильтры интерполяции 1D согласно иллюстративным вариантам осуществления;
Фиг.17a-17y иллюстрируют оптимизированные фильтры интерполяции 1D согласно иллюстративным вариантам осуществления;
Фиг.18a и 18b иллюстрируют способы интерполяции пиксельных значений в различных направлениях посредством использования фильтра интерполяции 1D согласно иллюстративным вариантам осуществления;
Фиг.19a иллюстрирует способ интерполяции 2D согласно одному иллюстративному варианту осуществления;
Фиг.19b иллюстрирует способ интерполяции 2D с использованием фильтра интерполяции 1D согласно другому иллюстративному варианту осуществления;
Фиг.19c иллюстрирует способ интерполяции 2D с использованием фильтра интерполяции 1D согласно другому иллюстративному варианту осуществления;
Фиг.20 является блок-схемой последовательности операций, иллюстрирующей способ интерполяции изображений согласно иллюстративному варианту осуществления;
Фиг.21 является блок-схемой последовательности операций, иллюстрирующей способ интерполяции изображений согласно другому иллюстративному варианту осуществления;
Фиг.22 является блок-схемой последовательности операций, иллюстрирующей способ интерполяции изображений согласно другому иллюстративному варианту осуществления; и
Фиг.23a-23e иллюстрируют способы выполнения масштабирования и округления в отношении фильтра интерполяции 1D согласно иллюстративным вариантам осуществления.
НАИЛУЧШИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ДЛЯ ВЫПОЛНЕНИЯ ИЗОБРЕТЕНИЯ
Согласно одному аспекту иллюстративного варианта осуществления обеспечивается способ интерполяции изображения, при этом способ включает в себя: выбор первого фильтра, из множества разных фильтров, для интерполяции между пиксельными значениями целочисленных пиксельных единиц согласно местоположению интерполяции; и генерирование по меньшей мере одного пиксельного значения по меньшей мере одной дробной пиксельной единицы посредством интерполяции между пиксельными значениями целочисленных пиксельных единиц посредством использования выбранного первого фильтра для интерполяции между пиксельными значениями целочисленных пиксельных единиц.
Способ может дополнительно включать в себя выбор второго фильтра, из множества разных фильтров, для интерполяции между сгенерированным, по меньшей мере, одним пиксельным значением упомянутой по меньшей мере одной дробной пиксельной единицы согласно местоположению интерполяции; и интерполяцию между сгенерированным, по меньшей мере, одним пиксельным значением упомянутой по меньшей мере одной дробной пиксельной единицы посредством использования выбранного второго фильтра для интерполяции между сгенерированным по меньшей мере одним пиксельным значением упомянутой по меньшей мере одной дробной пиксельной единицы.
Первый фильтр для интерполяции между пиксельными значениями целочисленных пиксельных единиц может являться фильтром пространственной области для преобразования пиксельных значений целочисленных пиксельных единиц посредством использования множества базисных функций, имеющих разные частоты, и обратного преобразования множества коэффициентов, которые получены посредством преобразования пиксельных значений целочисленных пиксельных единиц, посредством использования множества базисных функций, фазы которых сдвинуты.
Второй фильтр для интерполяции между сгенерированным, по меньшей мере, одним пиксельным значением упомянутой по меньшей мере одной дробной пиксельной единицы может являться фильтром пространственной области для преобразования сгенерированного, по меньшей мере, одного пиксельного значения упомянутой по меньшей мере одной дробной пиксельной единицы посредством использования множества базисных функций, имеющих разные частоты, и обратного преобразования множества коэффициентов, которые получены посредством преобразования сгенерированного, по меньшей мере, одного пиксельного значения упомянутой, по меньшей мере, одной дробной пиксельной единицы, посредством использования множества базисных функций, фазы которых сдвинуты.
Согласно одному аспекту другого иллюстративного варианта осуществления, обеспечивается устройство для интерполяции изображения, при этом устройство включает в себя: селектор фильтров, который выбирает первый фильтр из множества разных фильтров для интерполяции между пиксельными значениями целочисленных пиксельных единиц согласно местоположению интерполяции; и интерполятор, который генерирует по меньшей мере одно пиксельное значение по меньшей мере одной дробной пиксельной единицы посредством интерполяции между пиксельными значениями целочисленных пиксельных единиц посредством использования выбранного первого фильтра для интерполяции между пиксельными значениями целочисленных пиксельных единиц.
Селектор фильтров может выбирать второй фильтр, из множества разных фильтров, для интерполяции между сгенерированным, по меньшей мере, одним пиксельным значением упомянутой, по меньшей мере, одной дробной пиксельной единицы согласно местоположению интерполяции, и интерполятор может интерполировать между сгенерированным, по меньшей мере, одним пиксельным значением упомянутой, по меньшей мере, одной дробной пиксельной единицы посредством использования выбранного второго фильтра для интерполяции между сгенерированным, по меньшей мере, одним пиксельным значением упомянутой, по меньшей мере, одной дробной пиксельной единицы.
Согласно одному аспекту другого иллюстративного варианта осуществления, обеспечивается машиночитаемый носитель записи, имеющий воплощенную на нем компьютерную программу для выполнения способа, описанного выше.
Согласно одному аспекту другого иллюстративного варианта осуществления, обеспечивается способ интерполяции изображения, при этом способ включает в себя: преобразование пиксельных значений в пространственной области посредством использования множества базисных функций, имеющих разные частоты; сдвиг фаз множества базисных функций; и обратное преобразование множества коэффициентов, полученных посредством преобразования пиксельных значений, посредством использования сдвинутых по фазе множества базисных функций.
ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ДЛЯ ИЗОБРЕТЕНИЯ
Ниже, со ссылкой на сопроводительные чертежи будут более полно описаны один или более иллюстративных вариантов осуществления. Выражения, такие как "по меньшей мере, один из", когда предшествуют списку элементов, модифицируют полный список элементов, но не модифицируют индивидуальные элементы списка. В настоящем описании, "изображение" может обозначать неподвижное изображение для видео или движущееся изображение, то есть, само видео.
Фиг.1 является блок-схемой устройства 100 для кодирования изображения согласно одному иллюстративному варианту осуществления. Ссылаясь на Фиг.1, устройство 100 для кодирования изображения включает в себя блок 110 разделения максимального блока кодирования, блок 120 определения глубины кодирования, кодер 130 данных изображения, и кодер 140 информации кодирования.
Блок 110 разделения максимального блока кодирования может разделять текущий кадр или вырезку на основе максимального блока кодирования, который является блоком кодирования наибольшего размера. То есть, блок 110 разделения максимального блока кодирования может разделять текущий кадр или вырезку на, по меньшей мере, один максимальный блок кодирования.
Согласно одному иллюстративному варианту осуществления, блок кодирования может представляться с использованием максимального блока кодирования и глубины. Как описано выше, максимальный блок кодирования показывает блок кодирования, имеющий наибольший размер, из блоков кодирования текущего кадра, и глубина показывает степень иерархического уменьшения блока кодирования. По мере того, как глубина увеличивается, блок кодирования может уменьшаться от максимального блока кодирования к минимальному блоку кодирования, при этом глубина максимального блока кодирования определяется как минимальная глубина и глубина минимального блока кодирования определяется как максимальная глубина. Так как размер блока кодирования уменьшается от максимального блока кодирования по мере того, как глубина увеличивается, подблок кодирования kой глубины может включать в себя множество подблоков кодирования (k+n)ой глубины (где k и n являются целыми числами, равными или большими, чем 1.
Согласно увеличению размера кадра, подлежащего кодированию, кодирование изображения в более большом блоке кодирования может быть причиной более высокого коэффициента сжатия изображения. Однако если фиксируется более большой блок кодирования, изображение может не эффективно кодироваться посредством отражения непрерывного изменяющихся характеристик изображения.
Например, когда кодируется гладкая область, такая как море или небо, чем большим является блок кодирования, тем больше коэффициент сжатия может увеличиваться. Однако, когда кодируется сложная область, такая как люди или здания, чем меньшим является блок кодирования, тем больше коэффициент сжатия может увеличиваться.
Соответственно, согласно одному иллюстративному варианту осуществления, другой максимальный блок кодирования изображения и другая максимальная глубина могут устанавливаться для каждого кадра или вырезки. Так как максимальная глубина обозначает максимальное количество раз, посредством которых блок кодирования может уменьшаться, размер каждого минимального блока кодирования, включенного в максимальный блок кодирования изображения, может устанавливаться переменным образом согласно максимальной глубине. Максимальная глубина может определяться различным образом для каждого кадра или вырезки или для каждого максимального блока кодирования.
Блок 120 определения глубины кодирования определяет форму разделения максимального блока кодирования. Форма разделения может определяться на основе вычисления затрат согласно зависимости искажение-скорость (RD). Определенная форма разделения максимального блока кодирования обеспечивается в кодер 140 информации кодирования, и данные изображения согласно максимальным блокам кодирования обеспечиваются в кодер 130 данных изображения.
Максимальный блок кодирования может разделяться на подблоки кодирования, имеющие разные размеры согласно разным глубинам, и подблоки кодирования, имеющие разные размеры, которые содержатся в максимальном блоке кодирования, может предсказываться или преобразовываться на основе блоков обработки, имеющих разные размеры. Другими словами, устройство 100 для кодирования изображения может выполнять множество операций обработки для кодирования изображения на основе блоков обработки, имеющих различные размеры и различные формы. Чтобы кодировать данные изображения, выполняются операции обработки, такие как по меньшей мере одно из предсказания, преобразования, и энтропийного кодирования, при этом для операций обработки могут использоваться блоки обработки, имеющие один и тот же размер или разные размеры, соответственно.
Например, устройство 100 для кодирования изображения может выбирать блок обработки, который является отличным от блока кодирования, чтобы предсказывать блок кодирования.
Когда размер блока кодирования равняется 2N×2N (где N является положительным целым числом), блоки обработки для предсказания могут быть 2N×2N, 2N×N, N×2N, и N×N. Другими словами, предсказание движения может выполняться на основе блока обработки, имеющего некоторую форму, в силу чего, по меньшей мере, одно из высоты и ширины блока кодирования равным образом разделяется на два. Ниже, блок обработки, который является основой предсказания, определяется как 'блок предсказания'.
Режим предсказания может быть, по меньшей мере, одним из внутреннего режима, внешнего режима, и режима пропуска, и конкретный режим предсказания может выполняться только для блока предсказания, имеющего конкретный размер или форму. Например, внутренний режим может выполняться только для блоков предсказания, имеющих размеры 2N×2N и N×N, чья форма является квадратом. Дополнительно, режим пропуска может выполняться только для блока предсказания, имеющего размер 2N×2N. Если в блоке кодирования существуют множество блоков предсказания, режим предсказания с наименьшими ошибками кодирования может выбираться после выполнения предсказания для каждого блока предсказания.
Альтернативно, устройство 100 для кодирования изображения может выполнять преобразование над данными изображения, на основе блока обработки, имеющего другой размер, нежели блок кодирования. Для преобразования в блоке кодирования преобразование может выполняться на основе блока обработки, имеющего размер, равный или более маленький, чем размер блока кодирования. В дальнейшем, блок обработки, который является основой преобразования, определяется как 'блок преобразования'. Преобразование может быть дискретным косинусным преобразованием (DCT) или преобразованием Кархунена (Karhunen) Леве (Loeve) (KLT) или любым другим пространственным преобразованием фиксированной точки.
Блок 120 определения глубины кодирования может определять подблоки кодирования, включенные в максимальный блок кодирования, посредством использования оптимизации RD на основе множителя Лагранжа. Другими словами, блок 120 определения глубины кодирования может определять то, какую форму имеют множество подблоков кодирования, разделенных из максимального блока кодирования, при этом множество подблоков кодирования имеют разные размеры согласно их глубинам. Кодер 130 данных изображения выводит битовый поток посредством кодирования максимального блока кодирования на основе форм разделения, определенных посредством блока 120 определения глубины кодирования.
Кодер 140 информации кодирования кодирует информацию о режиме кодирования максимального блока кодирования, определенного посредством блока 120 определения глубины кодирования. Другими словами, кодер 140 информации кодирования выводит битовый поток посредством кодирования информации о форме разделения максимального блока кодирования, информации о максимальной глубине, и информации о режиме кодирования подблока кодирования для каждой глубины. Информация о режиме кодирования подблока кодирования может включать в себя информацию о блоке предсказания подблока кодирования, информацию о режиме предсказания для каждого блока предсказания, и информацию о блоке преобразования подблока кодирования.
Информация о форме разделения максимального блока кодирования может быть информацией, например, флаговой информацией, показывающей, разделен ли каждый блок кодирования. Например, когда максимальный блок кодирования разделяется и кодируется, кодируется информация, показывающая, разделен ли максимальный блок кодирования. Также, когда подблок кодирования, разделенный из максимального блока кодирования, разделяется и кодируется, кодируется информация, показывающая, разделен ли подблок кодирования.
Так как подблоки кодирования, имеющие разные размеры, существуют для каждого максимального блока кодирования, и информация о режиме кодирования должна определяться для каждого подблока кодирования, информация о по меньшей мере одном режиме кодирования может определяться для одного максимального блока кодирования.
Устройство 100 для кодирования изображения может генерировать подблоки кодирования посредством равного разделения как высоты, так и ширины максимального блока кодирования на два согласно увеличению глубины. То есть, когда размер блока кодирования kой глубины равен 2N×2N, размер блока кодирования (k+1)ой глубины равен N×N.
Соответственно, устройство 100 для кодирования изображения может определять оптимальную форму разделения для каждого максимального блока кодирования, на основе размеров максимальных блоков кодирования и максимальной глубины при рассмотрении характеристик изображения. Посредством регулировки переменным образом размера максимального блока кодирования с учетом характеристик изображения и кодирования изображения с помощью разделения максимального блока кодирования на подблоки кодирования разных глубин, изображения, имеющие различные разрешения, могут кодироваться более эффективно.
Фиг.2 является блок-схемой устройства 200 для декодирования изображения согласно одному иллюстративному варианту осуществления. Ссылаясь на Фиг.2, устройство 200 для декодирования изображения включает в себя блок 210 получения данных изображения, блок 220 извлечения информации кодирования, и декодер 230 данных изображения.
Блок 210 получения данных изображения получает данные изображения согласно максимальным блокам кодирования посредством синтаксического разбора битового потока, принятого устройством 200 для декодирования изображения, и выводит данные изображения в декодер 230 данных изображения. Блок 210 получения данных изображения может извлекать информацию о максимальных блоках кодирования текущего кадра или вырезки из заголовка текущего кадра или вырезки. Другими словами, блок 210 получения данных изображения разделяет битовый поток согласно максимальным блокам кодирования, так что декодер 230 данных изображения может декодировать данные изображения согласно максимальным блокам кодирования.
Блок 220 извлечения информации кодирования извлекает информацию о максимальном блоке кодирования, максимальной глубине, форме разделения максимального блока кодирования, и режиме кодирования подблоков кодирования из заголовка текущего кадра посредством синтаксического разбора битового потока, принятого устройством 200 для декодирования изображения. Информация о форме разделения и информация о режиме кодирования обеспечиваются в декодер 230 данных изображения.
Информация о форме разделения максимального блока кодирования может включать в себя информацию о подблоках кодирования, имеющих разные размеры согласно глубинам и включенных в максимальный блок кодирования, и может быть информацией (например, флаговой информацией), показывающей, разделен ли каждый блок кодирования. Информация о режиме кодирования может включать в себя информацию о блоке предсказания согласно подблокам кодирования, информацию о режиме предсказания, и информацию о блоке преобразования.
Декодер 230 данных изображения восстанавливает текущий кадр посредством декодирования данных изображения каждого максимального блока кодирования, на основе информации, извлеченной посредством блока 220 извлечения информации кодирования.
Декодер 230 данных изображения может декодировать подблоки кодирования, включенные в максимальный блок кодирования, на основе информации о форме разделения максимального блока кодирования. Декодирование может включать в себя внутреннее предсказание, внешнее предсказание, которое включает в себя компенсацию движения, и обратное преобразование.
Декодер 230 данных изображения может выполнять внутреннее предсказание или внешнее предсказание на основе информации о блоке предсказания и информации о режиме предсказания, чтобы предсказывать блок предсказания. Декодер 230 данных изображения также может выполнять обратное преобразование для каждого подблока кодирования на основе информации о блоке преобразования подблока кодирования.
Фиг.3 иллюстрирует иерархические блоки кодирования согласно одному иллюстративному варианту осуществления.
Ссылаясь на Фиг.3, иерархические блоки кодирования могут включать в себя блоки кодирования, чьи ширины и высоты равны 64×64, 32×32, 16×16, 8×8 и 4×4. Кроме этих блоков кодирования, имеющих идеальные квадратные формы, также могут существовать блоки кодирования, чьи ширина и высоты равны 64×32, 32×64, 32×16, 16×32, 16×8, 8×16, 8×4 и 4×8.
Ссылаясь на Фиг.3, для данных 310 изображения, чье разрешение равно 1920×1080, размер максимального блока кодирования устанавливается на 64×64, и максимальная глубина устанавливается на 2.
Для данных 320 изображения, чье разрешение равняется 1920×1080, размер максимального блока кодирования устанавливается на 64×64, и максимальная глубина устанавливается на 3. Для данных 330 изображения, чье разрешение равняется 352×288, размер максимального блока кодирования устанавливается на 16×16, и максимальная глубина устанавливается на 1.
Когда разрешение является высоким или величина данных является большой, максимальный размер блока кодирования может быть относительно большим, чтобы увеличивать коэффициент сжатия и точно отражать характеристики изображения. Соответственно, для данных 310 и 320 изображения, имеющих более высокое разрешение, чем данные 330 изображения, 64×64 может выбираться как размер максимального блока кодирования.
Максимальная глубина показывает полное количество слоев в иерархических блоках кодирования. Так как максимальная глубина данных 310 изображения равняется 2, блок 315 кодирования данных 310 изображения может включать в себя максимальный блок кодирования, чей размер более длинной оси равняется 64, и подблоки кодирования, чьи размеры более длинных осей равняются 32 и 16, согласно увеличению глубины.
С другой стороны, так как максимальная глубина данных 330 изображения равняется 1, блок 335 кодирования данных 330 изображения может включать в себя максимальный блок кодирования, чей размер более длинной оси равняется 16, и блоки кодирования, чьи размеры более длинных осей равняются 8 и 4, согласно увеличению глубины.
Однако так как максимальная глубина данных 320 изображения равняется 3, блок 325 кодирования данных 320 изображения может включать в себя максимальный блок кодирования, чей размер более длинной оси равняется 64, и подблоки кодирования, чьи размеры более длинных осей равняются 32, 16, 8 и 4, согласно увеличению глубины. Так как изображение кодируется на основе более маленького подблока кодирования по мере того, как глубина увеличивается, текущий иллюстративный вариант осуществления является подходящим для кодирования изображения, включающего в себя больше минутных сцен.
Фиг.4 является блок-схемой кодера 400 изображений на основе блока кодирования согласно одному иллюстративному варианту осуществления. Блок 410 внутреннего предсказания выполняет внутреннее предсказание над блоками предсказания внутреннего режима в текущем кадре 405, и блок 420 оценки движения и блок 425 компенсации движения выполняют внешнее предсказание и компенсацию движения над блоками предсказания внешнего режима посредством использования текущего кадра 405 и опорного кадра 495.
Остаточные значения генерируются на основе блоков предсказания, выводимых из блока 410 внутреннего предсказания, блока 420 оценки движения, и блока 425 компенсации движения, и затем выводятся как квантованные коэффициенты преобразования посредством прохождения через преобразователь 430 и блок 440 квантования.
Квантованные коэффициенты преобразования восстанавливаются в остаточные значения посредством прохождения через блок 460 обратного квантования и обратный преобразователь 470, подвергаются постобработке посредством прохождения через блок 480 удаления блочности и блок 490 контурной фильтрации, и затем выводятся как опорный кадр 495. Квантованные коэффициенты преобразования могут выводиться как битовый поток 455 посредством прохождения через энтропийный кодер 450.
Чтобы выполнять кодирование на основе способа кодирования согласно одному иллюстративному варианту осуществления, компоненты кодера 400 изображений, т.е. блок 410 внутреннего предсказания, блок 420 оценки движения, блок 425 компенсации движения, преобразователь 430, блок 440 квантования, энтропийный кодер 450, блок 460 обратного квантования, обратный преобразователь 470, блок 480 удаления блочности, и блок 490 контурной фильтрации, могут выполнять обработку кодирования изображений на основе максимального блока кодирования, подблоков кодирования согласно глубинам, блока предсказания, и блока преобразования.
Фиг.5 является блок-схемой декодера 500 изображений на основе блока кодирования согласно одному иллюстративному варианту осуществления. Ссылаясь на Фиг.5, осуществляется синтаксический разбор битового потока 505 посредством блока 510 синтаксического разбора, чтобы получать закодированные данные изображения, подлежащие декодированию, и информацию кодирования, которая необходима для декодирования. Закодированные данные изображения выводятся как обратным образом квантованные данные посредством прохождения через энтропийный декодер 520 и блок 530 обратного квантования, и восстанавливаются в остаточные значения посредством прохождения через обратный преобразователь 540. Остаточные значения восстанавливаются согласно блокам кодирования посредством добавления к результату внутреннего предсказания блока 550 внутреннего предсказания или результату компенсации движения блока 560 компенсации движения. Восстановленные блоки кодирования используются для предсказания следующих блоков кодирования или следующего кадра посредством прохождения через блок 570 удаления блочности и блок 580 контурной фильтрации.
Чтобы выполнять декодирование на основе способа декодирования согласно одному иллюстративному варианту осуществления, компоненты декодера 500 изображений, т.е. блок 510 синтаксического разбора, энтропийный декодер 520, блок 530 обратного квантования, обратный преобразователь 540, блок 550 внутреннего предсказания, блок 560 компенсации движения, блок 570 удаления блочности, и блок 580 контурной фильтрации, могут выполнять обработки декодирования изображения на основе максимального блока кодирования, подблоков кодирования согласно глубинам, блока предсказания, и блока преобразования.
В частности, блок 550 внутреннего предсказания и блок 560 компенсации движения определяют блок предсказания и режим предсказания в подблоке кодирования учитывая максимальный блок кодирования и глубину, и обратный преобразователь 540 выполняет обратное преобразование учитывая размер блока преобразования.
Фиг.6 иллюстрирует максимальный блок кодирования, подблок кодирования и блок предсказания согласно одному иллюстративному варианту осуществления. Устройство 100 для кодирования изображения, проиллюстрированное на Фиг.1, и устройство 200 для декодирования изображения, проиллюстрированное на Фиг.2, используют иерархические блоки кодирования, чтобы выполнять кодирование и декодирование с учетом характеристик изображения. Максимальный блок кодирования и максимальная глубина могут адаптивно устанавливаться согласно характеристикам изображения или различным образом устанавливаться согласно требованиям пользователя.
На Фиг.6, структура 600 иерархического блока кодирования имеет максимальный блок 610 кодирования, чья высота и ширина равняются 64 и максимальная глубина равняется 4. Глубина увеличивается вдоль вертикальной оси структуры 600 иерархического блока кодирования, и по мере того, как глубина увеличивается, высоты и ширины подблоков с 620 по 650 кодирования уменьшаются. Блоки предсказания максимального блока 610 кодирования и подблоки с 620 по 650 кодирования показаны вдоль горизонтальной оси структуры 600 иерархического блока кодирования.
Максимальный блок 610 кодирования имеет глубину, равную 0, и размер блока кодирования, т.е. высоту и ширину, равный 64×64. Глубина увеличивается вдоль вертикальной оси, и существует подблок 620 кодирования, чей размер равняется 32×32 и глубина равняется 1, подблок 630 кодирования, чей размер равняется 16×16 и глубина равняется 2, подблок 640 кодирования, чей размер равняется 8×8 и глубина равняется 3, и подблок 650 кодирования, чей размер равняется 4×4 и глубина равняется 4. Подблок 650 кодирования, чей размер равняется 4×4 и глубина равняется 4, является минимальным блоком кодирования, и минимальный блок кодирования может разделяться на блоки предсказания, каждый из которых меньше, чем минимальный блок кодирования.
Ссылаясь на Фиг.6, примеры блока предсказания показаны вдоль горизонтальной оси согласно каждой глубине. То есть блок предсказания максимального блока 610 кодирования, чья глубина равняется 0, может быть блоком предсказания, чей размер равняется блоку 610 кодирования, т.е. 64×64, или блоком 612 предсказания, чей размер равняется 64×32, блоком 614 предсказания, чей размер равняется 32×64, или блоком 616 предсказания, чей размер равняется 32×32, который имеет размер, более маленький, чем блок 610 кодирования, чей размер равняется 64×64.
Блок предсказания блока 620 кодирования, чья глубина равняется 1 и размер равняется 32×32, может быть блоком предсказания, чей размер равняется блоку 620 кодирования, т.е. 32×32, или блоком 622 предсказания, чей размер равняется 32×16, блоком 624 предсказания, чей размер равняется 16×32, или блоком 626 предсказания, чей размер равняется 16×16, который имеет размер, более маленький, чем блок 620 кодирования, чей размер равняется 32×32.
Блок предсказания блока 630 кодирования, чья глубина равняется 2 и размер равняется 16×16, может быть блоком предсказания, чей размер равняется блоку 630 кодирования, т.е. 16×16, или блоком 632 предсказания, чей размер равняется 16×8, блоком 634 предсказания, чей размер равняется 8×16, или блоком 636 предсказания, чей размер равняется 8×8, который имеет размер, более маленький, чем блок 630 кодирования, чей размер равняется 16×16.
Блок предсказания блока 640 кодирования, чья глубина равняется 3 и размер равняется 8×8, может быть блоком предсказания, чей размер равняется блоку 640 кодирования, т.е. 8×8, или блоком 642 предсказания, чей размер равняется 8×4, блоком 644 предсказания, чей размер равняется 4×8, или блоком 646 предсказания, чей размер равняется 4×4, который имеет размер, более маленький, чем блок 640 кодирования, чей размер равняется 8×8.
В заключение, блок 650 кодирования, чья глубина равняется 4 и размер равняется 4×4, является минимальным блоком кодирования и блоком кодирования максимальной глубины, и блок предсказания блока 650 кодирования может быть блоком 650 предсказания, чей размер равняется 4×4, блоком 652 предсказания, имеющим размер 4×2, блоком 654 предсказания, имеющим размер 2×4, или блоком 656 предсказания, имеющим размер 2×2.
Фиг.7 иллюстрирует блок кодирования и блок преобразования согласно одному иллюстративному варианту осуществления. Устройство 100 для кодирования изображения, проиллюстрированное на Фиг.1, и устройство 200 для декодирования изображения, проиллюстрированное на Фиг.2, выполняют кодирование и декодирование с самым максимальным блоком кодирования или с подблоками кодирования, которые являются равными или более маленькими, чем максимальный блок кодирования, разделенными из максимального блока кодирования. В кодировании и обработке декодирования, размер блока преобразования для преобразования может выбираться, чтобы не быть более большим, чем размер соответствующего блока кодирования. Например, ссылаясь на Фиг.7, когда текущий блок 710 кодирования имеет размер 64×64, преобразование может выполняться с использованием блока 720 преобразования, имеющего размер 32×32.
Фиг.8a-8d иллюстрируют формы разделения блока кодирования, блока предсказания и блока преобразования согласно одному иллюстративному варианту осуществления. Конкретно, Фиг.8a и 8b иллюстрируют блок кодирования и блок предсказания согласно одному иллюстративному варианту осуществления.
Фиг.8a показывает форму разделения, выбранную посредством устройства 100 для кодирования изображения, проиллюстрированного на Фиг.1, чтобы кодировать максимальный блок 810 кодирования. Устройство 100 для кодирования изображения разделяет максимальный блок 810 кодирования на различные формы, выполняет над этим кодирование, и выбирает оптимальную форму разделения посредством сравнения результатов кодирования различных форм разделения друг с другом на основе затрат согласно RD. Когда является оптимальным, чтобы максимальный блок 810 кодирования кодировался как он есть, максимальный блок 810 кодирования может кодироваться без разделения максимального блока 810 кодирования, как проиллюстрировано на Фиг.8a-8d.
Ссылаясь на Фиг.8b, максимальный блок 810 кодирования, чья глубина равняется 0, кодируется посредством разделения его на подблоки кодирования, чьи глубины являются равными или большими, чем 1. То есть максимальный блок 810 кодирования разделяется на четыре подблока кодирования, чьи глубины равняются 1, и все или некоторые подблоки кодирования, чьи глубины равняются 1, разделяются на подблоки кодирования, чьи глубины равняются 2.
Подблок кодирования, расположенный в верхней правой стороне, и подблок кодирования, расположенный в нижней левой стороне, среди подблоков кодирования, чьи глубины равняются 1, разделяются на подблоки кодирования, чьи глубины равны или больше, чем 2. Некоторые из подблоков кодирования, чьи глубины являются равными или большими, чем 2, могут разделяться на подблоки кодирования, чьи глубины равны или больше, чем 3.
Фиг.8b показывает форму разделения блока предсказания для максимального блока 810 кодирования. Ссылаясь на Фиг.8b, блок 860 предсказания для максимального блока 810 кодирования может разделяться отлично от максимального блока 810 кодирования. Другими словами, блок предсказания для каждого из подблоков кодирования может быть более маленьким, чем соответствующий подблок кодирования.
Например, блок предсказания для подблока 854 кодирования, расположенного в нижней правой стороне среди подблоков кодирования, чьи глубины равняются 1, может быть более маленьким, чем подблок 854 кодирования. В дополнение, блоки предсказания для некоторых подблоков 814, 816, 850 и 852 кодирования из подблоков 814, 816, 818, 828, 850 и 852 кодирования, чьи глубины равняются 2, могут быть более маленькими, чем подблоки 814, 816, 850 и 852 кодирования, соответственно.
В дополнение, блоки предсказания для подблоков 822, 832 и 848 кодирования, чьи глубины равняются 3, могут быть более маленькими, чем подблоки 822, 832 и 848 кодирования, соответственно. Блоки предсказания могут иметь некоторую форму, в силу чего соответствующие подблоки кодирования равным образом разделяются на два в направлении высоты или ширины, или иметь форму, в силу чего соответствующие подблоки кодирования равным образом разделяются на четыре в направлениях высоты и ширины.
Фиг.8c и 8d иллюстрируют блок предсказания и блок преобразования согласно одному иллюстративному варианту осуществления.
Фиг.8c показывает форму разделения блока предсказания для максимального блока 810 кодирования, показанного на Фиг.8b, и Фиг.8d показывает форму разделения блока преобразования максимального блока 810 кодирования.
Ссылаясь на Фиг.8d, форма разделения блока 870 преобразования может устанавливаться отлично от блока 860 предсказания.
Например, даже хотя блок предсказания для блока 854 кодирования, чья глубина равняется 1, выбирается с некоторой формой, в силу чего высота блока 854 кодирования равным образом разделяется на два, блок преобразования может выбираться с таким же размером как блок 854 кодирования. Подобным образом, даже хотя блоки предсказания для блоков 814 и 850 кодирования, чьи глубины равняются 2, выбираются с некоторой формой, в силу чего высота каждого из блоков 814 и 850 кодирования равным образом разделяется на два, блок преобразования может выбираться с таким же размером как исходный размер каждого из блоков 814 и 850 кодирования.
Блок преобразования может выбираться с более маленьким размером, чем блок предсказания. Например, когда блок предсказания для блока 852 кодирования, чья глубина равняется 2, выбирается с некоторой формой, в силу чего ширина блока 852 кодирования равным образом разделяется на два, блок преобразования может выбираться с некоторой формой, в силу чего блок 852 кодирования равным образом разделяется на четыре в направлениях высоты и ширины, которая имеет более маленький размер, чем форма блока предсказания.
Фиг.9 является блок-схемой устройства 900 интерполяции изображений согласно одному иллюстративному варианту осуществления. Интерполяция изображений может использоваться, чтобы преобразовывать изображение, имеющее низкое разрешение, в изображение, имеющее высокое разрешение. Также, интерполяция изображений может использоваться, чтобы преобразовывать чересстрочное изображение в построчное изображение, или может использоваться, чтобы увеличивать количество пикселей в изображении, имеющем низкое разрешение, для получения более высокого разрешения. Когда кодер 400 изображений из Фиг.4 кодирует изображение, блок 420 оценки движения и блок 425 компенсации движения могут выполнять внешнее предсказание посредством использования интерполированного опорного кадра. То есть, ссылаясь на Фиг.4, изображение, имеющее высокое разрешение, может генерироваться посредством интерполяции опорного кадра 495, и оценка и компенсация движения могут выполняться на основе изображения, имеющего высокого разрешения, тем самым увеличивая точность внешнего предсказания. Подобным образом, когда декодер 500 изображений из Фиг.5 декодирует изображение, блок 550 компенсации движения может выполнять компенсацию движения посредством использования интерполированного опорного кадра, тем самым увеличивая точность внешнего предсказания.
Ссылаясь на Фиг.9, устройство 900 интерполяции изображений включает в себя преобразователь 910 и обратный преобразователь 920.
Преобразователь 910 преобразовывает пиксельные значения посредством использования множества базисных функций, имеющих разные частоты. Преобразование может быть одним из различных обработок преобразования пиксельных значений в пространственной области в коэффициенты частотной области, и может быть, например, DCT, как описано выше. Пиксельные значения целочисленной пиксельной единицы преобразуются с использованием множества базисных функций. Пиксельные значения могут быть пиксельными значениями компонентов яркости или компонентов хроматичности. Тип множества базисных функций не ограничивается, и может быть одним из различных типов функций для преобразования пиксельных значений в пространственной области в значение (значения) частотной области. Например, множество базисных функций могут быть косинусными функциями для выполнения DCT или обратного DCT. Также, могут использоваться различные типы базисных функций, такие как синусоидальные базисные функции или полиномиальные базисные функции. Примеры DCT могут включать в себя модифицированное DCT, и модифицированное DCT, которое использует окна.
Обратный преобразователь 920 сдвигает фазы множества базисных функций, используемых для выполнения преобразования, посредством преобразователя 910, и осуществляет обратное преобразование множества коэффициентов, т.е. значений частотной области, которые генерируются посредством преобразователя 910, посредством использования множества базисных функций, фазы которых сдвинуты. Преобразование, выполненное посредством преобразователя 910, и обратное преобразование, выполненное посредством обратного преобразователя 920, теперь будут описываться посредством использования двумерного (2D) DCT и одномерного (1D) DCT.
<DCT 2D и обратное DCT 2D>
Фиг.10 является диаграммой, иллюстрирующей способ интерполяции 2D, выполняемый посредством устройства 900 интерполяции изображений из Фиг.9 согласно одному иллюстративному варианту осуществления. Ссылаясь на Фиг.10, устройство 900 интерполяции изображений генерирует пиксельные значения в местоположениях X, т.е. местоположениях интерполяции, посредством интерполяции между пиксельными значениями целочисленных пиксельных единиц в пространственной области, например, пиксельными значениями в местоположениях O в блоке 1000. Пиксельные значения в местоположениях X являются пиксельными значениями дробных пиксельных единиц, местоположения интерполяции которых определяются посредством 'αx' и 'αy'. Хотя Фиг.10 иллюстрирует случай, где блок 1000 имеет размер 4×4, размер блока 1000 не ограничен 4×4, и специалистам в данной области техники должно быть очевидно, что пиксельные значения дробных пиксельных единиц могут генерироваться посредством выполнения DCT 2D и обратного DCT 2D над блоком, который является более маленьким или более большим, чем блок 1000.
Сначала, преобразователь 910 выполняет DCT 2D над пиксельными значениями целочисленных пиксельных единиц. DCT 2D может выполняться согласно следующему уравнению:
Figure 00000001
где 'C' обозначает блок, который включает в себя коэффициенты частотной области, полученные посредством выполнения DCT 2D, 'REF' обозначает блок 1000, над которым выполняется DCT, 'D(x)' является матрицей для выполнения DCT в направлении оси X, т.е. горизонтальном направлении, и 'D(y)' обозначает матрицу для выполнения DCT в направлении оси Y, т.е. вертикальном направлении. Здесь, 'D(x)' и 'D(y)' могут определяться посредством следующего уравнения (2):
Figure 00000002
где 'k' и 'l' обозначают целые числа, при этом каждое удовлетворяет условию, выраженному в Уравнении (2), 'Dkl(x)' обозначает kую строку и lый столбец квадратной матрицы D(x), и Sx обозначает горизонтальный и вертикальный размеры квадратной матрицы D(x).
Figure 00000003
где 'k' и 'l' обозначают целые числа, при этом каждое удовлетворяет условию, выраженному в Уравнении (3), Dkl(y) обозначает kую строку и lый столбец квадратной матрицы D(y), и Sy обозначает горизонтальный и вертикальный размеры квадратной матрицы D(y).
Преобразователь 910 выполняет DCT 2D над блоком 1000 посредством вычисления Уравнения (1), и обратный преобразователь 920 выполняет обратное DCT 2D над коэффициентами частотной области, сгенерированными посредством преобразователя 910, посредством вычисления следующего уравнения:
Figure 00000004
где 'P' обозначает блок, включающий в себя пиксельные значения в местоположении интерполяции, т.е. местоположении X, которые получены посредством выполнения обратного DCT. По сравнению с Уравнением (1), Уравнение (4) получается посредством умножения обоих сторон блока C на 'W(x)' и 'W(y)', соответственно, так, чтобы выполнять обратное DCT над блоком C. Здесь, 'W(x)' обозначает матрицу для выполнения обратного DCT в горизонтальном направлении, и 'W(y)' обозначает выполнение обратного DCT в вертикальном направлении.
Как описано выше, обратный преобразователь 920 использует множество базисных функций, фазы которых сдвинуты, так, чтобы выполнять обратное DCT 2D. 'W(x)' и 'W(y)' могут определяться посредством следующих уравнений (5) и (6):
Figure 00000005
где 'l' и 'k' обозначают целые числа, при этом каждое удовлетворяет условию, выраженному в Уравнении (5), 'Wlk(x)' обозначает lую строку и kый столбец квадратной матрицы W(x), и Sx обозначает горизонтальный и вертикальный размеры квадратной матрицы W(x). αx обозначает горизонтальное местоположение интерполяции, как проиллюстрировано на Фиг.10, и может быть дробным числом, например, 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16, или.... Однако дробное число не является ограниченным этим, и αx может быть вещественным числом.
Figure 00000006
где 'l' и 'k' обозначают целые числа, при этом каждое удовлетворяет условию, выраженному в Уравнении (6), 'Wlk(y)' обозначает lую строку и kый столбец квадратной матрицы W(y), и Sy обозначает горизонтальный и вертикальный размеры квадратной матрицы W(y). αy обозначает вертикальное местоположение интерполяции, как проиллюстрировано на Фиг.10, и может быть дробным числом, например, 1/2, 1/4, 3/4,1/8, 3/8, 5/8, 7/8, 1/16, или.... Однако дробное число не является ограниченным этим, и αy может быть вещественным числом.
По сравнению Уравнениями (2) и (3), фазы множества базисных функций, используемых обратным преобразователем 920, т.е. множества косинусных функций, сдвигаются посредством 2αx и 2αy, соответственно, в Уравнениях (5) и (6). Если обратный преобразователь 920 выполняет обратное DCT 2D на основе множества косинусных функций, фазы которых сдвинуты, как выражено в Уравнениях (5) и (6), то генерируются пиксельные значения местоположений X.
Фиг.11 является диаграммой, иллюстрирующей область 1110 интерполяции согласно одному иллюстративному варианту осуществления. Когда преобразователь 910 и обратный преобразователь 920 из Фиг.9 генерируют пиксельные значения над местоположениями интерполяции посредством выполнения DCT 2D и обратного DCT 2D, соответственно, может использоваться область 1120, которая является более большой, чем блок, который должен интерполироваться, т.е. область 1110 интерполяции. В общем, точность интерполяции может понижаться на границах области 1110 интерполяции, и, таким образом, корреляция между пиксельными значениями, смежными с местоположением интерполяции, может рассматриваться для интерполяции. Устройство 900 интерполяции изображений из Фиг.9 выполняет DCT 2D над пиксельными значениями, включенными в область 1110 интерполяции, и затем выполняет обратное DCT 2D над результатом выполнения DCT 2D, при этом корреляция между пиксельными значениями, содержащимися в области 1110 интерполяции, и пиксельными значениями вне области 1110 интерполяции не рассматривается.
Таким образом, устройство 900 интерполяции изображений выполняет интерполяцию над областью 1120, которая является более большой, чем область 1110 интерполяции, и включает в себя область 1110 интерполяции и область, смежную с областью 1110 интерполяции, и использует пиксельные значения в области 1110 интерполяции для компенсации движения.
<DCT 1D и обратное DCT 1D>
Фиг.12 является диаграммой, иллюстрирующей способ интерполяции 1D согласно одному иллюстративному варианту осуществления. Ссылаясь на Фиг.12, устройство 900 интерполяции изображений из Фиг.9 генерирует пиксельное значение 1200 в местоположении интерполяции посредством интерполяции между пиксельным значением 1210 и пиксельным значением 1220 целочисленных пиксельных единиц в пространственной области. Пиксельное значение 1200 является пиксельным значением дробной пиксельной единицы, местоположение интерполяции которого определяется посредством 'α'. Способ интерполяции 1D согласно текущему иллюстративному варианту осуществления будет подробно описываться ниже со ссылкой на Фиг.13.
Фиг.13 является диаграммой, конкретно иллюстрирующей способ интерполяции 1D, выполняемый посредством устройства 900 интерполяции изображений из Фиг.9 согласно одному иллюстративному варианту осуществления. Ссылаясь на Фиг.13, множество смежных пиксельных значений 1310 и 1320, которые включают в себя пиксельные значения 1210 и 1220 целочисленных пиксельных единиц, соответственно, используются, чтобы генерировать пиксельное значение 1200 дробной пиксельной единицы посредством интерполяции между двумя пиксельными значениями 1210 и 1220. Другими словами, DCT 1D выполняется над пиксельными значениями с -(M-1)ого по Mтое, т.е. 2M пиксельными значениями, обратное DCT 1D выполняется над результатом выполнения DCT 1D, на основе множества базисных функций, фазы которых сдвинуты, тем самым, интерполируя между 0ым пикселем и 1ым пикселем. Фиг.13 иллюстрирует случай, где M=6, но 'M' не ограничено 6 и может являться любым положительным целым числом, большим, чем 0.
Также, Фиг.12 и 13 иллюстрируют случаи, где интерполяция выполняется между пиксельными значениями, смежными в горизонтальном направлении, но специалистам в данной области техники должно быть очевидно, что могут использоваться способы интерполяции 1D из Фиг.12 и 13, чтобы интерполировать между пиксельными значениями, смежными в вертикальном направлении или диагональном направлении (см. Фиг.18A и 18B для больших подробностей).
Преобразователь 910 выполняет DCT 1D над пиксельными значениями целочисленных пиксельных единиц. DCT 1D может выполняться посредством вычисления следующего уравнения:
Figure 00000007
где 'p(l)' обозначает пиксельные значения с -(M-1)ого по Mтое, например, с -5ое по 6ое пиксельные значения 1310 и 1320, проиллюстрированные на Фиг.13, и 'Ck' обозначает множество коэффициентов, полученных посредством выполнения DCT 1D над пиксельными значениями. Здесь, 'k' обозначает положительное целое число, удовлетворяющее условию, выраженному в Уравнении (7).
Когда преобразователь 910 выполняет DCT 1D над пиксельными значениями 1310 и 1320 посредством вычисления Уравнения (7), обратный преобразователь 920 выполняет обратное DCT 1D над коэффициентами частотной области, сгенерированными посредством преобразователя 910, посредством вычисления следующего уравнения (8).
Figure 00000008
где 'α' обозначает местоположение интерполяции между двумя пиксельными значениями, как описано выше со ссылкой на Фиг.13, и может быть одним из различных дробных чисел, например, 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16, .... Дробные числа не ограничены, и 'α' может быть вещественным числом. 'P(α)' обозначает пиксельное значение 1200 в местоположении интерполяции, сгенерированном посредством выполнения обратного DCT 1D. По сравнению Уравнением (7), фаза косинусной функции, выраженной в Уравнении (8), которая является базисной функцией, используемой для выполнения обратного DCT 1D, определяется посредством дробного числа 'α', другого, нежели целое число 'l', и, таким образом, является отличной от фазы базисной функции, используемой для выполнения DCT 1D.
Фиг.14 является блок-схемой устройства 1400 интерполяции изображений согласно одному иллюстративному варианту осуществления. Ссылаясь на Фиг.14, устройство 1400 интерполяции изображений включает в себя селектор 1410 фильтров и интерполятор 1420. Устройство 900 интерполяции изображений из Фиг.9 преобразовывает изображение и обратным образом преобразовывает результат преобразования на основе множества базисных функций, фазы которых сдвинуты. Однако, если преобразование и обратное преобразование выполняются всякий раз, когда пиксельные значения вводятся в устройство 900 интерполяции изображений, требуемая величина вычисления является большой, тем самым, уменьшая рабочую скорость системы обработки изображений.
Таким образом, интерполяция изображений может быстро выполняться в пространственной области без необходимости преобразовывать пространственную область в частотную область посредством вычисления коэффициентов фильтра для выполнения преобразования и обратного преобразования, описанных выше, и затем фильтрации пиксельных значений в пространственной области, которые подлежат вводу в устройство 1400 интерполяции изображений, посредством использования вычисленных коэффициентов фильтра.
Селектор 1410 фильтров принимает информацию относительно местоположения интерполяции и выбирает фильтр, подлежащий использованию для интерполяции. Как описано выше, фильтр используется, чтобы преобразовывать пиксельные значения на основе множества базисных функций, имеющих разные частоты, и чтобы обратным образом преобразовывать множество коэффициентов, которые получены посредством преобразования, на основе множества базисных функций, фазы которых сдвинуты. Коэффициенты фильтра могут изменяться согласно местоположению интерполяции, и фильтр выбирается согласно местоположению интерполяции.
Как описано выше со ссылкой на Фиг.9, пиксельные значения преобразовываются с использованием множества базисных функций, имеющих разные частоты, и фазы множества базисных функций, имеющих разные частоты, сдвигаются согласно местоположению интерполяции так, чтобы выполнять обратное преобразование. Затем, пиксельные значения в местоположении интерполяции могут интерполироваться посредством обратного преобразования множества коэффициентов посредством использования множества базисных функций, фазы которых сдвинуты. Другими словами, если преобразование выполняется на основе пиксельных значений целочисленных пиксельных единиц и обратное преобразование выполняется на основе множества базисных функций, фазы которых сдвинуты, согласно местоположению интерполяции, тогда пиксельные значения, по меньшей мере, одной дробной пиксельной единицы могут генерироваться для различных местоположений интерполяции. Таким образом, селектор 1410 фильтров из Фиг.14 заранее задает множество фильтров для выполнения преобразования и выполнения обратного преобразования на основе разных базисных функций, и выбирает один из заранее заданных фильтров, на основе информации относительно местоположения интерполяции.
Интерполятор 1420 выполняет интерполяцию посредством использования фильтра, выбранного посредством селектора 1410 фильтров. Конкретно, интерполяция выполняется посредством фильтрации множества пиксельных значений целочисленных пиксельных единиц на основе выбранного фильтра. В результате интерполяции получают пиксельное значение (значения) в предварительно определенном местоположении интерполяции, т.е. пиксельное значение (значения) дробной пиксельной единицы,. Ссылаясь на Фиг.10, если блок, который включает в себя множество пиксельных значений целочисленных пиксельных единиц, фильтруется с помощью фильтра 2D, то генерируются множество пиксельных значений в местоположениях интерполяции, каждое из которых определяется посредством 'αx' и 'αy'. Ссылаясь на Фиг.13, если строка или столбец, включающий в себя множество пиксельных значений целочисленных пиксельных единиц, фильтруется с помощью фильтра 1D, то генерируются множество пиксельных значений на интерполяциях α. Теперь ниже со ссылкой на сопровождающие чертежи будут описываться способы интерполяции, выполняемые с использованием фильтра 2D и фильтра 1D, соответственно.
<Фильтр 2D>
Figure 00000009
, как описано выше в отношении Уравнения (4). Это уравнение также может быть выражено следующим образом:
Figure 00000010
где 'F(x)' обозначает фильтр для преобразования блока REF в горизонтальном направлении и для обратного преобразования результата преобразования в горизонтальном направлении посредством использования множества базисных функций, фазы которых сдвинуты. 'F(y)' обозначает фильтр для преобразования блока REF в вертикальном направлении и для обратного преобразования результата преобразования в вертикальном направлении посредством использования множества базисных функций, фазы которых сдвинуты. Например, 'F(x)' может обозначать фильтр для выполнения DCT над блоком REF в горизонтальном направлении, и выполнения обратного DCT над результатом выполнения в горизонтальном направлении посредством использования множества косинусных функций, фазы которых сдвинуты. 'F(y)' может обозначать фильтр для выполнения DCT над блоком REF в вертикальном направлении, и выполнения обратного DCT над результатом выполнения в вертикальном направлении посредством использования множества косинусных функций, фазы которых сдвинуты.
Согласно Уравнениям (2), (3), (5), и (6), фильтры F(x) и F(y) могут определяться посредством следующих Уравнений (10) и (11):
Figure 00000011
где 'k' и 'l' обозначают целые числа, при этом каждое удовлетворяет условию, выраженному в Уравнении (10), 'Fkl(x)' обозначает kую строку и lый столбец матрицы F(x), и Sx обозначает горизонтальные и вертикальные размеры квадратных матриц W(x) и D(x). Так как квадратные матрицы W(x) и D(x) имеют один и тот же размер, их горизонтальные и вертикальные размеры являются также одинаковыми. 'Wkn(x)' обозначает kую строку и nый столбец квадратной матрицы W(x), описанной выше в отношении Уравнения (5). Dnl(x) обозначает nую строку и lый столбец квадратной матрицы D(x), описанной выше в отношении Уравнения (2).
Figure 00000012
где 'k' и 'l' обозначают целые числа, при этом каждое удовлетворяет условию, выраженному в Уравнении (11), 'Fkl(y)' обозначает kую строку и lый столбец матрицы F(y), и Sy обозначает горизонтальные и вертикальные размеры квадратных матриц W(y) и D(y). Так как квадратные матрицы W(y) и D(y) имеют один и тот же размер, их горизонтальные и вертикальные размеры также являются одинаковыми. 'Wnl(y)' обозначает nую строку и lый столбец квадратной матрицы W(y), описанной выше в отношении Уравнения (5). 'Dkn(y)' обозначает kую строку и nый столбец квадратной матрицы D(y), описанной выше в отношении Уравнения (2).
Если интерполяция выполняется посредством увеличения битовых глубин фильтров F(x) и F(y), точность фильтрации может улучшаться. Таким образом, согласно одному иллюстративному варианту осуществления, коэффициенты фильтров F(x) и F(y) увеличиваются посредством умножения их на предварительно определенное значение, и изображение может интерполироваться с использованием этих фильтров, содержащих увеличенные коэффициенты. В этом случае, Уравнение (9) может изменяться следующим образом:
Figure 00000013
где 'F'(x)' обозначает фильтр, масштабированный посредством умножения коэффициентов фильтра F(x) на масштабирующий коэффициент 'S' и округления результата умножения до целого числа, и 'F'(y)' обозначает фильтр, полученный посредством умножения коэффициентов фильтра F(y) на 'S' и округления результата умножения до целого числа. Так как интерполяция выполняется с использованием масштабированного фильтра, пиксельные значения в местоположениях интерполяции вычисляются и затем разделяются на 'S2', чтобы компенсировать эффект масштабирования.
Фиг.15 иллюстрирует фильтры интерполяции 2D согласно одному иллюстративному варианту осуществления. Конкретно, Фиг.15 иллюстрирует коэффициенты фильтра, масштабированные согласно Уравнению (2). То есть, Фиг.15 иллюстрирует фильтры интерполяции 2D F'(x), когда 'αx' равняется 1/4, 1/2, и 3/4, при этом фильтры интерполяции 2D F'(x) генерируются посредством умножения коэффициентов фильтра интерполяции 2D F(x) на масштабирующий коэффициент 213. Фильтр интерполяции 2D F'(y), когда 'αy' равняется 1/4, 1/2, и 3/4, может использоваться посредством транспонирования фильтра F'(x).
Ссылаясь на Фиг.14, если селектор 1410 фильтров выбирает один из фильтров интерполяции 2D из Фиг.15 на основе местоположения интерполяции, интерполятор 1420 генерирует пиксельные значения над местоположением интерполяции посредством вычисления Уравнения (9) или (12).
<Фильтр 1D>
DCT 1D согласно Уравнению (7) может быть выражено как следующий определитель:
Figure 00000014
где 'C' обозначает матрицу (2M×1) для 2M коэффициентов, описанных выше в отношении Уравнения (7), и 'REF' обозначает матрицу (2M×1) для пиксельных значений целочисленных пиксельных единиц, описанных выше в отношении Уравнения (7), т.е. P-(M-1),... по PM. Полное количество пиксельных значений, используемых для интерполяции, т.е. 2M, обозначает полное количество выводов фильтра интерполяции 1D. 'D' обозначает квадратную матрицу для DCT 1D, которая может определяться следующим образом:
Figure 00000015
где 'k' и 'l' обозначают целые числа, при этом каждое удовлетворяет условию, выраженному в Уравнении (14), 'Dkl' обозначает kую строку и lый столбец квадратной матрицы D для DCT 1D, выраженного в Уравнении (13), и 'M' было описано выше в отношении Уравнения (13).
DCT 1D с использованием множества базисных функций, фазы которых сдвинуты, согласно Уравнению (8) может выражаться как следующий определитель:
Figure 00000016
где 'P(α)' является таким же как 'P(α)', выраженное в Уравнении (8), и 'W(α)' обозначает матрицу (1×2M) для обратного DCT 1D с использованием множества базисных функций, фазы которых сдвинуты. 'W(α)' может определяться следующим образом:
Figure 00000017
где 'k' обозначает целое число, удовлетворяющее условию, выраженному в Уравнении (16), и 'Wk(α)' обозначает kый столбец матрицы W(α), описанной выше в отношении Уравнения (15). Фильтр интерполяции 1D F(α) для выполнения DCT 1D и обратного DCT 1D, который использует множество базисных функций, фазы которых сдвинуты, на основе Уравнений (13) и (15), может определяться следующим образом:
Figure 00000018
где 'k' и 'l' обозначают целые числа, при этом каждое удовлетворяет условию, выраженному в Уравнении (17), 'Fl(α)' обозначает lый столбец фильтра F(α), и 'W(α)' и 'D' являются такими же как 'W(α)' и 'D', выраженные в Уравнении (13).
Точность фильтрации может улучшаться посредством увеличения битовой глубины фильтра интерполяции 1D F(α) аналогично фильтру интерполяции 2D. Изображение может интерполироваться посредством увеличения коэффициентов фильтра интерполяции 1D F(α) посредством умножения их на предварительно определенное значение и с использованием фильтра интерполяции 1D F(α), содержащего увеличенные коэффициенты.
Например, интерполяция может выполняться посредством умножения фильтра интерполяции 1D F(α) на масштабирующий коэффициент '2ScalingBits' (ScalingBits-биты масштабирования). В этом случае,
Figure 00000019
, выраженное в Уравнении (17), может изменяться следующим образом:
Figure 00000020
где F'l(α) обозначает фильтр, масштабированный посредством умножения коэффициентов фильтра интерполяции 1D F(α) на масштабирующий коэффициент '2ScalingBits' и округления результата умножения до целого числа, 'REFl' обозначает lый столбец REF матрицы, выраженной в Уравнении (17), и '2ScalingBits-1' обозначает добавляемое значение для округления фильтрованного пиксельного значения. Пиксельное значение в местоположении интерполяции α вычисляется посредством умножения масштабированного фильтра F'l(α) на матрицу для пиксельных значений, результат вычисления округляется посредством добавления к нему значения '2ScalingBits-1', и результирующее значение сдвигается посредством бита 'ScalingBits' так, чтобы компенсировать эффект масштабирования.
Округление, используемое в Уравнениях, описанных выше, является только примером способа квантования коэффициентов фильтра. Чтобы обобщить способ квантования коэффициентов фильтра для облегчения понимания, коэффициенты фильтра могут модифицироваться и оптимизироваться, как выражено в последующих Уравнениях (19) и (20):
Figure 00000021
где 'Fl(α)' обозначает lый коэффициент фильтра, который не квантуется, 'f'l(α)' обозначает lый коэффициент фильтра, который квантуется, и 'ε' обозначает любое вещественное число, которое может выбираться согласно степени квантизации и может быть, например, 0,2*Fl(α). Согласно Уравнению (19), когда lый коэффициент Fl(α), который является вещественным числом, вычисляется согласно Уравнению с (13) по (17), тогда lый коэффициент Fl(α) изменяется на lый коэффициент f'l(α), удовлетворяющий Уравнению (19), тем самым, квантуя lый коэффициент Fl(α).
Когда коэффициенты фильтра масштабируются посредством предварительно определенного масштабирующего коэффициента, квантизация согласно Уравнению (19) может изменяться следующим образом:
Figure 00000022
где 'p' обозначает масштабирующий коэффициент (который может быть '2ScalingBits' и p*Fl(α) обозначает масштабированный коэффициент фильтра. Согласно Уравнению (20), 'p*Fl(α)' преобразовывается в 'F'l(α)'.
Фиг.16a-16f иллюстрируют фильтры интерполяции 1D согласно иллюстративным вариантам осуществления. На Фиг.16a-16f, масштабированные фильтры, описанные выше в отношении Уравнения (18), иллюстрируются согласно количеству выводов и местоположению интерполяции. Конкретно, Фиг.16a-16f иллюстрируют фильтр с 4 выводами, фильтр с 6 выводами, фильтр с 8 выводами, фильтр с 10 выводами, фильтр с 12 выводами, и фильтр с 14 выводами, соответственно. На Фиг.16a-16f, масштабирующий коэффициент для коэффициентов фильтра устанавливается на '256', т.е. ScalingBits устанавливается на '8'.
На Фиг.16a-16f, коэффициенты фильтра включают в себя коэффициенты для высокочастотных компонентов, в силу чего точность интерполяции и предсказания может увеличиваться, но эффективность сжатия изображения может деградировать вследствие высокочастотных компонентов. Однако интерполяция выполняется, чтобы увеличивать эффективность сжатия изображения, как описано выше со ссылкой на Фиг.9. Чтобы решать эту проблему, коэффициенты фильтра, проиллюстрированные на Фиг.16a-16f, могут регулироваться, чтобы увеличивать эффективность сжатия изображения в этом случае.
Например, абсолютное значение каждого из коэффициентов фильтра может уменьшаться, и каждый коэффициент фильтра в средней точке каждого фильтра может умножаться на более большое взвешенное значение, чем взвешенные значения, назначенные другим коэффициентам фильтра. Например, ссылаясь на Фиг.16b, в фильтре с 6 выводами для генерирования пиксельных значений в местоположении интерполяции 1/2, коэффициенты фильтра, {11, -43, 160, 160, -43, 11,} регулируются таким образом, что абсолютные значения для '11', '-43', и '160' могут уменьшаться и только '160' в средней точке фильтра с 6 выводами умножается на взвешенное значение.
Фиг.17a-17y иллюстрируют оптимизированные фильтры интерполяции 1D согласно иллюстративным вариантам осуществления. Фильтры, проиллюстрированные на Фиг.16a-16f, также могут регулироваться, чтобы легко осуществлять фильтр посредством аппаратного обеспечения. Когда Уравнение (17) или (18) вычисляется с использованием компьютера, коэффициенты фильтра могут оптимизироваться, чтобы минимизировать арифметическую операцию, например, битовый сдвиг двоичных чисел и сложение.
На Фиг.17a и 17b, величина вычисления, необходимая, чтобы выполнять фильтрацию для интерполяции каждого фильтра, показывается в обоих блоках "сложения" и "сдвига". Каждый из фильтров из Фиг.17a-17m включает в себя коэффициенты, оптимизированные, чтобы минимизировать блоки "сложения" и "сдвига" на соответствующем местоположении интерполяции.
Фиг.17a и 17b иллюстрируют фильтр с 6 выводами и фильтр с 12 выводами, оптимизированные, чтобы интерполировать изображение с точностью 1/4 пикселя, масштабированного посредством смещения 8 бит, соответственно. Фиг.17c, 17d и 17e иллюстрируют фильтры с 8 выводами, оптимизированные, чтобы интерполировать изображение с точностью 1/4 пикселя, масштабированного посредством смещения 8 бит. Фильтры с 8 выводами из Фиг.17c-17e классифицируются согласно, по меньшей мере, одному из тому, являются ли коэффициенты фильтра подлежащими оптимизации, и способу оптимизации коэффициентов фильтра. Фиг.fи 17g иллюстрируют фильтры с 8 выводами, оптимизированные, чтобы интерполировать изображение с точностью 1/4 пикселя, масштабированного посредством смещения 6 бит. Фильтры Фиг.17f и 17g могут классифицироваться согласно способу оптимизации коэффициентов фильтра.
Фиг.17h иллюстрирует фильтр с 6 выводами, оптимизированный, чтобы интерполировать изображение с точностью 1/8 пикселя, масштабированного посредством смещения 6 бит. Фиг.17i иллюстрирует фильтр с 6 выводами, оптимизированный, чтобы интерполировать изображение с точностью 1/8 пикселя, масштабированного посредством смещения 8 бит.
Фиг.17j и 17k иллюстрируют фильтры с 4 выводами, оптимизированные, чтобы интерполировать изображение с точностью 1/8 пикселя, масштабированного посредством смещения 5 бит. Фильтры Фиг.17j и 17k могут классифицироваться согласно способу оптимизации коэффициентов фильтра. Фиг.17l и 17m иллюстрируют фильтры с 4 выводами, оптимизированные, чтобы интерполировать изображение с точностью 1/8 пикселя, масштабированного посредством смещения 8 бит. Фильтры Фиг.17l и 17m также могут классифицироваться согласно способу оптимизации коэффициентов фильтра.
Фиг.17n-17y иллюстрируют фильтр с 4 выводами, фильтр с 6 выводами, фильтр с 8 выводами, фильтр с 10 выводами, и фильтр с 12 выводами, оптимизированные, чтобы интерполировать изображение с точностью 1/8 пикселя, масштабированного посредством смещения 8 бит, соответственно. Фильтры Фиг.17n-17y являются отличающимися от фильтров из Фиг.17a-17m в том, что некоторые из коэффициентов фильтра являются другими, но являются такими же как фильтры из Фиг.17a-17m в том, что коэффициент фильтра для интерполяции местоположения интерполяции 1/8 является симметричным с коэффициентом фильтра для интерполяции местоположения интерполяции 7/8, коэффициент фильтра для интерполяции местоположения интерполяции 2/8 является симметричным с коэффициентом фильтра для интерполяции местоположения интерполяции 6/8, и коэффициент фильтра для интерполяции местоположения интерполяции 3/8 является симметричным с коэффициентом фильтра для интерполяции местоположения интерполяции 5/8.
Фиг.23a-23e иллюстрируют способы выполнения масштабирования и округления в отношении фильтра интерполяции 1D согласно иллюстративным вариантам осуществления.
Как описано выше, фильтрация интерполяции использует DCT и обратное DCT, и фильтр интерполяции 1D, таким образом, включает в себя коэффициенты фильтра, абсолютные значения которых меньше, чем '1'. Таким образом, как описано выше в отношении Уравнения (12), коэффициенты фильтра масштабируются посредством умножения их на '2ScalingBits', округляются до целых чисел, соответственно, и затем используются для интерполяции.
Фиг.23a иллюстрирует коэффициенты фильтра, масштабированные посредством '2ScalingBits', когда фильтры интерполяции 1D являются фильтрами с 12 выводами. Ссылаясь на Фиг.23a, коэффициенты фильтра масштабировались, но не округлялись до целых чисел.
Фиг.23b иллюстрирует результат округления масштабированных коэффициентов фильтра из Фиг.23a до целых чисел посредством округления их до десятых десятичной точки. Ссылаясь на Фиг.23b, некоторые фильтры интерполяции, сумма округления масштабированных коэффициентов фильтра которых меньше, чем '256' среди фильтров интерполяции 1D. Конкретно, сумма всех коэффициентов фильтра каждого из: фильтра для интерполяции пиксельных значений в местоположении интерполяции 1/8, фильтра для интерполяции пиксельных значений в местоположении интерполяции 3/8, фильтра для интерполяции пиксельных значений в местоположении интерполяции 5/8, и фильтра для интерполяции пиксельных значений в местоположении интерполяции 7/8, - меньше, чем '256'. То есть сумма коэффициентов фильтра, масштабированного посредством смещения 8 бит, должна быть '256', но в течение округления коэффициентов фильтра происходит ошибка.
То, что суммы коэффициентов фильтра не являются одинаковыми, означает, что пиксельные значения могут изменяться согласно местоположению интерполяции. Чтобы решать эту проблему, нормализованный фильтр может генерироваться посредством регулировки коэффициентов фильтра. Фиг.23c иллюстрирует нормализованный фильтр, сгенерированный посредством коэффициентов фильтра фильтров, проиллюстрированных на Фиг.23b.
Сравнение Фиг.23b и 23c выявляет, что суммы всех коэффициентов фильтра нормализуются до '256' посредством регулировки некоторых из коэффициентов фильтра для интерполяции пиксельных значений в местоположении интерполяции 1/8, фильтра для интерполяции пиксельных значений в местоположении интерполяции 3/8, фильтра для интерполяции пиксельных значениях в местоположении интерполяции 5/8, и фильтра для интерполяции пиксельных значений в местоположении интерполяции 7/8.
Фиг.23d и 23e иллюстрируют фильтры с 8 выводами, которые масштабированы, и результат нормализации фильтров с 8 выводами, соответственно. Если фильтры с 8 выводами, которые масштабируются посредством 2сдвиг являются такими, как проиллюстрировано на Фиг.23d, то результат округления коэффициентов фильтра для фильтров с 8 выводами из Фиг.23d до целочисленного значения и нормализации результата округления таким образом, что суммы коэффициентов фильтра равняются '256', может быть, как проиллюстрирован на Фиг.23e. Ссылаясь на Фиг.23e, некоторые из коэффициентов фильтра являются отличными от результата округления коэффициентов фильтра фильтров с 8 выводами, проиллюстрированных на Фиг.23d. Это означает, что некоторые из коэффициентов фильтра регулируются таким образом, что суммы всех коэффициентов фильтра равняются '256'.
Как проиллюстрировано на Фиг.23b и 23c, по меньшей мере, один из результирующих коэффициентов фильтра, полученных посредством, по меньшей мере, одного из масштабирования и округления коэффициентов фильтра, может быть отличным от результата нормализации результирующих коэффициентов фильтра. Таким образом, специалистам в данной области техники должно быть очевидно, что должно пониматься, что фильтр интерполяции 1D, по меньшей мере, один из коэффициентов фильтра которого изменяется в предварительно определенном диапазоне ошибки, например, +-1 или +-2, среди фильтров, проиллюстрированных на Фиг.16a-16f, или фильтров, проиллюстрированных на Фиг.17a-17m, попадает в пределы объема иллюстративных вариантов осуществления.
Если селектор 1410 фильтров выбирает один из фильтров, проиллюстрированных на Фиг.16a-16f или Фиг.17a-17y или Фиг.23a-23e, на основе местоположения интерполяции, то интерполятор 1420 генерирует пиксельные значения в местоположении интерполяции посредством вычисления Уравнения (17) или (18). Другие различные коэффициенты (такие как направление внешнего предсказания, тип контурного фильтра, положение пикселя в блоке) могут дополнительно рассматриваться для селектора 1410 фильтров, чтобы выбирать один из фильтров. Размер, т.е. количество выводов, фильтра, который должен выбираться, может определяться посредством либо размера блока, который должен интерполироваться, либо направления фильтрации для интерполяции. Например, может выбираться большой фильтр, когда блок, который должен интерполироваться, является большим, и может выбираться маленький фильтр, чтобы минимизировать доступ к памяти, когда интерполяция должна выполняться в вертикальном направлении.
Согласно одному иллюстративному варианту осуществления, информация относительно выбора фильтра может дополнительно кодироваться. Например, если изображение интерполировалось в течение кодирования изображения, декодирующая сторона должна знать тип фильтра, используемого, чтобы интерполировать изображение так, чтобы интерполировать и декодировать изображение посредством использования одного и того же фильтра, используемого в течение кодирования изображения. С этой целью, информация, определяющая фильтр, используемый, чтобы интерполировать изображение, может кодироваться вместе с изображением. Однако когда выбор фильтра выполняется на основе результата предыдущего кодирования другого блока, то есть, контекста, информация относительно выбора фильтра не должна дополнительно кодироваться.
Если пиксельное значение, сгенерированное посредством выполнения интерполяции, меньше, чем минимальное пиксельное значение или больше, чем максимальное пиксельное значение, то пиксельное значение изменяется на минимальное или максимальное пиксельное значение. Например, если сгенерированное пиксельное значение меньше, чем минимальное пиксельное значение 0, оно изменяется на '0', и если сгенерированное пиксельное значение больше, чем максимальное пиксельное значение 255, оно изменяется на '255'.
Когда интерполяция выполняется, чтобы точно выполнять внешнее предсказание в течение кодирования изображения, информация, определяющая фильтр интерполяции, может кодироваться вместе с изображением. Другими словами, информация относительно типа фильтра, выбранного посредством селектора 1410 фильтров, может кодироваться как параметр изображения вместе с изображением. Так как разный тип фильтра интерполяции может выбираться в блоках кодирования или в вырезках или блоках снимка, информация относительно выбора фильтра также может кодироваться в блоках кодирования или вырезках или блоках снимка, вместе с изображением. Однако если выбор фильтра выполняется согласно подразумеваемому правилу, информация относительно выбора фильтра может не кодироваться вместе с изображением.
Теперь со ссылкой на Фиг.a, 18b и 19 будут подробно описываться способы выполнения интерполяции посредством интерполятора 1420 согласно иллюстративным вариантам осуществления.
Фиг.18a и 18b иллюстрируют способы интерполяции пиксельных значений в различных направлениях посредством использования фильтра интерполяции 1D согласно иллюстративным вариантам осуществления. Ссылаясь на Фиг.18a и 18b, пиксельные значения в местоположениях интерполяции в различных направлениях могут генерироваться посредством использования фильтра интерполяции 1D, который может выполнять DCT 1D над пиксельными значениями 1D и выполнять обратное DCT 1D над результатом выполнения посредством использования множества базисных функций, фазы которых сдвинуты.
Ссылаясь на Фиг.18a, пиксельное значение P(α) 1800 в местоположении интерполяции α в вертикальном направлении может генерироваться посредством интерполяции между пиксельным значением P0 1802 и пиксельным значением P1 1804, которые являются смежными в вертикальном направлении. По сравнению со способом интерполяции 1D из Фиг.13, интерполяция выполняется с использованием пиксельных значений 1810 и 1820, расположенных в вертикальном направлении, вместо пиксельных значений 1310 и 1320, расположенных в горизонтальном направлении, но способ интерполяции, описанный выше в отношении Уравнений с (13) по (18), также может применяться к способу из Фиг.18a.
Аналогично, по сравнению со способом интерполяции 1D из Фиг.13, в способе из Фиг.18B, интерполяция выполняется с использованием пиксельных значений 1840 и 1850, расположенных в диагональном направлении, вместо пиксельных значений 1310 и 1320, расположенных в горизонтальном направлении, но пиксельное значение P(α) 1830 в местоположении интерполяции α может генерироваться посредством интерполяции между двумя смежными пиксельными значениями 1832 и 1834, как описано выше в отношении Уравнений с (13) по (18).
Фиг.19a иллюстрирует способ интерполяции 2D согласно одному иллюстративному варианту осуществления. Ссылаясь на Фиг.19a, пиксельные значения с 1910 по 1950 дробных пиксельных единиц могут генерироваться на основе пиксельных значений с 1900 по 1906 целочисленных пиксельных единиц.
Конкретно, во-первых, селектор 1410 фильтров устройства 1400 интерполяции изображений, проиллюстрированный на Фиг.14, выбирает фильтр интерполяции 1D, чтобы генерировать пиксельные значения 1910, 1920, 1930, и 1940 дробных пиксельных единиц, которые присутствуют между пиксельными значениями с 1900 по 1906 целочисленных пиксельных единиц. Как описано выше со ссылкой на Фиг.14, разный фильтр может выбираться согласно местоположению интерполяции. Например, разные фильтры могут выбираться для пиксельных значений 1912, 1914, и 1916 дробной пиксельной единицы, соответственно, так, чтобы интерполировать пиксельное значение 1910 между двумя верхними пиксельными значениями 1900 и 1902. Например, фильтр для генерирования пиксельного значения 1914 1/2 пиксельной единицы может быть отличным от фильтра для генерирования пиксельных значений 1912 и 1916 той же 1/4 пиксельной единицы. Также, пиксельные значения 1912 и 1916 одной и той же 1/4 пиксельной единицы могут генерироваться с использованием разных фильтров, соответственно. Как описано выше со ссылкой на Фиг.14, степень сдвига фаз базисных функций, используемых, чтобы выполнять обратное DCT, изменяется согласно местоположению интерполяции, и, таким образом, фильтр для выполнения интерполяции выбирается согласно местоположению интерполяции.
Аналогично, пиксельные значения 1920, 1930, и 1940 разных дробных пиксельных единиц, присутствующих между пиксельными значениями с 1900 по 1906 целочисленных пиксельных единиц, могут генерироваться на основе фильтра интерполяции 1D, выбранного согласно местоположению интерполяции.
Если селектор 1410 фильтров выбирает фильтр для генерирования пиксельных значений 1910, 1920, 1930 и 1940 дробных пиксельных единиц, присутствующих между пиксельными значениями с 1900 по 1906 целочисленных пиксельных единиц, то интерполятор 1420 генерирует пиксельные значения 1910, 1920, 1930 и 1940 дробных пиксельных единиц в местоположениях интерполяции, соответственно, на основе выбранного фильтра. Согласно одному иллюстративному варианту осуществления, так как фильтр для генерирования пиксельного значения на каждом из местоположений интерполяции был вычислен ранее, пиксельные значения на всех из местоположений интерполяции могут генерироваться на основе пиксельных значений целочисленных пиксельных единиц.
Другими словами, так как пиксельные значения 1912 и 1916 1/4 пиксельной единицы могут генерироваться напрямую из пиксельных значений 1900 и 1920 целочисленной пиксельной единицы, не имеется необходимости сначала вычислять пиксельное значение 1914 1/2 пиксельной единицы и затем генерировать пиксельные значения 1912 и 1916 1/4 пиксельной единицы на основе пиксельных значений 1900 и 1902 целочисленных пиксельных единиц и пиксельного значения 1914 1/2 пиксельной единицы. Так как интерполяция изображений не должна выполняться последовательно согласно размеру пиксельного блока, интерполяция изображений может выполняться на высокой скорости.
Согласно другому иллюстративному варианту осуществления, способ интерполяции на основе местоположения интерполяции согласно одному иллюстративному варианту осуществления может комбинироваться со связанным способом интерполяции. Например, пиксельное значение 1/2 пиксельной единицы и пиксельное значение 1/4 пиксельной единицы могут генерироваться напрямую из пиксельных значений 1900 и 1920 целочисленной пиксельной единицы посредством использования фильтра интерполяции согласно одному иллюстративному варианту осуществления, и пиксельное значение 1/8 пиксельной единицы может генерироваться из пиксельного значения 1/4 пиксельной единицы посредством использования связанного линейного фильтра интерполяции. Иным образом, только пиксельное значение 1/2 пиксельной единицы может генерироваться напрямую из пиксельных значений 1900 и 1920 целочисленной пиксельной единицы посредством использования фильтра интерполяции согласно одному иллюстративному варианту осуществления, пиксельное значение 1/4 пиксельной единицы может генерироваться из пиксельного значения 1/2 пиксельной единицы посредством использования линейного фильтра интерполяции предшествующего уровня техники, и пиксельное значение 1/8 пиксельной единицы может генерироваться из пиксельного значения 1/4 пиксельной единицы посредством использования линейного фильтра интерполяции предшествующего уровня техники.
Если все из пиксельных значений 1910, 1920, 1930 и 1940 дробных пиксельных единиц, присутствующих между пиксельными значениями с 1900 по 1906 целочисленных пиксельных единиц, генерируются посредством выполнения интерполяции, то селектор 1410 фильтров выбирает фильтр интерполяции 1D снова для интерполяции между пиксельными значениями 1910, 1920, 1930 и 1940 дробных пиксельных единиц. В этом случае, другой фильтр выбирается согласно местоположению интерполяции аналогично способу, в котором фильтр выбирается, чтобы интерполировать между пиксельными значениями с 1900 по 1906 целочисленных пиксельных единиц.
Интерполятор 1420 генерирует пиксельное значение 1950 дробной пиксельной единицы, соответствующего каждому из местоположений интерполяции, посредством использования фильтра, выбранного посредством селектора 1410 фильтров. То есть генерируются пиксельное значение 1950 дробных пиксельных единиц между пиксельными значениями 1910, 1920, 1930 и 1940 дробных пиксельных единиц.
Фиг.19b иллюстрирует способ интерполяции 2D с использованием фильтра интерполяции 1D согласно другому иллюстративному варианту осуществления. Ссылаясь на Фиг.19b, пиксельное значение в местоположении интерполяции 2D может генерироваться посредством повторного выполнения интерполяции в вертикальном и горизонтальном направлениях с использованием фильтра интерполяции 1D.
Конкретно, пиксельное значение Temp(i,j) генерируется посредством интерполяции между пиксельным значением REF(i,j) 1960 и пиксельным значением REF(i+1,j) 1964 целочисленной пиксельной единицы в горизонтальном направлении. Также, пиксельное значение Temp(i,j+1) генерируется посредством интерполяции между пиксельным значением REF(i,j+1) 1962 и пиксельным значением REF(i+1,j+1) 1966 в горизонтальном направлении. Затем, пиксельное значение P(i,j) в местоположении интерполяции 2D генерируется посредством интерполяции между пиксельным значением Temp(i,j) и пиксельным значением Temp(i,j+1) в вертикальном направлении.
Фильтр интерполяции 1D может быть фильтром для выполнения DCT 1D и выполнения обратного DCT 1D на основе множества базисных функций, фазы которых сдвинуты. Также, фильтр интерполяции 1D может являться масштабированным фильтром, как описано выше в отношении Уравнения (17). Когда интерполяция выполняется в горизонтальном и вертикальном направлениях на основе масштабированного фильтра, интерполяция может выполняться посредством вычисления следующего Уравнения (21):
Figure 00000023
где F'lx) и F'ly) соответствуют F'l(α), выраженному в Уравнении (18). Однако так как вертикальное местоположение интерполяции может быть отличным от горизонтального местоположения интерполяции, другой фильтр интерполяции 1D может выбираться согласно местоположению интерполяции.
Когда выполняются горизонтальная интерполяция и вертикальная интерполяция, первый битовый сдвиг выполняется согласно StageBits1 (биты этапа 1) после горизонтальной интерполяции и второй битовый сдвиг выполняется согласно StageBits2 (биты этапа 2) после вертикальной интерполяции. (TotalBits (общее количество битов) = StageBits1 + StageBits2). Если StageBits1 установлен на нуль, первый битовый сдвиг не выполняется.
Таким образом, если масштабирующий коэффициент для F'ly) - это '2bit1' и масштабирующий коэффициент для F'lx) - это '2bit2' в Уравнении (21), то 'TotalBits'='bit1'(бит1)+'bit2'(бит2).
Фиг.19c иллюстрирует способ интерполяции 2D с использованием фильтра интерполяции 1D согласно другому иллюстративному варианту осуществления. Ссылаясь на Фиг.19c, пиксельное значение в местоположении интерполяции 2D может генерироваться посредством повторного выполнения интерполяции в вертикальном и горизонтальном направлениях посредством использования фильтра интерполяции 1D.
Конкретно, пиксельное значение Temp(i,j) генерируется посредством интерполяции между пиксельными значениями REF(i,j) 1960 и пиксельным значением REF(i,j+1) 1962 целочисленной пиксельной единицы в вертикальном направлении. Далее, Temp(i+1,j) генерируется посредством интерполяции между пиксельным значением REF(i,j+1) 1964 и пиксельным значением REF(i+1,j+1) 1966 в вертикальном направлении. Затем, пиксельное значение P(i,j) в местоположении интерполяции 2D генерируется посредством интерполяции между пиксельным значением Temp(i,j) и пиксельным значением Temp(i+1,j). Когда интерполяция выполняется в горизонтальном и вертикальном направлениях на основе масштабированного фильтра, интерполяция может выполняться посредством вычисления следующего Уравнения (22):
Figure 00000024
Фиг.20 является блок-схемой последовательности операций, иллюстрирующей способ интерполяции изображений согласно иллюстративному варианту осуществления. Ссылаясь на Фиг.20, в операции 2010, устройство 900 интерполяции изображений из Фиг.9 преобразовывает пиксельные значения в пространственной области посредством использования множества базисных функций, имеющих разные частоты. Пиксельные значения могут быть множеством пиксельных значений, включенных в предварительно определенный блок, или могут быть строками или столбцами пиксельных значений, расположенных в горизонтальном или вертикальном направлении.
Здесь, преобразование может быть DCT 2D или DCT 1D, описанным выше в отношении преобразователя 910 и Уравнений (1), (2), (3), и (7).
В операции 2020, устройство 900 интерполяции изображений сдвигает фазы множества базисных функций, используемых в операции 2010. Фазы множества базисных функций могут сдвигаться согласно местоположению интерполяции 2D, определенному посредством 'αx' и 'αy', или согласно местоположению интерполяции 1D, определенному посредством 'α'.
В операции 2030, устройство 900 интерполяции изображений обратным образом преобразовывает коэффициенты DCT, которые были получены посредством преобразования пиксельных значений в пространственной области в операции 2010, посредством использования множества базисных функций, фазы которых были сдвинуты в операции 2020. То есть, пиксельные значения в местоположениях интерполяции генерируются посредством обратного преобразования коэффициентов DCT, полученных в операции 2010.
Если преобразование, выполненное в операции 2010, является DCT 2D, то в операции 2030, устройство 900 интерполяции изображений генерирует пиксельные значения в местоположениях интерполяции 2D посредством выполнения обратного DCT 2D над коэффициентами DCT посредством использования множества косинусных функций, фазы которых сдвинуты.
Если преобразование, выполненное в операции 2010, является DCT 1D, выполненным в строках или столбцах пиксельных значений, то в операции 2030, устройство 900 интерполяции изображений генерирует пиксельные значения в местоположениях интерполяции 1D посредством выполнения обратного DCT 1D над коэффициентами DCT посредством использования множества косинусных функций, фазы которых сдвинуты.
Множество базисных функций, фазы которых сдвинуты, и обратное преобразование, основанное на них, были описаны выше в отношении обратного преобразователя 920 и Уравнений (4), (5), (6) и (8).
Фиг.21 является блок-схемой последовательности операций, иллюстрирующей способ интерполяции изображений согласно другому иллюстративному варианту осуществления. Ссылаясь на Фиг.21, в операции 2110, устройство 1400 интерполяции изображений из Фиг.14 выбирает фильтр для выполнения преобразования и выполнения обратного преобразования на основе множества базисных функций, фазы которых сдвинуты, согласно местоположению интерполяции. Например, фильтр для выполнения DCT и выполнения обратного DCT на основе множества косинусных функций, фазы которых сдвинуты, выбирается согласно местоположению интерполяции. Если пиксельные значения, которые подлежат интерполяции, содержатся предварительно определенном блоке, то фильтр для выполнения DCT 2D и обратного DCT 2D выбирается на основе 'αx' и 'αy'. Если пиксельные значения, которые подлежат интерполяции, являются строками или столбцами пиксельных значений, то фильтр для выполнения DCT 1D и обратного DCT 1D выбирается на основе 'α'. Согласно местоположению интерполяции может выбираться один из фильтров, описанных выше со ссылкой на Фиг.15, Фиг.16a-16f, и Фиг.17. Однако размер фильтра может определяться посредством различных других коэффициентов, не говоря уже о местоположении интерполяции, как описано выше в отношении селектора 1410 фильтров и со ссылкой на Фиг.17.
В операции 2120, устройство 1400 интерполяции изображений выполняет интерполяцию на основе фильтра, выбранного в операции 2110. Пиксельные значения в местоположении интерполяции 2D или пиксельное значение в местоположении интерполяции 1D могут генерироваться посредством фильтрации пиксельных значений в пространственной области посредством использования фильтра, выбранного в операции 2110. Интерполяция, выполненная с использованием фильтрации, была описана выше в отношении Уравнений с (9) по (19).
Фиг.22 является блок-схемой последовательности операций, иллюстрирующей способ интерполяции изображений согласно другому иллюстративному варианту осуществления. Ссылаясь на Фиг.22, в операции 2210, устройство 1400 интерполяции изображений из Фиг.14 выбирает отличающийся фильтр для интерполяции между пиксельными значениями с 1900 по 1906 целочисленных пиксельных единиц согласно местоположению интерполяции. В текущем иллюстративном варианте осуществления, пиксельные значения 1910, 1920, 1930 и 1940 по меньшей мере одной дробной пиксельной единицы могут генерироваться напрямую из пиксельных значений с 1900 по 1906 целочисленных пиксельных единиц. Таким образом, устройство 1400 интерполяции изображений выбирает фильтры интерполяции, соответствующие местоположениям интерполяции, соответственно, в операции 2210.
В операции 2220, устройство 1400 интерполяции изображений генерирует пиксельные значении 1910, 1920, 1930 и 1940 упомянутой, по меньшей мере, одной дробной пиксельной единицы посредством интерполяции между пиксельными значениями с 1900 по 1906 целочисленных пиксельных единиц, на основе разного фильтра, выбираемого согласно каждому из местоположений интерполяции в операции 2210.
В операции 2230, устройство 1400 интерполяции изображений выбирает разный фильтр для интерполяции между пиксельными значениями 1910, 1920, 1930 и 1940 упомянутой, по меньшей мере, одной дробной пиксельной единицы, сгенерированной в операции 2220 согласно местоположению интерполяции. Отличающийся фильтр для генерирования пиксельных значений 1950 другой дробной пиксельной единицы, проиллюстрированного на Фиг.19, которые присутствуют между пиксельными значениями 1910, 1920, 1930 и 1940 упомянутой, по меньшей мере, одной дробной пиксельной единицы, выбирается согласно местоположению интерполяции.
В операции 2240, устройство 1400 интерполяции изображений генерирует пиксельные значения 1950 другой дробной пиксельной единицы посредством интерполяции пиксельных значений 1910, 1920, 1930 и 1940 упомянутой, по меньшей мере, одной дробной пиксельной единицы, на основе фильтра, выбранного в операции 2230.
В то время как иллюстративные варианты осуществления были конкретно показаны и описаны выше, специалисту в данной области техники следует понимать, что там могут быть выполнены различные изменения в форме и деталях без отхода от сущности и объема новой концепции, как определено посредством последующих пунктов формулы изобретения и их эквивалентов. Также, система согласно одному иллюстративному варианту осуществления может осуществляться как машиночитаемый код на машиночитаемом носителе записи.
Например, каждое из: устройства для кодирования изображения, устройства для декодирования изображения, кодера изображений, и декодера изображений согласно иллюстративным вариантам осуществления, как проиллюстрировано на Фиг.1, 2, 4, 5, 9 и 14, может включать в себя шину, соединенную с его блоками по меньшей мере один процессор, соединенный с шиной, и память, которая соединена с шиной, чтобы хранить команду или принятое или сгенерированное сообщение, и соединяется с упомянутым, по меньшей мере, одним процессором, чтобы выполнять команду.
Машиночитаемый носитель записи может быть любым устройством хранения данных, которое может хранить данные, подлежащие считыванию посредством компьютерной системы. Примеры машиночитаемого носителя записи включают в себя постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), компакт-диск (CD)-ROM, магнитные ленты, гибкие диски и оптические устройства хранения данных. Машиночитаемый носитель записи может также быть распределенным по соединенным сетью компьютерным системам, так что машиночитаемый код может храниться и выполняться распределенным способом.

Claims (11)

1. Устройство для компенсации движения, причем упомянутое устройство содержит:
процессор, который сконфигурирован для определения в яркостном опорном снимке яркостного опорного блока для предсказания текущего блока посредством использования яркостного вектора движения, генерации пиксельного значения яркости 2/4-пиксельного местоположения, включенного в яркостный опорный блок, посредством применения фильтра интерполяции с 8 выводами к пиксельным значениям яркости целочисленных пиксельных местоположений яркостного опорного снимка; и генерации пиксельного значения яркости 1/4-пиксельного местоположения или 3/4-пиксельного местоположения, включенного в яркостный опорный блок, посредством применения фильтра интерполяции к пиксельным значениям яркости целочисленных пиксельных местоположений яркостного опорного снимка без использования сгенерированного пиксельного значения яркости 2/4-пиксельного местоположения,
при этом процессор сконфигурирован для определения в хроматическом опорном снимке хроматического опорного блока для предсказания текущего блока посредством использования хроматического вектора движения; и генерации пиксельного значения хроматичности 4/8-пиксельного местоположения, включенного в хроматический опорный блок, посредством применения фильтра интерполяции с 4 выводами к пиксельным значениям хроматичности целочисленного пиксельного местоположения хроматического опорного снимка;
причем фильтр интерполяции с 8 выводами содержит восемь коэффициентов фильтра, и
фильтр интерполяции с 4 выводами содержит четыре коэффициента фильтра.
2. Устройство по п. 1, в котором процессор сконфигурирован для масштабирования пиксельного значения яркости, сгенерированного применением фильтра интерполяции с 8 выводами посредством использования коэффициента масштабирования яркости, чтобы сумма коэффициентов фильтра интерполяции с 8 выводами составляла 1,
при этом коэффициент масштабирования яркости составляет 64.
3. Устройство по п. 1, в котором
изображение разделяется на множество максимальных блоков кодирования, максимальный блок кодирования из множества максимальных блоков кодирования иерархически разделяется на один или более блоков кодирования глубин, включающих в себя по меньшей мере одну из текущей глубины и меньшей глубины, согласно информации разделения, указывающей разделять ли блок кодирования,
когда информация разделения указывает разделение для текущей глубины, то блок кодирования текущей глубины разделяется на четыре блока кодирования меньшей глубины независимо от соседних блоков кодирования, и
когда информация разделения указывает неразделение для текущей глубины, то из блоков кодирования текущей глубины получают блоки предсказания.
RU2015116285A 2010-04-05 2011-04-05 Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования RU2612614C2 (ru)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US32084710P 2010-04-05 2010-04-05
US61/320,847 2010-04-05
US36749810P 2010-07-26 2010-07-26
US61/367,498 2010-07-26
KR1020100095956A KR101682147B1 (ko) 2010-04-05 2010-10-01 변환 및 역변환에 기초한 보간 방법 및 장치
KR10-2010-0095956 2010-10-01

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2012146739/08A Division RU2580057C2 (ru) 2010-04-05 2011-04-05 Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования

Publications (2)

Publication Number Publication Date
RU2015116285A RU2015116285A (ru) 2015-09-20
RU2612614C2 true RU2612614C2 (ru) 2017-03-09

Family

ID=45028064

Family Applications (5)

Application Number Title Priority Date Filing Date
RU2012146739/08A RU2580057C2 (ru) 2010-04-05 2011-04-05 Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования
RU2015116279A RU2612613C2 (ru) 2010-04-05 2011-04-05 Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования
RU2015116169A RU2612611C2 (ru) 2010-04-05 2011-04-05 Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования
RU2015116285A RU2612614C2 (ru) 2010-04-05 2011-04-05 Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования
RU2015116277A RU2612612C2 (ru) 2010-04-05 2011-04-05 Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования

Family Applications Before (3)

Application Number Title Priority Date Filing Date
RU2012146739/08A RU2580057C2 (ru) 2010-04-05 2011-04-05 Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования
RU2015116279A RU2612613C2 (ru) 2010-04-05 2011-04-05 Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования
RU2015116169A RU2612611C2 (ru) 2010-04-05 2011-04-05 Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования

Family Applications After (1)

Application Number Title Priority Date Filing Date
RU2015116277A RU2612612C2 (ru) 2010-04-05 2011-04-05 Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования

Country Status (13)

Country Link
US (6) US8676000B2 (ru)
EP (1) EP2556675A4 (ru)
JP (2) JP2013524678A (ru)
KR (6) KR101682147B1 (ru)
CN (5) CN106231310B (ru)
AU (1) AU2011239142B2 (ru)
BR (1) BR112012025307B1 (ru)
CA (5) CA2887942C (ru)
MX (1) MX2012011646A (ru)
MY (1) MY153844A (ru)
RU (5) RU2580057C2 (ru)
WO (1) WO2011126287A2 (ru)
ZA (5) ZA201208292B (ru)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101682147B1 (ko) 2010-04-05 2016-12-05 삼성전자주식회사 변환 및 역변환에 기초한 보간 방법 및 장치
CN103119935B (zh) * 2010-07-09 2016-05-04 三星电子株式会社 图像插值方法和设备
US8848779B2 (en) * 2010-07-15 2014-09-30 Sharp Laboratories Of America, Inc. Method of parallel video coding based on block size
US8873617B2 (en) * 2010-07-15 2014-10-28 Sharp Laboratories Of America, Inc. Method of parallel video coding based on same sized blocks
US8855188B2 (en) * 2010-07-15 2014-10-07 Sharp Laboratories Of America, Inc. Method of parallel video coding based on mapping
US9172972B2 (en) * 2011-01-05 2015-10-27 Qualcomm Incorporated Low complexity interpolation filtering with adaptive tap size
CN103503458B (zh) 2011-01-07 2017-09-22 诺基亚技术有限公司 视频编码中的运动预测
US9049454B2 (en) 2011-01-19 2015-06-02 Google Technology Holdings Llc. High efficiency low complexity interpolation filters
US20120224639A1 (en) * 2011-03-03 2012-09-06 General Instrument Corporation Method for interpolating half pixels and quarter pixels
US20120230407A1 (en) 2011-03-11 2012-09-13 General Instrument Corporation Interpolation Filter Selection Using Prediction Index
EP2724534A2 (en) 2011-06-24 2014-04-30 Motorola Mobility LLC Selection of phase offsets for interpolation filters for motion compensation
EP2727358A1 (en) * 2011-07-01 2014-05-07 Motorola Mobility LLC Joint sub-pixel interpolation filter for temporal prediction
US8948248B2 (en) * 2011-07-21 2015-02-03 Luca Rossato Tiered signal decoding and signal reconstruction
FR2980068A1 (fr) * 2011-09-13 2013-03-15 Thomson Licensing Procede de codage et de reconstruction d'un bloc de pixels et dispositifs correspondants
AU2012200345B2 (en) 2012-01-20 2014-05-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map residual coefficients of a transform unit
CN102833550A (zh) * 2012-09-03 2012-12-19 北京大学深圳研究生院 一种低复杂度的分像素插值滤波器
US20140078394A1 (en) * 2012-09-17 2014-03-20 General Instrument Corporation Selective use of chroma interpolation filters in luma interpolation process
US10397616B2 (en) 2012-09-28 2019-08-27 Vid Scale, Inc. Cross-plane filtering for chroma signal enhancement in video coding
US10291827B2 (en) * 2013-11-22 2019-05-14 Futurewei Technologies, Inc. Advanced screen content coding solution
US9463057B2 (en) * 2014-01-16 2016-10-11 Amendia, Inc. Orthopedic fastener
EP3055830A4 (en) 2014-03-21 2017-02-22 Huawei Technologies Co., Ltd. Advanced screen content coding with improved color table and index map coding methods
US10091512B2 (en) 2014-05-23 2018-10-02 Futurewei Technologies, Inc. Advanced screen content coding with improved palette table and index map coding methods
US10659806B2 (en) 2014-11-04 2020-05-19 Samsung Electronics Co., Ltd. Video encoding method and apparatus, and video decoding method and apparatus using interpolation filter on which image characteristic is reflected
US10200713B2 (en) * 2015-05-11 2019-02-05 Qualcomm Incorporated Search region determination for inter coding within a particular picture of video data
KR102291835B1 (ko) * 2015-07-08 2021-08-23 인터디지털 매디슨 페턴트 홀딩스 에스에이에스 교차 평면 필터링을 이용한 향상된 크로마 코딩
CN105427258B (zh) * 2015-11-25 2018-09-14 惠州Tcl移动通信有限公司 圆形图案显示平滑的优化处理方法、系统及智能设备
US10009622B1 (en) 2015-12-15 2018-06-26 Google Llc Video coding with degradation of residuals
WO2017122997A1 (ko) * 2016-01-11 2017-07-20 삼성전자 주식회사 영상 부호화 방법 및 장치와 영상 복호화 방법 및 장치
US11494547B2 (en) * 2016-04-13 2022-11-08 Microsoft Technology Licensing, Llc Inputting images to electronic devices
US10341659B2 (en) * 2016-10-05 2019-07-02 Qualcomm Incorporated Systems and methods of switching interpolation filters
US10728548B2 (en) 2017-04-04 2020-07-28 Futurewei Technologies, Inc. Processing reference samples used for intra-prediction of a picture block
JP7026450B2 (ja) * 2017-04-24 2022-02-28 ソニーグループ株式会社 送信装置、送信方法、受信装置および受信方法
JP6982990B2 (ja) 2017-06-19 2021-12-17 ソニーグループ株式会社 送信装置、送信方法、受信装置および受信方法
EP3471418A1 (en) * 2017-10-12 2019-04-17 Thomson Licensing Method and apparatus for adaptive transform in video encoding and decoding
US10841610B2 (en) * 2017-10-23 2020-11-17 Avago Technologies International Sales Pte. Limited Block size dependent interpolation filter selection and mapping
EP3688987A1 (en) 2017-11-07 2020-08-05 Huawei Technologies Co., Ltd. Interpolation filter for an inter prediction apparatus and method for video coding
GB2574380A (en) * 2018-05-30 2019-12-11 Realvnc Ltd Processing image data
CN108848380B (zh) * 2018-06-20 2021-11-30 腾讯科技(深圳)有限公司 视频编码和解码方法、装置、计算机设备及存储介质
US10674151B2 (en) * 2018-07-30 2020-06-02 Intel Corporation Adaptive in-loop filtering for video coding
CN112740706A (zh) 2018-09-24 2021-04-30 华为技术有限公司 用于执行质量优化去块的图像处理设备和方法
GB2577339A (en) * 2018-09-24 2020-03-25 Sony Corp Image data encoding and decoding
CN111083489A (zh) 2018-10-22 2020-04-28 北京字节跳动网络技术有限公司 多次迭代运动矢量细化
KR102628361B1 (ko) 2018-11-12 2024-01-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인터-예측을 위한 대역폭 제어 방법
KR20210089149A (ko) * 2018-11-16 2021-07-15 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인터 및 인트라 통합 예측 모드 가중치
WO2020103852A1 (en) 2018-11-20 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Difference calculation based on patial position
WO2020177755A1 (en) 2019-03-06 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Usage of converted uni-prediction candidate
WO2020211809A1 (en) 2019-04-16 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. On adaptive loop filtering for video coding
KR20200144480A (ko) * 2019-06-18 2020-12-29 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003026296A1 (en) * 2001-09-17 2003-03-27 Nokia Corporation Method for sub-pixel value interpolation
US20060146935A1 (en) * 2005-01-05 2006-07-06 Lsi Logic Corporation Method and apparatus for sub-pixel motion compensation
US7224733B1 (en) * 1997-07-15 2007-05-29 Robert Bosch Gmbh Interpolation filtering method for accurate sub-pixel motion assessment
RU2305377C2 (ru) * 2003-05-20 2007-08-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ уменьшения искажения сжатого видеоизображения и устройство для его реализации
US20090092328A1 (en) * 2007-10-05 2009-04-09 Hong Kong Applied Science and Technology Research Institute Company Limited Method for motion compensation
US20090257668A1 (en) * 2008-04-10 2009-10-15 Qualcomm Incorporated Prediction techniques for interpolation in video coding

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9012326D0 (en) * 1990-06-01 1990-07-18 Thomson Consumer Electronics Wide screen television
DE4327177A1 (de) 1993-08-13 1995-02-16 Putzmeister Maschf Anordnung zum Öffnen und Schließen einer Verschlußkappe
WO1995015538A1 (en) * 1993-11-30 1995-06-08 Polaroid Corporation Coding methods and apparatus for scaling and filtering images using discrete cosine transforms
US5774598A (en) * 1993-11-30 1998-06-30 Polaroid Corporation System and method for sample rate conversion of an image using discrete cosine transforms
US5845015A (en) * 1995-10-12 1998-12-01 Sarnoff Corporation Method and apparatus for resizing images using the discrete cosine transform
JP3596194B2 (ja) * 1996-10-29 2004-12-02 ソニー株式会社 画像処理装置および方法
US6539120B1 (en) * 1997-03-12 2003-03-25 Matsushita Electric Industrial Co., Ltd. MPEG decoder providing multiple standard output signals
JPH10322705A (ja) * 1997-05-21 1998-12-04 Sony Corp 動き検出及び動き補償予測回路
JP3042459B2 (ja) * 1997-08-25 2000-05-15 日本電気株式会社 映像表示装置
JPH11238121A (ja) * 1998-02-20 1999-08-31 Dainippon Screen Mfg Co Ltd 画像補間方法および画像補間装置
US6819333B1 (en) * 2000-05-12 2004-11-16 Silicon Graphics, Inc. System and method for displaying an image using display distortion correction
GB2365646B (en) * 2000-07-31 2004-10-13 Sony Uk Ltd Image processor and method of processing images
JP2002152745A (ja) * 2000-11-13 2002-05-24 Sony Corp 画像情報変換装置及び方法
JP2002197454A (ja) * 2000-12-27 2002-07-12 Sony Corp 画像変換装置及び方法
FR2820255A1 (fr) 2001-01-26 2002-08-02 France Telecom Procedes de codage et de decodage d'images, dispositifs, systemes, signaux et applications correspondants
FR2829345B1 (fr) 2001-09-06 2003-12-12 Nextream Sa Dispositif et procede de codage d'images video par compensation de mouvement
JP2003122338A (ja) * 2001-10-18 2003-04-25 Sony Corp 画像変換装置、画像表示装置および画像変換方法
JP3861698B2 (ja) * 2002-01-23 2006-12-20 ソニー株式会社 画像情報符号化装置及び方法、画像情報復号装置及び方法、並びにプログラム
US7110459B2 (en) 2002-04-10 2006-09-19 Microsoft Corporation Approximate bicubic filter
JP4120301B2 (ja) * 2002-04-25 2008-07-16 ソニー株式会社 画像処理装置およびその方法
US7349473B2 (en) * 2002-07-09 2008-03-25 Nokia Corporation Method and system for selecting interpolation filter type in video coding
JP2005533444A (ja) * 2002-07-16 2005-11-04 ノキア コーポレイション 画像符号化におけるランダム・アクセス及び段階的画像更新に対する方法
JP3791922B2 (ja) * 2002-09-06 2006-06-28 富士通株式会社 動画像復号化装置及び方法
US20040081238A1 (en) 2002-10-25 2004-04-29 Manindra Parhy Asymmetric block shape modes for motion estimation
MXPA05007449A (es) * 2003-01-10 2005-09-12 Thomson Licensing Sa Definicion de filtros de interpolacion para ocultamiento de error en una imagen codificada.
JP3997171B2 (ja) * 2003-03-27 2007-10-24 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法、及び動画像復号プログラム
KR100468786B1 (ko) * 2003-04-02 2005-01-29 삼성전자주식회사 방향성을 예측하고 다항식 필터로 보간을 수행하여스케일링 해상도를 높이는 보간기, 이를 구비한 스케일링장치, 및 그 방법
HUP0301368A3 (en) 2003-05-20 2005-09-28 Amt Advanced Multimedia Techno Method and equipment for compressing motion picture data
CN100394792C (zh) * 2003-07-08 2008-06-11 皇家飞利浦电子股份有限公司 运动补偿图像信号内插单元、图像处理设备和生成内插图像的方法
US7515072B2 (en) * 2003-09-25 2009-04-07 International Rectifier Corporation Method and apparatus for converting PCM to PWM
CN1216495C (zh) * 2003-09-27 2005-08-24 浙江大学 视频图像亚像素插值的方法和装置
CN1256849C (zh) * 2003-11-04 2006-05-17 浙江大学 1/4像素精度插值的方法和装置
KR20050045746A (ko) 2003-11-12 2005-05-17 삼성전자주식회사 계층 구조의 가변 블록 크기를 이용한 움직임 추정 방법및 장치
US6999105B2 (en) * 2003-12-04 2006-02-14 International Business Machines Corporation Image scaling employing horizontal partitioning
NO320114B1 (no) * 2003-12-05 2005-10-24 Tandberg Telecom As Forbedret utregning av interpolerte pixelverdier
JP2005217532A (ja) * 2004-01-27 2005-08-11 Canon Inc 解像度変換方法及び解像度変換装置
KR20050121627A (ko) 2004-06-22 2005-12-27 삼성전자주식회사 동영상 코덱의 필터링 방법 및 필터링 장치
US20050281339A1 (en) 2004-06-22 2005-12-22 Samsung Electronics Co., Ltd. Filtering method of audio-visual codec and filtering apparatus
EP1782622A1 (en) * 2004-06-23 2007-05-09 Koninklijke Philips Electronics N.V. Pixel interpolation
US7430238B2 (en) * 2004-12-10 2008-09-30 Micronas Usa, Inc. Shared pipeline architecture for motion vector prediction and residual decoding
US20070009050A1 (en) * 2005-04-11 2007-01-11 Nokia Corporation Method and apparatus for update step in video coding based on motion compensated temporal filtering
US20060285590A1 (en) 2005-06-21 2006-12-21 Docomo Communications Laboratories Usa, Inc. Nonlinear, prediction filter for hybrid video compression
EP1758326B1 (en) * 2005-08-22 2009-01-21 Panasonic Corporation Combined OFDM and wavelet multi-carrier transceiver
JP4643454B2 (ja) 2006-01-10 2011-03-02 株式会社東芝 動画像復号装置及び動画像復号方法
CN1794821A (zh) * 2006-01-11 2006-06-28 浙江大学 可分级视频压缩中插值的方法与装置
KR100728031B1 (ko) 2006-01-23 2007-06-14 삼성전자주식회사 가변 블록 크기 움직임 예측을 위한 부호화 모드 결정 방법및 장치
JP4178480B2 (ja) * 2006-06-14 2008-11-12 ソニー株式会社 画像処理装置、画像処理方法、撮像装置および撮像方法
US8644643B2 (en) * 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
CN100551073C (zh) * 2006-12-05 2009-10-14 华为技术有限公司 编解码方法及装置、分像素插值处理方法及装置
CN101212672B (zh) * 2006-12-30 2011-01-05 安凯(广州)微电子技术有限公司 视频内容自适应的亚像素插值方法和装置
KR101369746B1 (ko) * 2007-01-22 2014-03-07 삼성전자주식회사 적응적 보간 필터를 이용한 영상 부호화, 복호화 방법 및장치
KR100842558B1 (ko) 2007-01-26 2008-07-01 삼성전자주식회사 동영상 부호화를 위한 블록 모드 결정 방법 및 그 장치
EP1983759A1 (en) * 2007-04-19 2008-10-22 Matsushita Electric Industrial Co., Ltd. Estimation of separable adaptive interpolation filters for hybrid video coding
US8023562B2 (en) 2007-09-07 2011-09-20 Vanguard Software Solutions, Inc. Real-time video coding/decoding
MX2010003531A (es) * 2007-10-05 2010-04-14 Nokia Corp Codificacion de video con filtros direccionales de interpolacion adaptable alineados a pixeles.
EP2048886A1 (en) * 2007-10-11 2009-04-15 Panasonic Corporation Coding of adaptive interpolation filter coefficients
KR100952340B1 (ko) 2008-01-24 2010-04-09 에스케이 텔레콤주식회사 시공간적 복잡도를 이용한 부호화 모드 결정 방법 및 장치
JP2009182776A (ja) * 2008-01-31 2009-08-13 Hitachi Ltd 符号化装置、復号化装置、および、動画像符号化方法、動画像復号化方法
US8731062B2 (en) * 2008-02-05 2014-05-20 Ntt Docomo, Inc. Noise and/or flicker reduction in video sequences using spatial and temporal processing
AU2008352118A1 (en) 2008-03-07 2009-09-11 Kabushiki Kaisha Toshiba Dynamic image encoding/decoding method and device
US8705622B2 (en) * 2008-04-10 2014-04-22 Qualcomm Incorporated Interpolation filter support for sub-pixel resolution in video coding
US8971412B2 (en) 2008-04-10 2015-03-03 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding
KR101517768B1 (ko) 2008-07-02 2015-05-06 삼성전자주식회사 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
KR101530549B1 (ko) 2008-10-10 2015-06-29 삼성전자주식회사 적응적 1차원 필터 세트를 이용한 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
KR101487686B1 (ko) * 2009-08-14 2015-01-30 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101750046B1 (ko) 2010-04-05 2017-06-22 삼성전자주식회사 트리 구조에 따른 부호화 단위에 기반한 인루프 필터링을 수반하는 비디오 부호화 방법과 그 장치 및 복호화 방법과 그 장치
KR101682147B1 (ko) * 2010-04-05 2016-12-05 삼성전자주식회사 변환 및 역변환에 기초한 보간 방법 및 장치
DK2996336T3 (en) * 2010-09-30 2017-10-02 Samsung Electronics Co Ltd Device for interpolating images using a smoothing interpolation filter
CN102833550A (zh) * 2012-09-03 2012-12-19 北京大学深圳研究生院 一种低复杂度的分像素插值滤波器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7224733B1 (en) * 1997-07-15 2007-05-29 Robert Bosch Gmbh Interpolation filtering method for accurate sub-pixel motion assessment
WO2003026296A1 (en) * 2001-09-17 2003-03-27 Nokia Corporation Method for sub-pixel value interpolation
RU2305377C2 (ru) * 2003-05-20 2007-08-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ уменьшения искажения сжатого видеоизображения и устройство для его реализации
US20060146935A1 (en) * 2005-01-05 2006-07-06 Lsi Logic Corporation Method and apparatus for sub-pixel motion compensation
US20090092328A1 (en) * 2007-10-05 2009-04-09 Hong Kong Applied Science and Technology Research Institute Company Limited Method for motion compensation
US20090257668A1 (en) * 2008-04-10 2009-10-15 Qualcomm Incorporated Prediction techniques for interpolation in video coding

Also Published As

Publication number Publication date
CN102939760A (zh) 2013-02-20
RU2015116279A (ru) 2015-09-10
ZA201600681B (en) 2016-11-30
JP2016187191A (ja) 2016-10-27
US9390470B2 (en) 2016-07-12
AU2011239142A1 (en) 2012-11-01
ZA201600703B (en) 2016-11-30
CA2887941C (en) 2017-03-21
US20150178890A1 (en) 2015-06-25
JP2013524678A (ja) 2013-06-17
US9547886B2 (en) 2017-01-17
KR101682151B1 (ko) 2016-12-02
US20110243471A1 (en) 2011-10-06
CA2887940C (en) 2017-09-05
RU2015116277A (ru) 2015-09-10
CA2887941A1 (en) 2011-10-13
CN106231310A (zh) 2016-12-14
ZA201600680B (en) 2016-11-30
CN106231310B (zh) 2019-08-13
BR112012025307B1 (pt) 2022-01-11
AU2011239142B2 (en) 2015-07-02
RU2012146739A (ru) 2014-07-10
KR101682150B1 (ko) 2016-12-02
CA2887942C (en) 2017-03-21
RU2015116169A (ru) 2015-09-20
CN102939760B (zh) 2016-08-17
MY153844A (en) 2015-03-31
WO2011126287A2 (en) 2011-10-13
MX2012011646A (es) 2012-11-29
CN105955933B (zh) 2018-12-07
WO2011126287A3 (en) 2012-01-26
KR101682149B1 (ko) 2016-12-02
US9436975B2 (en) 2016-09-06
KR20150035936A (ko) 2015-04-07
US9424625B2 (en) 2016-08-23
RU2580057C2 (ru) 2016-04-10
KR20150035940A (ko) 2015-04-07
ZA201208292B (en) 2016-09-28
KR101682147B1 (ko) 2016-12-05
CN106131566B (zh) 2019-06-14
KR101682152B1 (ko) 2016-12-02
CA2887944A1 (en) 2011-10-13
RU2015116285A (ru) 2015-09-20
CA2887944C (en) 2017-03-21
CN105959698B (zh) 2019-03-12
CN105955933A (zh) 2016-09-21
KR20110112176A (ko) 2011-10-12
CA2795626A1 (en) 2011-10-13
KR20150035938A (ko) 2015-04-07
US20150178893A1 (en) 2015-06-25
RU2612613C2 (ru) 2017-03-09
RU2612611C2 (ru) 2017-03-09
US8676000B2 (en) 2014-03-18
US20140198996A1 (en) 2014-07-17
US20150178892A1 (en) 2015-06-25
ZA201600679B (en) 2016-11-30
CA2887942A1 (en) 2011-10-13
RU2612612C2 (ru) 2017-03-09
EP2556675A4 (en) 2015-08-26
CN106131566A (zh) 2016-11-16
KR101682148B1 (ko) 2016-12-02
CA2795626C (en) 2017-02-14
EP2556675A2 (en) 2013-02-13
BR112012025307A2 (ru) 2017-09-12
CA2887940A1 (en) 2011-10-13
KR20150035937A (ko) 2015-04-07
US20150178891A1 (en) 2015-06-25
CN105959698A (zh) 2016-09-21
US9262804B2 (en) 2016-02-16
KR20150035939A (ko) 2015-04-07

Similar Documents

Publication Publication Date Title
RU2612614C2 (ru) Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования
RU2689129C1 (ru) Способ для интерполяции изображений с использованием асимметричного интерполяционного фильтра и устройство для этого
JP5890520B2 (ja) 画像の輝度成分を用いて画像の色差成分を予測する方法及び予測装置
AU2015230828B2 (en) Method and apparatus for performing interpolation based on transform and inverse transform
JP2006309652A (ja) 信号処理方法及び信号処理装置