Tại sao những chiếc mặt nạ bit được gọi là mặt nạ của người Hồi giáo và mục đích của chúng là gì?


79

Tại sao "mặt nạ bit" được gọi như thế này?

Tôi biết rằng chúng chủ yếu được sử dụng cho các hoạt động bitwise và việc sử dụng mặt nạ bit hiệu quả hơn so với việc sử dụng các biến riêng biệt.

Tuy nhiên câu hỏi của tôi là tại sao và khi nào mặt nạ bit được phát minh? Chúng được sử dụng từ khi tính toán sớm? Có loại "mặt nạ" nào khác ngoài mặt nạ bit trong miền CNTT không?


14
Quang khắc (sử dụng ánh sáng tia cực tím để khắc các tính năng vào các tấm silicon) sử dụng "photomask" để ngăn chặn có chọn lọc nguồn ánh sáng UV để các khu vực tiếp xúc với silicon có mô hình chính xác.
Levi



14
Bao giờ thực hiện một công việc sơn và sử dụng băng che?
gnasher729

1
Một loại mặt nạ khác: phát hiện va chạm hoàn hảo pixel là tất cả về việc phát hiện các mặt nạ 2D chồng chéo.
aluriak

Câu trả lời:


101

Một mặt nạ (của sự đa dạng trên khuôn mặt) là một cái gì đó che đi một số phần trên khuôn mặt của bạn và cho phép các phần khác hiển thị thông qua. Thuật ngữ được sử dụng bởi sự tương tự trong điện toán: một bitmask che đậy (lọc ra) một số bit trong một bitet và cho phép các bit khác vượt qua.

Có loại "mặt nạ" nào khác ngoài mặt nạ bit trong miền CNTT không?

Ngay trên đỉnh đầu của tôi, mặt nạ được sử dụng thường xuyên trong xử lý hình ảnh. Đó là một khái niệm tương tự: bạn tạo ra một hình ảnh đen trắng cho thấy hình dạng của những gì cần che giấu và những gì phải bỏ qua.


33
Mặt nạ mạng con cũng khá phổ biến .
Matthieu M.

38
@MatthieuM. Nhưng không phải mặt nạ mạng con cũng bitmasks? Chúng được sử dụng để lọc địa chỉ mạng và địa chỉ máy chủ.
yoyo_fun

22
@JenniferAnderson Không phải là một hình ảnh đen trắng chỉ là một bitmask pixel?
Bergi

8
Mặt nạ hình ảnh vật lý được sử dụng trong sản xuất chip silicon, là một phần của kỹ thuật phát triển từ nhiếp ảnh truyền thống và quy trình in. vi.wikipedia.org/wiki/Photolithography
Jander

20
Mặt nạ cũng là một thuật ngữ nghệ thuật để bảo vệ một khu vực khỏi sự thay đổi trong khi cho phép thay đổi một khu vực khác. Nó thường được sử dụng trong hội họa. Đó là những gì Masking Tape dành cho: vì vậy bạn không vẽ lên những thứ mà bạn không muốn vẽ lên trong khi vẫn tiếp tục vẽ lên những thứ bạn muốn vẽ lên.
Kim cương Nate

54

Một mặt nạ bit được sử dụng để che dấu một số bit của trường bit trong khi phơi bày các bit khác:

initial value: 011011001
bit mask.....: 111110000
result value.: 011010000

Điều này đã được sử dụng trước khi tính toán trong các thiết bị điện tử có cổng logic (AND, OR ...) hoặc bóng bán dẫn hoặc trong cơ điện với rơle.


6
"Một mặt nạ bit được sử dụng để che dấu một số bit của trường bit trong khi phơi bày các bit khác:" Tôi chưa bao giờ nghĩ về nó như thế này nhưng nó có rất nhiều ý nghĩa. Cảm ơn bạn đã giải thích :)
yoyo_fun

1
@mouvicel bạn có thể vui lòng chỉ cho tôi một số liên kết về cách sử dụng mặt nạ bit trong thiết bị điện tử với cổng logic. Mục đích là gì, loại hoạt động này được sử dụng trong các hệ thống và khi nào kỹ thuật này bắt đầu?
yoyo_fun

4
để làm rõ: giá trị ban đầu được ANDed với mặt nạ và do đó, chỉ các bit mặt nạ ở "1" giữ các bit gốc từ giá trị ban đầu (như, bitwise, "1 và 1 = 1" và "0 và 1 = 0" ) và các bit khác của giá trị ban đầu được đặt thành 0 là (bitwise) "0 và 0 = 0" và "1 và 0 = 0") (vì "Và" chỉ nói rằng "chỉ khi bit thứ nhất VÀ thứ 2 bit được đặt thành 1, là kết quả a 1. tất cả các kết quả khác là 0 ". (HOẶC có nghĩa là: với bit thứ 1 thì 1 HOẶC bit thứ 2 là 1 sẽ cho kết quả là 1. vv). xem en.wikipedia. org / wiki / chút
Olivier Dulac

2
@JenniferAnderson: Ngoài mặt nạ bit logic, mặt nạ thực tế được sử dụng trong thiết bị điện tử: mặt nạ hàn là một khuôn tô (một mảnh thẻ) được sử dụng để gửi chất hàn vào PCB. Bạn đặt mặt nạ lên PCB, sử dụng một cái vắt để bôi chất hàn lên mặt nạ, sau đó các lỗ trên mặt nạ sẽ cho phép dán qua để chỉ che chính xác các khu vực bạn cần dán ( youtube.com/watch?v=EqJN1CTCOQs ) . Trong mặt nạ sản xuất chip được sử dụng để xây dựng hoặc khắc các cấu trúc lên silicon. Việc sử dụng từ "mặt nạ" này xuất phát từ ngành công nghiệp in ấn.
slebetman

4
@JenniferAnderson: Việc sử dụng từ "mặt nạ" trong tiếng Anh có nghĩa là bao gồm một cái gì đó chung chung hơn và có lẽ lâu đời hơn nhiều. Ví dụ trong tiếng Anh, chúng ta nói nước hoa có thể được sử dụng để che giấu mùi hôi.
slebetman

39

Bitmasks là cũ khủng khiếp. Tôi chưa thể tìm thấy tài liệu tham khảo cho cái đầu tiên, nhưng chúng chắc chắn rất phổ biến bởi sự ra đời của bộ xử lý 8 bit và có khả năng cũng được sử dụng trong bộ xử lý 4 bit.

Ý tưởng đằng sau bitmasks là tận dụng sự song song của bitwise. Một máy tính 8 bit có thể thực hiện thao tác bitwise tương tự thành 8 bit cùng một lúc nếu chúng được đóng gói thành một từ gốc duy nhất (có nghĩa là nó phù hợp với một thanh ghi).

Tên đến từ mặt nạ, là một cách tiếp cận chung để che đậy các khu vực bạn không muốn tương tác. Ví dụ, hãy xem xét khuôn tô này để che đi các khu vực của một bức tường (khuôn tô đã được di chuyển sau khi vẽ để hiển thị mẫu)

Bút chì

Mặt nạ cũng được sử dụng trong nhiếp ảnh, nơi chúng đi theo thuật ngữ "né tránh" chứ không phải là "khuôn tô". Bạn có thể sử dụng mặt nạ để che khuất một số ánh sáng trong khi in để làm sáng một khu vực.

Mặt nạ chụp ảnh

Thuật ngữ này cũng được sử dụng trực tiếp trong quang khắc, đây là kỹ thuật được sử dụng để chế tạo các mạch tích hợp. Mặt nạ ngăn ánh sáng chiếu vào bộ phận quang học được vẽ trên chip, tạo ra các mẫu mà sau đó dẫn đến các mẫu mặt trên chip. (Hình ảnh dưới đây là một trong những mặt nạ cho bộ xử lý Intel 8080A , nếu bạn tò mò)

Mặt nạ quang khắc

Tương tự như vậy, trong mặt nạ bit, bạn đang chọn các phần của từ bạn muốn thao tác, che đi tất cả các bit còn lại. Trong ví dụ dưới đây, tôi sử dụng thao tác "và" để che dấu đầu vào sao cho chỉ có bit thứ 3, 4 và 8 hiển thị. Phần còn lại được "đeo mặt nạ" sao cho chúng là 0. Mặt nạ tôi sử dụng là 00110001. Tôi hiển thị nó bên dưới với #đại diện 0 và .đại diện cho 1 vì điều đó làm cho hình thức trực quan của bitmask tương tự như mặt nạ vật lý ở trên và tôi hiển thị một hàng "bit được chọn" hiển thị các bit từ đầu ra không bị che đi ( "Các bit được chọn" thực sự không phải là một hoạt động logic xảy ra ... bộ xử lý thực sự đi đúng từ đầu vào VÀ mặt nạ đến đầu ra trong một bước, nhưng tôi nghĩ rằng nó làm rõ hình ảnh trực quan)

Input          10010111
Mask           ##..###.  (aka 00110001)
-----------------------
(selected)       01   1
Input AND Mask 00010001

Như tôi đã đề cập, bitmasking rất cũ vì nó làm tăng năng suất của bộ xử lý một cách đáng kể. Trên bộ xử lý 4 bit, nó có thể làm cho bộ xử lý tăng gấp 4 lần. Trên một quy trình 8 bit, hoặc nó có thể làm cho nó nhanh hơn 8 lần (tất nhiên chỉ hoạt động theo bitwise).

Một ứng dụng hấp dẫn cho việc này là động cơ cờ vua. Bàn cờ có 64 ô vuông. Động cơ hiện đại có số nguyên 64 bit. Đây là một chút may mắn cực kỳ thuận tiện, vì vậy các động cơ cờ vua thường tận dụng nó. Họ có cái gọi là " bảng bit " chứa vị trí của các mảnh. Điều này cho phép bạn thực hiện tất cả các loại tối ưu hóa, chẳng hạn như tìm kiếm tất cả các bước cầm đồ trong một bước duy nhất.


33

Trong cách sử dụng phổ biến nhất trong tiếng Anh, mặt nạ là một thiết bị che giấu một cái gì đó. In ấn màn hình được đề cập trong một câu trả lời khác. Vẽ băng dính 'mặt nạ' một cái gì đó để tránh sơn lên nó, v.v ... Mặt nạ hàn trên bảng PC 'tắt mặt nạ' khu vực được hàn từ khu vực không được hàn.

Trong trường hợp "mặt nạ bit", một số bit bị 'ẩn' hoặc bị bỏ qua để những cái khác được quan tâm hơn có thể dễ dàng thao tác hơn hoặc xem đơn giản hơn.

Mặt nạ bit không chỉ đơn thuần là một kỹ thuật 'cũ', nó là một hoạt động nguyên thủy trong hầu hết các hướng dẫn của máy, theo như tôi biết từ các bộ xử lý sớm nhất. Thông thường, đây là ở dạng "sử dụng mẫu bit trong thanh ghi này để che dấu các bit trong một số thanh ghi khác."


12
Tôi chưa từng nghe cụm từ "Tranh băng". Tôi cho rằng đây là cái mà tôi gọi là "mặt nạ băng".
thelem

12
@thelem: Thuật ngữ "mặt nạ băng", ít nhất là ở Mỹ, dùng để chỉ một loại băng vải dễ bị rách. Khi được sử dụng để vẽ, nó tạo ra một cạnh "mờ". Bởi vì băng như vậy được sử dụng cho nhiều mục đích khác, băng mới hơn tốt hơn cho việc vẽ (nhưng đắt hơn và có thể ít phù hợp hơn cho các mục đích khác) được gọi là "băng họa sĩ".
supercat

2
@Barmar Bất cứ ai đã đi đến phần vẽ của cửa hàng phần cứng sẽ chạy qua chúng.
chrylis -on đình công-

5
Tôi không phải là họa sĩ và tôi biết rằng băng và mặt nạ băng của họa sĩ là hai loại băng rất khác nhau. Có lẽ chỉ cần nói rằng "Băng keo là một loại băng được sử dụng vì độ trong và dễ viết."
valbaca

2
Tôi đã thử tìm kiếm trang web của cửa hàng phần cứng khổng lồ (Úc) và lần đầu tiên cho "băng vẽ" là một sản phẩm được dán nhãn là "băng che", vì vậy tôi đoán đó là điều đó. ;) Sự khác biệt thuật ngữ cũ tốt giữa các khu vực, tôi nghi ngờ. Mọi người thực sự rất kén chọn về những gì được coi là băng keo, tùy thuộc vào nơi họ sống.
Trejkaz

10

Một mặt nạ bit tương tự như in ấn màn hình . Bạn chọn một số vị trí bit nhất định sẽ được đưa vào kết quả:

source value = 42 -> 00101010b
mask = 51 -> 00110011b
result 42&51 = 00100010b -> 34

Một ý nghĩa khác của mặt nạ là một trang trong giao diện người dùng đồ họa nơi người dùng có thể nhập dữ liệu.


3

Mặt nạ bit được phát minh vì một vài lý do:

  • Các thanh ghi phần cứng được ánh xạ tới một tập hợp các bit liền kề
  • Không gian bộ nhớ rất hạn chế trong quá khứ không xa

Khi bạn nhìn vào cách bạn nhìn thấy mô hình các bit bạn đang ORing để bật một chút hoặc ANDing để tắt các bit, nó trông giống như một mặt nạ.

Mặt nạ phổ biến nhất (dựa trên mặt nạ bit) là mặt nạ Hình ảnh (xem liên kết tôi đưa vào lúc đầu).


2
Một bitmap của các giá trị cờ vẫn là một cách thích hợp và hiệu quả hơn để vượt qua một tập các cờ hơn là một mảng boolhoặc một số cách khác để có mỗi cờ trong một byte riêng biệt. Điều đó làm cho nó có thể thực hiện hiệu quả những việc như if (x & (FLAG_A | FLAG_B))thay vì if (xflags[FLAG_A] || xflags[FLAG_B]). Đặc biệt là nếu mặt nạ không phải là một hằng số; việc có thể để vượt qua một mặt nạ là một số nguyên là nhiều rẻ hơn so với đi qua một danh sách các cờ để được kiểm tra. Vì vậy, ngay cả khi bộ nhớ và bộ nhớ cache là không giới hạn, việc sử dụng các bit và mặt nạ trong một số trường hợp sẽ hiệu quả hơn nhiều.
Peter Cordes

Không bao giờ nói nó vẫn không hữu ích. Chỉ cần nói nguồn gốc có nguồn gốc của họ trong việc xử lý các thanh ghi phần cứng và bộ nhớ hạn chế. Tôi vẫn sử dụng mặt nạ bit khi chúng phù hợp với vấn đề.
Berin Loritsch

1
Điều tôi muốn nói là nguồn gốc có thể là bộ nhớ và hiệu năng tương đương trên các máy tính chậm cũ.
Peter Cordes

1
Đã đồng ý. Đã lập trình một chương trình Commodore 64, bạn cũng cần biết mặt nạ bit để làm mọi thứ với I / O đồ họa, âm thanh, nối tiếp và song song. Các chip điều khiển được ánh xạ tới các địa chỉ bộ nhớ với các chân được ánh xạ tới các bit trong địa chỉ đó. Tôi đoán bạn có thể tranh luận liệu mặt nạ bit có ảnh hưởng đến giao diện phần cứng hay ngược lại. Dù bằng cách nào, bạn phải biết họ để thực hiện bất cứ điều gì hữu ích.
Berin Loritsch

@BerinLoritsch Cảm ơn bạn đã trả lời. Bạn có thể giải thích ý của bạn là gì khi "Các thanh ghi phần cứng được ánh xạ tới một tập hợp các bit liền kề" không? Các thanh ghi phần cứng không được truy cập độc lập với nhau?
yoyo_fun

3

Một loại mặt nạ vật lý khác trong CNTT là photomask in thạch bản được sử dụng để khắc chỉ một phần của wafer silicon. Điều đó không được sử dụng để sản xuất các máy tính đầu tiên, nhưng bất kỳ ai làm việc trong ngành công nghiệp trong năm mươi năm qua đều sẽ biết về nó.

Tôi không biết khi nào thuật ngữ chính xác là bitcoin bitmask xuất hiện, nhưng bản thân thao tác chỉ là một chút và, đó là một hướng dẫn cơ bản của mọi máy tính nhị phân.


+1 cho "hướng dẫn cơ bản trong mọi máy tính nhị phân". Mọi người cần biết máy tính gì và tại sao chúng lại như vậy.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.