Python: codifica de forma compacta y reversible un entero grande como base64 o base16 con longitud variable o fija

Quiero codificar de forma compacta un número entero grande sin signo o con signo que tenga un número arbitrario de bits en una representación base64, base32 o base16 (hexadecimal). La salida se usará en última instancia como una cadena que se usará como nombre de archivo, pero esto debería estar al lado del punto. Estoy usando la última versión de Python 3.

Esto funciona pero está lejos de ser compacto:

>>> import base64, sys
>>> i: int = 2**62 - 3  # Can be signed or unsigned.
>>> b64: bytes =  base64.b64encode(str(i).encode()) # Not a compact encoding.
>>> len(b64), sys.getsizeof(b64)
(28, 61)

Hay unpregunta previa, ahora cerrado, las respuestas para las cuales se refieren estrictamente a una representación ineficiente. Tenga en cuenta nuevamente que no queremos utilizar cadenas ni secuencias innecesariamente largas de bytes en este ejercicio. Como tal, esta pregunta no es un duplicado de esa pregunta.

Respuestas a la pregunta(1)

Su respuesta a la pregunta