способ и устройство коррекции кода ошибки
Классы МПК: | H03M13/29 объединение двух или более кодов или кодовых структур, например пакет кодов, генерализованные пакеты, каскадные коды, внутренние и внешние коды H03M13/11 с использованием нескольких разрядов четности G11B20/18 обнаружение или исправление ошибок, тестирование |
Автор(ы): | ЧЕН Джонатан (CN) |
Патентообладатель(и): | ВАЙА ТЕКНОЛОДЖИЗ, ИНК. (CN) |
Приоритеты: |
подача заявки:
2004-10-08 публикация патента:
27.02.2008 |
Настоящее изобретение относится к способу и устройству ККО (коррекция кода ошибки). Способ ККО содержит следующие этапы: считывание данных, предназначенных для декодирования; и если существует, по меньшей мере, одно решение, которое не может быть эффективно найдено после последовательного выполнения первого направленного первого декодирования и второго направленного второго декодирования, выполнение действия декодирования при декодировании ККО по настоящему изобретению в соответствии с заданным правилом управления потоком данных; если не существует коррекция, выполненная во время декодирования ККО, осуществляют переключение на другое направленное декодирование, при этом к немодифицированному значению добавляют единицу; и если немодифицированное значение достигло максимального немодифицированного значения, подтверждают отказ ККО и затем останавливают декодирование ККО. 2 н. и 14 з.п. ф-лы, 11 ил.
Формула изобретения
1. Способ коррекции ошибки, предназначенный для детектирования и коррекции ошибки в блоке ККО (код коррекции ошибки), считываемом с носителя данных, причем указанный блок ККО включает в себя блок ВЧ (проверка на четность внутреннего кода) и блок НЧ (проверка на четность внешнего кода), способ содержит итерационное выполнение первого направленного декодирования ККО и второго направленного декодирования ККО, если подсчет количества повторных попыток одного из указанного первого направленного декодирования ККО и указанного второго направленного декодирования ККО будет меньше, чем первое пороговое значение подсчета, в противном случае, считается, что возникает отказ ККО (пропуск способа ККО), и итерационное выполнение первого направленного декодирования ККО и второго направленного ККО, если немодифицированный подсчет одного из указанного первого декодирования ККО и указанного второго декодирования ККО будет меньше, чем второе пороговое значение подсчета, в противном случае, считается, что возникает отказ ККО (пропуск способа ККО).
2. Способ по п.1, в котором первое направленное декодирование ККО содержит декодирование ВЧ, и второе направленное декодирование ККО содержит декодирование НЧ.
3. Способ по п.2, в котором первое направленное декодирование ККО дополнительно содержит процесс случайной ошибки.
4. Способ по п.2, в котором второе направленное декодирование ККО дополнительно содержит процесс случайной ошибки.
5. Способ по п.2, в котором способ коррекции ошибки дополнительно содержит этап выполнения вспомогательного декодирования НЧ с процессом стирания метки, который следует после декодирования НЧ, если будет детектирована ошибка декодирования или ошибка, которая не может быть исправлена, считанная с носителя данных.
6. Способ по п.2, в котором способ коррекции ошибки дополнительно содержит этап выполнения вспомогательного декодирования ВЧ с процессом стирания метки, который следует после декодирования ВЧ, если будет детектирована ошибка декодирования или ошибка, которая не может быть исправлена, считанная с носителя данных.
7. Способ по п.2, в котором декодирование ВЧ может представлять собой одно из кодирования двумерным кодом Рида-Соломона (ДКРС) и декодирование перекрестно-перемежаемым кодом Рида-Соломона (ППРС, CIRS).
8. Способ по п.2, в котором декодирование НЧ может представлять собой одно из декодирования двумерным кодом Рида-Соломона (ДКРС) и декодирование перекрестно-перемежаемым кодом Рида-Соломона (ППРС).
9. Устройство коррекции ошибки, предназначенное для детектирования коррекции ошибки в блоке ККО (код коррекции ошибки), считываемом с носителя данных, причем указанный блок ККО включает в себя блок ВЧ (внутренний код проверки на четность) и блок НЧ (внешний код проверки на четность), способ содержит средство итерационного выполнения первого направленного декодирования ККО и второго направленного декодирования ККО, если подсчет количества повторных попыток одного из указанного первого направленного декодирования ККО и указанного второго направленного декодирования ККО будет меньше, чем первое пороговое значение подсчета, в противном случае считается, что возникает отказ ККО (пропускание способа ККО), и средство итерационного выполнения первого направленного декодирования ККО и второго направленного декодирования ККО, если немодифицированный подсчет одного из указанного первого декодирования ККО и указанного второго декодирования ККО будет меньше, чем второе пороговое значение подсчета, в противном случае считается, что возникает отказ ККО (пропускание способа ККО).
10. Устройство по п.9, в котором средство выполнения первого направленного декодирования ККО и второго направленного декодирования ККО содержит декодер ВЧ и декодер НЧ.
11. Устройство по п.10, в котором декодер ВЧ дополнительно содержит схему для выполнения процесса случайной ошибки.
12. Устройство по п.10, в котором декодирование НЧ дополнительно содержит схему для выполнения процесса случайной ошибки.
13. Устройство по п.10, в котором устройство коррекции ошибки дополнительно содержит схему для выполнения вспомогательного декодирования НЧ с процессом стирания метки, следующим после декодирования НЧ, если будет детектирована ошибка декодирования или неисправимая ошибка, считанная с носителя данных.
14. Устройство по п.10, в котором устройство коррекции ошибки дополнительно содержит схему для выполнения вспомогательного декодирования ВЧ с процессом стирания метки, следующим после декодирования ВЧ, если будет детектирована ошибка декодирования или неисправимая ошибка, считанная с носителя данных.
15. Устройство по п.10, в котором декодер ВЧ может представлять собой один из декодера двумерного кода Рида-Соломона (ДКРС) и декодера перекрестно-перемежаемого кода Рида-Соломона (ППРС).
16. Устройство по п.10, в котором декодер НЧ может представлять собой один из декодера двумерного кода Рида-Соломона (ДКРС) и декодера перекрестно-перемежаемого кода Рида-Соломона (ППРС).
Описание изобретения к патенту
Данная патентная заявка основана на предварительной заявке на американский патент №60/509732, поданной 8 октября 2003 г.
Область техники, к которой относится изобретение
Настоящее изобретение относится к способу управления потоком данных, который выполняют в устройстве декодировании и управления ошибкой, в частности к способу и устройству коррекции кода ошибки, используемым в приводе оптического диска для управления потоком декодирования и коррекции кода ошибки.
Уровень техники
Рассмотрим фиг.1, на которой представлен поток данных записи на цифровой универсальный диск (ЦУД, DVD). Обычно на DVD 60 можно записывать различные типы цифровой информации 10, такой как видеоинформация, звуковая информация, данные и другие аналоговые данные, которые были преобразованы в соответствующие цифровые данные с использованием определенного цифро-аналогового (Ц/А, D/A) преобразования. Как показано на фиг.1, цифровые данные 10 должны быть пропущены через сжатие 20 данных, проверку 30 безопасности данных, коррекцию 40 ошибки и модуляцию/демодуляцию 50 для записи данных на диск или считывания данных с диска.
Более подробно, при записи цифровых данных 10 на DVD 60, цифровые данные 10 необходимо пропустить через кодер 22 кода источника, кодер безопасности, блок 42 управления коррекцией ошибки и модуляцию 52. Чаще всего для кодирования управления ошибкой используют двухмерный код Рида-Соломона (ДКРС, RSPC). Модуляция 52 подразумевает выполнение модуляции с преобразованием восемь-в-четырнадцать (МВЧ, EMF).
С другой стороны, при считывании содержания, записанного на DVD, содержание должно быть пропущено через демодуляцию 54, декодер 44 управления ошибкой, декодер 34 безопасности и декодер 24 кода источника. Для выполнения демодуляции 54 используют МВЧ (EFM). В декодере управления ошибкой для декодирования используют ДКРС.
Рассмотрим фиг.2 (а). На фиг.2 (а) представлена область информации DVD. Формат информации DVD состоит из секторов; каждый сектор имеет размер 2064 байта. Каждое информационное поле 70 имеет 16 секторов, таким образом, как показано на фиг.2 (а), информационное поле 70 имеет размеры 172 байта на 192 байта.
Рассмотрим фиг.2 (b), на которой представлен блок ККО (ЕСС, код коррекции ошибок). В ходе кодирования 42 управления ошибкой внешнее поле 80 кода проверки на четность размером 172 байта на 16 байт добавляют к информационному полю 60. Затем часть внутреннего кода 90 проверки на четность размером 10 байт на 208 байт вставляют между информационным полем 70 и внешним кодом 80 проверки на четность. Это приводит к тому, что размер блока 100 ККО становится равным 182 байта на 208 байт. После модуляции МВЧ блок ККО может быть затем записан на диск DVD.
Аналогично данные, считанные с DVD, должны быть демодулированы прежде, чем их можно будет записать в память в виде блоков размером 182 байта на 208 байт и можно будет провести коррекцию ошибок и декодирование.
Во время декодирования управления ошибкой ВЧ в каждом ряду используют для детектирования и коррекции ошибок, возникающих в некоторых байтах, в пределах одного ряда. Например, биты В0,172 В0,181 ВЧ ряда ноль информационного поля 70 используют для коррекции N байтов ошибки от В0,0 до B 0,181. Если возникает более чем N байтов ошибки, эти ошибки невозможно буде скорректировать. В таком примере, когда используют стирание метки, могут быть скорректированы 10 байтов ошибки. Когда стирание метки не используют, можно скорректировать максимум 5 байтов. Использование ВЧ для выполнения коррекции ошибки известно, как процедура ВЧ.
Кроме того, для детектирования и коррекции определенного количества ошибочных байтов в одном ряду можно использовать НЧ. В качестве примера байты B192,0 B207,0 можно использовать для коррекции М байтов ошибки между В0,0 и B 207,0. Когда количество ошибок превышает М между байтами В0,0 и В207,0, их нельзя будет скорректировать. Теоретически, когда используют метку стирания, можно скорректировать максимум 16 байтов ошибки, в отличие от 8 байтов, когда не используют метку стирания. Процедура использования НЧ для выполнения коррекции известна как процедура НЧ.
Рассмотрим теперь фиг.3. На иллюстрации представлено устройство декодера управления ошибкой, используемое в устройствах DVD известного уровня техники. Устройство состоит из буфера 306 данных, предназначенного для сохранения блоков кода коррекции ошибок, считываемых с диска; декодера 310 управления ошибкой, который дополнительно состоит из контроллера 312 потока декодера ККО, предназначенного для управления процедурой ККО; механизма 314 ККО, состоящего из множества модулей декодирования, которые работают как машина с конечным числом состояний для декодирования информации с использованием различных способов декодирования, которые обычно состоят, по меньшей мере, в одной процедуре ВЧ и, по меньшей мере, в одной процедуре НЧ; механизма 316 КОО (EDC, код с обнаружением ошибок), предназначенного для проверки ошибки целевого блока коррекции ошибок. Контроллер 312 потока декодера ККО, механизм 314 ККО и механизм 316 КОО могут быть выполнены с использованием логических микросхем или на основе микрокода микропроцессора. Для передачи основного принципа настоящего изобретения накопитель данных (такой как оптический диск, жесткий диск и т.д.), представленный на иллюстрациях, и блок управления в устройстве накопителя показаны как один элемент, называемый носителем данных и блоком 304 управления. Носитель данных и управление выполняют обмен данными с хостом 300 через шину 302.
В практике предшествующего уровня техники носитель данных и блок 304 управления в начале сеанса декодирования передают еще не декодированный блок ККО в буфер 306 данных через шину 302. Этот переданный блок данных становится "целевым" блоком ККО. Затем контроллер 312 потока декодера ККО инициализирует и выбирает либо процедуру ВЧ, или процедуру НЧ в механизме ККО и продолжает декодирование. Если будет выбрана процедура ВЧ, механизм КОО определяет, прошел ли блок данных коррекцию ошибок, и прекращает обработку декодера управления кодом ошибок. Прохождение теста на коррекцию ошибок подразумевает, что ошибки в пределах целевого блока ККО не могут быть скорректированы с помощью процедуры ВЧ. Контроллер потока декодера ККО затем проверяет, достигло ли значение подсчета повторных попыток максимального значения; пока значение повторных попыток не достигнет максимального значения, контроллер 312 потока декодера ККО будет увеличивать на единицу значение повторных попыток и будет продолжать выполнение процедуры НЧ.
После окончания процедуры НЧ механизм КОО выполняет детектирование ошибок в целевом блоке ККО. Прохождение детектирования ошибки означает, что данные в целевом блоке ККО являются правильными. Это означает, что в целевом блоке ККО были исправлены все ошибки и что декодер управления кодом ошибки выполнил свою задачу. Однако, если целевой блок ККО не проходит детектирование ошибки, это означает, что существуют некоторые ошибки в блоке, который нельзя скорректировать с использованием процедуры НЧ. Контроллер потока декодера ККО затем проверяет, достигло ли значение повторных попыток максимального значения; пока значение повторных попыток не достигнет максимального значения, контроллер 312 потока декодера ККО будет увеличивать на единицу значение повторных попыток и будет продолжать процедуру ВЧ. После того как значение повторных попыток достигает максимального значения, контроллер потока декодера ККО объявляет ошибку ККО, поскольку повторение процедур НЧ и ВЧ не позволяет полностью скорректировать ошибки.
Рассмотрим фиг.4 (а), на которой представлен поток определения отказа в соответствии с известным уровнем техники. Процедуры декодирования инициализируют до того, как контроллер потока декодера ККО может выбрать процедуру ВЧ или НЧ в процессе коррекции кода ошибки. Как указано в [0011], процесс коррекции кода ошибки содержит, по меньшей мере, одну процедуру ВЧ и, по меньшей мере, одну процедуру НЧ. Гипотетически, в случае детектирования ошибок, если на этапе 104 процедура детектирования ошибок проходит блок ККО, после процесса ВЧ, выполняемом на этапе 102, предполагается, что вся информация в блоке является правильной, и, таким образом, на этапе 114 определяют, что коррекция ошибки была завершена и вся процедура декодирования управления кодом ошибки была закончена. Принимая во внимание, что если блок ККО не проходит тест детектирования ошибок, это подразумевает, что существуют некоторые ошибки, которые нельзя скорректировать с использованием процедуры ВЧ. Затем проверяют значение повторных попыток, если на этапе 106 значение повторных попыток не достигло предела, на этапе 108 значение повторных попыток увеличивают на единицу и выполняют процедуру НЧ.
После процедуры НЧ на этапе 108 процедура декодера управления детектирования ошибки на этапе 110 определяет, прошел ли блок ККО детектирование ошибки. Прохождение теста детектирования ошибки на этапе 110 означает, что данные в информационном секторе являются правильными и прошли коррекцию ошибки на этапе 114. Поэтому процедура декодера управления детектированием ошибки может быть закончена. С другой стороны, если блок ККО не прошел тест детектирования ошибки, существуют некоторые ошибки, которые не может исправить процедура НЧ. Затем, до того как значение попыток на этапе 112 достигнет предела, на этапе 113 значение повторных попыток увеличивают на 1, и на этапе 102 выполняют процедуру ВЧ. В случае когда значение повторных попыток достигло максимума и процедура ВЧ и НЧ не закончила процедуру декодера управления ошибкой, на этапе 116 возникает отказ процесса ККО.
В описанных выше процедурах декодирования управления ошибкой, отказ ККО определяют по тому, достигло ли значение повторных попыток определенного предела. При некоторых обстоятельствах, например, когда (N+1) байт * (М+1) байт данных в информационном поле являются ошибочными, тогда не имеет значения, сколько раз устройство повторно пытается выполнить коррекцию ошибки, все равно процедура декодирования управления ошибкой не может быть завершена. Когда происходит отказ ККО, целевой блок ККО повторно проходит через этапы 102, 104, 106, 107, 108, 110, 112 и 113 до тех пор, пока значение повторных попыток не достигнет предела до того, как на этапе 116 не будет достигнуто состояние отказа ККО. Таким образом, отказ коррекции ошибки не может быть идентифицирован до того, как значение повторных попыток не достигнет предела. Этот механизм может бесполезно использовать системные ресурсы в результате повторения ненужной процедуры НЧ и процедуры ВЧ.
Использование стирания метки приводит к лучшей устойчивости к ошибкам. Рассмотрим теперь фиг.4 (b), на которой представлена другая известная процедура определения отказа ККО. Наиболее существенное различие между этим чертежом и фиг.4(а) состоит в том, что каждая процедура НЧ и ВЧ на этой иллюстрации имеет два разных подхода. Этот пример включает в себя:
1) процедуру 401 НЧ со стиранием метки,
2) процедуру 402 ВЧ со стиранием метки,
3) процедуру 403 ВЧ без стирания метки, и
4) процедуру 404 НЧ без стирания метки.
Когда происходит отказ декодирования, отмечают номера ряда и колонки (YNUM), в которых произошел отказ. Когда 0 < YNUM <= ERA_max (ERA_max равно 10 в процедуре ВЧ и 16 в процедуре НЧ), требуется еще один рабочий цикл процедуры стирания метки. В этом примере, когда процедура 404 ВЧ приводит к отказу декодирования, отмечают его положение и затем выполняют (1) процедуру 401 НЧ со стиранием метки. Однако, если YNUM больше, чем ERA_max (ERA_max в процедуре ВЧ равно 10 и в процедуре НЧ равно 16), должен быть выполнен еще один рабочий цикл в процедуре декодирования процедуры без стирания метки, что должно представлять (3) процедуру ВЧ без стирания 403 метки в приведенном выше списке.
Когда непрерывно выполняемые (4) процедура НЧ без стирания 404 метки и (1) процедура 401 НЧ стирания метки не декодируют все данные, снова проверяют взаимозависимость между YNUM и ERA_max. Когда 0 < YNUM <= ERA_max, будет выполнена (2) процедура 402 ВЧ со стиранием метки. С другой стороны, если YNUM > ERA_max, тогда будет выполнена (4) процедура НЧ без стирания 404 метки. Кроме того, если непрерывно выполняемые (3) процедура ВЧ без стирания 403 метки и (2) процедура 402 ВЧ со стиранием метки не приводят к декодированию всех данных, снова выполняют сравнение YNUM и ERA_max для входа в (1) процедуру 401 НЧ со стиранием метки, когда 0 < YNUM <= ERA_max, или (3) процедуру ВЧ без стирания 403 метки, если YNUM > ERA_max.
Когда блок ККО проходит детектирование ошибки после определенной процедуры, данные в целевом блоке ККО будут правильными. Другими словами, коррекция ошибки будет завершена. Это означает, что процедура декодирования управления ошибкой будет завершена и следующие процедуры будут готовы к выполнению. Следует отметить, что это не представлено на чертеже. Основной недостаток описанного выше управления потоком данных состоит в вероятности потери некоторых возможностей успешного декодирования всех данных. Рассмотрим фиг.5, на которой представлен пример блока ККО с байтами отказа декодирования. Байты отказа декодирования отмечены знаком "*". Предположим, что этот блок ККО проходит через процедуру, представленную на фиг.4(b), при этом он, например, вначале пройдет через (4) процедуру НЧ без стирания 404 метки. Когда количество отказов декодирования в определенном ряду больше, чем 5 и меньше, чем 10, возникает YNUM, который позволяет определить, какую процедуру следует использовать следующей. В этом примере YNUM равен 8, поэтому 0 < YNUM <= ERA_max (ERA_max в процедуре ВЧ равно 10 и ERA_max в НЧ равно 16), и выполняют рабочий цикл процедуры стирания метки. В этом конкретном примере отказ декодирования байта после выполнения процедуры 404 ВЧ отмечают перед тем, как будет применен блок ККО из (1) процедуры 401 НЧ со стиранием метки. Однако номер ряда отказа декодирования очень близок к верхнему пределу и существуют некоторые данные, которые требуется проверить на ошибку декодирования. Конечный результат представляет собой неудачное декодирование. Этот механизм выполняют таким образом, что соответствующий этап 404 стирания метки ВЧ не будет входить в поток декодирования, в результате чего процесс декодирования приходится повторять безрезультатно. Назначение настоящего изобретения состоит в улучшении описанных выше потоков известного уровня техники.
Сущность изобретения
Изобретение направлено на способ и устройство коррекции ошибки, предназначенные для детектирования и коррекции ошибки в блоке ККО (код коррекции ошибки), считываемом с носителя данных, причем указанный блок ККО включает в себя блок ВЧ (PI, внутренний код проверки на четность) и блок НЧ (РО, внешний (наружный) код проверки на четность). Носитель данных может представлять собой оптический диск DVD или оптический диск CD-RW (компакт-диск с перезаписью) и т.д.
Аспект изобретения, который направлен на способ, содержит итерационное выполнение первого направленного декодирования ККО и второго направленного декодирования ККО, если подсчет количества повторных попыток одного из указанного первого направленного декодирования ККО и указанного второго направленного декодирования ККО будет меньше, чем первое пороговое значение подсчета, в противном случае считается, что возникает отказ ККО. Способ содержит итерационное выполнение первого направленного декодирования ККО и второго направленного декодирования ККО, если немодифицированный подсчет одного из указанного первого декодирования ККО и указанного второго декодирования ККО будет меньше, чем второе пороговое значение подсчета, в противном случае считается, что возникает отказ ККО.
Первое направленное декодирование ККО может содержать декодирование ВЧ, и второе направленное декодирование ККО содержит декодирование НЧ. И первое направленное декодирование ККО, и второе направленное декодирование ККО могут дополнительно содержать процесс случайной ошибки.
Способ коррекции ошибки может дополнительно содержать этап выполнения вспомогательного декодирования НЧ с процессом стирания метки, следующим после декодирования НЧ, если будет детектирована ошибка декодирования или некорректируемая ошибка, считываемая с носителя данных.
Способ коррекции ошибки может дополнительно содержать этап выполнения вспомогательного декодирования ВЧ, в котором процесс стирания метки следует после декодирования ВЧ, если будет детектирована ошибка декодирования или некорректируемая ошибка, считанная с носителя данных.
Краткое описание чертежей
Настоящее изобретение будет более понятным из следующего описания со ссылкой на прилагаемые чертежи, на которых:
На фиг.1 описан поток записи данных DVD.
На фиг.2 (а) представлено поле информации.
На фиг.2 (b) представлен блок ККО.
На фиг.3 показана блок-схема известного устройства декодирования управления кода ККО.
На фиг.4(а), (b) представлен этап принятия решения, выполняемый в известном уровне техники, при определении отказа декодирования.
На фиг.5 показан блок ККО с некоторыми байтами отказа декодирования.
На фиг.6 показана блок-схема, иллюстрирующая настоящее изобретение - декодер кода управления ошибкой.
На фиг.7 (а), (b) показан поток выполнения логических операций лучшего варианта выполнения настоящего изобретения, для определения отказа.
На фиг.8 показан поток выполнения логических операций другого лучшего варианта выполнения настоящего изобретения, для определения отказа.
На фиг.9 показан блок ККО с 16 ошибками.
На фиг.10 показан пример, поясняющий концепции правильного и неправильного декодирования.
На фиг.11 показан поток выполнения логических операций другого лучшего варианта выполнения настоящего изобретения, для выполнения процесса ККО.
Подробное описание изобретения
Настоящее изобретение будет теперь описано более подробно, со ссылкой на следующие варианты выполнения. Следует отметить, что следующие описания предпочтительных вариантов выполнения данного изобретения представлены здесь только с целью иллюстрации и описания; и не предназначены для исчерпывающего или ограничивающего раскрытия точной формы.
Рассмотрим фиг.6. На фиг.6 представлено настоящее изобретение - декодер кода управления ошибкой в устройстве накопителя, который содержит буфер 406 данных, используемый для временного сохранения блока кода коррекции ошибки с оптического диска для следующих процессов декодирования; декодер 410 управления ошибкой, который содержит контроллер 412 потока ККО, предназначенный для управления потоком декодирования управления ошибкой; механизм 414 ККО, который может состоять из множества модулей различных процессов декодирования и управления машиной с конечным числом состояний, для декодирования кодов, которые закодированы с использованием смеси различных способов кодирования. Кроме того, механизм 414 ККО содержит, по меньшей мере, одну процедуру ВЧ и, по меньшей мере, одну процедуру НЧ. Настоящее изобретение, для пояснения его принципов, будет описано ниже на примере механизма ККО, имеющего, по меньшей мере, одну процедуру ВЧ и, по меньшей мере, одну процедуру НЧ. Однако следует отметить, что настоящее изобретение не ограничивается механизмом ККО только с одной процедурой ВЧ и одной процедурой НЧ. Устройство декодера управления ошибкой дополнительно состоит из n контроллеров декодирования управления ошибкой, механизма 414 ККО, механизма 416 КОО, которые могут быть выполнены с использованием логических схем или функций микропрограммы микропроцессора. Для передачи основного принципа настоящего изобретения носитель данных (такой как оптический диск, жесткий диск и т.д.), показанный на иллюстрациях, и блок управления в устройстве накопителя показаны как один элемент, называемый носителем данных и блоком управления 404. Носитель данных и управление выполняют обмен данными с хостом 400 через шину 402. Кроме контроллера 412 потока декодера ККО, который проверяет значение повторных попыток, настоящее изобретение имеет дополнительное постоянное запоминающее устройство 418, в котором записывают результат выполнения механизма 414 ККО и механизма 416 КОО. Добавление такого постоянного запоминающего устройства 418 помогает ускорить поиск отказа ККО. В одном варианте выполнения назначение постоянного запоминающего устройства 418 состоит в сохранении "немодифицированного значения".
Во время инициирования процесса декодирования носитель данных и блок 404 управления передает еще не декодированный блок ККО в буфер 406 данных через шину 402 в начале сеанса декодирования. Этот передаваемый блок данных становится "целевым" блоком ККО. Затем контроллер 412 потока декодера ККО инициирует и выбирает процедуру ВЧ или процедуру НЧ в механизме ККО, и продолжает декодирование. В это время контроллер 412 потока декодера ККО записывает статус механизма 414 ККО в постоянное запоминающее устройство 418. В настоящем варианте выполнения этого действия означает установку немодифицированного значения равным 0.
По завершении процедуры ВЧ механизм 416 КОО определяет, прошли ли блоки данных тест на коррекцию ошибки, и заканчивает процесс декодера управления кода ошибки. Прохождение теста коррекции ошибки подразумевает, что ошибки в целевом блоке ККО были успешно скорректированы и процесс декодирования управления кода ошибки был завершен. Однако если блок ККО не прошел тест коррекции ошибки, выполняемый механизмом 416 КОО, это означает, что существуют ошибки, которые не могут быть скорректированы с помощью процедуры ВЧ. Контроллер 412 потока декодера ККО записывает результат в постоянное запоминающее устройство 418. В настоящем варианте выполнения это действие будет включать первую проверку, был ли модифицирован целевой блок ККО, и, если это так, увеличение на 1 немодифицированного значения. Кроме того, контроллер 412 потока декодера ККО затем проверяет, соответствует ли значение повторных попыток максимальному значению; пока значение повторных попыток не достигнет максимальной величины, контроллер 312 потока декодера ККО увеличивает на единицу значение повторных попыток и продолжает процедуру НЧ.
После окончания процедуры НЧ механизм 416 КОО выполняет тест детектирования ошибки в целевом блоке ККО. Прохождение детектирования ошибки означает, что данные в целевом блоке ККО являются правильными. Это означает, что в целевом блоке ККО все ошибки были скорректированы и декодер управления кодом ошибки выполнил свою задачу. Однако если целевой блок ККО не прошел детектирование ошибки, это означает, что в блоке существуют некоторые ошибки, которые не могут быть скорректированы с использованием процедуры НЧ. Контроллер 412 потока декодера ККО записывает результат в постоянное запоминающее устройство 418. В настоящем варианте выполнения это действие улучшает первую проверку, если целевой блок ККО был модифицирован, и, если это так, увеличивает на 1 немодифицированное значение. Контроллер потока декодера ККО затем проверяет, соответствует ли значение повторных попыток максимальному значению; пока значение повторных попыток не достигнет максимального значения, контроллер 412 потока декодера ККО увеличивает на 1 значение повторных попыток и продолжает процедуру ВЧ. Как только значение повторных попыток достигает максимального значения, контроллер потока декодера ККО объявляет об отказе ККО, поскольку повторение процедур НЧ и ВЧ не позволяет полностью исправить ошибки.
Один аспект настоящего изобретения основан на том, что контроллер 412 потока декодера ККО, в дополнение к мониторингу значения повторных попыток, также проверяет постоянное запоминающее устройство 418, для ускорения идентификации отказа ККО. Когда контроллер 412 потока декодера ККО обнаруживает, что в постоянном запоминающем устройстве обозначено, что целевой блок ККО прошел через один рабочий цикл процедуры НЧ и ВЧ в механизме 414 ККО и не было выполнено никаких изменений в целевом блоке ККО, контроллер 412 потока декодера ККО может быстро объявить отказ ККО. В настоящем варианте выполнения решение контроллера 412 потока декодера ККО определяют в соответствии с тем, достигло ли немодифицированное значение заранее установленного предела немодифицированного значения. Немодифицированное значение отражает количество повторных попыток коррекции ошибки механизмом 414 ККО. Например, если механизм ККО 414 предлагает только два типа процессов процедуры ВЧ и процедуры НЧ, тогда соответствующее немодифицированное значение может быть равным 2. Как только немодифицированное значение достигает 2 в соответствии с настоящим вариантом выполнения, механизм ККО выполнил по одному рабочему циклу обеих процедур и не смог произвести какую-либо коррекцию целевого блока ККО.
Рассмотрим фиг.7. На фиг.7 представлен способ определения отказа в процессе коррекции кода ошибки в соответствии с настоящим изобретением, предназначенный для исправления недостатков, показанных на фиг.4 (а) известного уровня техники. Помимо концепции повторного подсчета, настоящее изобретение дополнительно добавляет немодифицированный подсчет для ускорения определения отказа ККО.
В начале потока, на фиг.7, можно выбрать один из процесса ВЧ и процесса НЧ в качестве первого этапа в соответствии с данным вариантом выполнения. Как описано выше, процесс ККО, который, по меньшей мере, включают в себя процесс ВЧ и процесс НЧ (или дополнительно разделен на четыре процесса, включающие в себя процесс ВЧ со стиранием метки, процесс НЧ, процесс НЧ со стиранием мети и процесс НЧ). С целью упрощения приведем простой пример, который включает в себя только процесс ВЧ и процесс НЧ, но настоящее изобретение не ограничивает объем формулы изобретения этим примером. Предположим, что после выполнения процесса ВЧ (этап 202) на этапе 204 выполняют определение, прошел ли успешно процесс КОО (кода обнаружения ошибки) или нет? Если ответ ДА, это означает, что данные в области информации (блок ККО) являются правильными. Это также означает, что процесс ККО (кода коррекции ошибки) (этап 230) был пройден, поэтому процесс декодирования ККО может быть остановлен; и наоборот, если процесс КОО не был пройден, это означает, что существует, по меньшей мере, одна ошибка в области информации (блок ККО), и эта ошибка не может быть исправлена с помощью процесса ВЧ. После этого настоящее изобретение на этапе 206 определяет, достигло ли значение повторных попыток максимального значения повторных попыток или нет? Или определяет, достигло ли немодифицированное значение максимального немодифицированного значения или нет? Если ответ будет НЕТ, на этапе 208 к значению повторных попыток добавляют 1.
На этапе 210 требуется определить, была ли выполнена какая-либо коррекция в ходе процесса ВЧ. Указанная "коррекция" означает, что действие считывания, модифицирования, записи было выполнено, по меньшей мере, для одного байта памяти в блоке ККО. Если существует, по меньшей мере, одна коррекция, выполненная на этапе 210, тогда немодифицированное значение устанавливают равным нулю на этапе 214; и, наоборот, если не существует коррекция, выполненная на этапе 210, тогда к немодифицированному значению добавляют единицу на этапе 208.
Предположим, что после выполнения процесса НЧ (этап 216) на этапе 218 будет определено, прошел ли успешно процесс КОО (код детектирования ошибки) или нет? Если ответ будет ДА, это означает, что данные в области информации (блок ККО) являются правильными. Это также означает, что процесс ККО (код коррекции ошибки) (этап 230) был пройден, поэтому процесс декодирования ККО может быть прекращен; и наоборот, если процесс КОО не был пройден, это означает, что существует, по меньшей мере, одна ошибка в области информации (блок ККО), и эту ошибку нельзя исправить с помощью процесса НЧ. После этого настоящее изобретение определяет, достигло ли значение повторных попыток максимального значения повторных попыток или нет? Или определяет, достигло ли немодифицированное значение максимального немодифицированного значения или нет на этапе 220? Если ответ будет НЕТ, к значению повторных попыток добавляют 1 на этапе 222; и, наоборот, если ответ будет ДА, на этапе 232 можно определить ошибку ККО.
На этапе 224 требуется определить, была ли выполнена какая-либо коррекция в ходе процесса НЧ? Указанная "коррекция" означает, что действие по считыванию, модификации, записи было выполнено, по меньшей мере, для одного байта памяти в блоке ККО. Если существует, по меньшей мере, одна коррекция, выполненная в ходе этапа 224, тогда немодифицированное значение устанавливают равным нулю на этапе 228; и, наоборот, если не существует коррекция, выполненная в ходе этапа 224, тогда к немодифицированному значению добавляют единицу на этапе 226. Затем выполняют процесс процедуры НЧ на этапе 202.
Поскольку немодифицированное значение добавлено в настоящем изобретении для ускорения определения отказа ККО при декодировании ККО. Поэтому, если существует (N+1) байт х (М+1) байт ошибок в информационной области (блок ККО), никакая коррекция не будет сгенерирована процессом НЧ или процессом ВЧ. В результате немодифицированное значение постоянно увеличивается. Это означает, что можно быстро определить отказ ККО. Например, можно установить максимальное немодифицированное значение, равное 2, если отсутствует какой-либо байт в памяти блока ККО, скорректированный после выполнения одного процесса ВЧ и одного процесса НЧ, тогда состояние декодирования ККО можно рассматривать как отказ ККО. С использованием описанного выше способа настоящее изобретение позволяет повысить скорость декодирования ККО, предотвращая ненужное использование ресурсов в результате постоянного выполнения повторных попыток процесса НЧ и процесса ВЧ с целью успешного декодирования кодового слова.
Для исправления недостатков известного уровня техники, как показано на фиг.4(b), в настоящем изобретении был разработан предпочтительный вариант выполнения способа управления потоком данных ККО, который показан на фиг.8.
Существуют четыре типа декодирования ККО в данном варианте выполнения, которые представлены следующим:
1) этап 801 - процесс НЧ со стиранием метки.
2) этап 802 - процесс ВЧ со стиранием метки.
3) этап 803 - процесс НЧ.
4) этап 804 - процесс ВЧ.
В начале потока процесса, показанного на фиг.8, можно правильно выбрать первый этап из процесса ВЧ (этап 803) и процесса НЧ (этап 804) с использованием заданного правила.
Предположим, что процесс ВЧ на этапе 804 будет выбран как первый этап в соответствии с настоящим изобретением, и если он не может успешно декодировать и скорректировать все ошибки в блоке ККО и сгенерировать ошибку декодирования, будет выполнено определение выбора пути в соответствии с номером строки/номером колонки ошибки декодирования, и затем будет выполнено определение, какой вид процесса НЧ пригоден для этого условия.
В данном варианте выполнения определение выбора пути может быть проведено по следующему условию:
Условие 1:
Состояние 1: 0 < YNUM <= ERA_max (ERA_max установлено равным 10 в процессе ВЧ, и ERA_max установлено равным 16 в процессе НЧ),
Состояние 2: YNUM > ERA_max°
Условие 2:
Состояние 1: 0 < YNUM <= (ERA_max)-1 (ERA_max установлено равным 10 в процессе ВЧ, и ERA_max установлено равным 16 в процессе НЧ),
Состояние 2: YNUM > (ERA_max)-1°
Условие 3:
Состояние 1: 1 < YNUM <= ERA_max (ERA_max установлено равным 10 в процессе ВЧ, и ERA_max установлено равным 16 в процессе НЧ),
Состояние 2: YNUM > ERA_max-1 или YNUM=1°
Условие 4:
Состояние 1: 1 < YNUM <= (ERA_max)-1 (ERA_max установлено равным 10 в процессе ВЧ, и ERA_max установлено равным 16 в процессе НЧ),
Состояние 2: YNUM > (ERA_max)-1 или YNUM=1°,
в котором назначение адаптивной установки верхней границы YNUM и нижней границы ERA_max состоит в увеличении устойчивости к ошибкам, соответствующем качеству оптических дисков различного рода, путем соответствующей модификации.
Как показано на фиг.4(b), если полученный в результате номер строки/номер колонки декодирования ошибки соответствует состоянию 1 после выполнения процесса ВЧ на этапе 404, тогда выполняют 1-й процесс НЧ на этапе 401 с алгоритмом стирания после отметки местоположения отказа декодирования в ходе процесса ВЧ; и наоборот, если результат номера строки/номера колонки ошибки декодирования соответствует состоянию 2 после выполнения процесса ВЧ на этапе 404, тогда настоящее изобретение может определить это состояние как соответствующее для другого процесса направленного декодирования, без алгоритма стирания. Это означает выполнение 3-го процесса НЧ на этапе 403.
Одно свойство настоящего изобретения будет показано на примере следующих двух случаев:
(A) Если существует, по меньшей мере, одно решение, которое не может быть найдено после последовательного выполнения 4-го процесса НЧ на этапе 404 и 1-го процесса НЧ с алгоритмом стирания на этапе 401, выполняют 3-й процесс ВЧ на этапе 403.
(B) Если существует, по меньшей мере, одно решение, которое не может быть найдено после постоянного выполнения 3-го процесса ВЧ на этапе 404 и 2-го процесса ВЧ с алгоритмом стирания на этапе 402, выполняют 4-й процесс ВЧ на этапе 404.
С использованием описанного выше способа, даже когда существует оптический диск с таким распределением отказа декодирования, как показано на фиг.5, и хотя существует, по меньшей мере, одно решение, которое не может быть эффективно найдено после непрерывного выполнения 4-го процесса НЧ на этапе 404 и 1-го процесса НЧ с алгоритмом стирания на этапе 401, его все еще можно успешно декодировать путем выполнения 3-го процесса ВЧ на этапе 403 (Поскольку количество битов ошибки декодирования для каждой строки не превышает 8).
Поэтому другое преимущество настоящего изобретения состоит в состоянии определения изменения переменного пути, что позволяет декодировать некоторые оптические диски DVD плохого качества, которые не могут быть успешно декодированы с использованием обычного способа декодирования. Конечно, дополнительное немодифицированное значение, добавляемое в настоящем изобретении, позволяет ускорить поток определения отказа ККО, оно также может быть применено к фиг.4(b) и фиг.8. Таким образом, настоящее изобретение без ограничения каким-либо конкретным описанным здесь вариантом выполнения включает варианты применения, относящиеся к ДКРС (двухмерный код Рида-Соломона).
На фиг.9 показан пример ошибки декодирования, считанной с носителя данных. Как показано на фиг.9, предполагается, что расстояние Хамминга dmin равно 16 и существуют пятнадцать ошибок стирания и одна ошибка декодирования. На фиг.10 показано одно правильное декодирование и два неправильных декодирования. Когда точка А представляет собой детектируемую ошибку, точка В представляет собой недетектируемую ошибку, и точка С представляет собой точку правильного декодирования. Можно скорректировать ошибки, показанные на фиг.9, при условии, что Уравнение (1) будет действительным.
2× +f<dmin Уравнение (1),
в котором представляет собой количество случайных ошибок и f представляет собой количество стираний.
В соответствии с Уравнением (1), 2×1+15=17>16=dmin.
Это означает, что решение не может быть найдено. Помимо того, что выполняют обработку НЧУ (РОЕ, обработку НЧ и стирание (удаление) метки) или обработку ВЧУ (PIE обработку ВЧ и стирание (удаление) метки), если присутствует ошибка декодирования, тогда в соответствии с фиг.8, можно скорректировать 16 ошибок, как показано на фиг.9. Это означает, что возможны две процедуры, показанные на фиг.11:
(1) Вначале ВЧ
(i) 1104 ВЧС 1101 НЧУ (для состояния 1) 1103 НЧС и т.д.
(ii) 1104 ВЧС 1103 НЧС (для состояния 2) и т.д.
(2) Вначале НЧ
(i) 1103 НЧС 1102 ВЧУ (для состояния 1) 1104 ВЧС и т.д.
(ii) 1103 НЧС 1104 ВЧС (для состояния 2) и т.д.
Обработка ВЧС (PIR, обработка ВЧ с обработкой случайной ошибки)
Обработка НЧС (POR, обработка НЧ с обработкой случайной ошибки).
Таким образом, можно найти две последовательные процедуры НЧ или ВЧ в соответствии с настоящим изобретением.
Из приведенного выше описания следует, что настоящее изобретение позволяет улучшить скорость декодирования ККО. Кроме того, когда обычное изобретение не позволяет декодировать оптический диск DVD с плохим качеством, в случае когда происходит ошибка декодирования. Существует шанс коррекции ошибки декодирования оптического диска DVD плохого качества с использованием двух последовательных процедур ВЧ или НЧ с альтернативно открытой функцией стирания метки.
Цели изобретения были полностью реализованы с помощью описанных в нем вариантов выполнения. Для специалистов в данной области техники будет понятно, что различные аспекты изобретения могут быть достигнуты с использованием разных вариантов выполнения, без отхода от существенных функций. Например, двухмерный код, показанный на фиг.2 (а) и фиг.2 (b) обычно используют для цифровых видеодисков (DVD), но настоящее изобретение в равной степени можно применять для других форматов двухмерного кода, включая формат, используемый в компакт-дисках (CD). Кроме того, настоящее изобретение можно применять для других многомерных кодов, а не только для двухмерных кодов. Таким образом, конкретные описанные варианты выполнения представлены для иллюстрации и не означают ограничение объема изобретения, который соответствующим образом ограничен следующей формулой изобретения.
Класс H03M13/29 объединение двух или более кодов или кодовых структур, например пакет кодов, генерализованные пакеты, каскадные коды, внутренние и внешние коды
Класс H03M13/11 с использованием нескольких разрядов четности
Класс G11B20/18 обнаружение или исправление ошибок, тестирование