Открыть сервис

CIRC

CIRC (сокр. от англ. _Concentric Interleaved Reed-Solomon Code_, концентрический перемежённый код Рида — Соломона) — это корректирующий код, используемый для обнаружения и исправления ошибок при считывании данных с оптических дисков, в первую очередь компакт-дисков (CD). Разработан компаниями Philips и Sony в начале 1980-х годов как ключевой компонент стандарта «Красная книга» (Red Book), определяющего формат аудио-CD.

CIRC представляет собой сочетание двух кодеров Рида — Соломона (C1 и C2), работающих с перемежением данных. Основное назначение кода — обеспечение высокой надёжности воспроизведения звука даже при наличии царапин, пыли, дефектов штамповки или деградации отражающего слоя диска. CIRC способен исправлять пакеты ошибок длиной до 4000 бит (примерно 2,5 мм дорожки) и компенсировать выпадения (dropouts) до 12 000 бит (примерно 7,5 мм).

История

Разработка CIRC началась в 1979 году, когда Philips и Sony совместно работали над единым стандартом для цифрового аудиодиска. Главной проблемой было обеспечение корректного воспроизведения при физических повреждениях носителя. Оптические диски, особенно первые образцы, были уязвимы к царапинам и загрязнениям, которые могли вызывать длинные последовательности битовых ошибок. Простые коды, способные исправлять лишь одиночные ошибки, для этой задачи не годились.

В коллективе инженеров Philips (Кеес Схоухамер Имминк, Адриан Хёйбертс) и Sony (Тоситада Дои, Кодзи Садасигэ) было решено применить каскадную схему из двух кодов Рида — Соломона. Первый код (C1) должен был исправлять случайные и короткие пакетные ошибки, а второй (C2) — длинные пакетные ошибки, оставшиеся после C1. Для того чтобы распределить длинные пакеты ошибок на несколько кодовых слов, было введено перемежение (interleaving) с задержкой в один кадр. К 1982 году алгоритм был отработан и включён в стандарт «Красная книга». CIRC используется во всех аудио-CD и в большинстве CD-ROM, а его усовершенствованные версии — в DVD и Blu-ray.

Принцип работы

CIRC относится к классу каскадных кодов (concatenated codes) с внешним и внутренним кодированием. Процесс кодирования и декодирования в CD организован следующим образом.

Кодирование

  1. Входные данные: аудиосэмплы (16-битные значения) собираются по 6 сэмплов на канал (всего 12 сэмплов для стерео). Это составляет кадр данных длиной 24 байта.
  2. Кодирование C2 (внешний код):
  1. Перемежение (Interleaving):
  1. Кодирование C1 (внутренний код):
  1. Формирование кадра канала (Frame):

Декодирование

При считывании с диска процесс обратный:

  1. Демодуляция EFM и выделение 32-байтных блоков C1.
  2. Декодер C1 (внутренний):
  1. Деинтерлейсинг (обратное перемежение): кадры C1 собираются в блоки C2 по задержкам.
  2. Декодер C2 (внешний):

Типы ошибок и способности к исправлению

CIRC ориентирован на два основных типа ошибок:

Параметры CIRC

ПараметрЗначение
Тип кодаКаскадный код Рида — Соломона (RS)
Внутренний код C1RS(32, 28, 5) — может исправить до 2 ошибок или обнаружить до 4
Внешний код C2RS(28, 24, 5) — может исправить до 2 ошибок или до 4 стираний
Скорость кода (code rate)24/32 = 0,75 (без учёта служебных данных)
Размер блока данных24 байта (6 стереосэмплов)
Размер блока канала32 байта (после кодирования C1)
Задержка перемежениядо 27 кадров
Максимальная длина исправляемого пакета4000 бит (2,5 мм)
Максимальная длина компенсируемого пакета12 000 бит (7,5 мм)
Вероятность необнаруженной ошибкименее 10⁻¹⁵

Недостатки и критика

Несмотря на эффективность, CIRC имеет ряд ограничений и подвергался критике в инженерном сообществе.

  1. Избыточность: добавление 8 проверочных байт на 24 байта данных (33 % избыточности) уменьшает полезную ёмкость диска. В сочетании с модуляцией EFM (33 % избыточности) общая избыточность записи составляет около 50 %.
  2. Задержка декодирования: перемежение (до 27 кадров, ~1,5 см дорожки) вносит задержку при случайном доступе. Для потокового аудио это несущественно, но для дисковых накопителей (CD-ROM) требуется дополнительная буферизация.
  3. Сложность расчёта синдромов: декодеры C1 и C2 должны выполнять операции в поле Галуа GF(2⁸) (умножение, сложение, поиск корней полиномов). В 1980-е годы это потребовало специализированных микросхем с большим числом логических вентилей.
  4. Неспособность исправить все типы повреждений: при глубоких царапинах, пересекающих несколько дорожек, или при дефектах штамповки, когда длина пакета превышает 4000 бит, код может выдать некорректное исправление (miscorrection), что приводит к щелчкам и потрескиванию в звуке. В таких случаях применяется приглушение (muting) на несколько миллисекунд.

Эволюция и последующие стандарты

На основе CIRC были разработаны более совершенные коды для последующих поколений оптических дисков:

Применение

CIRC используется во всех устройствах, воспроизводящих компакт-диски — аудиоплеерах, автомобильных CD-ресиверах, CD-ROM-приводах, музыкальных проигрывателях (профессиональных и потребительских). В проигрывателях высокого класса (Hi-Fi) могут применяться дополнительные модули декорреляции ошибок (например, CIRC с резервным кодированием).

В промышленности CIRC применяется в устройствах тестирования качества оптических дисков (тестеры «эррор-рейт»), а также в системах контроля производства — по количеству ошибок C1 и C2 можно судить о качестве штамповки и отражающего слоя.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →