2025年6月3日 記
はじめに
最近・・・ってほどでもないですが、ラズパイを使った音楽プレイヤーで音楽を聞くようになってからファイル圧縮技術と
圧縮ファイル(音声ファイル・動画ファイル)について、プログラミングをする人や音楽・動画ファイルを自分で作ったりする人以外は
「よく分からない」とか「よく知らない」のではないかと思いまして(私が知る限りで)少しだけ書いてみようと思い立ちました。
一応お断りしておきますが、もしかしたら本記事中に誤った記述が含まれているかもしれません。
意図的に誤った記述をするつもりはありませんが、もし気になるところがありましたらご容赦ください。
目次
(1)音声ファイルと動画ファイル
(2)可逆圧縮と非可逆圧縮
(3)定量ファイルと可変容量ファイル
(4)音楽ファイル(wavとflac)
(5)CD
(6)最後に
(1)音声ファイルと動画ファイル
音声や動画の信号をデジタルデータに変換(サンプリング)しただけだと巨大なデータとなってしまいます。
その巨大なデータをそのまま扱うのは大変「難しい」ため考え出されてきたのがデータを圧縮する技術です。
サンプリングされたデータをそのまま見てしまうと単なる無秩序なデータの羅列でしかありません。
しかし、それらのデータの見方を変える(視点を変える)ことで共通なデータにして、
ひとまとめにしたりすることで巨大なデータを少ないデータに変換する技術が以前より開発されてきました。
動画ファイルは音声ファイルと比較しても巨大になりがちです。
動画データを圧縮するのはフレーム(動画を構成する1枚の画像)単位の圧縮だけでなく、
時間軸に対しても圧縮されています。「時間軸に対して」とは、例えば「動画」でも常に動いているものがあるわけではなくて
ある瞬間には「動きのない風景」とか「動いていない人物」とかしか写っていないことが多々あります。
こういった場合には前後のフレームに対しても圧縮することが可能になってくるため、
音声ファイルを圧縮するのに比べて更に難易度は高いようです。
日本の場合、標準の動画ファイルはMPEGでしょうか?。
音声ファイルはWAVあたりでしょうか?。
この辺に関しては詳しく知らないので興味があったらご自身で調べてみてくださいね。
(2))可逆圧縮と非可逆圧縮
データを圧縮する場合、大雑把に2種類の方法があります。
それが「可逆圧縮」と「非可逆圧縮」です。
「可逆圧縮」とは、圧縮データを完全な元の状態に戻せる圧縮方法(圧縮技術)です。
それに対して「非可逆圧縮」とは、その方法でデータを圧縮してしまうと完全な元の状態に戻すことはできない圧縮方法(圧縮技術)になります。
「可逆圧縮」はデータを完全な元の状態に戻せるのがメリットです。
データを完全な状態に戻したい場合には「可逆圧縮」を選択しましょう。
音声ファイルとかだと「ロスレス」とか表示されていたりすることもあります。
「非可逆圧縮」はデータを完全な元の状態に戻せない代わりに圧縮率が非常に高く、十分の一以下になってしまうこともあります。
音声ファイルは可逆圧縮と非可逆圧縮を選択可能ですが、動画ファイルだとあまりにもデータが巨大になってしまうため
今はおそらく「非可逆圧縮」一択になると思います。
GIFファイルとか今時使ってる人って居ますかね?
※「非可逆圧縮」についてちょっとだけ補足しておきます。
「非可逆圧縮」されたデータを完全な元の状態に戻すことはできません。
では圧縮前と圧縮後の「差」はどうなるのか?と言いますと・・・「ノイズ」となります。
ノイズと言っても大抵の場合には「認識できない」程度に抑えられています。
しかし例えば動画ファイルだと、変化の大きな(動きの大きな)圧縮しにくいシーンだと
ブロックノイズとして表示されて(見えて)しまうことがあります。
一度くらいはブロック(四角形)のノイズが乗った動画をご覧になったことがあるのではないかと思います。
もちろん圧縮率を上げた動画の方が顕著にブロックノイズが現れます。
もしブロックノイズを「見たことがない!」という方は、
映像の変化が比較的大きな動画ファイルを更に圧縮して小さなファイルにしてから
見てみるとブロックノイズを確認できるのではないかと思います。
(3)定量ファイルと可変容量ファイル
「非可逆圧縮」だと「圧縮率」というものが選択できるものが多いと思います。 また動画ファイルを編集したりする場合には「時間軸」に対して「定量」のデータでないと編集途中で微妙なズレが出てしまったりすることがあります。 この辺は使用するソフトウェアなどの影響もあるかと思いますが、 動画を編集する場合には「可変容量」ファイルではなくて 時間軸に対して「定量」になるような動画ファイルとして保存するようにした方が良いようです。 この辺(ファイルの保存方法)については各編集ソフトウェア毎にやり方は異なると思います。 ソフトウェアによっては、もちろん独自のファイルフォーマットを使っていることもあると思います。
(4)音楽ファイル(wavとflac)
私は、ずっと前から音楽ファイル(音声ファイル)は基本的にwavを使ってきました。
ただラズパイで音楽を聞くようになってからwavファイルだと音楽プレイヤーが表示する文字が文字化けを起こすようになってしまい、
仕方なく「新しい圧縮ファイル」を検索してみたところ、「ロスレス圧縮」としてflacというモノを見つけました。
CDからflacファイルに取り込むことができるソフトウェアを購入したり、
無料のものを利用させて頂いたりしておりますが、flacの音楽ファイルをラズパイで再生してみたところ、
なんと!、音質が向上してしまいました・・・。
wavファイルもflacファイルも元データはCDのデータです。
両方ともロスレスファイルです。
でもそれで音質が変わってしまうのです。
音質が変わってしまう(向上してしまう)原因ですが、
おそらく音楽ファイルの「コーデック」の違いによるものだろうと推測しています。
wavファイルは比較的古い音声ファイルで、内部データの文字コードの標準が「シフトJISコード」と呼ばれるもので、
今の新しいパソコンなどではUNICODE(ユニコード)、特にUTF-8というものが多く使われています。
音楽プレイヤーが文字化けを起こす原因もこの辺の影響です。
そんなわけでwavファイルを再生するコーデックはおそらく「古いまま」で、
音質を向上させるような「演算」は行っていないのだろうと思われます。
それに対してflacファイルは比較的新しいフォーマットになると思われますので、
音質を向上させるような「演算」をしているのだろうと思われます。
きっとそんなところなのだろうと思いますので、もし音楽をwavファイルで聞いている場合には
別の新しい音声ファイル(音声ファイルフォーマット)に変換して聞いてみることをお勧めします。
違うファイルに変換するだけで音質の向上が期待できますよ!。
もちろん実際に音質が向上するかどうかは、再生する環境により異なってきますのでご注意くださいね。
(5)CD
たぶん私が初めて「CD」というものを目にしたのは中学生のときに「先輩」が他の人に見せびらかしていたときだったと思います。
そんな以前から「CD」はあるんです。
「CD」の主な仕様は、
- 44.1KHz
- 16bit
- 左右で合計2チャンネル
人の可聴領域は20~20000Hz(20KHz)くらいとされています。 そこからおそらくディスクの回転速度(読み出し速度)などの影響も考慮して出てきた数値が16bit、44.1KHzなのだろうと思います。
「16bit」とか「44.1KHz」とかいうと、「ハイレゾ」で聞いている人だと「少ない」と思うかもしれませんが、 私(わたし)的には割と十分な数値だと思っています。 その理由を以下に記します。
・CDとハイレゾ
今から数年くらい前になると思いますが、「ハイレゾ」というものがどんなものかを自分なりに検証してみたことがありました。
ハイレゾファイルをいくつか購入して普通のmp3ファイルにダウンコンバートして聞き比べてみたのですが・・・
私には違いが分かりませんでした。ちなみにmp3のビットレートは320KHzくらいの高いレートにしたと思います。
またハイレゾファイルと、それと同じ普通のファイル(wma?)も購入して聞き比べてみたところ・・・
違いはありました!。私としては「何か(音を)足してね?」と思いました。
このホームページにも掲載していますが、
ラズパイの設定ファイルを弄っていると「アップコンバート」に関する設定がありました。
詳しい内容までは分かりませんが、アップコンバートして出力させると明らかに音質が向上しました。
ただアップコンバートしたりするにはそれなりのCPUパワーが必要でして、
ラズパイ5を限界ギリギリくらいの2.8GHzにオーバークロックして現在は使っています。
このホームページで掲載しているラズパイとDAC(音楽プレイヤー)関連へのリンク
・ラズパイ4BとMPD
・ラズパイ5とHiFiBerry DAC2 HD
ラズパイ5を使うようになる前はパソコンにUSB DACを繋いでミニコンポのスピーカーで聞くこともあったのですが
ラズパイ5にして以降、ミニコンポのスピーカーで聞くと「お粗末」というくらいにしか聞こえなくなってしまいまして、
長らく置いてあったミニコンポは片付けてしまいました。
片付けてしまったミニコンポは購入当時、値段・大きさ・音質共に割と良かったんです・・・と、補足しておきます。
(6)最後に
ファイルの種類(圧縮)について、どうなっているのか知らない人も沢山居るのではないかと思いまして
今回、少しだけ書かせて頂きました。
興味がありましたら各キーワードを元にいろいろインターネットで検索してみると良いのではないかと思います。
サンプリングの方法とかいろいろ、ひょっとすると詳しく解説しているページとか見つかるかもしれませんよ。
それと「圧縮」について、もうひとつ知っておいて欲しいことがあります。
それはデータを圧縮する場合には「何らかの方法」を使って「大抵の場合には小さくなる」ように作ります(作られます)。
逆を言いますと、「大抵ではない場合」には圧縮されるどころか膨張してしまうケースも実在します。
「膨張」してしまうようなときには通常、「圧縮しない」ことが内部的に選択されるはずで、
結果的にはファイルを小さくできない・・・ということも起こりえます。
私は改まってやってみたことはないのですが、
極限まで圧縮されていると考えられるファイルをZIPなどのアーカイバ(Windows11標準にも付属しています)などで
更に圧縮を試みたとき、おそらくファイルサイズにほとんど変化は見られないだろうと思います。
ただし「圧縮しない」とはいっても圧縮方式により若干の付加データが加えられたりしますので、
ファイルサイズは完全には一致しない(若干大きくなる)場合が多いと思われます。