Ru-Board.club
← Вернуться в раздел «Программы»

» 7-Zip / 7z (часть 2)

Автор: Vladimir_02
Дата сообщения: 27.02.2012 22:47
Полезная утилита для создания что-то вроде информации для восстановления для многотомных 7zip архивов... проверил - работает как заявлено автором...
ЗЫ... Если где-то всплывало, извиняюсь, весь форум не читал...
Автор: Engaged Clown
Дата сообщения: 27.02.2012 23:46
Vladimir_02
Да есть подобные темы, например вот и вот.
Автор: WatsonRus
Дата сообщения: 28.02.2012 16:43
Проблема в том как заставить других юзеров 7-zip-а пользоваться этими утилитами. Они же за лишний Кб удавятся. Ведь проблема-то как правило не со своими архивами.

И даже если используют - поскольку файлик с избыточной инфой тоже должен быть переслан вместе с архивом, то и его адепты 7-zip-а запакуют в 7z вместе с основным архивом - как это при пользовании архиватором что-то будет незапакованным?

Добавлено:
Пустой номер все это. Я уже не раз писал - не будет ни нормальной многотомности (а не тупого разрезания готового архива на куски), ни тем более избыточной инфы для восстановления, хотя именно для 7z она необходима как воздух в силу "особенностей" работы 7-zip-а с поврежденными архивами.
Автор: euheny
Дата сообщения: 28.02.2012 22:30
WatsonRus
ктото запаковал 7зипом и у него архив целый, а ты по тем или иным причинам не получил его в целости
логично - проблема с твоей стороны
логичнее поменять тебя чем архиватор, чтобы избавится от проблемы

бывают конечно битые архивы, однако я сомневаюсь что рар с инфой помог бы, ведь там тоже ограничения на тип повреждений
мы говорим лишь о разнице шансов, и видимо большинство не считают эту разницу существенной
Автор: DimmY
Дата сообщения: 28.02.2012 23:04
euheny

Цитата:
однако я сомневаюсь что рар с инфой помог бы

Мне он помогал достаточное количество раз, поэтому одно лишь обсуждение нужности этой функции кажется нелепостью.
Автор: snkreg
Дата сообщения: 28.02.2012 23:42
euheny
Да нет, зря ты так, инфа для восстановления в RARе достаточно кошерно работает. Булат даже себе в планы ставил догнать рар в этом.
Автор: WatsonRus
Дата сообщения: 29.02.2012 16:38
euheny 00:30 29-02-2012
Цитата:
мы говорим лишь о разнице шансов

В случае формата 7z шансы будут нулевыми, ибо например недокачанный архив вообще не откроется. В случае rar/zip архив откроется и позволит вытащить все файлы, кроме битого (rar и битый вытащит до места сбоя).

Так что шансы действительно разные, и даже очень.

Добавлено:
snkreg 01:42 29-02-2012
Цитата:
Булат даже себе в планы ставил догнать рар в этом.

Дык у него в Arc же вроде есть инфа для восстановления.
Автор: tigrr
Дата сообщения: 29.02.2012 16:52
snkreg

Цитата:
инфа для восстановления в RARе достаточно кошерно работает


КОШЕРНЫЙ, кошерная, кошерное
(от др.-евр. - очень чистый). У евреев - разрешенный религиозными законами к употреблению в пищу
Автор: Bulat_Ziganshin
Дата сообщения: 29.02.2012 18:58

Цитата:
инфа для восстановления в RARе достаточно кошерно работает. Булат даже себе в планы ставил догнать рар в этом.


нет, не в этом. инфа для восстановления в freearc такая же как rar - по xor, т.е. по сравнению со всякими par2 - весьма убогая

Добавлено:

Цитата:
он и Булат единственные люди кто может дать на этот вопрос самый точный ответ как разработчики данного проекта


я не разработчик, я пользователь lzma/7z.dll

а работа всегда идёт бесконечно, это не повод не выкладывать новые версии. думаю причина в том, что игорь не пользуется гитом
Автор: Victor_VG
Дата сообщения: 29.02.2012 20:25
Bulat_Ziganshin

Насчёт гита не скажу, а когда ты сказал про xor - всё ясно стало. Я в своё время решал похожую задачу - есть ряд географически удалённых систем, каналы связи с помехами. Надо: переслать больше данных чем допускается линейной скоростью канала раз, уменьшить влияние помех - два. Задачу решил. Для первого написал свой кодовый алфавит с переменной длинной слова сжимавший поток что дало увеличение эффективной скорости канала с 18 до 54 Мбит/с, а второе ограничение снял кодом Хэмминга(64,72) аппаратно устраняя ошибки с вложенностью до 6-и. Там, где это было нужно моя система работает уже скоро тридцать лет без единого сбоя. Но издержки кода Хэмминга конечно велики, хотя корректирующая способность одна из лучших. Конечно можно воспользоваться кодом Рида-Соломона или Хэмминга для исправления ошибок, только вопрос я бы иначе ставил - а какой вложенности ошибки имеет смысл исправлять? Может чаще встречаются одно - двух- битовые ошибки (вложенность 1 или 2), ошибки с большей вложенностью встречаются столь редко, что их можно не принимать во внимание? Такая статистика по частоте ошибок разной вложенности есть?
Автор: Bulat_Ziganshin
Дата сообщения: 29.02.2012 21:14
во-первых, Хэмминга. во-вторых, это вопрос простой вероятности - все данные разбиваются на сектора и xor-ятся сектора с номерами 0,N,2*N... в нулевой контрольный сектор, с номерами 1,N+1,2*N+1... в первый контрольный сектор и т.д.

зная размер сектора и размер контрольных данных, эту вероятность несложно подсчитать
Автор: Victor_VG
Дата сообщения: 29.02.2012 21:58
Bulat_Ziganshin

Спасибо, опечатку поправил.

А по алгоритму - ведь это у нас фактически происходит поблочная проверка чётности, корректирующая способность единица, поскольку мы можем вычислить только один не верный бит в блоке. Если я правильно понял что используется данный алгоритм, то ожидать от него более лучшей коррекции ошибок и теоретически не приходится, а использование алгоритмов типа Рида-Соломона - Хэмминга не имеет смысла из-за снижения скорости обработки и степени сжатия в следствии увеличения избыточности за счёт кода коррекции ошибок и необходимости (в коде Хэмминга) нескольких циклов операций "коррекция.-проверка ошибок- выявление оставшихся".
Автор: snkreg
Дата сообщения: 29.02.2012 22:14
tigrr

Цитата:
КОШЕРНЫЙ, кошерная, кошерное (от др.-евр. - очень чистый). У евреев - разрешенный религиозными законами к употреблению в пищу

Вот думал, как бы ответить)) А оказывается за меня ее уже выразил мною нелюбимый лурк:
http://lurkmore.to/_/2712#mws_+lR39Yy
Bulat_Ziganshin
Спасибо, буду знать, я думал рар хоть в этом впереди был)
Автор: Bulat_Ziganshin
Дата сообщения: 29.02.2012 22:16

Цитата:
мы можем вычислить только один не верный бит в блоке.

да, но блок этот состоит из битов с одинаковым адресом в секторах 0+k, N+k и т.д.

дело в том, что на магнитных носителях информация как правило теряется секторами и даже более крупными блоками (помню на арвиде отпечаток пальца на магнитной ленте съедал 50-100 кб ). поэтому код, корректирующий один бит в секторе, никому не нужен. из-за этого xor-блок объединяет биты, находящиеся как можно дальше в файле
Автор: Victor_VG
Дата сообщения: 29.02.2012 23:02
Bulat_Ziganshin

Ок! Мне понятно, а для новичков объясню в чём причины - чем выше плотность записи, тем больший участок поверхности носителя захватывает единичный физический дефект. А дальше смотрите что мы с Булатом объясняли по поводу исправления ошибок - при большом размере повреждений простой код не может исправить ошибки, и его применение становится бессмысленным, сложные коды типа кодов Хэмминга или Рида-Соломона при физическом повреждении носителя так же не спасут - часть его структуры при повреждении безвозвратно утрачена. Поэтому коды коррекции ошибок в данном случае не применимы. Да и в каналах связи необходимость их примечания каждый раз нужно смотреть по месту.
Автор: Bulat_Ziganshin
Дата сообщения: 29.02.2012 23:39
Victor_VG
коды коррекции ошибок применимы. если у тебя в один код связаны по одному биту из каждого мегабайта файла, то можно восстановить последовательные повреждения размером до мегабайта. а вот чтобы повысить вероятность восстановления нескольких более мелких повреждений - коды хемминга или RS надёжней простого xor
Автор: Victor_VG
Дата сообщения: 01.03.2012 00:50
Согласен, и потому давай уточним - коды Хэмминга и Рида-Соломона, и контроль чётности имеют в своей основе детектор ошибок срабатывающий при не выполнении условий некого уравнения решением которого является конкретный бит кода.

В этом смысле мне лучше код Хэмминга знаком - я с ним больше возился. Он представляет собой систему линейных уравнений при решении который если нет ошибок мы получим единичную матрицу, т.е массив единиц и нулей у которого все значения по диагонали из левого верхнего угла в правый нижний будут единицами, а остальные нулями. Если хоть одно значение в данной диагонали станет нулём - это признак ошибки и её положение мы можем вычислить с точностью до бита. Число исправляемых ошибок определяется свойствами кода - его кодовым расстоянием, например для кода Хэмминга (64,72) оно равно 6, и мы можем исправить до 6 неверных бит в блоке 64 бита. Большее число ошибок код может и не определить. То же относится к кодам Рида-Соломона и любым иным корректирующим кодам - если число ошибок более кодового расстояния кода, то вероятность их диагностики стремится к нулю по мере роста их количества, а вероятность их исправления нулевая.

Методы контроля чётности, различные дайджесты типа CRC-xx, SHA-1/2? MD4/MD5 только детектируют наличие ошибок, но исправить их не могут.
Автор: tigrr
Дата сообщения: 01.03.2012 07:44
snkreg

Цитата:
инфа для восстановления в RARе достаточно кошерно работает



Цитата:
Вот думал, как бы ответить)) А оказывается за меня ее уже выразил мною нелюбимый лурк:
http://lurkmore.to/_/2712#mws_+lR39Yy

Сорри, но там всё больше про еду страсти-мордасти, а здесь - обсуждение программ.
А если взамен "кошерно " употребить более понятное "чисто", то даже короче получается...
Автор: lorents
Дата сообщения: 06.03.2012 10:19
Добрый день!
Подскажите, где я допустил ошибку:

Код: -scsWIN -ssw -mx9 -mf=FilterID -mmt2 -m0=BCJ2 -m1=LZMA2:d256m:fb273:lc4:mf=bt4 -m2=LZMA2:d20:fb273:lp2:lc0 -m3=LZMA2:d20:fb273:lp2:lc0 -mb0:1 -mb0s1:2 -mb0s2:3
Автор: Bulat_Ziganshin
Дата сообщения: 06.03.2012 11:33

Цитата:
-mf=FilterID

лишнее
Автор: lorents
Дата сообщения: 06.03.2012 11:34
Bulat_Ziganshin
точно, спасибо!
Автор: GORA2
Дата сообщения: 06.03.2012 11:36

Цитата:
где я допустил ошибку

здесь:
Цитата:
-mf=FilterID

Вместо FilterID нужно указывать конкретное название фильтра (см. справку)
Тем более, что этот ключ уже используется в строке:

Код: :mf=bt4
Автор: lorents
Дата сообщения: 06.03.2012 12:06
GORA2
понял, спасибо.

Можно еще один вопрос. Сейчас я в основном использую данный алгоритм:

Код: -scsWIN -ssw -mmt2 -m0=BCJ2 -m1=LZMA:d256m:fb273:lc8:mf=bt4 -m2=LZMA:d20:fb273:lp2:lc0 -m3=LZMA:d20:fb273:lp2:lc0 -mb0:1 -mb0s1:2 -mb0s2:3
Автор: Inoz2000
Дата сообщения: 06.03.2012 12:51
lorents
Цитата:
-mf=FilterID

FilterID — это может быть: Delta, BCJ, BCJ2, ARM, ARMT, IA64, PPC, SPARC.
GORA2
Код: :mf=bt4
Автор: GORA2
Дата сообщения: 06.03.2012 13:13
Inoz2000
Виноват, исправил.

Цитата:
Меня интересует универсальный метод, я понимаю, что для разных типов файлов разные настройки

Ну так, если понимаете, то зачем спрашивать. Подбирайте для своего конкретного набора оптимальные параметры, но для другого набора данных они могут быть уже не оптимальными. Лень перебирать руками - напишите батник с перебором параметров, запустите его и, в зависимости от размера данных, быстродействия компьютера и числа параметров, через несколько минут (часов, дней) получите оптимальные значения параметров для конкретного набора.
Автор: Inoz2000
Дата сообщения: 06.03.2012 13:22
солидарен!
Цитата:
батник с перебором параметров
т.к. возможных сочетаний основных параметров многовато
Автор: lorents
Дата сообщения: 06.03.2012 15:42
Объясните, пожалуйста, как можно самому реализовать Ultra7z Optimizer или m7zRepacker?
Принцип работы я понимаю, кстати Ultra7z Optimizer - batch-файл, но к сожалению не могу в нем разобраться.
Меня удивляет, что архив остается при этом не прерывным
Автор: Inoz2000
Дата сообщения: 06.03.2012 17:50
lorents
Цитата:
кстати Ultra7z Optimizer - batch-файл, но к сожалению не могу в нем разобраться.
если понятен принцип, то не нада разбираться.
Цитата:
архив остается при этом не прерывным
ничего удивительного. Создание непрерывных архивов даёт увеличение сжатия. Хотя иногда бывает выгоднее делать архив из нескольких непрерывных блоков с разными методами сжатия для отдельных типов файлов.
Автор: lorents
Дата сообщения: 06.03.2012 18:44
Inoz2000

Цитата:
архив из нескольких непрерывных блоков с разными методами сжатия для отдельных типов файлов

меня как раз интересует, как это можно организовать
Автор: Inoz2000
Дата сообщения: 06.03.2012 19:51
Нужно поочерёдно добавлять файлы в один и тот же архив.
В командной строке использую параметр -uz1 например:
Код: CD /d "O:\Melody\.."
7z.exe a -uz1 -r0 -mx=9 -m0=LZMA:d=28:lp0:pb0:lc2 "O:\Melody.7z" ".\Melody\*.mmf"
7z.exe a -uz1 -r0 -mx=9 -m0=LZMA:d=28:lp0:pb0:lc3 "O:\Melody.7z" ".\Melody\*.kar" ".\Melody\*.MID"

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135

Предыдущая тема: RDM+, TSMobiles и VNC+


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.