如何修復音樂檔的喀答聲(Click)? 2019 年 4 月 14 日 Magic Len 研究分享、 軟體介紹、 音樂心得 理論上,喀答聲(Click)應該只會發生在頻率急遽改變或是振幅急遽改變的時候。但實際上,只要波形有發生任何一點不連續(就算不連續的地方只有0.000001秒),就會產生喀答聲。在先前Csound的文章中,雖然有提到喀答聲可以利用波形包絡和近似頻率的方式來避免發生,但如果發生喀答聲的是現存的聲音或是音樂檔案的話,那就只能靠後期修復的方式來處理了。 繼續閱讀
MEPG-4(Xvid)、H.264(x264)、H.265(x265)、VP8、VP9、AV1等8-bit影片編碼格式的比較 2019 年 4 月 10 日 Magic Len 研究分享、 軟體介紹 由於儲存空間和資料傳輸速度的限制,我們可能沒辦法將錄影設備所錄製到的資訊,或是藉由軟體演算出來的畫面完好無損地保存或是傳送。影片是給人看的,但是人類的眼睛的分辨能力有限,非常細微的訊號差異其實感受不太出來,因此可以使用一些會改變原本影像訊號的方式來將其重新編碼(Encode)成和原始影像訊號看起來差異不大的格式,減少儲存影像訊號所佔用空間和加快傳送影像訊號時的速度,而這種壓縮影像訊號的方式就稱為有... 繼續閱讀
關於在Linux作業系統上解壓縮ZIP檔案時可能會遇到的問題 2019 年 4 月 6 日 Magic Len Linux、 研究分享 ZIP是一個在幾乎所有作業系統中都支援的古老的壓縮格式。由於這種格式在1980年代就已經出現,所以設想地不是很周到,常常發生ZIP壓縮檔無法解壓縮,或是解壓縮之後的路徑與檔名是亂碼的問題。尤其實在跨Unix-like系統和Windows系統的時候,這些問題更常會發生。 繼續閱讀
堆積排序(Heap Sort)演算法,利用完全二元樹來排序的演算法 2019 年 4 月 5 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 堆積排序(Heap Sort)演算法是利用完全二元樹(Complete Binary Tree),也就是堆積(Heap)結構來完成排序的演算法。雖然說要用到堆積結構,看起來好像很複雜似的,但其實這個只要一般的陣列結構(可以直接用要排序的陣列來製作)就能實作出來,而且實作出來的速度保證不會太慢,再怎麼差都會有O(nlogn)的時間複雜度。 繼續閱讀
合併排序(Merge Sort)演算法,穩定、快速的排序演算法 2019 年 4 月 5 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 合併排序(Merge Sort)演算法是非常通用的排序演算法,是穩定排序,即便在最差的情況下也還有O(nlogn)的時間複雜度。 繼續閱讀
希爾排序(Shell Sort)演算法,改良的插入排序法 2019 年 4 月 5 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 希爾排序(Shell Sort)演算法是插入排序(Insertion Sort)演算法的改良版。它解決了插入排序法一次只能把元素移動一個索引距離的問題,加入間距(gap)的概念來分批並分組完成插入排序法,有效提升原本插入排序法的速度。 繼續閱讀
雞尾酒排序(Cocktail Sort)演算法,雙向的氣泡排序法 2019 年 4 月 5 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 雞尾酒排序(Cocktail Sort)演算法又稱為搖晃排序(Shaker Sort)演算法、雙向氣泡排序(Bidirectional Bubble Sort)演算法,顧名思義,它是氣泡排序(Bubble Sort)演算法的變體,將原本單向走訪的氣泡排序改為雙向,用以解決使用氣泡排序法時,序列中未排序的一端其實已經大致排序好,卻又不能儘快把它完成的情形。 繼續閱讀
插入排序(Insertion Sort)演算法,一邊將元素加進序列、一邊進行排序的演算法 2019 年 4 月 5 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 插入排序(Insertion Sort)演算法,是基本的排序演算法,是學習程式語言最先需要學會的排序演算法之一。插入排序法的用途廣泛,除了可以用來將新元素添加到已存在且已排序好的序列並維持其排序外,還可以用來排序尚未排序的序列。而且其排序結果是穩定的。 繼續閱讀
氣泡排序法(Bubble Sort)演算法,容易實作的穩定排序演算法 2019 年 4 月 5 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 氣泡排序(Selection Sort)演算法又稱為泡沫排序演算法,是基本的排序演算法,是學習程式語言最先需要學會的排序演算法之一。顧名思義,就是它的排序方式如同氣泡一般,不斷將最大的元素擠出(移動)到序列最尾端,當所有元素都被被擠出後,排序就完成了!而且排序結果是穩定的。 繼續閱讀
選擇排序(Selection Sort)演算法,最簡單的排序演算法 2019 年 4 月 5 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 選擇排序(Selection Sort)演算法是最基本的排序演算法,是學習程式語言最先需要學會的排序演算法之一。它可以按照元素值的大小序次,一一將最小值、第二小值等等的元素排入序列中的正確索引位置內。 繼續閱讀