8.3.1. Кодирование по схеме CIRC
В 1979 году компании Philips Corp. (Нидерланды) и Sony Corp. (Япония) запатентовали стандарт хранения и воспроизведения цифровой записи аудиосигналов, известный как система цифровой записи на компакт-дисках (compact disc digital audio — CD-DA). Эта система стала мировым стандартом, позволяющим достичь безукоризненнбй точности воспроизведения звука, и опередила другие методики. Для хранения оцифрованных аудиосигналов используется пластиковый диск диаметром 120 мм. Сигнал дискретизирован с частотой 44100 фрагментов/с для получения записи в полосе 20 кГц. Каждый аудиофрагмент однозначно квантован на один из 216 уровней (16 бит/фрагмент), что дает в результате динамический диапазон в 96 дБ и нелинейное искажение 0,005%. Отдельный диск (время звучания составляет порядка 70 минут) хранит порядка бит в виде коротких впадин, которые сканируются лазером.
В данном случае существует несколько источников канальных ошибок: 1) маленькие нежелательные частички или воздушные пузырьки в материале пластика или неточное расположение впадин при изготовлении диска; 2) отпечатки пальцев или царапины, появившиеся при эксплуатации. Трудно предсказать, как в среднем можно поделить крмпакт-диск; но при наличии точной канальной модели можно со всей уверенностью сказать, что канал, в основном, склонен, вносить пакетоподобные ошибки, Поскольку царапины или пятна от пальцев будут вызывать ошибки в нескольких последовательных фрагментах данных. Важным элементом разработки системы получения, высококачественных характеристик является каскадная схема защиты от ошибок, которая называется кодом Рида-Соломона с перекрестным чередованием.(cross-interleave Reed-Solomon code — CIRC). Данные перемешиваются во времени так, что знаки, выходящие из последовательных фрагментов сигнала, оказываются разнесенными во времени. Таким образом, появление ошибок представляется в виде единичных случайных ошибок (см. предыдущий раздел). Цифровая информация, защищена посредством прибавления байтов четности, получаемых в двух кодерах Рида-Соломона. Защита от ошибок, осуществляемая на компакт-дисках, зависит обычно от кодирования Рида-Соломона и алгоритма чередования.
В прикладных задачах передачи цифровой аудиоинформации, невыявляемая ошибка декодирования очень значительна, поскольку является результатом щелчка при воспроизведении, в то время как выявляемые ошибки незначительны, так как их можно скрыть. Схема защиты от ошибок CIRC в системе CD-DA включает в себя и исправление, и маскировку ошибок. Технические характеристики схемы CIRC даются в табл. 8.4. Из данных таблицы должно быть ясно, что компакт-диск может выдержать сильные повреждения (например, 8-миллиметровые отверстия, пробитые в диске) без значительных потерь в качестве звучания.
Таблица 8.4. Спецификация кода Рида-Соломона с перекрестным уродованием, применяемого в аудиокомпакт-дисках
Максимальная длина исправимого пакета |
= 4200 бит (2,5 мм длины дорожки на диске ) |
Максимальная длина пакета, который можно интерполировать |
=12000 бит (8 мм) |
Скорость интерполяции фрагмента |
фрагмент/10 часов при ; 1000 фрагментов/мин. при |
Необнаруженные фрагменты с ошибками (щелчки) |
Менее чем 1 на 750 часов при Пренебрежимо малое количество при |
Качество нового диска |
В системе CIRC защита от ошибок обеспечивается множеством способов.
1. Декодер обеспечивает нужный уровень коррекции ошибок.
2. Если исчерпывается способность к коррекции ошибок, то декодер переходит на уровень коррекции стираний (см. раздел 6.5.5).
3. Если исчерпывается и эта способность, декодер предпринимает попытки замаскировать ненадежные фрагменты данных путем интерполяции между ближайшими надежными фрагментами.
4. Если исчерпывается способность к интерполяции, декодер выключает или подавляет систему на период ненадежного фрагмента.
8.3.1. Кодирование по схеме CIRC
На рис. 8.15 показана основная блочная диаграмма кодера CIRC (с оборудованием для записи компакт-диска) и декодера (с оборудованием для воспроизведений компакт-диска). Процедура кодирования состоит из собственно кодирования и чередования, где введены следующие обозначения: -чередование, -кодирование, -чередование, -кодирование и D-чередование. Процедура декодирования состоит из этапов декодированиями восстановления исходного порядка битов, котыторые выполняются в обратном порядке; здесь идут D-восстановление, -декодирование, -восстановление, -декрдирование и -восстановление.
Рис. 8.13. Схема кодера и декодера CIRC
На рис. 8.16 показан элементарный период системного кадра и шесть периодов дискретизации, каждый из которых состоит из пары стереофрагментов (16-битовый левый фрагмент и 16-битовый правый фрагмент). Биты собраны в символы или байты размером 8 бит каждый. Следовательно, каждая пара фрагментов содержит 4 байт, а некодированный кадр — k = 24 байт. На рис. 8.16, а—д представлены пять этапов кодирования, которые характеризуют систему CIRC. Функции каждого этапа будут более понятны, если мы рассмотрим процедуру декодирования. Этапы выглядят следующим образом.
а) -чередование. Четные фрагменты отделяются от нечетных двумя кадрами для перемешивания ошибок, которые определены, но нельзя исправить. Это облегчает процесс интерполяции.
б) -кодирование. К -чередованному 24-байтовому кадру прибавляется четыре байта четности Рида-Соломона, что дает в итоге п = 28 байт. Такой код (28, 24) называется внешним.
в) -чередование. Здесь каждый байт задерживается на разную длину; таким образом, ошибки разбрасываются на несколько кодовых слов. -кодирование;совместно с -чередованием нужно для исправления пакетных ошибок и ошибочных комбинаций, которые -декодер не в состоянии исправить.
г) -кодирование. К k = 28 байт -чередованного кадра прибавляется четыре байта. четности Рида-Соломона, что дает в итоге всего n = 32 байт. Такой код (32,28) называется внутренним.
д) D-чередование. Осуществляется перекрестное чередование четных байтов кадра с нечетными байтами следующего кадра: После этой процедуры два последовательных байта на диске будут всегда расположены в двух разных кодовых словах. При декодировании это чередование даст возможность исправлять большинство случайных одиночных ошибок и обнаруживать более длинные пакеты ошибок.
Рис. 8.16. Кодирование компакт-диска: а) -чередование; б) -кодирование; в) -чередование; г) -кодирование; д) D -чередование
8.3.1.1. Укорачивание кода Рида-Соломона
В разделе 8.1 код (n, k) выражался через итоговых символов и символов данных, где т представляет собой число битов в символе, a t — способность кода к коррекции ошибок в символах. Для системы CD-DA, где символ образован из 8 бит, код с коррекцией 2-битовых ошибок можно сконфигурировать как код (255, 251). Однако в системе CD-DA используется значительно меньшая длина блока. Любой блочный код (в систематической форме) можно укоротить без уменьшения числа ошибок, которые поддаются исправлению внутри блока. Представим себе, что в терминах кода (255, 251), 227 из 251 информационного символа являются набором нулевых символов (которые в действительности не передавались и поэтому не содержат, ошибок). Тогда код в действительно будет кодом (28, 24) с коррекцией 2-символьных ошибок. Это и делается в -кодере системы CD-DA.
Мы можем представить 28 символов вне -кодера как информационные символы в -кодере. И снова можно сконфигурировать сокращенный код (255, 251) с коррекцией 2-символьных ошибок, отбросив 223 символа данных; результатом будет код (32, 28).
8.3.2. Декодирование по схеме CIRC
Внутренний и внешний коды Рида-Соломона с параметром (n, k), равным (32,28) и (28, 24), используют четыре контрольных байта. Степень кодирования кода в схеме CIRC равна . Из уравнения (8.3) следует, что минимальное расстояние и кодов Рида-Соломона будет daiu = n-k+l=5. Из уравнений (8.4) и (8.5) имеем следующее.
(8.58)
(8.59)
Здесь t — способность к коррекции ошибок, а — способность к коррекции стираний. Видно, что и -декодеры могут исправить максимум 2 символьные ошибки или 4 символьных стирания на кодовое слово. Или, как определяется уравнением (8.6), имеется возможность исправлять ошибок и стираний одновременно, если
(8.60)
Существует компромисс между коррекцией ошибок и коррекцией стираний; чем больше возможностей задействовано в коррекции ошибок, тем меньше остается возможностей для коррекции стираний.
Преимущества схемы CIRC лучше видны на примере декодера. Рабочие этапы, изображенные на рис. 8.17, имеют обратный порядок по сравнению с кодером. Давайте рассмотрим этапы работы декодера.
1.D-восстановление. Этот этап нужен для чередования линий задержки, обозначенных символом D. 32 байт кодированного кадра выстраиваются для параллельной подачи на 32 входа D-восстановителя. Каждая задержка равна длительности 1 байт, так что происходит обращение перекрестного чередования информации четных байтов кадра с нечетными байтами следующего кадра.
2.-декодирование. D-восстановитель и -декодер разработаны для исправления однобайтовых ошибок в блоке из 32 байт и обнаружения больших, пакетов ошибок. Если появляются многократные ошибки, то -декодер пропускает их без изменений, приписывая ко всем 28 байт метку стирания и пересылая их по пунктирным линиям (четыре бита контроля четности используются в -декодере и.больше не сохраняются).
3.-восстановление. Из-за разности длины линий задержки (l, ...,27) при воcстановлении порядка битов, ошибки, возникающие в слове на выходе -декодера, оказываются разбросанными по большому количеству слов на входе -декодера, что позволяет -декодеру заниматься исправлением этих ошибок.
3.-декодирование. -декодер применяется для исправления пакетов ошибок, которые не может исправить -декодер. Если -декодеру не удается исправить эти ошибки, то 24-байтовое кодовое слово пропускается без изменений на -восстановитель и на соответствующие позиции ставится метка стирания по пунктирным линиям, .
4.-восстановление. Это финальная операция, в ходе которой осуществляется обращение чередования неисправимых, но обнаружимых ошибок, в результате чего происходит интерполяция между соседними кадрами.
Рис. 8.17. Декодер системы воспроизведения компакт-дисков
На рис. 8.18 выделены 2-, 3- и 4-й этапы декодирования. На выходе -декодера видна последовательность четырех 28-байтовых кодовых слов, которые превышают однобайтовую способность кода корректировать ошибки. Следовательно, каждый из символов в этих кодовых словах получает метку стирания (показана кружком). -восстановитель выполняет разнесение линий задержки для каждого байта кодового слова так, что байты данного кодового слова попадают в разные кодовые слова на входе -декодера. Если допустить, что коэффициент задержки -восстановителя, изображенного на рис. 8.18, равен 1 байт, то можно исправить пакет ошибок четырех последовательных кодовых слов (поскольку -декодер может исправить четыре стирания на кодовое слово). В прикладных системах CD-DA коэффициент задержки составляет 4 байт; поэтому максимальная способность кода к исправлению пакетных ошибок равняется 16 последовательным неисправленным -словам.
8.3.3.Интерполяция и подавление
Фрагменты, которые нельзя исправить с помощью -декодера, могут вызвать слышимые искажения. Роль процедуры интерполяции фрагменты, оцениваемые по ближайшим соседям, вместо ненадежных. Если полное слово признано ненадежным, то невозможно произвести интерполяцию; без дополнительного чередования, поскольку и четные, и нечетные фрагменты одинаково ненадежны. Это может ,произойти, есди -декрдер не обнаруживает ошибки, а -декодер обнаруживает ее. Целью -восстановления (в течение двух кадровых периодов) является вычисление структуры, в которой четные фрагменты можно интерполировать по нечетным иди наоборот.
Рис. 8.18. Пример 4-байтовой возможности стираний (время показано справа налево)
На рис. 8.19 показаны два последовательных ненадежных слова, состоящих из 12 пар фрагментов. Пара фрагментов состоит из фрагмента (2 байта) правого аудиоканала и фрагмента левого. Числа означают порядок размещения фрагментов. Фрагменты, номера которых выделены, отмечены меткой стирания. После -восстановления ненадежные фрагменты, показанные на рисунке, оцениваются с помощью линейной интерполяции первого порядка между ближайшими соседними фрагментами из разных мест диска.
В проигрывателях компакт-дисков при появлении пакетов ошибок, превышающих 48 кадров и дающих в итоге 2 или более последовательных ненадежных фрагментов, применяется иной уровень защиты от ошибок. В этом случае система подавляется (звук приглушается), что незаметно для человеческого слуха, если, время подавления не превышает нескольких миллисекунд. Для более подробного ознакомления со схемой кодирования CIRC в системе CD-DA см. [11-15].