Mục đích của bài viết là nhắc bản thân nhớ về các ratecontrol mode mà x264 hỗ trợ, không phân tích chi tiết kỹ thuật của từng mode.
Các mode được x264 hỗ trợ: CBR, ABR, CQ, CRF, lossless. (Thật ra lossless là trường hợp đặc biệt của CQ và CRF khi giá trị qp hoặc crf bằng 0 [đối với 8-bit]). Cả CBR và ABR đều có thể có hơn 1 pass (thường không ai dùng quá 3 pass, trong khuôn khổ bài viết sẽ chỉ nói đến 2-pass bởi vì người có đầu óc tỉnh táo sẽ không dùng hơn 2 pass). (Lưu ý: Một số người nhầm lẫn và cho rằng n-pass ABR là VBR; kỳ thật ngoại trừ hard-CBR mode như nêu dưới đây, tất cả mode đều là VBR).
CBR chủ yếu được dùng cho streaming và người ta thường chỉ dùng 1 pass (vì hơn 1 pass hiếm khi cải thiện gì mà có khi lại cho chất lượng tệ hơn!). Để dùng CBR mode, đặt --vbv-maxrate bằng với --bitrate. Tuy nhiên, chỉ như thế CBR vẫn chưa hoàn toàn đúng nghĩa CBR (bởi vì x264 sử dụng mô hình buffer có tên "leaky bucket", cho phép dùng ít bit hơn ở những khung hình ít phức tạp, do đó dung lượng của từng khung hình không đồng nhất mặc dù bitrate không đổi), đấy không hẳn là bất lợi nhưng nếu muốn dung lượng của tất cả frame như nhau thì có thể thêm --nal-hrd cbr (hoặc --filler kể từ build 139 về sau, nếu không muốn dùng NAL HRD). Đội ngũ phát triển x264 còn khuyên tốt nhất nên dùng capped CRF (CRF + VBV) cho streaming để tiết kiệm bit nhất có thể.
CQ (hoặc CQP) ngốn nhiều bitrate hơn CRF để đạt chất lượng tương đương (vì nó sử dụng quantizer không đổi cho tất cả P-frame, và do đó I-frame và B-frame cũng vậy [phụ thuộc vào tỷ lệ quantizer giữa các kiểu frame này], trong khi CRF sẽ điều chỉnh tăng hoặc giảm quantizer tùy thuộc độ phức tạp của frame và cảnh), do đó trở nên khá vô dụng, mặc dù vài người cho rằng ở giá trị qp khá nhỏ (dưới 10) thì CQ thể hiện ưu thế hơn CRF, tuy nhiên điều này không được kiểm chứng vì trên thực tế hiếm khi cần tới việc sử dụng giá trị nhỏ như thế (có trường hợp có người muốn lưu trữ video được quay hoặc thu dưới định dạng MPEG-2 thành H.264 sao cho chất lượng gần với chất lượng nguồn nhất có thể nhưng không muốn dùng lossless). CQ được sử dụng chủ yếu cho encode sang lossless H.264.
1-pass ABR vô dụng trong hầu hết trường hợp sử dụng (nếu không nói là hoàn toàn vô dụng, vì hiện tại, từ góc độ người dùng tôi không nghĩ ra lý do nào cần đến nó; tuy nhiên thật ra nó được sử dụng cho pass 1 của n-pass ABR). Vì lẽ đó, đội ngũ phát triển không màng đến việc tối ưu hóa chất lượng cho nó. Thậm chí họ còn khuyến khích rằng đừng bao giờ dùng nó.
2-pass ABR có cùng thuật toán rate control như CRF, tuy nhiên do nhận được một số lợi thế mà CRF không có nên cho chất lượng nhỉnh hơn tý xíu (chênh lệch khá nhỏ và thường không dễ nhận ra, ngay cả dùng slow-firstpass cho pass 1). Ưu điểm so với CRF là có thể nhắm đến một bitrate trung bình nhất định, theo đó có thể encode vào một dung lượng xác định trước. Nhược điểm là tốn thêm thời gian cho pass 1 (dù mặc định pass 1 nhanh hơn pass 2 khá nhiều, vào khoảng 1/4-1/3 thời gian pass 2 nếu không bị bottleneck, ngoài ra có thể còn tùy thuộc vào settings) và không biết trước chất lượng của sản phẩm cuối. Trái với 2-pass ABR, CRF nhắm đến việc giữ chất lượng đều giữa các khung hình, cảnh và nguồn có độ phức tạp tương tự nhau nhưng không thể biết trước dung lượng.
Bên lề: Theo một số suy đoán, có lẽ các nhóm "scene release" (không tính những nhóm chuyên encode anime) thường dùng mixed 2-pass: trước hết encode bằng CRF kèm theo --pass 1 --slow-firstpass, lấy bitrate của kết quả làm tròn lên rồi dùng cho encode pass 2, có thể điều chỉnh lại vài tham số nhưng thường là không cần thiết. Tuy nhiên như đã nêu, đây chỉ là suy đoán. Nguyên nhân xuất phát từ việc hiện nay các nhóm này không còn chú trọng đến dung lượng (thực tế là các bản encode hiện nay có dung lượng dao động khá lớn chứ không cố định vào khoảng DVD5 cho 720p như trước, chẳng hạn) nhưng lại vẫn dùng 2-pass (dù một số đã chính thức chuyển sang dùng CRF) nên không rõ ý đồ của họ, và giải thích "họ đoán ra bitrate cần thiết" không hợp lý cũng không thuyết phục.
Bên lề: Theo một số suy đoán, có lẽ các nhóm "scene release" (không tính những nhóm chuyên encode anime) thường dùng mixed 2-pass: trước hết encode bằng CRF kèm theo --pass 1 --slow-firstpass, lấy bitrate của kết quả làm tròn lên rồi dùng cho encode pass 2, có thể điều chỉnh lại vài tham số nhưng thường là không cần thiết. Tuy nhiên như đã nêu, đây chỉ là suy đoán. Nguyên nhân xuất phát từ việc hiện nay các nhóm này không còn chú trọng đến dung lượng (thực tế là các bản encode hiện nay có dung lượng dao động khá lớn chứ không cố định vào khoảng DVD5 cho 720p như trước, chẳng hạn) nhưng lại vẫn dùng 2-pass (dù một số đã chính thức chuyển sang dùng CRF) nên không rõ ý đồ của họ, và giải thích "họ đoán ra bitrate cần thiết" không hợp lý cũng không thuyết phục.