Введение

Конвертация цифровых данных между форматами. Конвертация файловых форматов.

Конвертация данных – это преобразование компьютерных данных из одного формата в другой. В компьютерной среде данные кодируются различными способами. Например, компьютерное оборудование построено на основе определенных стандартов, что требует, чтобы данные содержали, например, проверку четности. Аналогично, операционная система опирается на определенные стандарты обработки данных и файлов. Кроме того, каждая компьютерная программа обрабатывает данные по-своему. Всякий раз, когда изменяется любой из этих факторов, данные должны быть преобразованы тем или иным образом, прежде чем их можно будет использовать на другом компьютере, в другой операционной системе или программе. Даже различные версии этих элементов обычно подразумевают различные структуры данных. Например, изменение битов из одного формата в другой, как правило, для обеспечения совместимости приложений или возможности использования новых функций, является просто конвертацией данных. Конвертация данных может быть простой, как преобразование текстового файла из одной системы кодирования символов в другую, или более сложной, например, преобразование форматов офисных документов, форматов изображений или аудиофайлов. Существует множество способов преобразования данных в компьютерной среде. Это может происходить незаметно, как при обновлении компьютерной программы до новой версии. В качестве альтернативы, преобразование может потребовать обработки с помощью специальной программы-конвертера, или включать сложный процесс прохождения промежуточных этапов, или сложные процедуры "экспорта" и "импорта", которые могут включать преобразование в текстовый файл с разделителями-табуляциями или запятыми. В некоторых случаях программа может распознавать несколько форматов файлов данных на этапе ввода и затем также способна сохранять выходные данные в различных форматах. Такая программа может использоваться для конвертации формата файла. Если исходный или целевой формат не распознается, то иногда может быть доступна третья программа, позволяющая преобразовать данные в промежуточный формат, который затем можно переформатировать с помощью первой программы. Существует множество возможных сценариев.

Основные сведения

Перед началом преобразования данных пользователь или программист должен помнить об основных принципах вычислительной техники и теории информации. К ним относятся:

Информация может быть легко удалена компьютером, но добавление информации требует усилий. Компьютер может добавлять информацию только на основе правил. Увеличение разрешения данных или преобразование в формат с большим количеством характеристик не добавляет информации; это лишь освобождает место для её добавления, которое обычно должен выполнить человек. Данные, хранящиеся в электронном формате, могут быть быстро изменены и проанализированы. Например, полноцветное изображение легко преобразовать в оттенки серого, в то время как обратное преобразование – трудоемкий процесс. Преобразование текстового файла Unix в текстовый файл Microsoft (DOS/Windows) включает добавление символов, но это не увеличивает энтропию, поскольку выполняется по правилам; в то время как добавление цветовой информации к изображению в оттенках серого не может быть надежно выполнено программно, так как требует добавления новой информации, поэтому любая попытка добавить цвет потребует оценки компьютером на основе имеющихся знаний. Преобразование 24-битного PNG в 48-битный не добавляет информации, а лишь дополняет существующие значения пикселей RGB нулями, так что пиксель со значением FF C3 56, например, становится FF00 C300 5600. Преобразование позволяет изменить пиксель, например, до значения FF80 C340 56A0, но само преобразование этого не делает, это возможно только при дальнейшей обработке изображения. Преобразование изображения или аудиофайла из формата с потерями (например, JPEG или Vorbis) в формат без потерь (например, PNG или FLAC) или несжатый (например, BMP или WAV) лишь бесполезно тратит место, поскольку тем же изображением с потерей исходной информации (артефактами сжатия с потерями) становится объект преобразования. Изображение JPEG никогда не может быть восстановлено до качества исходного изображения, из которого оно было создано, независимо от того, как пользователь пытается использовать функцию "Удаление артефактов JPEG" в своей программе обработки изображений. Автоматическое восстановление информации, потерянной в процессе сжатия с потерями, вероятно, потребует значительных достижений в области искусственного интеллекта. В силу этих особенностей вычислительной техники и теории информации, преобразование данных часто является сложным и подверженным ошибкам процессом, требующим помощи специалистов.

Основное преобразование

Преобразование данных может происходить непосредственно из одного формата в другой, но многие приложения, преобразующие между несколькими форматами, используют промежуточное представление, посредством которого любой исходный формат преобразуется в целевой. Например, можно преобразовать кириллический текст из KOI8-R в Windows-1251 с помощью таблицы соответствия между двумя кодировками, но современный подход заключается в том, чтобы сначала преобразовать файл KOI8-R в Unicode, а затем в Windows-1251. Это более удобный подход: вместо необходимости в таблицах соответствия для всех возможных пар кодировок символов, приложению нужна только одна таблица соответствия для каждого набора символов, которую оно использует для преобразования в Unicode и из него, тем самым сокращая количество таблиц со сотен до нескольких десятков. Аналогичный принцип централизованного преобразования используется и в других областях. Офисные приложения, используемые для преобразования между форматами файлов офисных пакетов, используют свой внутренний формат файла по умолчанию в качестве промежуточного. Например, текстовый процессор может преобразовать RTF-файл в WordPerfect-файл, преобразовав RTF в OpenDocument, а затем OpenDocument в формат WordPerfect. Программа для преобразования изображений не преобразует изображение PCX в PNG напрямую; вместо этого, при загрузке изображения PCX, она декодирует его в простой растровый формат для внутреннего использования в памяти, и когда поступает команда преобразовать в PNG, это изображение в памяти преобразуется в целевой формат. Аудиоконвертер, преобразующий из FLAC в AAC, сначала декодирует исходный файл в необработанные данные PCM в памяти, а затем выполняет сжатие AAC с потерями на этом изображении в памяти для получения целевого файла.

Недостаточное преобразование данных

Цель преобразования данных — сохранить все данные и как можно больше встроенной информации. Это возможно только в том случае, если целевой формат поддерживает те же функции и структуры данных, что и исходный файл. Преобразование документа текстового редактора в обычный текстовый файл неизбежно влечет за собой потерю информации о форматировании, поскольку обычный текстовый формат не поддерживает возможности текстовых редакторов, такие как выделение слова жирным шрифтом. По этой причине преобразование из одного формата в другой, не поддерживающий важную для пользователя функцию, редко выполняется, хотя оно может быть необходимо для обеспечения совместимости, например, преобразование файла из одной версии Microsoft Word в более раннюю, чтобы обеспечить передачу и использование другими пользователями, у которых на компьютере не установлена более поздняя версия Word. Потерю информации можно смягчить путем аппроксимации в целевом формате. Невозможно преобразовать символ, например «ä», в ASCII, поскольку этот символ отсутствует в стандарте ASCII, но информацию можно сохранить, аппроксимируя символ как «ae». Разумеется, это не оптимальное решение и может повлиять на такие операции, как поиск и копирование; и если язык различает «ä» и «ae», то такая аппроксимация действительно приводит к потере информации. Преобразование данных также может быть неточным из-за преобразования между концептуально различными форматами. Примером является парадигма WYSIWYG, используемая в текстовых процессорах и программах верстки, в отличие от структурной описательной парадигмы, применяемой в SGML, XML и многих приложениях, основанных на них, таких как HTML и MathML. Использование WYSIWYG-редактора HTML объединяет эти две парадигмы, в результате чего получаются HTML-файлы с неоптимальным, а то и вовсе нестандартным кодом. В парадигме WYSIWYG двойной перенос строки означает новый абзац, поскольку это визуальный признак такой конструкции, но WYSIWYG-редактор HTML обычно преобразует такую последовательность в <BR><BR>, что структурно не является новым абзацем. Другой пример: преобразование из PDF в редактируемый формат текстового редактора — сложная задача, поскольку PDF записывает текстовую информацию, как гравировку на камне, фиксируя положение каждого символа и жестко задавая переносы строк, в то время как форматы текстовых редакторов допускают перенос текста. PDF не различает пробелы между буквами и пробелы между словами — они отличаются только количеством. Поэтому заголовок с увеличенным межбуквенным интервалом обычно содержит пробелы в файле текстового редактора, например, ВВЕДЕНИЕ с интервалом 1 em как I N T R O D U C T I O N в текстовом редакторе.

Открытые и секретные спецификации

Для успешного преобразования данных необходимо глубокое понимание принципов работы как исходного, так и целевого форматов. Если спецификация формата неизвестна, для выполнения преобразования потребуется реверс-инжиниринг. Реверс-инжиниринг позволяет добиться высокой степени соответствия исходным спецификациям, однако ошибки и отсутствие некоторых функций все же могут возникать.

Электроника

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