人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

非可逆圧縮形式の動画ファイルを編集してまた非可逆圧縮形式で保存する時、ファイルの劣化を完全に無くすことは可能でしょうか。
もともと劣化した映像なのだから、編集後も無劣化になるように探索する、のようなイメージです。

●質問者: 匿名質問者
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 匿名回答1号

非可逆圧縮するたびに、どんどんデータを削っていきますから、画質が悪化します。そういう圧縮方式ですから。
一定のレベルになったら可逆圧縮に変わるというような事はありません。前回の圧縮部分を覚えていたりもしません。


匿名質問者さんのコメント
質問の書き方が悪かったかもしれません。 非可逆圧縮で劣化した映像を、同じ非可逆圧縮アルゴリズムでそれ以上劣化しないように圧縮することは可能でしょうかということです。 探索にどのくらいの負荷がかかるか分からないので現在そういった機能が実装されているケースはあるのかなと思ったのです。

匿名回答2号さんのコメント
現実には「劣化を完全に無くす」ことは不可能ではあると思いますが、「どんどんデータを削っていきます」というのは語弊あるのでは? 再生時の補完の仕方次第なのかも知れませんが、同じ形式、同じパラメータで無編集ならほぼ劣化なしか完全に劣化なしもありえるのではないですか? ただ、編集してしまうと再生時の補完情報以上の情報が増えるので無劣化というわけにはいかなくなるだろうとは思います。 #しかし、圧縮で捨てられる情報を考慮した圧縮方法のみとすれば、案外出来るのではと思うが、それを「無劣化」と読んで良いのかとも思う。

匿名回答1号さんのコメント
どんどん、という言葉の解釈を言われても・・・ 圧縮方式次第ですよね? 劣化が少ない圧縮方式はあるでしょうけど、非可逆だと差分の小さい部分は圧縮のたびに捨てられていくのが基本だろうと思います。もちろん、どんどん捨てていけばしまいにはコマ送りになってしまいますから限度もあるでしょうけど、一定率の変化量で捨てる場合と、変化量の先頭10%を捨ててしまう場合では劣化度がかなり違ってきます。 特に、元データが高画質であれば捨てられるデータもそれなりに沢山持っているでしょうから、圧縮率をあまり上げないで繰り返し保存するとかなり落ちていくように思います。 ソフトによりますが、ビットレートや解像度の設定だけでなく圧縮率の設定もあります。これを0%にしてやれば劣化はかなり防げるとは思いますが、逆に言えば圧縮しないのですから非可逆「圧縮で」保存する、事にもならなくなります。言葉尻で申し訳ないですが。 劣化を最小限に抑えつつ同じ形式で、という事であれば、可逆圧縮にしてコンテナだけ元のままにすれば良いのでは? 組み合わせの問題はあるでしょうけど、コーデックは可逆、コンテナは元のまま。 再生側はその、コーデックのデコードをしなければならないので、wmvだから再生できるはずなのにできない、という問題も発生するでしょうけど。

匿名回答2号さんのコメント
今回の話は、非可逆圧縮したファイルをそのままさらに非可逆圧縮するというものではなく、 非可逆圧縮したファイルを展開した後、非可逆圧縮する、という話だと認識していますが、よろしいですか? この場合、展開(再生)の際に、失われた情報に代わるデータを補完して作り上げることを忘れないでください。 再圧縮の際に捨てられる情報は、方式が変わらなければほとんどこの展開時に補完した部分となります。 実際には近似やフィルタ特性などで完全とはならないと思いますが、逆に言えば、展開方法を圧縮特性にきっちり合わすことが出来れば、再圧縮で情報の欠落を防げると思います。 ただ、そこまで完璧にこだわる必要性がない(こだわるなら可逆圧縮で良い)だけで。

匿名回答3号さんのコメント
この質問ページのスクリーンショットを取り、PSで100回「別名で保存」してdiffでデータを確認しましたが、ほとんど同じ部分はありませんでした。 ファイルのサイズも184,871バイト→182,179バイトと小さくなっております。 参考までに、2枚の画像を重ねて「差の絶対値」を取った画像がこちらです。微妙ですが文字周りにノイズがあるのが分かります。 [f:id:Lhankor_Mhy:20140822122150p:image:small] 理屈の上では2号さんが正しいと思いますが、丸め誤差が次の丸めに影響しない非可逆画像圧縮アルゴリズムというのは現実には存在しないのではなかろうか、と感じます。 2号さんが「実例」を挙げるのが一番話が早いのではないかと思いました。

匿名回答2号さんのコメント
確認ありがとうございます。 動画だと実例とか検証とかは無理(というか、書いてる様に実際にあるかわからない)ですが、画像ならと思い検証しました。 検証の方法、結果をここに書くには長いので書いたのをリンクで示します。 コーデックはjpegを2種とjpeg2000で試しました。 結果は5行単位で、1行目が繰り替えしたコマンド、2-5行目は差分の平均の計算結果(mean ****)で、真っ白と真っ黒の時が最大値で65535となる数値です(ImageMagickによる)。差分は#1の時、変換1回目と原画との差、#10

匿名回答2号さんのコメント
すみません、途中で送ってしまいました。 #10で1回目と10回目との差、#100で10回目と100回目との差となります。 結果としては絵によりますがjpeg2000以外は大体10回繰り返せば収束してそれ以上劣化せず変化しなくなりました。 動画の場合はもっと複雑なので現実的に収束するのかはわかりませんし、実例もあるかわかりませんが、そういったコーデックを開発するのは不可能では無いと思います。 http://anond.hatelabo.jp/20140824230247 #">"や"&"が化けます……

匿名回答3号さんのコメント
おお、すばらしい。 単純に収束するまで圧縮アルゴリズムを回す、という力技実装でも無劣化保存は可能かもしれませんね。ひょっとしたらサンプルによると周期性が出てしまう可能性もあるのかもしれませんが。 丸めの問題は離散的で数学的に証明するのが難しいので、やってみないと分からないことが多いですね。

匿名回答2号さんのコメント
質問者さんを置き去りにしてる感がありますが…… 静止画だと力技も出来ますが、動画だとそうもいかないだろうという点とフレーム間予測もあるのでさらに収束は遅くなるんじゃないでしょうか。 あと、質問だと編集後にということで、編集によって新たに発生した情報とその干渉も出てくるので、完全に無劣化というのは、実質的には1号さんと同じく無理だろうと思います。 新たにコーデックや編集システムを開発する程度の勢いでもあれば別かもしれませんけど。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ