Scalar Quantizer Encoder

Закодируйте каждое входное значение путем соединения его со значением индекса области квантования

Библиотека

Квантизаторы

dspquant2

Описание

Скалярные блок-диаграммы Энкодера Квантизатора каждое входное значение в область квантования путем сравнения входного значения с граничными точками квантизатора заданы в параметре Boundary points. Блок выводит основанный на нуле индекс связанной области.

Можно выбрать, как вы хотите ввести Boundary points с помощью Source of quantizer parameters. Когда вы выбираете Specify via dialog, введите граничные точки в диалоговое окно параметров блоков. Когда вы выбираете Input port, порт B появляется на блоке. Блок использует вход для порта B как параметр Boundary points.

Используйте параметр Boundary points, чтобы задать граничные точки для вашего квантизатора. Эти значения используются, чтобы разбить набор входных чисел в области. Каждая область задана индексом.

Позвольте N будьте количеством областей квантования. Когда книга шифров задана как [c1 c2 c3 ... cN], и параметр Boundary points задан как [p0 p1 p2 p3 ... pN], затем p0<c1<p1<c2 ... p(N-1)<cN<pN для обычного квантизатора. Когда ваш квантизатор будет ограничен из списка Partitioning, выберите Bounded. Необходимо задать граничные точки N+1 или [p0 p1 p2 p3 ... pN]. Когда ваш квантизатор будет неограничен из списка Partitioning, выберите Unbounded. Необходимо задать N-1 граничные точки, or[p1 p2 p3 ... p(N-1)]; блок устанавливает p0 равняйтесь-inf и pN равняйтесь inf.

Блок использует параметр Partitioning, чтобы интерпретировать граничные точки, которые вы вводите. Например, чтобы создать ограниченный квантизатор, из списка Partitioning, выбирают Bounded и введите следующие граничные точки:

[0 0.5 3.7 5.8 6.0 11] 

Блок присваивает любые входные значения между 0 и 0.5 в индекс 0, входные значения между 0,5 и 3.7 в индекс 1, и так далее. Блок присваивает любые значения, которые меньше 0 в индекс 0, самое низкое значение индекса. Блок присваивает любые значения, которые больше 11 в индекс 4, самое высокое значение индекса.

Чтобы создать неограниченный квантизатор, из списка Partitioning, выбирают Unbounded и введите следующие граничные точки:

[0 0.5 3.7 5.8 6.0 11] 

Блок присваивает любые входные значения между 0 и 0.5 в индекс 1, входные значения между 0,5 и 3.7 в индекс 2, и так далее. Блок присваивает любые входные значения меньше чем 0 индексу 0 и любым значениям, больше, чем 11 в индекс 6.

Параметр Searching method определяет, как соответствующий индекс квантизатора найден. Когда вы выбираете Linear, блок Scalar Quantizer Encoder сравнивает входное значение с первой областью, заданной первыми двумя граничными точками. Когда входное значение не находится в пределах этой области, блок затем сравнивает входное значение со следующей областью. Этот процесс продолжается, пока входное значение не полно решимости быть в области и сопоставлено с соответствующим значением индекса. Вычислительная стоимость этого процесса имеет порядок P, где P является количеством граничных точек.

Когда вы выбираете Binary для Searching method блок сравнивает входное значение со средним значением вектора граничных точек. Когда входное значение больше, чем эта граничная точка, блок отбрасывает граничные точки, которые ниже, чем это среднее значение. Блок затем сравнивает входное значение со средней граничной точкой новой области значений, заданной остающимися граничными точками. Этот процесс продолжается, пока входное значение не сопоставлено с соответствующим значением индекса. Вычислительная стоимость этого процесса имеет порядок log2P, где P является количеством граничных точек. В большинстве случаев, Binary опция быстрее, чем Linear опция.

Когда входное значение совпадает с граничной точкой, параметр Tie-breaking rule определяет область, которой присвоено значение. Когда это необходимо, входное значение, которое будет присвоено ниже индексируемой области, выберите Choose the lower index. Чтобы присвоить входное значение с более высокой индексируемой областью, выберите Choose the higher index.

Установите флажок Output codeword, чтобы вывести значения кодовой комбинации, которые соответствуют каждому значению индекса в порте Q (U).

Установите флажок Output the quantization error, чтобы вывести ошибку квантования для каждого входного значения от порта Err на этом блоке. Ошибка квантования является различием между входным значением и квантованным выходным значением.

Когда вы устанавливаете флажок Output codeword или флажок Output quantization error, необходимо также ввести значения книги шифров. Если из списка Source of quantizer parameters вы выбираете Specify via dialog, используйте параметр Codebook, чтобы ввести вектор квантованных выходных значений, которые соответствуют каждой области. Если из списка Source of quantizer parameters вы выбираете Input port, используйте входной порт C, чтобы задать ваши значения книги шифров.

Если для параметра Partitioning вы выбираете Bounded, флажок Output clipping status и параметр Action for out of range input появляются. Когда вы устанавливаете флажок Output clipping status, порт S появляется на блоке. Любое время, которое входное значение вне области значений, заданной параметром Boundary points, блок, выводит 1 в порте S. Когда значение в области значений, блоки выводит 0.

Можно использовать параметр Action for out of range input, чтобы определить поведение блока, когда входное значение вне области значений, заданной параметром Boundary points. Предположим, что граничные точки для ограниченного квантизатора заданы как [p0 p1 p2 p3 ... pN] и возможные значения индекса заданы как [i0 i1 i2 ... i(N-1)], где i0=0 и i0<i1<i2<...<i(N-1). Когда это необходимо, любое входное значение меньше, чем p0 быть присвоенным индексировать значение i0 и любые входные значения, больше, чем pN быть присвоенным индексировать значение i(N-1), выберите Clip. Когда это необходимо, чтобы быть предупрежденными, когда усечение произойдет, выберите Clip and warn. Когда это необходимо, симуляция, чтобы остановиться и блок, чтобы отобразить ошибку, когда значения индекса будут вне области значений, выберите Error.

Блок Scalar Quantizer Encoder принимает действительные входные параметры и фиксированной точки с плавающей точкой. Для получения дополнительной информации о типах данных, принятых каждым портом, смотрите Поддержку типов данных или Поддерживаемые Типы данных.

Поддержка типов данных

Значения входных данных, граничные точки и значения книги шифров могут быть введены с блоком в портах U, B, и C, соответственно. Типом данных входных параметров может быть doubleединственный, или Фиксированная точка.

Выходные параметры блока могут быть значениями индекса, квантованными выходными значениями, ошибкой квантования и состоянием усечения. Используйте параметр Index output data type, чтобы задать тип данных индекса выход от блока в порте I. Можно выбрать int8uint8int16uint16int32, или uint32. Типом данных квантованного выхода и ошибки квантования может быть doubleединственный, или Фиксированная точка. Значения состояния усечения выход в порте S являются булевыми значениями.

Примечание

Входные данные, граничные точки, значения книги шифров, квантовали выходные значения, и ошибка квантования должна иметь совпадающий тип данных каждый раз, когда они присутствуют.

Диалоговое окно

Основная вкладка

Source of quantizer parameters

Выберите Specify via dialog ввести граничные точки и значения книги шифров с помощью диалогового окна параметров блоков. Выберите Input port задавать параметры с помощью входных портов блока. Введите граничные точки и значения книги шифров с помощью портов B и C, соответственно.

Partitioning

Когда ваш квантизатор будет ограничен, выберите Bounded. Когда ваш квантизатор будет неограничен, выберите Unbounded.

Boundary points

Введите вектор значений, которые представляют граничные точки областей квантизатора. Этот параметр отображается, когда вы выбираете Specify via dialog из списка Source of quantizer parameters . Настраиваемый (Simulink).

Searching method

Когда вы выбираете Linear, блок находит область, в которой входное значение расположено с помощью линейного поиска. Когда вы выбираете Binary, блок находит область, в которой входное значение расположено с помощью двоичного поиска.

Tie-breaking rule

Установите этот параметр, чтобы определить поведение блока, когда входное значение совпадет с граничной точкой. Когда вы выбираете Choose the lower index, входное значение присвоено понизить индексированную область. Когда вы выбираете Choose the higher index, значение присвоено более высокой индексируемой области.

Output codeword

Установите этот флажок, чтобы вывести значения кодовой комбинации, которые соответствуют каждому значению индекса в порте Q (U).

Output quantization error

Установите этот флажок, чтобы вывести ошибку квантования для каждого входного значения в порте Err.

Codebook

Введите вектор квантованных выходных значений, которые соответствуют каждому значению индекса. Если для параметра Partitioning вы выбираете Bounded и ваш вектор граничных точек имеет длину N, затем необходимо задать книгу шифров длины N-1. Если для параметра Partitioning вы выбираете Unbounded и ваш вектор граничных точек имеет длину N, затем необходимо задать книгу шифров длины N+1.

Этот параметр отображается, когда вы выбираете Specify via dialog из списка Source of quantizer parameters и вы устанавливаете флажок Output codeword или Output quantization error . Настраиваемый (Simulink).

Output clipping status

Когда вы устанавливаете этот флажок, порт S появляется на блоке. Любое время, которое входное значение вне области значений, заданной параметром Boundary points, блок, выводит 1 в этом порте. Когда значение в области значений, блок выводит 0. Этот параметр отображается, когда вы выбираете Bounded из списка Partitioning.

Action for out of range input

Используйте этот параметр, чтобы определить поведение блока, когда входное значение будет вне области значений, заданной параметром Boundary points. Предположим, что граничные точки заданы как [p0 p1 p2 p3 ... pN] и значения индекса заданы как [i0 i1 i2 ... i(N-1)]. Когда это необходимо, любое входное значение меньше, чем p0 быть присвоенным индексировать значение i0 и любые входные значения, больше, чем pN быть присвоенным индексировать значение i(N-1), выберите Clip. Когда это необходимо, чтобы быть предупрежденными, когда усечение произойдет, выберите Clip and warn. Когда это необходимо, симуляция, чтобы остановиться и блок, чтобы отобразить ошибку, когда значения индекса будут вне области значений, выберите Error. Этот параметр отображается, когда вы выбираете Bounded из списка Partitioning.

Index output data type

Задайте тип данных индекса выход от блока в порте I. Можно выбрать int8uint8int16uint16int32uint32, или Inherit via back propagation.

Вкладка типов данных

Rounding mode

Задайте округляющийся режим для операций фиксированной точки как одно из следующего:

  • Floor

  • Ceiling

  • Convergent

  • Nearest

  • Round

  • Simplest

  • Zero

Для получения дополнительной информации смотрите округление режима.

Saturate on integer overflow

Когда вы выбираете этот параметр, блок насыщает результат своей операции фиксированной точки. Когда вы очищаете этот параметр, блок переносит результат своей операции фиксированной точки. Для получения дополнительной информации на saturate и wrap, смотрите режим переполнения для операций фиксированной точки.

Ссылки

Gersho, А. и Р. Грэй. Векторное квантование и сжатие сигнала. Бостон: Kluwer академические издатели, 1992.

Поддерживаемые типы данных

ПортПоддерживаемые типы данных

U

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Фиксированная точка (подписался только),

  • 8-, 16-, и 32-битные целые числа со знаком

B

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Фиксированная точка (подписался только),

  • 8-, 16-, и 32-битные целые числа со знаком

C

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Фиксированная точка (подписался только),

  • 8-, 16-, и 32-битные целые числа со знаком

I

  • 8-, 16-, и 32-битные целые числа со знаком

  • 8-, 16-, и 32-битное беззнаковое целое

Q (U)

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Фиксированная точка (подписался только),

  • 8-, 16-, и 32-битные целые числа со знаком

Допустить ошибку

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Фиксированная точка (подписался только),

  • 8-, 16-, и 32-битные целые числа со знаком

S

  • Булевская переменная

Для получения дополнительной информации о том, какие типы данных поддерживаются для каждого режима квантизатора, смотрите Поддержку типов данных.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Представлено до R2006a